基于51单片机的温度控制系统设计docWord格式.docx
- 文档编号:15229451
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:29
- 大小:1.57MB
基于51单片机的温度控制系统设计docWord格式.docx
《基于51单片机的温度控制系统设计docWord格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的温度控制系统设计docWord格式.docx(29页珍藏版)》请在冰豆网上搜索。
LCD显示屏可识别性较好,背光亮度可调,而且比LED数码管显示更多字符,但是编程要求比LED数码管要高。
综合考虑之后,我选用了LCD显示屏作为温度显示器件,由于显示字符多,在进行上下限警戒值设定时同样可以采集并显示当前温度,可以直观的看到实际温度与警戒温度的对比。
LCD显示模块可以选用RT1602C。
3.硬件设计
根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度采集模块、LCD显示模块、报警与指示模块。
其相互联系如下图1所示:
图1硬件电路设计框图
3.1单片机时钟电路
形成单片机时钟信号的方式有内部时钟方式和外部时钟方式。
本次设计采用内部时钟方式,如图2所示。
单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频率范围为1.2~12MHz,经由片外晶体振荡器或陶瓷振荡器与两个匹配电容一起形成了一个自激振荡电路,为单片机提供时钟源。
3.2复位电路
复位是单片机的初始化操作,其作用是使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作,以防止电源系统不稳定造成CPU工作不正常。
在系统中,有时会出现工作不正常的情况,为了从异常状态中恢复,同时也为了系统调试方便,需要设计一个复位电路。
单片机的复位电路有上电复位和按键复位两种形式,因为本次设计要求需要有启动/复位键,因此本次设计采用按键复位,如图3。
复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。
3.3键盘接口模块
本次设计需要的按键有4个,除去一个复位按键外,还有3个功能按键,因此选择独立式键盘。
如图4,将键盘直接与单片机P1口的P1.0、P1.1、P1.2相连。
3个键设计思路如下:
当按下S1键时,系统进入上下限警戒值调整状态;
当第一次按下S1键时,进行上限警戒值设定,当第二次按下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
GND/Vss
电源地
7
D0
8位双向数据线
2
Vdd
+5V电源
8
D1
3
VL
液晶显示偏压信号
9
D2
4
RS
数据/命令控制,H/L
10
D3
5
R/W
读/写控制,H/L
11
D4
6
E
使能端
12
D5
15
BLA
背光源正极
13
D6
16
BLK
背光源负极
14
D7
图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所示,其中绿、红、黄色指示灯分别接单片机P2.0、P2.1、P2.2口,电平拉低时点亮LED,蜂鸣器电路接单片机的P2.7口,电平拉高时蜂鸣器响。
至此便完成了整个硬件电路的设计工作,整个系统的原理图见附录二,系统I/O分配表如下:
I/O口
功能说明
P0.0~P0.7
LCM数据口
P2.1
LCM读/写控制
P1.0~P1.3
键盘输入
P2.2
LCM使能
P1.7
DS18B20温度采集
P2.4~P2.6
LED信号输出
P2.0
LCM数据/命令控制
P2.7
报警信号输出
4.软件设计
单片机应用系统的设计中,软件设计占有重要的位置。
在本次设计中,根据功能要求,可以把系统程序划分为5个模块,即主程序模块、显示模块、温度测量模块、键盘扫描模块、其它子程序模块,如图10所示。
图10软件设计框图
4.1主程序设计
主程序的内容包括单片机初始化、相关部件初始化和一些其它子程序的调用等。
主程序清单如下,程序流程图如图11所示。
/************主程序************/
voidmain(void)
{
P1=0xff;
//初始化P1口以便读入
P2|=0x70;
P2&
=0x7f;
Temp_set1=90;
//上限报警温度初值90
Temp_set2=10;
//下限报警温度初值10
Delay(500);
//延时500ms启动
init_LCD();
//LCD初始化
init_18B20();
//DS18B20初始化
Display_str(0,0,str2);
//开机界面
Display_str(0,1,str2);
图11主程序流程图
Delay(2000);
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初始化程序如下,其它子函数程序详见附录一。
/************LCD初始化************/
voidinit_LCD(void)
P0=0;
Delay(15);
LCD_Command(0x38,0);
Delay(5);
图12显示程序流程图
LCD_Command(0x38,1);
//8位数据传送,2行显示,5*7字形
LCD_Command(0x08,1);
//关闭显示
LCD_Command(0x01,1);
//清屏
LCD_Command(0x06,1);
//显示光标右移设置
LCD_Command(0x0c,1);
//显示屏打开,光标不显示不闪烁
4.3温度测量模块
温度测量程序主要功能是读出数字温度传感器的温度值。
要正确地读出温度值必须严格遵守单总线器件的命令序列,否则单总线器件不会响应主机。
单总线器件的命令序列如图13所示。
温度测量模块程序流程图如图14所示,DS18B20初始化程序如下,其它子程序详见附录一。
/************DS18B20初始化************/
voidinit_18B20(void)
ucharx=0;
DQ=1;
//DQ复位
Delay_us(4);
//延时
DQ=0;
//将DQ拉低
Delay_u
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 温度 控制系统 设计 doc