基于 51 单片机的水温控制系统设计.docx
《基于 51 单片机的水温控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于 51 单片机的水温控制系统设计.docx(35页珍藏版)》请在冰豆网上搜索。
基于51单片机的水温控制系统设计
本科课程设计报告
理工大学
《单片机应用与仿真训练》设计报告
基于51单片机的水温控制系统设计
-1-
理工大学本科课程设计报告
摘要
本设计是一个基于单片机的温度控制系统,该设计可以方便地实现温度采
集、温度显示等功能。
本设计的温度控制部分采用单片机完成。
单片机有着体积
小、功耗低、功能强、性能价格比高、使用电子元件较少、内部配线少、制造调
试方便等显著优点,将其用于温度检测和控制系统中可大大地提高控制质量和自
动化水平,具有良好的经济效益和推广价值。
利用单片机对温度进行测控的技术,
日益得到广泛应用。
在众多的温度控制系统中,测温元件常常选用热敏电阻、半导体测温二极管、
三极管、集成温度传感器等。
相比而言,集成温度传感器具有线性好、稳定度高、
互换性强、易处理等突出优点,故在许多场所得到了广泛应用。
本系统中单片机
作为下位机,完成测温任务,并通过与单片机连接的键盘可以实时设定测控温度
的下限。
本系统还可以连接相应的外围加热电路,当环境温度低于设定下限温度
时,单片机发出的指令,加热器起动对环境进行加热,当温度回升到下限温度时
加热器停止加热。
为了便于操作,还设计一个简单的操作面板,它主要由键盘与
按钮开关组成,通过操作面板可以进行系统的开停、RESET、设置温度下限告警
值等。
键盘输入部分采用了键盘专用IC74C922,简化了软件编程,用起来非常
方便。
系统软件主要由初始化程序、主程序、监控显示程序等组成。
其中初始化程
序是对单片机的接口工作方式,A/D转换方式等进行设置;显示程序包括对显示
模块的初始化、显示方式设定及输出显示;主程序则完成对采集数据进行处理。
该设计应用范围相当广泛,同时采用单片机技术,由于单片机自身功能强
大,因而系统设计简单,工作可靠,抗干扰能力强,也可在此基础上加入通信接
口电路,实现与上位机之间的通信。
-2-
河南理工大学本科课程设计报告
1概述.......................................................................................................................................4
2系统总体方案及硬件设计....................................................................................................5
2.1系统原理框图...............................................................................................................5
2.2单片机及输入输出模块选型.......................................................................................5
2.3电源模块的选择...........................................................................................................5
2.4I/O地址分配................................................................................................................5
2.5晶振及复位电路...........................................................................................................6
2.6数码管驱动电路...........................................................................................................7
2.7温度显示模块................................................................................................................7
2.8DS18B20温度传感器....................................................................................................8
2.8.1DS18B20的主要特性................................................................................................8
3软件设计...............................................................................................................................9
3.1控制流程图...................................................................................................................9
3.2DS18B20的软件设计..................................................................................................10
3.2.1DS18B20的初始化程序..........................................................................................10
3.2.2DS18B20的写操作..................................................................................................10
3.2.3DS18B20的读操作..................................................................................................11
3.3程序调试.....................................................................................................................12
4Proteus软件仿真..............................................................................................................14
5课程设计体会......................................................................................................................16
参考文献.................................................................................................................................17
附1:
源程序代码..................................................................................................................18
附2:
系统原理图..................................................................................................................24
-3-
河南理工大学本科课程设计报告
1概述
1971年intel公司霍夫研制出世界上第一块四位的微处理芯片intel4004芯
片,标志着第一代微处理器问世,单片机从此开始了它的发展历程。
单片机诞生
于20世纪70年代末,经历了SCM、MCU、SOC三大阶段。
20世纪80年代初,
Intel公司在MCS-48系列单片机的基础上,推出了MCS-51系列8位高档单片机。
MCS-51系列单片机无论是片内RAM容量,I/O口功能,系统扩展方面都有了很
大的提高。
从1993年到现在,单片机正发展在第四阶段。
单片机的发展趋势将
是向着大容量、高性能化、低功耗化、外围电路内装化等方面发展。
因此它广泛
应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过
程控制等领域,大致可分如下几个范畴:
在智能仪器仪表上、工业控制中、家用
电器中、计算机网络和通信领域中、在医用设备领域中、.在各种大型电器中的
模块化中的应用。
温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产
过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的
测量方法和装置具有重要的意义。
温度是一个十分重要的物理量,对它的测量与
控制有十分重要的意义。
随着现代工农业技术的发展及人们对生活环境要求的提
高,人们也迫切需要检测与控制温度:
如大气及空调房中温度的高低,直接影响着
人们的身体健康;在大规模集成电路生产线上,环境温度不适当,会严重影响产品
的质量。
测温技术在生产过程中,在产品质量控制和监测,设备在线故障诊断和
安全保护以及节约能源等方面发挥了着重要作用。
因此准确的测量温度对我们的
生活生产等至关重要。
本次设计就是将两者结合,利用单片机结合传感器技术而开发设计了这一温度监
控系统。
它是基于MCS-51单片机的温度采集系统,同时结合了温度传感器的模
拟采集并通过三位数码管显示实时测出的温度值,可完成每一秒测一次,测得温
度在-20—70度的设计要求。
-4-
河南理工大学本科课程设计报告
2系统总体方案及硬件设计
2.1系统原理框图
该系统的原理框图如图2-2所示:
数码管显示
数字温度传感器
电热丝
51单片机
按键操作
继电器
集成运放
三极管放大
图2-1系统原理框图
2.2单片机及输入输出模块选型
在该题目当中,单片机选用STC89C52,温度检测模块采用DS18B20作为温
度传感器对水温进行实时检测,温度显示模块选用两个四位一体共阳极数码管,
分别显示实际温度和目标温度。
2.3电源模块的选择
由于单片机输出的是TTL电平信号,因此对单片机单独提供5V电源。
该电
源可以由220V交流电源经整流、降压和稳压后获得。
对继电器线圈端子提供经
5V放大后的8V电源供电,触头端子直接接入220V电源。
2.4I/O地址分配
将单片机P0口作为实际水温的段选端,P2口作为目标水温的段选端。
P1作
为位选端,其中P1.0—P1.3作为实际水温位选,P1.4—P1.7作为目标水温位选。
P3口主要作为信号指示以及读取温度传感器的温度数据使用。
单片机引脚分配
-5-
河南理工大学本科课程设计报告
图如图2-1所示:
图2-2单片机引脚图
2.5晶振及复位电路
该系统中单片机外部晶振选为11.0592MHZ,通过两个电容与XTAL1和XTAL2
引脚连接构成单片机的外部时钟电路如图2-3所示。
图2-3单片机外部时钟电路
复位操作有上电自动复位和按键手动复位两种方式。
该系统复位电路由RC
微分电路产生的脉冲来实现,电路如图2-4所示,按下开关即可产生复位信号,
通过导线引入单片机RST引脚即可发生复位。
-6-
河南理工大学本科课程设计报告
图2-4单片机复位电路
2.6数码管驱动电路
该系统选择四位一体的共阳极数码管作为温度显示元件。
通过测试,我们发
现单片机上电后输出电流不能达到要求,导致数码管显示亮度不够,因此在本电
路中对位选端加了三极管驱动电路。
如图2-5所示:
图2-5数码管驱动电路
2.7温度显示模块
由P0口控制实际水温的段选,P2口控制目标水温的段选。
P1口作为位选端,
其中P1.0—P1.3作为实际水温位选,P1.4—P1.7作为目标水温位选。
显示模块
如图2-6所示。
-7-
河南理工大学本科课程设计报告
图2-6温度显示模块
2.8DS18B20温度传感器
2.8.1DS18B20的主要特性
1、适应电压范围更宽,电压范围为3.0~5.5V,在寄生电源方式下可由数
据线供电
2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即
可实现微处理器与DS18B20的双向通讯
3、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成
在形如一只三极管的集成电路内
4、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃
5、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、
0.125℃和0.0625℃,可实现高精度测温
6、在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最
多在750ms内把温度值转换为数字,速度更快
7、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时
可传送CRC校验码,具有极强的抗干扰纠错能力
-8-
河南理工大学本科课程设计报告
3软件设计
3.1控制流程图
程序控制流程图如图3-1所示:
开始
单片机I/O口初始化
DS18B20初始化
数码管显示初始化
读取水的实际温度
实际温度是否低于目
标温度?
Y
控制继电器导通,进行加热
N
控制继电器关断,进行降温
实际温度是否高于
设定的最大温度?
Y
启动报警装置,同时控制继电器关
断进行降温
结束
N
实际温度是否低于
设定的最小温度?
Y
启动报警装置,同时控制继电器导
通进行加热
结束
N
图3-1程序流程图
-9-
河南理工大学本科课程设计报告
3.2DS18B20的软件设计
3.2.1DS18B20的初始化程序
(1)先将数据线置高电平“1”。
(2)延时(该时间要求的不是很严格,但是尽可能的短一点)
(3)数据线拉到低电平“0”。
(4)延时750微秒(该时间的时间范围可以从480到960微秒)。
(5)数据线拉到高电平“1”。
(6)延时等待(如果初始化成功则在15到60毫秒时间之内产生一
个由DS18B20所返回的低电平“0”。
据该状态可以来确定它的存在,但是
应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时
控制)。
(7)若CPU读到了数据线上的低电平“0”后,还要做延时,其延时
的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。
(8)将数据线再次拉高到高电平“1”后结束。
/*
*****************DS18B20初始化***************
*/
Init_DS18B20(void)
{
unsignedcharx=0;
DQ=1;
delay(8);
DQ=0;
delay(80);
DQ=1;
delay(14);
x=DQ;
//DQ复位
//稍做延时
//单片机将DQ拉低
//精确延时大于480us
//拉高总线
//稍做延时后如果x=0则初始化成功
delay(20);
}
3.2.2DS18B20的写操作
(1)数据线先置低电平“0”。
(2)延时确定的时间为15微秒。
(3)按从低位到高位的顺序发送字节(一次只发送一位)。
(4)延时时间为45微秒。
(5)将数据线拉到高电平。
-10-
河南理工大学本科课程设计报告
(6)重复上
(1)到(6)的操作直到所有的字节全部发送完为止。
(7)最后将数据线拉高。
/*
*************
向DS18B20写命令
**************
*/
WriteOneChar(unsignedchardat)
{
unsignedchari=0;
for(i=8;i>0;i--)
{
DQ=0;
DQ=dat&0x01;
delay(5);
DQ=1;
dat>>=1;
}
//delay(4);
}
3.2.3DS18B20的读操作
(1)将数据线拉高“1”。
(2)延时2微秒。
(3)将数据线拉低“0”。
(4)延时15微秒。
(5)将数据线拉高“1”。
(6)延时15微秒。
(7)读数据线的状态得到1个状态位,并进行数据处理。
(8)延时30微秒。
DS18B20温度值格式表,如表2-1所示。
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,
二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测
到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的
数值需要取反加1再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为
07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FE6FH,-55℃
的数字输出为FC90H。
-11-
河南理工大学本科课程设计报告
表3-1DS18B20温度值格式表
//DS18B20程序读取温度
ReadTemperature(void)
{
unsignedchara=0;
unsignedcharb=0;
unsignedintt=0;
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0x44);
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0xBE);
前两个就是温度
a=ReadOneChar();
b=ReadOneChar();
t=b;
t<<=8;
t=t|a;
//跳过读序号列号的操作
//启动温度转换
//跳过读序号列号的操作
//读取温度寄存器等(共可读9个寄存器)
//低八位
//高八位
//合并高八位和低八位
return(t);
}
此函数得到的值为温度值,最小分度为0.0625,其中低四位为小数部
分,即:
把一度分为16等分)。
中间七位为其整数部分,高五位为符号位,
若高五位为0,则说明得到的温度为正数。
若高五位为1,则说明得到的温
度为负数。
3.3程序调试
在整个系统调试过程中,由于时间仓促没有来得及做实物。
最终通过Protues仿
真软件进行仿真,得到的结果和预想的结果一致。
-12-
(
河南理工大学本科课程设计报告
调试步骤如下:
1.先在Protues仿真软件中搭建硬件电路;
2.根据设计思想和硬件电路在Keil2中编写程序代码,调试通过并生成.hex
文件;
3.双击Protues仿真电路中的单片机,将.hex文件下载到单片机中,然后运行
观察结果。
-13-
河南理工大学本科课程设计报告
4Proteus软件仿真
在该电路中,D1代表加热指示灯,D2代表电源指示灯,D4代表冷却指示灯,
D5代表报警指示灯,利用灯泡L1代表加热器,电动机代表冷却装置。
整个设计
结果分为三个部分,分别是实际温度高于设定的目标温度、实际温度低于目标温
度、目标温度高于或低于设定的温度范围。
1.当水的实际温度低于目标温度时,指示灯D1亮,加热器开始加热,同时
将单片机P3.4口置0,使三极管断开,关闭D4及冷却装置。
仿真结果如图4-1
所示。
图4-1实际温度高于目标温度时的工作状态
2.当水的实际温度高于目标温度时,指示灯D1不亮,加热器停止加热,同
时将单片机P3.4口置1,使三极管导通,点亮D4指示灯,电动机开始旋转,对
水进行降温处理。
仿真结果如图4-2所示:
-14-
河南理工大学本科课程设计报告
图4-2实际温度低于目标温度时的工作状态
3.当设定的目标温度超过或者低于设定的温度范围时(20~40℃),启动报
警装置,同时报警指示灯D5发光,并且启动制冷装置。
仿真结果如图4-3所示:
图4-3目标温度低于设定的温度范围时的工作状态
-15-
河南理工大学本科课程设计报告
5课程设计体会
此次课程设计考查了我们设计电路的能力和动手能力。
从中我学到了很多东西。
设计上的电路在实际中运用可能不是像仿真那样理想,由于元件的误差及元件的
大小在实际中没有很好的匹配,所以按照设计的电路焊出来的实物在调试过程中
遇到了一些问题,但我都一步一步地解决了。
通过这次课程设计,我学会了如何使用仿真软件Protues以及Keil2编程软件,
进一步巩固了以前学过的单片机以及数、模电知识。
最重要的是通过这次课程设计我深深体会到能把所学的知识运用到实践中才是
真正掌握。
这次的课程设计时间有些仓促,并且相关的知识掌握得不到位,但随
着设计的深入,发现所学的知