说明书 使用说明: 一、首先开机显示“00-00-00”为“时-分-秒”时间显示。 二、按“调整”键进入调整界面“1-000000”为“代号-时分秒”。“S”,“M”,“H”为时、分、秒的调整,调整结束后按“确认”键进入下一个的调整“2-000000”为定时开机时间的调整,调整方法同上,依次调整“3-定时关机时间”、“4-闹铃时间”、“5-定时时间”、“6-年月日”。 三、调整结束后显示正常时间,按键“定时”进入定时界面,根据调整的时间开始定时,同时看“正反”计时键按下为倒计时,不按为正计时。到时间响铃,按键“返回”回到主界面。 四、正常显示时间的时候按键“正反”计时键切换到年月日的显示。按住“返回”键3秒可以软关机,开机亦如此。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- S_SET BIT P1.0
- M_SET BIT P1.1
- H_SET BIT P1.2
- R_SET BIT P1.3
- Y_SET BIT P1.4
- N_SET BIT P1.5
- D_SET BIT P1.6
- S EQU 30H
- M EQU 31H
- H EQU 32H
- R EQU 33H
- Y EQU 34H
- N EQU 35H
- ORG 0000H
- LJMP MAIN
- ORG 000BH
- LJMP INT_T0
- ORG 0100H
- MAIN:MOV DPTR,#TAB
- MOV H,#0
- MOV M,#0
- MOV S,#0
- MOV R,#1
- MOV Y,#1
- MOV N,#0
- MOV R0,#0
- MOV TMOD,#01H
- MOV TH0,#3CH
- MOV TL0,#0B0H
- SETB TR0
- SETB ET0
- SETB EA
- A1: ACALL DISPLAY
- JNB S_SET,S1
- JNB M_SET,S2
- JNB H_SET,S3
- JNB D_SET,A2
- LJMP A1
- S1: ACALL DEL
- JB S_SET,A1
- INC S
- MOV A,S
- CJNE A,#60,J0
- MOV S,#0
- LJMP J0
- S2: ACALL DEL
- JB M_SET,A1
- K1: INC M
- MOV A,M
- CJNE A,#60,J1
- MOV M,#0
- LJMP J1
- S3: ACALL DEL
- JB H_SET,A1
- K2: INC H
- MOV A,H
- CJNE A,#24,J2
- MOV H,#0
- LJMP J2
- J0: JB S_SET,A1
- ACALL DISPLAY
- SJMP J0
- J1: JB M_SET,A1
- ACALL DISPLAY
- SJMP J1
- J2: JB H_SET,A1
- ACALL DISPLAY
- SJMP J2
- A2: ACALL NYR
- JNB R_SET,S4
- JNB Y_SET,S5
- JNB N_SET,S6
- JB D_SET,A1
- LJMP A2
- S4: ACALL DEL
- JB R_SET,A2
- MOV A,Y
- CJNE A,#2,J304
- INC R
- MOV A,R
- CJNE A,#29,J3
- MOV R,#1
- LJMP J3
- S5: ACALL DEL
- JB Y_SET,A2
- K3: INC Y
- MOV A,Y
- CJNE A,#12,J4
- MOV Y,#1
- LJMP J4
- S6: ACALL DEL
- JB N_SET,A2
- K4: INC N
- MOV A,N
- CJNE A,#60,J5
- MOV N,#0
- LJMP J5
- J3: JB R_SET,A2
- ACALL NYR
- SJMP J3
- J4: JB Y_SET,A2
- ACALL NYR
- SJMP J4
- J5: JB N_SET,A2
- ACALL NYR
- SJMP J5
- J304: MOV A,Y
- CJNE A,#4,J306
- INC R
- MOV A,R
- CJNE A,#31,J3
- MOV R,#1
- LJMP J3
- J306: MOV A,Y
- CJNE A,#6,J309
- INC R
- MOV A,R
- CJNE A,#31,J3
- MOV R,#1
- LJMP J3
- J309: MOV A,Y
- CJNE A,#9,J3011
- INC R
- MOV A,R
- CJNE A,#31,J3
- MOV R,#1
- LJMP J3
- J3011: MOV A,Y
- CJNE A,#11,J31
- INC R
- MOV A,R
- CJNE A,#31,J3
- MOV R,#1
- LJMP J3
- J31: INC R
- MOV A,R
- CJNE A,#32,J3
- MOV R,#1
- LJMP J3
- INT_T0: MOV TH0,#3CH
- MOV TL0,#0B0H
- INC R0
- MOV A,R0
- CJNE A,#20,RETUNE
- INC S
- MOV R0,#0
- MOV A,S
- CJNE A,#60,RETUNE
- INC M
- MOV S,#0
- MOV A,M
- CJNE A,#60,RETUNE
- INC H
- MOV M,#0
- MOV A,H
- CJNE A,#24,RETUNE
- INC R
- MOV H,#0
- MOV M,#0
- MOV S,#0
- MOV A,Y
- CJNE A,#2,T304
- MOV A,R
- CJNE A,#29,RETUNE
- INC Y
- MOV R,#1
- MOV A,Y
- CJNE A,#12,RETUNE
- INC N
- MOV Y,#0
- MOV A,N
- CJNE A,#60,RETUNE
- MOV R,#1
- MOV Y,#1
- MOV N,#0
- MOV R0,#0
- RETUNE: RETI
- T304: MOV A,Y
- CJNE A,#4,T306
- MOV A,R
- CJNE A,#31,RETUNE1
- INC Y
- MOV R,#1
- LJMP DN
- T306: MOV A,Y
- CJNE A,#6,T309
- MOV A,R
- CJNE A,#31,RETUNE1
- INC Y
- MOV R,#1
- LJMP DN
- T309: MOV A,Y
- CJNE A,#9,T3011
- MOV A,R
- CJNE A,#31,RETUNE1
- INC Y
- MOV R,#1
- LJMP DN
- T3011: MOV A,Y
- CJNE A,#11,T31
- MOV A,R
- CJNE A,#31,RETUNE1
- INC Y
- MOV R,#1
- LJMP DN
- T31: MOV A,R
- CJNE A,#32,RETUNE1
- INC Y
- MOV R,#1
- LJMP DN
- DN: MOV A,Y
- CJNE A,#12,RETUNE1
- INC N
- MOV Y,#0
- MOV A,N
- CJNE A,#60,RETUNE1
- MOV R,#0
- MOV Y,#0
- MOV N,#0
- MOV R0,#0
- RETUNE1: RETI
- DISPLAY:MOV A,S
- MOV B,#10
- DIV AB
- SETB P2.6
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.6
- MOV A,B
- SETB P2.7
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.7
- SETB P2.5
- MOV P0,#0BFH
- ACALL DEL
- CLR P2.5
- MOV A,M
- MOV B,#10
- DIV AB
- SETB P2.3
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.3
- MOV A,B
- SETB P2.4
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.4
- SETB P2.2
- MOV P0,#0BFH
- ACALL DEL
- CLR P2.2
- MOV A,H
- MOV B,#10
- DIV AB
- SETB P2.0
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.0
- MOV A,B
- SETB P2.1
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.1
- RET
- NYR: MOV A,R
- MOV B,#10
- DIV AB
- SETB P2.6
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.6
- MOV A,B
- SETB P2.7
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.7
- SETB P2.5
- MOV P0,#0BFH
- ACALL DEL
- CLR P2.5
- MOV A,Y
- MOV B,#10
- DIV AB
- SETB P2.3
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.3
- MOV A,B
- SETB P2.4
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.4
- SETB P2.2
- MOV P0,#0BFH
- ACALL DEL
- CLR P2.2
- MOV A,N
- MOV B,#10
- DIV AB
- SETB P2.0
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.0
- MOV A,B
- SETB P2.1
- MOVC A,@A+DPTR
- MOV P0,A
- ACALL DEL
- CLR P2.1
- RET
- TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
- DEL: MOV R6,#10
- LOOP1:MOV R7,#100
- LOOP2:DJNZ R7,LOOP2
- DJNZ R6,LOOP1
- RET
- END
复制代码
所有资料51hei提供下载:
电子时钟(年月日).zip
(50.99 KB, 下载次数: 103)
|