📄 clock.lst
字号:
020B 00 131 NOP
020C 00 132 NOP
133 ;按键处理子程序
020D C2AF 134 ANKEY: CLR EA ;关中断
020F 752500 135 MOV 25H,#00H ;将25H标志位清0
0212 EE 136 LX: MOV A,R6 ;将R6中的键值送A
0213 20E237 137 JB ACC.2,L1 ;若ACC的第2位是1,说明是P3.2外接的功能键按下,转L1
0216 20E31D 138 JB ACC.3,L2 ; 若ACC的第3位是1,说明是P3.3外接的是确认键按下,转L2
0219 20E426 139 JB ACC.4,L3 ; 若ACC的第4位是1,说明是P3.4外接的是减1键按下,转L3
021C 30E509 140 JNB ACC.5,L12 ;若ACC的第5位是0,说明P3.5外接的增1键未按,转L12
021F 205C59 141 JB 2BH.4,L6 ;增1键按下,若2BH的第4位为1,转L6(小时加1)
0222 206C65 142 JB 2DH.4,L8 ;增1键按下,若2DH的第4位为1,转L8(分加1)
0225 207C71 143 JB 2FH.4,L9 ;增1键按下,若2FH的第4位为1,转L9(秒加1)
0228 120173 144 L12: LCALL DISP
022B 120173 145 LCALL DISP
022E 1201E7 146 LCALL KEY ;判断有无键按下
0231 60F5 147 JZ L12
0233 020212 148 LJMP LX
0236 752500 149 L2: MOV 25H,#00H ;确认键处理子程序
0239 C25C 150 CLR 2BH.4
023B C26C 151 CLR 2DH.4
023D C27C 152 CLR 2FH.4
023F D2AF 153 SETB EA
0241 22 154 RET
0242 205C63 155 L3: JB 2BH.4,L611 ;减1键按下,若2BH的第4位为1,转L611(小时减1)
0245 206C6F 156 JB 2DH.4,L811 ;减1键按下,若2DH的第4位为1,转L811(分减1)
0248 207C7B 157 JB 2FH.4,L911 ;减1键按下,若2FH的第4位为1,转L911(秒减1)
024B 4128 158 AJMP L12
024D E525 159 L1: MOV A,25H ; 功能键处理程序,将25H(标志位)中的内容送A
024F 6009 160 JZ LB1 ;若A的值为0,转LB1
0251 20E01C 161 JB ACC.0,LB2 ;若25H的第0位为1转LB2,调整分
0254 20E10E 162 JB ACC.1,LB3 ;若25H的第1位为1转LB3,调整秒
0257 30E2CE 163 JNB ACC.2,L12 ;若25H的第2位为0,转L12返回,
025A 752501 164 LB1: MOV 25H,#01H ;若25H的第2位为1,(25H)=01H调整小时单元的值
025D D25C 165 SETB 2BH.4 ;设置2BH.4为1
025F C26C 166 CLR 2DH.4
0261 C27C 167 CLR 2FH.4
0263 4128 168 AJMP L12
0265 752504 169 LB3: MOV 25H,#04H ;25H单元是标志位,(25H)=04H调节秒单元的值
0268 D27C 170 SETB 2FH.4 ;设置2FH.4为1
026A C26C 171 CLR 2DH.4
026C C25C 172 CLR 2BH.4
026E 4128 173 AJMP L12
0270 752502 174 LB2: MOV 25H,#02H ;25H单元是标志位,(25H)=02H调节分单元的值
0273 D26C 175 SETB 2DH.4 ;设置2DH.4为1
0275 C25C 176 CLR 2BH.4
0277 C27C 177 CLR 2FH.4
0279 4128 178 AJMP L12
027B E523 179 L6: MOV A,23H ;将23H(小时)中的内容送A
027D 2401 180 ADD A,#01H ;小时加1
027F D4 181 DA A ;十进制调整
0280 F523 182 MOV 23H,A ;调整后送23H
0282 B42403 183 CJNE A,#24H,L112 ;23H中的内容不等于24H则转L112
0285 752300 184 MOV 23H,#00H ;23H单元的内容等于24H,23H单元清0
A51 MACRO ASSEMBLER CLOCK 04/20/2005 20:19:34 PAGE 4
0288 4128 185 L112: AJMP L12
028A E522 186 L8: MOV A,22H ;将22H(分)单元的内容送A
028C 2401 187 ADD A,#01H ;分加1
028E D4 188 DA A ;十进制调整
028F F522 189 MOV 22H,A ;调整后送22H
0291 B46094 190 CJNE A,#60H,L12 ;22H单元的内容不等于60H,转L112
0294 752200 191 MOV 22H,#00H ;22H单元的内容等于60H,22H单元清0
0297 4128 192 AJMP L12
0299 E521 193 L9: MOV A,21H ; 将21H(秒)单元的内容送A
029B 2401 194 ADD A,#01H ;秒加1
029D D4 195 DA A ;十进制调整
029E F521 196 MOV 21H,A ;调整后的内容送21H
02A0 B460E5 197 CJNE A,#60H,L112 ;21H单元的内容不等于60H,转L112
02A3 752100 198 MOV 21H,#00H ;21H单元的内容等于60H,21H单元清0
02A6 4128 199 AJMP L12
02A8 E523 200 L611: MOV A,23H ;时减1
02AA 2499 201 ADD A,#99H
02AC D4 202 DA A
02AD F523 203 MOV 23H,A
02AF B499D6 204 CJNE A,#99H,L112
02B2 752323 205 MOV 23H,#23H
02B5 4128 206 AJMP L12
02B7 E522 207 L811: MOV A,22H ;分减1
02B9 2499 208 ADD A,#99H
02BB D4 209 DA A
02BC F522 210 MOV 22H,A
02BE B499C7 211 CJNE A,#99H,L112
02C1 752259 212 MOV 22H,#59H
02C4 4128 213 AJMP L12
02C6 E521 214 L911: MOV A,21H ;秒减1
02C8 2499 215 ADD A,#99H
02CA D4 216 DA A
02CB F521 217 MOV 21H,A
02CD B499B8 218 CJNE A,#99H,L112
02D0 752159 219 MOV 21H,#59H
02D3 4128 220 AJMP L12
02D5 00 221 NOP
02D6 00 222 NOP
223 END
A51 MACRO ASSEMBLER CLOCK 04/20/2005 20:19:34 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
ANKEY. . . . . . . C ADDR 020DH A
B. . . . . . . . . D ADDR 00F0H A
DISP . . . . . . . C ADDR 0173H A
EA . . . . . . . . B ADDR 00A8H.7 A
ET0. . . . . . . . B ADDR 00A8H.1 A
IP . . . . . . . . D ADDR 00B8H A
KEY. . . . . . . . C ADDR 01E7H A
L1 . . . . . . . . C ADDR 024DH A
L112 . . . . . . . C ADDR 0288H A
L12. . . . . . . . C ADDR 0228H A
L2 . . . . . . . . C ADDR 0236H A
L3 . . . . . . . . C ADDR 0242H A
L6 . . . . . . . . C ADDR 027BH A
L611 . . . . . . . C ADDR 02A8H A
L8 . . . . . . . . C ADDR 028AH A
L811 . . . . . . . C ADDR 02B7H A
L9 . . . . . . . . C ADDR 0299H A
L911 . . . . . . . C ADDR 02C6H A
LB1. . . . . . . . C ADDR 025AH A
LB2. . . . . . . . C ADDR 0270H A
LB3. . . . . . . . C ADDR 0265H A
LOOP1. . . . . . . C ADDR 01B2H A
LOOP2. . . . . . . C ADDR 01FFH A
LX . . . . . . . . C ADDR 0212H A
MAIN . . . . . . . C ADDR 0100H A
NEXT . . . . . . . C ADDR 0121H A
P0 . . . . . . . . D ADDR 0080H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PSW. . . . . . . . D ADDR 00D0H A
RETI1. . . . . . . C ADDR 016CH A
RETX . . . . . . . C ADDR 020AH A
SP . . . . . . . . D ADDR 0081H A
TABLE. . . . . . . C ADDR 01C5H A
TH0. . . . . . . . D ADDR 008CH A
TIME . . . . . . . C ADDR 0131H A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -