基于单片机的温度控制系统 2(6)

2025-07-19

附录

附录1

电源线插接说明:

所提供的电池盒,红线为正,黑线为负。板子所留出来的电源插口用VCC(表示电源正)和GND(表示电源负)标明。若没有标明,我们会刻有记号,刻有+号处为电源正。

24

附录2

主板电路图

- 25 -

附录3

程序代码

ORG 0000H TEMPER_L EQU 29H TEMPER_H EQU 28H

FLAG1 EQU 38H;是否检测到DS18B20标志位 A_BIT EQU 20H ;数码管个位数存放内存位置 B_BIT EQU 21H ;数码管十位数存放内存位置 XS EQU 30H MOV A,#00H MOV P2,A

MAIN:LCALL GET_TEMPER;调用读温度子程序 MOV A,29H MOV B,A CLR C RLC A CLR C RLC A CLR C RLC A CLR C RLC A SWAP A MOV 31H,A MOV A,B

MOV C,40H;将28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A

26

MOV C,43H RRC A MOV 29H,A

LCALL DISPLAY;调用数码管显示子程序 AJMP MAIN; 这是DS18B20复位初始化子程序 INIT_1820:SETB P1.0

NOP

CLR P1.0;主机发出延时537微秒的复位低脉冲 MOV R1,#3

TSR1:MOV R0,#107

DJNZ R0,$ DJNZ R1,TSR1

SETB P1.0;然后拉高数据线 NOP NOP NOP

MOV R0,#25H

TSR2:JNB P1.0,TSR3;等待DS18B20回应

DJNZ R0,TSR2 LJMP TSR4 ; 延时

TSR3:SETB FLAG1 ; 置标志位,表示DS1820存在

LJMP TSR5

TSR4:CLR FLAG1 ; 清标志位,表示DS1820不存在

LJMP TSR7 TSR5:MOV R0,#117

TSR6:DJNZ R0,TSR6 ; 时序要求延时一段时间 TSR7:SETB P1.0

RET; 读出转换后的温度值 GET_TEMPER:SETB P1.0

LCALL INIT_1820;先复位DS18B20 JB FLAG1,TSS2

RET ; 判断DS1820是否存在?若DS18B20不存在则返回

27

TSS2:MOV A,#0CCH ; 跳过ROM匹配

LCALL WRITE_1820

MOV A,#44H ; 发出温度转换命令

LCALL WRITE_1820;这里通过调用显示子程序实现延时一段时间,等待AD转换结

束,12位的话750微秒

LCALL DISPLAY

LCALL INIT_1820;准备读温度前先复位 MOV A,#0CCH ; 跳过ROM匹配 LCALL WRITE_1820

MOV A,#0BEH ; 发出读温度命令 LCALL WRITE_1820

LCALL READ_18200; 将读出的温度数据保存到35H/36H RET;写DS18B20的子程序(有具体的时序要求) WRITE_1820:MOV R2,#8;一共8位数据

CLR C

WR1:CLR P1.0

MOV R3,#6 DJNZ R3,$ RRC A MOV P1.0,C MOV R3,#23 DJNZ R3,$ SETB P1.0 NOP

DJNZ R2,WR1

RET; 读DS18B20的程序,从DS18B20中读出两个字节的温度数据 READ_18200:MOV R4,#2 ; 将温度高位和低位从DS18B20中读出

MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)

RE00:MOV R2,#8;数据一共有8位 RE01:CLR C

SETB P1.0 NOP

28


基于单片机的温度控制系统 2(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数学课堂评价语

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219