摘要:针对日常生活中的温度采集提出了一种设计方案,详细介绍了系统结构组成和软硬件设计方案。系统采用AT89C51单片机为控制核心,以LM35为温度传感器,将温度信号转换为电压信号后输出给ADC0809。ADC0809再将模拟信号转换成数字信号输入到单片机中,经过单片机的控制处理最后再通过74LS595驱动输出到数码管中显示。实验结果表明,系统稳定可靠,并且体积小、成本低,有较高的使用价值和参考价值。
工业生产、农业生产和人们的日常生活都与温度息息相关,因此设计一个高效、可靠的温度采集系统具有重要的现实意义。采用51系列单片机对温度进行测量,能够使控制灵活方便,并且价格低廉可以使开发成本大大降低。据此设计了以温度传感器LM35、AT89C51单片机为基础的温度采集显示系统。为提高数码管的显示亮度以及减少单片机引脚的使用,采用74LS595实现对数码管的驱动。该系统的温度测量范围为0~50℃,精确到一位小数,可适用于日常生活。
1系统整体结构
该系统由温度采集模块、放大模块、模数转换模块、处理器模块和显示模块组成。温度采集模块采集现场环境温度并将其转换成电压信号,由于转换后的电压信号较微弱,所以要先经过放大电路的放大,然后再送入模数转换模块转换成数字信号,转换后的数字信号再送入处理器模块,处理器模块根据实际需要对数字量进行处理,最后再送入显示模块显示。其中选用LM35为温度传感器,放大电路选用LM385,选用ADC0809作为模数转换模块,选用常见的AT89C51单片机为控制核心,为了防止数码管闪烁和节省单片机引脚,在单片机和数码管之间接入74LS595带驱动、锁存、移位寄存器的芯片实现串行输入并行输出。系统设计框图如图1所示。
图1系统设计框图
2系统硬件及功能电路设计
2.1集成运放电路设计
2.1.1硬件简介
(1)LM35传感器
LM35系列传感器是精密集成电路温度传感器,其转换电压与摄氏温度成正比,0℃时输出为0V,每升高1℃,输出电压增加10mV,计算公式如下:
Vout_LM35(T)=10mV/℃×T℃(1)
因此,相对于按绝对温标校准的线性温度传感器优越得多,并且LM35系列传感器生成制作时已校准,输出电压与摄氏温度一一对应,使用极为方便。LM35传感器有单电源和双电源两种接法,单电源供电模式下,在25℃时电流约为50mA,非常省电,所以该设计采用的是单电源供电模式。
(2)LM358放大器
LM358内部包括两个独立的、高增益、内部频率补偿的双运算放大电路,它也有单电源和双电源两种供电模式。功耗小,可用电池供电。
2.1.2实现电路
因为LM35的输出电压是毫伏级,而ADC0809的输入电压范围为0~5V,虽然在ADC0809的电压允许范围内,但电压信号较弱,直接进行模数转换会导致数字量太小、精度低等不足,因此需要经过放大后再输入到ADC0809进行转换。放大10倍后,LM35的输出电压范围为0~0.5V,测温范围为0~50℃,完全可以满足日常生活的需要,所以设计放大倍数为10倍。根据同相输入放大原理各电阻选择阻值及连接情况如图2所示。
图2LM358连接电路图
2.2A/D转换电路
2.2.1硬件简介
(1)ADC0809ADC0809是CMOS逐次逼近型A/D转换器,具有8路模拟量输入通道,有转换起停控制,模拟输入电压范围为0V~+5V,转换时间为100μs,可以与单片机直接连接。
(2)AT89C51单片机采用AT89C51作为处理器。AT89C51是一种高性能CMOS8位微处理器,带有4KB闪烁可编程可擦除只读存储器,低电压即可满足其供电要求。该芯片采用ATMEL高密度非易失存储器制造技术制造,并与工业标准的MCS—51指令集和输入输出管脚相兼容。由于其多方面的优越性能,为很多工控系统提供了一种性价比高且灵活的实现方案。
2.2.2实现电路
ADC0809的转换时钟由AT89C51的ALE信号提供。因为ADC0809的最高时钟频率为640kHz,而ALE信号的频率是晶振频率的1/6,晶振频率为12MHz,则ALE的频率为2MHz,所以ALE信号要经过四分频后再送给ADC0809。本设计中采用74LS74双触发器作为分频器。AT89C51通过P2.7引脚和读写信号线来控制ADC0809的锁存信号ALE、启动信号START和输出允许信号OE。由于本设计中只有一路输入信号,所以直接将C、B、A通道选择地址线接地。ADC0809的转换结束信号EOC与AT89C51的外中断INT0连接,由于逻辑关系相反所以通过反相器连接。转换的数字量通过D0~D7输出。当P2.7和写信号同为低电平时,锁存信号ALE和启动信号START同时有效,锁存的同时启动;当要读取转换结果时,只需要P2.7和读信号同时为低电平,输出允许信号OE有效,CPU响应中断后,在中断服务程序中通过读操作来取得转换的结果。根据逻辑关系连接方式如图3所示。
图3单片机与ADC0809的电路连接图
2.3显示电路
2.3.1硬件简介
(1)数码管
发光二极管显示器又叫LED显示器,也称为数码管,其价格低廉、功耗较小、性能可靠。由于该设计的测温范围是0~50℃,精确到一位小数,所以采用3位八段数码管,分别用来显示温度的十位、个位和小数位。本设计中采用的是共阴极数码管。
(2)74LS595带锁存移位寄存器
74LS595是带有锁存功能的寄存器,内含八位串入、串/并出移位寄存器和八位三态输出锁存器。寄存器和锁存器分别有各自的时钟输入脉冲SH_CP和ST_CP,都是上升沿有效。由于具有数据锁存寄存器,在移位的过程中可以使输出端的数据保持不变,这在串行速度慢的场合很有用处,使数码管没有闪烁感,并且有较强的驱动能力,代替了专用的高成本的LED驱动器。74LS595只需3条控制线就可以完成8路信号的输出,直接控制数码管的8个段,有利于节省单片机的I/O端口,便于以后扩展。
2.3.2实现电路
该部分采用74LS595实现LED的静态显示。每个74LS595控制一位数码管,将74LS595的8个并行输出端和每位数码管的段选线相连,所以需要3个74LS595。这样每位数码管可以独立显示,在同一时间里可以分别显示不同的字符。虽然占用的外设芯片资源较多,成本较高,对于驱动显示多位数码管不利,但是它的编程简单,显示亮度高,占用的单片机引脚少,对于数码管位数不高的情况是不错的选择。
每个74LS595的串行输出口Q7′和下一个74LS595的串行输入口DS相连。数据从DS口送入74LS595,在每个SH_CP的上升沿,DS口上的数据移入寄存器,在SH_CP的第9个上升沿,数据开始从Q7′移出,这样数据便移入下一个74LS595。数据输入完毕后,给ST_CP一个上升沿,因为输出允许控制端OE一直是低电平允许输出,所以数据即从并口Q0~Q7输出到数码管,实现数据的显示。电路连接图如图4所示。
图4显示电路图
3系统软件设计
3.1程序流程图
在主程序中实现对中断的设置,数据的处理以及显示,在中断程序中实现对数据的读取。因为数据的处理需要一定的时间,为防止处理过程中中断的出现使数据出现不一致的情况,所以数据处理之前先关中断,处理完后再开中断。主程序流程图和中断流程图分别如图5、图6所示。
3.2显示驱动程序设计
该系统软件部分是在Kiel公司的μVision集成开发环境下采用C51语言编写开发的。AT89C51的P0、P2口作为外部扩展使用,P2口对应高位地址,P0口对应低位地址,P0口同时也作为数据线。用地址指针XBYTE定义,在使用该指针时要把absacc.h头文件引入到程序中。本设计中只使用P2.7端口控制ADC0809,P0只是作为数据接口。根据电路的设计定义XBYTE[0x7FFF](只要确保P2.7为低电平,其他任意设置)。
根据LM35的输出电压和温度的关系,0~50℃对应0~0.5V,通过LM358放大10倍后对应0~5V,再通过ADC0809转换后对应数字量0~255,所以要显示的温度与转换后的数字量的关系为:
T=50×X/255=10×X/51
其中T为要显示的温度值,X为经过ADC0809转换后的数字量。
根据数码管的显示原理,需要将显示的数字转换成相应的字段码后才能在数码管中正确显示,所以要把转换得到的温度值进行十位、个位和小数位的拆分。因为得到的温度值是浮点数,直接取出难以使用,为了便于利用拆分扩大10倍后再取整,这样原来的十位、个位和小数位分别对应变换后的百位、十位和个位。因为中间一位需要显示小数点所以在送入数码管之前先和0X10相与。部分C51程序如下:
该设计实现了基于74LS595驱动的温度采集与显示,经过实测,该测温系统工作稳定,灵敏度高。此外,该系统所用器件均为常规器件,成本低廉,有较高的应用价值。虽然该系统只对温度进行了采集,但是稍加改动,即可以很方便地扩展为集温度采集、控制为一体的产品,还可以实现利用异步串行接口与PC机进行数据通信,把采集到的温度等值保存到PC机中。
74ls595相关文章:74ls595应用电路图大全(五款74ls595驱动数码管/计时显示/超声波测距仪电路)
74ls595相关下载:74ls595芯片中文资料
评论
查看更多