📄 adc小数显示.lst
字号:
A51 MACRO ASSEMBLER ADC__数蟔示 08/14/2007 18:17:01 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN ADC小数显示.OBJ
ASSEMBLER INVOKED BY: D:\软件安装\C51\BIN\A51.EXE ADC小数显示.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ; SJ EQU 40H
0100 2 ORG 0100H
0100 020103 3 LJMP MAIN
4 ; ORG 0013H
5 ; LJMP INT
6
0103 7 MAIN:
8
9
10
11
0103 907FF8 12 LOOP: MOV DPTR,#7FF8H ;送入地址
0106 F0 13 MOVX @DPTR,A ;启动AD转换
0107 7E09 14 MOV R6,#09H ;延时等待
0109 00 15 DELAY: NOP
010A 00 16 NOP
010B DEFC 17 DJNZ R6,DELAY
010D E0 18 MOVX A,@DPTR ;数据送入累加器
010E 3118 19 CALL XSZH
0110 758000 20 mov p0,#00
0113 120168 21 lCALL DISPLAY
0116 80EB 22 JMP LOOP
23 ;*********************************************************
24 ; 一位小数转换子程序(转换成显码)
25 ;入口数据存放在累加器A中(8位有效数),中间寄存器有: B,R0,R1
26 ;出口显示: 共阳极数码管,显示数据个位存放R0 中,十分位存放R1中
27 ;
28 ;;********************************************************
0118 75F002 29 XSZH: MOV B,#2H ;V0扩大100倍,即5.0----〉(256~250)*2
011B A4 30 MUL AB ;乘法A*B=BA
011C AAF0 31 MOV R2,B
011E BA0006 32 CJNE R2,#00H,SS ;判断是否存在进位
0121 7800 33 MOV R0,#00H ;无进位时R0,R1的值
0123 7900 34 MOV R1,#00H
0125 8004 35 JMP SSS
0127 7802 36 SS: MOV R0,#2H ;有进位时R0,R1的值
0129 7905 37 MOV R1,#5H
012B 75F00A 38 SSS: MOV B,#0AH ;缩小10倍
012E 84 39 DIV AB ;A/B=A....B
012F 00 40 NOP
0130 00 41 NOP
42 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
43
44
45
46
47
48
0131 29 49 ADD A,R1 ;并修正十分位
0132 75F00A 50 MOV B,#0AH ;再缩小10倍
0135 84 51 DIV AB
0136 00 52 NOP
0137 00 53 NOP
0138 28 54 ADD A,R0 ;修正个位
0139 F8 55 MOV R0,A ;个位存在R0
013A A9F0 56 MOV R1,B ;十分位存在R1
57
013C E8 58 DL0: MOV A,R0 ;取个位,
A51 MACRO ASSEMBLER ADC__数蟔示 08/14/2007 18:17:01 PAGE 2
013D 315B 59 ACALL TABLE0 ;转换为显码
013F F533 60 MOV 33H,A ;送显码输出
0141 7400 61 mov a,#00
0143 E9 62 MOV A,R1 ;取十分位
0144 314E 63 ACALL TABLE ;转换为显码
0146 F534 64 MOV 34H,A ;送显码输出
65 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0148 EC 66 MOV A,R4
0149 315B 67 CALL TABLE0
014B F535 68 MOV 35H,A
014D 22 69 RET
70 ;******************************************
71 ;
72 ;
73 ;******************************************
014E 04 74 TABLE: INC A ;读十分位表
014F 83 75 MOVC A,@A+PC
76 ;MOV DPTR,#SHI
77 ;MOVC A,@A+DPTR
0150 22 78 RET
0151 C0F9A4B0 79 SHI:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;十分位表*/
0155 999282F8
0159 8090
80
015B 04 81 TABLE0: INC A ;读个位表
015C 83 82 MOVC A,@A+PC
83 ;MOV DPTR,#GW
84 ;MOVC A,@A+DPTR
015D 22 85 RET
015E 40792430 86 GW:DB 40H,079H,024H,030H,19H,12H,2H,078H,0FFH,10H ;个位表
0162 19120278
0166 FF10
87
88
89
90 ;******************************************;
91 ; LED 显示子程序
92 ; 显示缓冲区为33H--35H
93 ;******************************************;
0168 94 DISPLAY:
0168 E533 95 MOV A,33H ;
96 ; DA A
016A F590 97 MOV P1,A ;送至P1口进行显示
016C D2B0 98 SETB P3.0
016E C2B1 99 CLR P3.1
100
0170 12017F 101 LCALL DELAY1
0173 E534 102 MOV A,34H
103 ;DA A
0175 F590 104 MOV P1,A
0177 D2B1 105 SETB P3.1
0179 C2B0 106 CLR P3.0
107
017B 12017F 108 LCALL DELAY1
109 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
110
111
112
113
114
115
116
017E 22 117 RET
118 ;****************************************
119 ;延时程序
120 ;****************************************
A51 MACRO ASSEMBLER ADC__数蟔示 08/14/2007 18:17:01 PAGE 3
017F 7D01 121 DELAY1: MOV R5,#01H ;延时子程序
0181 7BFF 122 D: MOV R3,#0FFH
0183 DBFE 123 E: DJNZ R3,E
0185 DDFA 124 DJNZ R5,D
0187 22 125 RET
0188 7D01 126 DELAY2: MOV R5,#01H ;延时子程序
018A 7BE2 127 X: MOV R3,#0E2H
018C DBFE 128 Z: DJNZ R3,Z
018E DDFA 129 DJNZ R5,X
0190 22 130 RET
131 END
A51 MACRO ASSEMBLER ADC__数蟔示 08/14/2007 18:17:01 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
B. . . . . . . . . D ADDR 00F0H A
D. . . . . . . . . C ADDR 0181H A
DELAY. . . . . . . C ADDR 0109H A
DELAY1 . . . . . . C ADDR 017FH A
DELAY2 . . . . . . C ADDR 0188H A
DISPLAY. . . . . . C ADDR 0168H A
DL0. . . . . . . . C ADDR 013CH A
E. . . . . . . . . C ADDR 0183H A
GW . . . . . . . . C ADDR 015EH A
LOOP . . . . . . . C ADDR 0103H A
MAIN . . . . . . . C ADDR 0103H A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
SHI. . . . . . . . C ADDR 0151H A
SS . . . . . . . . C ADDR 0127H A
SSS. . . . . . . . C ADDR 012BH A
TABLE. . . . . . . C ADDR 014EH A
TABLE0 . . . . . . C ADDR 015BH A
X. . . . . . . . . C ADDR 018AH A
XSZH . . . . . . . C ADDR 0118H A
Z. . . . . . . . . C ADDR 018CH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -