基于单片机的温度控制显示系统设计.docx
《基于单片机的温度控制显示系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度控制显示系统设计.docx(19页珍藏版)》请在冰豆网上搜索。
基于单片机的温度控制显示系统设计
基于单片机的数字温度控制系统设计
摘要
本设计是一种基于AT89C51单片机的温度测量及控制报警系统,该系统采用DS18B20作为温度采集、监测元件,将采集到的信号送到单片机进行处理,判断是否控制与报警,再将数据送到LCD1602液晶显示屏显示出来,该设计可以设置温度上下限,实时温度高于设置温度上限时,对应的降温设备指示灯亮,蜂鸣器报警,实时温度低于设置温度下限时,对应的加温设备指示灯亮,蜂鸣器报警。
文中介绍了集成温度传感器DS18B20的原理,AT89C51单片机的功能和应用,着重给出了软硬件系统的各部分电路。
该系统具有功能强大、结构简单和体积小等优点。
关键词:
单片机、温度计、LCD1602、DS18B20、AT89C51
Abstract
ThisdesignisbasedontheAT89C51single-chiptemperaturemeasurementandalarmsystem,thesystemusesDS18B20asthetemperatureacquisition,monitoringdevice,thecollectedsignalissenttothesinglechipprocessor,judgingwhetheranalarm,andthenthedataissenttothedigitaltubedisplay,thisdesigncanbearbitrarilysettemperaturealarmlimits.ThispaperintroducestheprincipleofDS18B20integratedtemperaturesensor,AT89C51MCUfunctionandapplication,especiallygiventhehardwareandsoftwaresystemofeachpartofcircuit.Thesystemhastheadvantagesofnovel,powerful,simplestructureandsmallvolumeetc..
Keywords:
Singlechipmicrocomputer,thermometer,DS18B20,AT89C51
目录
第1章绪论1
1.1研究意义及背景1
1.2设计目的1
1.3主要工作1
第2章系统概述2
2.1系统方案2
2.2系统组成2
第3章系统硬件设计3
3.1AT89C51单片机的介绍3
3.2数码管显示4
3.3DS18B20介绍4
3.4系统工作原理5
3.5系统整体电路6
第4章系统软件设计7
4.1主程序设计7
4.2DS18B20初始化8
4.3DS18B20温度传感器与单片机的接口电路10
4.4数码管显示与单片机对接10
4.5仿真结果12
总结15
致谢16
参考文献:
17
第1章绪论
1.1研究意义及背景
随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。
传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。
本设计使用单片机作为核心进行控制。
单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,在数字化、智能化方面有广泛的用途。
1.2设计目的
1.温度显示基本范围0.00℃—99.99℃。
2.精度误差小于0.01℃。
3.所测温度值由LCD1602液晶显示屏显示。
4.可以设定温度的上下限控制及报警功能。
1.3主要工作
本设计的研究重点是设计一种基于单片机的数字温度计控制系统。
设计采用数字温度传感器DS18B20,此传感器读取被测量温度值,并进行转换。
将转换后的数据送到单片机处理,再通过LCD1602液晶显示屏显示出来。
第2章系统概述
2.1系统方案
数字温度传感器DS18B20输出信号全数字化,便于单片机处理及控制,省去传统测温方法的很多外围电路。
且该芯片的物理性、化学性很稳定,能用做工业测温元件。
采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,硬件实现简单,体积小,安装方便。
所以该系统利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可根据需要设定上下限控制及报警温度。
2.2系统组成
本设计是以AT89C51单片机为核心的一种数字温度显示控制系统,系统整体硬件电路包括:
采集模块、显示模块、设置模块和单片机最小系统模块四大模块组成。
系统框图如图2-1所示。
图2-1系统基本方框图
第3章系统硬件设计
3.1AT89C51单片机的介绍
AT89C51有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。
AT89C51的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成,具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计,使用系统可用USB供电。
AT89C51单片机的基本组成框图见图3-1。
图3-1AT89C51单片机结构
由图3-1可见,AT89C51单片机主要由以下几部分组成:
1.CPU系统
8位CPU,含布尔处理器;
时钟电路;
总线控制逻辑。
2.存储器系统
4K字节的程序存储器(ROM/EPROM/Flash,可外扩至64KB);
128字节的数据存储器(RAM,可再外扩64KB);
特殊功能寄存器SFR。
3.I/O口和其他功能单元
4个并行I/O口;
2个16位定时计数器;
1个全双工异步串行口;
中断系统(5个中断源,2个优先级)。
3.2显示电路
3.2.11602液晶简介
LCD1602分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如图3-2所示。
图3-2LCD1602规格
引脚功能
LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3.1所示。
表3.1LCD1602引脚说明
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
3.2.2指令说明
LCD1602液晶模块内部的控制器共有11条控制指令,如表3.2所示。
表3.2LCD1602内部控制器
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
3.3DS18B20介绍
DS18B20引脚如图3-3所示。
图3-3DS18B20引脚图
数字温度传感器DS18B20是一种新型的“一线器件”,采用单总线的数据传输,其体积小,输出信号全数字化,便于单片机处理及控制,在0—100摄氏度时,其最大线形偏差小于1摄氏度。
工作电源既可以在远端引入,也可以采用寄生电源方式产生。
多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
因此用它来组成一个测温系统,线路十分简单。
3.3.1温度传感器测温原理
低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
其内部结构图如图3-4所示。
图3-4DS18B20内部结构
3.4系统工作原理
温度传感器DS18B20将模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,单片机将处理后的数据通过LCD1602显示屏显示出来,同时判断测得的温度和设置控制及报警的温度限进行比较,超过限度则通过蜂鸣器发出报警声音。
3.5系统整体电路
图3-5系统电路
第4章系统软件设计
4.1主程序设计
整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。
从软件的功能不同可分为两大类:
一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。
二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。
每一个执行软件也就是一个小的功能执行模块。
这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。
主程序流程见图4-1。
图4-1主程序流程图
主程序如下:
voidmain()
{
ReadTemperature();
init_lcd();//初始化液晶1602
disp_start();//显示字符
while
(1)
{
Display();
disp_t_h();//显示温度
key_scan();
bijiao();
}
}
4.2DS18B20初始化
DS18B20初始化流程图见图4-2。
图4-2DS18B20初始化流程图
初始化子程序:
{
unsignedcharx=0;
DQ=1;
Delay(8);
DQ=0;
Delay(80);
DQ=1;
Delay(14);
x=DQ;
Delay(20);
}
4.3DS18B20温度传感器与单片机的接口电路
当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。
传感器与单片机接口如图4-3所示:
图4-3DS18B20与单片机的接口电路
温度读取子程序:
{
unsignedchara=0;
unsignedcharb=0;
unsignedintt=0;
floattt=0;
Tmpchange();
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0xBE);
a=ReadOneChar();
b=ReadOneChar();
t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
t=tt*100+0.5;
return(t);
}
4.4数码管显示与单片机对接
如图4-4所示。
用AT89C51的P0口作为数据端口,P2.5-P2.7为液晶显示使能控制端。
P0口接上上拉电阻,拉高信号使液晶显示。
图4-4LCD1602显示屏与AT89C51对接
显示子程序:
voiddisp_t_h()
{
write_cmd(0xcc);
write_dat(tab_lcd_num[a]);//显示温度十位
write_cmd(0xcd);
write_dat(tab_lcd_num[b]);//显示温度个位
write_cmd(0xce);
write_dat(tab_lcd_xsd[0]);//显示小数点
write_cmd(0xcf);
write_dat(tab_lcd_num[c]);//显示温度小数位
}
4.5仿真结果
设置温度上限为38度,温度下限为8度。
1.如图4-5所示。
此时温度为7度,低于下限温度,蜂鸣器实现报警,加温器指示灯D2亮,表示加温器工作。
图4-5仿真图1
2.如图4-6所示。
此时温度为39度,超过上限温度,蜂鸣器实现报警,降温器指示灯D3亮,表示降温器工作。
图4-6仿真图2
3.如图4-7所示。
此时温度为30度,在所设范围内,蜂鸣器没有报警,说明温度正常。
图4-7仿真图3
总结
本文介绍了基于AT89C51单片机的数字温度计控制系统的设计,对整个硬件电路和软件程序设计做了分析。
并介绍了本设计中的几大模块和设计软件仿真,更直观地反映设计的正确性。
通过这次设计,不仅巩固了知识,而且让所学的知识通过实践的形式转化为相应的产品和成果,提高了自己的动手能力。
参考文献:
[1]杨素行.模拟电子技术基础[M].北京:
高等教育出版社,2006:
77-78.
[2]阎石著.数字电子技术基础[M].北京:
高等教育出版社,2006:
23-26.
[3]李全利,仲伟峰,徐军著.单片机原理及应用[M].北京:
清华大学出版社
2006:
46-48.
[4]何立民著.单片机高级教程[M].北京:
航空航天大学出版社,2000:
55-57.
[5]杨路明著.C语言程序设计教程[M].北京:
邮电大学出版社,2005:
124-132.