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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

恒温箱设计.docx

1、恒温箱设计设计成绩:西南科技大学信息工程学院自动化系计算机控制系统课程课外设计设计题目: 恒温箱温度计算机控制系统设计 学院名称: 信息工程学院 专业班级: 学生姓名: 学生学号: 指导教师: 聂诗良 二一六年十二月恒温箱温度计算机控制系统设计摘要:本设计的温度测量及加热控制系统以AT89S52单片机为核心部件,外加温度采集电路、按键及显示电路、加热控制电路和越限报警等电路。采用单总线型数字式的温度传感器DS18B20,及按键控制温度和动态显示的方式,以容易控制的继电器作加热控制的开关器件。本作品既可以对当前温度进行实时显示又可以对温度进行控制,以使达到用户需要的温度,并使其恒定在这一温度。关

2、键词:单片机;恒温控制;DS18B20The?design?of?incubator?temperature?computer?control?systemAbstract:?The?design?of?the?temperature?measurement?and?heating?control?systems?to?AT89S52?microcontroller?core?component,?plus?the?temperature?acquisition?circuit,?keyboard?and?display?circuit,?heating?circutal?temperatur

3、e?sensor?DS18B20,?and?the?determinant?of?the?keyboard?and?dynamic?display?in?order?to?easily?control?the?solid-state?relays?for?heating?control?of?the?switching?device.?This?works?both?on?the?current?temperature?in?real-time?display?of?temperature?can?be?controlled?in?order?to?enable?users?to?reach?

4、the?required?temperature,?and?make?it?constant?at?this?temperature.?Key?words:?microcontroller; temperature?control; DS18B20计算机控制系统课程课外设计制作大作业内容及考核要求1. 课题名称:恒温箱温度计算机控制系统设计2. 自制恒温箱要求 如图1所示,恒温箱采用木箱或纸箱(外形尺寸不大于30cm30cm30cm),内置白炽灯泡(功率不大于100W)用于加热。或自选制冷板制冷。交作品时,恒温箱外面贴上标签,标签上注明:课题名称,学生姓名,专业班级,学号,指导教师姓名,学院名

5、称。3.控制系统功能与技术指标要求(1)温度采集传感器采用热电阻或热电偶,或一体化数字温度传感器DS18B20。(2)控制灯泡亮度或发热量,采用继电器开关控制或用可控硅平滑控制。(3)采用单片机或PLC作为控制器。(4)采用LED或LCD或PC机的液晶显示器作为显示器,同时显示给定温度和实际温度。(5)采用自制按键或PC机的键盘作为温度给定值输入。(6)恒温箱实际温度达到给定值时(误差要求1)需声光提示,声音时延5秒后停止。(7)恒温箱最高温度60。(8)系统操作流程是:1)确认系统各硬件连线就绪,无安全隐患;2)系统上电;3)设置温度给定值后,启动系统工作,系统进入温度自动控制工作状态。4)

6、系统工作完毕后,若不需系统工作,则可关闭系统电源,查看并确保系统无安全隐患后可离开。4.考核要求(1)本课题验收答辩时间地点:第12周验收答辩(具体时间地点待定)。(2)答辩资格需同时满足以下2个要求:1)系统硬件和软件联调成功,可实现温度自动控制,提交系统实物(答辩后自己保管)。2)提交设计报告(设计报告须独立完成,若发现两个报告有拷贝或抄袭的,将同时取消两个学生的考核成绩)。(3)设计报告规范及要目 1)封面(含课题名称,学院名称,学生姓名,专业班级,学号,任课教师)2)本课题设计制作要求 3)系统方案设计(或设计思想),含系统总体结构框图 4)硬件设计,含硬件选型和系统硬件电路原理详图或

7、实际连线详图 5)软件设计,含软件功能设计、软件流程设计和单元程序清单 6)调试记录及结论,含硬件及软件单元调试和系统调试记录 7)心得体会(据个人实情独立撰写,发现抄袭拷贝者课程成绩计0分) 8)附件(含程序清单)9)参考文献。5.备注1)若采用可控硅平滑控制灯泡发热量方案且答辩思路清楚,设计报告规范,本次作业成绩可在90分以上;采用继电器开关控制灯泡的成绩一般不超过90分;若采用其他方案有创意设计的,经考核老师确认,成绩也可在90分以上。2)同学可自选题目,经过老师同意后,可代替本题目完成课外设计制作。3)购买器件费用大致50元左右,原则上自理。若确有经费困难,可报告老师协助解决。特别注意

8、用电安全!小心用电!1 系统方案设计系统整体框图如下图:图1.系统原理总框图上面的系统总体框图中,该系统中微控制器采用AT89C52单片机最小系统,温度显示采用LED显示模块、声光报警器模块、DS18B20温度采集模块、按键输入设定温度模块、继电器驱动模块。 2 硬件设计2.1温度检测电路?本设计采用数字输出温度传感器DS18B20,该器件具有超小的体积、超低的硬件开销、抗干扰能力强,精度高,功耗低的特点,可直接输出9-12位的数字信号,通过单总线接口传输给单片机进行信号处理,最高12位分辨率时在-55?125温度范围内精确度可达到0.5摄氏度,温度检测电路如图2所示。图2.温度检测电路2.2

9、单片机的选择系统采用STC公司的推出的新一代高速/低功耗/超强抗干扰的单片机STC89C52作为主控芯片,STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有?8K?在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8?位CPU?和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。?具有以下标准功能:?8k字节Flash,512字节RAM,?32?位I/O?口线,看门狗定时器,内置4KB?EEPROM,MAX810复位电

10、路,3个16?位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外?STC89C52?可降至0Hz?静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU?停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。只有在外接时钟、电源和复位电路时才能工作,能使其正常工作的最小系统如图3所示。图3.单片机最小系统2.3显示电路模块本设计要求采用LED或LCD或PC机的液晶显示器作为显示器,同时显

11、示给定温度和实际温度。方案一:LED数码管显示因为要求同时显示给定温度和实际温度,所以需使用两块四位数码管,同时选取两块74HC573作为数码管锁存器,采用动态显示,数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管

12、就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。图4.数码管连接原理图方案二:1602LCD液晶显示1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间

13、有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。图5.1602连接原理图综合比较,因为液晶显示设计比较复杂而成本较高,且数码管也可以满足此设计要求,并且数码管便宜实惠,所以本次设计选择数码管作为显示模块。2.4继电器驱动模块 本设计用单片机的一个I/O口来控

14、制继电器的通断从而控制灯泡的亮灭,以此来达到控制温度的要求。下图是继电器的连接仿真图:图6.继电器仿真连线图3 软件设计 本设计采用单片机控制灯泡从而控制恒温箱,按下电源按钮后,默认设置温度为30度,可通过加减按钮来调节设置温度,在通电的一瞬间,单片机会将从DS18B20得到的温度与设定温度对比,如果此温度小于设定温度,则继电器通电,灯泡发亮,此时恒温箱内温度慢慢升高,当恒温箱温度大于等于设定温度时,继电器断电,灯泡熄灭,同时声光提示5秒,在整个控制过程中可以随时调整设定温度。3.1温度设定模块程序#include #define uchar unsigned char#define uint

15、 unsigned int uint temp; uchar flag1;uint sheding=30;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned char code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;void keyscan() uchar s1,s2; if(S2=0) while(S2=0); sheding+; if(S3

16、=0) while(S3=0); sheding-; s1=sheding/10; s2=sheding%10; dula=0; P0=tables1; dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(3); dula=0; P0=tables2; dula=1; dula=0; wela=0; P0=0xfd; wela=1; wela=0; delay(1);3.2温度读取及声光报警控制模块流程图及程序流程图:是否图7.系统流程图程序:void delay(uint z) /延时函数,单位ms uint x,y; for(x=z

17、;x0;x-) for(y=110;y0;y-);void dsreset(void) /DS18B20复位,初始化函数 uint i; DS=0; i=103; while(i0)i-; DS=1; i=4; while(i0)i-;bit tmpreadbit(void) /读一位数据函数 uint i; bit dat; DS=0;i+; /i+起延时作用 DS=1;i+;i+; dat=DS; i=8;while(i0)i-; return (dat);uchar tmpread(void) /读一个字节数据函数 uchar i,j,dat; dat=0; for(i=1;i=8;i+

18、) j=tmpreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在DAT里 return(dat);void tmpwritebyte(uchar dat) /向DS18B20写一个字节数据函数 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /写1 DS=0; i+;i+; DS=1; i=8;while(i0)i-; else DS=0; /写0 i=8;while(i0)i-; DS=1; i+;i+; void tmpchange(void) /DS18B20 begin change dsrese

19、t(); delay(1); tmpwritebyte(0xcc); / address all drivers on bus tmpwritebyte(0x44); / initiates a single temperature conversionuint tmp() /get the temperature float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp=8; /two byte compose

20、 a int variable temp=temp|a; tt=temp*0.0625; temp=tt*10+0.5; return temp;void display(uint temp) /显示程序 uchar A1,A2,A2t,A3; A1=temp/100; A2t=temp%100; A2=A2t/10; A3=A2t%10; dula=0; P0=tableA1; /显示百位 dula=1; dula=0; wela=0; P0=0xdf; wela=1; wela=0; delay(3); dula=0; P0=table1A2; /显示十位 dula=1; dula=0;

21、wela=0; P0=0xbf; wela=1; wela=0; delay(3); P0=tableA3; /显示个位 dula=1; dula=0; P0=0x7f; wela=1; wela=0; delay(3);void deal(uint a,b) /处理函数 uchar i=5000; a=a/10; if(S4=1) if(a=b) jdq=0; if(flag_s=0) led=0; /led灯提示 beep=0; /蜂鸣器提示 while(i-) keyscan(); display(tmp(); delay(1); /用显示程序实现5s延时 led=1; beep=1;

22、flag_s=1; else if(a0;a-) display(tmp(); keyscan(); while(1); 4调试过程及结果分析4.1?软件调试?软件调试首先是在keil编译器下进行,包括源程序编译及运行调试。接着链接proteus进行硬件实时调试。4.2硬件调试 原计划是按仿真焊接电路,但由于在焊接时不小心将电路板烧坏,所以后来使用开发板来完成设计,在调试过程中,因为火线和零线借口设计过于接近,导致短路过一次,后将两个接口改远,经测试可以使用,在调试过程中,恒温箱达到设定温度后灯泡熄灭,但由于箱子过小,灯泡熄灭后的余温还会使温度上升,过一会才能降到设定温度,这是本次设计的一个缺

23、陷。4.3?结果分析?能够达到基本的控制要求,即恒温箱实际温度达到给定值时,有声光提示,并且声音时延5秒后才停止。5心得体会在本次设计的过程中,遇到了很多大大小小的挫折,如在焊接电路板时由于不小心将板子烧坏,还有在通电时,发生短路,将宿舍都弄得跳闸了,实在是吓了我一跳,阿姨还和我说要是再跳闸就不给我们开电了,还好后来经过仔细排查,找除了是电路短路的原因,并改良了电路,终于勉强完成的本次实验。实验完之后心情很复杂,因为在实验之初,我本来以为仿真通过不会出现很大的问题,但在实际中完全不是那么一回事,要考虑到各种实际问题,算是给了我一个教训,在选箱子的时候对于箱子的大小考虑的也不周全,导致箱子初次达

24、到设定温度时会溢出一两度,使温度不能精确控制,这也是需要改良的部分,通过这次课程课外设计,使我了解到了一定不能眼高手低,要把理论和实践结合起来。在设计的过程中查阅了很多资料,丰富了我的知识,希望在以后的学习生活中能够继续进步。参考文献1 李伟. 计算机控制系统(第二版)M. 北京:清华大学出版社,2015.2 康华光. 电子技术基础M. 北京:高等教育出版社,20153 姜志海 黄玉清. 单片机原理及应用M. 北京:电子工业出版社,2013附件器件清单:恒温箱器件清单名称型号数量开发板QX-MCS511电源底座电源接口2温度传感器DS18B201继电器蓝色5V1二极管1N41481三极管805

25、01灯泡100W1电源线粗线2电源插头二相1灯泡底座匹配灯泡1导线杜邦线6程序代码:#include #define uchar unsigned char#define uint unsigned int uint temp; uchar flag1;uint sheding=30;sbit DS=P22; sbit dula=P26;sbit wela=P27;sbit beep=P23;sbit S2=P30;sbit S3=P31;sbit S4=P32;sbit led=P10;sbit jdq=P11;bit flag_s;unsigned char code table=0x3f

26、,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned char code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef;void delay(uint z) /延时函数,单位ms uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void dsreset(void) /DS18B20复位,初始化函数 uint i; DS=0; i=103; while(i0)i-; DS=1

27、; i=4; while(i0)i-;bit tmpreadbit(void) /读一位数据函数 uint i; bit dat; DS=0;i+; /i+起延时作用 DS=1;i+;i+; dat=DS; i=8;while(i0)i-; return (dat);uchar tmpread(void) /读一个字节数据函数 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在DAT里 return(dat);void tmpwritebyte(uchar dat) /向DS18B20写一个字节数据函数 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /写1 DS=0; i+;i+; DS=1; i=8;while(i0)i-; else DS=0; /写0 i=8;while(i0)i-; DS=1; i+;i+; void tmpchange(void) /DS18B20 begin change dsreset(); delay(1); tmpwritebyte(0xcc); / address all drivers on bus tmpwritebyte(0x44); / initiates

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

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