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
单片机实验-单片机水温控制实验
单片机水温控制实验姓名:徐晨学号:5130209390 班级:F1302014小组成员:王林涛赵路杰一、实验目的综合应用,全面掌握模拟量测量及闭环控制原理。
二、实验分工赵路杰、王林涛负责单片机的编程工作,小组成员共同完成单片机的调试工作。
三、实验设备清单、接线图、原理图1、实验器材:51单片机电路、A/D、D/A电路、温度测量电路。
2、51单片机电路3、温度测量电路4、继电器输出电路四、实验内容及过程1、用单片机控制水壶温度。
测量传感器用热电阻,通过编程,控制水温达到设定值。
要求最终的误差在±1℃ 以内。
2、数码管左边2位显示水温设定值(通过拨码盘设定),右边2位显示水温实测值。
(用十进制数表示)五、编程说明1、实验中水温的控制是通过开关量的输出实现的,即通过控制水壶电源的通断来实现水温的控制。
由实验板上的小继电器来驱动中间继电器,再通过中间继电器来驱动水壶加热电源。
2、为保证继电器的使用寿命,实验中必须考虑继电器的动作时间间隔,避免继电器快速频繁动作。
4、程序框图中断子程序:断点保护入栈读0809转换结转换成对应温度转换成十进制数启动AD转换出栈中断返回5、控制程序LED1 EQU 30HLED2 EQU 31HLED3 EQU 32HLED4 EQU 33HSETL EQU 34HSETH EQU 35HREALL EQU 36HREALH EQU 37HAIM EQU 38H ;目标温度REAL EQU 39H ;真实温度PROTECTION EQU 3AH ;保护现场,将A的值保护起来DIFFERENCE EQU 3BH ;目标温度与真实温度的差值ORG 0000HLJMP BEGINORG 0060HBEGIN:MAIN:MOV REAL,#28H ;对控制目标赋初值,40度CONTROL:LCALL READ_BCD; ;读取拨码盘温度LCALL GETT ; 读取实际温度CLR CY;MOV A,AIM;MOV R0,REAL;SUBB A,R0; 根据目标温度与实际温度的差值,选择相应的加热程序JC OVERHEATPRE;MOV DIFFERENCE,A;SUBB A,#15;JNC TEMP15;CLR CY;MOV A,DIFFERENCE;SUBB A,#5;JNC TEMP5;CLR CY;MOV A,DIFFERENCE;SUBB A,#3;JNC TEMP3;CLR CY;MOV A,DIFFERENCE;JNC TEMP1;LCALL DELAY1_10S;LJMP CONTROL;OVERHEATPRE:LJMP OVERHEAT;TEMP15: ;温差15度及以上加热程序MOV DPTR,#7FFCH ;启动继电器MOV A,#0FFHMOVX @DPTR,A;LCALL DELAY1SLCALL DELAY1SLCALL DELAY1SLCALL DELAY1SLCALL DELAY1SCLR A;MOVX @DPTR,ALCALL DELAY1S ;加热5s等待1sLJMP CONTROL;TEMP5: ;温差5度及以上加热程序MOV DPTR,#7FFCHMOV A,#0FFHMOVX @DPTR,A;LCALL DELAY1SLCALL DELAY1SCLR A;MOVX @DPTR,ALCALL DELAY1SLCALL DELAY1SLCALL DELAY1S ;加热2秒等待3sLJMP CONTROL;TEMP3: ;温差3度及以上加热程序MOV DPTR,#7FFCHMOV A,#0FFHMOVX @DPTR,A;LCALL DELAY1SCLR A;MOVX @DPTR,ALCALL DELAY1SLCALL DELAY1SLCALL DELAY1SLCALL DELAY1S ;加热1秒等待4秒LJMP CONTROL;TEMP1: ;温差1度及以上加热程序MOV DPTR,#7FFCHMOV A,#0FFHMOVX @DPTR,A;LCALL DELAY1_10SLCALL DELAY1_10SLCALL DELAY1_10SLCALL DELAY1_10SLCALL DELAY1_10SCLR A;MOVX @DPTR,ALCALL DELAY1SLCALL DELAY1SLCALL DELAY1SLCALL DELAY1SLCALL DELAY1S ;加热0.5秒等待5秒LJMP CONTROL;OVERHEAT: ;温度过热等待程序MOV DPTR,#7FFCHMOV A,#00HMOVX @DPTR,ALCALL DELAY1SLCALL DELAY1SLCALL DELAY1SLCALL DELAY1SLCALL DELAY1S ;冷却5秒,等待水温下降LJMP CONTROL;READ_BCD:SETB P1.7 ;选择BCD相关数码MOV DPTR,#0BFFFHMOVX A,@DPTRCPL AMOV R0,AANL A,#0FHMOV SETL,AMOV A,R0SWAP AANL A,#0FHMOV SETH,AMOV LED2,SETLMOV LED1,SETH ;设定温度的十位在SETH,个位在LEDH MOV B,#10MOV A,SETHMUL ABADD A,SETL ;MOV AIM,A ;设定温度值存在AIM中RETDELAY1_10S:MOV TMOD,#10H;设定定时器1位方式一MOV TH1,#3CHMOV TL1,#0B0H;SETB TR1L2: JBC TF1,L1SJMP L2 ;假定时钟频率为6MhzL1:CLR TR1RETDELAY1S:MOV R0,#10;MOV TMOD,#10H;设定定时器1位方式一MOV TH1,#3CHMOV TL1,#0B0H;SETB TR1L4: JBC TF1,L3SJMP L4L3:MOV TH1,#3CHMOV TL1,#0B0HDJNZ R0,L4CLR TR1RETDISPLAY: ;显示程序MOV A,LED1ANL A,#0FHMOV DPTR,#DSEG1MOVC A,@A+DPTRMOV DPTR,#7FFBHMOVX @DPTR,AMOV A,LED2ANL A,#0FHMOV DPTR,#DSEG1MOVC A,@A+DPTRMOV DPTR,#7FFAHMOVX @DPTR,AMOV A,REALHANL A,#0FHMOV DPTR,#DSEG1MOVC A,@A+DPTRMOV DPTR,#7FF9HMOVX @DPTR,AMOV A,REALLANL A,#0FHMOV DPTR,#DSEG1MOVC A,@A+DPTRMOV DPTR,#7FF8HMOVX @DPTR,ARETGETT: ;传感器温度获得程序MOV DPTR,#0DFFAH; 信号来源为IN2CLR A ;MOVX @DPTR,A; 开始进行数据转换JB P3.3,$MOV PROTECTION,AMOV DPTR,#0DFFAH; 读取AD转换后的温度MOVX A,@DPTRMOV B,#100;MUL AB ;MOV REAL,B; 真实温度值为BMOV A,B ;MOV B,#10;DIV AB ;MOV REALL,B ;MOV REALH,A;LCALL DISPLAYMOV A,PROTECTIONRETDSEG1:DB 0C0H,0F9H,0A4H,0B0HDB 99H,92H,82H,0F8HDB 80H,90H,88H,83HDB 0C6H,0A1H,86H,8EHEND六、实验结果与分析初始程序运行地并不顺利,之后通过仔细地调试,所有分模块的功能都可以实现,但是出于时间原因,最终的加热效果并没有得到验证。
基于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单片机的温度控制系统设计与实现》范文
《基于51单片机的温度控制系统设计与实现》篇一一、引言在现代工业控制领域,温度控制系统的设计与实现至关重要。
为了满足不同场景下对温度精确控制的需求,本文提出了一种基于51单片机的温度控制系统设计与实现方案。
该系统通过51单片机作为核心控制器,结合温度传感器与执行机构,实现了对环境温度的实时监测与精确控制。
二、系统设计1. 硬件设计本系统以51单片机为核心控制器,其具备成本低、开发简单、性能稳定等优点。
硬件部分主要包括51单片机、温度传感器、执行机构(如加热器、制冷器等)、电源模块等。
其中,温度传感器负责实时监测环境温度,将温度信号转换为电信号;执行机构根据控制器的指令进行工作,以实现对环境温度的调节;电源模块为整个系统提供稳定的供电。
2. 软件设计软件部分主要包括单片机程序与上位机监控软件。
单片机程序负责实时采集温度传感器的数据,根据设定的温度阈值,输出控制信号给执行机构,以实现对环境温度的精确控制。
上位机监控软件则负责与单片机进行通信,实时显示环境温度及控制状态,方便用户进行监控与操作。
三、系统实现1. 硬件连接将温度传感器、执行机构等硬件设备与51单片机进行连接。
具体连接方式根据硬件设备的接口类型而定,一般采用串口、并口或GPIO口进行连接。
连接完成后,需进行硬件设备的调试与测试,确保各部分正常工作。
2. 软件编程编写51单片机的程序,实现温度的实时采集、数据处理、控制输出等功能。
程序采用C语言编写,易于阅读与维护。
同时,需编写上位机监控软件,实现与单片机的通信、数据展示、控制指令发送等功能。
3. 系统调试在完成硬件连接与软件编程后,需对整个系统进行调试。
首先,对单片机程序进行调试,确保其能够正确采集温度数据、输出控制信号。
其次,对上位机监控软件进行调试,确保其能够与单片机正常通信、实时显示环境温度及控制状态。
最后,对整个系统进行联调,测试其在实际应用中的性能表现。
四、实验结果与分析通过实验测试,本系统能够实现对环境温度的实时监测与精确控制。
基于51单片机的温度控制系统设计
基于51单片机的温度控制系统设计引言:随着科技的不断进步,温度控制系统在我们的生活中扮演着越来越重要的角色。
特别是在一些需要精确控制温度的场合,如实验室、医疗设备和工业生产等领域,温度控制系统的设计和应用具有重要意义。
本文将以基于51单片机的温度控制系统设计为主题,探讨其原理、设计要点和实现方法。
一、温度控制系统的原理温度控制系统的基本原理是通过传感器感知环境温度,然后将温度值与设定值进行比较,根据比较结果控制执行器实现温度的调节。
基于51单片机的温度控制系统可以分为三个主要模块:温度传感器模块、控制模块和执行器模块。
1. 温度传感器模块温度传感器模块主要用于感知环境的温度,并将温度值转换成电信号。
常用的温度传感器有热敏电阻、热敏电偶和数字温度传感器等,其中热敏电阻是最常用的一种。
2. 控制模块控制模块是整个温度控制系统的核心,它负责接收传感器传来的温度信号,并与设定值进行比较。
根据比较结果,控制模块会输出相应的控制信号,控制执行器的工作状态。
51单片机作为一种常用的嵌入式控制器,可以实现控制模块的功能。
3. 执行器模块执行器模块根据控制模块输出的控制信号,控制相关设备的工作状态,以实现对温度的调节。
常用的执行器有继电器、电磁阀和电动机等。
二、温度控制系统的设计要点在设计基于51单片机的温度控制系统时,需要考虑以下几个要点:1. 温度传感器的选择根据具体的应用场景和要求,选择合适的温度传感器。
考虑传感器的测量范围、精度、响应时间等因素,并确保传感器与控制模块的兼容性。
2. 控制算法的设计根据温度控制系统的具体要求,设计合适的控制算法。
常用的控制算法有比例控制、比例积分控制和模糊控制等,可以根据实际情况选择适合的算法。
3. 控制信号的输出根据控制算法的结果,设计合适的控制信号输出电路。
控制信号的输出电路需要考虑到执行器的工作电压、电流等参数,确保信号能够正常控制执行器的工作状态。
4. 系统的稳定性和鲁棒性在设计过程中,需要考虑系统的稳定性和鲁棒性。
基于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 接口等部件,构成一个完整的微型计算机。
《单片机实习报告温控系统
学院单片机课程设计报告书题目:温度控制系统设计院系名称:学院学生姓名:)专业名称:自动化班级:自动时间:2011年6月7日至6月17 日温度控制系统设计一、设计目的在现代化的工业生产中电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。
温度作为一个基本物理量,它是一个与人们的生活环境、生产活动密切相关的重要物理量。
在现代化的工业生产过程中温度作为一种常用的主要被控参数,在很多生产过程中我们需要对温度参数进行检测。
例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测。
采用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。
因此单片机对温度的控制问题是一个工业生产中经常会遇到的问题。
本次设计我们采用MCS-52系列单片机与各种外围电路构成单片机温度自动检测和控制系统,通过检测和控制一个温箱模型,实现对温度的实时检测和控制。
通过本次设计掌握对温度检测控制系统的硬件设计方法和软件编写方法。
熟悉了Protues软件和Kiel软件的使用方法。
通过课题的研究进一步巩固所学的知识,同时学习课程以外的相关知识,培养综合应用知识的能力。
锻炼动手能力与实际工作能力,将所学的理论与实践结合起来。
二、设计要求本温度控制系统是一个闭环反馈控制系统,它用温箱中的温度传感器将检测到的温度信号经放大,A/D转换后送入单片机中进行数据处理并显示当前温度值,用当前温度值与设定温度值进行比较。
根据比较的结果得到控制信号用以控制控制箱中继电器的通断,实现对温箱中加热器的控制。
通过这种控制方式实现对保温箱的温度控制。
本课题设计的要求主要包括硬件设计和软件设计两部分。
系统功能由硬件和软件两大部分协调完成,硬件部分主要完成主机电路、数据采集电路、控制执行等电路的设计。
基于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。
51系列单片机闭环温度控制实验报告
成绩:重庆邮电大学自动化学院综合实验报告题目:51系列单片机闭环温度控制学生姓名:班级:学号:同组人员:指导教师:完成时间:2015年10月一、实验名称:51系列单片机闭环温度控制实验——基于Protuse仿真实验平台实现基本情况:1. 学生姓名:2. 学号:3. 班级:4. 同组其他成员:二、实验内容1、系统基本原理计算机控制技术实训,即温度闭环控制,根据实际要求,即加温速度、超调量、调节时间级误差参数,选择PID控制参数级算法,实现对温度的自动控制。
闭环温度控制系统原理如图:2、PID算法的数字实现本次试验通过8031通过OVEN 是模拟加热的装置,加一定的电压便开始不停的升温,直到电压要消失则开始降温。
仿真时,U形加热器为红色时表示正在加热,发红时将直流电压放过来接,就会制冷,变绿。
T端输出的是电压,温度越高,电压就越高。
8031对温度的控制是通过可控硅调控实现的。
可控硅通过时间可以通过可控硅控制板上控制脉冲控制。
该触发脉冲想8031用软件在P1.3引脚上产生,受过零同步脉冲后经光偶管和驱动器输送到可控硅的控制级上。
偏差控制原理是要求对所需温度求出偏差值,然后对偏差值处理而获得控制信号去调节加热装置的温度。
PID控制方程式:式中e是指测量值与给定值之间的偏差TD 微分时间T 积分时间KP 调节器的放大系数将上式离散化得到数字PID位置式算法,式中在位置算法的基础之上得到数字PID 增量式算法:3、硬件电路设计在温度控制中,经常采用是硬件电路主要有两大部分组成:模拟部分和数字部分,对这两部分调节仪表进行调节,但都存在着许多缺点,用单片机进行温度控制使构成的系统灵活,可靠性高,并可用软件对传感器信号进行抗干拢滤波和非线性补偿处理,可大大提高控制质量和自动化水平;总的来说本系统由四大模块组成,它们是输入模块、单片机系统模块、计算机显示与控制模块和输出控制模块。
输入模块主要完成对温度信号的采集和转换工作,由温度传感器及其与单片机的接口部分组成。
51单片机实验报告
51单片机实验报告51单片机是一款非常流行的单片机芯片,被广泛应用于各种电子产品中。
在这篇文章中,我们来探讨一下51单片机的一些实验,以及对于这些实验的理解和体会。
第一部分:实验内容我们进行的51单片机实验主要包括以下几个方面:1. 闪烁LED灯实验:这个实验是入门级别的,主要是为了熟悉51单片机的基本操作和编程方法。
在这个实验中,我们使用了一块51单片机开发板和几个LED灯,通过控制单片机的IO口信号来实现LED灯的闪烁。
2. 按键控制LED实验:这个实验是在闪烁LED实验的基础上进一步延伸的,主要是为了了解如何通过外部按键来控制单片机的输出。
在这个实验中,我们运用了单片机的外部中断和定时器等功能,实现了按键控制LED灯的亮灭。
3. LCD1602显示屏实验:这个实验是为了让我们熟悉如何在51单片机中使用LCD1602液晶显示屏。
在这个实验中,我们使用了I2C总线来与LCD1602进行通信,通过向LCD1602发送命令和数据来实现字符的显示。
4. 电机驱动实验:这个实验是让我们了解如何使用51单片机来控制电机的运转。
在这个实验中,我们运用了单片机的PWM控制功能,通过改变PWM波的占空比来控制电机的转速和方向。
第二部分:实验体会通过这些实验,我对于51单片机有了更深刻的理解和体会。
在这里,我想分享一下我的一些体会。
首先,我认为51单片机具有非常强大的控制能力和灵活性。
通过编写程序,我们可以控制单片机的各种IO口、定时器、PWM输出等功能,从而实现各种复杂的控制任务。
同时,由于其能够直接操作硬件,所以可以快速响应各种外部事件,对实时性要求较高的应用场景有很好的适应性。
其次,我发现在51单片机开发中,良好的软硬件结合非常重要。
由于51单片机具有丰富的外部中断、定时器等功能,因此我们可以很好地利用这些硬件资源来实现各种功能。
同时,在编写程序时,我们也需要充分发挥51单片机的硬件优势,例如使用定时器来完成计时任务,使用外部中断来完成输入检测等等。
电子工程设计报告——闭环温度控制系统
电子工程设计报告题目:闭环温度控制系统设计——单片机、AD、DA、显示键盘电路及系统软件专业:自动化小组:12—C姓名学号:李晓云(09020330)吕柳璇(09020329)指导教师:张辉完成日期:2012年4月23号摘要随着电子产品向智能化和微型化不断发展,单片机已成为电子产品研制和开发中首选的控制器,并在检测和控制系统中得到广泛的应用,而温度作为工业控制中的一个很重要的参数,是系统常须测量、控制和保持的。
本论文将从硬件和软件两个方面,介绍以8051单片机为核心的温度控制系统的组成和原理。
关键词:8051单片机,A/D,D/A,键盘,显示,数码管。
目录一、背景与功能指标要求二、系统方案设计2.1 单片机的介绍2.1.1 单片机的特点2.1.2 单片机的基本组成2.2 系统功能的确定2.3 ADC0804的介绍2.3.1 ADC0804的特点2.3.2 ADC0804 的引脚及功能2.4 DAC0832的介绍2.4.1 DAC0832的特点2.5 人机交互与串口通信三,硬件电路设计3.1 单片机电路设计3.1.1 单片机工作过程及原理………………………………………………………3.1.2 单片机设计基本要求…………………………………………………………3.1.3 单片机选择……………………………………………………………………3.1.4 8051单片机最小系统组成……………………………………………………3.1.5 单片机功能扩展图……………………………………………………………3.1.6 单片机系统应用电路…………………………………………………………3.1.7 单片机电路的地址分配情况…………………………………………………3.2 A/D电路设计与实现3.2.1 A/D电路的基本要求…………………………………………………………3.2.2 ADC0804工作原理及特性……………………………………………………3.2.3 A/D转换电路…………………………………………………………………3.3 D/A电路设计与实现3.3.1 基本设计要求…………………………………………………………………3.3.2 D/A 电路选择……………………………………………………………3.3.3 DAC0832电压转换电路………………………………………………………3.3.4 DAC0832 与8051单片机的接口设计………………………………………3.3.5 D/A转换电路图………………………………………………………………3.4 显示键盘电路3.4.1 显示电路…………………………………………………………………………3.4.2 键盘电路…………………………………………………………………………3.5电路调试…………………………………………………………………………………3.5.1调试的原理与方法………………………………………………………………3.5.2调试的过程与数据………………………………………………………………一、背景与功能指标要求1)设计背景随着电子产品向智能化和微型化不断发展,单片机已成为电子产品研制和开发中首选的控制器,并在检测和控制系统中得到广泛的应用,而温度作为工业控制中的一个很重要的参数,是系统常须测量、控制和保持的。
《2024年基于51单片机的温度控制系统设计与实现》范文
《基于51单片机的温度控制系统设计与实现》篇一一、引言随着科技的发展,温度控制系统的应用越来越广泛,其精确性和稳定性对于许多领域具有重要意义。
本设计旨在以51单片机为基础,构建一个可靠且高效地温度控制系统。
这种系统能广泛用于家电、工业和医疗等场合,具有重要的应用价值。
二、系统概述基于51单片机的温度控制系统主要包括传感器模块、执行器模块、单片机控制模块以及电源模块。
传感器模块负责实时检测环境温度,执行器模块根据单片机的指令调整环境温度,单片机控制模块是整个系统的核心,负责接收传感器数据、处理并发出控制指令,电源模块为整个系统提供稳定的电源。
三、硬件设计1. 传感器模块设计:采用高精度的温度传感器,如DS18B20,实时检测环境温度并转换为电信号。
2. 执行器模块设计:根据实际需要,选择适当的加热或制冷设备作为执行器,接收单片机的控制指令,调整环境温度。
3. 单片机控制模块设计:以51单片机为核心,通过编程实现温度的实时检测、数据处理和控制指令的发出。
同时,为了方便程序的更新和维护,采用串口通信与上位机进行数据交互。
4. 电源模块设计:为整个系统提供稳定的电源,可采用直流电源或交流电源,通过电源电路进行转换和稳定处理。
四、软件设计软件设计主要包括单片机的程序设计。
程序设计采用C语言编写,易于阅读和维护。
主要功能包括:初始化系统、读取传感器数据、处理数据、发出控制指令以及与上位机进行数据交互。
程序采用中断方式读取传感器数据,保证数据的实时性。
同时,通过PID控制算法对温度进行精确控制,提高系统的稳定性。
五、系统实现1. 系统初始化:单片机上电后,首先进行系统初始化,包括配置时钟、初始化串口等。
2. 数据读取:单片机通过读取传感器模块的数据,获取当前环境温度。
3. 数据处理:单片机对读取的温湿度数据进行处理,包括滤波、转换等操作,得到准确的温度值。
4. 控制指令发出:单片机根据处理后的温度值与设定值的比较结果,发出相应的控制指令给执行器模块。
51单片机实验报告
51单片机实验报告一、引言51单片机是一种广泛应用于嵌入式系统开发的微控制器芯片。
本实验旨在通过对51单片机的实验研究,加深对该芯片的理解和应用。
二、实验一:LED灯闪烁控制本实验通过编写程序,控制51单片机上的LED灯以特定的频率闪烁。
为了实现这个目标,我们首先需要了解51单片机的引脚布局,确定LED灯的连接方式。
然后,通过编写相应的汇编程序,控制引脚的电平变化,从而实现LED灯的闪烁。
三、实验二:数码管显示数码管是一种常见的输出设备,通过控制引脚的输出来显示特定的数字。
本实验中,我们通过编写程序,实现通过51单片机控制数码管的显示。
通过对数码管的驱动原理和编程的学习,我们可以灵活地控制数码管的显示内容和频率。
四、实验三:蜂鸣器发声蜂鸣器是一种常见的声音输出设备,通过控制引脚的输出来产生特定的声音。
本实验中,我们通过编写程序,实现通过51单片机控制蜂鸣器的发声。
通过学习蜂鸣器的驱动原理和编程,我们可以根据需要产生不同频率和节奏的声音。
五、实验四:温湿度检测温湿度检测是一种常见的环境监测需求。
本实验中,我们通过引入温湿度传感器,实现通过51单片机获取环境的温度和湿度信息。
通过编写程序和读取传感器的数据,我们可以实时监测环境的温湿度,并进行相应的控制和反馈。
六、实验五:红外遥控红外遥控是一种常见的无线通信方式,通过发送和接收红外信号来实现远程控制。
本实验中,我们通过引入红外发射和接收模块,实现通过51单片机进行红外遥控。
通过编写相应的程序,设置红外遥控的编码和解码方式,我们可以实现对外部设备的遥控操作。
七、实验六:定时器应用定时器是51单片机中的重要模块,它可以实现定时和计数等功能。
本实验中,我们通过学习定时器的工作原理和编程,实现通过51单片机进行定时和计数的应用。
通过编写相应的程序和设置定时器的参数,我们可以实现不同的定时和计数功能,满足各种需要。
八、实验七:串口通信串口通信是一种常见的数据通信方式,通过串口接口发送和接收数据。
单片机温度控制实习报告
单片机温度控制实习报告一、实习目的1. 学习并掌握单片机的基本原理和应用,了解单片机在温度控制方面的应用。
2. 学习电路原理图设计,焊接和装配,提高电子线路的基本焊接装配工艺、规范及注意事项。
3. 学习并掌握温度传感器的原理和应用,了解其与单片机的接口电路设计。
4. 学习并掌握单片机编程,实现温度数据的采集、处理和显示。
5. 培养学生解决实际问题的能力,提高对理论知识的感性认识。
二、实习内容和过程1. 实习的第一步是学习并理解单片机的基本原理和温度控制原理。
通过查阅资料,了解单片机的内部结构、工作原理以及温度控制的基本方法。
2. 实习的第二步是设计电路原理图。
根据实习要求,设计出单片机、温度传感器、显示器等元件的连接电路。
在此过程中,要充分考虑电路的稳定性、可靠性和可扩展性。
3. 实习的第三步是进行焊接和装配。
按照电路原理图,将各个元件焊接在电路板上。
在焊接过程中,要注意焊接姿势、焊接温度和焊接时间,确保焊接质量。
4. 实习的第四步是编写单片机程序。
根据温度控制要求,编写单片机程序,实现温度数据的采集、处理和显示。
在此过程中,要充分考虑程序的稳定性、可靠性和可维护性。
5. 实习的最后一步是进行系统测试。
通过实际操作,测试系统的工作性能,检查是否达到预期效果。
如发现问题,进行分析、调试,直至解决问题。
三、实习收获和体会1. 通过本次实习,我对单片机的基本原理和应用有了更深入的了解,掌握了单片机在温度控制方面的应用。
2. 我学会了电路原理图设计,提高了电子线路的基本焊接装配工艺、规范及注意事项。
3. 我掌握了温度传感器的原理和应用,了解了其与单片机的接口电路设计。
4. 我学会了单片机编程,实现了温度数据的采集、处理和显示。
5. 本次实习锻炼了我的动手能力,培养了解决实际问题的能力,提高了我的综合素质。
四、实习总结通过本次单片机温度控制实习,我对单片机技术和温度控制技术有了更深入的了解。
在实习过程中,我不仅学到了专业知识,还锻炼了自己的动手能力和解决问题的能力。
单片机课设报告——基于51单片机的温度控制系统设计
.单片机课程设计报告题目:温度控制系统设计学院:通信与信息工程学院专业:测控技术与仪器专业班级:测控三班成员:徐郡二〇一四年六月十二日一、引言温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。
对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。
随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。
利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。
作为获取信息的手段——传感器技术得到了显著的进步,其应用领域较广泛。
传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。
因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。
为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。
本系统利用传感器与单片机相结合,应用性比较强,本系统可以作为仓库温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统,以及构成智能电饭煲等等。
课题主要任务是完成环境温度监测,利用单片机实现温度监测并通过报警信号提示温度异常。
本设计具有操作方便,控制灵活等优点。
本设计系统包括单片机,温度采集模块,显示模块,按键控制模块,报警和指示模块五个部分。
文中对每个部分功能、实现过程作了详细介绍。
整个系统的核心是进行温度监控,完成了课题所有要求。
二、实验目的和要求2.1学习DS18B20温度传感芯片的结构和工作原理。
2.2掌握LED数码管显示的原理及编程方法。
2.3掌握独立式键盘的原理及使用方法。
2.4掌握51系列单片机数据采集及处理的方法。
三、方案设计总体设计方案采用AT89C52单片机作控制器,温度传感器选用DS18B20来设计数字温度计,系统由5个模块组成:主控制器、测温电路、显示电路、控制电路、报警及指示电路。
《2024年基于51单片机的温度控制系统设计与实现》范文
《基于51单片机的温度控制系统设计与实现》篇一一、引言随着科技的发展,温度控制系统的应用越来越广泛,其精确性和稳定性对于许多领域都至关重要。
本文将详细介绍基于51单片机的温度控制系统的设计与实现过程,包括系统架构、硬件设计、软件设计以及实验结果等方面。
二、系统架构设计本系统以51单片机为核心控制器,通过温度传感器实时监测环境温度,并根据设定的温度值进行控制。
系统主要由温度传感器、51单片机、执行器(如加热器或制冷器)以及上位机(如PC)等部分组成。
其中,温度传感器负责实时采集环境温度,51单片机负责处理温度数据并控制执行器进行温度调节,上位机则用于设置目标温度并监控系统状态。
三、硬件设计1. 温度传感器:选用高精度的数字温度传感器,将环境温度转换为数字信号,便于单片机处理。
2. 51单片机:选用性能稳定、功能强大的51单片机作为核心控制器,负责处理温度数据并控制执行器。
3. 执行器:根据实际需求选择加热器或制冷器等执行器,负责调节环境温度。
4. 电源电路:为系统提供稳定的电源,保证系统正常运行。
5. 通信接口:预留与上位机通信的接口,便于设置目标温度和监控系统状态。
四、软件设计1. 初始化程序:对51单片机进行初始化设置,包括时钟、I/O口等。
2. 数据采集程序:通过温度传感器实时采集环境温度,并将数据存储在单片机的内存中。
3. 数据处理程序:对采集到的温度数据进行处理,包括滤波、计算温差等操作。
4. 控制算法程序:根据处理后的温度数据和设定的目标温度,采用合适的控制算法(如PID控制算法)计算执行器的输出值。
5. 执行器控制程序:根据控制算法计算出的输出值,控制执行器进行相应的动作,调节环境温度。
6. 通信程序:通过通信接口与上位机进行通信,接收目标温度值并反馈系统状态。
五、实验结果与分析经过实际测试,本系统能够实时采集环境温度,并根据设定的目标温度进行精确控制。
在各种环境下,系统的响应速度和稳定性均表现良好。
基于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触发回路和主回路如图所示为一晶闸管触发电路。
基于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日一、概述随着嵌入式技术、计算机技术、通信技术的不断发展与成熟。
控制系统以其直观、方便、准确、适用广泛而被越来越广泛地应用于工业过程、空调系统、智能楼宇等。
恒温控制系统,控制对象是温度。
温度控制在日常生活及工作领域应用的相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制,而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。
针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。
单片机综合设计实验
单片机综合设计实验一、实验目的通过单片机的综合设计实验,加深对单片机原理和应用的理解,练习使用单片机进行控制和数据处理的能力。
二、实验内容设计一个模拟温度控制系统,要求能够通过单片机读取温度传感器的温度值,并根据设定的目标温度进行判断和控制,使得温度值稳定在目标温度附近。
即实现一个简单的闭环温度控制系统。
三、实验器材1.单片机:使用8051单片机2.温度传感器:使用LM35温度传感器3.显示器:使用数码管显示器4.控制器:使用电热器作为温度控制的对象,通过控制电热器的加热时间和加热功率来控制温度四、实验步骤1.连接电路将LM35温度传感器与单片机相连接,使得单片机能够读取到温度传感器的模拟信号。
将单片机与数码管显示器以及电热器相连接,使得单片机能够通过数码管显示温度值,并能够控制电热器的加热时间和加热功率。
2.编写程序根据实验要求,设计一个闭环温度控制系统的程序。
通过单片机读取温度传感器的温度值,并与设定的目标温度进行比较,根据比较结果控制电热器的加热时间和加热功率。
同时,将温度值通过数码管进行显示,使得操作人员能够实时监控温度的变化。
3.调试验证五、实验结果经过调试验证,实验结果表明设计的温度控制系统能够达到预期的效果。
单片机能够准确读取温度传感器的温度值,并根据设定的目标温度进行判断和控制,使得温度能够稳定在目标温度附近。
六、实验总结通过这次单片机综合设计实验,我对单片机的原理和应用有了更深入的理解。
通过实际操作和编程,我学会了如何连接温度传感器和数码管显示器,以及如何通过单片机对温度进行控制和显示。
同时,我还锻炼了解决问题和调试的能力,提高了实际应用技能。
这次实验不仅提供了实践的机会,也巩固了我对单片机的相关知识,为今后的学习和应用打下了坚实的基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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控制参数级算法,实现对温度的自动控制。
闭环温度控制系统原理图如下: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_te mperature);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;//运行定时器1 PT0 = 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_tempera ture);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_temper ature);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系列单片机直流电机闭环调速实验劳动强度大。