·上一文章:自制一款遥控供电插座
·下一文章:Easy 51Pro单片机编程器的制作与使用
计算器品种繁多、制造精美、触发灵敏、价格便宜。用旧计算器改制成单片机系统的通用键盘,可以方便地与任意的单片机应用系统连接,不管是在实验制作还是实际应用中,都不失为一种简捷方便的方法。
笔者用计算器做了一个通用键盘,在几个应用系统中使用。效果比用普通的按键好,使用非常方便。
电路见图1、图2。先选择一个外观适宜美观的计算器(本文以RS一3890型计算器为例),打开后盖,找出键盘矩阵的行线和列线,并做上标记。画一张该矩阵键盘和符号的对应图,如图2所示。
把原键盘的行线和列线通往掩膜芯片的印刷线路切断,然后用细漆包线将行线和列线接到AT89C2051单片机的相应L/O口上,作为新键盘的检测线。
本文用P1.0~P1.5作行线,用P3.2~P3.7作列线,如需要更多按键,单片机可采用AT89C51。利用单片机的一个I/O口作讯响控制口(本文用P1.7),以控制原计算器讯响器发声。
3 |
2 |
1 | ||
P1.0 7I |
一 。 MC‘ |
一 l 9I |
一 ’ 8 I | |
一 , p1.1 · 一 一 |
一 。 6 I |
— I 5 I |
一 ' 4● | |
P1.2 鬈· |
一 。 HR’ |
一 l ‘I |
— I C I |
— l M一‘ |
P1.3 =I 一 ● |
一 ’+/一I |
一 ’ X I |
— l {I |
一 ’ M+‘ |
P1.4 · 一 一 |
一 l ●I |
— l ON/CI |
一 · 0FF· |
|
P1.5 P5.21 |
一 『P3.31 |
_ ’P3.41 |
● ’P3.5’ |
'r 『p3.71 |
利用单片机串行口输出键盘代码,完成向单片机应用系统提供按键控制信息的工作。本键盘与应用系统只有三根连线,电源取自应用系统,使用极为方便。
键盘用发送程序及应用系统键值接收程序流程图见图3、图4。将键盘代码发送源程序写入89C2051,键盘代码接收源程序写入应用系统中的单片机,两程序设定相同的波特率,以KEYNUM作为键盘信息出口,再根据KEYREC和KEYNUM值在应用系统中作为控制程序代码,完成对应用系统的操作。
符 |
键码 KEYREC |
键值 KEYNUM |
键 符 |
键码 KEYREC |
键值 KEYNUM |
O | 0lH | 0lH | + | IOH | 14H |
7 | 02H | 0DH | × | llH | 13H |
03H | 1CH | ON/C | 12H | 00H | |
% | 04H | 11H | 2 | 13H | 06H |
05H | 15H | 9 | 14H | 0FHH | |
06H | ICH | 5 | 15H | 0AH | |
07H | 12H | C | 16H | 04H | |
Mr | 08H | 19H | 17H | 16H | |
09H | 02H | 0FF | 18H | OCH | |
MR | 0AH | 18H | 1 | 19H | 05H |
+/- | OBH | 03H | 8 | lAH | 0EH |
0CH | 08H | 4 | 1BH | 09H | |
3 | 0DH | 07H | M- | 1CH | 1AH |
0EH | 17H | M+ | lDH | lBH | |
6 | 0FH | 0BH | lEH | lCH |
附表给出键码和接收后转换的键值韵对应关系。表中键值KEYNUM是笔者在某应用系统中所定义的,读者也可按自己应用程序的要求改变键值。KEYREC值是键盘发出的对应于图2所示键符的实际代码。