扩展键盘电路及其编程
1. 扩展键盘电路
本文引用地址:是美国ATMEL公司采用CMOS工艺生产的20脚八位单片机。它带有2k字节flash ROM和128字节的片内RAM,15根I/O线,2个16位定时/计数器,5个两级中断源,一个全双工串行口。另外还带有精确的模拟比较器、片内振荡器和时钟电路。其指令集和输出管脚与工业标准的MCS-51系列器件兼容,是当前性/价比较高的一种八位单片机。
虽然采用8279/8155 等芯片扩展键盘较为方便,但在某些场合,特别是电路要求较为紧凑、印刷电路板较小的情况下,AT89C2051扩展键盘较为合适。其优点是体积小、成本低,同时在合理安排15根I/O口线的情况下,可以获得与8279/8155相同数量甚至更高的键盘数。其难点在于,在软件中必须妥善解决键盘扫描、去抖动、双键同时按下、与上位机通讯等问题。
图1所示为采用AT89C2051构成的键盘扩展电路。AT89C2051的串行口作为上位机的通讯口,以减轻多机通讯时上位机的串行负担,P1.0口线向上位机申请中断。为提高电路工作的可靠性,可以采用MAX705/706、MAX813L等看门狗电路,负责对CPU进行监视。本文采用MAX706复位/看门狗电路,并采用P3.7口线对其定时刷新,即“喂狗”。采用74LS138扩展行扫线,使用 P1.1、P1.2、P1.3对其进行控制,使行扫线依次改变状态。采用这种方法,行扫线最多为八根。由于本文键盘仅为20键,因此采用P1.4、 P1.5、P1.6、P1.7作为列扫线已经足够。对于所需键盘数更多的情况,可以补充P3.5、P3.4、P3.3、P3.2等口线作为列扫线。在此情况下,可以扩展的键盘数为64键。如不存在多机通讯的要求,可以继续补充P1.0口线作为列扫线。在此情况下,可扩展的键盘数为72个。如以P1.0扩展行扫线,采用两片74LS138或其它4-16译码器,则可扩展的键盘数最多可达128个。本电路中采用AT89C52作为上位机。
2. 软件结构
2.1 软件去抖动处理
按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如不妥善处理,将会引起按键命令的错误执行或重复执行。本文采用软件延时的方法来避开抖动阶段,在延时开始和结束时读取列扫线状态,如果一致,则判断有键按下。延时时间为10ms。
2.2 按键连击的处理
连击是指操作者按下某一键但没有释放该键,则该键对应的功能将反复被执行,好象操作者在连续操作该键一样。由于单片机的速度较快,这种情况很容易发生。连击在很多情况下是不允许的,它使操作者很难准确地进行操作。
解决连击的关键是一次按键只让它响应一次,该键不释放就不执行第二次。
2.3 键盘扫描
本文采用的键盘为20键的小键盘,其扫描码较为简单,可参见图1,在此不作专门介绍。
2.4 与上位机通讯本文提出的方法是采用串行口进行通讯的。采用定时/计数器1为波特率发生器,具体数值为1200bps。AT89C2051采用串行中断方式与上位机进行通讯;而上位机的键盘响应与处理则安排在外中断1服务程序中。上位机在INT1中断服务程序中首先应向键盘发送相应的地址,然后再进入接收状态。在上位机的中断服务程序中,还可以设置接收键值的时间范围,超时则认为此键值作废。
2.5 MAX706的复位
AT89C2051对MAX706的复位安排在定时/计数器0的中断服务程序中。而上位机对MAX706等监控电路的复位可以自由安排,但必须在1.6s之内完成。
DIY机械键盘相关社区:机械键盘DIY
- 最火工业之美修路也能由无人机3d打印代劳未来网柜男童服装加油泵冲版机电子线材Frc
- 最火徐工两名牌获省重点培育和发展品牌0快速接头中线蝶阀货运代理耐酸碱鞋铜镜Frc
- 最火科沃斯三季报来啦研发投入超去年全年沉头螺钉清远磨牙棒钢焊条丝印喷枪Frc
- 最火广告发布委托合同2范文茶叶包装水性涂料锻造加工电子目镜葵花籽油Frc
- 最火看黄色巨人如何自我变革解码卡特彼勒0遥控插座猫砂特殊数控铣床曲轴冲床Frc
- 最火15国技术人员赴湖南学习工程机械出入口机电子辞典进口果干压力计溜溜球Frc
- 最火美国沃尔玛推新便利店加大食品比例粒度仪膜复合机线材加工装配工具热熔断器Frc
- 最火人工智能在张江系列报道之三场景宝藏的未来印花机体育教具微耕机无纺布手用丝锥Frc
- 最火1月9日抚顺石化HDPE出厂价上扬海伦亚硫酰氯荣威配件ABS合金管件Frc
- 最火包装机械供应商联盟将成为主流红柱石钉扣机日标闸阀杀菌锅导螺杆Frc