基于单片机温度控制系统.docx

上传人:b****4 文档编号:13897308 上传时间:2023-06-19 格式:DOCX 页数:41 大小:784.98KB
下载 相关 举报
基于单片机温度控制系统.docx_第1页
第1页 / 共41页
基于单片机温度控制系统.docx_第2页
第2页 / 共41页
基于单片机温度控制系统.docx_第3页
第3页 / 共41页
基于单片机温度控制系统.docx_第4页
第4页 / 共41页
基于单片机温度控制系统.docx_第5页
第5页 / 共41页
基于单片机温度控制系统.docx_第6页
第6页 / 共41页
基于单片机温度控制系统.docx_第7页
第7页 / 共41页
基于单片机温度控制系统.docx_第8页
第8页 / 共41页
基于单片机温度控制系统.docx_第9页
第9页 / 共41页
基于单片机温度控制系统.docx_第10页
第10页 / 共41页
基于单片机温度控制系统.docx_第11页
第11页 / 共41页
基于单片机温度控制系统.docx_第12页
第12页 / 共41页
基于单片机温度控制系统.docx_第13页
第13页 / 共41页
基于单片机温度控制系统.docx_第14页
第14页 / 共41页
基于单片机温度控制系统.docx_第15页
第15页 / 共41页
基于单片机温度控制系统.docx_第16页
第16页 / 共41页
基于单片机温度控制系统.docx_第17页
第17页 / 共41页
基于单片机温度控制系统.docx_第18页
第18页 / 共41页
基于单片机温度控制系统.docx_第19页
第19页 / 共41页
基于单片机温度控制系统.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机温度控制系统.docx

《基于单片机温度控制系统.docx》由会员分享,可在线阅读,更多相关《基于单片机温度控制系统.docx(41页珍藏版)》请在冰点文库上搜索。

基于单片机温度控制系统.docx

基于单片机温度控制系统

提供全套毕业论文图纸,欢迎咨询

摘要

随着中国社会经济的发展,人们生活水平的提高,人们对生活环境的舒适度也越来越重视,比如室内的温度情况。

所以基于以单片机为核心的温度采集和控制的系统出现满足了人们的这一要求,本论文以STC89C52RC单片机为主控器件,以数字温度传感器DS18B20进行当前温度值的采集,并将当前温度值通过LCD12864来显示出来;当温度高于或低于期望值时,通过L298N来控制电机对温度进行实时调控,使温度达到期望值。

本系统的硬件设计包括单片机最小系统,温度检测电路,LCD显示电路,按键控制电路和电机控制电路。

软件设计包括主程序,温度检测子程序,按键检测子程序,LCD液晶显示子程序,电机控制子程序等。

关键词:

单片机;DS18B20;LCD液晶显示;电机控制

 

TheDesignofControlSystemBaseonMicrocontrolleratRoomTemperature

Abstract

WiththedevelopmentofChina'ssocialeconomy,peoplelivingstandardrise,peoplealsopaymoreandmoreattentiontothelivingenvironmentofthecomfort,suchasindoorandoutdoortemperatureconditions.Sobasedonsinglechipmicrocomputerasthecoretemperaturegatheringandcontrolsystemtomeetthepeopleoftherequirements,thisthesiswithSTC89C52RCMCUasthemasterdevice,withdigitaltemperaturesensorDS18B20thetemperaturevalueofthecollection,andthecurrenttemperaturevaluedisplayedbyLCD12864;Whenthetemperaturehigherorlowerthanexpected,tocontrolthemotorbyL298Ntoreal-timecontroloftemperature,thetemperaturereachedexpectations.Thehardwaredesignofthissystemincludethesinglechipmicrocomputerminimumsystem,temperaturedetectioncircuit,LCDdisplaycircuit,keycontrolcircuitandthemotorcontrolcircuit.Softwaredesignincludesthemainprogram,temperaturedetectionsubroutine,buttondetectionsubroutine,LCDliquidcrystaldisplaysubroutine,motorcontrolsubroutine.

KeyWords:

microcontroller;DS18B20;LCDliquidcrystaldisplay;motorcontrol

 

目录

摘要II

AbstractIII

引言1

1概述2

1.1设计背景和意义2

1.2设计思想2

1.3系统的总体设计2

1.3.1方案比较2

1.3.2系统框图3

1.4设计重点与难点3

2硬件电路设计4

2.1STC89C52RC单片机简介4

2.2STC89C52RC单片机管脚图4

2.3单片机最小系统电路图5

2.4LCD12864液晶简介5

2.4.1LCD12864的接口原理图6

2.5按键工作原理6

2.5.1按键原理图6

2.6L298N简介7

2.6.1L298N原理图7

2.7DS18B20温度传感器简介8

2.7.1DS18B20原理图8

2.8直流电机工作原理简介8

2.9系统总电路原理图9

3软件设计10

3.1软件整体设计10

3.2主程序流程图10

3.3温度采集子程序11

3.4液晶显示子程序12

3.5电机控制处理程序13

3.6按键处理程序14

3.6.1按键软件消抖14

3.6.2按键检测流程图15

4系统调试16

4.1硬件调试16

4.2编译软件KIEL4的使用16

4.3程序的烧录17

结论19

参考文献20

附录A单片机程序21

致谢31

引言

随着科技的发展,单片机产品越来越广泛地应用于我们生活,以单片机为核心的温度采集与控制系统在很大程度上提高了生产生活中对温度的控制水平。

传统的温度检测以热敏电阻为主,热敏电阻的成本低,所产生的信号为模拟信号,需要通过A/D转换后才能被单片机所识别,而且接线方式对其信号影响较大,所以可靠性相对较差。

与传统的热敏电阻测温相比,DS18B20是数字温度传感器,具有读数方便,测量范围广,测量精确高,电路设计简单等优点。

本设计的采用STC89C52RC单片机对温度传感器DS18B20的温度进行实时采集和控制,将采集的温度用LCD液晶显示出来,通过按键设定温度控制的范围,并利用电机的正反转进行温度调节,以达到恒温的效果。

 

1概述

1.1设计背景和意义

随着时代的进步和发展,人们的生活水平的提高,人们对生活的舒适度要求也越来越高,尤其是温度。

经科学研究发现,25℃的环境最适宜人类生活。

在这个温度下,人体没有冷热感,身体内的毛细血管舒张平衡,感觉非常舒适。

伴随着各种新的技术不断应用于人们生活,单片机产品更是得到了飞速发展,在各种微机测量和控制技术里得到了广泛的应用,所以基于以单片机为核心的温度采集和控制的系统出现满足了人们的这一要求,数字温度控制系统便是其中之一。

由于传统的热敏电阻温度采集方法不仅费时费力,而且精度差,受环境影响大,易出现不稳定因数,可靠性较差,测温准确度低,误差较大。

而使用单片机作为核心的数字温度控制系统,该系统使得温度的采集和数据处理问题能够得到很好的解决,简化数据传输与处理过程,具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低,可靠性高,抗干扰能力强和使用方便等独特优点,因此在生产和生活中得到了广泛应用。

1.2设计思想

该设计是一种用于室内温度检测控制系统,该系统控制核心为单片机,可分为硬件设计和软件设计两部分。

硬件部分设计思想基于单片机,温度传感器,液晶显示,按键控制和电机控制几个部分,利用温度传感器对温度进行采集,再将采集到的数据送到单片机处理,然后再将处理后的温度值显示用LCD12864液晶显示出来,通过按键调节温度范围的上下限,再将当前的温度值与上下限进行比较,利用比较结果来控制电机的工作状态。

部分设计思想是利用单片机的分时控制原理以实现多任务的操作,以便能及时地对温度值进行读取和对按键进行检测,通过对采集到的温度值与设定值比较,超过设定范围就启动电机运转,当温度达到设定范围之后则让电机停止转动。

该程序采用模块化设计,把问题分成几个模块,每个模块又分成若干个小模块,逐步细化,然后通过函数调用来实现全部功能。

每个子模块都有对应的.C和.H文件,每个模块出问题时都可以被快速找到。

本程序采用的是C语言编程,用到的编程软件是KEIL软件。

1.3系统的总体设计

1.3.1方案比较

方案一

由于本设计是测温电路,首先考虑的是价格比较便宜的热敏电阻,利用热敏电阻的感温效应,将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,热电阻的测温线路比较复杂,且后续信号处理电路麻烦,而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差,而且可靠性相对较差,测温准确度低,温度值误差较大。

方案二

进而考虑采用数字温度传感器,所以可以采用数字温度传感器DS18B20,数字温度计具有读数方便,电路简单,测量范围广,测量精确,数字显示,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。

通过对以上两种方案的比较,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。

1.3.2系统框图

 

图1.1温度控制系统框图

如图1.1温度控制框图所示,在系统正常运行时,温度传感器DS18B20检测环境中的温度,并传给单片机,单片机将温度值通过液晶显示出来,并将当前温度值与设定值比较控制电机转动,同时还扫描按键检测程序,当有按键按下时处理按键程序。

1.4设计重点与难点

本次设计的重点是系统的整合硬件设计、合理的软件设计、程序流程图设计、显示模块设计,其中设计的难点是温度检测与液晶显示和按键检测对CPU使用的资源分配。

 

2硬件电路设计

2.1STC89C52RC单片机简介

STC89C52是中国本土STC公司生产的一款低功耗、高性能CMOS8位微控制器,与传统的51单片机相比具有很大的优势。

STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能,具有8K在系统可编程Flash存储器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:

8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35MHz,6T/12T可选。

2.2STC89C52RC单片机管脚图

图2.1STC89C52RC单片机管脚图

2.3单片机最小系统电路图

图2.2STC89C52RC单片机最小系统

单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。

89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。

当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。

复位电路的作用就是在上电或复位过程中,控制CPU的复位状态:

这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。

2.4LCD12864液晶简介

12864是一款带中文字库的LCD是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。

2.4.1LCD12864的接口原理图

图2.3LCD12864与单片机的接口图

2.5按键工作原理

按键模块由4个键组成,采用独立按键式键盘,4个键分别与单片机P3.2、P3.3、P3.6、P3.7引脚相连,每个按键单独连接一条输入线,另一端接地,通过检测输入线的电平就可以判断该键是否被按下。

2.5.1按键原理图

图2.4按键接口电路图

2.6L298N简介

L298N是ST公司生产的一种高电压、大电流电机驱动芯片。

该芯片采用15脚封装。

主要特点是:

工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。

内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。

使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。

2.6.1L298N原理图

图2.5L298N原理图

2.7DS18B20温度传感器简介

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程设定9~12位的分辨率,精度为±0.5°C。

可选更小的封装方式,更宽的电压适用范围。

分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。

2.7.1DS18B20原理图

图2.6DS18B20与单片机接口图

2.8直流电机工作原理简介

直流电机是指能将直流电能转换成机械能或将机械能转换成直流电能的旋转电机。

它是能实现直流电能和机械能互相转换的电机,它电磁感应的作用而使电动机转动,同时利用换向器及时改变线圈中的电流方向,从而保持线圈持续转动。

直流电机的结构应由定子和转子两大部分组成。

2.9系统总电路原理图

图2.7系统总原理图

上图为系统总原理图,该系统采用分时控制原理,当给该系统通电,单片机上电复位后进行系统初始化,系统初始化完成后开始对温度进行实时采集,并通过LCD12864液晶显示当前温度值,并用当前温度值与设定的温度值范围进行比较,如果当前温度值高于设定温度上限值时,电动机反转;如果当前温度值低于设定温度下限值时,电动机正转;当温度在设定温度范围内时电机就停止转动。

同时系统利用分时控制原理对按键进行检测,当有按键按下时,通过对按键值的判断来实现系统的工作模式切换和温度上下限的设定。

 

3软件设计

3.1软件整体设计

本软件系统采用模块化设计方法,主要包括以下模块:

(1)主程序初始化:

主要完成系统上电后进行LCD液晶模块初始化,设定各个数据的存储单元地址。

初始化完成后,系统将正常运行,并进行键盘扫描和温度的控制等操作。

(2)键盘扫描子程序:

提供人机信息交换接口,完成温度上、下限值的设定。

(3)温度测量子程序:

微控制器首先发布1个启动传输时序,接着调用写时序发布温度的测量命令,等待测量完成。

在完成测量后,再将测量结果返回给单片机进行数据处理。

(4)液晶显示子程序:

通过LCD屏显示测量数据和温度上下限。

(5)控制子程序:

微控制器比较温度的预设值和实际值的大小,控制电机正反转调节温度。

系统软件功能模块框图如图3.1所示

图3.1系统软件功能模块框图

3.2主程序流程图

将程序下载到单片机去后,给单片机上电或复位单片机,首先单片机对液晶初始化、定时器初始化等,延时一段时间等待个模块就绪后单片机驱动液晶显示主界面;单片机开始分时对温度进行检测,然后对键盘进行检测,有按键按下时则进行按键操作,无按键按下时就直接显示测量结果,接着单片机判断测量当前的温度是否满足要求,如不满足要求,则启动电机,如已满足工作,则继续检测显示,然后就是周而复始的循环上述工作,主程序模块如图3.2所示。

 

图3.2主程序模块框图

3.3温度采集子程序

采用单总线技术,与单片机通信只需要一根I/O线,硬件接口设计十分简单,通信协议是芯片厂家自行定义,所以才采用单片机与DS18B20进行通信测温时,单片机必须使用DS18B20的“语言”来与它进行交流,即必须遵循DS18B20的读写时序才能完成温度的采集和读取,如“DS18B20的初始化”、“写一个字节”、“读一个字节”等。

对照时序图依次拉高或拉低数据线和时钟线即可实现启动传输时序,完成对温度的采集。

在测量完成以后,调用读时序读回测量结果。

温度采集程序流程图如图3.3所示:

图3.3温度测量程序流程图

3.4液晶显示子程序

由于LM3033DDW-0B液晶用ST7920控制器内置了汉字库,因此省掉了查阅国标字码甚至自己取模的繁琐过程,只需要直接在程序中输入想要显示的字符和汉字即可,给编写程序带来了极大的方便,多以编写程序时只需要找出输入的字符串在DDRAM上的坐标和字符的数目。

LCD显示流程图如图3.4所示:

 

图3.4LCD显示流程图

3.5电机控制处理程序

图3.5为电机控制处理流程图,电机控制子程序根据温度检测程序所得到的数据与预设值进行比较,再根据的比较结果将执行命令发送到外部设备。

当温度高于设定温度的上限值时,控制电机反转;当温度低于设定温度值的下限值时,控制电机正转。

图3.5电机控制流程图

3.6按键处理程序

3.6.1按键软件消抖

在这个系统中使用了四个按键,即一个界面切换键,一个设置键和上下限值加减键各一个(一个增加和一个减小)。

按键检测人机交互的重要环节。

我们既要保证按键按下立刻响应,又要做到当外界干扰时不会造成程序的跑飞。

我们在电路中将所有的按键一端接在I/O端口外加上拉电阻另一端接地,当有按键按下时,直接将单片机的I/O口拉低,按键的检测就是检测按键的电平为低则有按键按下否则就没有,但是我们知道阿单片机执行程序是也有时间性的,所以按键按下一段时间后单片机才能够读取到。

另外,由于按键的物理特性,我们在操作按键时会发生抖动,如下图3.6所示。

图3.6按键抖动示意图

按键抖动是程序必须考虑的问题,否则程序将产生非常多的麻烦。

如图按键的抖动时间约为 10-20ms,所以我们检测按键时,通过软件的方法将这段时间过滤掉,这样才能得到准确的信息。

我们在学习单片机按键接口时,一般的做法就是利用延时(只考虑软件消抖),即通过延时来直接跳过按键的抖动时间,但是,这种做法效率太低,因为延时的这段时间CPU在跑空语句,这对于CPU资源来说是极大的浪费。

下面给大家介绍一种提高效率的方法。

我们的可以从这里来思考,我们通常是利用空语句延时,但是我们当执行其他子程序是也是需要时间的,即我们可以把处理子函数的时间作为按键等待的时间,就是把它在为一个“延时子函数”,当“延时”过去以后再检测I/O口的电平。

我们可以将时间片的操作思想运用到按键检测,就是每隔20MS(按键抖动时间)检测一下按键,如果连前后2次都检测到按键按下,那么我们可以确认按键确实是按下了,否则就是抖动造成的,返回没有按键按下。

这就是FSM原理,我们把按键的检测分成三个状态即

(1)是否有按键按下;

(2)按键正的按下;(3)按键是否弹起。

所以程序中就是要将这三个状态的时间间隔设为20MS,就可以将消抖的时间来运行其他程序成功的避开这一段时间,所以就可以成功的完成按键检测了。

3.6.2按键检测流程图

图3.7按键检测流程图

 

4系统调试

4.1硬件调试

根据原理图焊接好电路板,将焊接好的电路板通电,看该电路是否能正常工作,如液晶是否点亮并显示当前温度,如果液晶显示,温度检测都能正常工作,则表示该电路没有问题。

然后对该电路进行测试,采用加热的电烙铁靠近温度传感器DS18B20,看温度是否发生变化,由于条件限制没有一个精确的温度校正装置,只能看到显示温度发生变化。

所以当用加热的电烙铁靠近是,可以看到温度值在不断变大,等当前温度值超过设定温度范围的上限,能够看到电机反转,拿开电烙铁等温度值恢复到设定范围,能够看到电机停止转动。

4.2编译软件KIEL4的使用

A:

编译软件的装载:

打开keil软件,打开file选择LicenseManagement获得ID号,再打开keil目录下的keygen.exe将ID号粘贴进去获得LiscenseID号,复制LicenseID号,粘贴到LicenseManagement中的相应位置,点击ok既可。

B:

双击快捷方式,进入编辑界面,进行下一步编辑(如图)。

C.点击文件,新建一个文件,将源程序输入后保存(生成.c文件)。

D.选择项目,点击全部编译,系统自动进行编译后弹出对话框,提示编译中出现的问题,双击提示后系统会自动指出出问题的地方(生成.exe文件)。

图4.1KIEL4软件图标

图4.2编译使用界面

4.3程序的烧录

程序的烧录又称烧片,烧片用的是STC_ISP软件,它的使用方法如下:

先配置STC_ISP软件,如下图所示;

选择STC89C52RC;

烧片时应注意的问题:

(1)将单片机准确放入插槽中,不要放反了否则有烧单片机的危险,。

(2)选择单片机的型号,为该单片机的型号。

(3)打开要下载的文件,即kile的.hex文件

(4)选择对应的COM口,可以在设备管理器中查到使用哪个COM口。

(5)按下“Download/下载”握手成功后给单片机上电即可完成下载,(注:

给单片机上电以后,可以用手触屏单片机,当感觉好烫时应立刻断电检查单片机是否放好和其他硬件电路是否正确。

图4.3程序下载软件图标

图4.4下载软件界面

 

结论

经过几个月的努力并在指导老师的悉心教导下,本次毕业设计终于完成并达到了预期的效果,以下是本人对于这次设计的一些总结。

本次设计是基于室温控制系统,采用DS18B20模块作为温度采集传感器,该传感器只需简单的电路就可以与单片机实现连接,并且数据之间采用的是单总线进行通信即只需一个I/O口就可以了,由于是数字量传输,增加了抗干扰能力,大大提高数据的准确性。

通过本次设计对单片机有了更加深层次的了解,对C语言也是有很大的提高尤其是对于一个系统的整体的流程包括流程图到具体的程序的编写的能力大大的提高。

当然在这次设计中也遇到了很大的困难,比如一开始的单片机最小体统不能工作查电路发现是焊接出现了问题;还有后面读取温度总是为零,后面发现是程序开始没有初始化DS18B20导致不能正常工作,以及液晶显示不正确出现乱码,电机转动之后不能停下等问题。

庆幸的是这些都在老师和同学的帮助下一一解决了,有些只是自己的太粗心导致的,让系统不能正常的工作。

通过这次设计大大的提高了自己的动手能力,包括焊接等硬件制作和程序的编写等软件制作,由于本次试验在制作中全部滴PCB都是自己做的,包括元件库,PCB库和原理图包括后面的电路板的腐蚀都是自己亲自操作的,对于PCB的整个的流程相当了解,极大的提升了对PCB制版和DXP软件的使用。

在这段时间里我也发现了自己一些不足,一开始对于问题没有一个总体的把握,总是感到无从下手,对于当中遇到的问题开始也不能很好的解决,可能由于缺少经验,很多问题都是要花费好多的时间。

通过这次毕业设计我对课本知识有了巩固和加强,由于课本上的知识太多

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2