ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:277.38KB ,
资源ID:19754838      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19754838.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机温度控制系统课程设计Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机温度控制系统课程设计Word格式文档下载.docx

1、 选用温度传感器AD590,AD590具有较高精度和重复性(重复性优于0.1,其良好的非线形可以保证优于0.1的测量精度,利用其重复性较好的特点,通过非线形补偿,可以达到0.1测量精度)。超低温漂移高精度运算放大器OP-07将“温度-电压”信号放大。便于A/D进行转换,以提高温度采集电路的可靠性。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0时输出为0,温度25时输出为2.982V。电流输出型的灵敏度为1A/K。这样便于A/D转换器采集数据。4.1 温度采集图4.2 模数转换器 ADC0809是M美国国家半导体公司生产的CMOS工艺8通道,8位

2、逐次逼近式A/D转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换,其转换时间为100s左右。是目前国内使用最广泛的8位通用A/D芯片。图4.2 ADC0809引脚图4.2.1ADC0809内部结构图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是一种经济的多路数据采集方法。地址锁存和译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接和系统数据总线相连,表4-1为通道选择表。 图4.3 ADC0809内部结构图表4

3、-1通道选择表4.2.2信号引脚ADC0809的内部结构和外部引脚分别如图4-3和图4-2所示。内部各部分的作用和工作原理在内部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下:(1)IN0IN78路模拟输入,通过3根地址译码线ADDA、ADDB、ADDC来选通一路。(2)D7D0A/D转换后的数据输出端,为三态可控输出,故可直接和微处理器数据线连接。8位排列顺序是D7为最高位,D0为最低位。(3)ADDA、ADDB、ADDC模拟通道选择地址信号,ADDA为低位,ADDC为高位。地址信号和选中通道对应关系如表4-1所示。(4)VR(+)、VR(-)正、负参考电压输入端,用于提供片

4、内DAC电阻网络的基准电压。在单极性输入时,VR(+)=5V,VR(-)=0V;双极性输入时,VR(+)、VR(-)分别接正、负极性的参考电压。(5)ALE地址锁存允许信号,高电平有效。当此信号有效时,A、B、C三位地址信号被锁存,译码选通对应模拟通道。在使用时,该信号常和START 信号连在一起,以便同时锁存通道地址和启动A/D转换。(6)STARTA/D转换启动信号,正脉冲有效。加于该端的脉冲的上升沿使逐次逼近寄存止,重新从头开始转换器清零,下降沿开始A/D转换。如正在进行转换时又接到新的启动脉冲,则原来的转换进程被中。 (7)EOC转换结束信号,高电平有效。该信号在A/D转换过程中为低电

5、平,其余时间为高电平。该信号可作为被CPU查询的状态信号,也可作为对CPU的中断请求信号。在需要对某个模拟量不断采样、转换的情况下,EOC也可作为启动信号反馈接到START端,但在刚加电时需由外电路第一次启动。 (8)OE输出允许信号,高电平有效。当微处理器送出该信号时,ADC0808/0809的输出三态门被打开,使转换结果通过数据总线被读走。在中断工作方式下,该信号往往是CPU发出的中断请求响应信号。4.2.3工作时序和使用说明图4-4 ADC0809工作时序图 用单片机控制ADC时,多数采用查询和中断控制两种方式。查询法是在单片机把启动命令送到ADC之后,执行别的程序,同时对ADC的状态进

6、行查询,以检查ADC变换是否已经完成,如查询到变换已结束,则读入转换完毕的数据。中断控制是在启动信号送到ADC之后,单片机执行别的程序。当ADC转换结束并向单片机发出中断请求信号时,单片机响应此中断请求,进入中断服务程序,读入转换数据,并进行必要的数据处理,然后返回到原程序。这种方法单片机无需进行转换时间管理,CPU效率高,所以特别适合于变换时间较长的ADC。本设计采用查询方式进行数据收集。由于ADC0809片内无时钟,故运用8051提供的地址锁存使能信号ALE经D触发器二分频后获得时钟。因为ALE信号的频率是单片机时钟频率的1/6,如果时钟频率为6MHz,则ALE信号的频率为1MHz,经二分

7、频后为500kHz,和AD0809时钟频率的典型值吻合。由于AD0809具有三态输出锁存器,故其数据输出引角可直接和单片机的总线相连。地址码引脚ADDAC分别和地址总线的低3位A0、A1、A2相连,以选通IN0IN7中的一个通道。采用单片机的P2.7(地址总线最高位A15)作为A/D的片选信号。并将A/D的ALE和START脚连在一起,以实现在锁存通道地址的同时启动ADC0809转换。启动信号由单片机的写信号和P2.7经或非门而产生。在读取转换结果时,用单片机的读信号和P2.7经或非门加工得到的正脉冲作为OE信号去打开三态输出锁存器。编写的软件按下列顺序动作:令P2.7=A15=0,并用A0、

8、A1、A2的组合指定模拟通道的地址;执行一条输出指令,启动A/D转换;然后根据所选用的是查询、中断、等待延时三种方式之一的条件去执行一条输入指令,读取A/D转换结果。ADC0809是一个8路8位逐次逼近的A/D转换器。AD0809的转换时间为100s。在CPU启动A/D命令后,便执行一个固定的延时程序,延时时间应略大于A/D的转换时间;延时程序一结束,便执行数据读入指令,读取转换结果。我们只用了其一路AD转换,参考电压2.56V,即一位数字量对应10mV即1。所以用起来很方便。ADC0809是带有8路模拟开关的8位A/D转换芯片,所以它可有8个模拟量的输入端,由芯片的A,B,C三个引脚来选择模

9、拟通道中的一个。A,B,C三端分别和AT89C51的P0.0P0.2相接。地址锁存信号(ALE)和启动转换信号(START),由P2.6和/WR或非得到。输出允许,由P2.6和/RD或非得到。时钟信号,可有89C51的ALE输出得到,不过当采用12M晶振时,应该先进行二分频,以满足ADC0809的时钟信号必须小于640K的要求。4.3控制器89C51AT89C51是美国ATMEL公司生产的低电压 ,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM ),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼

10、容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的使用场合,可灵活使用于各种控制领域。AT89C51单片机的主要特性:(1)和MCS-51 兼容,4K字节可编程闪烁存储器;(2)灵活的在线系统编程,掉电标识和快速编程特性;(3)寿命为1000次写/擦周期,数据保留时间可10年以上;(4)全静态工作模式:0Hz-33Hz;(5)三级程序存储器锁定;(6)128*8位内部RAM,32可编程I/O线;(7)两个16位定时器/计数器,6个中断源;(8)全双工串行UART通道,低功耗的闲置和掉电模式; (9)片内振荡器

11、和时钟电路;图4.5 AT89C51结构图4.4数码管显示电路4.4.1 LED数码管的组成 LED数码管显示器是由发光二极管显示字段的显示器件,也称为数码管。其结构如图4.6所示。它由8个发光二极管构成,通过不同的组合可用来显示0-9、A-F及小数点“.”等字符。数码管有共阴极和共阳极两种结构规格,电阻为外接。共阴极数码管的发光二极管阴极共地,当某发光二极管的阳极为高电平时,二极管点亮;共阳极数码管的发光二极管是阳极,并接高电平,对于需点亮的发光二极管将其阴极接低电平即可。图4-6 LED数码管显示图4.4.2数码管显示方式(1) 静态显示方式 直接利用并行口输出。LED显示工作于静态显示方

12、式时,各位的共阴极连接在一起接地;每位的段选线分别于一个8位的锁存输出相连。一般称之为静态显示,是由于显示器中的各位相互独立。而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。本实验采用串入并出的静态显示方式。利用通信号串行输出。在实际使用中,多位LED显示时,为了简化电路,在系统不需要通信功能时,经常采用串行通信口工作方式0,外接移位寄存器74LS164来实现静态显示。(2) 动态显示方式对多位LED显示器的动态显示,通常都时采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应

13、,看起来和全部显示器持续点亮一样。为了实现LED显示器的动态扫描,除了要给显示器提供的输入之外,还要对显示器加位选择控制,这就是通常所说的段控和位控。因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出8位控信号;另一个用于输出段控信号,其连接图如图4-7所示。图4.7 数码管显示电路表4.2 七段LED段选码表显示字符共阴极段3FHC39H106HD5EH25BHE79H34FHF71H466HP73H56DHU3EH67DH31H707Hy6EH87FH8.FFH96FH“灭”00HA77H/B7CH5.PID控制算法在工程实际中,使用最为广泛的调节器控制规律为比例、积分、微分控

14、制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它 以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的 其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时使用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象,或 不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、 积分、微分计算出控制量进行控制的。 比例控制 比例控制是一种最简单的控制方式。其控制

15、器的输出和输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。积分控制 在积分控制中,控制器的输出和输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的 或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分控制器,可以使系统在进入稳态后无稳态误差。微分控制 在微分控制中,控制器的输出和输入误差信号的微分(即误差的变化率)成正比关系.自

16、动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入 “比例”项是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。6.各子程序设计及流程图6.1 PID控制程序流程图6.2 A/D转换程序流程图6.3 显示程序流程图6.4温度控

17、制总程序流程图 心得体会 作为一名自动化专业的大三学生,我觉得做计算机控制系统课程设计是很有意义的,而且也是必要的。个星期很快就过去了,计算机控制技术课程设计也告一段落。本次课程设计,我的题目是计算机温度控制系统。温度控制是工业生产过程中经常遇到的过程控制,有些工艺过程对其温度的控制效果直接影响着产品的质量,因而设计一种较为理想的温度控制系统是非常有价值的,也是十分有必要的。其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:Proteus绘图仿真、C语言、模拟和数字电路知识等。虽然以前在上课的时候学的都不是很好,很多知识都学习的模棱两可,可是如果你怀着一种目的性去学习它,你就会发现学

18、习的效率非常高,以前看了都头痛的东西在你现在一定要用的时候再拿出来学习,会感觉其实也很简单的。这是我做这次课程设计的又一收获。最后,要做好一个课程设计,就必须做到:在做设计之前,一定要对我们的对象有充分的了解,对所要用到的东西有深刻的认识,是指系统化、模块化,必须有一个清晰的思路。在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。总的来说,此次课程设计的过程比较轻松,从拿到问题到彻底解决问题,这是一个令人振奋并享受的过程。经过去图书馆大量的查阅书籍,我也

19、学到了很多在课本上没有的知识,收获颇丰。这段过程让我懂得了一个道理,那就是学生要学的绝对不该仅仅是课本上的东西,有些东西只有走进图书馆,你才可能学习到。也只有这样,我们才能成为一个见多识广、渊博的人。参考文献1. 于海生等编著微型计算机控制技术M北京:机械工业出版社,2007.2.邴志刚等编著.计算机控制:基础技术工具实例M.北京:清华大学出版社, 2005.3. 邹伯敏主编.自动控制原理(第二版) M. 北京:机械工业出版社,2002.4. 吕震中,刘吉臻,王志明编.计算机控制技术和系统(第二版)M,北京:中国电力出版社,2005.5.张宇河主编.计算机控制系统M.北京:北京理工大学出版社,

20、 2002.6.冯勇编,现代计算机控制系统M.哈尔滨:哈尔滨工业大学出版社,20037.karl J.Astrom,Bjorn Wittenmark著.计算机控制系统理论和设计:英文版M.北京:清华大学出版社,2002.8.Morris Driels著.线性控制系统工程(英文影印版)M.北京:清华大学出版社,2000.9.John J.Dazzo & Constantine H.Houpis著.线性控制系统分析和设计(第4版)M.北京:10.韩建国. Foundation and application of microcontroller .北京:高等教育出版社.2004.10附录1:温度控

21、制系统总电路图附录2:温度控制系统程序清单(1)主函数如下:#include absacc.h#includeKEYSCAN.HPID.Hvoid PIDBEGIN(void); / PID参数初始化/ void main() unsigned char key1=0,i,k; unsigned int tmp; unsigned char shu3=13,13,0; unsigned char counter=0; PIDBEGIN(); while(1) if(counter- = 0) tmp = ReadTemperature(); counter = 20; view(tmp); /

22、温度显示; compare_temper(); (2) PID算法温度控制程序#ifndef _PID_H_#define _PID_H_#includemath.hstring.hstruct PID unsigned int SetPoint; / 设定目标 Desired Value unsigned int Proportion; / 比例常数 Proportional Const unsigned int Integral; / 积分常数 Integral Const unsigned int Derivative; / 微分常数 Derivative Const unsigned

23、int LastError; / Error-1 unsigned int PrevError; / Error-2 unsigned int SumError; / Sums of Errors struct PID spid; / PID Control Structure unsigned int rout; / PID Response (Output) unsigned int rin; / PID Feedback (Input) sbit output=P34;unsigned char high_time,low_time,count=0;/占空比调节参数 unsigned c

24、har set_temper=33;void PIDInit (struct PID *pp) memset ( pp,0,sizeof(struct PID);unsigned int PIDCalc( struct PID *pp, unsigned int NextPoint ) unsigned int dError,Error;Error = pp-SetPoint - NextPoint; / 偏差 pp-SumError += Error; / 积分 dError = pp-LastError - pp-PrevError; / 当前微分 PrevError = pp-LastE

25、rror;LastError = Error;return (pp-Proportion * Error/比例 + pp-Integral * pp-SumError /积分项 Derivative * dError); / 微分项 /* 温度比较处理子程序 */ compare_temper() unsigned char i;/EA=0;if(set_tempertemper) if(set_temper-temper1) high_time=100;low_time=0;else for(i=0;i10;i+) get_temper();rin = s; / Read Input rout = PIDCalc ( &spid,rin ); / Perform PID Interation if (high_time=100) high_time=(unsigned char)(rout/800);low_time= (100-high_time);else if(set_temper0) high_time=0;low_time=100; / Perform PID

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1