基于单片机温度控制系统
重庆三峡学院
单片机课程设计报告书
(基于单片机的温度控制系统)
学院(系):
年级专业: | | |
学 | 号: |
|
www. |
教师职称:
成 | 绩: |
制作日期2012年11月2日
目 录 摘 要 ...。。。..。。。..。。.。。..。。..。。。。。。。.。.。。..。...。。.。.。.。..。。。。.... |
基于单片机温度控制系统
。.....。......。..。。。。。.。。.。。.。。。..。.。。。.。....。。。3 | |
第 | 一 |
章.。..。....。.。...。。..。。。。。。.。.。...。。..。。.。。.。。。.。。.。...。。.。。。. 。。。。。...。。.。。。.。.。。.。.。。..。。..。。。。.。。。....。。。4 |
引
言。。..。..。..。......。.。.。。..。。。。.。。。..。。..。。.。。......。。..。。....。..。. 。..。。。.4 | |||
1。 | 1 项 | 目 | 概 |
述.。。。。。。..。..。....。。。。.。。....。。。.。.。。..。.。。。。。。.....。...。。。.。。。.. |
。4
1。 | 2 设 | 计 | 任 | 务 | 和 | 要 | ||||
求.。.。..。。。...。。。.。.....。..。...。.........。..。....。。。。。。。..。。。4 | ||||||||||
第 | 二 | 章 | 硬 | 件 | 系 | 统 | 的 | 设 | ||
计.。.。。..。.。....。。.。。..。.。.....。.。..。.。。。.。.。。.。。.。.。。5 要.。.。。。..。。。。。.。。。...。。。..。.....。。。。。。。。。。。。5 2。 1 硬 计 概 2。 2 各 部 分及 其 实现 的 功 片...。...。能.。 | ||||||||||
2.2。 | 2 温 | 度 | 传 | 感 | ||||||
器...。..。.。...。。.。。.。..。。。..。.。。。.。。。。。.。。。。。...。。。。。。。。.。..。.. |
5
2。 | 2.3 液 | 晶 | 显 | 示 | |||
器。.。..。。。.。。..。。....。..。。........。。。..。。...。。.。。.。.。..。。...。。.8 | |||||||
2。 | 3 主 | 要 | 电 | 路 | 及 | 功 | |
能。。.。..。。.。.。。...。。..。..。...。.....。.。。..。..。......。。。。。..。.11 | |||||||
2。 | 3。 | 1 单 | 片 | 机 | 电 | ||
路..。。。..。。..。.。。。.。。。..。.。.。。........。.。.。..。...。.。.。。。.......11 2。 32 显示 电 路.。..。.。..。。。。..。.。.。.....。...。.。..。..。。....。.。..。.。..。。。...。. |
基于单片机温度控制系统
。12
2.3。 | 3 温 | 度 | 传 | 感 | 器 | 电 | |||||||||||
路.....。。.。..。。。。....。.。..。。。。...。。。。。.。.。..。...。..。。..。..。12 | |||||||||||||||||
2.3.4 升 | 温 | 和 | 降 | 温 | 调 | 节 | 电 | ||||||||||
路.。.。..。。.......。。.。........。。。。.。.。。.。。。。...。。..。..。13 | |||||||||||||||||
2.3。 | 5 温 | 度 | 上 | 下 | 限 | 调 | 节 | 电 | |||||||||
路..。..。..。。。。。.。。..。...。。...。。......。.。.。。。.。.。..。.。.。13 | |||||||||||||||||
2.3.6 报 | 警 | 电 | |||||||||||||||
路。.。.。.。.。..。.....。。.。。。。.。..。。。。.。.....。。。。。...。.。。。.。。.。...。. |
。14
第 | 三 | 章 | 软 | 件 | 系 | 统 | 的 | 设 |
计...。..。。..。。...。。.。。。..。。.。。.。。.。。..。....。。.。。..。。.。..。.。。。.. 。。。.。。。。.。。.。.。15 3。 1 主 程序流 程 .15 图.。.。...。.。 16 3.3 温度 传感 器 流 程 图。。。..。。.....。..。。。.。。.。。。。。。...。。.。.。。..。。.。。..。........17 第四章 仿真与调试.。.。。...。。。..。.。..。。...。.......。.。。。。.。。。17 | ||||||||
4.1 硬 | 件 | 调 | ||||||
试。...。.。。。..。.。。.....。。.。..。...。。.。.。..。.。..。。.。。..。。。.。...。.。 |
...17
4.2 软 | 件 | 电 | 路 | 故 | 障 | 与 | 解 | 决 | 办 |
法。。。..。。。。。。。。。.。。。。。.。.。。.。。.。.。。.。.....。..。。。。...17 | |||||||||
4。 | 3 软 | 件 | 调 | 试 | 方 | ||||
法..。。.。。.。....。。。..。。...。.。。。。.。。..。。。.。。.。.。。.。。。..。。。。.。。。。 | |||||||||
17 | 4 仿 | 真 | 显 | 示 成 | |||||
4。 | |||||||||
果.。.。。.....。。...。。...。..。。。。.。.。..。。。.。。....。。。。。。.。。..18 |
基于单片机温度控制系统
第 五章 实 训 总
结..。.。...。..。.。.。。。。。.。。..。.。。.。。.。。.。...。。..。.。。。。...。..。.2
0
附
录....。。.。.。。。。..。.。。。.......。....。。.。。。..。。。。。。。.。....。.。.。...。。。。。
。.。..。21
基于单片机STCC51的温度显示系统的设计
本设计是基于单片机的温度控制系统,采用DS18B20 温度传感器采 摘要:
线范围内.当DS18B20 所测量的环境温度低于设定温度下限时,蜂鸣器 |
和指示灯发出报警,控制外部加热装置的继电器动作,使外部加热器工
作,直到温度高于温度设定下限时,警报解除。加热装置停止加热.当环
境温度高于温度上限时,蜂鸣器发出报警,控制外部降温装置的电机动
作,使外部降温装置工作,直到环境温度低于温度上限,警报解除,降温装
置停止工作(实现对温度在0℃-99℃控制的自动化)。
该温度控制器的显示部分采用液晶显示,具有显示当先温度、温度
上限值、温度下限值的功能。按键部分采用四个按键,每个按键的功能
不同,用过各个按键的配合使用,可以实现切换液晶显示,调节温度上下
限的功能。
基于单片机温度控制系统
关键字:单片机;传感器;温控;DS18b20
第一章 随着电子技术,特别是随大规模集成电路的产生而出现的微型计算 机技术的飞速发展,人类生活发生了根本性的改变。如果说微型计算机 单片机以其体积小、重量轻、抗干扰能力强、对环境要求不高、高可靠 |
性、高性能价格比、开发较为容易,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走人家庭,从洗衣机、微波炉到音响、汽车,到处都可见到单片机的踪影。因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。本课题研究的内容就是以单片机ATc51为主要控制元件,通过温度传感器DS18B20实现对温度的测量,并通过LCD1602直接显示所测温度。
1.1项目概
温度控制系统无论是工业生产过程,还是日常生活都起着非常重要的作用,过低或过高的温度环境不仅是一种资源的浪费,同时也会对机器和工作人员的寿命产生严重影响,极有可能造成严重的经济财产损 |
基于单片机温度控制系统
失,给生活生产带来许多利的因素,基于ATC51的单片机温度控制系统与传统的温度控制相比具有操作方便、价价格便宜、精确度高和开展容易等优点,因此市场前景好.
1。2设计任务和要求:
本温度控制器系统可以实现以下功能:
(1)采集温度,并通过液晶显示当前温度.
(2)通过按键调节温度上下限,并通过液晶显示设定的温度上下限值.
(3)控制继电器或电机,从而达到控制外部加热、制冷装置。使环境温度保持在设定温度范围内。
(4)具有报警装置。当温度高于上限、或低于下限时,蜂鸣器发出报警声.通过指示灯就可以分辨出是温度过高还是过低。
2.1硬件设计概要
根据需求,我们将系统分为五个模块,信息处理模块,温度采集模块、控制调节模块、报警电路模块,显示模块.
图1 结构图 |
|
基于单片机温度控制系统
2。2各部分及其实现的功能
2.2.1控制芯片STCC51
STCC51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM—FlashProgrammable and Eraseable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容.主要性能:
与MCS—51微控制器产品系列兼容.片内有4KB可在线重复编程的快闪擦写存储器;存储数据保存时间为10年;宽工作电压范围:Vcc可为2。7V到6V;全静态工作:可从0Hz至16MHz;程序存储器具有3级加密保护;128*8位内部RAM;
32条可编程I/O线,两个16位定时器/计数器;中断结构具有5个中断源和2个优先级,可编程全双工串行通道 ,空闲状态维持低功耗和掉电状态保存存储内容。
2.2。2 温度传感器DS18B20: 号位). |
④适配各种单片机或系统机
⑤用户可分别设定各路温度的上、下限
⑥内含寄生电源。口较少,可节省大量的引线和逻辑电路。
2.DS18B20的内部结构
DS18B20内部结构如图1所示,主要由4部分组成:位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的 ;VDD管脚排列如图2所示,DQ为数字信号输入/输出端;GND为电源地为外接供电电源输入端(在寄生电源接线方式时接地,见图4)。ROM中的位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的位序列号均不相同。位ROM的排的循环冗余校验码(CRC=X8+X5+X4+1)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的
基于单片机温度控制系统
目的。
图2 DS118B20 的内部结构
|
3.DS18B20的工作时序
DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操
作指令→数据传输。其工作时序包括初始化时序、写时序和读时序,如
图3(a)(b)(c)所示。 |
|
基于单片机温度控制系统
(a)初始化时序
(b)写时序
(c)读时序
图4 DS18B20 的工作时序图4。DS18B20高速暂存器共9个存储单元,如表所示:
序号 | 寄存器名称 | 作 用 | 序号 | 寄存器名称 | | ||
0 | 温度低字节 | 以16 位补码形式存放 | 4 | 配置寄存器 | | ||
1 | 温度高字节 | 5、6、7 | 保留 下载高 | 清 | |||
2 | TH/用户字节1 | 存放温度上限 | 8 |
| |
基于单片机温度控制系统
3 | HL/用户字节2 | 存放温度下限 | | | |
4.1以12位转化为例说明温度高低字节存放形式及计算:12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于0。0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。
高8 位 | S | S | S | S | S | 26 | 25 | 24 |
低8 位 | 23 | 22 | 21 | 20 | 2—1 | 2—2 | 2-3 | 2-4 |
4.2DS18B20有六条控制命令,如表所示:
|
2。2。3液晶显示模块(LCD1602)
从液晶显示器的显示内容来分,可分为段式、字符式、点阵式.字符型LCD1602专门用于显示数字、字母、符号及几个自定义符号。它可以显示2行x16个字符。
(1).接口定义
注:V0为LCD1602的对比度调整端,接正电源时对比度最弱,接地时对比度最强,一般接10K可调电阻的中端,该可调电阻一端接正电源另一端接地.在读状态下,E为高电平时,LCD1602将所需数据送到数据线上;在写状态下,E为下降沿时LCD1602从数据线上读取
基于单片机温度控制系统
(2)。控制指令 |
1。清屏
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
指令代码为01H,向显示DDRAM中写入ASCII代码20H,清除显示
内容,同时光标移到左上角。
2.光标归位
指令代码为02H,地址计数器AC 被清0,DDRAM 内的数据不变,光标移到左上角。X 表示可为0 或1.
|
基于单片机温度控制系统
3.输入方式设置
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | S |
该指令设置光标及字符移动的方式,具体设置入下表:
状态位 | 指令代码 | 功能 | |
I/D | S | ||
0 | 0 | 04H | 光标左移1 格,AC 值减1,字符不动 |
0 | 1 | 05H | 光标不动,AC 值减1,字符全部右移1 格 |
1 | 0 | 06H | 光标右移1 格,AC 值加1,字符不动 |
1 | 1 | 07H | 光标不动,AC 值加1,字符全部左移1格 |
4.显示开关控制
保持不变. C 是光标显示状态位,C=1 时光标显示;C=0 时光标消失,光标的 |
位置由地址计数器AC确定,并随其变动而移动,当AC值超出了字符的显示范围,光标将随之消失。
B是光标闪烁显示状态位,B=1时光标闪烁;B=0时光标不闪烁.
5。光标、字符移位
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 0 | 1 | S/C | R/L | X | X |
执行该指令将产生字符或光标向左或右滚动一个字符位,如果定时间隔地执行该指令,将产生字符或光标的平滑滚动。
具体设置如下:
|
基于单片机温度控制系统
0 | 0 | 10H | 光标左滚动 |
0 | 1 | 14H | 光标右滚动 |
1 | 0 | 18H | 字符左滚动 |
1 | 1 | 1CH | 字符右滚动 |
6。功能设置
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 0 | 0 | 1 | DL | N | F | 0 | 0 |
该指令用于设置LCD1602的控制方式.
DL用于设置与计算机的接口方式,DL=1为8位数据总线方式;DL=0为4位数据总线方式,其高4位有效,在该方式下8位指令或数据将按先高4位后低4位的顺序分两次传送.
N用于设置显示的字符行数,N=1为两行,N=0为一行。
F用于设置显示字符的字体,F=1为5x10点阵字体,F=0为5x7点阵字
体。 7. CGRAM 地址设置 |
| ||||||||||||||||||||
|
片机对数据的操作是对CGRAM的读/写操作。
8.DDRAM 地址设置
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
0 | 0 | 1 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |
该指令将7位DDRAM地址写入地址指针计数器AC内,随后,单片机对数据的操作是对DDRAM的读/写操作。
9.读BF及AC值
BF 为LCD 的忙闲标志位,BF=1 时为忙,不能对其进行操作;BF=0 |
基于单片机温度控制系统
时为闲,可以对其进行操作。而另外的D6~D0的值表示CGRAM或DDRAM中的地址。
10.写数据到CGRAM或DDRAM
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
1 | 0 | | | | | | | | |
先设定CGRAM 或DDRAM 地址,再将数据写入D7~D0 中,以使LCD |
显示出字符,也可将自创的字符写入CGRAM.
11.从CGRAM或DDRAM读取数据
RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
1 | 1 | | | | | | | | |
先设定CGRAM 或DDRAM 地址,再读取其中的数据。 2。3 主要电路及功能 它们决定了单片机的工作时间精度为1 微秒。ATC51单片机作为整个 |
硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。该单片机为51系列增强型8位单片机,它有32个I/O口,片内含4KFLASH工艺的程序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶振为12MHz,一个指令周期为1μS.使用该单片机完全可以完成设计任务,其最小系统主要包括:复位电路、震荡电路。
基于单片机温度控制系统
图4单片机模块
线是背光电源线VCC(15脚)字符型LCD 通常有14 条引脚线或16条引脚线的LCD,和地线GND(16脚),其控制原理与14脚的LCD多出来的2条2.3.2。显示电路 完全一样。 |
图5 显示电路
2.3.3.温度传感器电路
温度检测控制模拟电路图DS18B20原件及其连线如图温度此传感器
上显示的温度同步显示到液晶显示器上,并有加温,减温按钮.
基于单片机温度控制系统
图6温度检测控制模拟电路
2。3.4。升温和降温调节电路
通过控制外部加热装置的继电器动作,使外部加热器工作来达到升
温效果.或控制外部降温装置的电机动作,使外部降温装置工作来达到降 温效果.
|
图7 加温和降温控制电路
2.3。5. 温度上下限调节电路 |
|
通过按键控制键选着调节对象,通过上升下降调节值大小,控制开关, 升 |
基于单片机温度控制系统
温开关,降温开关,复位开关分别为,k1,k2,k3,K4,开始显示的是当前温度,K1开关,用来控制进入温度上限,下限的调节界面。按k1,一次进入三个界面。按K2为加1开关,按一下,加1,k3减1开关,按一下,减1,K4开关用来复位返回到当前温度。
图8 上下限调节电路
2。3。6。报警电路电路
扬声器 | 图9 报警指示灯 | 图10 报警 |
基于单片机温度控制系统
开始
第三章软件系统的设计S51寄存器初始化 |
N
3.1程序流程图 18b20存在?
Y
温度转换命令
开始 | 读取温度 |
总线置1并延时 | 温度数据处理温度显示 |
总线置1 间 内 |
返回
DS18B20初图
温度低于低温下限,低
基于单片机温度控制系统
温报警
3。2液晶显示流程图
上电
设定进入点
进入设定点控制字
显示数据
3.3温度传感器流程图
基于单片机温度控制系统
数据口复位
上电 | 延时 |
单片机拉低总线
初始化
延时
忽略ROM指令 读暂存器指令 | 释放总线 延时,传感器 发生存在脉冲 |
数据处理
送LCD显示
4。1硬件调试 首先调试液晶程序。单片机STCC51的P2口接液晶数据口,根据
液晶手册,将RS1和RE借口接高电平;RS、R/W、EN接口接单片机
P0^3,P0^4,P0^5口,单独调试液晶程序,将hex文件下载到单片机,看看
是否在液晶第一排是否显示“温度”,在第三排是否显示“液晶温度显示"
然后根据DS18B20的手册书写程序,将液晶程序设为头文件,若DS18B20程序无误,则在液晶的第一排首位开始会显示“温度”,第二排的第三个字符开始会显示温度值XX℃,第三排不显示,第四排首位开始显示“液晶温度显示"。如果程序有误,则再看看芯片资料和程序的书写是否有出入,如有错误则再更正,直至显示正确为止。
4.2软件电路故障与解决办法
基于单片机温度控制系统
1.以断点或连续方式运行时,目标测试系统没有按照规定的功能进行操作或什么结果也没有,可能是由于程序转移到意外之处或在某处死循环所造成的.
2。不响应中断Cpu不响应中断或者是不响应某一个中断这种错误的现象是连续运行时不执行中断程序的操作.当断点在中断入口或者中断服务程序中时碰不到断点。错误可能由中断寄存器(IE、IP)的初值设置不当,使CPU没有开放中断或者不许某个中断源请求,或者对片内的定时器、串行口等特殊功能的寄存器和I/O接口程序有错误,造成中断没有被激活.又或者某一中断程序不是RET指令作为返回主程序的指令,CPU虽然已经返回到主程序但内部中断状态寄存器没有被消除,从而不影响中断,或者外部中断源的硬件故障使得外部中断请求无效。
4。3 软件调试方法 调试法、综合调试法等。 软件调试所使用的方法有:计算程序的调试方法、I/O 处理程序的 |
试时,用仿真器写命令。将命令数据写入计算程序的缓冲单元,然后从计算程序开始运行到结束,运行结果与计算的正确数据做比较,如果对有的测试数据进行测试没有发现错误,则该计算程序调试成功。如果发现结果不正确,改用单步运行的方法找出错误所在。如果是计算错误,则需 如果是局部的指令错误,
修改局部程序就可以了。要修改重新设计程序,如果是用于测试的数据没有全部覆盖实际计算的原始数据的类型,调试没有发现错误可能在系统运行中暴露出来。
2、I/O接口处理程序的调试:
对于A/D转换器一类的I/O接口处理程序是实时处理程序,因此一般用全速断点运行方式或连续运行方法进行调试。 | |
3。综合调试: |
|
基于单片机温度控制系统
在完成了各个程序模块的调试工作之后,就可以进行系统的综合调试。综合调试采用全速运行或断点运行方式,这个阶段的主要工作是检测系统里面遗留的错误以及提高系统的动态性能和精度。在综合调试阶段,应该注意系统的晶振频率工作,使系统全速运行目标程序,实现预定功能技术指标之后,就可以将软件固化,然后在运行固化的目标程序,成功后目标系统就可以脱机运行。
4。4仿真后,显示成果:
图11调节温度上下限
基于单片机温度控制系统
图12 显示当前温度
|
基于单片机温度控制系统
图13温度高于温度上限,高温报警灯亮,蜂鸣器鸣叫
第五章总结
基于ATC51单片机的温度控制系统的设计,对整个硬件电路和软件程序设计做了分析,文中介绍了温度控制的现状及发展,介绍了仿真软件proteus及keil的基本知识,学习了proteus的仿真方法和步骤,介绍了温度控制器的设计方案选择及原理介绍,加深了51单片机的知识了解,介绍51单片机的结构、特点等。并学习了温度传感器DS18B20,设计软件仿真,更直观的反应设计的正确性。温度控制利用在很多领域,在一些人不能直接进入的场所,利用单片机控制的温度控制,可以设置并控制其中的温度,温度控制还可以利用在温室中,这样就可以控制温室中的温度,当温度超过所要求的温度时,可发生报警.单片机的功能都为我们实现电路提供了非常有利的条件,同时也为开发环境带去了简单,易用,方便,大大加快本系统设计开发。总之温度控制器用在很多领域。从
本次实习中,发现自己还存在许多的不足,对汇编程序不是很熟悉,不
基于单片机温度控制系统
会灵活运用,导致代码读起来有点困难。还有对数据手册中的时序图理解不是很透彻,以后我会通过实践和理论结合来弥补自己的不足之处。
参考文献:
[1]谢辉主编。单片机原理及应用.化学工业出版社.2010年8月,第一版[2]曹巧媛主编。单片机原理及应用(第二版)。北京电子工业出版社,2002[3]何力民编。单片机高级教程.北京航空大学出版社,2000
[4]陈强等.传感器技术与应用。高等教育出版社,2010
[5]王锦标,方崇智.过程计算机控制。清华大学出版社,1997:36~40
[6]胡寿松.自动控制原理,北京:国防工业出版社,2000:103-124 20~25
|
西安电子科技大学出版社,2007
[10]赵娜,赵刚,于珍珠等。基于51单片机的温度测量系统[J]。微计算机信息,2007,1-2
附录:
附录一
系统整体电路图:
基于单片机温度控制系统
附录二
程序代码:
基于单片机温度控制系统
;-————--——--—--—-——--——--—--—-—————————-———-——————
;简单功能说明:一个显示实时温度的小系统,可以自行设
;定高温报警和低温报警值,实现温度控制电机带动外围器
;件功能。
;
;
—----———-—————---—-————------—-———--———--——————--
DQEQU | P1.7 | ;DS18B20 控制口 | ||||
RS | EQU P2。4 | |||||
RW | EQU P2.5 | |||||
E | EQU P2.6 | |||||
LCD | EQU P0 |
| ||||
FLAG EQU | 30H | |||||
GEWEI EQU | 29H | |||||
| ||||||
TEMPH | EQU | 22H ;温度高字节 | ||||
TEMPLEQU | 23H ;温度低字节 | |||||
TEMP EQU | 24H | |||||
K1 EQU | P3.0 | |||||
K2 EQU | P3.1 | |||||
K3 EQU | P3.2 | |||||
K4 EQU | P3.3 |
;
===============================================
MAIN: | MOV TEMP_TH,#25 | |
MOV TEMP_TL,#01 |
基于单片机温度控制系统
ACALL INIT_LCD;初始化液晶
ACALLWR_THL ;写入高温限值和低温限值寄存器
ACALLWR_PROM
ACALLRE_PROM ;从EEPROM中返回高温限值和低温限值ACALLRESET
;初始化1820JB FLAG,LOOP
ACALL ERROR | ;报错 | |||
LOOP: | ACALL READ_T | ;1820 读取温度 | ||
ACALL DISP_TEMP | ;液晶显示实时温度 | |||
ACALL KEYSCAN | ;键盘设定高温限值和低温限值 |
ACALLTEMP_COMP
JMP | LOOP | |||||
;=============启 | 动 | 18b20 读 | 取 | 温 | 度 | |
READ_T:SETB DQ ==================== READ_T1: |
MOVA,#0CCH
ACALLWR_1820
MOVA,#44H
ACALLWR_1820
ACALLRESET
MOVA,#0CCH
ACALLWR_1820
MOVA,#0BEH
ACALLWR_1820
ACALLREAD_1820
RET |
|
;=========把高温和低温限值写入寄存器================= |
基于单片机温度控制系统
WR_THL: JBFLAG,WR_HL
RET
WR_HL: ACALLRESET
MOVA,#0CCH
ACALLWR_1820
MOVA,#4EH
ACALLWR_1820
MOVA,TEMP_TH
ACALLWR_1820
MOVA,TEMP_TL
ACALLWR_1820
RET
;==========把 | 高 | 温 | 和 | 低 | 温 | 限 | 值 | 写 | 入 |
WR_PROM:ACALL RESETEEPROM================= ACALL WR_1820 |
RET
;========把EEPROM的值返回到高温和低温限值寄存器========RE_PROM:
ACALLRESET
MOVA,#0CCH
ACALLWR_1820
MOVA,#0B8H
ACALLWR_1820
RET
; ===========初 始 化1820==================================
基于单片机温度控制系统
RESET:SETB DQ
NOP
CLR DQ
MOVR5,#250
DJNZR5,$
SETB DQ
NOP
MOVR5,#25H
RESET1:JNB DQ,FLAG1
DJNZR5,RESET1
JMP | NDQ | ||
FLAG1: SETB FLAG DJNZ R5,$ MOV R5,#100 SETB DQ
| |||
NDQ: | CLR | FLAG |
ACALLERROR
RETU:SETB DQ
RET
;=============18b20写字节========================
WR_1820:
MOVR6,#8
CLR | C | | |
WR1: CLR | DQ | ||
MOV R5,#7 |
基于单片机温度控制系统
DJNZR5,$
RRC A
MOVDQ,C
MOVR5,#25
DJNZR5,$
SETB DQ
NOP
NOP
DJNZR6,WR1
SETB DQ
RET
;==============读 | 取 | 18b20 数 | 据 |
======================
READ_1820: | ||
MOV R2,#4 |
| |
RE2:SETB RE1:MOV R6,#8 CLR DQ | ||
CLR | C |
NOP
NOP
SETB DQ
MOVR5,#9
DJNZR5,$
MOVC,DQ
MOVR5,#24
DJNZ R5,$ |
| |
RRC | A |
基于单片机温度控制系统
DJNZR6,RE2
MOV@R1,A
DEC R1
DJNZR2,RE1
RET
;===========转换数据=============================
TURN:MOV XIAOSHU,TEMPL ;保存TEMPL值,后面用于取低4位转换小数部分
MOVA,TEMPL
MOVC,16 ;22H 的位寻址
RRC A
MOVC,17
RRC | A |
MOV C,18 MOV C,19 RRC A RRC A
MOV XIAOSHU,A |
RET
;========键盘扫描=============================
KEYSCAN:
JBK1,RETUN ;按下K1,进入键盘扫描
ACALLDELAY20
JNB | K1,$ | ||
ACALL CLR_LCD | ;清屏 | ||
ACALL DISP_THL ;显示高温限值和低温限值 |
| ||
ACALL SET_HL | ;设定限值 | ||
ACALL WR_THL | ;把高温限值和低温限值写入RAM |
基于单片机温度控制系统
ACALL WR_PROM | ;限值复制到EEPROM 中 | 限 | 值 | |||
RETUN: | RET | 定 | 高 | 低 | ||
;-—-———-—-——-设 |
—-——————-——--—-—--——-—
SET_HL:
JBK1,KEY4
ACALLDELAY20
JNB | K1,$ | ;标志位,标志设定高温限值或低温限值 |
CPL | 20H.1 |
JB20H。1,SET_H
; | JMP | SET_L | 高 | 温 | 限 | 值 |
--———--————-—调 |
—-—-—-—-—--—--—-————-—-——
SET_H: KEY2H: JNB K1,SET_L ;高温限值与低温限值间设定转换 ACALL DELAY20 | ||
JNB | K2,$ | |
INC | TEMP_TH |
MOVA,TEMP_TH
CJNE A,#99,A0
MOVTEMP_TH,#00
A0:ACALLDISP_THL
KEY3H:
JB K3,KEY2H | ;按下K3,值减1 |
| |
ACALL DELAY20 | |||
JNB | K3,$ | ||
DEC | TEMP_TH |
|
基于单片机温度控制系统
MOVA,TEMP_TH
CJNE A,#0,A1
MOVTEMP_TH,#99
A1:ACALLDISP_THL
JMP | SET_H | 低 | 温 | 限 | 值 |
; | -—————--——-——调 |
—-——--——-—-—-—---———-----—————
SET_L:
ACALLTL_SHAN
KEY2L:JNB K1,SET_H;高温限值与低温限值间设定转换 JNB K4,EXIT
JBK2,KEY3L ;按下K2,值加1
ACALLDELAY20
JNB | K2,$ |
MOV A,TEMP_TL CJNE A,#99,A2 INC TEMP_TL A2:KEY3L: JB K3,KEY2L ACALL DELAY20 | |
JNB | K3,$ |
DEC | TEMP_TL |
MOVA,TEMP_TL
CJNE A,#0,A3
MOVTEMP_TL,#99
A3: ACALLDISP_THL
JMP SET_L
;--—-—-—————--——--—----
KEY4: JNB | K4,EXIT | ;K4 用于退出设定 |
| |
JMP | SET_HL | |||
| ||||
EXIT:ACALL DELAY20 |
基于单片机温度控制系统
JNB | K4,$ | ;设置液晶光标不显示、不闪烁 | |
MOV | LCD,#00001100B | ||
ACALL | WR_COMM |
ACALLCLR_LCD
ACALLDISP_TEMP
RET
;==============温 | 度 | 比 | 较 |
======================================
TEMP_COMP: CLR | P1。0 | ;对所用端口清零 |
CLRP1。1
CLR | P1。2 |
CLR | P1.3 |
CLR | P1。4 |
SUBB A,TEMP MOV A,TEMP_TH CLR P1。5
ACALL DIANJI2 |
RET
;=============启动电机========================
;电机接口是P1低4位,因为P1。7是温度传感器的控制口;避免冲突,电机接口按位控制
DIANJI: JCDIAN0
RET
DIAN0:MOVR0,#4
DIAN1:
SETB | P1。4 |
|
SETB | P1。0 | |
CLR | P1。1 |
|
基于单片机温度控制系统
ACALLDELAY
CLR P1。0
SETB P1.1
ACALLDELAY
DJNZR0,DIAN1
CLR
P1。0 CLR P1.1
CLR P1。4
RET
DELAY: MOVR5,#5
DLY1: MOVR6,#10
DLY2:MOV R7,#50
DJNZR7,$
DJNZR6,DLY2
DJNZ R5,DLY1 ;============================================= DIANJI2:JC DIAN2 DIAN2: DIAN3: | |
SETB | P1.5 |
SETBP1.0
CLR P1。3
ACALLDELAY1
CLR P1。0
SETB P1。3
ACALLDELAY1
DJNZR0,DIAN3
CLR | P1.0 |
|
CLR | P1。3 | |
CLR | P1.5 |
基于单片机温度控制系统
RET
DELAY1: MOVR5,#5
DLY3: MOVR6,#10
DLY4: MOVR7,#50
DJNZR7,$
DJNZR6,DLY4
DJNZR5,DLY3
RET
;============清屏=============================
CLR_LCD:
MOVLCD,#80H
ACALLWR_COMM
MOVR0,#16
CLR1: MOV LCD,#’ ’ | |
ACALL WR_DATA DJNZ R0,CLR1 |
|
CLR2: MOV LCD,#’ ’ |
ACALLWR_DATA
DJNZR0,CLR2
RET
;===============报错============================
ERROR: MOVLCD,#80H
ACALLWR_COMM
MOVDPTR,#ERORTAB
ACALLDISP0
RET
ERORTAB: DB ’INIT ERROR!’,0H ;================温度标志=================== |
基于单片机温度控制系统
DISP_C:MOV LCD,A
ACALL WR_COMM
MOVLCD,#0DFH
ACALLWR_DATA
MOVLCD,#’C'
ACALLWR_DATA
RET
;=================数码显示======================
SHUMA:MOVDPTR,#SHUTAB
MOVCA,@A+DPTR
MOVLCD,A
ACALLWR_DATA
RET DISP_TEMP: ACALL TURN | |
MOV | LCD,#80H |
ACALL WR_COMM
MOV DPTR,#CURRENT
ACALL DISP0
MOVLCD,#0CAH
ACALL WR_COMM
MOV LCD,#2EH | ;小数点 | | |
ACALL | WR_DATA | ||
MOV A,#0CCH | |||
ACALL DISP_C | ;温度标志 |
基于单片机温度控制系统
;-——----—-———————-—-—---—--—--- MOVA,XIAOSHU
MOVDPTR,#XIAO
MOVC A,@A+DPTR
MOVXIAOSHU,A
MOVA,TEMP
MOVB,#10
DIV AB
MOVSHI,A
MOVGEWEI,B
MOVA,XIAOSHU
MOVLCD,#0CBH
ACALLWR_COMM
ACALL SHUMA |
RET
CURRENT:DB’Tempreture Now: ’,0H
XIAO:DB 00H,00H,01H,01H,02H,03H,03H,04H DB05H,05H,06H,06H,07H,08H,08H,09H
;================字 | 符 | 显 | 示 |
=============================
DISP0: MOV R1,#0
NEXT: MOV | A,R1 | | |
MOVC | A,@A+DPTR | ||
JZ RETT | |||
MOV | LCD,A |
基于单片机温度控制系统
INC | R1 | 高 | 温 | 限 | 值 | 和 | 低 | 温 | 限 | 值 | ||||
ACALL | WR_DATA | |||||||||||||
JMP | NEXT | |||||||||||||
RETT: | RET | |||||||||||||
; | ==========显 | 示 |
======================
DISP_THL:
MOVDPTR,#SETTHL
MOVLCD,#80H
ACALLWR_COMM
ACALLDISP0
MOVDPTR,#THL
MOVLCD,#0C1H
;—-—-—————-—————-—-—-———-—--ACALL DISP0 ACALL WR_COMM F5_THL: DIV AB |
MOVSHI,A //SHI
MOVGEWEI,B //GE
MOVA,SHI
MOVLCD,#0C4H
ACALLWR_COMM
ACALLSHUMA
MOVA,GEWEI
ACALLSHUMA
MOVA,#0C6H
ACALL DISP_C | |
基于单片机温度控制系统
MOVB,#10
DIV AB
MOVSHI,A //SHI
MOVGEWEI,B //GE
MOVA,SHI
MOVLCD,#0CCH
ACALLWR_COMM
ACALLSHUMA
MOVA,GEWEI
ACALLSHUMA
MOVA,#0CEH
ACALLDISP_C
RET
SETTHL: THL:DB 'TH: TL:’,0H DB 'Set TH/TL:’,0H INIT_LCD: ;==========液 |
MOV LCD,#00000001B
ACALLWR_COMM
MOV LCD,#00111000B
ACALLWR_COMM
MOV LCD,#00001100B
ACALLWR_COMM
MOV LCD,#00000110B
ACALLWR_COMM
RET
; | ============TH 光 | 标 | 闪 |
============================== TH_SHAN: |
|
基于单片机温度控制系统
MOV LCD,#00001111B
ACALLWR_COMM
MOVLCD,#0C5H
ACALLWR_COMM
RET
;=============TL 光 | 标 | 闪 |
=============================
TL_SHAN:
MOV LCD,#00001111B
ACALLWR_COMM
MOVLCD,#0CDH
ACALLWR_COMM
RET
============================ WR_COMM:
ACALL CHECK_BF |
SETB E
RET
; | ==============液 | 晶 | 写 | 数 | 据 |
==============================
WR_DATA:
SETBRS
CLRRW
CLRE
ACALLCHECK_BF
SETB E | 晶 | 是 | 否 |
| |
RET | |||||
;============液 | 忙 | 碌 |
基于单片机温度控制系统
============================
CHECK_BF:
MOV LCD, #0FFH
CLR RS
SETBRW
CLR E
NOP
SETBE
JB LCD。7,CHECK_BF
RET
;
======================================================
DELAY20: DLY: MOV R6,#100 DJNZ R6,$ MOV R5,#50
|
END
;==========================================
附录三
元器件清单: |
| ||||||||
|
基于单片机温度控制系统
| | 小 | 量 | | 号 | | 量 |
单片机 | ATC51 | —- | 1 | 晶振 | X1 | 12M HZ | 1 |
电动机 | MOTOR—S TEPPER | -— | 1 | 电容 | C2/C3 | 20uf | 2 |
按键 | K1/K2/K3/K 4 | — | 4 | 加热器 | SIL-100-0 2 | —— | 1 |
扬声器 | SOUNDER | -— | 1 | 电阻 | R3 | 4.7K | 1 |
电阻 | R5/R6 | 1K | 2 | 液晶 | LCD1602 | —- | 1 |
温度传感器 | DS18B20 | —- | 1 | 电动机驱动器 | ULN2003 A | —— | 1 |
液晶显示驱动器 | RESPACK-8 | —- | 淘 | 豆 | | | |
灯 | LED-RED | -— | 淘2 | | | | |
Copyright © 2019- kqyc.cn 版权所有 赣ICP备2024042808号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务