📄 ad.lst
字号:
A51 MACRO ASSEMBLER AD 08/03/2005 23:34:07 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN .\ad.obj
ASSEMBLER INVOKED BY: D:\软件安装\C51\BIN\A51.EXE F:\ad\ad.asm SET(SMALL) DEBUG PRINT(.\ad.lst) OBJECT(.\ad.obj) EP
LOC OBJ LINE SOURCE
0030 1 CH EQU 30H
0031 2 DPCNT EQU 31H
0033 3 DPBUF EQU 33H
0032 4 GDATA EQU 32H
00B0 5 ST BIT P3.0 ;设置使能端口
00B1 6 OE BIT P3.1
00B2 7 EOC BIT P3.2
8
0000 9 ORG 00H ;程序起始
0000 020030 10 LJMP START ;跳转
000B 11 ORG 0BH ;设置定时器中断入口地址
000B 02007E 12 LJMP T0X ;中断调转
0030 13 ORG 30H ;主程序开始
0030 7530BC 14 START: MOV CH,#0BCH ;30=BCH
0033 753100 15 MOV DPCNT,#00H ;31=00H
0036 7931 16 MOV R1,#DPCNT ;R1=00H
0038 7F05 17 MOV R7,#5 ;R7=5
003A 740A 18 MOV A,#10 ;A=10
003C 7833 19 MOV R0,#DPBUF ;R0指向33H单元
003E F6 20 LOP: MOV @R0,A ;(33H)=10
003F 08 21 INC R0 ;33H-->34H
0040 DFFC 22 DJNZ R7,LOP ;33H--37H单元赋值10
0042 7600 23 MOV @R0,#00H ;38H=00
0044 08 24 INC R0
0045 7600 25 MOV @R0,#00H
0047 08 26 INC R0
0048 7600 27 MOV @R0,#00H ;38H\39H\40H单元情零
004A 758901 28 MOV TMOD,#01H ;定时器初始化,定时方式一,Tmax=65.536ms
004D 758CF0 29 MOV TH0,#(65536-4000)/256 ;定时器赋初值
0050 758A60 30 MOV TL0,#(65536-4000) MOD 256 ;
0053 D28C 31 SETB TR0 ;启动定时器TO
0055 D2A9 32 SETB ET0
0057 D2AF 33 SETB EA ;开总中断
0059 C2B0 34 WT: CLR ST ;
005B D2B0 35 SETB ST ;启动0809
005D C2B0 36 CLR ST ;
005F 30B2FD 37 WAIT: JNB EOC,WAIT ;等待转换
0062 D2B1 38 SETB OE
0064 858032 39 MOV GDATA,P0 ;暂存AD 转换值
0067 C2B1 40 CLR OE ;停止读入数据
0069 E532 41 MOV A,GDATA ;数据送入累加器
006B 75F064 42 MOV B,#100 ;B=100
006E 84 43 DIV AB ;累加器A除以寄存器B,相当于十进制的除法
006F F533 44 MOV 33H,A ;商放在33H单元,相当于百位
0071 E5F0 45 MOV A,B ;暂存余数
0073 75F00A 46 MOV B,#10 ;暂存除数10
0076 84 47 DIV AB ;余数与10做除法
0077 F534 48 MOV 34H,A ;余数商存储34H,相当于十位
0079 85F035 49 MOV 35H,B ;存储个位
007C 80DB 50 SJMP WT
007E 00 51 T0X: NOP ;定时器中断子程序
007F 758CF0 52 MOV TH0,#(65536-4000)/256 ;T0重装初值
0082 758A60 53 MOV TL0,#(65536-4000) MOD 256
0085 9000A4 54 MOV DPTR,#DPCD ;DPTR指向字形数据表
0088 E531 55 MOV A,DPCNT ;清零A
008A 2433 56 ADD A,#DPBUF ;取出显示数据位(33H--35H)的暂存地址
008C F8 57 MOV R0,A ;R0暂存数据位地址
008D E6 58 MOV A,@R0 ;取出数据地址的内容
A51 MACRO ASSEMBLER AD 08/03/2005 23:34:07 PAGE 2
008E 93 59 MOVC A,@A+DPTR ;取出字形码
008F F590 60 MOV P1,A ;字形码送至I/O口P1
0091 9000AF 61 MOV DPTR,#DPBT ;LED 驱动口查表
0094 E531 62 MOV A,DPCNT
0096 93 63 MOVC A,@A+DPTR
0097 F5A0 64 MOV P2,A
0099 0531 65 INC DPCNT
009B E531 66 MOV A,DPCNT
009D B40803 67 CJNE A,#8,NEXT
00A0 753100 68 MOV DPCNT,#00H
00A3 32 69 NEXT: RETI
00A4 3F065B4F 70 DPCD: DB 3FH,06H,5BH,4FH,66H
00A8 66
00A9 6D7D077F 71 DB 6DH,7DH,07H,7FH,6FH,00H
00AD 6F00
00AF FEFDFBF7 72 DPBT: DB 0FEH,0FDH,0FBH,0F7H
00B3 EFDFBF7F 73 DB 0EFH,0DFH,0BFH,07FH
74 END
A51 MACRO ASSEMBLER AD 08/03/2005 23:34:07 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
B. . . . . . . . . D ADDR 00F0H A
CH . . . . . . . . N NUMB 0030H A
DPBT . . . . . . . C ADDR 00AFH A
DPBUF. . . . . . . N NUMB 0033H A
DPCD . . . . . . . C ADDR 00A4H A
DPCNT. . . . . . . N NUMB 0031H A
EA . . . . . . . . B ADDR 00A8H.7 A
EOC. . . . . . . . B ADDR 00B0H.2 A
ET0. . . . . . . . B ADDR 00A8H.1 A
GDATA. . . . . . . N NUMB 0032H A
LOP. . . . . . . . C ADDR 003EH A
NEXT . . . . . . . C ADDR 00A3H A
OE . . . . . . . . B ADDR 00B0H.1 A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
ST . . . . . . . . B ADDR 00B0H.0 A
START. . . . . . . C ADDR 0030H A
T0X. . . . . . . . C ADDR 007EH A
TH0. . . . . . . . D ADDR 008CH A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
WAIT . . . . . . . C ADDR 005FH A
WT . . . . . . . . C ADDR 0059H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -