资源描述:
《旧计算器打造单片机通用键盘实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、旧计算器打造单片机通用键盘实例2010-08-2520:49:26来源:作者:【大中小】浏览:220次评论:0条计算器品种繁多、制造精美、触发灵敏、价格便宜。用旧计算器改制成单片机系统的通用键盘,可以方便地与任意的单片机应用系统连接,不管是在实验制作还是实际应用中,都不失为一种简捷方便的方法。 笔者用计算器做了一个通用键盘,在几个应用系统中使用。效果比用普通的按键好,使用非常方便。 电路见图1、图2。先选择一个外观适宜美观的计算器(本文以RS一3890型计算器为例),打开后盖,找出键盘矩阵的行线和列线,并做上标记。画一张该矩阵键盘和符号的对应图,如图2所示。 把原键盘的行线和列线通往掩
2、膜芯片的印刷线路切断,然后用细漆包线将行线和列线接到AT89C2051单片机的相应L/O口上,作为新键盘的检测线。本文用P1.0~P1.5作行线,用P3.2~P3.7作列线,如需要更多按键,单片机可采用AT89C51。利用单片机的一个I/O口作讯响控制口(本文用P1.7),以控制原计算器讯响器发声。 利用单片机串行口输出键盘代码,完成向单片机应用系统提供按键控制信息的工作。本键盘与应用系统只有三根连线,电源取自应用系统,使用极为方便。 键盘用发送程序及应用系统键值接收程序流程图见图3、图4。将键盘代码发送源程序写入89C2051,键盘代码接收源程序写入应用系统中的单片机,两程序设定相同的
3、波特率,以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
4、 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是笔者在某应用系统中所定义的,读者也可按自己应用程序的要求改变键
5、值。KEYREC值是键盘发出的对应于图2所示键符的实际代码。键盘发送源程序:ORG0000LJMPMAINORG0030MAIN:MOVSP,#60HMOVTMOD,#20H;波特率设置MOVTH1,#0F2HMOVTL1,#0F2HMOVSCON,#50HMOVPCON,#00HSETBTR1CLRTIMAIN0:LCALLKEY;查询键盘MOVA,R5JNZSAVESJMPMAIN0SAVE:MOVSBUF,R5;有按键SE1:JBCTI,SE2;键码串行发送,等待发送SJMPSE1SE2:CLRP1.7;输出讯响控制信号NOPNOPNOPNOPNOPNOPSETBP1.7MAIN1:L
6、CALLKEY;等待键释放MOVA,R5JNZMAIN1LJMPMAIN0ORG0090KEY:MOVP3,#0FFH;矩阵键盘扫描MOVP1,#0FFHMOV24H,#00HSETB26HSETB27HMOVP1,24HJNBP3.2,PD1;查询有按键否JNBP3.3,PD1JNBP3.4,PD1JNBP3.5,PD1JNBP3.7,PD1MOVR5,#00H;无按键返回RETPD1:LCALLDEL;消抖JNBP3.2,PD2;再查询按键JNBP3.3,PD2JNBP3.4,PD2JNBP3.5,PD2JNBP3.7,PD2MOVR5,#00H;无按键返回RETPD2:MOVR7,#0
7、6H;置6条行扫描线MOVR6,#01H;从第一位开始MOVR3,#01H;第一个键码为01LOOP:MOVA,R6;行线扫描CPLAMOVP1,AJNBP3.2,PD3;判哪一列有按键JNBP3.3,PD4JNBP3.4,PD5JNBP3.5,PD6JBP3.7,NEXTMOVR4,#18H;置该列键码SJMPFINDPD3:MOVR4,#00H;置该列键码SJMPFINDPD4:MOVR4,#06H;置该