📄 ds18b20.lst
字号:
01CC F6 139 MOV @R0,A
01CD 08 140 NST: INC R0
01CE E530 141 MOV A,DAT ;取温度值
01D0 75F00A 142 MOV B,#10 ;十位数在ACC中,个位数在B中
01D3 84 143 DIV AB
01D4 900232 144 MOV DPTR,#TAB ;将十位数转换为数码管字形码值存入BUFT中
01D7 93 145 MOVC A,@A+DPTR
01D8 F6 146 MOV @R0,A
01D9 08 147 INC R0 ;字形码缓冲区地址加1
01DA E5F0 148 MOV A,B
01DC 93 149 MOVC A,@A+DPTR ;将个位数字形码连同小数点存入BUFT中
01DD D2E7 150 SETB ACC.7
01DF F6 151 MOV @R0,A
01E0 08 152 INC R0 ;字形码缓冲区地址加1
01E1 E531 153 MOV A,POINT ;取小数点后的值字形码存入缓冲区BUFT中
01E3 20E305 154 JB ACC.3,FLOAT
01E6 743F 155 MOV A,#3FH
01E8 F6 156 MOV @R0,A
01E9 8003 157 JMP E
01EB 746D 158 FLOAT: MOV A,#6DH
01ED F6 159 MOV @R0,A
01EE 22 160 E: RET
161
162 ;显示温度子程序,使用了DPTR、R0、R5。
163 ;BUFT中存放的是温度值的字形码
01EF 7843 164 Disply: MOV R0,#BUFT
01F1 E6 165 MOV A,@R0
01F2 F590 166 MOV P1,A ;送出正负位的7段代码
01F4 D2B4 167 SETB P3.4 ;开个位显示
01F6 5116 168 CALL DISP
01F8 C2B4 169 CLR P3.4
170
01FA E6 171 MOV A,@R0
01FB F590 172 MOV P1,A ;送出十位的7段代码
01FD D2B5 173 SETB P3.5 ;开十位显示
01FF 5116 174 CALL DISP
0201 C2B5 175 CLR P3.5
176
0203 E6 177 MOV A,@R0
0204 F590 178 MOV P1,A ;送出个位的7段代码
0206 D2B6 179 SETB P3.6 ;开个位显示
0208 5116 180 CALL DISP
020A C2B6 181 CLR P3.6
182
020C E6 183 MOV A,@R0
020D F590 184 MOV P1,A ;送出小数位的7段代码
020F D2B7 185 SETB P3.7 ;开小数位显示
0211 5116 186 CALL DISP
0213 C2B7 187 CLR P3.7
0215 22 188 RET
189
190 ;显示一个数字子程序
A51 MACRO ASSEMBLER DS18B20 01/06/2009 10:18:37 PAGE 4
0216 7DFA 191 DISP: MOV R5,#250 ;等待600微秒
0218 DDFE 192 DJNZ R5,$
193
021A 08 194 INC R0 ;BUFT字形码缓冲区地址加1,准备显示下一个数字
021B 22 195 RET
196
021C 7F9D 197 DLY700: MOV R7,#157 ;延时700微秒子程序,使用R7
021E DFFE 198 DJNZ R7,$
0220 7F11 199 DLY70: MOV R7,#17 ;延时70微秒子程序,使用R7
0222 DFFE 200 DJNZ R7,$
0224 22 201 RET
202
203 ;延时1分钟子程序,使用R5、R6、R7
0225 7DF0 204 DLY1M: MOV R5,#240
0227 7EFA 205 LOOP1: MOV R6,#250
0229 7FFA 206 LOOP2: MOV R7,#250
022B DFFE 207 DJNZ R7,$
022D DEFA 208 DJNZ R6,LOOP2
022F DDF6 209 DJNZ R5,LOOP1
0231 22 210 RET
211
212
0232 C0F9A4B0 213 TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
0236 999282F8
023A 8090
214 ;DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;a~f字形码
023C 7F6F777C 215 DB 7FH,6FH,77H,7CH,58H,5EH,79H,71H
0240 585E7971
216
217
218 END
A51 MACRO ASSEMBLER DS18B20 01/06/2009 10:18:37 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
B. . . . . . . . . D ADDR 00F0H A
BTH. . . . . . . . D ADDR 0047H A
BTL. . . . . . . . D ADDR 0048H A
BUF. . . . . . . . D ADDR 003AH A
BUFT . . . . . . . D ADDR 0043H A
BUSY . . . . . . . C ADDR 0132H A
CONFIG . . . . . . N NUMB 001FH A
CTC. . . . . . . . N NUMB 0044H A
DAT. . . . . . . . D ADDR 0030H A
DISP . . . . . . . C ADDR 0216H A
DISPLY . . . . . . C ADDR 01EFH A
DLY1M. . . . . . . C ADDR 0225H A
DLY70. . . . . . . C ADDR 0220H A
DLY700 . . . . . . C ADDR 021CH A
DQ . . . . . . . . B ADDR 00B0H.2 A
E. . . . . . . . . C ADDR 01EEH A
FLOAT. . . . . . . C ADDR 01EBH A
I1 . . . . . . . . C ADDR 0169H A
INITIAL. . . . . . C ADDR 0162H A
LOOP1. . . . . . . C ADDR 0227H A
LOOP2. . . . . . . C ADDR 0229H A
LROMC. . . . . . . N NUMB 00CCH A
MAIN . . . . . . . C ADDR 0100H A
MROMC. . . . . . . N NUMB 0055H A
N. . . . . . . . . N NUMB 0008H A
NEG. . . . . . . . C ADDR 01B5H A
NST. . . . . . . . C ADDR 01CDH A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
POINT. . . . . . . D ADDR 0031H A
PSW. . . . . . . . D ADDR 00D0H A
R8BIT. . . . . . . C ADDR 0182H A
RER. . . . . . . . C ADDR 0153H A
RETN . . . . . . . C ADDR 0125H A
ROMA . . . . . . . D ADDR 0032H A
RR1. . . . . . . . C ADDR 0184H A
RREGC. . . . . . . N NUMB 00BEH A
RROMC. . . . . . . N NUMB 0033H A
SP . . . . . . . . D ADDR 0081H A
SROMC. . . . . . . N NUMB 00F0H A
STORE. . . . . . . C ADDR 0193H A
TAB. . . . . . . . C ADDR 0232H A
TH . . . . . . . . N NUMB 0028H A
TL . . . . . . . . N NUMB 000AH A
W1 . . . . . . . . C ADDR 0173H A
W2 . . . . . . . . C ADDR 017AH A
W8BIT. . . . . . . C ADDR 0171H A
WREGC. . . . . . . N NUMB 004EH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -