版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西南科技大学计算机控制系统报告设计名称: 恒温箱温度计算机控制系统设计 姓 名: XXX 学 号: XXX 班 级: 自动09XX 指导教师: 聂诗良 起止日期: 2012.10.15-2012.11.15 西南科技大学信息工程学院制25设 计 任 务 书学生班级: 自动0903 学生姓名: XXX 学号: 2009XXX 设计名称: 恒温箱温度计算机控制系统设计 起止日期: 10月15日11月15日 指导教师: 聂诗良 设计要求: 设计52单片机的恒温箱控制系统设计时,需要考虑下面几个方面的内容:选择合适的温度传感器芯片。显然,本文中的核心器件是单片机和温度传感器,单片机采用常用的51单片机
2、即可,而温度传感器的选择则需慎重。单片机和温度传感器的接口电路设计。控制温度传感器实现温度信息采集以及数据传输的软件设计。恒温箱温度计算机控制系统设计摘要:本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件DS18B20作为温度采集器,单片机AT89C51作为主控芯片,液晶作为显示输出,实现了对温度的实时测量与恒定控制。关键词:恒温,AT89S52 单片机,温度传感元件The incubator temperature computer control system designAbstract: The design from the actual application to
3、 select a small size, and relatively high accuracy digital temperature sensing element DS18B20 as temperature collector, AT89C51 microcontroller as the master chip, digital tube display output to achieve real-time measurement of temperature and constant control .Keyword: Thermostat. AT89S52 microcon
4、troller; Temperature sensor element; 1设计目的和意义利用AT89S52对温度进行控制,采用单总线传输方式的DS18B20作为温度传感器,与按键、液晶显示、报鸣器等外部辅助硬件共同组成一个温度控制系统,实现温度的自我调节。2控制要求1)温度采集传感器采用热电阻或热电偶,或一体化数字温度传感器DS18B20。(2)控制灯泡亮度或发热量,采用继电器开关控制或用可控硅平滑控制。(3)采用单片机或PLC作为控制器。(4)采用LED或LCD或PC机的液晶显示器作为显示器,同时显示给定温度和实际温度。(5)采用自制按键或PC机的键盘作为温度给定值输入。(6)恒温箱实际温
5、度达到给定值时(误差要求1)需声光提示,声音时延5秒后停止。(7)恒温箱最高温度50。(8)系统操作流程是:1)确认系统连接就绪,无安全隐患;2)系统上电;3)设置温度给定值后,启动系统工作,系统进入温度自动控制工作状态。4)系统工作完毕后,若不需系统工作,则可关闭系统电源,查看并确保系统无安全隐患后可离开。3.系统总体结构设计温度控制系统是一个过程控制系统,组成框图如图 1 所示 控制器执行器温度传感器被控对象 计算机控制系统框图 图1本系统中 CPU 选择为AT89S52单片机,执行器为可控硅,控制加热灯泡通断,检测装置为ds18B20温度传感器,采集温度并反馈给单片机。另外还有键盘输入部
6、分、显示部分以及报警部分。总体框图如下LCD1602报警DS18B20AT89S52键盘输入可控硅灯泡图2 系统原理框图图3基本硬件电路图4功能模块根据上面对工作流程的分析,系统软件可以分为以下几个功能模块:(1) 键盘管理:监测键盘输入,接收温度预置,启动系统工作。(2) 显示:显示设置温度及当前温度。(3) 温度检测及温度值变换:完成A/D转换及数字滤波。(4) 温度控制:根据检测到的温度控制电灯泡工作。(5) 报警:当预置温度或当前炉温越限时报警。系统硬件设计DS18B20测温电路DS18B20数字温度计是Dallas公司生产的1Wire器件,即单总线器件。与传统的热敏电阻有所不同,DS
7、18B20可直接将被测温度转化成串行数字信号,以供单片机处理,具有连线简单、微型化、低功耗、高性能、抗干扰能力强、精度高等特点。因此用它来组成一个测温系统,具有电路简单,在一根通信线上可以挂很多这样的数字温度计,十分方便。目前已被众多行业进行广泛的运用(锅炉、温控表粮库、冷库、工业现场温度监控、仪器仪表温度监控、农业大棚温度监控等)。通过编程,DS18B20可以实现912位的温度读数。信息经过单线接口送入DS18B20或从DS18B20送出,因此从微处理器到DS18B20仅需连接一条信号线和地线。读、写和执行温度变换所需的电源可以由数据线本身提供,而不需要外部电源。每片DS18B20在出厂时都
8、设有唯一的产品序列号,因此多个DS18B20可以挂接于同一条单线总线上,这允许在许多不同的地方放置温度传感器,特别适合于构成多点温度测控系统。DS18B20的特点介绍(1) 独特的单线接口方式,与单片机通信只需一个引脚,DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯(2) 在使用中不需要任何外围元件。 (3)可用数据线供电,电压范围:+3.0+5.5 V。 (4)测温范围为-55 +125 。在-10+85范围内误差为0.5 。 (5)通过编程可实现912位的数字读数方式。 (6)用户可自设定非易失性的报警上下限值。 (7)支持多点组网功能,通过识别芯片
9、各自唯一的产品序列号从而实现单线多挂接,多个DS18B20可以并联在唯一的线上,简化了分布式温度检测的应用,实现多点测温。 (8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。单线(1-wire)技术目前常用的微机和外设之间数据传输的串行总线有I2C总线、SPI总线等,其中,I2C总线采用同步串行两线(一根时钟线、一根数据线)方式,而SPI总线采用同步串行三线(一根时钟线、一根输入线和一根数据出线)方式。这两种总线需要至少两根或两根以上的信号线。美国达拉斯半导体公司推出了一项特有的单线(1-wire)技术。该技术与上述总线不同,它采用单根信号线,即可传输时钟,又能传输数据,
10、而且数据传输是双向的,因而这种单线技术具有线路简单、硬件开销少、成本低廉、便于扩展的优点。单线技术适用于单主机系统,单主机能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单线器件,它们之间的数据交换、控制都由这根线完成。主机或从机通过一个漏极开路或三态端口连至数据线,以允许设备在不发送数据时能够释放该线,而让其他设备使用。单线通常要外接一个约5K的上拉电阻,这样,当该线闲置时,其状态为高电平。主机和从机之间的通信主要分3个步骤:初始化单线器件、识别单线器件和单线数据传输。由于只有一根线通信,所以它们必须是严格的主从结构,只有主机呼叫从机时,从机才能应答,主机访问每个单线器件必须严格遵
11、循单线命令序列,即遵守上述3个步骤的顺序。如果命令序列混乱,单线器件将不会响应主机。所有的单线器件都要遵循严格的协议,以保证数据的完整性。1-wire协议由复位脉冲、应答脉冲、写0、写1、读0和读1这几种信号类型组成。这些信号中,除了应答脉冲,其他均由主机发起,并且所有命令和数据都是字节的地位在前DS18B20的引脚及功能介绍DS18B20的外形及TO92封装引脚排列见左图,其引脚功能描述见表1,实测温度和数字输出的对应关系见表2.表1 DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3V
12、DD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。表2 温度值分辨率配置表温度数字输出(二进制)数字输出(十六进制)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2h+0.50000 0000 0000 10000008H00000 0000 0000 0000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.0625
13、1111 1110 0110 1111FF6FH-551111 1100 1001 0000FC90HDS18B20的使用方法由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件
14、作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 DS18B20的复位时序,置总线为低电平并保持至少480us,然后拉高电平,等待从端重新拉低电平作为响应,则总线复位完成。(1) DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。 (3) DS18B20的写时序 ,
15、对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。 (4) DS18B20在电路中的连接,见图4。1- wire总线支持一主多从式结构,硬件上需外接上拉电阻。当一方完成数据通信需要释放总线时,只需将总线置高点平即可;若需要获得总线进行通信时则要监视总线是否空闲,若空闲,则置低电平获得总线控制权。图4 DS18B20测温电路DS18B20采集温度程
16、序如下: #include/=/=DS18b20模块初始化=/=/ sbit DQ = P27;/-delayDs18b20延时函数void delayDs18b20(uint i)/延时函数 while(i-);/-18b20初始化函数void Init_DS18B20(void) DQ = 1; /DQ复位 delayDs18b20(8); /稍做延时 DQ = 0; /单片机将DQ拉低 delayDs18b20(80); /精确延时 大于 480us DQ = 1; /拉高总线 delayDs18b20(20);/-读一个字节uchar ReadOneChar(void)uchar i=
17、0;uchar dat = 0;for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delayDs18b20(5); return(dat);/-写一个字节void WriteOneChar(uchar dat) uchar i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delayDs18b20(5); DQ = 1; dat=1; delayDs18b20(5);/-读取温度float ReadTemperature(void)uchar TH=0;uc
18、har TL=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换delayDs18b20(200);Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度TL=ReadOneChar();TH=ReadOneChar();return(TH*256+TL)*0.0625);键盘管理模块当通电或复位以后,系统进入键盘管理状态,单片机只接收设定温度和启动。当检测到
19、有键闭合时先去除抖动,这里采用软件延时的方法,延时一段时间后,再确定是否有键闭合,然后将设定好的值送入预置温度数据区,并调用温度合法检测报警程序,当设定温度超过最大值如90时就会报警,最后当启动键闭合时启动加热。键盘设定:用于温度设定。共三个按键。 KEY1(P1.1):温度设置确认;温度重新设置。KEY2(P1.2): 设置温度“+”。KEY3(P1.3): 设置温度“-”。 KEY4 (P1.4) :状态切换。系统上电后,液晶显示器全部显示为零,根据按 KEY1 次数,决定显示的状态,根据相应的状态,利用KEY2、KEY3进行加减,当温度设定好之后,再按KEY4确定,系统开始测温,开启加热
20、器。按键程序 #include/=/=键盘延时函数=/=/void DelayKeyms(int z) int i,j;for(j=z;j=0;j-)for(i=110;i=0;i-); /=/=键盘扫描函数=/=/sbit SET=P10;sbit UP=P11;sbit DOWN=P12;sbit OUT=P13;uchar count=0;uchar OutFlag=0;float TempSet=25.0;float temp;/*uchar KeyScan(void)if(Key1=0)DelayKeyms(10);if(Key1=0)while(!Key1);return 1; i
21、f(Key2=0)DelayKeyms(10);if(Key2=0)while(!Key2);return 2;if(Key3=0)DelayKeyms(10);if(Key3=0)while(!Key3);return 3;return 0; */void SetKey() /模式选择 if(SET=0) DelayKeyms(10); if(SET=0) count+; if(count2) count=1; while(SET=0); void UpKey() /按键加 if(UP=0) DelayKeyms(10); if(UP=0) switch(count) case 1:temp
22、=TempSet; temp=temp+1; if(temp50.0) temp=20.0; TempSet=temp; break; case 2:temp=TempSet; temp=temp+0.1; if(temp50.0) temp=20.0; TempSet=temp; break; default:break; while(UP=0); void DownKey() /按键减 if(DOWN=0) DelayKeyms(10); if(DOWN=0) switch(count) case 1:temp=TempSet; temp=temp-1; if(temp20.0) temp
23、=50.0; TempSet=temp; break; case 2:temp=TempSet; temp=temp-0.1; if(temp1) OutFlag=0; while(OUT=0); void keyDone() /按键功能执行 dispaly(0x80,Tem:,ReadTemperature(),C); dispaly(0x80+0x40,Set:,TempSet,C); SetKey(); switch(count) case 1: UpKey(); DownKey(); dispaly(0x80+0x40,Set:,TempSet,C); break; case 2: U
24、pKey(); DownKey();dispaly(0x80+0x40,Set:,TempSet,C); break; default:break; OutKey(); LCD显示电路. 1602液晶也叫1602 字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。1602LCD 主要技术参数:显示容量:162 个字符,芯片工作电压:4.55.5V ;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V; 字符尺寸:2.954.35(WH)mm; 本系统通过 LCD1602 显示预设以及实际的温
25、度,并能显示灯泡现在处于的状态是加热还是停止加热。其程序如下 :#include/=/=液晶初始化及显示模块=/=/sbit RS=P20; /数据/命令选择端sbit RW=P21; /读/写选择端sbit E=P22; /使能端uchar table10=0,1,2,3,4,5,6,7,8,9;/-delay延时函数void delay1602(int z) int i,j;for(j=z;j=0;j-)for(i=11;i=0;i-); /-写com为命令void write_com(uchar com) E=0;RS=0; RW=0;P0=com;E=1; delay1602(20);
26、E=0; RS=1;/-写dat为数据void write_dat ( uchar dat )E=0; RS=1; RW=0;P0=dat;E=1;delay1602(20); E=0; RS=0; /-初始化液晶屏void init_1602()write_com(0x38);delay1602(50); write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);/-液晶显示函数/-address为显示地址:/0x80-第一行,0x80+0x40-第二行/-mean为意义字符串/-value
27、为显示值/-unit单位字符串void dispaly(uchar address,uchar mean,float value,uchar unit)uchar *pt;int Val;write_com(address);for(pt=mean;*pt!=0;pt+)write_dat(*pt);Val = (int)(value*10);write_dat(tableVal/100);write_dat(tableVal%100/10);write_dat(.);write_dat(tableVal%10);for(pt=unit;*pt!=0;pt+)write_dat(*pt);PI
28、计算程序如下: #includefloat ErrorNew;float ErrorSum;uchar PIControl(float Kp,float Ki,float tset,float tfeedback) int Result=0; ErrorNew = tset-tfeedback; ErrorSum+=ErrorNew; if(ErrorSum 400.0) ErrorSum = 400.0; if(ErrorSum=36) Result = 36; if(Result=7) Result = 7; Result = 40-Result; return Result;系统软件设计
29、1程序结构框架主程序模块键盘输入LCD显示DS18B20采集温度PI计算程序结构框架图主程序模块相当于调度室,对子程序模块的调用进行管理,它主要负责初始化 IO 口; 等待键盘被按下,并调用相应的模块进行处理;显示温度控制过程;在适当的时候通过 DS18B20 检测实际温度, 并与所设定的值进行比较,判断报警并通过调用 PID 算法处理数据,处理后来控制可控硅的通断,从而控制恒温箱达到控制温度的目的。系统调试与仿真1, 硬件调试根据设计的原理电路做好实验样机,便进入硬件调试阶段。调试工作的主要任务是排除样机故障,其中包括设计错误和工艺性故障。1.1 脱机检查用万能表或逻辑测试笔逐步按照逻辑图检
30、查机中各器件的电源及各引脚的连接是否正确,检查数据总线、地址总线和控制总线是否有短路等故障。有时为保护芯片,先对各管座的电位(或电源)进行检查,确定其无误后再插入芯片检查。1.2仿真调试暂时排除目标板的CPU和EPROM,将样机接上仿真机的40芯仿真插头进行调试,调试各部分接口电路是否满足设计要求。这部分工作是一种经验性很强的工作,一般来说,设计制作的样机不可能一次性完好,总是需要调试的。通常的方法是,先编调试软件,逐一检查调试硬件电路系统设计的准确性。1.2 检查CPU的时钟电路通过测试ALE信号,如没有ALE信号,则判断是晶体或CPU故障,这称之为“心脏”检查。检查ABUS/DBUS的分时
31、复用功能的地址锁存是否正常。检查I/O地址分配器。一般是由部分译码或全译码电路构成,如是部分译码设计,则排除地址重叠故障。2软件调试 软件调试 软件调试根据开发的设备情况选择不同的调试方法总结通过本次的恒温箱温度计算机控制系统设计我学习到了许多东西,也认识到了许多我的不足之处,加深了对52单片机的理解,也丰富了我的课余时间,增强了我的动手能力,使我能更好的把理论知识与实际设计更好的结合起来。经过老师的指导和同学的帮助,加强了我的分析,动手能力,使我能从更多的方面去考虑问题。参考文献1 单片机原理与应用/戴胜华等-北京:清华大学出版社;北京交通大学出版社,2005.4 2AVR 单片机快速入门/徐玮等-北京:机械工业出版社,2011.113 C 语言程序设计/戴胜华等-北京:清华大学出版社,2004 单片机原理与应用/戴胜华等-北京:清华大学出版社;北京交通大学出版社,2005.4 5 计算机控制系统/高金源等-北京:清华大学出版社,2007.1 附录 系统源程序#includesbit Controlpin=P26;sbit Light=P25;sbit Beep=P24;/=/=延时函数=/=/void Delayms(int z) int i,j;for(j=z;j=0;j-)for(i=110;i=0;i-); /=/=主函数=/=/uchar beepfl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浣溪沙晏殊课件第一
- 大学班长管理
- 店铺会议管理
- 职业规划护理大专
- 妊娠期高血压医疗护理查房60
- 医院护士个人年终总结范文3篇
- 简单辞职报告(10篇)
- 德育干事工作总结
- 第一季度工作总结
- 重症肺炎护理查房中医
- ☆问题解决策略:直观分析 教案 2024-2025学年北师大版七年级数学上册
- 生物脊椎动物-鱼课件 2024-2025学年人教版生物七年级上册
- Revision Lesson 2(教案)-2024-2025学年人教PEP版(2024)英语三年级上册
- 福建省公路水运工程试验检测费用参考指标
- 创新实践(理论)学习通超星期末考试答案章节答案2024年
- 译林版(2024年新版)七年级上册英语 Unit 7单元测试卷(含答案)
- DB65-T 4784-2024 冰川范围调查技术规范
- 药物化学智慧树知到答案2024年徐州医科大学
- 期末+(试题)+-2024-2025学年人教PEP版英语六年级上册
- 《物流信息技术与应用》期末考试复习题库(含答案)
- LNG加气站运营与维护方案
评论
0/150
提交评论