嵌入式设计基于热敏电阻的数字温度计设计院(系)专业班级指导老师学生姓名成绩2015年7月10日目录第一章绪论.......................................................1第二章设计要求及构思.............................................22.1设计要求......................................................22.2设计构思......................................................2第三章总体程序流程图.............................................4第四章原理框图....................................................54.1PT100铂热电阻:...............................................54.2信号放大电路..................................................54.4主芯片电路图..................................................74.5四位数码管...................................................8第五章仿真电路图..................................................9第六章心得体会...................................................11参考文献..........................................................12附录程序代码....................................................131第一章绪论随着以知识经济为特征的信息化时代的到来人们对仪器仪表的认识更加深入,温度作为一个重要的物理量,是工业生产过程中最普遍,最重要的工艺参数之一。随着工业的不断发展,对温度的测量的要求也越来越高,而且测量的范围也越来越广,对温度的检测技术的要求也越来越高,因此,温度测量及其测量技术的研究也是一个很重要的课题。目前温度计按测使用的温度计种类繁多,应用范围也比较广泛,大致可以包括以下几种方法:1,利用物体热胀冷缩原理制成的温度计2,利用热电效应技术制成的温度检测元件3,利用热阻效应技术制成的温度计4,利用热辐射原理制成的高温计5,利用声学原理进行温度测量本系统的温度测量采用的就是热阻效应。温度测量模块主要为温度测量电桥,当温度发生变化时,电桥失去平衡,从而在电桥输出端有电压输出,但该电压很小。将输出的微弱电压信号通过OP07放大,将放大后的信号输入AD转换芯片,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。2第二章设计要求及构思2.1设计要求1.系统硬件设计(1)使用热敏电阻PT100;(2)单片机采用MCS51系列;(3)LED数码管显示温度。2.系统软件设计(1)温度可以通过PT100热敏电阻实调程序;(2)AD转换芯片检测温度的模拟量程序;(3)LED显示程序;3.系统功能(1)测量温度范围−50℃~110℃;(2)精度误差小于0.5℃;(3)LED数码管显示。2.2设计构思(1)本题目使用铂热敏电阻PT100,其阻值会随着温度的变化而改变,PT100后的100即表示它在0℃时阻值为100欧姆,在110℃时它的阻值约为142.29欧姆,在-50℃它的电阻值为80.31欧姆。厂家提供有PT100在各温度下电阻值值的分度表,在0℃到110℃电阻的变化率为(142.29-100)/110≈0.3845Ω/℃,在-50到0℃电阻的变化率为(100-80.31)/50=0.3938Ω/℃。向PT100输入稳恒电流,使PT100输出的电压与其内部电阻成线性关系变化。(2)其输出的的电压是模拟信号,需要进行模数转换后才能被有效显示。查找相关模数转换元器件后暂选ADC0808进行模数转换,其有效电压为0~5V。向PT100输入稳恒电流,再通过A/D转换后测PT100两端电压,即得到PT100的电阻值,进而算出当前的温度值。(3)由于0.385Ω相对于100多欧姆的电阻来说很小,即温度变化1℃时输出的电压变化量很小,这么小的电压不能改变ADC0808输出的一个数字信号。所以要对PT100输出的电压进行放大。放大倍数是根据最大测量温度确定的,即110℃时输出的电压不能超过+5V,否则测量不到110的温度,最终经调试后取放大倍数为36。再将放大后的电压输入ADC0808模数转换器。(4)综上所述。采用2.49V的电压与运算放大器搭建成的恒流源对PT100进行供电,然后用运算放大器OP07搭建的同相放大电路将其电压信号放大36倍后输入到ADC0808中。ADC0808根据输入0到5V的电压,转换成对应的十进制0到255数字。再利用电阻变化率的特性,计算出当前温度值,数码管直接显示温度。3由于本设计要求测量的最大温度为110℃,所以本人设计时使+5V的电压对应温度110℃。通过电压变化量求出电阻的变化量,再通过电阻变化率的特性求出温度的变化量,然后用110与温度变化量相比较即可求得当前的温度。4第三章总体程序流程图0.2ms开始定时器初始化Pt100检测温度ANCEWENDU给ADC0808一个时钟脉冲0.2msPt100电阻变化电压变化仪表放大器放大电压ADC0808模数转换0~+5V取出模数转换后的值数码管显示温度0~255计算温度5第四章原理框图4.1PT100铂热电阻:E-S-S+E+88.00E+S+S-E-RT1RTD-PT100图4-1PT100铂热电阻pt100是铂热电阻,它的阻值会随着温度的变化而改变。PT后的100即表示它在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。4.2信号放大电路:IN0E+E-S+S-XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.6/CEX37P1.7/CEX48P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U18051+88.8VoltsR22.55k+12V-12VR310kR410kR510k3267481U5OP073267481U6OP073267481U7OP07R610k3267481U8OP07R71kR81kR912kR1012k+12-12V+12V-12V+12V-12V+5V+2.49V+88.8Volts+88.8Volts图4-2放大电路图采用OP07搭建成仪表运算放大器,Vout=(V2-V1)x(1+2R5/R4x(R9/R7),其中R5=R6,R7=R8,R9=R10。本设计的放大倍数为36。4.3A/D转换电路V1V26A7A6A5A4A3A2A1A0D3D1D2D1IN0D4OUT121ADDB24ADDA25ADDC23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE22U2ADC0808图4-3ADC0808电路图ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。模拟信号输入0到5V电压,8位数字输出端口输出二进制00000000到11111111,即十进制0到255,所以分辨率为5V/255≈0.0196V。例如输入的信号为+5V电压时,其输出为数字255。ADC0808芯片有28条引脚,采用双列直插式封装,如图4-3所示。各引脚功能如下:1~5和26~28(IN0~IN7):8路模拟量输入端。8、14、15和17~21:8位数字量输出端。22(ALE):地址锁存允许信号,输入,高电平有效。6(START):A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。7(EOC):A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。9(OE):数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。12(VREF(+))和16(VREF(-)):参考电压输入端11(Vcc):主电源输入端。13(GND):地。23~25(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路ADC0808/0809工作时序图如下:7图4-4ADC0808转换时序示意图当START上收到一个启动转换命令(正脉冲)后,8位A/D转换器开始对输入端的信号进行转换,100us后转换结束,转换结果D(0~2^8-1)存入三态输出锁存缓冲器,转换结束信号EOC由低电平变为高电平,通知CPU可以读结果。CPU可用查询方式(将EOC信号接至一条I/O线上)或中断方式(EOC信号作为中断请求信号导入中断逻辑)了解A/D转换过程是否结束。4.4主芯片电路图A0A1A2A3A4A5A6A7D1D2D3D4XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.6/CEX37P1.7/CEX48P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U18051C110uR110k22pX1CRYSTAL22p图4-58051电路图采用8051单片机作为主芯片,由于P0口内部没有上拉电阻,所以P0口作为输出要接上拉电阻。84.5四位数码管图4-6七段四位数码管图本设计最大显示为三位小数和一位小数,所以采用七段四位共阴数码管,其中段接8051的P0口,位接8051的P2.0~P2.3口。9第五章仿真电路图图5-1温度为110℃显示的温度图5-2温度为112℃显示的温度本设计测量的最大温度为110℃,当温度大于110℃时依然显示为110℃。这是因为温度为110℃时输入ADC0808的电压为最大值,即+5V,当温度大于110℃时,输入ADC0808的有效电压依然为+5V。图5-3温度为91度时显示的温度随机选择-50~110的一个温度,实际为91的温