基于单片机的电热炉温度控制系统_第1页
基于单片机的电热炉温度控制系统_第2页
基于单片机的电热炉温度控制系统_第3页
基于单片机的电热炉温度控制系统_第4页
基于单片机的电热炉温度控制系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、北京信息科技大学自动化学院基于单片机的电热炉温度控制系统专 业: 自动化 班 级:自控 学 号: 姓 名:摘 要 在生活中,从小型的空调,冰箱,到大型的工厂设备,人们对温度的控制越来越频繁,也越来越精确。电热炉温度控制系统以C51单片机为基础,利用ADC0808对传感器进行采样,通过与设定值进行比较,对输出加以控制。从而使得系统能够稳定在设定的范围内。1.1硬件系统框图以下是硬件系统框图温度显示AD转换51单片机控制输出按键输入1.2各部分硬件的设计(1)采样电路设计因为ADC0809无法在protues中仿真,所以我选用的器件是ADC0808,功能和ADC0809一样。但在管脚上有一点区别。

2、out8为最低位out1为最高位。而ADC0809则不同。在这里我用了一个OVEN器件,这个器件两端通电便会自动加热,在T输出端会输出温度相对应的电压,而且其对应的电压值就等于温度值。因为温度的变化范围是0到100,而ADC0808的基准电压是5V,所以我用了两个电阻进行分压。是采样信号在05V的范围内。ADDA ADDB ADDC三个端口接地,选通IN0口。(2)按键输入在这个实验中,我只用了一个按键,对设定温度进行设定,因为按键数目不多,所以系统直接采用非编码方式,直接连接单片机I/O口。(3)显示部分系统采用LED七段数码动态显示电路来显示温度值,显示范围在0-99之间,该电路由显示、片

3、选、译码三部分组成。显示部分:由两个两位的LED七段共阴数码管构成,P1口接两个数码管的abcdefg和dp端,P3.4,P3.5是设定值的位选,P3.6,P3.7是当前温度的位选。(4)输出控制控制部分采用了一个继电器,当P3.0口高电平时,继电器闭合,电热炉进行加热,当P3.0为低电平时,继电器断开,电热炉停止加热。(5)系统硬件总设计图1.3系统软件设计开始1.3.1系统程序总流程图初始化采样AD转换显示设定值 Y加热 NoAD转换程序设计int AD()/AD转换 unsigned char Val_AD=0;/用于储存AD值 START=0;_nop_();_nop_();_nop_

4、(); START=1;_nop_();_nop_();_nop_(); START=0;/给START一个脉冲,启动AD转换 while(EOC=0);/等待AD转换结束 OE=1;/准备读取AD数据 Val_AD=P0;/读取P0口的值,即为AD值 Val_AD=Val_AD*0.3906; return (Val_AD); (1) 进行A/D转换之前,要启动转换的方法:ABC000选择第一通道。ST0,ST1,ST0产生启动转换的正脉冲信号(2) 进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入进行处理。(3)Val_AD=Val_AD*

5、0.3906,其中0.3906这个参数是5/256*20得到的。即把数字量重新转化成对应的温度值1.3.3 显示程序 void Display(Val_AD,sheding)/显示 unsigned char gewei1; unsigned char shiwei1; unsigned char gewei2; unsigned char shiwei2;gewei1=sheding%10; shiwei1=sheding/10; gewei2=Val_AD%10; shiwei2=Val_AD/10; show2_shi=1; show2_ge=1; show1_shi=1; show1_

6、ge=0; /选通个位数码管 P1=tabgewei1;/显示个位 delay(1); show2_shi=1; show2_ge=1; show1_ge=1; show1_shi=0; /选通十位数码管 P1=tabshiwei1;/显示十位 delay(1); show1_ge=1; show1_shi=1; show2_shi=1; show2_ge=0; /选通个位数码管 P1=tabgewei2;/显示个位 delay(1); show1_ge=1; show1_shi=1; show2_ge=1; show2_shi=0; /选通十位数码管 P1=tabshiwei2;/显示十位

7、delay(1);显示程序分为两个部分,一个是设定值的显示,还有一个是当前温度的显示。1.4 仿真结果仿真后发现,系统能很快到达设定值,但是超调挺大,而且到稳定的时间比较长。需要好久分钟,主要因为炉子的降温速度太慢。1.5.学习心得及体会通过本次的大作业,学会了很多。这次作业花了好长的时间,从一开始对protues和keil 两个软件的熟悉就花了不少时间。然后是重新学习了51单片机和ADC0808芯片。因为ADC0808和ADC0809芯片的OUT端是相反的,费了好长的时间。然后是在对器件的选择上,也花了不少时间。OVEN这个器件它可以在仿真中进行加热,还可以自己降温,这个十分理想。但是唯一不

8、足的是,不知道如何对这个器件进行数学建模,也就无法进行MATLAB仿真。然后在加上编程技术还不够,和对PID的理解还不够,目前还不知道怎么在程序上使用PID控制。虽然如此,但我们也广泛的查阅了资料,对PID控制的在现实的使用更加有感触。附录#include <reg51.h>#include <intrins.h>#include<stdio.h>/端口定义sbit START= P20;sbit OE = P21;sbit EOC = P32;sbit show1_shi = P34;sbit show1_ge = P35;sbit show2_shi =

9、 P36;sbit show2_ge=P37;sbit P3_0=P30;sbit P2_2=P22;typedef unsigned char BYTE;/共阴极数码管字型码unsigned char code tab= 0x3f, /00x06, /10x5b, /20x4f, /30x66, /40x6d, /50x7d, /60x07, /70x7f, /80x6f ;void delay(BYTE ms)/ 延时子程序BYTE i;while(ms-)for(i = 0; i< 250; i+)_nop_();_nop_();_nop_();_nop_();int AD()/A

10、D转换 unsigned char Val_AD=0;/用于储存AD值 START=0;_nop_();_nop_();_nop_(); START=1;_nop_();_nop_();_nop_(); START=0;/给START一个脉冲,启动AD转换 while(EOC=0);/等待AD转换结束 OE=1;/准备读取AD数据 Val_AD=P0;/读取P0口的值,即为AD值 Val_AD=Val_AD*0.3906; return (Val_AD); int Set(sheding) /设定值设定 if(P2_2=0) delay(10); if(P2_2=1) sheding+=1;

11、void Control(Val_AD,sheding) / 控制 if(Val_AD>sheding) P3_0=0; if(Val_AD<sheding) P3_0=1;void Display(Val_AD,sheding)/显示 unsigned char gewei1; unsigned char shiwei1; unsigned char gewei2; unsigned char shiwei2; gewei1=sheding%10; shiwei1=sheding/10; gewei2=Val_AD%10; shiwei2=Val_AD/10; show2_shi

12、=1; show2_ge=1; show1_shi=1; show1_ge=0; /选通个位数码管 P1=tabgewei1;/显示个位 delay(1); show2_shi=1; show2_ge=1; show1_ge=1; show1_shi=0; /选通十位数码管 P1=tabshiwei1;/显示十位 delay(1); show1_ge=1; show1_shi=1; show2_shi=1; show2_ge=0; /选通个位数码管 P1=tabgewei2;/显示个位 delay(1); show1_ge=1; show1_shi=1; show2_ge=1; show2_shi=0; /选

温馨提示

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

评论

0/150

提交评论