温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
2023
基于
51
单片机
温度
控制系统
设计
基于单片机的温度操纵零碎方案
1.方案请求
请求方案一个温度丈量零碎,在超越限度值的时分能进展声光报警。具体设
计请求如下:
①数码管或液晶表现屏表现室内以后的温度;
②在不超越最高温度的状况下,能够经过按键设置想要的温度并表现;设有四个
按键,分不是设置键、加1键、减1键跟启动/复位键;
③DS18B20温度收罗;
④超越设置值的±5℃时收回超限报警,采纳声光报警,下限报警用红灯唆使,下
限报警用黄灯唆使,畸形用绿灯唆使。
2.方案论证
依照方案请求,本次方案是基于单片机的课程方案,因为完胜利用比拟复杂,
咱们进修中打仗到的51系列单片机完整能够实现上述功用,因而能够选用
AT89C51单片机。温度收罗直截了当能够用方案请求中所请求的
DS18B20。报警跟
唆使模块中,能够选用3种差异色彩的LED灯作为唆使灯,报警鸣笛采纳蜂鸣
器。表现模块有两种方案可供选择。
方案一:应用LED数码管表现收罗温度跟设定温度;
方案二:应用LCD液晶表现屏来表现收罗温度跟设定温度。
LED数码管构造复杂,应用便利,但在应用时,假设用静态表现那么需求不时
变动位选跟段选旌旗灯号,且表现时数码管不时闪烁,使人眼轻易疲惫;假设采纳静态
表现那么又需求更多硬件支撑。LCD表现屏可识不性较好,背光明度可调,并且
比LED数码管表现更多字符,然而编程请求比LED数码管要高。综合思索之后,
我选用了LCD表现屏作为温度表现器件,因为表现字符多,在进展上下限戒备
值设准时异样能够收罗并表现以后温度,能够直不雅的看到实践温度与戒备温度的
比照。LCD表现模块能够选用RT1602C。
3.硬件方案
依照方案请求,硬件零碎要紧包含6个局部,即单片机时钟电路、复位电路、
键盘接口模块、温度收罗模块、LCD表现模块、报警与唆使模块。其互相联络
如以下列图1所示:
单片机时钟电路
LCD表现模块
复位电路
单片机
键盘接口模块
报警与唆使模块
温度收罗模块
图1硬件电路方案框图
3.1单片机时钟电路
形成单片机时钟旌旗灯号的方法有外部
时钟方法跟外部时钟方法。本次方案采纳
外部时钟方法,如图2所示。
单片机外部有一个用于形成振荡器
的高增益反相缩小器,引足
XTAL1跟
XTAL2分不为此缩小器的输入端跟输入
端,其频率范畴为1.2~12MHz,经过片
外晶体振荡器或陶瓷振荡器与两个婚配
图2单片机外部时钟方法电路
电容一同形成了一个自激振荡电路,为单片机供给时钟源。
3.2复位电路
复位是单片机的初始化操纵,其感化
是使CPU跟零碎中的其余部件都处于一
个断定的初始形态,并从那个形态开场工
作,以防止电源零碎不波动形成CPU工
作不畸形。在零碎中,偶然会呈现任务不
畸形的状况,为了从异样形态中规复,同
图3单片机按键复位电路
时也为了零碎调试便利,需求方案一个复位电路。
单片机的复位电路有上电复位跟按键复位两种方法,因为本次方案请求需求
有启动/复位键,因而本次方案采纳按键复位,如图3。复位电路要紧实现零碎的
上电复位跟零碎在运转时用户的按键复位功用。
3.3键盘接口模块
本次方案需求的按键有4个,撤除
一个复位按键外,另有3个功用按键,
因而选择独破式键盘。如图4,将键盘
直截了当与单片机P1口的P1.0、P1.1、P1.2
相连。3个键方案思绪如下:当按下S1
键时,零碎进入上下限戒备值调剂状
态;当第一次按下S1键时,进展下限
图4键盘接口模块
戒备值设定,当第二次按下S1键时,
进展下限戒备值设定,当第三次按下S1键时,回到畸形任务形态。在戒备值调
整形态下,按下S2键,上下限戒备值加1,按下S3键,上下限戒备值减1,正
常任务形态下,按下S2跟S3键无感化。
3.4温度收罗模块
本次方案中的温度传感器应用的是DALLAS公司的单总线数字温度传感器
DS18B20,这是一种常用的温度传感器,存在体积小、硬件开支低、抗搅扰才干
强、精度高的特色。
DS18B20采纳共同的一线接口,存在只要求一条口线通讯多点的才干,简
化了散布式温度传感到用,无需外部元件。可用数据总线供电,电压范畴为3.0V
至5.5V,丈量温度的范畴为-55℃至+125℃,在-10℃至+85℃范畴内精度为
±0.5℃。
温度传感器可编程的区分率为9~12位,温度转换为12位数字格局最年夜值为
750毫秒,用户可界说的非易掉性温度报警设置,应用范畴包含恒温操纵、产业
零碎、花费电子产物温度计、或任何热敏感零碎。因为
DS18B20是一条口线通
信,因而地方微处理器与DS18B20只要一个一条口线衔接。因为每一个DS18B20
的包含一个共同的序号,多个DS18B20能够同时存在于一条总线,这使得温度
传感器放置在很多差异的地点。它的用处非常多,包含空调情况操纵,感测修建物
内温装备或呆板,并进展进程监测跟操纵。
图5DS18B20封装及引足
DS18B20的中心功用是它的直截了当读数字的温度传感器。温度传感器的精度
为用户可编程的9、10、11或12位,分不以0.5℃,0.25℃,0.125℃跟0.0625℃
增量递增。在上电形态下默许的精度为12位。DS18B20启动后坚持低功耗等候
形态;当需求履行温度丈量跟AD转换时,总线操纵器必需收回[44h]下令。在
那之后,发生的温度数据以两个字节的方法被存储到高速暂存器的温度存放器
中,DS18B20接着坚持等候形态。当DS18B20由外部电源供电时,总线操纵器
在温度转换指令之后发动“读时序〞,DS18B20正在温度转换中前往0,转换结
束前往1。假设DS18B20由寄生电源供电,除非在进入温度转换时总线被一个
强上拉拉高,否那么将不会由前往值。
在硬件上,DS18B20与单片机的衔接有两种方法:一种是VDD接外部电源,
GND接地,DQ与单片机的I/O口相连;另一种是用寄生电源供电,如今,VDD、
GND接地,DQ接单片机的I/O口。不管
是接外部电源依然用外部寄生电源,
I/O
口线要接5kΩ阁下的上拉电阻。
本次方案中,采纳外部电源方法,其
衔接方法如图6所示。单总线DQ端接单
片机的P1.7口,DQ端接一个4.7kΩ的上
拉电阻,如此单总线DQ在闲置形态时为
高电平。
图6DS18B20外部电源衔接方法
3.5LCD表现模块
在本次方案中,应用RT1602C字符型液晶表现模块(LCM)来方案以后温度
跟上下限戒备值的表现电路。
RT1602C字符型液晶表现模块是16字×2行的采纳5×7点阵图形来表现字
符的液晶表现器,采纳标准的16足接口,其引足界说如图7所示。
引足号引足名
说明
电源地
引足号引足名
说明
1
2
GND/Vss
7
D0
D1
D2
D3
D4
D5
D6
D7
V
dd
+5V电源
8
3
V
L
液晶表现偏压旌旗灯号
9
4
RS
R/W
E
数据/下令操纵,H/L
读/写操纵,H/L
使能端
10
11
12
13
14
8位双向数据线
5
6
15
16
BLA
BLK
背光源正极
背光源负极
图7RT1602C的引足界说
RT1602C的外部构造能够分为3个局部:LCD操纵器、LCD驱动器、LCD
表现器,此中LCD操纵器采纳的是HD44780。
RT1602C与单片机的连线如图8所示。
图8RT1602C与单片机连线
LCM的数据总线与单片机的P0口经过一个上拉电阻排相连,LCM的三条
操纵线RS、RW、EN分不与单片机的I/O口P2.0、P2.1、P2.2相连,第1、2引
足分不与地、电源相连,第3引足应用一个10kΩ的可调电阻对表现屏的亮堂进
行调剂。
3.6报警与唆使模块
在本次方案中,采纳
LED发光二极管作为零碎指
示灯,采纳蜂鸣器作为报警
鸣笛。当温度高于下限戒备
值时,点亮白色发光二极管,
蜂鸣器收回响声;当温度低
于下限戒备值时,点亮黄色
发光二极管,蜂鸣器收回响
声;温度在畸形范畴内时,
图9报警与唆使模块
点亮黄色发光二极管。全部报警与唆使电路如图9所示,此中绿、红、黄色唆使
灯分不接单片机P2.0、P2.1、P2.2口,电平拉低时点亮LED,蜂鸣器电路接单
片机的P2.7口,电平拉高时蜂鸣器响。
至此便实现了全部硬件电路的方案任务,全部零碎的道理图见附录二,零碎
I/O调配表如下:
I/O口
P0.0~P0.7
P1.0~P1.3
P1.7
功用说明
LCM数据口
I/O口
P2.1
功用说明
LCM读/写操纵
键盘输入
P2.2
LCM使能
LED旌旗灯号输入
报警旌旗灯号输入
DS18B20温度收罗
LCM数据/下令操纵
P2.4~P2.6
P2.7
P2.0
4.软件方案
单片机应用零碎的方案中,软件方案占领主要的位置。在本次方案中,依照
功用请求,能够把零碎顺序分别为5个模块,即主顺序模块、表现模块、温度测
10所示。
主顺序模块
温
度
测
量
模
块
键
其
它
子
程
序
显
示
模
块
盘
扫
描
模
块
图10软件方案框图
4.1主顺序方案
主顺序的内容包含单片机初始化、相干部件初始化跟一些别的子顺序的挪用
等。主顺序清单如下,顺序流程图如图11所示。
开场
/xxxxxxxxxxxx
voidmain(void)
{
主顺序xxxxxxxxxxxx/
初始化单片机
初始化温度传感器
初始化表现模块
P1=0xff;
//初始化P1口以便读入
P2|=0x70;
P2&=0x7f;
Temp_set1=90;
//下限报警温度初值90
//下限报警温度初值10
//延时500ms启动
//LCD初始化
Temp_set2=10;
Delay(500);
init_LCD();
读取温度
init_18B20();
//DS18B20初始化
表现字形转换
表现
Display_str(0,0,str2);//开机界面
Display_str(0,1,str2);//开机界面
Delay(2022);
图11主顺序流程图
Display_str(0,0,str0);
Display_str(0,1,str1);
while(1)
{
Key_scan();
//
//读取温度
Read_temp();
Change();
Display();
Alarm();
//表现
//唆使灯与报警顺序
Delay(1000);
}
}
4.2表现模块
表现顺序要紧实现的功用是方法、上下限戒备值跟丈量温度值的表现,模块
中包含LCD初始化、表现单个字符子函数、表现一个字符串子函数。顺序流程
图如图12所示,LCD初始化顺序如下,别的子函数顺序详见附录一。
/xxxxxxxxxxxxLCD
初始化xxxxxxxxxxxx/
开场
voidinit_LCD(void)
{
定位表现位置
写表现下令
写表现字符
P0=0;
Delay(15);
LCD_Command(0x38,0);
Delay(5);
LCD_Command(0x38,0);
Delay(5);
完毕表现
图12表现顺序流程图
LCD_Command(0x38,0);
Delay(5);
LCD_Command(0x38,1);//8位数据传递,2行表现,5x7字形
LCD_Command(0x08,1);//封