密码锁—微机原理及应用课程设计报告 下载本文

SETB P2.0

MOV A,RDS+1 JZ DS3 MOV A,#1 SJMP DS4 DS3: MOV A,#0

DS4: MOVC A,@A+DPTR MOV P0,A CLR P2.1

ACALL D1MS SETB P2.1

MOV A,RDS+2 JZ DS5 MOV A,#1 SJMP DS6 DS5: MOV A,#0

DS6: MOVC A,@A+DPTR MOV P0,A CLR P2.2

ACALL D1MS SETB P2.2

MOV A,RDS+3 JZ DS7 MOV A,#1 SJMP DS8 DS7: MOV A,#0

DS8: MOVC A,@A+DPTR MOV P0,A CLR P2.3

ACALL D1MS SETB P2.3

MOV A,RDS+4 JZ DS9 MOV A,#1 SJMP DS10 DS9: MOV A,#0

DS10: MOVC A,@A+DPTR MOV P0,A CLR P2.4

ACALL D1MS SETB P2.4

MOV A,RDS+5 JZ DS11 MOV A,#1

第 20 页 共 33页

SJMP DS12 DS11: MOV A,#0

DS12: MOVC A,@A+DPTR MOV P0,A CLR P2.5

ACALL D1MS SETB P2.5 RET

;*********************************************** DISPLAY2: MOV R4,#00H MOV A,R4 MOVC A,@A+DPTR MOV P0,A CLR P2.0 ACALL D1MS SETB P2.0 INC R4 MOV A,R4 MOVC A,@A+DPTR MOV P0,A CLR P2.1 ACALL D1MS SETB P2.1 INC R4 MOV A,R4 MOVC A,@A+DPTR MOV P0,A CLR P2.2 ACALL D1MS SETB P2.2 INC R4 MOV A,R4 MOVC A,@A+DPTR MOV P0,A CLR P2.3 ACALL D1MS SETB P2.3 INC R4 MOV A,R4

第 21 页 共 33页

MOVC A,@A+DPTR MOV P0,A CLR P2.4 ACALL D1MS SETB P2.4 INC R4 MOV A,R4 MOVC A,@A+DPTR MOV P0,A CLR P2.5 ACALL D1MS SETB P2.5 RET

;------------------------------------------------------------------- ;发生程序********************************** CALLHOST: ;叮咚声 MOV R4,#200 SP10: CPL P2.7

LCALL D1MS LCALL D1MS DJNZ R4,SP10 MOV R4,#255 SP20: CPL P2.7

LCALL D1MS LCALL D1MS LCALL D1MS DJNZ R4,SP20 MOV R4,#255 SP30: SETB P2.7

LCALL D1MS LCALL D1MS LCALL D1MS DJNZ R4,SP30 RET ;嘟~嘟声

SP_OUT: MOV R4,#20 SP1: CPL SPOUT

LCALL DISPLAY DJNZ R4,SP1 MOV R4,#50 SP2: CPL SPOUT

LCALL DISPLAY DJNZ R4,SP2

第 22 页 共 33页

MOV R4,#20 SP3: SETB SPOUT

LCALL DISPLAY

DJNZ R4,SP3 RET

;----------------------------------------------------------------------

; I2C软件包的底层子程序,使用前要定义好SCL和SDA。在标准80C51模式下,对主频要求是不高于12KHz;要是高于12KHz,则要增加相应的NOP指令数。 ;---------------------------------------------------------------------- ;启动I2C总线子程序******************************** START: SETB SDA NOP SETB SCL ;起始条件建立时间大于4.7us NOP NOP NOP NOP NOP CLR SDA NOP ;起始条件锁定时键大于4.7us NOP NOP NOP NOP CLR SCL ;钳住总线,准备发送数据 NOP RET

;结束总线子程序********************************* STOP: CLR SDA NOP SETB SCL ;发送结束条件的始终信号 NOP ;结束总线时间大于4.7us NOP NOP NOP NOP SETB SDA ;结束总线 NOP ;保证一个终止信号和起始信号的空闲时间大于4.7us NOP NOP NOP RET

;发送应答信号子程序***************************************

第 23 页 共 33页