




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉理工大学计算机控制系统课程设计说明书摘要温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的 控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常 有价值的。本设计介绍了以LM35集成温度传感器为采集器、AT89C52 为控制器、ADC0808 为A/D 转换器对温度进行智能控制的温度控制系统。其主要过程 如下:利用传感器对将非电量信号转化成电信号,转换后的电信号再入A/D 转 换成数字量,传递给单片机进行数据处理,并向外围设备发出控制信号。论文首先介绍了单片机控制系统的整体方案设计及原理,然后具体介绍了控 制系统的温度传感器部分、A/D 转换部分、控制器8
2、9C51 部分以及数码管显示 和键盘控制部分,接着相信介绍了温度控制系统各个单元电路的设计,最后阐述 了温度控制系统软件设计的主程序和各个子程序。 关键字:单片机AT89C51 温度传感器 A/D 转换器 温度控制 目录摘要1计算机温度测控系统11.设计目的12.设计要求和设计指标13.总体方案设计14.硬件选择以及相关电路设计24.1 单片机选择24.2温度检测电路34.2.1温度传感器电路34.2.2 信号放大电路44.2.3 A/D转换电路54.3 加热控制电路设计64.4 降温控制电路设计64.5 键盘(温度设置)模块74.6 LCD1602温度显示模块74.7 整体电路图85.PID
3、 控制算法8心得体会9参考文献9附录1:温度控制系统程序清单10计算机温度测控系统1.设计目的 设计制作和调试一个由工业控制机控制的温度测控系统。通过这个过程学习 温度的采样方法,A/D 变换方法以及数字滤波的方法。通过实践过程掌握温度的 几种控制方法,了解利用计算机进行自动控制的系统结构。 2.设计要求和设计指标 1、每组45 同学,每个小组根据设计室提供的设备及设计要求,设计出实 际电路组成一个完整的计算机温度测控系统。 2、根据设备情况以及被控对象,选择12 种合适的控制算法, 框图和源程序,并进行实际操作和调试通过。 编制程序温度指标:6080之间任选;偏差:1。 3.总体方案设计要设
4、计完成一个微型计算机温度控制系统,我们可以把它的组成分成以下几个部分:温度检测电路,信号放大短路,A/D转换电路,加热控制电路,降温电路,报警电路,键盘(温度设置)模块和LED(温度显示)模块,单片机判断输入温度信号与设定的温度的差距,再通过改进的PID算法给以调节。放大器的则是用来放大采集装置采集的温度,由于测量的温度一般较小,所以要先用放大器进行放大再输入。A/D转换器是用来把采集到的模拟电压信号量转换成单片机可以识别的数字信号。高阻抗加热丝和降温风扇是该温度控制系统的温度调节部分,当采集温度不符合要求时,则通过计算机判断后进行调节。风扇用来降温,高阻抗加热丝用来加温。显示部分则用来显示容
5、器的温度以及设定时设置的温度值。温度采集装置采用精密集成电路温度传感器 LM35来采集培养液的温度,来看以看是否达到要求。通过以上的几个部分的组合,则组成了一个微型计算机温度控制系统。微型计算机温度控制系统的结构图如下图1所示。加热器皿加热控制电路AT89C51单片机高阻抗电阻丝1602显示降温控制电路降温风扇温度传感电路信号放大电路A/D转换键盘电路 图1 计算机温度测控系统结构图4.硬件选择以及相关电路设计 4.1 单片机选择 单片机的选择在整个系统设计中至关重要,要满足大内存、高速率、通用性、价格便宜等要求,本课题选择AT89C51最为主控芯片。AT89C51是一个低功耗、高性能的CMO
6、S 8为单片机,片内含4K Bytes ISP(In-system programmable)的可反复檫写的只读程序存储器和128 Bytes位的随机存取数据存储器,期间采用ATMEL公式的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89C51芯片具有以下特性:P0口:P0口是一组8位漏极开路双向I/O口,也郎地址/数据总线复用口,作为输出口用是,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作
7、为高阻抗输入端用。在访问外部数据存储器或程序存储器时,在组口线分是转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要外接上拉电阻。P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级课驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻吧端口拉到搞电平,此时课作为输入口。作为输入口使用时,因为内部上拉电阻,某个引脚被外部信号拉低时会输出一个电流。Flash编程和程序校验期间,P1接收低8位地址。P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出
8、缓冲级课驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到搞电平,此时可作为输入口,作为输入口使用时,因为内部存在上拉电阻,某个引脚外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器时,P2口线上的内容,在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其他控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口,P3口输出缓冲级课驱动4个TTL逻辑门电路,对P3口写入“1”时,它们被内部上拉电阻拉高并最为输入端口。作输入端时,被外部拉低的P3口
9、将用上拉电阻输出电流。P3口还接收一些Flash闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将单片机复位。ALE:当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因为它可对外输出时钟或用于定时目的,要注意的是,每次访问外部数据存储器时将跳过一个ALE脉冲。对存储器编程期间,改引脚还用于输入编程脉冲。PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令时,每个机器周期两次PSEN有效,即输出两
10、个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。EA:外部访问允许。欲使CPU仅访问外部程序存储器,EA端必须保持低电平。需要注意的是,如加密LB1被编程,复位时内部程序锁存存储器EA端状态。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。图2 AT89C51引脚图4.2温度检测电路4.2.1温度传感器电路温度检测电路包括温度传感器、变送器和A/D转换三部分。选用的温度传感器型号为LM35,其输出电压与摄氏温标呈线性关系,转换公式如式(1),0°C时输出为0V,每升高 1°C,输出电压增加10mV。 即:
11、Vout-LM35(T)=10mv/°C×T°C (1)LM35 有多种不同封装型式,外观如图 3 所示。在常温下,LM35 不需要额外的校准处理即可达到± °1/4C的准确率。其电源供应模式有单电源与正负双电源两种,其引脚如图 4 所示,正负双电源的供电模式可提供负温度的量测;两种接法的静默电流-温度关係如图 5所示,单电源模式在25°C下静默电流约50A,非常省电。图3LM35封装及引脚排列 图4单电源模式 图5双电源模式由课程任务书可知:温度在6080范围内连续可控。因此,只需要单电源模式即可满足要求。 4.2.2 信号放大电路
12、温度在6080,则温度传感器LM35输出的电压范围为0.60.8V,虽然该电压范围在A/D转换器的输入范围允许范围内,但该电压信号较弱,如果不进行放大直接进行A/D转换则会导致转换侧很难过的数字量太小、精度低。因此将输出用非反相放大器放大5倍,则输出电压在3.04.0V。便于测量。其电路图如下图: 图6 信号放大短路图4.2.3 A/D转换电路 A/D转换课采用ADC0808进行,ADC0808是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型DA转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0808可处理8路模拟量输入,且
13、有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与TTL兼容。图5中运算放大器输出电压Vo,送入ADC0808模拟输入通道IN0,单片机AT89C51控制ADC0808的开始转换、延时等待结束以及读出转换好的8位数字量至单片机进行处理。ADC0808A/D转换芯片引脚图如下图7所示。 图7 ADC080A/D转换芯片引脚图 ADC0808A/D转换芯片引脚功能:ADC0808芯片有28条引脚,采用双列直插式封装 IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路.ALE:地址锁存允许信号,输入
14、,高电平有效。 START: AD转换启动信号,输入,高电平有效。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输
15、入线,用于选通IN0IN7上的一路模拟量输入。本系统中ADC0808的转化电路如下图8所示。 图8 ADC0808转换电路接线图4.3 加热控制电路设计在读取到从温度传感模块采集到的温度数值后,与事先设定好的温度值进行比较,若当前检测得的温度比设定的温度低,则需要对培养液进行加热处理。本系统利用高阻抗的电阻丝来对培养液加热。如下图9所示,在检测到温度比设定的温度低时,P1.0管脚输出高电平,从而NPN管道通,驱动继电器启动,从而为高阻抗加热电阻丝通电加热生物培养液。利用改进的PID算法来计算PWM脉宽得出控制输出。从而根据检测到的温度而自动调节继电器导通时间。 图9 电阻丝加热模块4.4 降温
16、控制电路设计若当前检测得的温度比设定的温度高,则需要对培养液进行降温处理。本系统利用大功率风扇来对培养液进行降温。利用改进的PID算法来计算PWM脉宽通过P1.5控制输出。从而达到根据检测到的温度而自动调节风扇转速的目的。降温电路如图10所示: 图10 半导体制冷片实物图4.5 键盘(温度设置)模块键盘模块是本控制系统的人机交流模块部分,主要为用户提供进行温度的设置功能。为了方便简洁,本系统只使用两个独立按键实现温度设定;最高25,最低15;键盘采用扫描方式实时设定温度;独立键盘电路如图11所示: 图11 键盘模块接线图4.6 LCD1602温度显示模块1602液晶也叫1602字符型液晶,它是
17、一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。1602采用标准的16脚接口,其中:第1脚:VSS为电源地 第2脚:VCC接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个1
18、0K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。LCD1602接线电路图如图12所示: 图12 LCD1602显示电路图4.7 整体电路图 整体电路图如图13所示: 图13 整体电路图5.PID 控制算法 在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称
19、PID控制,又称PID调节。当被控对象的结构和参数不能完全掌握,或得不到精确的 数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数 必须依靠经验和现场调试来确定,这时应用 PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用 PID 控制技术。PID 控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、 积分、微分计算出控制量进行控制的。 比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。 积分控制在积分控制中,控制器的输出与输入误差信号的
20、积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的 或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分控制器,可以使系统在进入稳态后无稳态误差。 在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变
21、化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入 “比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制 误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分制器能改善系统在调节过程中的动态特性。 心得体会作为一名自动化专业的大三学生,我觉得做计算机控制系统课程设计是很有 意义的,而且也是必要的。两个星期很快就过去了,计算机控制技术课程设计也告 一段落
22、。本次课程设计,我的题目是计算机温度控制系统。温度控制是工业生产 过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品 的质量,因而设计一种较为理想的温度控制系统是非常有价值的,也是十分有必 要的。 其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:Proteus 绘图仿真、C 语言、模拟和数字电路知识等。虽然以前在上课的时候学的都不是 很好,很多知识都学习的模棱两可,可是如果你怀着一种目的性去学习它,你就 会发现学习的效率非常高,以前看了都头痛的东西在你现在一定要用的时候再拿 出来学习,会感觉其实也很简单的。这是我做这次课程设计的又一收获。 最后,要做好一个课程设
23、计,就必须做到:在做设计之前,一定要对我们的 对象有充分的了解,对所要用到的东西有深刻的认识,是指系统化、模块化,必 须有一个清晰的思路。在设计程序时,不能妄想一次将整个程序设计好,反复修 改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。总的来说,此次课程设计的过程比较轻松,从拿到问题到彻底解决问题,这是一个令人振奋并享受的过程。经过去图书馆大量的查阅书籍,我也学到了很多 在课本上没有的知识,收获颇丰。这段过程让我懂得了一个道理,那就是学生要 学的绝对不该仅仅是课本上的东西,有些东西只有走进图书馆,你
24、才可能学习到。 也只有这样,我们才能成为一个见多识广、渊博的人。 参考文献1. 于海生等编著微型计算机控制技术M北京:机械工业出版社,2007. 2. 邹伯敏主编.自动控制原理(第二版) M. 北京:机械工业出版社,2002.4. 吕震中,刘吉臻,王志明编.计算机控制技术与系统(第二版)M,北京: 中国电力出版社,2005. 5.张宇河主编.计算机控制系统M.北京:北京理工大学出版社, 2002.6.冯勇编.现代计算机控制系统M.哈尔滨:哈尔滨工业大学出版社,2003 7.谭浩强. C程序设计. 北京:清华大学出版社. 2005.8.于海生.计算机控制技术.北京:机械工业出版社,2007.9.
25、陈立周、陈宇.单片机原理及其应用.北京:机械工业出版社,2006.10.刘红丽、张菊秀. 传感与检测技术. 国防工业出版社. 2007.11.陈明荧. 8051单片机课程设计实训教材. 北京:清华大学出版社. 2004附录1:温度控制系统程序清单 #include "reg51.h"/-Key-/sbit Key_INC = P13;sbit Key_DEC = P14;/-Motor-/sbit Motor_Run = P15;sbit Motor_EN = P16;/-继电器-/sbit Heat_Run = P10; /-显示-/ sbit LCD_EN = P22;
26、sbit LCD_RW = P21;sbit LCD_RS = P20;/-ADC0808-/sbit ADC_OE=P24;sbit ADC_EOC=P26;sbit ADC_ST=P25;sbit ADC_ALE=P23;int Count,SpeedSet;float SetTep = 60.0;float RelTep;unsigned char code display1 = "SetTmp:" unsigned char code display2 = "RelTmp:" unsigned char code ACSII10 = 0x30,0
27、x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;void DelayMs(int ms);void TimerInit(void);void LCD1602Init(void);void WriteCom(unsigned char command);void WriteData(unsigned char dat);void WriteNum(int x,float num);void WriteChar(void);void main(void) Motor_EN = 1;LCD1602Init();WriteChar(); for(;) ADC_A
28、LE=1; ADC_ST=0; /此三条为启动程序 ADC_ST=1; ADC_ST=0; while(!ADC_EOC); / 等待转换完毕的信号,eoc=1是转换完毕; ADC_OE=1; /输出三态门打开,将转换的结果输出到数据总线上 RelTep = P3; RelTep = RelTep/255.0*5.0*20; ADC_OE=0; if(Key_INC = 0) DelayMs(1000);SetTep +=1.0;if(SetTep>80) SetTep = 80; if(Key_DEC = 0) DelayMs(1000);SetTep -=1.0;if(SetTep&
29、lt;60) SetTep = 60; WriteNum(0X80+0x08,SetTep); WriteNum(0XC0+0x08,RelTep); if(SetTep>RelTep) Heat_Run = 1; Motor_EN = 0; else if(SetTep<RelTep) Heat_Run = 0; Motor_EN = 1; void Timer0(void) interrupt 1 TH0 = 65525/256; /理论上10KHz频率; TL0 = 65525%256; Count+; if(Count>=100) Count = 0; if(Count < SpeedSet) Motor_Run=1; else Motor_Run=0; void DelayMs(int ms) int i,j;for(i=0;i<10;i+) for(j = 0;j<ms;j+);void TimerInit(void) TMOD = 0x51; TH0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论