1. 引言
对于工业控制微机系统来说输入设备键盘几乎是必不可少的。在按键数目较少时,一般直接利用按键控制接口线的高低电平来表示,因此需要相应的接口支,由于单片工业控制微机系统接口线数目有限,为了减少占用接口线常常采用一键定义多功能,但这又增加了软件的复杂性;在按键数目较多时,则大多采用动态扫描的方式构成键盘矩阵,这种键盘虽然结构原理简单,驱动程序易于设计,但是在具体实现时往往需要花很多的时间去设计印刷电路板、考虑面板布局,而且在硬件资源比较紧张时,还要考虑扩充I/ O 口,从而使得电路变得越来越复杂。
2. 系统简介
本文介绍一种无线式键盘接口,该接口可以最大限度地减少对单片机系统的硬件资源要求,仅占用一根接口线,在系统的面板上只需一个小的接收窗。整个接口由发射和接收两部分组成。对于单片工业控制微机系统所需的按键数目少于30 时,发射部分可以直接使用成品红外遥控发射器,如果自行设计发射部分,则可以支持60个键左右,其中有两键用于构成组合按键。接收部分的接口电路也非常简单,无需布线,只要将成品模块的输出直接接到单片工业控制微机系统的任一I/ O 接口线即可,同时驱动程序也易于设计。由于键盘采用无线方式,因此所构成的单片机可以方便地满足一些需要远距离控制的场合,以及一些特殊场合,例如:单片工业控制微机系统在一个密封的容器内,通过玻璃小窗进行参数输入或控制;单片工业控制微机周围环境不适宜用户近距离操作等。
2.1硬件设计与工作原理
整个键盘接口的原理框图如图一 所示,发射部分与接收部分之间采用红外线作为传播媒介。
图一 无线键盘接口原理框图
2.1.1 发射部分
我们选用由TCL2101AS型电视机红外遥控发射器, 图二 为其内部的电路原理图。微处理器TC9028 F--022 芯片为控制核心,24位键盘矩阵,三极管Q1501是驱动器,D1501(HIR305B)是红外线发射二极管。
微处理器TC9028 F--022 芯片的功能比较简单,一是键盘扫描,识别键位,二是键功能编码,向输出端口提供编码数据。当有键按下时,微处理器TC9028 F--022 扫描键盘,识别出是哪个按键后,进行功能编码,从19脚输出,经Q1501驱动,使D1501发出红外光,向外发射传输数据。
图二 红外遥控发射器电路
2.1.2 红外线遥控接收器与单片机的接口电路设计
TMFS—5380是红外线遥控接收器,当内部的光电二极管接收到红外光时,光电检测电路将光电流转换为电压信号,电压信号被放大后,被带通滤波器选出已调信号,经检波,取出编码脉冲,从1脚输出。红外线遥控接收器与单片机的接口电路,仍采用TMFS—5380,它与单片机的连接如图三所示。
图三 红外线遥控接收器与单片机的接口电路
2.2 软件设计
根据上述红外线遥控接收器与单片机的接口电路,软件设计有两种编程方法,一种方法可以采用中断触发方式;另一种方法可以采用启动定时器方式。
2.2.1 中断触发方式
遥控接收电路1脚输出的是串行脉冲信号,可以让此脉冲触发单片机的外部中断INT1,设置定时器T0工作于方式0,当中断到来时,给T0置初值0,然后启动T0,当下一次中断到来时,读出T0的值,根据值的大小就可以判断脉冲的宽度,即可判断出是“0”,还是“1”。程序方框图如下所示。
2.2.2启动定时器方式
把遥控接收电路1脚输出的串行脉冲信号到向后,从INT1脚送入,当信号由“0”变“1”时,T1开始计时/计数,在INT1引脚为高电平期间,始终接通脉冲源,T1不停地计时/计数,当INT1信号由“1”变“0”时,定时器停止计时/计数。此时读出T1的值,依据值的大小就可以判断此高电平的时间,亦即可判断出是“0”,还是“1”。主程序设计不再赘述,下面给出读取脉冲宽度的参考程序。
LOOP:JB P3.3,LOOP
MOV TL0,#00H
MOV TH0,#00H
SETB TR0
LOOP1: JNB P3.3,LOOP1
JB P3.3,$
CLR TR0
MOV 60H,TL0
MOV 61H,TH0
3 结束语
本文介绍了一种利用红外遥控器作为单片机输入键盘的接口原理和方法,构思巧妙,结构合理,成本低廉,我们已经成功地利用该接口方式实现了单片机键盘的无线式操作。文中以TC9028 F--022 芯片作为发射部分,对于其他类型发射芯片,此接口原理仍然适用,只需相应修改中断服务程序即可。如果单片机系统有多余的外中断资源,可将接收到的信号输入至中断引脚,利用外中断与定时器结合,则可减少接收处理时对CPU 时间的占用。
遥控技术经历了有线遥控、无线电波遥控,现今的红外遥控,技术已相当成熟,功能越来越强,运行越来越稳定,应用越来越广泛。先进的遥控技术配合单片机运用到工业控制中去,那么,控制系统的操作将变得更容易、更快捷、更方便、更安全。
来源:http://www.kangu.net/yingyong/7/2007-08-14/9110.html
|