51系列单片机闭环温度控制实验报告

合集下载

基于51单片机的自动温度控制报警系统-东北石油大学实习总结报告

基于51单片机的自动温度控制报警系统-东北石油大学实习总结报告

1 2
1 2
PORT
1 2 3
GND EN P12
P10 P11 EN P00 P01 P02 P03 P04 P05 P06 P07 PVCC2 GND
GND PVCC2
PVCC1 GND
P10 P11 P12 P00 P01 P02 P03 P04 P05 P06 P07 P13 P14 P15
I/O RST
DS1302
B
VCC
BEEP
8 BAT 7 P22 6 P23 5 P24
SW-PB4
P32 K1
DS
SW-PB4
DS18B20
SW-PB4
P33 K2
SW-PB4
SW-PB4
P34 K3
SW-PB4
SW-PB4
P35 K4
SW-PB4
P37 GND
BQ1 8550
BR1
BU1
4K7
BEEP
具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路
5
简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 DS18B20 产品的特点
(a)、只要求一个端口即可实现通信。 (b)、在 DS18B20 中的每个器件上都有独一无二的序列号。 (c)、实际应用中不需要外部任何元器件即可实现测温。 (d)、测量温度范围在-55。C 到+125。C 之间。 (e)、数字温度计的分辨率用户可以从 9 位到 12 位选择。 (f)、内部有温度上、下限告警设置。 (6)12864 液晶
MAX232
GND
V+ VVCC
2 6 16
VCC
SC3 104
R1 OUT R2 OUT T1 OUT T2 OUT

基于C51单片机的温度闭环控制实验程序

基于C51单片机的温度闭环控制实验程序

#include <reg51.h>#include <absacc.h>#include <math.h>void pid(void) //PID算法子程序void init(void) //初始化子程序void display(void) //延时子程序void clear() //清零子程序int mmul(int x,int y) //16位乘法,溢出赋极值int madd(int x,int y) //16位加法,溢出赋极值int change32_16(int x,int t) //32——16char change16_8(int wd) //16——8#define C8255_A XBYTE[0x7F00]#define C8255_B XBYTE[0x7F01]#define C8255_C XBYTE[0x7F02]#define C8255_CON XBYTE[0x7F03]#define AD0809 XBYTE[0xFEFF] //定义AD0809的地址sbit P17=P1^7; //PWM的驱动char TS=0x64; //采样周期int X=0x80;char SPEC=0x28; //给定:要求达到的温度值char IBAND=0x60; //积分分离值:PID算法中积分分离值int KP=12; //比例系数:PID算法中比例项系数char KI=20; //积分系数char KD=32; //微分系数int CK; //控制量:PID算法产生用于控制的量int TC; //采样周期变量char FPWM; //PWM脉冲中间标识位int CK_1; //控制量变量,用于记录上次控制的值int AAAA; // PWM高电平脉冲时间计算int VAA; //AAAA变量int BBB; //PWM低电平脉冲时间计算int VBB; //BBB变量int TKMARK; //采样标志值int ADMARK; //AD转换结束标志位int ADV ALUE; //AD采样后保存int YK; //反馈:测量温度值int EK; //温度误差int EK_1;int AEK;int BEK;unsigned char dis; //BCD码显示unsigned char led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsigned char b[]={0x00,0x00,0x00,0x00}; //位选/********************温度表**************/unsigned char codea[0x100]={0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x16,0x17,0x18,0x19, 0x1a,0x1b,0x1c,0x1d,0x1e,0x1e,0x1f,0x20,0x21,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x31,0x32,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3 c,0x3d,0x3e,0x3f,0x40,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x4 f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x6 2,0x63,0x64,0x64,0x65,0x65,0x66,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6e,0x6f,0 x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x84,0x85,0x86,0x87,0x88,0x89,0x8 a,0x8b,0x8c,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9b,0 x9c,0x9c,0x9d,0x9d,0x9e,0x9e,0x9f,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0 xb0,0xb0,0xb1,0xb2,0xb3,0xb4,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbd,0xbe,0xbe,0xc1 ,0xc2,0xc3,0xc4,0xc5,0xc6,0xc8,0xca,0xcc,0xce,0xcf,0xd0,0xd1,0xd2,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd ,0xde,0xe3,0xe6,0xe9,0xec,0xf0,0xf2,0xf6,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0 xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,}/**************延时子程序*********************/void delay(unsigned int time){unsigned int i;for(i=0;i<time;i++)}/*************主程序*************************/void main(){init();while(1);{while(1){if(TRMARK==0x01)break; //采样周期到否}TRMARK==0x00;while(1){if(ADMARK==0x01)break; //AD转换是否结束}ADMARK=0x00;YK=a[ADV ALUE];dis=(char)YK; //查温度表pid(); //PID算法if(CK<=0x80) //根据CK产生PWMAAAA=0x00;elseAAAA=CK-0x80;BBB=0x7f-AAAA;}}/***********初始化函数*********************/void init(void){YK=0x00; //变量初始化EK=0x00;EK_1=0x00;AEK=0x00;BEK=0x00;CK=0x00;CK_1=0x00;BBB=0x00;VBB=0x00;ADV ALUE=0x00;TKMARK=0x00;ADMARK=0x00;TC=0x00; //采样周期变量FPWM=0x01;AAAA=0x7f;V AA=0x7f;C8255_CON=0x81;display();clear();TMOD=0x11; //T1 ,T0由外部控制中断控制信号,16位定时器,工作在方式一下IP=0x02; //设定T0中断优先级最高IT1=1; //外部中断请求信号方式为脉冲触发方式,外中断1为下降沿有效EX1=1; //允许INT1中断TH0=0xd8;TL0=0xef;TH1=0xd8;TL1=0xef;ET0=ET1=1; //允许T0,T1中断TR0=TR1=1; //启动T0,T1EA=1;AD0809=1; //启动AD转换}void myint3(void) interrupt 3 //定时器1 LED显示{TH1=0xd8;TL1=0xef;ET1=1;display();clear();}void myint1(void) interrupt 2 //外中断1 读AD转换结果{ADV ALUE=AD0809;ADMARK=0x01;}void myint2(void) interrupt 1 //定时器0 启动AD转换{TH0=0xd8;TL0=0xef;ET0=1; //启动定时器0AD0809=1; //启动ADif(TC<TS)TC++; //采样周期变量else{TKMARK=0x01;TC=0x00;}if(FPWM==0x01) //产生PWM ,0x01表示加热模块{if(V A!=0x00){V AA=V AA-1;P17=0; //输出为低加热else{FPWM=0x02;VBB=BBB/2;}}if(FPWM==0x02) //0x02表示停止加热模块{if(VBB!=0x00){VBB=VBB-1;P17=1; //输出为高停止加热}else{FPWM=0x01;V AA=AAAA/2;}}return;}/*****************PID子程序***********/void pid(void){int K,P,I,D;K=P=I=D=0;EK=SPEC-YK;//得到偏差BEK=EK-EK_1-AEK;//12EKAEK=EK-EK_1; //偏差变化量/*********UK=Kp*AEK+Ki*EK+Kd*BEK****/if(abs(EK)>abs(IBAND))I=0; //判积分分离elseI=(EK*TS)/KI; //计算积分项P=AEK;D=((KD/TS)*BEK)/10000; //计算微分项//与书上对照,忽略KP K=madd(I,P);K=madd(D,K);K=mmul(K,KP);CK=K+CK_1;CK=change16_8(CK);CK_1=CK;EK_1=EK;CK=CK+X;}int mmul(int x,int y){int t,z;long s;s=x*y;z=(int)(s&0x0ffff);t=(int)((s>>16)&0x0ffff);s=change32_16(z,t);return(s);}int change32_16(int z,int t) //t=高字节,z=低字节{int s;if(t==0){if((z&0x8000)==0) s=z;else s=0x7fff;}else if((t&0xffff)==0xffff){if((z&0x8000)==0) s=0x8000;else s=z;}else if((t&0x8000)==0) s=0x7fff;else s=0x8000;return(s);}int mmad(int x,int y){int t;t=x+y;if(x>=0&&y>=0) //同号相乘,符号位变反说明溢出{if((t&0x8000)!=0) t=0x7fff;}else if(x<=0&&y<=0){if((t&0x8000)==0) t=0x8000;}return(t);}char change16_8(int wd) //t=高字节,z=低字节{char z,t,s;z=(wd>>8)&0x0ff;if(t==0x00){if((z&0x80)==0) s=z;else s=0x7f;}else if((t&0xff)==0xff){if((z&0x80)==0) s=0x80;else s=z;}else if((t&0x80)==0) s=0x7f;else s=0x80;return(s);}void display() //数码管显示函数{unsigned char i,j=0xf7;b[3]=SPEC/10;b[2]=SPEC%10;b[1]=dis/10;b[0]=dis%10;for(i=0;i<4;i++){C8255_A=j;C8255_B=led[b[i]];delay(0x55);j>>=1;}}void clear(){C8255_B=0x00;}。

《2024年基于51单片机的温度控制系统设计与实现》范文

《2024年基于51单片机的温度控制系统设计与实现》范文

《基于51单片机的温度控制系统设计与实现》篇一一、引言在现代工业控制领域,温度控制系统的设计与实现至关重要。

为了满足不同场景下对温度精确控制的需求,本文提出了一种基于51单片机的温度控制系统设计与实现方案。

该系统通过51单片机作为核心控制器,结合温度传感器与执行机构,实现了对环境温度的实时监测与精确控制。

二、系统设计1. 硬件设计本系统以51单片机为核心控制器,其具备成本低、开发简单、性能稳定等优点。

硬件部分主要包括51单片机、温度传感器、执行机构(如加热器、制冷器等)、电源模块等。

其中,温度传感器负责实时监测环境温度,将温度信号转换为电信号;执行机构根据控制器的指令进行工作,以实现对环境温度的调节;电源模块为整个系统提供稳定的供电。

2. 软件设计软件部分主要包括单片机程序与上位机监控软件。

单片机程序负责实时采集温度传感器的数据,根据设定的温度阈值,输出控制信号给执行机构,以实现对环境温度的精确控制。

上位机监控软件则负责与单片机进行通信,实时显示环境温度及控制状态,方便用户进行监控与操作。

三、系统实现1. 硬件连接将温度传感器、执行机构等硬件设备与51单片机进行连接。

具体连接方式根据硬件设备的接口类型而定,一般采用串口、并口或GPIO口进行连接。

连接完成后,需进行硬件设备的调试与测试,确保各部分正常工作。

2. 软件编程编写51单片机的程序,实现温度的实时采集、数据处理、控制输出等功能。

程序采用C语言编写,易于阅读与维护。

同时,需编写上位机监控软件,实现与单片机的通信、数据展示、控制指令发送等功能。

3. 系统调试在完成硬件连接与软件编程后,需对整个系统进行调试。

首先,对单片机程序进行调试,确保其能够正确采集温度数据、输出控制信号。

其次,对上位机监控软件进行调试,确保其能够与单片机正常通信、实时显示环境温度及控制状态。

最后,对整个系统进行联调,测试其在实际应用中的性能表现。

四、实验结果与分析通过实验测试,本系统能够实现对环境温度的实时监测与精确控制。

基于51单片机的温度控制系统设计

基于51单片机的温度控制系统设计

基于51单片机的温度控制系统设计引言:随着科技的不断进步,温度控制系统在我们的生活中扮演着越来越重要的角色。

特别是在一些需要精确控制温度的场合,如实验室、医疗设备和工业生产等领域,温度控制系统的设计和应用具有重要意义。

本文将以基于51单片机的温度控制系统设计为主题,探讨其原理、设计要点和实现方法。

一、温度控制系统的原理温度控制系统的基本原理是通过传感器感知环境温度,然后将温度值与设定值进行比较,根据比较结果控制执行器实现温度的调节。

基于51单片机的温度控制系统可以分为三个主要模块:温度传感器模块、控制模块和执行器模块。

1. 温度传感器模块温度传感器模块主要用于感知环境的温度,并将温度值转换成电信号。

常用的温度传感器有热敏电阻、热敏电偶和数字温度传感器等,其中热敏电阻是最常用的一种。

2. 控制模块控制模块是整个温度控制系统的核心,它负责接收传感器传来的温度信号,并与设定值进行比较。

根据比较结果,控制模块会输出相应的控制信号,控制执行器的工作状态。

51单片机作为一种常用的嵌入式控制器,可以实现控制模块的功能。

3. 执行器模块执行器模块根据控制模块输出的控制信号,控制相关设备的工作状态,以实现对温度的调节。

常用的执行器有继电器、电磁阀和电动机等。

二、温度控制系统的设计要点在设计基于51单片机的温度控制系统时,需要考虑以下几个要点:1. 温度传感器的选择根据具体的应用场景和要求,选择合适的温度传感器。

考虑传感器的测量范围、精度、响应时间等因素,并确保传感器与控制模块的兼容性。

2. 控制算法的设计根据温度控制系统的具体要求,设计合适的控制算法。

常用的控制算法有比例控制、比例积分控制和模糊控制等,可以根据实际情况选择适合的算法。

3. 控制信号的输出根据控制算法的结果,设计合适的控制信号输出电路。

控制信号的输出电路需要考虑到执行器的工作电压、电流等参数,确保信号能够正常控制执行器的工作状态。

4. 系统的稳定性和鲁棒性在设计过程中,需要考虑系统的稳定性和鲁棒性。

《2024年基于8051单片机的温度控制系统》范文

《2024年基于8051单片机的温度控制系统》范文

《基于8051单片机的温度控制系统》篇一一、引言随着科技的飞速发展,人们对各类生产与生活设备的智能性和精度要求不断提高。

其中,温度控制系统作为一种关键的工业和家庭自动化技术,已成为当今科学研究与技术应用的重点。

在众多的单片机技术中,基于8051单片机的温度控制系统因其实时性强、性价比高以及适应性强等优点而得到了广泛的应用。

本文旨在深入探讨基于8051单片机的温度控制系统的设计与实现过程。

二、系统概述基于8051单片机的温度控制系统是一种典型的自动化控制系统,该系统采用高精度的温度传感器进行实时检测,并将数据通过A/D转换器传输至8051单片机。

单片机根据预设的算法对数据进行处理,然后通过PWM(脉宽调制)或开关控制等方式对执行器进行控制,以达到调节温度的目的。

三、硬件设计1. 单片机选择:选用8051系列单片机作为核心控制单元,因其性能稳定、成本低、资源丰富等优点而成为行业内的主流选择。

2. 温度传感器:选择高精度的温度传感器进行实时检测,如DS18B20等。

3. A/D转换器:将传感器输出的模拟信号转换为单片机可以处理的数字信号。

4. 执行器:根据需要选择合适的执行器,如加热器、制冷器等。

四、软件设计软件设计是整个系统的核心部分,主要涉及单片机的编程和控制算法的实现。

1. 编程语言:采用C语言进行编程,因其具有代码可读性强、可移植性好等优点。

2. 控制算法:根据实际需求选择合适的控制算法,如PID (比例-积分-微分)控制算法等。

通过编程实现对温度的精确控制。

3. 人机交互:通过LCD显示屏等人机交互设备,实现对系统的实时监控和操作。

五、系统实现系统实现包括硬件连接、程序编写、调试与优化等步骤。

首先将硬件设备按照电路图进行连接,然后编写程序实现单片机的控制功能。

在调试过程中,需要不断优化控制算法和程序代码,以达到最佳的温控效果。

六、系统性能分析基于8051单片机的温度控制系统具有以下优点:1. 实时性强:能够实时检测温度并快速作出反应。

基于51单片机的温度报警控制系统报告

基于51单片机的温度报警控制系统报告

报告评分批改老师《现代电子综合实验》课程设计报告基于单片机的温度检测控制系统设计学生姓名 学 号专 业 班 级同组学生 提交日期 年 月 日指导教师目录2一、实验目的 .....................................................................................2二、实验要求 .....................................................................................2三、实验开发环境及工具 ...........................................................................2四、按键扫描和液晶显示功能实现 ...................................................................24.1矩阵键盘电路 ...............................................................................4.1.1矩阵键盘电路简介 .....................................................................224.1.2矩阵式按键扫描原理 ...................................................................24.1.3 按键扫描子程序设计思想及流程图 ......................................................34.2 LCD1602显示电路 ..........................................................................34.2.1 LCD1602模块简介 ....................................................................34.2.2 LCD1602模块引脚说明 .................................................................4.2.3 LCD1602控制方式及指令 ..............................................................344.2.4 LCD1602液晶显示子程序设计思想及流程图 ..............................................5五、基于单片机的温度检测控制系统设计过程 .........................................................55.1 系统整体电路框图及功能说明 ................................................................55.2 DS18B20数字温度传感器电路 ..............................................................55.2.1 单总线通信方式简介 ..................................................................65.2.2 DS18B20简介 ......................................................................5.2.3 DS18B20读写操作 ..................................................................665.3 声光报警及控制电路 ........................................................................75.4 软件设计 ..................................................................................5.4.1 主程序设计流程图 ....................................................................775.4.2 DS18B20子程序设计思想及流程图 ...................................................85.4.3 声光报警子程序设计思想及流程图 .....................................................9七、 实验过程及实验结果 ...........................................................................9八、实验中遇到的问题及解决方法 ...................................................................10附件 ............................................................................................一、实验目的(1). 掌握单片机应用系统的设计方法与步骤;(2).掌握硬件电路各功能模块的工作原理、应用电路与编程方法;(3).熟练掌握单总线的应用及编程;(4). 掌握基于单片机的温度检测控制系统的设计与实现。

单片机温度控制器实验报告

单片机温度控制器实验报告

南京邮电大学通达学院2010/2011学年第1学期课程设计实验报告课题名称基于CPU的8LED温度显示控制器的设计专业通信工程学生班级070018学号07001836姓名赵静静指导老师林建中实验日期2010 年11 月19 日题目:基于单片cpu的8led温度显示控制器的设计一,实验目的和要求1,Proteus软件的MCS51单片机仿真学习2,根据提供的参考工程,在proteus平台自己重新设计实验电路所需要的电器原理图,并在此基础上编写相对应的程序,实现其功能,学习proteus软件的使用,其中包括原理图器件的选取,原理图的电气连接,程序的编写编译以及运行,并能查出其错误等。

基本要求:用热敏电阻或温度传感器作温度探头,通过AD转换器变换,把温度数据转换成BCD码在LCD上显示。

显示精度±0。

5℃能记录和回放温度参数,记录间隔可任意设定(1S到1h,步长1s)回放数据速度可设定画出温度变化曲线。

发挥部分:1 显示精度提高到±0。

1℃2 显示精度提高到±0。

01℃3 与实际温度计温度比较,找出温度显示误差曲线,在报告中描出,并分析误差来源4 实现温度自动补赏二,实验仪器微型计算机一台三,实验原理温度测量通常可以用两种方式来实现,一种是用热敏电阻之类的器件,由于感温效应,热敏电阻的阻值能够随温度变化,当热敏电阻接入电路,测量过它的电流或其两端的电压就会随温度变化发生响应的变化,在将温度变化的电压或电流采集过来,进行A/D 转化后,发送到单片机进行处理,通过显示电路,就可以将被测温度显示出来。

这种设计需要用到A/D转换电路,其测温电路比较麻烦。

第二种方法是用温度传感器芯片。

温度传感器芯片能把温度信号转换成数字信号,直接发送给单片机,转换后通过显示电路既可以显示。

四,基本芯片及其原理单片机微型计算机简称单片机,是指在一块芯片体上集成了中央处理器CPU、随机存储器RAM、程序存储器ROM或EPROM、定时器/计数器、中断控制器以及串行和并行I/O 接口等部件,构成一个完整的微型计算机。

《2024年基于51单片机的温度控制系统设计与实现》范文

《2024年基于51单片机的温度控制系统设计与实现》范文

《基于51单片机的温度控制系统设计与实现》篇一一、引言随着科技的发展,温度控制系统的应用日益广泛,涉及到家电、工业、医疗等多个领域。

51单片机以其低成本、高可靠性和易用性,成为温度控制系统中常用的核心部件。

本文将介绍基于51单片机的温度控制系统的设计与实现。

二、系统概述本系统以51单片机为核心,通过温度传感器实时检测环境温度,根据设定的温度阈值,控制加热或制冷设备的工作状态,以达到恒温的目的。

系统主要由温度传感器、51单片机、加热/制冷设备及电源等部分组成。

三、硬件设计1. 温度传感器:选用精度高、稳定性好的数字温度传感器,实时采集环境温度并转化为数字信号,便于单片机处理。

2. 51单片机:选用功能强大的51系列单片机,具备丰富的IO口资源,可实现与温度传感器、加热/制冷设备的通信和控制。

3. 加热/制冷设备:根据实际需求选择合适的加热或制冷设备,通过单片机的控制实现温度的调节。

4. 电源:为系统提供稳定的电源供应,保证系统的正常运行。

四、软件设计1. 初始化:对51单片机进行初始化设置,包括IO口配置、中断设置等。

2. 数据采集:通过温度传感器实时采集环境温度,并转化为数字信号。

3. 温度控制算法:根据设定的温度阈值和实际温度值,通过PID控制算法计算输出控制量,控制加热/制冷设备的工作状态。

4. 显示与通信:通过LCD或LED等显示设备实时显示当前温度和设定温度,同时可通过串口通信实现与上位机的数据交互。

五、系统实现1. 电路连接:将温度传感器、51单片机、加热/制冷设备及电源等部分进行电路连接,确保各部分正常工作。

2. 编程与调试:使用C语言或汇编语言编写程序,实现温度控制算法、数据采集、显示与通信等功能。

通过仿真软件进行程序调试,确保系统功能正常。

3. 系统测试:在实际环境中对系统进行测试,观察系统在各种情况下的表现,如温度波动、设备故障等。

根据测试结果对系统进行优化和调整。

六、结论本文介绍了基于51单片机的温度控制系统的设计与实现。

基于51单片机的水温测控系统实验报告

基于51单片机的水温测控系统实验报告

摘要本次实验是软硬件相结合的实验,通过传感器得到的阻值与其它电阻,可以搭建一个电桥,将水温转化为电压,然后通过放大器将电压放大到所需要的值,将所得的电压送入单片机的AD转换电路,将模拟信号转换成数字信号,从而在单片机的液晶屏上显示当前的温度。

此烧水壶是可控制的,即设定温度,使水加热到设定温度且保温,此控制算法采用PID控制算法来控制继电器的通断,来保证水温恒定在设定温度处。

一、设计要求1.传感器:Pt100铂热电阻2.测量放大器:自己设计与搭建3.被控对象:400W电热杯,约0.5公斤自来水4.执行机构:12V驱动,5A负载能力的继电器5.控制系统:51单片机6.控制算法:PID7.温度范围:环境温度~100度8.测量误差1度,控制误差2度二、设计原理及方案1.热电阻传感器热电阻传感器是利用导体或半导体的电阻值随温度变化而变化的原进行测温的。

热电阻的工作原理:温度升高,金属内部原子晶格的振动加剧,从而使金属内部的自由电子通过金属导体时的阻碍增大,宏观上表现出电阻率变大,电阻值增加,我们称其为正温度系数,即电阻值与温度的变化趋势相同。

2.实验原理框图3.测量放大器电路图说明:电位器R10用来调节偏置电压,而电位器R7则用来调节增益。

实验时,用R10来调节零点,用R7来调节满度。

该电路将0℃-100℃转换为0-5V 电压。

上述电路图采用仪表放大器,将铂热电阻两端的电压U2与电位器R10两端的电压U1差放大,放大器输出电压U0与电压差的关系为:)-)(2(1127248U U R RR R U o ⨯+=由铂热电阻阻值与水温的关系可知,铂热电阻的范围是ΩΩ140~100。

则100)10012(12-140)140(1212)-(100)10012(12-100)10012(1212⨯+⨯+≤≤⨯+⨯+K K U U K K 整理得:V U U 04.0)-(012≤≤而仪表放大器的输出电压为0~5V ,所以放大倍数大约为:5/0.04=125。

《2024年基于51单片机的温度控制系统设计与实现》范文

《2024年基于51单片机的温度控制系统设计与实现》范文

《基于51单片机的温度控制系统设计与实现》篇一一、引言随着科技的发展,温度控制系统的应用越来越广泛,其精确性和稳定性对于许多领域具有重要意义。

本设计旨在以51单片机为基础,构建一个可靠且高效地温度控制系统。

这种系统能广泛用于家电、工业和医疗等场合,具有重要的应用价值。

二、系统概述基于51单片机的温度控制系统主要包括传感器模块、执行器模块、单片机控制模块以及电源模块。

传感器模块负责实时检测环境温度,执行器模块根据单片机的指令调整环境温度,单片机控制模块是整个系统的核心,负责接收传感器数据、处理并发出控制指令,电源模块为整个系统提供稳定的电源。

三、硬件设计1. 传感器模块设计:采用高精度的温度传感器,如DS18B20,实时检测环境温度并转换为电信号。

2. 执行器模块设计:根据实际需要,选择适当的加热或制冷设备作为执行器,接收单片机的控制指令,调整环境温度。

3. 单片机控制模块设计:以51单片机为核心,通过编程实现温度的实时检测、数据处理和控制指令的发出。

同时,为了方便程序的更新和维护,采用串口通信与上位机进行数据交互。

4. 电源模块设计:为整个系统提供稳定的电源,可采用直流电源或交流电源,通过电源电路进行转换和稳定处理。

四、软件设计软件设计主要包括单片机的程序设计。

程序设计采用C语言编写,易于阅读和维护。

主要功能包括:初始化系统、读取传感器数据、处理数据、发出控制指令以及与上位机进行数据交互。

程序采用中断方式读取传感器数据,保证数据的实时性。

同时,通过PID控制算法对温度进行精确控制,提高系统的稳定性。

五、系统实现1. 系统初始化:单片机上电后,首先进行系统初始化,包括配置时钟、初始化串口等。

2. 数据读取:单片机通过读取传感器模块的数据,获取当前环境温度。

3. 数据处理:单片机对读取的温湿度数据进行处理,包括滤波、转换等操作,得到准确的温度值。

4. 控制指令发出:单片机根据处理后的温度值与设定值的比较结果,发出相应的控制指令给执行器模块。

51系列单片机闭环温度控制实验报告

51系列单片机闭环温度控制实验报告

成绩:综合实验报告题目:51系列单片机闭环温度控制班级:小组成员:指导教师:完成时间:2015年11月一、实验名称:51系列单片机闭环温度控制实验——基于Protuse仿真实验平台实现基本情况:1.实验项目组长:2. 小组成员:3.具体分工:负责程序编写,主要负责查询资料与实验报告撰写。

4.实验要求:①设计硬件电路:温度检测:采用热电偶或热电阻温度给定:采用电位器进行模拟电压给定,0——5VAD转采用12位转换显示采用8位LED,或者LCD1602显示键盘4X4,PID等参数通过键盘设置。

②软件控制算法:数字PID,参数在线修改。

显示窗口:显示温度的设置值SV、温度的实际值PV。

实际温度值,温度峰值、峰值时间等通过串口上传到上位机(选做)二、实验内容1、系统基本原理(实验原理介绍)根据实验要求,温度闭环控制,即对加温速度、超调量、调节时间级误差参数,选择PID控制参数级算法,实现对温度的自动控制。

闭环温度控制系统原理图如下:2、PID算法的数字实现本次试验通过8031通过OVEN 是模拟加热的装置,加一定的电压便开始不停的升温,直到电压要消失则开始降温。

仿真时,U形加热器为红色时表示正在加热,发红时将直流电压放过来接,就会制冷,变绿。

T端输出的是电压,温度越高,电压就越高。

8031对温度的控制是通过可控硅调控实现的。

可控硅通过时间可以通过可控硅控制板上控制脉冲控制。

该触发脉冲想8031用软件在P1.3引脚上产生,受过零同步脉冲后经光偶管和驱动器输送到可控硅的控制级上。

偏差控制原理是要求对所需温度求出偏差值,然后对偏差值处理而获得控制信号去调节加热装置的温度。

PID控制方程式:式中e是指测量值与给定值之间的偏差TD 微分时间T 积分时间KP 调节器的放大系数将上式离散化得到数字PID位置式算法,式中在位置算法的基础之上得到数字PID 增量式算法:3、温度控制软件设计程序结构图如下:4、硬件电路设计在温度控制中,经常采用是硬件电路主要有两大部分组成:模拟部分和数字部分,对这两部分调节仪表进行调节,但都存在着许多缺点,用单片机进行温度控制使构成的系统灵活,可靠性高,并可用软件对传感器信号进行抗干拢滤波和非线性补偿处理,可大大提高控制质量和自动化水平;总的来说本系统由四大模块组成,它们是输入模块、单片机系统模块、计算机显示与控制模块和输出控制模块。

单片机温度控制实习报告

单片机温度控制实习报告

单片机温度控制实习报告一、实习目的1. 学习并掌握单片机的基本原理和应用,了解单片机在温度控制方面的应用。

2. 学习电路原理图设计,焊接和装配,提高电子线路的基本焊接装配工艺、规范及注意事项。

3. 学习并掌握温度传感器的原理和应用,了解其与单片机的接口电路设计。

4. 学习并掌握单片机编程,实现温度数据的采集、处理和显示。

5. 培养学生解决实际问题的能力,提高对理论知识的感性认识。

二、实习内容和过程1. 实习的第一步是学习并理解单片机的基本原理和温度控制原理。

通过查阅资料,了解单片机的内部结构、工作原理以及温度控制的基本方法。

2. 实习的第二步是设计电路原理图。

根据实习要求,设计出单片机、温度传感器、显示器等元件的连接电路。

在此过程中,要充分考虑电路的稳定性、可靠性和可扩展性。

3. 实习的第三步是进行焊接和装配。

按照电路原理图,将各个元件焊接在电路板上。

在焊接过程中,要注意焊接姿势、焊接温度和焊接时间,确保焊接质量。

4. 实习的第四步是编写单片机程序。

根据温度控制要求,编写单片机程序,实现温度数据的采集、处理和显示。

在此过程中,要充分考虑程序的稳定性、可靠性和可维护性。

5. 实习的最后一步是进行系统测试。

通过实际操作,测试系统的工作性能,检查是否达到预期效果。

如发现问题,进行分析、调试,直至解决问题。

三、实习收获和体会1. 通过本次实习,我对单片机的基本原理和应用有了更深入的了解,掌握了单片机在温度控制方面的应用。

2. 我学会了电路原理图设计,提高了电子线路的基本焊接装配工艺、规范及注意事项。

3. 我掌握了温度传感器的原理和应用,了解了其与单片机的接口电路设计。

4. 我学会了单片机编程,实现了温度数据的采集、处理和显示。

5. 本次实习锻炼了我的动手能力,培养了解决实际问题的能力,提高了我的综合素质。

四、实习总结通过本次单片机温度控制实习,我对单片机技术和温度控制技术有了更深入的了解。

在实习过程中,我不仅学到了专业知识,还锻炼了自己的动手能力和解决问题的能力。

单片机课设报告——基于51单片机的温度控制系统设计

单片机课设报告——基于51单片机的温度控制系统设计

.单片机课程设计报告题目:温度控制系统设计学院:通信与信息工程学院专业:测控技术与仪器专业班级:测控三班成员:徐郡二〇一四年六月十二日一、引言温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。

对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。

随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。

利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。

作为获取信息的手段——传感器技术得到了显著的进步,其应用领域较广泛。

传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。

因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。

为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。

本系统利用传感器与单片机相结合,应用性比较强,本系统可以作为仓库温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统,以及构成智能电饭煲等等。

课题主要任务是完成环境温度监测,利用单片机实现温度监测并通过报警信号提示温度异常。

本设计具有操作方便,控制灵活等优点。

本设计系统包括单片机,温度采集模块,显示模块,按键控制模块,报警和指示模块五个部分。

文中对每个部分功能、实现过程作了详细介绍。

整个系统的核心是进行温度监控,完成了课题所有要求。

二、实验目的和要求2.1学习DS18B20温度传感芯片的结构和工作原理。

2.2掌握LED数码管显示的原理及编程方法。

2.3掌握独立式键盘的原理及使用方法。

2.4掌握51系列单片机数据采集及处理的方法。

三、方案设计总体设计方案采用AT89C52单片机作控制器,温度传感器选用DS18B20来设计数字温度计,系统由5个模块组成:主控制器、测温电路、显示电路、控制电路、报警及指示电路。

《2024年基于51单片机的温度控制系统设计与实现》范文

《2024年基于51单片机的温度控制系统设计与实现》范文

《基于51单片机的温度控制系统设计与实现》篇一一、引言随着现代工业的快速发展,温度控制系统的设计与实现显得尤为重要。

本文以51单片机为核心,设计并实现了一种高效、稳定的温度控制系统。

该系统通过精确的传感器和智能的控制算法,实现对温度的实时监测与控制,为各种工业应用提供了可靠的保障。

二、系统设计1. 硬件设计本系统以51单片机为主控制器,采用模块化设计,包括温度传感器模块、执行器模块、电源模块等。

其中,温度传感器模块负责实时监测环境温度,并将数据传输给单片机;执行器模块根据单片机的指令,控制加热或制冷设备的工作,以实现温度的调节;电源模块为整个系统提供稳定的电源。

2. 软件设计软件设计主要包括单片机的程序设计和人机交互界面设计。

程序设计采用C语言编写,包括温度数据的采集、处理、存储和传输等功能。

人机交互界面采用LCD显示屏和按键实现,方便用户实时查看温度信息和进行操作。

三、实现过程1. 硬件连接与调试根据电路图将各个模块连接起来,进行硬件调试。

确保各模块工作正常,数据传输无误。

2. 程序设计与编译使用Keil C51等编程软件,编写单片机程序。

程序包括主程序、温度采集程序、执行器控制程序等。

编译后生成可执行文件,烧录到单片机中。

3. 系统联调与测试将程序烧录到单片机中,进行系统联调。

通过LCD显示屏和按键进行人机交互,观察温度数据的实时变化,测试执行器是否能够根据单片机的指令进行正确的动作。

同时,对系统的稳定性、响应速度等进行测试。

四、结果与分析经过多次测试与优化,本系统能够实现对温度的精确控制,具有较高的稳定性和响应速度。

在各种工业应用中,均能取得良好的效果。

同时,本系统还具有以下优点:1. 自动化程度高:通过单片机和传感器等设备,实现了对温度的自动监测与控制,减少了人工操作的繁琐程度。

2. 精度高:采用高精度的温度传感器和智能的控制算法,实现了对温度的精确控制。

3. 可靠性高:系统采用模块化设计,各模块之间相互独立,降低了系统的故障率。

基于51单片机的温度控制系统

基于51单片机的温度控制系统

一.概述温度是工业生产中常见的工艺参数之一,任何物理变化和化学反应过程都与温度密切相关,因此温度控制是生产自动化的重要任务。

对于不同生产情况和工艺要求下的温度控制,所采用的加热方式,燃料,控制方案也有所不同。

本设计的控制对象为一电加热炉,输入为加在电阻丝两断的电压,输出为电加热炉内的温度。

输入和输出的传递函数为:G(s)=2/(s(s+1))。

控温范围为100~500℃,所采用的控制方案为直接数字控制(DDC)中的最少拍控制。

二.温度控制系统的组成框图采用典型的反馈式温度控制系统,组成部分见下图。

其中数字控制器的功能由微型机算机实现。

图2.1 温度控制系统的组成框图三.温度控制系统结构图及总述图3.1 温度控制系统结构图图中由4~20mA变送器,I/V,A/D转换器构成输入通道,用于采集炉内的温度信号。

其中,变送器选用XTR101,它将热电偶信号(温度信号)变为4~20mA电流输出,再由高精密电流/电压变换器RCV420将4~20mA电流信号变为0~5V标准电压信号,以供A/D 转换用。

转换后的数字量与与炉温的给定值数字化后进行比较,即可得到实际炉温和给定炉温的偏差。

炉温的设定值由键盘输入。

由微型计算机构成的数字控制器按最小拍进行运算,计算出所需要的控制量。

数字控制器的输出经标度变换后送给8253,由8253定时计数器转变为高低电平的不同持续时间,送至SCR触发电路,触发晶闸管并改变其导通角大小,从而控制电加热炉的加热电压,起到调温的作用。

四.温度控制系统硬件与其详细功能介绍1.微型计算机的选择——时钟发生器,8282——带三态缓冲器的通用8位地址锁存器,8286——具有三态输出的8位双极型总线收发器。

其中,时钟发生器8284A为CPU提供时钟信号,经时钟同步的系统复位信号RESET和准备就绪信号READY;地址锁存器8282是针对于8086CPU地址/数据线分时复用而设计配备的,它可以在8086CPU总线周期的T1状态,利用ALE信号的下降沿将地址信息锁存于其中;总线收发器8286是为了提高8086CPU 数据总线的驱动能力2.SCR触发回路和主回路图4.1 SCR触发回路和主回路如图所示为一晶闸管触发电路。

《2024年基于51单片机的温度控制系统设计与实现》范文

《2024年基于51单片机的温度控制系统设计与实现》范文

《基于51单片机的温度控制系统设计与实现》篇一一、引言随着科技的发展,温度控制系统的应用越来越广泛,如工业生产、家居环境、医疗设备等。

51单片机以其低成本、高可靠性、易于编程等优点,在温度控制系统中得到了广泛应用。

本文将介绍基于51单片机的温度控制系统的设计与实现。

二、系统设计1. 硬件设计本系统以51单片机为核心控制器,采用热电偶传感器采集温度信号,通过继电器控制加热元件的开关,实现对温度的控制。

此外,系统还包括电源电路、显示电路等。

(1)单片机选择:选用AT89C51单片机,其具有较高的集成度,可满足系统的需求。

(2)传感器选择:选用K型热电偶传感器,其具有较高的测量精度和响应速度。

(3)执行器选择:采用继电器作为执行器,通过控制继电器的开闭来控制加热元件的工作状态。

2. 软件设计软件设计包括主程序设计和中断服务程序。

主程序负责初始化系统参数,并不断循环检测温度值,根据温度值调整继电器的工作状态。

中断服务程序主要用于处理传感器采集到的温度数据,并将数据发送给主程序进行处理。

三、系统实现1. 电路连接根据硬件设计图,将单片机、传感器、继电器等元器件连接起来。

注意保证电路的稳定性和可靠性。

2. 程序设计程序设计包括主程序的编写和中断服务程序的编写。

主程序包括系统初始化、温度检测、继电器控制等部分。

中断服务程序主要负责处理传感器采集到的温度数据,并将数据发送给主程序进行处理。

程序设计采用C语言编写,易于阅读和理解。

3. 系统调试系统调试包括硬件调试和软件调试。

硬件调试主要检查电路连接是否正确,元器件是否工作正常。

软件调试主要检查程序是否能够正确运行,并能够实现对温度的准确控制。

四、系统测试与结果分析1. 系统测试在完成系统设计与实现后,需要进行系统测试。

测试内容包括温度检测的准确性、继电器的控制精度、系统的稳定性等。

通过多次测试,确保系统的性能符合设计要求。

2. 结果分析通过测试数据进行分析,可以看出本系统的温度检测精度较高,继电器控制精度较高,系统稳定性较好。

基于51单片机的智能温控系统的设计与实现

基于51单片机的智能温控系统的设计与实现

基于51单片机的智能温控系统的设计与实现一:项目概述该项目以51单片机为主控芯片,温度采集采用DS18B20数字温度传感器,实现在一定温度范围内的闭环控制。

加热设备由继电器控制,蜂鸣器做报警设备。

二:开发目的1、掌握DS18B20的特点2、掌握常用的继电器的驱动方法及控制原理。

3、掌握常用的蜂鸣器的驱动方法及发生原理。

4、掌握时序图及根据时序编程。

5、掌握PROTEL99SE电路原理图绘制方法。

6、掌握KEIL UV2开发51单片机控制系统的方法三:功能要求1、实现温度采集并显示。

2、实现温度闭环控制。

3、控制范围可以调整。

4、将侧到的温度由单片机发送给上位机并显示(扩展功能)。

四:项目验收要求1、完成系统电路原理图绘制。

2、完成所要求的功能。

3、完成项目报告。

4、制作答辩PPT。

项目四、基于51单片机的智能温控系统的设计与实现项目组成员:1.姓名:XXX 学校:XXXX 系部:XXXX系班级:XXXXXX2.姓名:XXX 学校:XXXX 系部:XXXX系班级:XXXXXX3.姓名:XXX 学校:XXXX 系部:XXXX系班级:XXXXXX4.姓名:XXX 学校:XXXX 系部:XXXX系班级:XXXXXX5.姓名:XXX 学校:XXXX 系部:XXXX系班级:XXXXXX指导工程师:赵进全完成日期:XXXX年XX月XX日一、概述随着嵌入式技术、计算机技术、通信技术的不断发展与成熟。

控制系统以其直观、方便、准确、适用广泛而被越来越广泛地应用于工业过程、空调系统、智能楼宇等。

恒温控制系统,控制对象是温度。

温度控制在日常生活及工作领域应用的相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制,而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。

针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。

《2024年基于51单片机的温度控制系统设计与实现》范文

《2024年基于51单片机的温度控制系统设计与实现》范文

《基于51单片机的温度控制系统设计与实现》篇一一、引言随着科技的发展,温度控制系统的应用越来越广泛,涉及到工业生产、环境监测、智能家居等多个领域。

本文将介绍一种基于51单片机的温度控制系统设计与实现,旨在提高温度控制的精度和稳定性。

二、系统概述本系统以51单片机为核心控制器,通过温度传感器实时监测环境温度,并根据设定的温度阈值调节加热或制冷设备,实现对温度的精确控制。

系统主要由温度传感器、51单片机、执行器(加热或制冷设备)以及上位机监控软件等部分组成。

三、硬件设计1. 温度传感器:选用高精度的数字温度传感器,将环境温度转换为数字信号,便于单片机处理。

2. 51单片机:作为核心控制器,负责接收温度传感器的数据,根据设定的温度阈值控制执行器的开关,同时与上位机监控软件进行通信。

3. 执行器:根据单片机的指令,控制加热或制冷设备的开关,以调节环境温度。

4. 上位机监控软件:用于设置温度阈值、查看实时温度及历史温度记录等。

四、软件设计1. 初始化:单片机上电后,首先进行初始化设置,包括配置时钟、I/O口等。

2. 数据采集:单片机通过A/D转换器读取温度传感器的数据,转换为数字信号。

3. 温度控制算法:根据设定的温度阈值和实际温度,采用PID(比例-积分-微分)控制算法,计算输出控制量。

4. 执行器控制:单片机根据计算得到的控制量,控制执行器的开关,以调节环境温度。

5. 通信协议:单片机与上位机监控软件采用串口通信协议进行数据传输,包括设置温度阈值、读取实时温度及历史温度记录等。

五、系统实现1. 制作电路板:根据硬件设计图,制作电路板,包括单片机、温度传感器、执行器等元器件的连接。

2. 编程与调试:使用C语言编写单片机程序,包括初始化、数据采集、温度控制算法、执行器控制以及通信协议等部分。

通过仿真软件进行程序调试,确保程序正确无误。

3. 连接上位机监控软件:将单片机与上位机监控软件进行连接,设置通信参数,实现数据的传输与控制。

单片机综合设计实验

单片机综合设计实验

单片机综合设计实验一、实验目的通过单片机的综合设计实验,加深对单片机原理和应用的理解,练习使用单片机进行控制和数据处理的能力。

二、实验内容设计一个模拟温度控制系统,要求能够通过单片机读取温度传感器的温度值,并根据设定的目标温度进行判断和控制,使得温度值稳定在目标温度附近。

即实现一个简单的闭环温度控制系统。

三、实验器材1.单片机:使用8051单片机2.温度传感器:使用LM35温度传感器3.显示器:使用数码管显示器4.控制器:使用电热器作为温度控制的对象,通过控制电热器的加热时间和加热功率来控制温度四、实验步骤1.连接电路将LM35温度传感器与单片机相连接,使得单片机能够读取到温度传感器的模拟信号。

将单片机与数码管显示器以及电热器相连接,使得单片机能够通过数码管显示温度值,并能够控制电热器的加热时间和加热功率。

2.编写程序根据实验要求,设计一个闭环温度控制系统的程序。

通过单片机读取温度传感器的温度值,并与设定的目标温度进行比较,根据比较结果控制电热器的加热时间和加热功率。

同时,将温度值通过数码管进行显示,使得操作人员能够实时监控温度的变化。

3.调试验证五、实验结果经过调试验证,实验结果表明设计的温度控制系统能够达到预期的效果。

单片机能够准确读取温度传感器的温度值,并根据设定的目标温度进行判断和控制,使得温度能够稳定在目标温度附近。

六、实验总结通过这次单片机综合设计实验,我对单片机的原理和应用有了更深入的理解。

通过实际操作和编程,我学会了如何连接温度传感器和数码管显示器,以及如何通过单片机对温度进行控制和显示。

同时,我还锻炼了解决问题和调试的能力,提高了实际应用技能。

这次实验不仅提供了实践的机会,也巩固了我对单片机的相关知识,为今后的学习和应用打下了坚实的基础。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

成绩:综合实验报告题目:51系列单片机闭环温度控制班级:小组成员:指导教师:完成时间:2015年11月一、实验名称:51系列单片机闭环温度控制实验——基于Protuse仿真实验平台实现基本情况:1.实验项目组长:2. 小组成员:3.具体分工:负责程序编写,主要负责查询资料与实验报告撰写。

4.实验要求:①设计硬件电路:温度检测:采用热电偶或热电阻温度给定:采用电位器进行模拟电压给定,0——5VAD转采用12位转换显示采用8位LED,或者LCD1602显示键盘4X4,PID等参数通过键盘设置。

②软件控制算法:数字PID,参数在线修改。

显示窗口:显示温度的设置值SV、温度的实际值PV。

实际温度值,温度峰值、峰值时间等通过串口上传到上位机(选做)二、实验内容1、系统基本原理(实验原理介绍)根据实验要求,温度闭环控制,即对加温速度、超调量、调节时间级误差参数,选择PID控制参数级算法,实现对温度的自动控制。

闭环温度控制系统原理图如下:计算机PID 数字输出温控测温2、PID算法的数字实现本次试验通过8031通过OVEN 是模拟加热的装置,加一定的电压便开始不停的升温,直到电压要消失则开始降温。

仿真时,U形加热器为红色时表示正在加热,发红时将直流电压放过来接,就会制冷,变绿。

T端输出的是电压,温度越高,电压就越高。

8031对温度的控制是通过可控硅调控实现的。

可控硅通过时间可以通过可控硅控制板上控制脉冲控制。

该触发脉冲想8031用软件在P1.3引脚上产生,受过零同步脉冲后经光偶管和驱动器输送到可控硅的控制级上。

偏差控制原理是要求对所需温度求出偏差值,然后对偏差值处理而获得控制信号去调节加热装置的温度。

PID控制方程式:式中e是指测量值与给定值之间的偏差TD 微分时间T 积分时间KP 调节器的放大系数将上式离散化得到数字PID位置式算法,式中在位置算法的基础之上得到数字PID 增量式算法:3、温度控制软件设计程序结构图如下:4、硬件电路设计在温度控制中,经常采用是硬件电路主要有两大部分组成:模拟部分和数字部分,对这两部分调节仪表进行调节,但都存在着许多缺点,用单片机进行温度控制使构成的系统灵活,可靠性高,并可用软件对传感器信号进行抗干拢滤波和非线性补偿处理,可大大提高控制质量和自动化水平;总的来说本系统由四大模块组成,它们是输入模块、单片机系统模块、计算机显示与控制模块和输出控制模块。

输入模块主要完成对温度信号的采集和转换工作,由温度传感器及其与单片机的接口部分组成。

利用模拟加热的装置来控制温度。

该闭环温度控制系统采用AT89S51八位机作为微处理单元进行控制。

采用4X4键盘把设定温度的最高值和最低值存入单片机的数据存储器,还可以通过键盘完成温度检测功能的转换。

温度传感器把采集的信号与单片机里的数据相比较来控制温度控制器。

5、电路原理图1、仿真完整电路图2、12位AD转换模块3、OVEN模型及信号调理电路4、单片机主电路三、实验结果分析(含程序、数据记录及分析和实验总结等,可附页):1、51系列单片机闭环温度控制实验程序Main.c#include "includes.h"char measure_temperature[6] = {'+','0','0','0','C','\0'};char setting_temperature[6] = {'0','1','0','0','C','\0'};char code_table[16] = {'7','8','9','T','4','5','6','P','1','2','3','I','+','0','-','D'};char Pv[6]={'P','0','9','0',' ','\0'};char Iv[6]={'I','0','0','0',' ','\0'};char Dv[6]={'D','0','0','5',' ','\0'};int PWM_Period = 100;int PWM_Hight = 1;int PWM_Hights = 50;short m_temperature = 0;short s_temperature = 100;float pc = 090.0;float ic = 0.0;float dc = 5.0;float e1 = 0;float e2 = 0; char RX_Data[5] = {0};int main(){timer_init();lcd_init();while(1){ADCRead();keyscan();Data_update();LCD_Display(0x80+0x08,setting_temp erature);LCD_Display(0x80+0x40,Pv);LCD_Display(0x80+0x45,Iv);LCD_Display(0x80+0x4A,Dv);}return 0;PWM.c#include "includes.h"uchar T_update = 0;uchar P_update = 0;uchar I_update = 0;uchar D_update = 0;void T0_time() interrupt 1 //PWM {PWM_Hights--;if(PWM_Hights == 0){PWM_EN = 0;PWM_Hights = 1;}PWM_Period--;if(PWM_Period == 0){PWM_EN = 1;PWM_Period = 100;PWM_Hights = PWM_Hight;}}void pid(){static long sum = 0;e2 = e1;e1 = s_temperature-m_temperature;sum += e1;if(e1 > 20){PWM_Hight = 100;}else if(e1 < -20){PWM_Hight = 1;}else{PWM_Hight = PWM_Hight+ pc*(e1+ic*sum+dc*(e1-e2));}if(PWM_Hight > 100)PWM_Hight = 100;else if(PWM_Hight < 1)PWM_Hight = 1;}void Interrupt_T1() interrupt 3{static int count = 0;TH1 = 0x3C;//定时50msTL1 = 0xB0;count++;if(count == 20){pid();count = 0;}}void update_Temp(){short j = 0;short tmp = 0;for(j = 1;j<=3;j++){tmp = tmp*10+(setting_temperature[j]-'0');}if(setting_temperature[0] == '-')tmp = -tmp;s_temperature = tmp;}void update_Pv(){short j = 0;short tmp = 0;for(j = 1;j<=3;j++){tmp = tmp*10+(Pv[j]-'0');}pc = tmp;}void update_Iv(){short j = 0;short tmp = 0;for(j = 1;j<=3;j++){tmp = tmp*10+(Iv[j]-'0');}ic = tmp;}void update_Dv(){short j = 0;short tmp = 0;for(j = 1;j<=3;j++){tmp = tmp*10+(Dv[j]-'0');}dc = tmp;}void Data_update() //循环检查每一次T、PID值是否有修改{if(T_update == 1){update_Temp();T_update =0;}else if(P_update == 1){update_Pv();P_update =0;}else if(I_update == 1) {update_Iv();I_update =0;}else if(D_update == 1){update_Dv();D_update =0;}}Timer.c#include "includes.h"void timer_init(){EA = 0;//关闭总中断ET0 = 1;//ET0用于PWM产生ET1 = 1;//ET1测速计时TMOD = 0x12;//T0:工作方式2 T1:工作方式1TH0 = 0x9C;TL0 = 0x9C;TH1 = 0x3C;//定时50msTL1 = 0xB0;TR0 = 1;//运行定时器0TR1 = 1;//运行定时器1PT0 = 1; //T0中断优先级高EA = 1; //打开总中断}ADS7824.c#include "includes.h"void itoa(short num,char str[]) {int i=3;num = (num/2047.0)*999.0;for(i=3; i>0; i--){str[i] = (num % 10) + '0';num = num / 10;}str[5] = '\0';}void ADCRead(){short num = 0;//无符号16位RC = 0;//启动转换RC = 1;//启动读取while(BUSY == 0);num = 0;BYTE = 0; //读取高4位num = (num|P1)<<8;num = num & 0x0F00;BYTE = 1;//读取低8位num = num|P1;//12位数据完整取好if((num&0x0800) == 0x0800){measure_temperature[0] = '-';num = num&0xF7FF;num = (num^0x07FF)+1;m_temperature = -((num/2047.0)*999.0);}else{measure_temperature[0] = '+';m_temperature = (num/2047.0)*999.0;}itoa(num,measure_temperature);LCD_Display(0x80,measure_temperatu re);RC = 0;}Delay.c#include "includes.h"void delay_ms(int n)//1ms延时{uint i=0,j=0;for(i=0;i<n;i++)for(j=0;j<123;j++);}Display.c#include "includes.h"void lcd_wcom(uchar com) //1602 写命令函数单片机给1602 写命令{rs=0; //选择指令寄存器rw=0; //选择写P0=com; //把命令字送入delay_ms(1);en=1; //使能线电平变化,命令送入1602 的8 位数据口delay_ms(1);en=0;}void lcd_wdat(uchar dat) //1602 写数据函数{rs=1; //选择数据寄存器rw=0; //选择写P0=dat; //把要显示的数据送入delay_ms(1);en=1; //使能线电平变化,数据送入1602 的8 位数据口delay_ms(1);en=0;}void LCD_Display(uint location, uchar Display_Part[]){int i=0;lcd_wcom(location);for(i=0;Display_Part[i] != 0;i++){lcd_wdat(Display_Part[i]);delay_ms(1);}}void lcd_init() //1602 初始化函数{lcd_wcom(0x38); //8 位数据,双列,5*7 字形lcd_wcom(0x0c); //开启显示屏,关光标,光标不闪烁lcd_wcom(0x06); //显示地址递增,即写一个数据后,显示位置右移一位lcd_wcom(0x01); //清屏LCD_Display(0x80+0x08,setting_temperatu re);LCD_Display(0x80+0x40,Pv);LCD_Display(0x80+0x45,Iv);LCD_Display(0x80+0x4A,Dv); }Keyboard.c#include "includes.h"void keyscan(){uint keyno = 16;uchar temp = 0;uchar i = 0;static char update_flag = 0;static int update_index = 0;char key_code = 0;P3 = 0x0F;if(P3 != 0x0F){P3 = 0x0F;//delay_ms(1);temp = P3;i = temp^0x0F;switch(i){case 1: keyno = 0;break;case 2: keyno = 1;break;case 4: keyno = 2;break;case 8: keyno = 3;break;default: keyno = 16; //无键按下}P3 = 0xF0;temp = P3;//delay_ms(1);i = (temp >> 4) ^ 0x0F;switch(i){case 1: keyno += 0;break;case 2: keyno += 4;break;case 4: keyno += 8;break;case 8: keyno += 12;break;}while(P3 != 0xF0);}if(keyno>=0 && keyno <=15){if(update_flag == 1){key_code = code_table[keyno];setting_temperature[update_index] = key_code;update_index++;if(update_index == 4){update_flag = 0;update_index = 0;T_update = 1;}}else if(update_flag == 2){key_code = code_table[keyno];Pv[1+update_index] = key_code;update_index++;if(update_index == 3){update_flag = 0;update_index = 0;P_update = 1;}}else if(update_flag == 3){key_code = code_table[keyno];Iv[1+update_index] = key_code;update_index++;if(update_index == 3){update_flag = 0;update_index = 0;I_update = 1;}}else if(update_flag == 4){key_code = code_table[keyno];Dv[1+update_index] = key_code;update_index++;if(update_index == 3){update_flag = 0;update_index = 0;D_update = 1;}}else{switch(keyno){case 3:update_flag = 1;break;case 7:update_flag = 2;break;case 11:update_flag = 3;break;case 15:update_flag = 4;break;default:update_flag = 0;}}}}2、实验结果100度设定温度仿真结果零下25度设定温度仿真结果3、实验总结温度控制广泛应用于人们的生产和生活中,人们使用温度计来采集温度,通过人工操51系列单片机直流电机闭环调速实验劳动强度大。

相关文档
最新文档