📄 a.lst
字号:
A51 MACRO ASSEMBLER A 03/11/2008 21:44:51 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN a.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE a.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0020 1 a_bit equ 20h ;个位数存放处
0021 2 b_bit equ 21h ;十位数存放处
0022 3 temp equ 22h ;计数器寄存器
4
0000 752212 5 star: mov temp,#18 ;初始化计数器
0003 1112 6 stlop: acall display
0005 0522 7 inc temp
0007 E522 8 mov a,temp
0009 B46403 9 cjne a,#100,next ;=100重来
000C 752200 10 mov temp,#0
000F 020003 11 next: ljmp stlop
12
13 ;显示子程序
0012 E522 14 display: mov a,temp ;将temp中的十六进制数转换成10进制
0014 75F00A 15 mov b,#10 ;10进制/10=10进制
0017 84 16 div ab
0018 F521 17 mov b_bit,a ;十位在a
001A 85F020 18 mov a_bit,b ;个位在b
19
001D 900044 20 mov dptr,#numtab ;指定查表启始地址
0020 7804 21 mov r0,#4
0022 79FA 22 dpl1: mov r1,#250 ;显示1000次
0024 E520 23 dplop: mov a,a_bit ;取个位数
0026 93 24 MOVC A,@A+DPTR ;查个位数的7段代码
0027 F590 25 mov p1,a ;送出个位的7段代码
0029 C2A0 26 clr p2.0 ;开个位显示
002B 113F 27 acall d1ms ;显示1ms
002D D2A0 28 setb p2.0
002F E521 29 mov a,b_bit ;取十位数
0031 93 30 MOVC A,@A+DPTR ;查十位数的7段代码
0032 F580 31 mov p0,a ;送出十位的7段代码
0034 C2A1 32 clr p2.1 ;开十位显示
0036 113F 33 acall d1ms ;显示1ms
0038 D2A1 34 setb p2.1
003A D9E8 35 djnz r1,dplop ;100次没完循环
003C D8E4 36 djnz r0,dpl1 ;4个100次没完循环
003E 22 37 ret
38 ;1MS延时(按12MHZ算)
39 ;====================================================
003F 7F7C 40 D1MS: MOV R7,#380
*** _______________________________________^
*** WARNING #A52 IN 40 (a.asm, LINE 40): VALUE HAS BEEN TRUNCATED TO 8 BITS
0041 DFFE 41 DJNZ R7,$
0043 22 42 RET
43
44 ;7段数码管各划的数字排列表
0044 C0F9A4B0 45 numtab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
0048 999282F8
004C 8090
46 ;0 1 2 3 4 5 6 7 8 9
004E 8883C6A1 47 db 88h,83h,0c6h,0a1h,86h,8eh
0052 868E
48 ;a b c d e f
49 end
A51 MACRO ASSEMBLER A 03/11/2008 21:44:51 PAGE 2
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
A_BIT. . . . . . . N NUMB 0020H A
B. . . . . . . . . D ADDR 00F0H A
B_BIT. . . . . . . N NUMB 0021H A
D1MS . . . . . . . C ADDR 003FH A
DISPLAY. . . . . . C ADDR 0012H A
DPL1 . . . . . . . C ADDR 0022H A
DPLOP. . . . . . . C ADDR 0024H A
NEXT . . . . . . . C ADDR 000FH A
NUMTAB . . . . . . C ADDR 0044H A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
STAR . . . . . . . C ADDR 0000H A
STLOP. . . . . . . C ADDR 0003H A
TEMP . . . . . . . N NUMB 0022H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -