分享
分销 收藏 举报 申诉 / 37
播放页_导航下方通栏广告

类型恒温箱设计.doc

  • 上传人:精****
  • 文档编号:3908280
  • 上传时间:2024-07-23
  • 格式:DOC
  • 页数:37
  • 大小:487.04KB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    恒温箱 设计
    资源描述:
    设计成绩: 西南科技大学信息工程学院自动化系 《计算机控制系统》课程课外设计 设计题目: 恒温箱温度计算机控制系统设计 学院名称: 信息工程学院 专业班级: 学生姓名: 学生学号: 指导教师: 聂诗良 十二月 恒温箱温度计算机控制系统设计   摘要:本设计的温度测量及加热控制系统以AT89S52单片机为核心部件,外加温度采集电路、按键及显示电路、加热控制电路和越限报警等电路。采用单总线型数字式的温度传感器DS18B20,及按键控制温度和动态显示的方式,以容易控制的继电器作加热控制的开关器件。本作品既可以对当前温度进行实时显示又可以对温度进行控制,以使达成用户需要的温度,并使其恒定在这一温度。 关键词:单片机;恒温控制;DS18B20 The design of incubator temperature   computer control system Abstract: 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 temperature 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 the required temperature, and make it constant at this temperature.  Key words: microcontroller; temperature control; DS18B20 《计算机控制系统》课程课外设计制作大作业内容及考核规定 1. 课题名称:恒温箱温度计算机控制系统设计 2. 自制恒温箱规定 如图1所示,恒温箱采用木箱或纸箱(外形尺寸不大于30cm×30cm×30cm),内置白炽灯泡(功率不大于100W)用于加热。或自选制冷板制冷。 交作品时,恒温箱外面贴上标签,标签上注明:课题名称,学生姓名,专业班级,学号,指导教师姓名,学院名称。 30cm 30cm 木箱或纸箱 白炽灯泡≤100W 图1 自制恒温箱规定 3.控制系统功能与技术指标规定 (1)温度采集传感器采用热电阻或热电偶,或一体化数字温度传感器DS18B20。 (2)控制灯泡亮度或发热量,采用继电器开关控制或用可控硅平滑控制。 (3)采用单片机或PLC作为控制器。 (4)采用LED或LCD或PC机的液晶显示器作为显示器,同时显示给定温度和实际温度。 (5)采用自制按键或PC机的键盘作为温度给定值输入。 (6)恒温箱实际温度达成给定值时(误差规定±1℃)需声光提醒,声音时延5秒后停止。 (7)恒温箱最高温度≤60℃。 (8)系统操作流程是: 1)确认系统各硬件连线就绪,无安全隐患; 2)系统上电; 3)设立温度给定值后,启动系统工作,系统进入温度自动控制工作状态。 4)系统工作完毕后,若不需系统工作,则可关闭系统电源,查看并保证系统无安全隐患后可离开。 4.考核规定 (1)本课题验收答辩时间地点:第12周验收答辩(具体时间地点待定)。 (2)答辩资格需同时满足以下2个规定: 1)系统硬件和软件联调成功,可实现温度自动控制,提交系统实物(答辩后自己保管)。 2)提交设计报告(设计报告须独立完毕,若发现两个报告有拷贝或抄袭的,将同时取消两个学生的考核成绩)。 (3)设计报告规范及要目 1)封面(含课题名称,学院名称,学生姓名,专业班级,学号,任课教师) 2)本课题设计制作规定 3)系统方案设计(或设计思想),含系统总体结构框图 4)硬件设计,含硬件选型和系统硬件电路原理详图或实际连线详图 5)软件设计,含软件功能设计、软件流程设计和单元程序清单 6)调试记录及结论,含硬件及软件单元调试和系统调试记录 7)心得体会(据个人实情独立撰写,发现抄袭拷贝者课程成绩计0分) 8)附件(含程序清单) 9)参考文献。 5.备注 1)若采用可控硅平滑控制灯泡发热量方案且答辩思绪清楚,设计报告规范,本次作业成绩可在90分以上;采用继电器开关控制灯泡的成绩一般不超过90分;若采用其他方案有创意设计的,经考核老师确认,成绩也可在90分以上。 2)同学可自选题目,通过老师批准后,可代替本题目完毕课外设计制作。 3)购买器件费用大体50元左右,原则上自理。若确有经费困难,可报告老师协助解决。 特别注意用电安全!小心用电! 1 系统方案设计 系统整体框图如下图: 图1.系统原理总框图 上面的系统总体框图中,该系统中微控制器采用AT89C52单片机最小系统,温度显示采用LED显示模块、声光报警器模块、DS18B20温度采集模块、按键输入设定温度模块、继电器驱动模块。 2 硬件设计 2.1温度检测电路  本设计采用数字输出温度传感器DS18B20,该器件具有超小的体积、超低的硬件开销、抗干扰能力强,精度高,功耗低的特点,可直接输出9-12位的数字信号,通过单总线接口传输给单片机进行信号解决,最高12位分辨率时在-55℃ ~ 125℃温度范围内精确度可达成±0.5摄氏度,温度检测电路如图2所示。 图2.温度检测电路 2.2单片机的选择 系统采用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复位电路,3个16 位定期器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。此外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定期器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。只有在外接时钟、电源和复位电路时才干工作,能使其正常工作的最小系统如图3所示。 图3.单片机最小系统 2.3显示电路模块 本设计规定采用LED或LCD或PC机的液晶显示器作为显示器,同时显示给定温度和实际温度。 方案一:LED数码管显示 由于规定同时显示给定温度和实际温度,所以需使用两块四位数码管,同时选取两块74HC573作为数码管锁存器,采用动态显示,数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,此外为每个数码管的公共极COM增长位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接受到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过度时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管事实上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是同样的,可以节省大量的I/O端口,并且功耗更低。 图4.数码管连接原理图 方案二:1602LCD液晶显示 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正由于如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 图5.1602连接原理图 综合比较,由于液晶显示设计比较复杂而成本较高,且数码管也可以满足此设计规定,并且数码管便宜实惠,所以本次设计选择数码管作为显示模块。 2.4继电器驱动模块 本设计用单片机的一个I/O口来控制继电器的通断从而控制灯泡的亮灭,以此来达成控制温度的规定。 下图是继电器的连接仿真图: 图6.继电器仿真连线图 3 软件设计 本设计采用单片机控制灯泡从而控制恒温箱,按下电源按钮后,默认设立温度为30度,可通过加减按钮来调节设立温度,在通电的一瞬间,单片机会将从DS18B20得到的温度与设定温度对比,假如此温度小于设定温度,则继电器通电,灯泡发亮,此时恒温箱内温度慢慢升高,当恒温箱温度大于等于设定温度时,继电器断电,灯泡熄灭,同时声光提醒5秒,在整个控制过程中可以随时调整设定温度。 3.1温度设定模块程序 #include <reg52.h> #define uchar unsigned char #define uint 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==0) { while(S3==0); sheding--; } s1=sheding/10; s2=sheding%10; dula=0; P0=table[s1]; dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(3); dula=0; P0=table[s2]; dula=1; dula=0; wela=0; P0=0xfd; wela=1; wela=0; delay(1); } 3.2温度读取及声光报警控制模块流程图及程序 流程图: 开始 初始化 读取当前温度 显示温度 温度>设立 是 否 启动加热装置,声光报警 While循环,返回 图7.系统流程图 程序: void delay(uint z) //延时函数,单位ms { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void dsreset(void) //DS18B20复位,初始化函数 { uint i; DS=0; i=103; while(i>0)i--; DS=1; i=4; while(i>0)i--; } bit tmpreadbit(void) //读一位数据函数 { uint i; bit dat; DS=0;i++; //i++起延时作用 DS=1;i++;i++; dat=DS; i=8;while(i>0)i--; return (dat); } uchar tmpread(void) //读一个字节数据函数 { uchar i,j,dat; dat=0; for(i=1;i<=8;i++) { j=tmpreadbit(); dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DAT里 } return(dat); } void tmpwritebyte(uchar dat) //向DS18B20写一个字节数据函数 { uint i; uchar j; bit testb; for(j=1;j<=8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) //写1 { DS=0; i++;i++; DS=1; i=8;while(i>0)i--; } else { DS=0; //写0 i=8;while(i>0)i--; DS=1; i++;i++; } } } void tmpchange(void) //DS18B20 begin change { dsreset(); delay(1); tmpwritebyte(0xcc); // address all drivers on bus tmpwritebyte(0x44); // initiates a single temperature conversion } uint 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 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=table[A1]; //显示百位 dula=1; dula=0; wela=0; P0=0xdf; wela=1; wela=0; delay(3); dula=0; P0=table1[A2]; //显示十位 dula=1; dula=0; wela=0; P0=0xbf; wela=1; wela=0; delay(3); P0=table[A3]; //显示个位 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; flag_s=1; } } else if(a<b) { led=1; jdq=1; flag_s=0; } else { led=0; jdq=0; flag_s=0; } } else { P1=0xff; jdq=0; flag_s=0; } } void main() { uchar a; beep=1; flag_s=0; jdq=0; do { tmpchange(); deal(temp,sheding); for(a=10;a>0;a--) { display(tmp()); keyscan(); } } while(1); } 4调试过程及结果分析 4.1 软件调试  软件调试一方面是在keil编译器下进行,涉及源程序编译及运营调试。接着链接proteus进行硬件实时调试。 4.2硬件调试 原计划是按仿真焊接电路,但由于在焊接时不小心将电路板烧坏,所以后来使用开发板来完毕设计,在调试过程中,由于火线和零线借口设计过于接近,导致短路过一次,后将两个接口改远,经测试可以使用,在调试过程中,恒温箱达成设定温度后灯泡熄灭,但由于箱子过小,灯泡熄灭后的余温还会使温度上升,过一会才干降到设定温度,这是本次设计的一个缺陷。 4.3 结果分析  可以达成基本的控制规定,即恒温箱实际温度达成给定值时,有声光提醒,并且声音时延5秒后才停止。 5心得体会 在本次设计的过程中,碰到了很多大大小小的挫折,如在焊接电路板时由于不小心将板子烧坏,尚有在通电时,发生短路,将宿舍都弄得跳闸了,实在是吓了我一跳,阿姨还和我说要是再跳闸就不给我们开电了,还好后来通过仔细排查,找除了是电路短路的因素,并改良了电路,终于勉强完毕的本次实验。实验完之后心情很复杂,由于在实验之初,我本来认为仿真通过不会出现很大的问题,但在实际中完全不是那么一回事,要考虑到各种实际问题,算是给了我一个教训,在选箱子的时候对于箱子的大小考虑的也不周全,导致箱子初次达成设定温度时会溢出一两度,使温度不能精确控制,这也是需要改良的部分,通过这次课程课外设计,使我了解到了一定不能眼高手低,要把理论和实践结合起来。在设计的过程中查阅了很多资料,丰富了我的知识,希望在以后的学习生活中可以继续进步。 参考文献 [1] 李伟. 计算机控制系统(第二版)[M]. 北京:清华大学出版社,2023. [2] 康华光. 电子技术基础[M]. 北京:高等教育出版社,2023 [3] 姜志海 黄玉清. 单片机原理及应用[M]. 北京:电子工业出版社,2023 附件 器件清单: 恒温箱器件清单 名称 型号 数量 开发板 QX-MCS51 1 电源底座 电源接口 2 温度传感器 DS18B20 1 继电器 蓝色5V 1 二极管 1N4148 1 三极管 8050 1 灯泡 100W 1 电源线 粗线 2 电源插头 二相 1 灯泡底座 匹配灯泡 1 导线 杜邦线 6 程序代码: #include <reg52.h> #define uchar unsigned char #define uint unsigned int uint temp; uchar flag1; uint sheding=30; sbit DS=P2^2; sbit dula=P2^6; sbit wela=P2^7; sbit beep=P2^3; sbit S2=P3^0; sbit S3=P3^1; sbit S4=P3^2; sbit led=P1^0; sbit jdq=P1^1; bit flag_s; 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 delay(uint z) //延时函数,单位ms { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void dsreset(void) //DS18B20复位,初始化函数 { uint i; DS=0; i=103; while(i>0)i--; DS=1; i=4; while(i>0)i--; } bit tmpreadbit(void) //读一位数据函数 { uint i; bit dat; DS=0;i++; //i++起延时作用 DS=1;i++;i++; dat=DS; i=8;while(i>0)i--; return (dat); } uchar tmpread(void) //读一个字节数据函数 { uchar i,j,dat; dat=0; for(i=1;i<=8;i++) { j=tmpreadbit(); dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DAT里 } return(dat); } void tmpwritebyte(uchar dat) //向DS18B20写一个字节数据函数 { uint i; uchar j; bit testb; for(j=1;j<=8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) //写1 { DS=0; i++;i++; DS=1; i=8;while(i>0)i--; } else { DS=0; //写0 i=8;while(i>0)i--; DS=1; i++;i++; } } } void tmpchange(void) //DS18B20 begin change { dsreset(); delay(1); tmpwritebyte(0xcc); // address all drivers on bus tmpwritebyte(0x44); // initiates a single temperature conversion } uint 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 a int variable temp=temp|a; tt=temp*0.0625; temp=tt*10+0.5; return temp; } void keyscan() { uchar s1,s2; if(S2==0) { while(S2==0); sheding++; } if(S3==0) { while(S3==0); sheding--; } s1=sheding/10; s2=sheding%10; dula=0; P0=table[s1]; dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(3); dula=0; P0=table[s2]; dula=1; dula=0; wela=0; P0=0xfd; wela=1; wela=0; delay(1); } void display(uint temp) //显示程序 { uchar A1,A2,A2t,A3; A1=temp/100; A2t=temp%100; A2=A2t/10; A3=A2t%10; dula=0; P0=table[A1]; //显示百位 dula=1; dula=0; wela=0; P0=0xdf; wela=1; wela=0; delay(3); dula=0; P0=table1[A2]; //显示十位 dula=1; dula=0; wela=0; P0=0xbf; wela=1; wela=0; delay(3); P0=table[A3]; //显示个位 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; flag_s=1; } } else if(a<b) { led=1; jdq=1; flag_s=0; } else { led=0; jdq=0; flag_s=0; } } else { P1=0xff; jdq=0; flag_s=0; } } void main() { uchar a; beep=1; flag_s=0; jdq=0; do { tmpchange(); deal(temp,sheding); for(a=10;a>0;a--) { display(tmp()); keyscan(); } } while(1); }
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:恒温箱设计.doc
    链接地址:https://www.zixin.com.cn/doc/3908280.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork