📄 tempc.src
字号:
MOV L_4,R7
; L_5=(wd-L_4*1000)/100;
; SOURCE LINE # 188
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV R4,#03H
MOV R5,#0E8H
ACALL ?C?IMUL
CLR C
MOV A,wd+01H
SUBB A,R7
MOV R7,A
MOV A,wd
SUBB A,R6
MOV R6,A
MOV R4,#00H
MOV R5,#064H
ACALL ?C?SIDIV
MOV L_5,R7
; if (sign_jd)
; SOURCE LINE # 189
MOV A,sign_jd
JZ ?C0023
; {
; SOURCE LINE # 190
; LED_1=LEDDis[L_2];
; SOURCE LINE # 191
MOV R7,L_2
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#LOW (LEDDis)
ADD A,R7
MOV DPL,A
MOV A,#HIGH (LEDDis)
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV LED_1,A
; LED_2=LEDDis[L_3]|0x80;
; SOURCE LINE # 192
MOV R7,L_3
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#LOW (LEDDis)
ADD A,R7
MOV DPL,A
MOV A,#HIGH (LEDDis)
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
ORL A,#080H
MOV LED_2,A
; LED_3=LEDDis[L_4];
; SOURCE LINE # 193
MOV R7,L_4
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#LOW (LEDDis)
ADD A,R7
MOV DPL,A
MOV A,#HIGH (LEDDis)
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV LED_3,A
; LED_4=LEDDis[L_5];
; SOURCE LINE # 194
MOV R7,L_5
; }
; SOURCE LINE # 195
SJMP ?C0044
?C0023:
; else
; {
; SOURCE LINE # 197
; LED_1=LEDDis[L_1];
; SOURCE LINE # 198
MOV R7,L_1
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#LOW (LEDDis)
ADD A,R7
MOV DPL,A
MOV A,#HIGH (LEDDis)
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV LED_1,A
; LED_2=LEDDis[L_2];
; SOURCE LINE # 199
MOV R7,L_2
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#LOW (LEDDis)
ADD A,R7
MOV DPL,A
MOV A,#HIGH (LEDDis)
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV LED_2,A
; LED_3=LEDDis[L_3]|0x80;
; SOURCE LINE # 200
MOV R7,L_3
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#LOW (LEDDis)
ADD A,R7
MOV DPL,A
MOV A,#HIGH (LEDDis)
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
ORL A,#080H
MOV LED_3,A
; LED_4=LEDDis[L_4];
; SOURCE LINE # 201
MOV R7,L_4
?C0044:
MOV A,R7
RLC A
SUBB A,ACC
MOV R6,A
MOV A,#LOW (LEDDis)
ADD A,R7
MOV DPL,A
MOV A,#HIGH (LEDDis)
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV LED_4,A
; }
; SOURCE LINE # 202
; }
; SOURCE LINE # 203
?C0025:
RET
; END OF V2ToV
;
;
; void InitDS1820(void) //初始化DS1820
RSEG ?PR?InitDS1820?TEMPC
InitDS1820:
USING 0
; SOURCE LINE # 206
; {
; SOURCE LINE # 207
; TMPort=1; //拉高TMPort
; SOURCE LINE # 208
SETB P3_7
; _nop_(); //保持一个周期
; SOURCE LINE # 209
NOP
; TMPort = 0; //拉低TMPort
; SOURCE LINE # 210
CLR P3_7
; Delay_510(); //延时 DS1820复位时间要500us的低电平
; SOURCE LINE # 211
ACALL Delay_510
; TMPort = 1; //拉高TMPort
; SOURCE LINE # 212
SETB P3_7
; _nop_(); //保持
; SOURCE LINE # 213
NOP
; _nop_();
; SOURCE LINE # 214
NOP
; _nop_();
; SOURCE LINE # 215
NOP
;
; Delay_110(); //延时110us 等待DS1820回应
; SOURCE LINE # 217
ACALL Delay_110
; if (!TMPort) //回应信号为低电平
; SOURCE LINE # 218
JB P3_7,?C0026
; DS18B20ON = 1;
; SOURCE LINE # 219
SETB DS18B20ON
SJMP ?C0027
?C0026:
; else
; DS18B20ON = 0;
; SOURCE LINE # 221
CLR DS18B20ON
?C0027:
; Delay_110(); //延时
; SOURCE LINE # 222
ACALL Delay_110
; Delay_110();
; SOURCE LINE # 223
ACALL Delay_110
; TMPort = 1; //拉高TMPort
; SOURCE LINE # 224
SETB P3_7
; }
; SOURCE LINE # 225
RET
; END OF InitDS1820
;
;
; void Delay_510(void) //延时510微秒
RSEG ?PR?Delay_510?TEMPC
Delay_510:
; SOURCE LINE # 228
; {
; SOURCE LINE # 229
; #pragma asm
; MOV R0,#7DH
MOV R0,#7DH
; MOV R1,#02H
MOV R1,#02H
; TSR1:
TSR1:
; DJNZ R0,TSR1
DJNZ R0,TSR1
; MOV R0,#7DH
MOV R0,#7DH
; DJNZ R1,TSR1
DJNZ R1,TSR1
; #pragma endasm
; }
; SOURCE LINE # 238
RET
; END OF Delay_510
;
; void Delay_110(void) //延时110微秒
RSEG ?PR?Delay_110?TEMPC
Delay_110:
; SOURCE LINE # 240
; {
; SOURCE LINE # 241
; #pragma asm
; MOV R0,#19H
MOV R0,#19H
; MOV R1,#02H
MOV R1,#02H
; TSR2:
TSR2:
; DJNZ R0,TSR2
DJNZ R0,TSR2
; MOV R0,#19H
MOV R0,#19H
; DJNZ R1,TSR2
DJNZ R1,TSR2
; #pragma endasm
; }
; SOURCE LINE # 250
RET
; END OF Delay_110
;
; void Delay_10ms(void) //延时10ms
RSEG ?PR?Delay_10ms?TEMPC
Delay_10ms:
; SOURCE LINE # 252
; {
; SOURCE LINE # 253
; #pragma asm
; MOV R0,#19H
MOV R0,#19H
; MOV R1,#0C8H
MOV R1,#0C8H
; TSR3:
TSR3:
; DJNZ R0,TSR3
DJNZ R0,TSR3
; MOV R0,#19H
MOV R0,#19H
; DJNZ R1,TSR3
DJNZ R1,TSR3
; #pragma endasm
; }
; SOURCE LINE # 262
RET
; END OF Delay_10ms
;
; void Delay_4s(void) //延时4s
RSEG ?PR?Delay_4s?TEMPC
Delay_4s:
; SOURCE LINE # 264
; {
; SOURCE LINE # 265
; #pragma asm
; MOV R2,#28H
MOV R2,#28H
; TSR5:
TSR5:
; MOV R0,#0FAH
MOV R0,#0FAH
; MOV R1,#0C8H
MOV R1,#0C8H
; TSR4:
TSR4:
; DJNZ R0,TSR4
DJNZ R0,TSR4
; MOV R0,#0FAH
MOV R0,#0FAH
; DJNZ R1,TSR4
DJNZ R1,TSR4
; DJNZ R2,TSR5
DJNZ R2,TSR5
; #pragma endasm
; }
; SOURCE LINE # 277
RET
; END OF Delay_4s
;
; void ROMDS1820(void) //跳过ROM匹配
RSEG ?PR?ROMDS1820?TEMPC
ROMDS1820:
; SOURCE LINE # 279
; {
; SOURCE LINE # 280
; #pragma asm
; MOV A,#0CCH
MOV A,#0CCH
; MOV R2,#8
MOV R2,#8
; CLR C
CLR C
; WR1:
WR1:
; CLR P3_7
CLR P3_7
; MOV R3,#6
MOV R3,#6
; DJNZ R3,$
DJNZ R3,$
; RRC A
RRC A
; MOV P3_7,C
MOV P3_7,C
; MOV R3,#23
MOV R3,#23
; DJNZ R3,$
DJNZ R3,$
; SETB P3_7
SETB P3_7
; NOP
NOP
; DJNZ R2,WR1
DJNZ R2,WR1
; SETB P3_7
SETB P3_7
; #pragma endasm
; }
; SOURCE LINE # 298
RET
; END OF ROMDS1820
;
; void TMVDS1820(void) //温度转换指令
RSEG ?PR?TMVDS1820?TEMPC
TMVDS1820:
; SOURCE LINE # 300
; {
; SOURCE LINE # 301
; #pragma asm
; MOV A,#44H
MOV A,#44H
; MOV R2,#8
MOV R2,#8
; CLR C
CLR C
; WR2:
WR2:
; CLR P3_7
CLR P3_7
; MOV R3,#6
MOV R3,#6
; DJNZ R3,$
DJNZ R3,$
; RRC A
RRC A
; MOV P3_7,C
MOV P3_7,C
; MOV R3,#23
MOV R3,#23
; DJNZ R3,$
DJNZ R3,$
; SETB P3_7
SETB P3_7
; NOP
NOP
; DJNZ R2,WR2
DJNZ R2,WR2
; SETB P3_7
SETB P3_7
; #pragma endasm
; }
; SOURCE LINE # 319
RET
; END OF TMVDS1820
;
; void TMRDS1820(void) //读出温度指令
RSEG ?PR?TMRDS1820?TEMPC
TMRDS1820:
; SOURCE LINE # 321
; {
; SOURCE LINE # 322
; #pragma asm
; MOV A,#0BEH
MOV A,#0BEH
; MOV R2,#8
MOV R2,#8
; CLR C
CLR C
; WR3:
WR3:
; CLR P3_7
CLR P3_7
; MOV R3,#6
MOV R3,#6
; DJNZ R3,$
DJNZ R3,$
; RRC A
RRC A
; MOV P3_7,C
MOV P3_7,C
; MOV R3,#23
MOV R3,#23
; DJNZ R3,$
DJNZ R3,$
; SETB P3_7
SETB P3_7
; NOP
NOP
; DJNZ R2,WR3
DJNZ R2,WR3
; SETB P3_7
SETB P3_7
; #pragma endasm
; }
; SOURCE LINE # 340
RET
; END OF TMRDS1820
;
; void TMWDS1820(void) //写入温度限制指令
RSEG ?PR?TMWDS1820?TEMPC
TMWDS1820:
; SOURCE LINE # 342
; {
; SOURCE LINE # 343
; #pragma asm
; MOV A,#04EH
MOV A,#04EH
; MOV R2,#8
MOV R2,#8
; CLR C
CLR C
; WR13:
WR13:
; CLR P3_7
CLR P3_7
; MOV R3,#6
MOV R3,#6
; DJNZ R3,$
DJNZ R3,$
; RRC A
RRC A
; MOV P3_7,C
MOV P3_7,C
; MOV R3,#23
MOV R3,#23
; DJNZ R3,$
DJNZ R3,$
; SETB P3_7
SETB P3_7
; NOP
NOP
; DJNZ R2,WR13
DJNZ R2,WR13
; SETB P3_7
SETB P3_7
; #pragma endasm
; }
; SOURCE LINE # 361
RET
; END OF TMWDS1820
;
; void TMREDS1820(void) //COPY RAM to E2PRAM
RSEG ?PR?TMREDS1820?TEMPC
TMREDS1820:
; SOURCE LINE # 363
; {
; SOURCE LINE # 364
; #pragma asm
; MOV A,#48H
MOV A,#48H
; MOV R2,#8
MOV R2,#8
; CLR C
CLR C
; WR33:
WR33:
; CLR P3_7
CLR P3_7
; MOV R3,#6
MOV R3,#6
; DJNZ R3,$
DJNZ R3,$
; RRC A
RRC A
; MOV P3_7,C
MOV P3_7,C
; MOV R3,#23
MOV R3,#23
; DJNZ R3,$
DJNZ R3,$
; SETB P3_7
SETB P3_7
; NOP
NOP
; DJNZ R2,WR33
DJNZ R2,WR33
; SETB P3_7
SETB P3_7
; #pragma endasm
; }
; SOURCE LINE # 382
RET
; END OF TMREDS1820
;
; void TMERDS1820(void) //COPY E2PRAM to RAM
RSEG ?PR?TMERDS1820?TEMPC
TMERDS1820:
; SOURCE LINE # 384
; {
; SOURCE LINE # 385
; #pragma asm
; MOV A,#0B8H
MOV A,#0B8H
; MOV R2,#8
MOV R2,#8
; CLR C
CLR C
; WR43:
WR43:
; CLR P3_7
CLR P3_7
; MOV R3,#6
MOV R3,#6
; DJNZ R3,$
DJNZ R3,$
; RRC A
RRC A
; MOV P3_7,C
MOV P3_7,C
; MOV R3,#23
MOV R3,#23
; DJNZ R3,$
DJNZ R3,$
; SETB P3_7
SETB P3_7
; NOP
NOP
; DJNZ R2,WR43
DJNZ R2,WR43
; SETB P3_7
SETB P3_7
; #pragma endasm
; }
; SOURCE LINE # 403
RET
; END OF TMERDS1820
;
; void WriteDS1820(void) //写入温度限制值
RSEG ?PR?WriteDS1820?TEMPC
WriteDS1820:
; SOURCE LINE # 405
; {
; SOURCE LINE # 406
; #pragma asm
; MOV A,26H //发出4EH写ROM指令后连发两个字节分别为上下限
MOV A,26H
; MOV R2,#8
MOV R2,#8
; CLR C
CLR C
; WR23:
WR23:
; CLR P3_7
CLR P3_7
; MOV R3,#6
MOV R3,#6
; DJNZ R3,$
DJNZ R3,$
; RRC A
RRC A
; MOV P3_7,C
MOV P3_7,C
; MOV R3,#23
MOV R3,#23
; DJNZ R3,$
DJNZ R3,$
; SETB P3_7
SETB P3_7
; NOP
NOP
; DJNZ R2,WR23
DJNZ R2,WR23
; SETB P3_7
SETB P3_7
; #pragma endasm
; }
; SOURCE LINE # 424
RET
; END OF WriteDS1820
;
; void ReadDS1820(void) //读出温度值
RSEG ?PR?ReadDS1820?TEMPC
ReadDS1820:
; SOURCE LINE # 426
; {
; SOURCE LINE # 427
; #pragma asm
; MOV R4,#2 ; 将温度高位和低位,高温限制位从DS18B20中读出
MOV R4,#2 ; 将温度高位和低位,高温限制位从DS18B20中读出
; MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H),高温限制位存入27H(TMRomV)
MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H),高温限制位存入27H(TMRomV)
; RE00:
RE00:
; MOV R2,#8
MOV R2,#8
; RE01:
RE01:
; CLR C
CLR C
; SETB P3_7
SETB P3_7
; NOP
NOP
; NOP
NOP
; CLR P3_7
CLR P3_7
; NOP
NOP
; NOP
NOP
; NOP
NOP
; SETB P3_7
SETB P3_7
; MOV R3,#09
MOV R3,#09
; RE10:
RE10:
; DJNZ R3,RE10
DJNZ R3,RE10
; MOV C,P3_7
MOV C,P3_7
; MOV R3,#23
MOV R3,#23
; RE20:
RE20:
; DJNZ R3,RE20
DJNZ R3,RE20
; RRC A
RRC A
; DJNZ R2,RE01
DJNZ R2,RE01
; MOV @R1,A
MOV @R1,A
; DEC R1
DEC R1
; DJNZ R4,RE00
DJNZ R4,RE00
; #pragma endasm
; }
; SOURCE LINE # 456
RET
; END OF ReadDS1820
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -