- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
温度传感器18b20做地温度计
本电路采用用DS18B20做温度传感器,3位共阳数码管做显示,AT89C2051单片机做处理控制,电路简单,无需调试,安装好后就可以使用了。从X1接入5V±0.5V直流电源(注意正负极),按一下S1进入温度设定状态,这时可以按S2或S3调整设定温度值,再按一下S1电路显示当前的温度值,长按S1为关闭显示和温控,再次S2和S3任意一键再次打开。电路中还设计了一路控制输出,当当前温度超出设定温度时LED1被点亮,同时从X2输出5V电压,可驱动5V继电器等。
;**************************************
; 数据变量定义
;**************************************
TEMPL EQU 34H ;DS18B20温度采集低八位
TEMPH EQU 35H ;DS18B20温度采集高八位
L0 EQU 30H ;实时温度
L1 EQU 31H ;个位显示缓存
L2 EQU 32H ;十位显示缓存
L3 EQU 33H ;百位显示缓存
HW EQU 3FH ;最高温度
T1_S EQU 3EH
;------------------------------------------------
;----数码管----段选---------
P_A BIT P1.0
P_B BIT P1.1
P_C BIT P1.2
P_D BIT P1.3
P_E BIT P1.4
P_F BIT P1.5
P_G BIT P1.6
;-------位选-----------------
BAI_W BIT P3.2
SHI_W BIT P3.3
GE_W BIT P3.4
;--------LED-----------------
JDQ BIT P3.5
;--------按键----------------
S1 BIT P1.7
S2 BIT P3.0
S3 BIT P3.1
;-------DS18B20--------------
DS18B20 BIT P3.7 ;DS18B20数据脚定义
S1_1 BIT 20H.0
XS_NO BIT 20H.1
;**************************************
; 程序存储空间分配
;**************************************
ORG 0000H
AJMP START
ORG 000BH
AJMP INT_T0
ORG 0030H
;**************************************
; 程序初始化
;**************************************
START: MOV SP,#60H
MOV R0,#30H
MOV R1,#20
ST1: MOV @R0,#0
INC R0
DJNZ R1,ST1
CLR S1_1
MOV HW,#16
MOV TMOD, ;定时器T0设定为工作方式1
MOV TH0,#4CH ;定时器T0计数初值高位
MOV TL0,#00H ;定时器T0计数初值低位
SETB EA ;开总中断
SETB ET0 ;允许定时器T0中断
SETB TR0 ;启动定时器T0
;**************************************
; 主程序开始
;**************************************
LOOP: JB XS_NO,NO_XS
CALL DISPLAY
CALL BCD ;将2进制转成BCD码
CALL DISPLAY
JMP LOOP
;**************************************
;t0中断服务子程序
;**************************************
INT_T0: PUSH ACC
PUSH PSW
MOV TH0,#4CH ;定时器T0计数初值高位
MOV TL0,#00H ;定时器T0计数初值低位
CALL WENDUZH ;调用温度转换子程序
; CALL DISPLAY
INC T1_S
MOV A,T1_S
CJNE A,#3,EXIT1
MOV T1_S,#00
CALL AJ
EXIT1: POP PSW
POP ACC
RETI
;--------------------------------------------
;----------------
文档评论(0)