数显温度测量仪综述.docx
- 文档编号:3502072
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:14
- 大小:374.84KB
数显温度测量仪综述.docx
《数显温度测量仪综述.docx》由会员分享,可在线阅读,更多相关《数显温度测量仪综述.docx(14页珍藏版)》请在冰豆网上搜索。
数显温度测量仪综述
学号XX
电子系统综合设计
设计说明书
数字显示温度测量仪
起止日期:
2012年11月10日至2012年12月1日
学生姓名
XX
班级
XX
成绩
指导教师(签字)
计算机与信息工程学院
2012年12月1日
第一章设计方案
这次课程设计的目的是设计数显温度测量仪。
要求为:
测温范围-50℃~150℃;采用八位单片机作为控制芯片;测温传感器采用PT100;对应温度范围要求变换为0~5V;用四位数码显示,显示精度0.1℃;要求可通过键盘设置参数如:
温度上下限报警值;采用线性电源,AC220V±15%供电。
下面的设计是采用单片机控制来实现数显温度测量仪的设计,设计思路如图1所示:
图1数显温度测量仪的单片机控制原理框图
本设计采用pt100热电阻作为温度采集的传感器,把采集到的温度直接送到atmega16单片机,经过atmega16单片机处理后送到显示器,显示器将显示采集的温度,最后将其显示在四位数码管上。
加入键盘实现设定温度上下限和控制温度值。
第二章数显温度测量仪的硬件设计
2.1单片机控制模块
本系统要求实时显示检测值,因涉及到一些计算及BCD转化的处理,以及考虑到功耗等问题,所以选择ATmega16单片机作为控制器的核心。
2.1.1ATmega16简介
ATmega16是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。
由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
ATmega16AVR内核具有丰富的指令集和32个通用工作寄存器。
所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。
ATmega16是以Atmel高密度非易失性存储器技术生产的。
片内ISPFlash允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。
引导程序可以使用任意接口将应用程序下载到应用Flash存储区(ApplicationFlashMemory)。
在更新应用Flash存储区时引导Flash区(BootFlashMemory)的程序继续运行,实现了RWW操作。
通过将8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATmega16成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。
ATmega16具有一整套的编程与系统开发工具,包括:
C语言编译器、宏汇编、程序调试器/软件仿真器、仿真器及评估板。
ATmega16有以下特点:
16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。
2.1.2单片机接线
如图2所示的是单片机最小系统电路。
温度传感器将采集到的模拟信号经放大电路放大后,送到Atmega16单片机进行处理。
图2单片机最小系统电路
2.2传感器检测和数据采集电路
2.2.1PT100简介
PT100是一种广泛应用的测温元件,在-50℃—600℃℃范围内具有其他任何温度传感器无可比拟的优势,包括高精度、稳定性好、抗干扰能力强等。
铂电阻温度传感器是利用其电阻和温度成一定函数关系而制成的温度传感器,由于其测量准确度高、测量范围大、复现性和稳定性好等,被广泛用于中温(-200℃—650℃)范围的温度测量中。
由于铂电阻的电阻值与温度成非线性关系,所以需要进行非线性校正。
校正分为模拟电路校正和微处理器数字化校正,模拟校正有很多现成的电路,其精度不高且易受温漂等干扰因素影响,数字化校正则需要在微处理系统中使用,将Pt电阻的电阻值和温度对应起来后存入EEPROM中,根据电路中实测的AD值以查表方式计算相应温度值。
2.2.2数据采集电路
下面分别对桥式电路和恒流源式电路的原理在设计过程中应注意事项进行说明。
(1)桥式测温电路
Pt电阻接法采用三线制,优点是将PT100的两侧相等的的导线长度分别加在两侧的桥臂上,使得导线电阻得以消除,如图3所示为三线制桥式测温电路。
测温原理:
电路采用TL431和电位器VR1调节产生4.096V的参考电源;采用R1、R2、VR2、Pt100构成测量电桥(其中R1=R2,VR2为100Ω精密电阻),当Pt100的电阻值和VR2的电阻值不相等时,电桥输出一个mV级的压差信号,这个压差信号经过运放LM324放大后输出期望大小的电压信号,该信号可直接连AD转换芯片。
差动放大电路中R3=R4、R5=R6、放大倍数=R5/R3,运放采用单一5V供电。
设计及调试注意点:
①同幅度调整R1和R2的电阻值可以改变电桥输出的压差大小;
②改变R5/R3的比值即可改变电压信号的放大倍数,以便满足设计者对温度范围的要求
③放大电路必须接成负反馈方式,否则放大电路不能正常工作。
④VR2也可为电位器,调节电位器阻值大小可以改变温度的零点设定,例如Pt100的零点温度为0℃,即0℃时电阻为100Ω,当电位器阻值调至109.885Ω时,温度的零点就被设定在了25℃。
测量电位器的阻值时须在没有接入电路时调节,这是因为接入电路后测量的电阻值发生了改变。
⑤理论上,运放输出的电压为输入压差信号×放大倍数,但实际在电路工作时测量输出电压与输入压差信号并非这样的关系,压差信号比理论值小很多,实际输出信号为:
4.096*(RPt100/(R1+RPt100)-RVR2/(R1+RVR2))
式中电阻值以电路工作时量取的为准。
⑥电桥的正电源必须接稳定的参考基准,因为如果直接VCC的话,当网压波动造成VCC发生波动时,运放输出的信号也会发生改变,此时再到以VCC未发生波动时建立的温度-电阻表中去查表求值时就不正确了。
图3三线制桥式测温点路
(2)恒流源式测温电路
采样电路采用恒流源式测温电路。
图4为恒流源式测温电路。
测温原理:
通过运放U1A将基准电压4.096V转换为恒流源,电流流过Pt100时在其上产生压降,再通过运放U1B将该微弱压降信号放大(图中放大倍数为10),即输出期望的电压信号,该信号可直接连AD转换芯片。
然后根据虚地概念“工作于线性范围内的理想运放的两个输入端同电位”,运放U1A的“+”端和“-”端电位V+=V-=4.096V;假设运放U1A的输出脚1对地电压为Vo,根据虚断概念(0-V-)/R1+(Vo-V-)/RPt100=0,因此电阻Pt100上的压降VPt100=Vo-V-=V-*RPt100/R1,因V-和R1均不变,因此图3.3虚线框内的电路等效为一个恒流源流过一个Pt100电阻,电流大小为V-/R1,Pt100上的压降仅和其自身变化的电阻值有关。
图4恒流源式测温电路
2.3放大电路
由于所测出的Pt电阻温度传感器两端的电压信号非常微弱,所以此电压在进行A/D转换之前必须经过放大电路的放大。
由于本系统要求有0.5mA、0.67mA、1.0mA三个不同电流档位的选择输出,A/D转换的电压范围在
1.5V,所以对于Ptl00来讲,当温度在100℃时,其电阻的标准值为138.51Q。
经过计算,Ptl00恒流源在0.5mA、0.67mA、1.0mA三个不同电流档位时放大电路的放大倍数分别为20倍、15倍、10倍左右时可以满足A/D的要求。
如图5所示为数据放大电路。
图5数据放大电路
2.4数显模块
在单片机系统中,常用的显示器有:
发光二极管显示器,简称LED(LightEmittingDiode),液晶显示器,简称LCD(LiquidCrystalDisplay),荧光管显示器。
近年来也开始使用简易的CRT接口,显示一些汉字及图形。
前三种显示器都有两种显示结构;段显示(7段,“米”字型等)和点阵显示(5X8,8X8点阵等)。
而发光二极管显示又分为固定段显示和可以拼装的大型字段显示,此外还有共阳极和共阴极之分等。
三种显示器中,以荧光管显示器亮度最高,发光二极管次之,而液晶显示器最弱,为被动显示器,必须有外光源。
LED显示块是由发光二极管显示字段组成的显示器,有8字段和“米”字段之分。
显示块都有dp显示段,用于显示小数点。
7段LED的字型码,由于只有7个段发光二极管,所以字型码为一个字节。
“米”字段LED的字型码由于有15个段发光二极管,所以字型码为两个字节。
这种显示块有共阳极和共阴极两种。
共阴极LED显示块的发光二极管的阴极连接在一起,通常此公共阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。
同样,共阳板LED显示块的发光二极管的阳极连接在一起,通常此公共阳极接正电压。
由N片LED显示块可拼接成N位LED显示器。
本设计是4位LED显示器的结构,N位LED显示器有N根位选线和8XN(或16XN)根段选线。
根据显示方式的不同,位选线和段线的连接方法也各不相同。
段选线控制显示字符的字型,而位选线则控制显示位的亮、暗;LED显示器有静态显示和动态显示两种显示方式,一是LED静态显示方式、二是动态显示。
LED显示器工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或+5v),每位的段选线(a~dp)分别与一8位的锁存输出相连。
之所以称为静态显示,是由于显示器中的各位相互独立,而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。
也正因为如此,静态显示器的亮度都较高。
电路各位可独立显示,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。
由于各位分别由一个8位输出口控制段选码,故在同一时间里,每一位显示的字符可以各不相同。
这种显示方式接口,编程容易,管理也简单,付出的代价是占用口线资源较多。
而如果用“米”字段的LED显示器,则静态显示方式需要更多的硬件资源。
如果显示器位数增多,则静态显示方式更是无法适应。
因此在显示位数较多的情况下,一般都采用动态显示方式。
本设计用的是阴极驱动。
如图6所示为数码显示电路。
图6数码显示电路
2.5按键模块
温度测量要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。
矩阵键盘采用四条I/O线作为行线,四条I/O线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为4×4个。
这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率
使用的MM74C922是一款4*4键盘扫描IC,它可检测到与之相连的4*4键盘的按键输入,并通过数据输出口将按键相应的编码输出,进一步节省单片机I/O口资源。
温度测量输入键盘的4条行线、列线分别连接到MM74C922的X1-X4、Y1-Y4引脚,MM74C922的数据输出口与单片机的P2口相连,MM74C922的DA引脚经过一个非门连接到单片机的/INT0脚,当MM74C922检测到键盘输入时,DA产生高电平,与之相连的/INT0检测到低电平,给单片机一个中断,单片机从P2口的低四位读入键盘上按下的键值。
具体的键盘电路如图7所示。
图7键盘电路
2.6超时报警模块
超限报警电路如图8所示:
图8超限报警电路
第三章数显温度测量仪软件设计
3.1键盘扫描及上下限程序
voidKB(void)
{
uchari,c;
i=kbvalue();
if(i==10)//给定控制温度
{
while
(1)
{
i=kbvalue();
while(i==15)
{i=kbvalue;
}
ge=kbdata();
c=ge;
delayms(5000);
i=kbvalue();
while(i==15)
{i=kbvalue;
}
shi=kbdata();
GEIDING=shi*10+c;
temp1=GEIDING;
xian1();
i=kbvalue();
if(i==11)
break;
}
if(i==11)
{
while
(1)
{
xian1();
i=kbvalue();
if(i!
=11)
break;
}
}
}
if(i==14)//上限温度
{
while
(1)
{
i=kbvalue();
while(i==15)
{i=kbvalue;
}
ge=kbdata();
c=ge;
delayms(5000);
i=kbvalue();
while(i==15)
{i=kbvalue;
}
shi=kbdata();
HIGH=shi*10+c;
temp1=HIGH;
xian1();
i=kbvalue();
if(i==11)
break;
}
if(i==11)
{
while
(1)
{
xian1();
i=kbvalue();
if(i!
=11)
break;
}
}
}
if(i==12)//开始测温
{
while
(1)
{
ad();
xianshi();
i=kbvalue();
if(i==13)
break;
}
if(i==13)//停止测温
{
while
(1)
{
temp0=0;
xianshi();
i=kbvalue();
if(i!
=13)
break;
}
}
}
}
3.2读键值程序
//读键盘状态
ucharkbvalue(void)
{uchari;
BAOJING=1;
P2=0x0f;
i=P2&0x0f;
returni;
}
//读键值
uintkbdata(void)
{
uchark;
k=kbvalue();
if(k<10)
returnk;
}
3.3A/D转换程序
voidad()
{
START=0;
OE=0;
START=1;
START=0;
if(EOC==0)
{P1=0xff;
OE=1;
delayms(100);
temp0=P1;
OE=0;
}
}
3.4超时报警程序
voidxianshi()
{
P0=0;
temp=temp0*1.0/255*150;
if(temp>GEIDING)
jiare=0;
else
jiare=1;
if(temp>HIGH)
baojing=1;
else
baojing=0;
GE=0;
SHI=1;
P0=table[temp%10];
delayms(10);
GE=1;
SHI=0;
P0=table[temp/10];
}
//显示子程序1
voidxian1()
{
uchara,b;
a=temp1%10;
b=temp1/10;
P0=0;
GE=0;
SHI=1;
P0=table[a];
delayms(10);
GE=1;
SHI=0;
P0=table[b];
}
第四章设计总结及心得
本次设计的数显温度测量仪是基于单片机控制的智能化仪表,它的主要特点有:
(1)仪表适用于-50℃~150℃温度范围的测量并进行温度的实时显示和控制;
(2)选用了集成温度传感器PT100作为测温元件,该元件体积小,精度高,价格低廉。
这样该仪表的成本就低,可以大规模生产;(3)元器件型号与规格经仔细挑选和计算,抗干扰能力强;(4)可以在原有的硬件电路上进行扩展,实现更多的功能。
任何产品都有一个不断改进和完善的过程,只有通过调试和使用,才能知道产品实际存在的问题。
通过本次的课程设计,我掌握了设计一个产品要经过哪些步骤,以及在设计之前一定要全方位的了解设计所用到的材料和器件,以及本设计的可行性及市场前景。
在经过这些周全的考虑之后,才能得心应手的做出符合的产品。
而且也拓宽了自己的思路,提高了自己的专业知识水平,而不只是仅限于书上所学到的那些理论知识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度 测量仪 综述