工控网首页
>

应用设计

>

用单片机进行数字信号处理的温度计

用单片机进行数字信号处理的温度计

2007/11/29 15:23:00
摘要:采用单片机来开发显示仪表,具有测量精度高,功耗低,稳定可靠,成本低等特点。文中介绍了一个数显温度计的设计思路。 关键字:AT89S51单片机 温度传感器AD590 模数转换电路 译码/驱动电路 LED数码管 0.引言 随着计算机的发展,在气象系统中逐渐使用智能化仪表来进行温度的测量,测量仪表精确度的高低,直接影响着居民的生活和企业的经济效益。那么在我国现有经济水平下,使用单片机开发的温度显示仪表是非常适用的,该仪表测量精度高,不仅适用于气象中,还广泛适用于工业以及家庭。 1.系统概述 要设计一个能够数字显示测量温度的温度计,首先要有温度信号采集电路,在本设计中,我们采用的电流型温度传感器AD590来构架温度采集系统,采集到的温度信号经过传感器的处理转换成电信号,但是我们得到的还是比较微弱的模拟号,要对信号进行放大,然后将此模拟信号转换成单片机所能够接受、处理的数字信号,经过程序处理后,单片机输出相应的数字信号,通过译码环节最终用七段LED显示器显示出来。 2.系统组成 温度计电路组成框图如下图所示:
3.系统硬件电路 3.1检测电路 本课题主要是对温度实现控制,而我们要控制温度首先就是对温度进行检测。本设计电路采用了温度传感AD590。AD590(0℃时为273.2μA)产生的电流与绝对温度成正比,温度每增加1℃,其电流增加1μA,它可接收的工作电压为4V~30V,检测的温度范围为-55℃~+150℃。它有非常好的线性输出性能,与其他温度传感器比较,具有灵敏度高、线性好、简便的特点。 3.2放大电路 AD590是通过电流反映温度的,而AD590产生的电流非常小,自然加在电阻两端的电压也非常的小,电压变化的幅度也很小,所以必须通过放大电路对其进行放大,其LM741具有功耗小,性能好等优点,因此我们采用LM741组成比例放大器。本设计中一共使用了3个比例放大器,但是其作用是不一样的。这样既保证了信号的阻抗匹配,又使其相位保持不变。 3.3转换电路 由于单片机只能处理电信号,而温度信号不能直接送给单片机,所以需要通过A/D转换来实现对温度的控制。A/D转换器是用于把模拟量转换成数字量的元器件,把输入的模拟电压直接转换成数字代码,A/D转换器目前应用广泛。本电路中的ADC0804是8位逐次逼近型的A/D转换器,转换速度快、精度较高,能够达到设计的要求,所以决定本设计电路用ADC0804作为模数转换的器件。ADC0804引脚图如下:
3.4处理电路 本设计电路硬件的核心是ATMEL生产的AT89S51单片机,它是一种低功耗/低电压、高性能的8位单片机,片内带有一个4K字节的Flash可编程可擦除只读存储器,它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MCS-51兼容。 3.5译码电路 译码是编码的反过程,是将给定的二进制代码翻译成编码时赋予的原意,完成这种功能的电路称为译码器。A/D转换成的数值经芯片AT89S51处理后,由于转换后的的信号直接控制数码管显示比较复杂,因此我们采用译码器来进行译码显示。 3.6显示电路 由译码器进行处理,就是把机器运行的二-十进制BCD码译成十进制数的代码,并通过显示器显示出来。在本设计电路中显示器采用LED数码管,优点是工作电压较低、体积小、寿命长、工作可靠性高、响应速度快、亮度高,显示清晰。它有共阳极和共阴极之分,由于身边只有共阳极的数码管,所以本设计就使用了共阳极的数码管。 3.7数字温度计整体原理图 通过上面对各个部分电路的分析,其整体原理图见附录。 本设计具有以下特点: 1、采用了微处理技术,可靠性高。 2、采用了微功耗器件,耗电低。 3、可数字显示被测量的温度。 4、数显温度计测量精度高。 技术性能: 1、测温范围为-50℃~150℃。 2、分辨率为0.01℃。 3、产生的信号为0~5V控制信号。 4、误差等级:±1、±0.5、±0.3℃ 5、电源:5V、+12V、-12V直流电。 4.软件设计部分 4.1程序流程框图 本课题设计的温度计是通过信号的多次转换后,最后显示出温度。信号是如何转变成温度显示出来的?是怎么显示的?这都要事先计算好,然后编到程序里。 例如:当ADC0804输入电压为4V,其对应的温度就是80℃。具体如下: 1)、4V经A/D转换后为C8H。 2)、C8H经十进制转换为0200,R4=02,R5=00。 3)、再将此0200×4=0800,R4=08,R5=00。 4)、小数点设在D2上,其分别显示为 0 8 0. 0 D4 D3 D2 D1 由上面硬件电路及控制要求分析可以得出程序流程图,如下图:
3.2、程序及说明 ORG 0000H ANL P1,#0F0H ;清除显示器 START:MOVX @R0,A ;令ADC0804 开始转换/WR=0 WAIT:JB P2.0,ADC ;检测ADC0804转换完成否? ACALL DISP ;调用显示子程序 JMP WAIT ADC: MOVX A,@R0 ;将转换好的数据读入 ACALL L1 ;调用十进制转换子程序 MOV R1,#05H ;显示延时 DISP1: ACALL DISP ;调用显示子程序 DJNZ R1,DISP1 JMP START L1: CLR C MOV R5,#00H ;十进制转换的低位寄存器 MOV R4,#00H ;十进制转换的高位寄存器 MOV R3,#08H ;调整次数 NEXT: RLC A ;将欲转换的最高位移到C中 MOV R2,A ;暂存于R2 MOV A,R5 ADDC A,R5 ;R5乘2加C DA A ;做十进制调整 MOV R5,A ;结果存回R5 MOV A,R4 ADDC A,R4 ;R4乘2加C DA A ;做十进制调整 MOV R4,A ;结果存回R4 MOV A,R2 DJNZ R2,NEXT ;做十进制调整结束? L2:MOV R7,#01H MOV A,R5 ADD A,R5 ;R5乘2 DA A ;做十进制调整 MOV R5,A ;存入R5 MOV A,R4 ADDC A,R4 ;R4乘2加C DA A ;做十进调整 MOV R4,A ;存回R4 DJNZ R7,L2 RET DISP: MOV A,R5 ANL A,#0FH ;取低4位,即D1的值 ORL A,#10H ;令D1使能+D1值 MOV P1,A ;显示D1 ACALL DELAY MOV A,R5 ANL A,#0F0H ;取高4位,即D2的值 SWAP A ;高低4位交换 ORL A,#20H ;令D2使能+D2值 MOV P1,A ;显示D2 ACALL DELAY MOV A,R4 ANL A,#0FH ;取低4位,即D3的值 ORL A,#40H ;令D1使能+D3值 MOV P1,A ;显示D3 ACALL DELAY MOV A,R4 ANL A,#0F0H ;取高4位,即D4的值 SWAP A ;高低4位交换 ORL A,#80H ;令D4使能+D4值 MOV P1,A ;显示D4 ACALL DELAY CLR A RET DELAY: MOV R6,#10 ;5毫秒 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET END 参考文献: 1、沈庆阳主编《8051单片机实践与应用》清华大学出版社 2、张志梁主编《单片机原理与控制技术》机械工业出版社 3、肖景和编著《CMOS数字电路应用》中国电力出版社 4、何立民编著《单片机应用系统设计》北京航天大学出版社 5、扬志忠主编《数字电子技术》高等教育出版社 附录: 系统电路原理图
投诉建议

提交

查看更多评论
其他资讯

查看更多

西门子-WinCC flexible 2008系统手册

直流数字电压表的设计