北信科 温度检测与控制电路设计.docx
- 文档编号:10346279
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:24
- 大小:2.97MB
北信科 温度检测与控制电路设计.docx
《北信科 温度检测与控制电路设计.docx》由会员分享,可在线阅读,更多相关《北信科 温度检测与控制电路设计.docx(24页珍藏版)》请在冰点文库上搜索。
北信科温度检测与控制电路设计
课程设计报告
课程名称综合电子设计
题目温度检测与控制电路设计
指导教师
设计起止日期2013.4.22---2013.5.3
系别自动化
专业自动化
学生姓名
班级/学号
成绩
摘要
随着社会的发展和科技的进步以及测温仪器在各个领域的应用,智能化是现代温控系统发展的主流方向,特别是近年来,温度控制系统已应用到生活的各个方面,但是温度控制一直是一个热门领域,是与人们息息相关的问题。
温度是科学技术中一个基本物理量。
在工业生产等许多领域,温度常常是表征对象和过度状态的重要物理量。
各个工程应用领域对温度的要求越来越高。
在众多的生产过程中,对温度的控制效果直接影响到了产品的质量以及成本等问题。
因此及时、准确的得到温度信息并进行可靠、准确、快速的控制,同时兼顾到系统灵活性、方便性、以及便于数据的读取与安装是一个非常重要的环节。
本文通过温度传感器LM35CZ对电阻加热器的温度进行测量。
其中以STC5A60S2单片机为核心部件,外加温度采集电路、串口通讯电路、加热控制电路等。
并通过LED界面显示,以容易控制的功率电阻作为加热器件并以PWM控制加热程度。
此次课设中既可以对当前温度进行实时显示又可以对温度进行控制,以使达到用户需要的温度,并使其恒定在这一温度。
人性化的界面设计使设置温度简单快速,实时曲线的显示方式具有直观性。
建立在PID理论上的控制算法,使控制精度完全能满足此系统的要求。
通过对系统软件和硬件设计的合理规划,发挥单片机自身集成众多系统级功能单元的优势,在不减少功能的前提下有效降低了硬件成本,系统操控简便。
一、功能介绍
1、基本要求
(1)功能要求
①采用模拟温度传感器设计温度检测电路,并完成模拟信号调理;
②采用Multisim(或Protues)软件进行模拟电路仿真;
③采用51单片机(内置ADC)采集温度信号,再通过数码管显示温度数值;
(2)技术指标
①温度测试范围:
-40℃~110℃
②温度测试精度:
±2℃
③温度测试分辨率:
0.2℃
④温度显示方式:
4位数码管显示,第1位数码管显示符号(零下温度显示“—”号,零上及低于100℃不显示,100℃以上显示“1”),第2位数码管显示温度的十位数值,第3位数码管显示温度的个位数值及小数点,第4位数码管显示温度测量值的小数点后第一位数值。
2、拓展要求
(1)具有温度检测和温度控制两种工作状态,并可手动切换工作状态;
(2)环境温度检测:
功能及技术指标同基本要求;
(3)加热器温度控制:
可通过单片机控制加热器进行温度自动调节,并可设置和显示温度恒定数值,控制对象为大功率电阻;
(4)可通过按键调整系统状态和功能:
•K1:
显示控制:
循环显示当前检测的温度数值和设置的恒定温度数值;
•K2:
状态控制:
温度测试状态(点亮L1指示灯),温度控制状态(点亮L2指示灯),恒定温度
设置状态(点亮L3指示灯);
•K3:
减小温度设置数值(设置状态有效);
•K4:
增大温度设置数值(设置状态有效)。
(1)温度超限时,点亮超限报警灯(L4),并鸣响蜂鸣器。
3、技术指标
①温度控制数值可在40℃~70℃之间设置;
②温度控制精度:
±5℃;
③研究合适的温度控制算法。
4、限定条件
.模拟电路电源:
±12V;
.电路设计软件:
AltiumDesigner(或ProtelDXP);
.单片机开发软件:
KeilUV3v8.02;
.电路仿真软件:
Multisim或Proteus。
5.主要器件:
温度传感器:
LM35CZ;
运放:
LM324或LM358任选其一;
单片机模块:
含STC5A60S2单片机1片、4位数码管、4个独立按键、4个LED灯、下载线;
加热单元:
220Ω/1W电阻;
单片机开发板,集成温度传感器,运放等元器件;
PC机,信号源,万用表,示波器,稳压电源,模拟电路实验箱。
6.除单片机模块外,其它电路在一块万用板上焊接好并调试正常,通过杜邦头跳线与单片机模块连接。
二、方案论证与比较
图1.系统总体设计方框图
1. 控制器
方案一:
采用模拟运算放大器组成PID控制系统。
对于水温控制是足够的。
但要附加显示、温度设定等功能,要附加许多电路,稍显麻烦。
方案二:
采用ATMEL公司的STC5A60S2作为系统控制器。
单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且其功耗低、体积小、技术成熟和成本低等优点。
基于以上分析拟订方案二,由基于以上分析以及现有器件限制选择方案一作为控制核心,对温度采集和实时显示以及加热装置进行控制。
这样的系统搭建简单,稳定并且调试方便。
2.检测模块
温度测量方法可分为接触式和非接触式两类,接触式的测温方法是基于物体的热交换现象。
选定某一测温器,与被测物体相接触,进行充分的热交换,待两者温度一致时,测温器输出的大小即反映被测温度的高低。
接触式测温的优点是简单、可靠、测量精度高;缺点是测温时有较大的滞后,对运动物体测温较困难,测温器易影响被测对象的温度场分布,测温上限受到测温器件材料性质的限制,故所测温度不能太高。
温度传感器是把温度转换为电量的测温器。
常用的温度传感器有:
金属热电阻和半导体热敏电阻、热电偶、PN结型传感器和集成温度传感器、石英晶体温度传感器、涡流式温度传感器、电容式温度传感器等。
采用集成温度传感器测量温度,具有省电、体积小、线性好、成本低等优点,而且能满足一般测温工作(-50℃~+150℃)的需要,因此本设计使用集成温度传感器,型号为LM35(电压输出型)。
3.加热装置
根据题目,对加热装置控制模块有以下两种方案:
方案一:
采用电阻来控制加热器有效功率。
PWM波加在晶体管,以其周期性的通断来控制加热回路的强电,这种方式能够保证系统的有良好的控制精度。
该方案加热电路简单,可以实现功率的连续调节,因此响应速度快,控制精度也高。
方案二:
采用继电器控制。
使用继电器可以很容易实现地通过较高的电压和电流,在正常条件下,工作十分可靠。
继电器无需外加光耦,自身即可实现电气隔离。
这种电路无法精确实现电热丝功率控制,电热丝只能工作在最大功率或零功率,对控制精度将造成影响。
基于以上分析以及现有器件限制选择方案一,采用PWM控制功率电阻方案可以省去众多驱动电路和抗干扰电路,同时PWM方式也比较适合PID算法的结果输出。
4.输入输出外设
方案一:
采用液晶显示屏和通用矩阵键盘。
液晶显示屏(LCD)具有功耗小、轻薄短小无辐射危险,平面直角显示以及影象稳定不闪烁,可视面积大,画面效果好,抗干扰能力强等特点。
但由于只需显示三位温度值,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器资源占用较多,其成本也偏高。
方案二:
采用四位LED七段数码管分别显示温度的百位、十位、个位和小数位。
按键采用单列四按键进行温度设定。
数码管具有:
低能耗、低损耗、低压、寿命长、耐老化,对外界环境要求较低。
同时数码管采用BCD编码显示数字,程序编译容易,资源占用较少。
基于以上分析以及现有器件限制选择方案二。
5.综上所述
可以得到最终方案为:
系统采用了以单片机STC5A60S2为控制核心,以PWM控制晶体管通断来温度的加热,并用温度传感器LM35进行温度的采集,用四位LED七段数码管,实现了对加热装置温度的闭环控制。
6.系统软硬件
微控制器为整个系统的核心,完成数据的采集,控制,以及输出,并完成LED的显示。
温度传感器LM35作为温度测量部分,采集实时温度。
软件部分:
由系统初始化,温度采集,参数计算,控制输出,键盘处理,温度显示,LED显示等功能子函数构成。
三、单元电路设计
图2系统方案设计
3.1温度信号转化为电压信号部分
1、本部分应用了集成温度传感器LM35。
测温范围为-55℃~+150℃。
图3 LM35
2.电阻值R1的计算
R1=−VS/50μA=240k
3.2信号采样及运放电路
温度采样及处理电路主要实现对电阻加热器的温度进行检测。
检测的精度决定了控制的精度,所以温度测量电路,是关系到整个控制精度的核心电路。
在一般的温度检测电路中,采用恒流源或恒压源,,其实质是采用恒流源或恒压源对温度传感器供电,只是在最后消除电压或电流的影响,本传感器采样电路如下所示:
图4.信号采样处理电路
图4中,实际使用R5=5.9K,R6=R7=10K,R8=27k。
LM35CZ输出电压范围是-0.4v到1.1v,由于电压很小,在测量Vout时,若分出少许电压,测量值都会偏差很大,所以在Vout后面加一电压跟随器,测量电压时稳定,同时也防止前面所接电路对后续电路的影响,即起到一个隔离的作用。
由于要求温度测量的范围为-40℃~110℃,可得Vout的变化范围是-0.4V~1.1V。
为了提高A/D转换精度,避免干扰等因素,要扩大因温度引起的电压变化,所以在Vout输出端加一加减比例运算电路,加0.4并且放大为3.3倍。
调节电位器W3,使得
Vtemp=(0.4+Vout)3.3V
得到最终输入给单片机的电压信号范围为:
0V~4.95V
3.3电源电路的设计
从电压源引入±12V的电压,通过双刀双掷开关控制。
图5电源电路
图5中两个二极管单项导通特性用来保证电压的稳定,发光二极管来显示正确的电流方向时即可发光,并串联电阻R1.其阻值根据发光二极管两端的电压和电流决定,发光二极管两端电压1.5v,电流为5mA,则电阻
R1=(24-1.5)/5=4.7k.
图6电源电路
图6中的TL431是一个有良好的热稳定性能的三端可调分流基准电压源。
它的输出电压用两个电阻就可以任意地设置到从Vref(2.5V)到36V范围内的任何值。
该器件的典型动态阻抗为0.2Ω,在很多应用中可以用它代替齐纳二极管,例如,数字电压表,运放电路、可调压电源,开关电源等等。
特点:
可编程输出电压为36V,电压参考误差:
±0.4%,典型值@25℃(TL431B),低动态输出阻抗,典型0.22Ω,负载电流能力1.0mAto100mA,等效全范围温度系数50ppm/℃典型,温度补偿操作全额定工作温度范围,低输出噪声电压。
根据TL431的特性电压是5V,电流是10mA,则电阻
R2=(12-5)V/10mA=700
输出电压Vref有以下公式得出:
此电压作为参考电压,输入到单片机中。
输出电压Vref0是接到运放上的电压,其电压的大小由滑动变阻器W2调节,使其输出电压为0.4V。
3.4电阻加热电路
PWM控制——脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。
理论基础:
冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。
冲量指窄脉冲的面积。
效果基本相同,是指环节的输出响应波形基本相同。
低频段非常接近,仅在高频段略有差异。
图7 形状不同而冲量相同的各种窄脉冲
面积等效原理:
分别将如图1所示的电压窄脉冲加在一阶惯性环节(R-L电路)上,如图7a所示。
其输出电流i(t)对不同窄脉冲时的响应波形如图7b所示。
从波形可以看出,在i(t)的上升段,i(t)的形状也略有不同,但其下降段则几乎完全相同。
脉冲越窄,各i(t)响应波形的差异也越小。
如果周期性地施加上述脉冲,则响应i(t)也是周期性的。
用傅里叶级数分解后将可看出,各i(t)在低频段的特性将非常接近,仅在高频段有所不同。
电阻加热电路包括前级的PWM输出处理电路和后级的电阻加热电路。
如图8所示:
图8电阻加热电路
由于系统加热功率不大,故我们采用PWM波控制晶体管8050,使其在一定周期内按占空比通断直流电,来实现功率电阻精确加热的目的。
本实验采用加热器为一只220欧姆1W的功率电阻。
单片机的PWM输出高电平为5V,若不加限流电阻会导致电流过大,温度过高而烧坏晶体管,所以通过2K的限流负载驱动晶体管,当PWM为高时,晶体管导通,电阻加热;当PWM输出低时,晶体管断开,停止加热。
通过控制PWM的占空比则可控制加热电阻两端的平均电压(可调范围为:
0-5V),进而对温度进行微调。
3.5单片机最小系统
CEPARK51最小系统板V2.0简介
1.功能标注
图9单片机最小系统
2.跳线说明
J2——流水灯模块使能跳线。
使用流水灯时,短接J2。
J4——EA脚状态选择端。
J4跳接上时,EA脚加高电平。
使用STC89系列单片机时,断开J4。
这是因为STC单片机内部以及上拉了EA引脚。
使用AT89S系列单片机时,短接J4。
J7——数码管模块使能跳线。
使用数码管显示的时候,请短接J7。
J9——蜂鸣器模块跳线。
使用蜂鸣器的时候,请短接J9。
3.功能简介
1、同时支持AT89S系列、STC89系列、STC12C5A60S2芯片、SST89E51RD仿真芯片。
2、板载CP2102USB转串口芯片,一根USB线就能能够轻松实现供电、下载程序、串口通信三大功能。
3、原装进口CP2102转换芯片与大多开发板使用的PL2303芯片相比,价钱贵几倍,但是性能更加稳定,下载更流畅。
4、主板采用锁紧座,能够很方便的更换芯片。
5、IO口全部引出,方便外接模块。
6、板载自恢复保险丝,输入电流过大时,自动断电,有效保护芯片不被烧毁。
电路正常后,保险丝还能自动恢复。
7、电源+5V、3V3、GND全部引出,方便外围模块供电使用。
8、板载ISP下载接口,支持AT89S系列单片机ISP下载程序。
9、板载四位一体数码管模块,方便显示。
10、板载4个LED灯,可作为流水灯以及状态指示灯使用。
11、板载蜂鸣器模块。
是电子琴实验、报警提醒等开发中的必备模块。
12、板载液晶12864接口,背光对比度可调。
13、板载液晶1602接口,背光对比度可调。
14、板载晶振插座。
使用优质的**圆孔插座,可以根据需要自由更换晶振。
15、板载DS18B20温度传感器接口,即插即用。
16、板载4个独立按键。
17、板载复位按键。
18、板载电源开关、电源指示灯。
19、模块添加跳线,有效防止模块使用冲突。
四、硬件连接
图10硬件连接
第一步:
将随板的铜柱螺母固定在学习板四角四个孔上,将学习板支撑起来,防止底部线路因桌面有导电物质导致短路。
第二步:
插入主芯片,注意芯片方向,带凹槽的一端朝上。
第三步:
选择11.0592M晶振(或者根据自己程序的需要选择其他值),插到板子晶振插座位。
第四步:
使用USB延长线将计算机和学习板USB口连接起来。
然后按下电源开关,看看电源指示灯是否点亮,如果指示灯点亮了,说明学习板供电正常,接着进行下一步。
第五步:
安装驱动
五、下载程序
1、打开下载软件STC-ISP,按照下图所示进行设置
图11
注意:
根据自己电脑上的串行口选择串行口。
步骤:
第一步:
芯片型号选择STC89C52RC
第二步:
选择端口号,要与设备管理器中提示的端口号一致。
这里的是com9。
第三步:
波特率可以选择默认值:
最高115200,最低2400。
如果下载失败可以尝试较小的波特率。
第四步:
其他选项选择默认值,不要随意更改。
2、点击打开程序文件加载程序
图12
3、点击download下载程序,当信息框出现如下提示时给MCU上电
图13
当出现如下提示时表明下载程序成功
图14
整个系统的硬件电路如下:
图15电路图
六、软件设计
1、在程序的设计过程中,需要使用流程图表达软件设计思路及运行过程,使用软件组成框图表示软件模块组成。
图16软件顶层流程图
2、软件组成框图
主要包括主控程序、硬件接口程序、人机接口程序、处理算法程序、通用模块程序等,每个程序又由若干子程序或模块组成。
软件的部分组成框图。
图17软件组成框图
#include"stc12c5a.h"//头文件在STC公司主页上下载
#include"stdio.h"
#include"intrins.h"
#include"config.h"
uint8codeLED_Disp[]={0xC0,0xF9,0xA4,0xB0,
0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,
0xC6,0xA1,0x86,0x8E,0xBF};
sfrLedPort=0x80;//段选段P0
sfrLedCtrl=0xa0;//位选段P2
unsignedcharDisBuff[4];
unsignedcharTxd_data;
unsignedcharRxd_data;
floatm=3.33;
//------------------------------------------------------------------------------
voidAD_init();
voidserial_init();
voidLED_Disp_Seg7();
voidmDelay(uint16mtime);
voiddelay(unsignedinta);
floatAD_work(unsignedcharchannel);
unsignedintAD_get(unsignedcharchannel);
//------------------------------------------------------------------------------
voidmain()
{
floatad1,ad2;
unsignedinttemp;
AD_init();//A/D转换初始化
serial_init();//串口初始化
while
(1)
{
ad1=AD_work(0);//p10电压
ad2=AD_work(3);//p13电压
ad1=4000*ad1/ad2/m-400;
temp=(int)ad1;
Txd_data=temp%100;
Rxd_data=temp/100;
LED_Disp_Seg7();
//delay(10);//延时约1s
}
}
//----------------------------------------------------------------------------
unsignedintAD_get(unsignedcharchannel)
{
ADC_CONTR=0x88|channel;//开启AD转换10001000即POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS0
_nop_();_nop_();_nop_();_nop_();//要经过4个CPU时钟的延时,其值才能够保证被设置进ADC_CONTR寄存器
while(!
(ADC_CONTR&0x10));//等待转换完成
ADC_CONTR&=0xe7;//关闭AD转换,ADC_FLAG位由软件清0
return(ADC_RES*4+ADC_RESL);//返回AD转换完成的10位数据(16进制)
}
//----------------------------------------------------------------------------
floatAD_work(unsignedcharchannel)
{
floatAD_val;//定义处理后的数值AD_val为浮点数
unsignedchari;
for(i=0;i<100;i++)
AD_val+=AD_get(channel);//转换100次求平均值(提高精度)
AD_val/=100;
AD_val=(AD_val*50)/1024;//AD的参考电压是单片机上的5v,所以乘5即为实际电压值
returnAD_val;
}
//----------------------------------------------------------------------------
voiddelay(unsignedinta)//延时约1ms
{
unsignedinti;
while(--a!
=0)
for(i=600;i>0;i--);//1T单片机i=600,若是12T单片机i=125
}
//----------------------------------------------------------------------------
voidserial_init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;//设置9600波特率
SCON=0x50;//串口方式1,允许接收
TR1=1;
}
//----------------------------------------------------------------------------
voidAD_init()
{
P1ASF=0x09;//P1口全部作为模拟功能AD使用
ADC_RES=0;//清零转换结果寄存器高8位
ADC_RESL=0;//清零转换结果寄存器低2位
ADC_CONTR=0x80;//开启AD电源
delay
(2);//等待1ms,让AD电源稳定
}
voidmDelay(uint16mtime)
{
for(;mtime>0;mtime--)
{
uint8j=244;
while(--j);
}
}
voidLED_Disp_Seg7()//数码管显示程序
{
LedCtrl=LedCtrl|0xf0;
if(Rxd_data<0)
{DisBuff[3]=16;Rxd_data=-Rxd_data;}
else
{
DisBuff[3]=Rxd_data%100/10;//千位数
}
DisBuff[0]=Txd_data%10;//取个位数
DisBuff[1]=Txd_data%100/10;//取十位数
DisBuff[2]=Rxd_data%10;//百位数
LedPort=LED_Disp[DisBuff[0]];
LedCtrl=LedCtrl&0x7f;
mDelay(5);
LedCtrl=LedCtrl|0xf0;
LedPo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北信科 温度检测与控制电路设计 温度 检测 控制电路 设计