📄 cj2b.lst
字号:
016D FE 215 MOV R6,A
016E ED 216 MOV A,R5; ;BCD码带进位自身相加,相当于乘2
016F 3D 217 ADDC A,R5
0170 D4 218 DA A; ;十进制调整
0171 FD 219 MOV R5,A
0172 EC 220 MOV A,R4
0173 3C 221 ADDC A,R4
0174 D4 222 DA A
0175 FC 223 MOV R4,A
0176 EB 224 MOV A,R3
0177 3B 225 ADDC A,R3
0178 FB 226 MOV R3,A; ;双字节十六进制数的万位数不超过6,不用调整
0179 DAED 227 DJNZ R2,HB3; ;处理完16bit
017B 8B32 228 mov 32h,r3
017D 8C33 229 mov 33h,r4
017F 8D34 230 mov 34h,r5
0181 22 231 RET
232
233 ;显示子程序
0182 90024A 234 display:mov dptr,#tab ;指定查表启始地址
0185 7E32 235 mov r6,#50;显示50次
0187 236 dplop: ;************千位显示
0187 E533 237 mov a,33h
0189 C4 238 swap a
018A 540F 239 anl a,#0fh;
018C 6007 240 jz disp;第一位为0时,不显示
018E 93 241 movc a,@a+dptr
018F F580 242 mov p0,a
0191 C2A3 243 clr p2.3
0193 31FC 244 acall DELY1
245 ;***********如不需要千位显示可删掉
0195 E533 246 disp: mov a,33h
0197 540F 247 anl a,#0fh;屏蔽A中的高四位
0199 6009 248 jz disp1;第二位为0时,不显示
019B 93 249 MOVC A,@A+DPTR;查代码
019C D2A3 250 setb p2.3
019E F580 251 mov p0,a;送出百位的7段代码
01A0 C2A4 252 clr p2.4;开百位显示
01A2 31FC 253 acall DELY1;显示1ms
01A4 E534 254 disp1: mov a,34h
01A6 C4 255 swap a
01A7 540F 256 anl a,#0fh
A51 MACRO ASSEMBLER CJ2B 09/19/2008 20:39:44 PAGE 5
01A9 93 257 movc a,@a+dptr
01AA D2A4 258 setb p2.4
01AC F580 259 mov p0,a
01AE C2A5 260 clr p2.5;开十位显示
01B0 31FC 261 acall DELY1
01B2 E534 262 mov a,34h
01B4 540F 263 anl a,#0fh;屏蔽A中的高四位
01B6 93 264 MOVC A,@A+DPTR;查个位数的7段代码
01B7 D2A5 265 setb p2.5
01B9 F580 266 mov p0,a;送出个位的7段代码
01BB C2A6 267 clr p2.6;开个位显示
01BD 31FC 268 acall DELY1;显示1ms
01BF D2A6 269 setb p2.6
01C1 DEC4 270 djnz r6,dplop;循环
01C3 22 271 ret
272
273 ;数码管显示定时时间的程序
01C4 90024A 274 timea:mov dptr,#tab ;指定查表启始地址
01C7 75F064 275 mov b,#100 ;10进制/10=10进制
01CA 84 276 div ab
01CB 6007 277 jz timea1;第一位为0时,不显示
01CD 93 278 MOVC A,@A+DPTR ;查百位数的7段代码
01CE F580 279 mov p0,a ;送出百位的7段代码
01D0 C2A3 280 clr p2.3 ;开百位显示
01D2 31FC 281 ACALL DELY1;显示1毫秒
01D4 D2A3 282 timea1: setb p2.3;关闭百位显示,防止鬼
01D6 E5F0 283 mov a,b
01D8 75F00A 284 mov b,#10
01DB 84 285 div ab
01DC 93 286 MOVC A,@A+DPTR ;查十位数的7段代码
01DD F580 287 mov p0,a ;送出十位的7段代码
01DF C2A4 288 clr p2.4 ;开十位显示
01E1 31FC 289 ACALL DELY1;显示1毫秒
01E3 D2A4 290 setb p2.4;关闭十位显示,防止鬼影
01E5 E5F0 291 mov a,b;个位
01E7 93 292 MOVC A,@A+DPTR ;查个位数的7段代码
01E8 F580 293 mov p0,a ;送出个位的7段代码
01EA C2A5 294 clr p2.5 ;开个位显示
01EC 31FC 295 ACALL DELY1;显示1毫秒
01EE D2A5 296 setb p2.5;关闭个位显示,防止鬼影
01F0 7400 297 mov a,#0;补充个位
01F2 93 298 MOVC A,@A+DPTR ;查个位数的7段代码
01F3 F580 299 mov p0,a ;送出个位的7段代码
01F5 C2A6 300 clr p2.6 ;开个位显示
01F7 31FC 301 ACALL DELY1;显示1毫秒
01F9 D2A6 302 setb p2.6
01FB 22 303 ret
304
305 ;1毫秒延时子程序
01FC 7C02 306 DELY1: MOV R4,#2
01FE 7DF8 307 DD1: MOV R5,#248
0200 DDFE 308 DJNZ R5,$
0202 DCFA 309 DJNZ R4,DD1
0204 22 310 RET
311
312 ;10毫秒延时子程序
0205 7C14 313 DELAY10:MOV R4,#20
0207 7DF8 314 DD2: MOV R5,#248
0209 DDFE 315 DJNZ R5,$
020B DCFA 316 DJNZ R4,DD2
020D 22 317 RET
318
020E 319 TIME0: ;定时器0溢出中断
020E C0E0 320 PUSH ACC
0210 C0D0 321 PUSH PSW ;将PSW和ACC入栈
0212 C28C 322 clr tr0;关定时器
A51 MACRO ASSEMBLER CJ2B 09/19/2008 20:39:44 PAGE 6
0214 C2A8 323 clr ex0;关外中断
0216 74AA 324 mov a,#0aah
0218 F532 325 mov 32h,a
021A F533 326 mov 33h,a
021C F534 327 mov 34h,a
021E 7800 328 mov r0,#00h
0220 7901 329 mov r1,#01h
0222 B291 330 cpl p1.1
0224 D0D0 331 POP PSW
0226 D0E0 332 POP ACC
0228 32 333 RETI
0229 334 TIME1: ;定时器0的外中断
0229 C0E0 335 PUSH ACC
022B C0D0 336 PUSH PSW ;将PSW和ACC入栈
022D C28C 337 clr tr0;关定时器
022F C2A8 338 clr ex0;关外中断
0231 C2A9 339 clr et0
0233 B297 340 CPL P1.7
0235 E58C 341 mov a,th0;高位
0237 9400 342 subb a,#0h;8bh;0b1h
0239 F530 343 mov 0030h,a
023B E58A 344 mov a,tl0;低位
023D 9478 345 subb a,#78h;48h;0d0h;0f4h;0e0h
023F F531 346 mov 0031h,a
0241 7800 347 mov r0,#00h
0243 7900 348 mov r1,#00h
0245 D0D0 349 POP PSW
0247 D0E0 350 POP ACC
0249 32 351 RETI
352
353 ;4位7段数码管各划的数字排列表(共阴)
024A EB0A676E 354 tab:DB 0ebh,00ah,067h,06eh,08eh,0ech,0edh,02ah,0efh,0eeh,014h,074h
024E 8EECED2A
0252 EFEE1474
355 ;0 1 2 3 4 5 6 7 8 9 一。三。
356 END
A51 MACRO ASSEMBLER CJ2B 09/19/2008 20:39:44 PAGE 7
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
B. . . . . . . . . D ADDR 00F0H A
B1 . . . . . . . . C ADDR 0059H A
B2 . . . . . . . . C ADDR 0066H A
B3 . . . . . . . . C ADDR 0073H A
C1 . . . . . . . . C ADDR 004CH A
C2 . . . . . . . . C ADDR 0079H A
D1 . . . . . . . . C ADDR 0086H A
D2 . . . . . . . . C ADDR 0093H A
D3 . . . . . . . . C ADDR 00A0H A
DD1. . . . . . . . C ADDR 01FEH A
DD2. . . . . . . . C ADDR 0207H A
DELAY10. . . . . . C ADDR 0205H A
DELY1. . . . . . . C ADDR 01FCH A
DENG . . . . . . . C ADDR 00EFH A
DISP . . . . . . . C ADDR 0195H A
DISP1. . . . . . . C ADDR 01A4H A
DISPLAY. . . . . . C ADDR 0182H A
DM23 . . . . . . . C ADDR 013DH A
DM24 . . . . . . . C ADDR 0151H A
DM25 . . . . . . . C ADDR 015AH A
DM26 . . . . . . . C ADDR 015FH A
DPLOP. . . . . . . C ADDR 0187H A
DV30 . . . . . . . C ADDR 013BH A
DV31 . . . . . . . C ADDR 0133H A
EA . . . . . . . . B ADDR 00A8H.7 A
ET0. . . . . . . . B ADDR 00A8H.1 A
EX0. . . . . . . . B ADDR 00A8H.0 A
F0 . . . . . . . . B ADDR 00D0H.5 A
HB2. . . . . . . . C ADDR 0162H A
HB3. . . . . . . . C ADDR 0168H A
HERE . . . . . . . C ADDR 00C9H A
L10. . . . . . . . C ADDR 0113H A
L2 . . . . . . . . C ADDR 010BH A
L3 . . . . . . . . C ADDR 0111H A
L4 . . . . . . . . C ADDR 0121H A
L5 . . . . . . . . C ADDR 0117H A
L6 . . . . . . . . C ADDR 011DH A
L7 . . . . . . . . C ADDR 0123H A
L8 . . . . . . . . C ADDR 0127H A
L9 . . . . . . . . C ADDR 0129H A
LOOP . . . . . . . C ADDR 00BAH A
MAIN . . . . . . . C ADDR 0036H A
MAIN1. . . . . . . C ADDR 0048H A
MAIN2. . . . . . . C ADDR 0075H A
MAIN3. . . . . . . C ADDR 00A2H A
OV . . . . . . . . B ADDR 00D0H.2 A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PSW. . . . . . . . D ADDR 00D0H A
START. . . . . . . C ADDR 00B5H A
STLOP. . . . . . . C ADDR 012DH A
TAB. . . . . . . . C ADDR 024AH A
TH0. . . . . . . . D ADDR 008CH A
TIME0. . . . . . . C ADDR 020EH A
TIME1. . . . . . . C ADDR 0229H A
TIMEA. . . . . . . C ADDR 01C4H A
TIMEA1 . . . . . . C ADDR 01D4H A
A51 MACRO ASSEMBLER CJ2B 09/19/2008 20:39:44 PAGE 8
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 + -