您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页计算机温度控制系统

计算机温度控制系统

来源:华佗小知识


《微 机 控 制》

课程设计

题目:计算机温度控制系统

(系): 电子信息工程学院

专 业: 电气工程及其自动化 班 级: 姓 名: 学 号: 指导教师:

目录

摘要„„„„„„„„„„„„„„„„„„„„„„„(Ⅰ) 1.绪论„„„„„„„„„„„„„„„„„„„„„„„„(1) 2.设计要求„„„„„„„„„„„„„„„„„„„„„ (2) 3.系统硬件简介及工作原理„„„„„„„„„„„„„„ (3)

3.1实验注意事项........................................................................................(3)

3.2实验原理.................................................................................................(3)

3.3被控对象................................................................................................(3) 3.4执行机构................................................................................................(3)

3.5检测机构................................................................................................(3) 3.6控制器....................................................................................................(3) 3.7硬件实物图............................................................................................(4)

4.系统控制流程„„„„„„„„„„„„„„„„„„„ (6)

4.1总体流程图............................................................................................(6) 4.2程序块流程图........................................................................................(6)

5. 系统软件设计„„„„„„„„„„„„„„„„„„„ (8) 6. 总结„„„„„„„„„„„„„„„„„„„„„„„„(15) 7.参考文献„„„„„„„„„„„„„„„„„„„„„„(16)

摘要

随着社会的发展,自动控制越来越成为人们关注的焦点,自动调节电阻炉温度系统也备受关注。其中微机及其应用已经成为高、新科学技术的重要内容和标志之一,它在国民经济的各个领域正在发挥着引人注目的作用。微机控制的电加热炉温度控制系统实际上就是一个智能控制系统,是一种能耗相对来说比较低的温度控制系统。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮在全社会大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文用C51单片机自制了一个温度控制系统,重点介绍了该系统的硬件结构,即输入通道及输出通道、LED接口显示与主控制器的设计及编程方法。

关键词:微机、电热炉、单片机、温度、控制

I

1绪论

随着微电子技术和微型计算机的迅猛发展,微机测量和控制技术以其逻辑简单、控制灵活、使用方便及性能价格比高的优点得到了广泛的应用。它不仅在航空、航天、铁路交通、冶金、电力、电讯、石油化工等领域得到了广泛应用,而且在日常生活中诸如电梯、微波炉、电冰箱、电视机等高科技产品中也有广阔的使用前景,为工业生产的自动化、智能控制奠定了坚实的技术基础。加热炉作为一种应用广泛的热工设备之一。尽管它使用的加热方法不同, 或工艺要求不同,温度有高低、精度也有差异,但作为被控参数之一的温度总是可用不同的测温元件和方法来获得,并通过微型计算机加以处理和控制,并按一定温度曲线工作,以满足生产需要。电加热炉以其无污染、操作方便、自动化程度高、可调范围大、节省基建投资等诸多优点逐渐受到人们的欢迎。但这其中对温度的控制上不是很理想,温差大、温度控制精度不准确 。针对这一情况。本论文将介绍一种应用单片机对电热加热炉进行智能控制的温度系统。 一般的电加热炉温度控制系统(如温度控制表控制接触器)的主要缺点是温度波动范围大。传统的以普通双向晶闸管(SCR) 控制的高温电加热炉采用过零触发器控制,达到自动控制电炉温度的目的。这种移相方式输出一种非正弦波,实践表明这种控制方式产生相当大的中频干扰,并通过电网传输,给电力系统造成“公害”。他们的工作多数是采用PID及改善的PID控制规律进行的。但是,PID控制算法也有它的局限性,尤其在离散系统中,采用周期较大或对象具有较大时滞特性时,控制效果不是很理想。 本论文的研究意义是怎么用ATC51单片机作为控制器去实现温度控制,达到需要的工业要求,实现起温度控制的作用,达到工作稳定、性能可靠。

1

2设计要求

(1)控制温度在某个温度范围之内,具有抗干扰能力。 (2)能够在面板上显示相应的数据。 (3)其他功能。

2

3系统硬件简介及工作原理

3.1实验注意事项

本实验控制对象为热水壶,在实验过程中,注意强电,注意不要被壶烫伤。 发生危险,立即进行断电,然后通知老师。 3.2实验原理

图3.1 实验原理图

检测机构给定控制器执行机构被控对象输出反馈3.3被控对象

被控对象为热水壶,输出量为温度,可以控制其电源的通断,来控制热水壶的温度。 3.4执行机构

固态继电器,电力电子功率器件组成的无触点开关。用隔离器件实现了控制端与负载端的隔离。固态继电器的输入端用微小的控制信号,达到直接驱动电流大负载。 3.5检测机构

K型热电偶:把温度信号转换成热电动势信号。

两种不同成份的导体(称为热电偶丝材或热电极)两端接合成回路,当两个接合点的温度不同时,在回路中就会产生电动势,这种现象称为热电效应 。 3.6控制器

3

Cygnal出的一种混合信号系统级单片机。片内含CIP-51的CPU内核,它的指令系统与MCS-51完全兼容。 3.7硬件实物图

图3.2 控制箱内部实物图

图3.3 面板示意图

4

图3.4 控制器输出示意图

5

4系统硬件简介及工作原理

4.1总体流程图

图4.1 总体流程图

4.2程序块流程图

(1)温度控制系统主程序及流程图

主程序主要进行初始化,定义I/O端口及定时器参数,调用子程序以便为系统正常工作。

6

图4.2 主程序流程图

(2)A/D转换流程图

图4.3 A/D转换程序流程图

7

5系统软件设计

程序设计如下: #include #define CNT 10 #define PWM 0x80

unsigned char code tab[16]={ 0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e };

//共阳极数码码表

void PORT_Init (void); //端口初始化 void SYSCLK_Init (void); void ADC_Init(void); void Timer_Init(); void PCA_Init(); void Interrupts_Init(); void Delay(unsigned int ms);

void DisplayLED(unsigned char *disbuf); unsigned int iTimercount=0; //定时计数器 unsigned char bflag=0; int GetADValue(void);

int DigitalFilter(unsigned int *ADBuf,unsigned char len); float PID(int Kp,int ek,int ek1,int ek2); void Timer_Init() {

CKCON = 0x08; TCON = 0x10; TMOD = 0x01;

//1s 标志位

8

TL0 = 0x50; TH0 = 0xC3; }

void Interrupts_Init() {

IE = 0x82; }

void ADC_Init() {

ADC0CN = 0x80;

REF0CN |=0x03;

/*内部电压基准提供从VREF脚输出,ADC0电压基准

EIE1 = 0x08;

取自VREF0*/ }

void PCA_Init() {

PCA0CN = 0x40; ADC0CF |=0x50; AMX0CF |=0x00;

/*转换周期和增益为1*/ /*单端输入*/

PCA0CPM3 = 0x42; PCA0CPH3 = PWM; }

// Initialization function for device, // Call Init_Device() from your main program void Init_Device(void) {

PORT_Init();

Timer_Init();

PCA_Init();

Interrupts_Init();

ADC_Init();

9

}

TR0 = 1; WDTCN = 0xde; WDTCN = 0xad;

//禁止看门狗定时器

void PORT_Init (void) {

P1MDIN = 0x00; XBR0 = 0x2F; XBR2 = 0x46; }

//端口初始化

void Delay(unsigned int ms) { }

void DisplayLED(unsigned char *disbuf) {

unsigned char i; unsigned char temp; for(i=0;i<8;i++) {

temp = *(disbuf+i); P4= tab[temp]; unsigned int x,y; for(x=0;xfor(y=0;y<121;y++);

P5=0x01<void main(void) {

unsigned char idata display[8]={0};

Delay(2); }

10

unsigned int idata ADValueBuf[CNT]={0}; int vKp=10; int vek; int vek1=0; int vek2=0; float idata vout; unsigned char i=0; unsigned char ipos=0; int geiding=70; long AD=0; float idata temp; Init_Device(); bflag=0;

//for(i=0;iAD=GetADValue();

// ADValueBuf[i]=AD; //}

//DigitalFilter(ADValueBuf,CNT); temp = AD*10; temp = temp*10/4095;

AD = (unsigned int)temp;

while(1) {

AD=GetADValue();

//ADValueBuf[ipos++]=AD; //ipos = ipos%CNT;

//AD=DigitalFilter(ADValueBuf,CNT); temp = AD*10; temp = temp*10/4095; AD = (unsigned int)temp;

11

display[0]=(unsigned char)vout%10;

//个 //十 //百

//千

display[1]=(unsigned char)vout/10%10; display[2]=(unsigned char)vout/100%10; display[3]=(unsigned char)vout/1000;

display[4]=AD%10;

//个 //十

//百 //千

display[5]=AD/10%10; display[6]=AD/100%10; display[7]=AD/1000;

DisplayLED(display);

//显示

vek = geiding-(unsigned int)AD; vout = PID(vKp,vek,vek1,vek2); if(vout>255) vout =255; else {

if(vout<0) vout =0; }

vek=vek1; vek1=vek2; if(bflag==1) { }

//PID //PWM

PCA0CPH3 =(unsigned char)vout;

bflag =0;

//采集时间到

12

}

}

void Timer0_ISR(void) interrupt 1 {

TL0 = 0x50;

TH0 = 0xC3;

iTimercount++; if(iTimercount==40) {

iTimercount =0; bflag = 1; }

}

int GetADValue(void) {

ADC0L =0x00; ADC0H =0x00; AD0INT = 0;

AD0BUSY = 1; }

int DigitalFilter(unsigned int *ADBuf,unsigned char len) {

unsigned char j; unsigned long sum=0; for(j=0;jsum=sum+*(ADBuf+j); while(AD0INT==0); return ADC0H*256+ADC0L;

}

return (unsigned int)(sum/len);

13

}

float PID(int Kp,int ek,int ek1,int ek2) { float idata out;

out = Kp*(2.45*ek-2.45*ek1); return out;

}

14

6.总结

通过对电加热炉温度微机控制系统的设计,使我对实际工程中的计算机控制技术的应用有了初步的设计理念。理论与实践相结合,使我对计算机的控制系统的特点以及其组成,原理,应用更加深了一步。通过对整个系统的设计,使我进一步的巩固了专业基础知识。提高了用理论解决实践中遇到的问题。通过对资料的收集和修改,也使我学到了许多相关专业课程的知识,并从中得到启发,确定系统方案。

通过对温度控制系统的设计,使我复习了单片机实现PID算法,A/D转换器的接口电路,键盘的设计与接口电路,LED显示等等。

通过这次设计,使我加深了对闭环控制系统的了解,对简单的计算机控制技术的应用,使我有了很大的提高,并学会了综合分析,思考的能力。

15

7 参考文献

[1]潘新民.《微型计算机控制技术》 高等教育出版社,2001.7 [2]徐科军.《传感器与检测技术》 电子工业出版社,2004.9

[3]余锡存.《单片机原理及接口技术》 西安电子科技大学出版社,2000.7 [4]苗秀敏.《计算机控制系统及应用》 北京科学出版社,1995.4 [5]薛均义.《微机控制系统及应用》 西安交通大学出版社,2003.2 [6]黄胜军.《微型计算机控制应用实例集》 清华大学出版社,1987.4 [7]张凡.《微机原理与接口技术》 清华大学出版社,2003.10

[8]朱月秀.《单片机基础(修订版) 》 北京航空航天大学出版社,2001.7 [9]黄胜军.《微型计算机控制应用实例集(二) 》 清华大学出版社,1993.10

16

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务