⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tempc.src

📁 温度传感器程序
💻 SRC
📖 第 1 页 / 共 2 页
字号:
	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 + -