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

📄 tcmain.src

📁 采用AT89C2051芯片的自制电脑可调温度控制器V1.51源码
💻 SRC
📖 第 1 页 / 共 3 页
字号:
			; SOURCE LINE # 308
; 	TMPort = 1;		//拉高TMPort
			; SOURCE LINE # 309
	SETB 	P3_7
; 	_nop_();      //保持一个周期
			; SOURCE LINE # 310
	NOP  	
; 	TMPort = 0;		//拉低TMPort
			; SOURCE LINE # 311
	CLR  	P3_7
;   Delay_510();  //延时  DS1820复位时间要500us的低电平
			; SOURCE LINE # 312
	ACALL	Delay_510
;   TMPort = 1;   //拉高TMPort
			; SOURCE LINE # 313
	SETB 	P3_7
; 	_nop_();      //保持  
			; SOURCE LINE # 314
	NOP  	
; 	_nop_();
			; SOURCE LINE # 315
	NOP  	
; 	_nop_();
			; SOURCE LINE # 316
	NOP  	
; 
;   Delay_110();  //延时110us 等待DS1820回应
			; SOURCE LINE # 318
	ACALL	Delay_110
;   if (!TMPort)  //回应信号为低电平
			; SOURCE LINE # 319
	JB   	P3_7,?C0057
;     DS1820ON = 1;
			; SOURCE LINE # 320
	SETB 	DS1820ON
	SJMP 	?C0058
?C0057:
;   else
;     DS1820ON = 0;
			; SOURCE LINE # 322
	CLR  	DS1820ON
?C0058:
;   Delay_110();  //延时
			; SOURCE LINE # 323
	ACALL	Delay_110
;   Delay_110();
			; SOURCE LINE # 324
	ACALL	Delay_110
;   TMPort = 1;   //拉高TMPort
			; SOURCE LINE # 325
	SETB 	P3_7
; }
			; SOURCE LINE # 326
	RET  	
; END OF InitDS1820

; 
; void ROMDS1820(void)  //跳过ROM匹配

	RSEG  ?PR?ROMDS1820?TCMAIN
ROMDS1820:
			; SOURCE LINE # 328
; {
			; SOURCE LINE # 329
; #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 # 347
	RET  	
; END OF ROMDS1820

; 
; void TMVDS1820(void)  //温度转换指令

	RSEG  ?PR?TMVDS1820?TCMAIN
TMVDS1820:
			; SOURCE LINE # 349
; {
			; SOURCE LINE # 350
; #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 # 368
	RET  	
; END OF TMVDS1820

; 
; void TMRDS1820(void)  //读出温度指令

	RSEG  ?PR?TMRDS1820?TCMAIN
TMRDS1820:
			; SOURCE LINE # 370
; {
			; SOURCE LINE # 371
; #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 # 389
	RET  	
; END OF TMRDS1820

; 
; void TMWDS1820(void)  //写入温度限制指令

	RSEG  ?PR?TMWDS1820?TCMAIN
TMWDS1820:
			; SOURCE LINE # 391
; {
			; SOURCE LINE # 392
; #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 # 410
	RET  	
; END OF TMWDS1820

; 
; void TMREDS1820(void)		//COPY RAM to E2PRAM

	RSEG  ?PR?TMREDS1820?TCMAIN
TMREDS1820:
			; SOURCE LINE # 412
; {
			; SOURCE LINE # 413
; #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 # 431
	RET  	
; END OF TMREDS1820

; 
; void TMERDS1820(void)		//COPY E2PRAM to RAM

	RSEG  ?PR?TMERDS1820?TCMAIN
TMERDS1820:
			; SOURCE LINE # 433
; {
			; SOURCE LINE # 434
; #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 # 452
	RET  	
; END OF TMERDS1820

; 
; void WriteDS1820(void)	//写入温度限制值

	RSEG  ?PR?WriteDS1820?TCMAIN
WriteDS1820:
			; SOURCE LINE # 454
; {
			; SOURCE LINE # 455
; #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 # 473
	RET  	
; END OF WriteDS1820

; 
; void ReadDS1820(void) //读出温度值

	RSEG  ?PR?ReadDS1820?TCMAIN
ReadDS1820:
			; SOURCE LINE # 475
; {
			; SOURCE LINE # 476
; #pragma asm
;   MOV R4,#3 ; 将温度高位和低位,高温限制位从DS18B20中读出
	  MOV R4,#3 ; 将温度高位和低位,高温限制位从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 # 505
	RET  	
; END OF ReadDS1820

; 
; void Delay_510(void)	//延时510微秒

	RSEG  ?PR?Delay_510?TCMAIN
Delay_510:
			; SOURCE LINE # 507
; {
			; SOURCE LINE # 508
; #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 # 517
	RET  	
; END OF Delay_510

; 
; void Delay_110(void)	//延时110微秒

	RSEG  ?PR?Delay_110?TCMAIN
Delay_110:
			; SOURCE LINE # 519
; {
			; SOURCE LINE # 520
; #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 # 529
	RET  	
; END OF Delay_110

; 
; void Delay_10ms(void)	//延时10ms

	RSEG  ?PR?Delay_10ms?TCMAIN
Delay_10ms:
			; SOURCE LINE # 531
; {
			; SOURCE LINE # 532
; #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 # 541
	RET  	
; END OF Delay_10ms

; 
; void Delay_4s(void)	//延时4s

	RSEG  ?PR?Delay_4s?TCMAIN
Delay_4s:
			; SOURCE LINE # 543
; {
			; SOURCE LINE # 544
; #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 # 556
	RET  	
; END OF Delay_4s

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -