基于单片机的恒温箱课程设计_第1页
基于单片机的恒温箱课程设计_第2页
基于单片机的恒温箱课程设计_第3页
基于单片机的恒温箱课程设计_第4页
基于单片机的恒温箱课程设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上成都理工大学工程技术学院恒温箱控制系统课程设计报告 系别: 自动化工程系 专业: 自动化 姓名: 杜 亮 学号: 2 2014年6月16日摘要温度的测量与控制在工业、农业、国防等行业有着广泛的应用。随着微电子技术的发展,各种高性能的半导体集成温度传感器,在温度测控领域得到了极为广泛的应用。恒温箱的智能控制系统是用半导体温度传感器做测温器,用单片机控制温度平衡,最终达到恒温的目的。本文对系统所能实现的功能做了简单介绍,并简单介绍了系统使用的51单片机的性能和发展情况;同时对DS18B20做了介绍。本文重点介绍了系统硬件的分析与设计,对硬件各部分的电路一一进行了介绍。绘制

2、了电路原理图,并进行了电路的焊接,完成了系统的硬件调试。根据硬件的设计和系统所要实现的功能,本设计对软件也进行了设计,并经过反复的模拟运行、调试,完成了系统的软件设计,最后形成了一套完整的智能温度控制系统。关键词:温度平衡 DS18B20 51单片机目录前言近年来为了保证产品的质量,各个行业行为规范就越来越高,众多机械类、医药类、化工类、建筑类等工业和企业都离不开恒温箱的使用;为了确保恒温箱许多主要技术的指标可以达到国家技术所要求的规定,必须对其进行检测,保证产品的质量1。本系统所设计、研发的数字恒温箱能非常好地解决这些问题。温度的控制系统是自动控制系统较为复杂的控制,其控制的滞后性是整个系统

3、中最难克服的难题,因为温度的变化是纯滞后环节,而温度的控制也是一个惯性大,应变慢的控制对象2。在温度的控制系统中一般用到的是较为先进的控制系统理论和控制算法。本系统中采用了PID算法,其算法应用到了系统软件的设计中,对整个加热过程使用模糊PID控制方案,对于加热过程中所产生的各种干扰和恒温箱的惯性问题都进行了分析3。恒温箱的智能控制系统采用半导体集成温度传感器满足温度测量要求,温度传感器将采集的温度信号转换成电流信号,然后再由转换电路将电流信号转换为电压信号,通过放大电路和模/数转换芯片将电压信号转换成数字信号,由单片机处理后,将测量得到的温度值显示于液晶显示器上。系统的全部输入输出控制集中由

4、单片机统一管理,各有关运行参数的设定,可通过键盘输入,设定温度、箱温实时值在液晶显示模块上显示,操作方便。该系统具有实时温度显示和温度设定功能,还具有温度上、下限报警和自动控制功能。当温度高于或低于设定值一定程度时,发出生光报警,消除由于单片机系统意外失控所造成的危险,提高了恒温箱工作的可靠性和使用安全性。设计任务为:用单片机设计一个控制温度范围在3080的智能温度控制系统。设计要求:完成该系统的软硬件设计,学习掌握单片机采集测控系统的设计方法,提高学习新知识、新技能的能力,培养独立设计的能力。1 系统设计分析1.1 设计题目要求根据计算机控制技术课程的知识点,设计一个基于单片机的恒温箱控制系

5、统。设计任务书要求设计一个以8088CPU或PC总线为核心,以AI、DI和AO、DO通道为主要接口,外配LED显示、键盘操作以及包括传感变送器及执行器的小型计算机控制系统。在Proteus下仿真进行验证。1.2 设计方案选择 本设计的目的在于使箱内有一个恒温环境,当温度过高时要使温度能够降低,当温度过低时要使温度能够升高。温度传感器DS18B20是“一线总线”接口,且可以直接读出被测温度,测温范围大,因此选择DS18B20来采集温度。半导体制冷片是用直流电流使其运转的,可以连续的工作,且既有加热和制冷两种功能,使用两个继电器改变半导体的电流方向以实现加热(制冷)工作。显示方面则选用LCD160

6、2,可以显示英文及数字,质量轻,耗电小,而且显示内容多。整个系统选择由STC89C51最小系统控制,STC89C51系列单片机具有强抗干扰、高速、低功耗的功能,且指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择。2 硬件电路设计2.1 硬件电路设计 图2.1系统总体框图2.1.1 传感器温度采集器件使用温度传感器,温度传感器包括热电偶、热敏电阻、RTD和IC温度传感器等几种,本设计中采用DS18B20温度传感器,该温度传感器应用时不需要任何外部器件即可实现测温电路,只通过一条数据线即可实现通信,精度可达到0.0625,测量温度可从-55+125,且内部设有温度

7、上、下限告警功能。设计如图2.2所示:图2.2 DS18B20温度传感器2.1.2 温度传感器DS18B20 温度传感器DS18B20是数字式温度传感器,是一种改进型的只能温度传感器,“一线总线”接口,相对于传统温度传感器精度高、稳定性好、电路简单、控制方便。能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点:可通过数据线供电,电压范围:3.05.5V;测温范围:-55+125;无须外部器件,独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在唯一的三线上,实现多点组网功能;零待机功耗;用户可定义的非易失性温度报警设置;

8、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;可编程的分辨率为912位,对应的可分辨温度分别为0.50.25、0.125和0.0625;负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。DS18B20的引脚图和内部结构分别如图2.3所示:图2.3 DS18B20封装图2.1.3 LED数码管显示电路显示方式可选择LED数码管,也可选择字符型LCD显示。本设计采用共阳极LED数码管显示,LED数码管价格便宜,电路简单,质量轻,可以显示简单的英文和数字,能够满足系统要求。设计如图2.4所示:图2.4 LED数码管2.2 硬件总电路图图2.5 系统总电路图3 程序设计

9、3.1 程序设计介绍程序编写使用KEIL4软件,使用C语言编写。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它的应用范围广泛,具备很强的数据处理能力,不仅仅在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,二维,三维图形和动画,具有应用比如单片机以及嵌入式系统开发。3.2 程序编写#include reg52.h#includeabsacc.h/*DuLiang 2*/*2014.6.18*/#define uint unsigned int#define ulint unsigned long int#define uchar unsigned

10、charsbit P20=P20; /数码管位选sbit P21=P21;sbit P22=P22;sbit P23=P23;sbit ds=P27; /DS18B20引脚sbit HEAT=P25; /加热引脚sbit COOLING=P26;/降温引脚sbit H_warn=P10; /高温报警引脚sbit L_warn=P11; /低温报警引脚bit time20ms=0;unsigned int wendu_value = 0;float f_temp;uint temp;uint set_temp_H=55,set_temp_L=45; /温度设定uint temp_shi=0,te

11、mp_ge=0,temp_xiaoshu=0;uchar temp_wela=0;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,/09不带小数点 0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/09带小数点 /共阳极数码管 uchar keyscan_num;/*子程序声明*/void delay(uint delay_x);void display();void dsreset(void);bit tempreadbit(void);uchar tem

12、pread(void);void tempwritebyte(uchar dat);void tempchange(void);uint get_temp();uchar keyscan(void);/*定时器0和中断系统初始化*/void init() HEAT=1; TMOD=0x11; TH0=(65536-1000)/256; /1ms时基 TL0=(65536-1000)%256; TH1=(65536-1000)/256; TL1=(65536-1000)%256; ET0=1; ET1=1; EA=1; TR0=1;void main()init();while(1) switc

13、h(keyscan_num)case 0:P20=1;P21=1;P22=1;P23=1;P0=0xbf; break;case 1:if(wendu_value(set_temp_H*10)COOLING=0;H_warn=0;elseCOOLING=1;H_warn=1;break; void timer0(void) interrupt 1static uchar timecount=0,timecount1=0,timecount3=0;TR0=0;TH0=(65536-1000)/256;TL0=(65536-1000)%256;timecount+;timecount1+;time

14、count3+;if(timecount=5)timecount=0; if(keyscan_num=1)display();if(timecount1=200)timecount1=0;tempchange();wendu_value=get_temp();if(timecount3=50)timecount3=0;keyscan_num=keyscan();TR0=1;void timer1(void) interrupt 3 static uchar timecount2=0;TR1=0;TH1=(65536-1000)/256; TL1=(65536-1000)%256;timecou

15、nt2+;if(timecount2=200)timecount2=0;time20ms=!time20ms; TR1=1;/*数码管显示子程序*/void display()temp_shi=wendu_value/100;temp_ge=wendu_value%100/10;temp_xiaoshu=wendu_value%100%10;P20=0;P21=0;P22=0;P23=0;if(temp_wela=0)P0=tabletemp_shi;P20=1; if(temp_wela=1)P0=tabletemp_ge+10;P21=1;if(temp_wela=2)P0=tablete

16、mp_xiaoshu;P22=1;temp_wela+;if(temp_wela=3)temp_wela=0;/*温度读取子程序*/void delay(uint delay_x)uint x,y; for(x=delay_x;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 tempreadbit(void) /读一位数据函数uint i;bit dat;ds=0;i+;ds=1;i+;i+;dat=ds;i=8;wh

17、ile(i0)i-;return(dat);uchar tempread(void) /读1个字节数据函数uchar i,j,dat;dat=0;for(i=1;i=8;i+)j=tempreadbit();dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在dat里return(dat);void tempwritebyte(uchar dat) /向DS18B20写一个字节数据函数uint i;uchar j;bit testb;for(j=1;j1;if(testb) /写1ds=0;i+;i+;ds=1;i=8;while(i0)i-;elseds=0; /写0i=8;w

18、hile(i0)i-;ds=1;i+;i+;void tempchange(void) /DS18B20开始获取温度并转换dsreset();delay(1);tempwritebyte(0xcc); /写跳过读ROM指令tempwritebyte(0x44); /写温度转换指令uint get_temp() /读取寄存器中存储的温度数据uchar a,b;dsreset();delay(1);tempwritebyte(0xcc); tempwritebyte(0xbe);a=tempread(); /读低8位b=tempread(); /读高8位temp=b;temp=8;temp=temp|a;f_temp=temp*0.0625;temp=f_temp*10+0.5;f_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论