📄 timer1.lst
字号:
A51 MACRO ASSEMBLER TIMER1 05/09/2005 08:56:06 PAGE 1
MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN TIMER1.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE TIMER1.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0000 1 ORG 0000H
0000 0160 2 AJMP MAIN
0060 3 ORG 0060H
0060 7410 4 MAIN: MOV A,#10H
0062 F52F 5 MOV 2FH,A;设初始显示的状态;时间 年份
0064 318F 6 FF1: ACALL READ
0066 511E 7 ACALL ZHUANHUAN
0068 7400 8 MOV A,#0
006A 7850 9 MOV R0,#50H
006C 7970 10 MOV R1,#70H
006E 7A07 11 MOV R2,#7
0070 E7 12 FF2: MOV A,@R1
0071 F6 13 MOV @R0,A
0072 08 14 INC R0
0073 09 15 INC R1
0074 DAFA 16 DJNZ R2,FF2
17
18 ;根据读键修改时钟值
0076 19 READ_KEY:
0076 909FFF 20 MOV DPTR,#9FFFH;读键
0079 7400 21 MOV A, #00H
007B F0 22 MOVX @DPTR,A
007C 908FFF 23 MOV DPTR,#8FFFH
007F 7400 24 MOV A, #00H
0081 F0 25 MOVX @DPTR,A
0082 3125 26 ACALL KEYREAD;调用子程
0084 E522 27 MOV A,22H
0086 909FFF 28 MOV DPTR,#9FFFH
0089 7400 29 MOV A, #00H
008B F0 30 MOVX @DPTR,A
008C 909FFF 31 MOV DPTR,#9FFFH
008F 7400 32 MOV A, #00H
0091 F0 33 MOVX @DPTR,A
0092 908FFF 34 MOV DPTR,#8FFFH
0095 7400 35 MOV A, #00H
0097 F0 36 MOVX @DPTR,A
37
0098 E522 38 MOV A,22H
009A 6077 39 JZ DIS
009C 201064 40 JB 22H.0, DISPLAY_ME;显示时钟/日期
009F 201106 41 JB 22H.1, HOUR_YEAR;调整月/年
00A2 201222 42 JB 22H.2, MINU_MONTH;调整分/月
00A5 201343 43 JB 22H.3, SECON_DAY;调整日期
44
00A8 45 HOUR_YEAR:
00A8 207C03 46 JB 2FH.4, HOUR
00AB 207D10 47 JB 2FH.5, YEAR
00AE E552 48 HOUR: MOV A,52H
00B0 2401 49 ADD A,#1
00B2 D4 50 DA A
00B3 543F 51 ANL A,#3FH
00B5 B42402 52 CJNE A,#24H,KK1
00B8 7400 53 MOV A,#0
00BA F552 54 KK1: MOV 52H,A
00BC 2121 55 AJMP MODIFY
00BE E556 56 YEAR: MOV A,56H
00C0 2401 57 ADD A,#1
00C2 D4 58 DA A
A51 MACRO ASSEMBLER TIMER1 05/09/2005 08:56:06 PAGE 2
00C3 F556 59 MOV 56H,A
00C5 2121 60 AJMP MODIFY
61
00C7 62 MINU_MONTH:
00C7 207C03 63 JB 2FH.4, MINU
00CA 207D0E 64 JB 2FH.5, MONTH
00CD E551 65 MINU: MOV A,51H
00CF 2401 66 ADD A,#1
00D1 D4 67 DA A
00D2 B46002 68 CJNE A,#60H,KK3
00D5 7400 69 MOV A,#0
00D7 F551 70 KK3: MOV 51H,A
00D9 2121 71 AJMP MODIFY
00DB E555 72 MONTH: MOV A,55H
00DD 2401 73 ADD A,#1
00DF D4 74 DA A
00E0 541F 75 ANL A,#1FH
00E2 B41302 76 CJNE A,#13H,KK4
00E5 7401 77 MOV A,#1
00E7 F555 78 KK4: MOV 55H,A
00E9 2121 79 AJMP MODIFY
80
00EB 81 SECON_DAY:
00EB 207C03 82 JB 2FH.4, SECOND
00EE 207D02 83 JB 2FH.5, DAY
00F1 84 SECOND:
00F1 0164 85 AJMP FF1
00F3 E553 86 DAY: MOV A,53H
00F5 2401 87 ADD A,#1
00F7 D4 88 DA A
00F8 543F 89 ANL A,#3FH
00FA B43202 90 CJNE A,#32H,KK5
00FD 7401 91 MOV A,#01H
00FF F553 92 KK5: MOV 53H,A
0101 2121 93 AJMP MODIFY
94
95
0103 96 DISPLAY_ME:
0103 207C08 97 JB 2FH.4, D_M_2
0106 207D00 98 JB 2FH.5, D_M_1
0109 99 D_M_1:
0109 752F10 100 MOV 2FH,#10H
010C 2113 101 AJMP DIS
010E 102 D_M_2:
010E 752F20 103 MOV 2FH,#20H
0111 2113 104 AJMP DIS
105
106
0113 107 DIS:
0113 207C03 108 JB 2FH.4, DISPLAY_1
0116 207D04 109 JB 2FH.5, DISPLAY_2
0119 110 DISPLAY_1:
0119 31D7 111 ACALL DISPLAY1
011B 2123 112 AJMP MAIN_END
011D 113 DISPLAY_2:
011D 31F6 114 ACALL DISPLAY2
011F 2123 115 AJMP MAIN_END
116
117
0121 31BA 118 MODIFY: ACALL WRITE
0123 0164 119 MAIN_END:AJMP FF1
120
121
122
123
124
A51 MACRO ASSEMBLER TIMER1 05/09/2005 08:56:06 PAGE 3
125
126
127
128
129
130
131
132
133
134
135
136
137
138 ;读键子程
0022 139 NEW_KEY EQU 22H
0023 140 OLD_KEY EQU 23H
0125 141 KEYREAD:
0125 C2D5 142 CLR PSW.5
0127 143 KEY_AGAIN:
0127 3145 144 ACALL KEY_INPUT
0129 30D54A 145 JNB PSW.5, KEY_OVER
012C 317A 146 ACALL KEY_DELAY
012E 3145 147 ACALL KEY_INPUT
0130 30D543 148 JNB PSW.5, KEY_OVER
0133 E522 149 MOV A, NEW_KEY
0135 B5233E 150 CJNE A, OLD_KEY, KEY_OVER
0138 151 UPKEY:
0138 3145 152 ACALL KEY_INPUT
013A 20D5FB 153 JB PSW.5, UPKEY
013D 3145 154 ACALL KEY_INPUT
013F 20D5F6 155 JB PSW.5, UPKEY
156 ;
0142 A822 157 MOV R0,NEW_KEY
0144 22 158 RET
0145 159 KEY_INPUT:
0145 7400 160 MOV A, #00H ;显示0
0147 909000 161 MOV DPTR, #9000H
014A F0 162 MOVX @DPTR, A ;ZIXING
163 ;上面为清诚允
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -