?? adc小數(shù)顯示.lst
字號(hào):
A51 MACRO ASSEMBLER ADC__數(shù)蟔示 08/14/2007 18:17:01 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN ADC小數(shù)顯示.OBJ
ASSEMBLER INVOKED BY: D:\軟件安裝\C51\BIN\A51.EXE ADC小數(shù)顯示.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 ;啟動(dòng)AD轉(zhuǎn)換
0107 7E09 14 MOV R6,#09H ;延時(shí)等待
0109 00 15 DELAY: NOP
010A 00 16 NOP
010B DEFC 17 DJNZ R6,DELAY
010D E0 18 MOVX A,@DPTR ;數(shù)據(jù)送入累加器
010E 3118 19 CALL XSZH
0110 758000 20 mov p0,#00
0113 120168 21 lCALL DISPLAY
0116 80EB 22 JMP LOOP
23 ;*********************************************************
24 ; 一位小數(shù)轉(zhuǎn)換子程序(轉(zhuǎn)換成顯碼)
25 ;入口數(shù)據(jù)存放在累加器A中(8位有效數(shù)),中間寄存器有: B,R0,R1
26 ;出口顯示: 共陽極數(shù)碼管,顯示數(shù)據(jù)個(gè)位存放R0 中,十分位存放R1中
27 ;
28 ;;********************************************************
0118 75F002 29 XSZH: MOV B,#2H ;V0擴(kuò)大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 ;判斷是否存在進(jìn)位
0121 7800 33 MOV R0,#00H ;無進(jìn)位時(shí)R0,R1的值
0123 7900 34 MOV R1,#00H
0125 8004 35 JMP SSS
0127 7802 36 SS: MOV R0,#2H ;有進(jìn)位時(shí)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 ;修正個(gè)位
0139 F8 55 MOV R0,A ;個(gè)位存在R0
013A A9F0 56 MOV R1,B ;十分位存在R1
57
013C E8 58 DL0: MOV A,R0 ;取個(gè)位,
A51 MACRO ASSEMBLER ADC__數(shù)蟔示 08/14/2007 18:17:01 PAGE 2
013D 315B 59 ACALL TABLE0 ;轉(zhuǎn)換為顯碼
013F F533 60 MOV 33H,A ;送顯碼輸出
0141 7400 61 mov a,#00
0143 E9 62 MOV A,R1 ;取十分位
0144 314E 63 ACALL TABLE ;轉(zhuǎn)換為顯碼
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 ;讀個(gè)位表
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 ;個(gè)位表
0162 19120278
0166 FF10
87
88
89
90 ;******************************************;
91 ; LED 顯示子程序
92 ; 顯示緩沖區(qū)為33H--35H
93 ;******************************************;
0168 94 DISPLAY:
0168 E533 95 MOV A,33H ;
96 ; DA A
016A F590 97 MOV P1,A ;送至P1口進(jìn)行顯示
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 ;延時(shí)程序
120 ;****************************************
A51 MACRO ASSEMBLER ADC__數(shù)蟔示 08/14/2007 18:17:01 PAGE 3
017F 7D01 121 DELAY1: MOV R5,#01H ;延時(shí)子程序
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 ;延時(shí)子程序
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__數(shù)蟔示 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)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -