基于单片机的水温控制系统设计Word格式文档下载.docx
《基于单片机的水温控制系统设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的水温控制系统设计Word格式文档下载.docx(16页珍藏版)》请在冰点文库上搜索。
![基于单片机的水温控制系统设计Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/7/ed0da74e-1e38-4ba5-b6b2-1dd1bb5bc676/ed0da74e-1e38-4ba5-b6b2-1dd1bb5bc6761.gif)
单片机对对温度的控制是工业生产中经常使用的控制方法.自从1976年Intel公司推出第一批单片机以来,80年代单片机技术进入快速发展时期,近年来,随着大规模集成电路的发展,单片机继续朝快速、高性能方向发展。
单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。
单片机将微处理器、存储器、定时/计数器、I/O接口电路等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系统。
单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据结构、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造工艺等的结合,使得单片机的应用非常广泛。
同时,单片机具有较强的管理功能。
采用单片机对整个测量电路进行管理和控制,使得整个系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制造、安装、调试及维修方便。
传统的温度采集电路相当复杂,需要经过温度采集、信号放大、滤波、AD转换等一系列工作才能得到温度的数字量,并且这种方式不仅电路复杂,元器件个数多,而且线性度和准确度都不理想,抗干扰能力弱。
现在常用的温度传感器芯片不但功率消耗低、准确率高,而且比传统的温度传感器有更好的线性表现,最重要的一点是使用起来方便。
摘要..........................................................Ⅱ
绪论..........................................................Ⅲ
系统总体设计..................................................6
1.1硬件总体设计............................................6
1.1.1硬件系统子模块.................................................6
1.2软件总体设计.............................................6
2硬件系统设计.................................................7
2.1硬件电路分析...........................................7
3系统软件设计................................................8
3.1主程序流程图...........................................8
3.2各个模块的流程图.......................................10
3.2.1读取温度DS18B20模块的流程..................................10
3.2.2键盘扫描处理流程............................................12
3.2.3报警处理流程................................................13
4系统调试.............................................................14
4.1硬件电路调试............................................14
4.2软件调试................................................14
4.3系统操作说明书..........................................15
4.4数据测试................................................15
总结...........................................................17
参考文献.......................................................18
附录一:
系统源程序..............................................19
附录二系统硬件总图.............................................20
1系统总体设计
1.1硬件总体设计
设计并制作一个基于单片机的热水器温度控制系统的电路,其结构框图如图1-1:
图1-1系统结构框图
1.1.1硬件系统子模块
(1)单片机最小系统电路部分
(2)键盘扫描电路部分
(3)数码管温度显示和运行指示灯电路部分
(4)温度采集电路部分
(5)继电器控制部分
(6)报警部分
1.2软件总体设计
良好的设计方案可以减少软件设计的工作量,提高软件的通用性,扩展性和可读性。
本系统的设计方案和步骤如下:
(1)根据需求按照系统的功能要求,逐级划分模块。
(2)明确各模块之间的数据流传递关系,力求数据传递少,以增强各模块的独立性,便于软件编制和调试。
(3)确定软件开发环境,选择设计语言,完成模块功能设计,并分别调试通过。
(4)按照开发式软件设计结构,将各模块有机的结合起来,即成一个较完善的系统。
首先接通电源系统开始工作,系统开始工作后,通过按键设定温度值的上限值和下限值,确定按键将设定的温度值存储到指定的地址空间,温度传感器开始实时检测,调用显示子程序显示检测结果,调用比较当前显示温度值与开始设定的温度值比较,如果当前显示值低于设定值就通过继电器起动加热装置,直到达到设定值停止加热,之后进行保温,如果温度高于上限进行报警。
2硬件系统设计
2.1硬件电路分析和设计报告
本次设计主要思路是通过对单片机编程将由温度传感器DS18B20采集的温度外加驱动电路显示出来,包括对继电器的控制,进行升温,当温度达到上下限蜂鸣器进行报警。
P1.7开关按钮是用于确认设定温度的,初始按下表示开始进入温度设定状态,然后通过P1.5和P1.6设置温度的升降,再次按下P1.7时,表示确认所设定的温度,然后转入升温或降温。
P2.3所接的发光二极管用于表示加热状态,P2.5所接的发光二极管用于表示保温状态。
P2.3接继电器。
P3.1是温度信号线。
整个电路都是通过软件控制实现设计要求。
3系统总设计
本系统采用的是循环查询方式,来显示和控制温度的。
主要包括四段程序的设计:
DS18B20读温度程序,数码管的驱动程序,键盘扫描程序,以及抱经处理程序。
3.1主程序流程图
图3-1主程序流程图
3.2各个模块的流程图
3.2.1读取温度DS18B20模块的流程
由于DS18B20采用的是一根数据线实现数据的双向传输,而对AT89S52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
DS18B20单线通信功能是分时完成的,它有严格的时隙概念。
因此系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,
DS18B20必须首先调用启动温度转换函数,根据数据手册上对应转换时间来超作,如为12位转换,则应该是最大750mS,另外在对DS18B20超作时,时序要求非常严格,因此最好禁止系统中断。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
DS18B20的读时序:
(1)对于DS18B20的读时序分为读0时序和读1时序两个过程。
(2)对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。
DS18B20在完成一个读时序过程,至少需要60us才能完成。
DS18B20的写时序:
(1)对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。
(2)对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。
系统程序设计主要包括三部分:
读出温度子程序、温度转换命令子程序、显示温度子程序。
图3-2读取温度DS18B20模块的流程图
程序代码为:
GET_TEMPER:
SETBDQ;
读出转换后的温度值
LCALLINIT_1820;
先复位DS18B20
JBFLAG1,TSS2
RET;
判断DS1820是否存在?
若DS18B20不存在则返回
TSS2:
MOVA,#0CCH;
DS18B20已经被检测到,则跳过ROM匹配
LCALLWRITE_1820
MOVA,#44H;
发出温度转换命令
LCALLDISPLAY;
这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒
LCALLINIT_1820;
准备读温度前先复位
MOVA,#0CCH;
跳过ROM匹配
MOVA,#0BEH;
发出读温度命令
LCALLREAD_18200;
将读出的温度数据保存到35H/36H
RET
3.2.2键盘扫描处理流程
此流程为键盘扫描处理,CPU通过检测各数据线的状态(0或1)就能知道是否有按键闭合以及哪个按键闭合。
键盘管理程序的功能是检测是否有按键闭合,如果有按键闭合,消除抖动,根据键号转到相应的键处理程序,按键流程图如图3-3所示。
图3-3键盘扫描子程序流程图
3.2.3报警处理流程
运行程序后,温度传感器DS18B20即可对环境进行温度采集,并送LED数码管显示。
我们可以在程序里设定温度上限值,当采集到的外界温度高于当前所设定温度上限值时,程序就会进入报警子程序,触发蜂鸣器进行报警。
其程序流程图如图3-4所示。
图3-4报警子程序流程图
4系统调试
4.1硬件电路调试
仔细检查所接电路,按照硬件原理图接线,理论上是能实现的,如果数码管不显示,则应该检查线路是否正确,或是因为单片机没有工作,还有集电极和发射极是否接对。
如果只显示两个八,则可能是DS18B20没有接正确,检查上拉电路是否接好。
另外要注意的是,由单片机输出的控制信号比较小,需要进行放大才能驱动继电器工作,否则就不能实现升温过程,通常选用8550三极管来进行放大。
还有220V交流电绿色接头和加热管黄色接头必须接正确,否则导致电路烧坏。
蜂鸣器是低电平有效。
如果能注意这些问题,电路基本不会出错。
4.2软件调试
如果硬件电路检查后,没有问题却实现不了设计要求,则可能是软件编程的问题,首先应检查初始化程序,然后是读温度程序,显示程序,以及继电器控制程序,对这些分段程序,要注意逻辑顺序,调用关系,以及涉及到了标号,有时会因为一个标号而影响程序的执行,除此之外,还要熟悉各指令的用法,以免出错。
还有一个容易忽略的问题就是,源程序生成的代码是否烧入到单片机中,如果这一过程出错,那不能实现设计要求也是情理之中的事。
本人在设计的时候在伟福仿真软件进行调试,通过此软件进行调试可以很方便的观察单片机内部各个寄存器及内部存储器变化情况,以方便进行调试。
4.3系统操作说明
本系统上电后数码管显示当前测量温度,此时加热指示灯和保温指示灯均不点亮;
若此时按“自动加热”键,则单片机自动将预加热温度设置为80℃并开始加热,送出一个加热信号,并点亮加热指示灯;
若按“温度设置”键,则进入预加热温度设置界面,此时数码管闪烁显示预设置温度,此时通过按键“+”和“-”进行设置温度,预设置温度按“5”递增或递减,设置好温度后再按一次“温度设置”键确定,单片机保存预设置温度,并开始加热。
此时单片机通过数码管显示实时检测的温度并和预设置温度进行对比,如果实测温度大于或等于预设置温度,则单片机发出停止加热信号并熄灭加热指示灯,点亮保温指示灯,且当超过预设温度时发出报警;
当温度下降到预设置温度以下5度时,单片机再次发出加热信号,同时熄灭保温指示灯,点亮加热指示灯,依次循环控制。
4.4数据测试
1.静态数据测试
取一桶净水,改变它的温度,观察数码管上显示的温度值,并用温度计进行测温,记录两组数据,比较差异。
记录表如下:
表4-1静态温度数据测试表
温度℃
1
2
3
4
5
6
显示温度
23
47
63
77
84
90
测量温度
24
80
91
有测试数据可知,本系统测温结果与温度计测温基本一致,能满足设计,证明了设计的合理性。
2.动态数据测试
进行温度设定,通过设定温度值(75℃),观察加热管的加热情况,以及数码管的显示值,再用温度计测量水温,每隔一段时间记录一次数据,将两组值进行比较。
(设定前温度为25℃)
表4-2静态温度数据测试表
组数
分组
7
8
9
10
11
12
13
25
29
34
39
42
48
53
58
62
67
70
73
75
28
38
49
59
71
74
通过上表可看出在加热的过程中,显示的温度与实测的温度近似一样,说明系统的设计达到精度要求,但还是略有偏差,基本不影响设计结果。
整个测试过程表明设计达到了任务书的要求,证明了该方案是合理可行的,顺利完成了设计,达到了预想结果。
总结
通过本次的设计,使我们不仅对单片机这门课程有了更深刻的认识,懂得了如何运用课本知识结合实际来完成定时器的显示和编程方法以及数码显示电路的驱动方法,使我们能够很快的适应现代控制技术发展的需求,同时也提高了我们的思维能力和实际操作能力,为以后更好的走上工作岗位奠定了坚实的基础。
另外,这次的设计还让我更进一步的认识了关于AT80C51等芯片的引脚功能以及使用方法,使我学会了应用不同的芯片来配合完成整个设计的操作。
在做硬件电路的这段时间里,从思考设计到对电路的调试经过了许多困难。
同样在对软件进行设计时,也可为一路坎坷。
但是通过对软硬件不断撞墙,不断思考解决问题的过程中,我学会了很多东西,同时对单片机也有了更深的认识。
在做设计的时候,很需要耐心和对事物的细心,很多时候一个简单问题的一个简单的疏忽就会导致整个电路的不工作,只有不断的检查不断的调试,才能真正完成一个设计的制作。
只有不断的发现问题解决问题,才能从问题中改变自己,提升自己对单片机的能力。
此设计虽然能够完成温度的显示和控制,但功能和精度有待于进一步提高。
以后可以通过加入PID算法优化控制功能,并通过液晶显示屏实时显示温度。
经过一星期的忙碌和工作,本次毕业设计已经接近尾声,作为一个专科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。
首先感谢李月英老师出的这些论文选题,给了我这么一个展现自己能力的平台。
在这一个论文设计之中,涉及到了方方面面的知识,没有大学期间各个学科老师的辛勤栽培,也不会有我见天的成果。
参考文献
[l]乐建波编著《温度控制系统》化学工业出版社
[2]谢自美编著《电子线路设计·
实验·
测试(第二版)》华中科技大学出版社2000
[3]武庆生仇梅编著《单片机原理与应用》电子科技大学出版社1998.2
[4]谭浩强编著《C程序设计》.北京:
清华大学出版社1999年
[5]华中理工大学电子学教研室编《电子技术基础数字部分(第四版)》高等教育出版社2000.6
[6]《电子制作》2004.10
[7]王彬任艳颖编著《DigitalICSystemDesign》西安电子科技大学出版社2005.9
[8]赵丽娟邵欣编著《基于单片机的温度监控系统的设计与实现》机械制造
[9]郭炳坤简单的恒温箱温控电路[J].仪器与未来,1991
附录1:
系统源程序
EMPER_LEQU29H;
用于保存读出温度的低8位
TEMPER_HEQU28H;
用于保存读出温度的高8位
FLAG1EQU38H;
是否检测到DS18B20标志位
A_BITEQU20H;
数码管个位数存放内存位置
B_BITEQU21H;
数码管十位数存放内存位置
B1EQU70H;
温度小数点位
A1EQU71H;
设定温度值
DQEQUP3.1;
DQ为DS18B20数据位
BELLEQUP2.7;
//蜂鸣报警
ORG0000H
AJMPMAIN
附录2:
系统硬件总图