键盘一般采用行列扫描方式来设计。行列扫描是指:把键盘按键排列成n行×m列的n×m行列点阵,使用软件或硬件的方法对其行、列分别进行扫描,从而判断是否有键按下,并获得扫描码。当无键按下时,行线与列线断开,所有列线均为高电平。当有一个键按下时,则与此键对应的行线与列线接通。如此行线为低电平,则此列线也为低电平。为确定是否有键按下,CPU先通过并行输出口使所有的行线为低电平,然后通过并行输入口读入列信号,若为全“1”,则没有键按下,若有一个为“0”,则表示有一个键已按下。若有一个为“0”,则表示有一个键已按下。为消去按下时的抖动现象,程序延迟20ms后再判断具体是哪一个键按下先将第一行置为低电平,然后读入列信号,若有一个为“0”,则按下的键在此行;若为全“1”,则按下的键不在此行,再将下一行置为低电平,并测试列信号。
如果在最后一行也为低电平时仍未找到按下的键,则认为刚才有键按下的情况为误动作。对找到的键,进行分析并处理。当按键时间较为短促时,系统判断不到有键按下。经测试,按键在按下或释放时,通常伴随着几ms到十几ms的触点抖动,然后才能稳定下来。在触点抖动期间检测按键的通断状态,会导致一次按键或释放被错误地认为是多次操作。所以,当检测到有键按下或释放时,应通过软件延时20 ms左右,避开触点抖动的影响。去抖时间既不能太短也不能太长:如果时间太短,无法起到去抖作用;如果时间太长,超过了键按下的持续时间,则会判不到按键。软件去抖时间不宜太短也不宜太长,定为20ms 。本设计使用行列扫描方式,其电路原理图如图3-1所示。
图3-1 键盘电路
本课题使用行列扫描方式,由于所使用的按键数量较少,只使用了4个按键来控制温度传感器的选择、查询和设置,因此采用1×4的矩阵扫描键盘,使电路更加简洁。
3.2 显示电路的设计
显示电路通常可采用液晶显示或数码管显示。本设计显示电路采用共阴数码管显示,主要基于如下考虑:
数码管的驱动电路简单,使用方便,作为一种主动显示器件,具有亮度高、价格便宜等优点,可提供直观的视觉信息。在工作现场,用户可通过LED的显示数据来确定系统的当前工作状态以及即时观察所采样的温度值信息等。此方案在夜间看温度显示的时候不需要有光源,非常方便。其缺点是功耗较大。显示电路图如果3-2所示。
图3-2 显示电路
3.3 温度传感器与单片机的连接电路
为了使程序更加简单化,温度传感器与单片机的连接电路没有采用多个DS18B20串联接在单片机的一个接口上的方案,而是采用了分别接在不同的输入口上的方案,这样能省掉了读取温度传感器的序列号的问题,使程序简单了很多。温度采集电路如果3-3所示。
图3-3 温度采集电路
3.4 报警电路设计
当被测温度值超过预先设定的上下限时,由报警电路作出响应,蜂呜器发出响声,告知用户温度的异常。具体是哪一个传感器温度值超限,可由软件查询各DS18B20内部告警标志而确定,继而调整该现场温度,以达到对温度波动的控制。
3.5 系统的整体电路
图3-4系统整体电路
该系统功能简介:四个DS18B20温度传感器负责监控与采集四个不同地方的温度,并将采集到的数据传到AT89C51单片机中进行处理,四个开关从左到右功能分别为:第一个是用于选择哪个温度传感器,第二个用于设置传感器的上下限时进行减1操作,第三个用于设置传感器的上下限时进行加1操作,第四个未按下时显示的是温度传感器采集到的温度,按一下后显示的是传感器设置的上限,按两下后显示的是传感器设置的下限,在显示上下限的时候可以通过前两个按键对传感器的上下限进行设置。 AT89C51单片机机车轴温的监控系统设计(6):http://www.751com.cn/tongxin/lunwen_8759.html