📄 tlc2543.lst
字号:
A51 MACRO ASSEMBLER TLC2543 06/11/2008 17:20:56 PAGE 1
MACRO ASSEMBLER A51 V1.13
OBJECT MODULE PLACED IN TLC2543.OBJ
ASSEMBLER INVOKED BY: D:\PROGRA~1\MANLEY\MEDWIN~1.39\A51.EXE TLC2543.ASM DB
LOC OBJ LINE SOURCE
0030 1 CH EQU 30H
0031 2 DPCNT EQU 31H
0032 3 DPBUF EQU 32H
4
00A2 5 ADCLK EQU P2.2
00A3 6 ADCS EQU P2.3
00A0 7 ADIN EQU P2.0
00A1 8 ADOUT EQU P2.1
0050 9 ADOUTL EQU 50H ; AD转换结果存储区
0051 10 ADOUTH EQU 51H
11
0033 12 Z0 EQU 33H
0034 13 Z1 EQU 34H
0035 14 Z2 EQU 35H
0036 15 Z3 EQU 36H
0037 16 Z4 EQU 37H
0038 17 Z5 EQU 38H
18
19
0000 20 ORG 00H
0000 020030 21 LJMP START
000B 22 ORG 0BH
000B 020066 23 LJMP T0X
0030 24 ORG 30H
25
0030 7530BC 26 START: MOV CH, #0BCH
0033 753100 27 MOV DPCNT, #00H
0036 7931 28 MOV R1, #DPCNT
0038 7F09 29 MOV R7, #9
003A 740A 30 MOV A, #10
003C 7832 31 MOV R0, #DPBUF
32
003E F6 33 LOP: MOV @R0, A
003F 08 34 INC R0
0040 DFFC 35 DJNZ R7, LOP
0042 7600 36 MOV @R0, #00H
0044 758901 37 MOV TMOD, #01H
0047 758CF0 38 MOV TH0, #(65536-4000)/256
004A 758A60 39 MOV TL0, #(65536-4000) MOD 256
004D D28C 40 SETB TR0
004F D2A9 41 SETB ET0
0051 D2AF 42 SETB EA
43
0053 AE51 44 LOOP: MOV R6, ADOUTH
0055 EE 45 MOV A, R6
0056 540F 46 ANL A, #0FH
0058 FE 47 MOV R6, A
0059 AF50 48 MOV R7, ADOUTL
005B 12008C 49 LCALL HB2
005E 7901 50 MOV R1, #01H
0060 1200C8 51 LCALL AD_DATA
0063 020053 52 LJMP LOOP
0066 00 53 T0X: NOP
0067 758CF0 54 MOV TH0, #(65536-4000)/256
006A 758A60 55 MOV TL0, #(65536-4000) MOD 256
006D 9000FC 56 MOV DPTR, #DPCD
0070 E531 57 MOV A, DPCNT
0072 2432 58 ADD A, #DPBUF
A51 MACRO ASSEMBLER TLC2543 06/11/2008 17:20:56 PAGE 2
0074 F8 59 MOV R0, A
0075 E6 60 MOV A, @R0
0076 93 61 MOVC A, @A+DPTR
0077 F5B0 62 MOV P3, A
0079 900107 63 MOV DPTR, #DPBT
007C E531 64 MOV A, DPCNT
007E 93 65 MOVC A, @A+DPTR
007F F590 66 MOV P1, A
0081 0531 67 INC DPCNT
0083 E531 68 MOV A, DPCNT
0085 B40803 69 CJNE A, #8H, NEXT
0088 753100 70 MOV DPCNT, #00H
008B 32 71 NEXT: RETI
72 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
73 ;;标号: HB2功能:双字节十六进制整数转换成三字节十进制整数
74 ;;入口条件:待转换的双字节十六进制整数在R6、R7中。R6为高位
75 ;;出口信息:转换后的三字节十进制整数在R3、R4、R5中。
76 ;;影响资源:PSW、A、R2~R7 堆栈需求: 2字节
77 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
008C 78 HB2:
008C E4 79 CLR A ;BCD码初始化
008D FB 80 MOV R3, A
008E FC 81 MOV R4, A
008F FD 82 MOV R5, A
0090 7A10 83 MOV R2, #10H ;转换双字节十六进制整数
0092 84 HB3:
0092 EF 85 MOV A, R7 ;从高端移出待转换数的一位到CY中
0093 33 86 RLC A
0094 FF 87 MOV R7, A
0095 EE 88 MOV A, R6
0096 33 89 RLC A
0097 FE 90 MOV R6, A
0098 EB 91 MOV A, R3 ;BCD码带进位自身相加,相当于乘2
0099 3B 92 ADDC A, R3
009A D4 93 DA A ;十进制调整
009B FB 94 MOV R3, A
009C EC 95 MOV A, R4
009D 3C 96 ADDC A, R4
009E D4 97 DA A
009F FC 98 MOV R4, A
00A0 ED 99 MOV A, R5
00A1 3D 100 ADDC A, R5
00A2 D4 101 DA A
00A3 FD 102 MOV R5, A
00A4 DAEC 103 DJNZ R2, HB3
00A6 EB 104 MOV A, R3
00A7 540F 105 ANL A, #0FH
00A9 F533 106 MOV Z0, A
00AB EB 107 MOV A, R3
00AC 54F0 108 ANL A, #0F0H
00AE C4 109 SWAP A
00AF F534 110 MOV Z1, A
00B1 EC 111 MOV A, R4
00B2 540F 112 ANL A, #0FH
00B4 F535 113 MOV Z2, A
00B6 EC 114 MOV A, R4
00B7 54F0 115 ANL A, #0F0H
00B9 C4 116 SWAP A
00BA F536 117 MOV Z3, A
00BC ED 118 MOV A, R5
00BD 540F 119 ANL A, #0FH
00BF F537 120 MOV Z4, A
00C1 ED 121 MOV A, R5
00C2 54F0 122 ANL A, #0F0H
00C4 C4 123 SWAP A
00C5 F538 124 MOV Z5, A
A51 MACRO ASSEMBLER TLC2543 06/11/2008 17:20:56 PAGE 3
125
00C7 22 126 RET
127 ;******************一次采集数据**********************
00C8 128 AD_DATA:
00C8 E9 129 MOV A, R1
00C9 C4 130 SWAP A
00CA 54F0 131 ANL A, #0F0H
00CC F9 132 MOV R1, A ;
00CD 11D1 133 ACALL RD_AD ;输入控制信号 输出空转一次
134 ; MOV R1, #00H ;有效转换开始 输入空转一次
00CF 11D1 135 ACALL RD_AD
00D1 136 RD_AD: ;TLC2543AD转换子程序,R1内容为控;制字,结果的高;;8位保存在R2,低4位保存;在R3。
00D1 C2A2 137 CLR ADCLK ; 置CLK为低
00D3 D2A3 138 SETB ADCS ; 置CS为高
00D5 00 139 NOP
00D6 00 140 NOP
00D7 C2A3 141 CLR ADCS ; 置CS为低,转换开始 输出转换后的第一位
00D9 7A08 142 MOV R2, #08H ; 8位控制字移入TLC2543,高8位
00DB E9 143 MOV A, R1 ; 控制字装入A中
144
00DC 145 LOP1:
00DC A2A1 146 MOV C, ADOUT ; 将转换输入的第一位送入C
00DE 33 147 RLC A ; 将AD转换后的数据移入A的低位 同时将控制字的高位移入C
00DF 92A0 148 MOV ADIN, C ; 准备将控制字输入AD
00E1 D2A2 149 SETB ADCLK ; CLK上升沿 将控制字移入AD输入寄存器
00E3 C2A2 150 CLR ADCLK ; CLK下降沿 将输入结果下一位移入DOUT
00E5 DAF5 151 DJNZ R2, LOP1
00E7 C4 152 SWAP A ; A中现在存储的是 D11-D4 变成 D7-D4 D11-D8 排列
00E8 7851 153 MOV R0, #ADOUTH
00EA D6 154 XCHD A, @R0 ; 将AD输出结果的D11-D8(即高4位)移入R0所指向的存储单元 A的低4位不关心
00EB C4 155 SWAP A ; A中低4位现在存储的是D7-D4 高4位不关心
156
00EC 7A04 157 MOV R2, #04H ; 准备读入剩下的4位
00EE 158 LOP2:
00EE A2A1 159 MOV C, ADOUT
00F0 33 160 RLC A
00F1 D2A2 161 SETB ADCLK
00F3 C2A2 162 CLR ADCLK
00F5 DAF7 163 DJNZ R2, LOP2
00F7 F550 164 MOV ADOUTL, A ; 将转换结果放入R1所指向的储存单元
00F9 D2A3 165 SETB ADCS ; 转换结束
00FB 22 166 RET
167
00FC 3F065B4F 168 DPCD: DB 3FH,06H,5BH,4FH,66H
0100 66
0101 6D7D077F 169 DB 6DH,7DH,07H,7FH,6FH,00H
0105 6F00
0107 FEFDFBF7 170 DPBT: DB 0FEH,0FDH,0FBH,0F7H
010B EFDFBF7F 171 DB 0EFH,0DFH,0BFH,07FH
172
173 END
A51 MACRO ASSEMBLER TLC2543 06/11/2008 17:20:56 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ADCLK. . . . . . . B ADDR 00A0H.2 A
ADCS . . . . . . . B ADDR 00A0H.3 A
ADIN . . . . . . . B ADDR 00A0H.0 A
ADOUT. . . . . . . B ADDR 00A0H.1 A
ADOUTH . . . . . . N NUMB 0051H A
ADOUTL . . . . . . N NUMB 0050H A
AD_DATA. . . . . . C ADDR 00C8H A
CH . . . . . . . . N NUMB 0030H A
DPBT . . . . . . . C ADDR 0107H A
DPBUF. . . . . . . N NUMB 0032H A
DPCD . . . . . . . C ADDR 00FCH A
DPCNT. . . . . . . N NUMB 0031H A
EA . . . . . . . . B ADDR 00A8H.7 A
ET0. . . . . . . . B ADDR 00A8H.1 A
HB2. . . . . . . . C ADDR 008CH A
HB3. . . . . . . . C ADDR 0092H A
LOOP . . . . . . . C ADDR 0053H A
LOP. . . . . . . . C ADDR 003EH A
LOP1 . . . . . . . C ADDR 00DCH A
LOP2 . . . . . . . C ADDR 00EEH A
NEXT . . . . . . . C ADDR 008BH A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
RD_AD. . . . . . . C ADDR 00D1H A
START. . . . . . . C ADDR 0030H A
T0X. . . . . . . . C ADDR 0066H A
TH0. . . . . . . . D ADDR 008CH A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
Z0 . . . . . . . . N NUMB 0033H A
Z1 . . . . . . . . N NUMB 0034H A
Z2 . . . . . . . . N NUMB 0035H A
Z3 . . . . . . . . N NUMB 0036H A
Z4 . . . . . . . . N NUMB 0037H A
Z5 . . . . . . . . N NUMB 0038H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -