单片机自动恒温控制系统设计方案.docx
《单片机自动恒温控制系统设计方案.docx》由会员分享,可在线阅读,更多相关《单片机自动恒温控制系统设计方案.docx(82页珍藏版)》请在冰豆网上搜索。
单片机自动恒温控制系统设计方案
2013年6月
毕业论文
自动恒温控制系统的设计
学生:
指导教师:
专业:
所在单位:
答辩日期:
2013年6月
摘要I
ABSTRACTII
第1章绪论1
1.1引言1
1.2论文工作的背景、内容及意义1
1.2.1研究背景1
1.2.2论文主要内容2
1.2.3研究意义2
第2章系统总体方案设计3
2.1系统总体设计方案3
2.2系统部分功能模块设计3
2.2.1温度采集电路选择3
2.2.2显示电路6
2.2.3按键输入电路6
2.3开发环境及编程语言的选择7
2.3.1硬件开发环境的选择7
2.3.2软件开发环境的选择8
2.3.3编程语言的选择9
第3章硬件电路设计11
3.1单片机的选型11
3.1.1STC89C52单片机简介11
3.1.2STC89C52单片机时序11
3.1.3STC89C52单片机引脚介绍11
3.2单片机最小系统电路14
3.3系统电源电路的设计15
3.4温度传感器电路17
3.4.1温度采集电路17
3.4.2A/D转换电路19
3.5按键输入电路22
3.6时钟电路22
3.7LCD显示电路23
3.8报警电路24
3.9串口通信电路25
3.9.1MAX232资料简介25
3.9.2RS232接口介绍25
3.10存储器接口电路27
第4章系统软件设计29
4.1读取温度子程序29
4.3按键处理子程序30
4.4计算温度子程序32
4.5报警子程序32
总结34
致谢35
参考文献36
附录137
附录238
摘要
随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平。
本设计论述了一种以STC89C52单片机为主控制单元,以PT100为温度传感器的温度采集系统,并通过ADC0809进行模数转换传给单片机。
该采集系统可以实时存储相关的温度数据并记录当前的时间。
系统设计了相关的硬件电路和相关应用程序。
硬件电路主要包括STC89C52单片机最小系统,测温电路、实时时钟电路、LCD液晶显示电路以及通讯模块电路等。
系统程序主要包括主程序,读出温度子程序,计算温度子程序、按键处理程序、LCD显示程序以及数据存储程序等。
关键词STC89C52单片机;PT100;LCD显示电路;ADC0809
ABSTRACT
Alongwiththecomputermeasurementandcontroltechnologyoftherapiddevelopmentandwideapplication,basedonsinglechiptemperaturegatheringandcontrolsystemdevelopmentandapplicationgreatlyimprovetheproductionoftemperatureinlifelevelofcontrol.ThisdesignSTC89C52describesakindofmainlybyMCUcontrolunit,fortemperaturesensorPT100temperaturecontrolsystem.Thecontrolsystemcanreal-timestoragetemperaturedataandrecordrelatedtothecurrenttime.Systemdesignrelatedhardwarecircuitandrelatedapplications.STC89C52microcontrollerhardwarecircuitincludetemperaturedetectioncircuitsmallestsystem,andreal-timeclockcircuit,LCDdisplaycircuit,communicationmodulecircuit,etc.Systemprogrammingmainlyincludemainprogram,readtemperaturesubroutine,thecalculationoftemperaturesubroutines,keyprocessingprocedures,LCDdisplayproceduresanddatastorageprocedures,etc.
KeywordsSTC89C52microcontroller;PT100;LCDdisplaycircuit;ADC0809
第1章绪论
1.1引言
现代工业生产中,温度是一个非常普遍但却十分重要的一个工艺参数。
很多材料的特性与温度息息相关,且物理变化和化学反应过程都与温度密切相关因此对温度的控制是现代自动化生产中的重要任务。
而对于现代工业中不同生产情况和工艺要求,所采用的加热方式,燃料,控制方案等也不尽相同。
传统的温度测量办法是利用一般温度计进行读数。
对于需要随时了解温度变化的场合,这种办法将会消耗大量人力、物力,而且对于变化较快的温度数值不能做到同步及时测量,效果不佳。
由于读数时的人为因素引起的误差也不可忽视。
要用人工进行温度控制,其劳动强度可想而知,而且无法做到精确控制,因此需要寻求更好的测温控温办法。
伴随着微电子技术和微型计算机的迅猛发展,微机测量和控制技术以其逻辑简单、控制灵活、使用方便及性能价格比高的优点得到了迅猛发展和广泛应用。
它不仅在航空。
航天、铁路交通、冶金、电力、电讯、石油化工等领域获得了广泛应用。
而且其技术在日常生活中诸如电梯、微波炉、电冰箱、电视机、智能照相机、电动玩具、全自动洗衣机、智能空调等高科技产品中也具有广阔的使用前景,尤其是许多智能仪表和测控系统中引入电脑控制技术后,使传统仪器、仪表设备发生了根本变化,为工业生产的自动化、智能化奠定了坚实的技术基础。
所以越来越多的控制方法都采用了智能单片机控制。
单片机是一种集CPU、RAM、ROM、I/O接口和中断系统等部分于一体的器件,只需要外加电源和晶振就可实现对数字信息的处理和控制。
因此,单片机广泛地应用于现代工业控制中。
控制具有体积小、重量轻、价格低、可靠性高、耗电少和灵活机动等许多优点,因此如果能利用单片机进行温度的测量和控制,将会大大提高温度测量和控制的可靠性和灵活性。
1.2论文工作的背景、内容及意义
1.2.1研究背景
以前的炉温控制系统大都需要手工操作,按工艺需求设定温度值加大电压使点炉升温,其升温很难达到线性,恒温保持也受外界干扰很大,无法实时控制,另外对工艺要求复杂的控制对象难以控制。
为了做到工艺控制的全自动化,并达到高精度高稳定性的实时要求,研究一个智能性的炉温实时控制系统是很有意义的。
以前在温度控制时,主要通过人为的控制方式,即根据经验时间来估计加热到预定温度的时间,以及通过用温度计进行实时测量来控制加热的时间。
这种方式不仅劳动强度高,而且对于温度变化很快的时候无法达到精确控制。
所以必须对加热炉的温度控制方式进行改进,来降低劳动强度及控制精度。
1.2.2论文主要内容
利用单片机来测量炉内的温度和对炉内温度进行控制。
利用温度传感器与信号电路相结合,再经过单片机处理显示,通过24小时的定温监测以及在温度上升或下降到某一范围定时报警,节省人力和物力,大大提高工作效率。
1.2.3研究意义
通过单片机来控制加热的过程促进了生产过程自动化。
而生产过程自动化是保持生产稳定、降低消耗、改善劳动条件、保证生产安全和提高劳动生产率的重要手段。
采用温度控制系统来控制温度对企业具有重要的意义:
1.降低劳动强度,改善劳动条件。
采用单片机系统后,不再需要工人不停的对加热炉进行检查。
2.提高控制精度。
单片机可以对温度进行实时的控制,降低温度加热的滞后性,以此提高加热的精度。
3.提高工作效率,降低成本,采用单片机系统控制可以更快的达到恒温控制的效果,提高工作效率、节省能源、降低成本。
4.提高企业对可控制电加热技术的应用水平,锻炼企业技术人员的开发、应用能力。
第2章系统总体方案设计
2.1系统总体设计方案
本系统采用了STC89C52作为处理器,以PT100为温度传感器的温度采集系统,并通过ADC0809进行模数转换,该控制系统可以实时存储相关的温度数据并记录当前的时间。
其主要包括:
电源模块、温度采集模块、按键处理模块、实时时钟模块、数据存储模块、报警电路模块、LCD显示模块、通讯模块以及单片机最小系统。
硬件系统原理框图如图2-1。
图2-1硬件原理框图
2.2系统部分功能模块设计
2.2.1温度采集电路选择
传感器的选择:
目前,温度传感器没有统一的分类方法。
按输出量分类有模拟式温度传感器和数字式温度传感器。
按测温方式分类有接触式温度传感器和非接触式温度传感器。
按类型分类有分立式温度传感器(含敏感元件)、模拟集成温度传感器和智能温度传感器(即数字温度传感器)。
温度传感器的从测量原理分为,体积热膨胀,电阻变化,热电效应(热电偶),压电效应频率变化,光学反应等温度传感器,它们各自有自己的优缺点,利用体积热膨胀的温度传感器,不需要用电。
电阻温度传感器分为铜电阻,中等精度价格低;铂电阻高精度价格高;热敏电阻,精度低灵敏度高。
热电效应温度传感器,温度范围宽,测量精度高但需要冷端补偿。
利用压电效应和频率变化改变输出值的温度传感器可以作为标准使用。
利用光学变化改变温度传感器适合高温非接触测量。
温度传感器是最早开发,应用最广的一类传感器。
常用的温度传感器有热电阻、热敏电阻和热电偶。
在半导体技术的支持下,本世纪相继开发了半导体热电偶传感器、PN结温度传感器和集成温度传感器。
与之相应,根据波与物质的相互作用规律,相继开发了声学温度传感器、红外传感器和微波传感器。
方案一:
选择热电偶传感器
热电偶作为测温原件具有结构简单、较高的精准度、测量范围宽、具有良好的敏感度等优点,在温度测量中应用最为广泛。
方案二:
选择热电阻传感器
热电阻在工业上广泛应用于测量-200~+500℃范围的温度,随着科技的发展热电阻温度计的测量范围低温端可达-272.5℃左右,高温端可测到1000℃。
热电阻温度传感器的特点是精度高,适宜测低温。
在560℃以下的温度测量中,它的输出信号比热电偶容易测量。
本系统选择的加热炉温度一般在室温0~700℃范围内,范围比较窄,也比较低,对精度的要求也比较低,综合考虑热电阻、热电偶和热敏电阻的特点,选用热电阻比较好。
另外,热电阻又有铂电阻、铜电阻、铁电阻和镍电阻等,各有其特点,由于铂电阻稳定性好,性能可靠,所以本设计选用了常用的铂电阻Pt100作为温度传感器。
方案三:
选择MAX6577作为传感器
MAX6577作为温度传感芯片,这是一种将温度转换为均衡频率方波的传感器(温度→频率),其主要特点如下:
A.方波输出,无需A/D转换与单片机计数端直接相连。
B.温度测量范围-40~+125℃。
C.较低的测量误差。
测量温度是+25℃时,误差范围为±0.8℃;测量温度是+125℃时,误差范围为±0.5℃。
D.不需外接元件,体积小(最大3mm×3mm),适合用作温度测量探头。
需要注意的是,该传感芯片将温度转换为频率是以绝对温度(K)为前提,因此对频率的计数结果应减去273才能得到摄氏温度,这当然可以在软件编写时方便地做运算处理。
由于本设计的控制温度范围在室温0~700℃,由于铂电阻的精度高,所以本设计选择方案二。
A/D转换芯片的选择:
A/D转换器把传感器采集的模拟量输入转换成单片所能识别的数字量信号。
A/D转换器的种类分为双积分A/D转换器如ICL7109,逐次逼近型A/D转换器如ADC0809和并型A/D转换器。
双积分A/D转换器的精度高,抗干扰性好,价格便宜,但是速度较慢,逐次逼近型A/D转换器的精度,价格,速度适中,并型A/D转换器,速度快价格也昂贵,本设计综合考虑采用逐次逼近型A/D转换器ADC0809。
单片机与A/D转换器接口电路的主要功能是:
A.通过I/O输出通道启动转换或直接输出指令启动转换。
启动转换的方式完全由A/D内部电路结构而定。
B.把转换好的数据送入CPU。
当确定使用A/D转换器以后,按下列原则选择A/D转换器芯片。
A)根据前向通道的总误差,选择A/D转换器精度及分辨率。
B)根据信号对象的变化率及转换精度要求,确定A/D转换速度,以保证系统的实时性要求。
C)根据环境条件选择A/D转换芯片的一些环境参数要求,如工作温度、功耗、可靠性等级性能。
D)根据单片机接口特征,考虑如何选择A/D转换器的输出状态。
其它,还要考虑到成本、资源、是否是流行芯片等因素。
由于各A/D转换器的性能指标不一样,速度相差很大,一般需要有数10uS以上的转换时间,因此在单片机发出转换命令后,需等待转换结束方可读取数据。
常用的有程序查询输入方式和中断方式。
INT7和INT6两个输入端分别接地和AD参考电源,是为了实现数字自动调零和抑制电源波动对转换的影响,并可供微机仪表实现自校用。
ADC0809的内部结构框图如图2-2所示,本系统采用ADC0809构成A/D转换电路。
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。
因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。
输入输出与TTL兼容。
由于ADC0809的片内无时钟,它的时钟频率在10KHZ—1280KHZ之间。
可利用AT89C52提供的地址锁存允许信号ALE经D触发器二分频所得,ALE脚的频率是AT89C52单片机时钟频率的
。
由于ADC0809具有输出三态锁存器,故其8位数据输出引脚可直接与数据总线相连。
方案一:
选择MC14433
MC14433是3又1/2位BCD码输出、双积分式的A/D转换芯片,转换速度约1~10次/s,需±5V工作电源,其模拟量输入电压为199.9mV或1.999V,基准电源相应为200mV或2V。
方案二:
选择ADC0809
ADC0809是8位、逐次逼近式A/D转换芯片,具有地址锁存控制的8路模拟开关,应用单一+5V电源,其模拟量输入电压的范围为0~-5V,对应的数字量输出为00~FFH,转换时间为100us,无需调零或调整满量程。
根据MC14433和ADC0809的特性可以看出,ADC0809的转换速度快,且只需单一的+5V电源,使用起来比MC14433方便的多。
本系统的要求温度控制误差在±2℃内,采用8位A/D转换器,其最大量化误差为±0.5×(1/255)×250℃=±0.5℃,完全能满足要求。
2.2.2显示电路
在单片机系统中常用的显示电路有LED显示、LCD显示。
方案一:
LED显示屏采用七段码显示时,数码管中的每一段相当于一个发光二极管。
对于共阳极的数码管,内部每个发光二极管的阳极被连在一起,成为该各段的公共选通线,发光二极管的阴极则成为段选线。
对于共阴极数码管,则正好相反,内部发光二极管的阴极接在一起,阳极成为段选线。
这两种数码管的驱动方式是不同的。
当需要点亮共阳极数码管的一段时,公共段需接高电平,该段的段选线接低电平。
从而该段被点亮。
当需要点亮共阴极数码管的一段时,公共段需接低电平,该段的段选线接高电平,该段被点亮。
方案二:
LCD显示电路多采用1602液晶。
1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
1602LCD是指显示的内容为
,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。
基于精确显示,拟采用方案二。
2.2.3按键输入电路
一般键盘电路有两种:
独立式键盘和矩阵式键盘。
方案一:
独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态不会影响其它输入线上的工作状态。
因此,通过检测输入线的电平状态就可以很容易的判断按键是否被按下了。
独立式键盘电路配置灵活,软件结构简单。
但每个按键需占用一根输入线,在按键数量较多时,输入口浪费大,电路结构显得很繁杂,故此种按键适用于按键较少或操作速度较高的场合。
方案二:
矩阵式键盘由行线和列线组成,按键位于行、列的交叉点上,分别连接到按键开关的两端。
行线通过上拉电阻接到VCC上。
平时无按键动作时,行线处于低电平状态,而当有按键按下时,列线电平为低,行线电平为高。
这一点是识别矩阵式是否被按下的关键所在。
因此,各按键彼此将相互影响,所以必须将行、列线信号配合起来并作适合的处理,才能确定闭合键的位置。
很明显,在按键数量较多的场合,矩阵式键盘与独立式键盘相比,要节省很多的I/O口。
由于本系统只需要4个按键,故选择独立式键盘。
2.3开发环境及编程语言的选择
2.3.1硬件开发环境的选择
Protel是Protel公司在80年代末推出的EDA软件,在电子行业的CAD软件中,它当之无愧地排在众多EDA软件的前面,是电子设计者的首选软件,它较早就在国内开始使用,在国内的普及率也最高,有些高校的电子专业还专门开设了课程来学习它,几乎所有的电子公司都要用到它,许多大公司在招聘电子设计人才时在其条件栏上常会写着要求会使用Protel。
早期的Protel主要作为印制板自动布线工具使用,运行在DOS环境,对硬件的要求很低,在无硬盘286机的1M内存下就能运行,但它的功能也较少,只有电原理图绘制与印制板设计功能,其印制板自动布线的布通率也低,而现今的Protel已发展到Protel99(网络上可下载到它的测试板),是个庞大的EDA软件,完全安装有200多M,它工作在WINDOWS95环境下,是个完整的板级全方位电子设计系统,它包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有Client/Server(客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如ORCAD,PSPICE,EXCEL等,其多层印制线路板的自动布线可实现高密度PCB的100%布通率。
在国内Protel软件较易买到,有关Protel软件和使用说明的书也有很多,这为它的普及提供了基础。
Protel软件的原厂商Altium公司推出了Protel系列的高端版本AltiumDesigner6.9。
AltiumDesigner6.9,它是完全一体化电子产品开发系统的一个新版本,也是业界第一款也是唯一一种完整的板级设计解决方案。
AltiumDesigner是业界首例将设计流程、集成化PCB设计、可编程器件(如FPGA)设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品,一种同时进行PCB和FPGA设计以及嵌入式设计的解决方案,具有将设计方案从概念转变为最终成品所需的全部功能。
这款高端版本AltiumDesigner6.9除了全面继承包括99SE,Protel2004在内的先前一系列版本的功能和优点以外,还增加了许多改进和很多高端功能。
AltiumDesigner6.9拓宽了板级设计的传统界限,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程师能将系统设计中的FPGA与PCB设计以及嵌入式设计集成在一起。
Designer6.9以强大的设计输入功能为特点,在FPGA和板级设计中,同时支持原理图输入和HDL硬件描述输入模式;同时支持基于VHDL的设计仿真,混合信号电路仿真、布局前/后信号完整性分析。
AltiumDesigner6.9的布局布线采用完全规则驱动模式,并且在PCB布线中采用了无网格的SitusTM拓扑逻辑自动布线功能;同时,将完整的CAM输出功能的编辑结合在一起。
AltiumDesigner6.9极大地增强了对高密板设计的支持,可用于高速数字信号设计,提供大量新功能和改进,改善了对复杂多层板卡的管理和导航,可将器件放置在PCB板的正反两面,处理高密度封装技术,如高密度引脚数量的球型网格阵列(BGAs)。
AltiumDesigner6.9中的BoardInsight系统把设计师的鼠标变成了交互式的数据挖掘工具。
BoardInsight集成了“警示”显示功能,可毫不费力地浏览和编辑设计中叠放的对象。
工程师可以专注于其目前的编辑任务,也可以完全进入目标区域内的任何其他对象,这增加了在密集、多层设计环境中的编辑速度。
AltiumDesigner6.9引入了强大的‘逃逸布线’引擎,尝试将每个定义的焊盘通过布线刚好引到BGA边界,这令对密集BGA类型封装的布线变的非常简单。
显著的节省了设计时间,设计师无需手动就可以完成在一大堆焊盘间将线连接这些器件的内部管脚。
AltiumDesigner6.9极大减少了带有大量管脚的器件封装在高密度板卡上设计的时间,简化了复杂板卡的设计导航功能,设计师可以有效处理高速差分信号,尤其对大规模可编程器件上的大量LVDS资源。
AltiumDesigner6.9充分利用可得到的板卡空间和现代封装技术,以更有效的设计流程和更低的制造成本缩短上市时间。
经比较,本设计采用AltiumDesigner6.9。
2.3.2软件开发环境的选择
单片机开发中除必要的硬件外,同样离不开软件,汇编语言源程序要变成CPU可以执行的机器吗有两种方法,一种是手工汇编,另一种是机器汇编,目前已经极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS—51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,单片机的开发软件业在不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件业在不断发展。
方案一:
Keil是德国知名软件公司Keil(现已并入Arm公司)开发的基于8051内核的微控制器软件开发平台,是目前开发8051内核单片机的主流工具,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分结合在一起。
运行Keil软件需要Pentium或以上的CPU,16M或更多的RAM、20M以上的闲散硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果使用的是C语言,则该软件十分适用,即使使用的是汇编语言,其方便易用的集成环境、强大的软件仿真调试工具也会令工作事半功倍。
方案二:
使用伟福软件必须使用伟福的硬件才能仿真,硬件自己也不能搭起来,硬件的支持很少,软件编程起来也比较繁琐。
伟福的单片机软件平台内部的编译器不如Keil的好用,如