按下若有键按下还可以知道是哪一行哪一列交点的键按下。3、行反转法识别闭合键。需要用可编程的并行接口。行线接一个并行口,先让它工作于输出方式;列线接另一个并行口,先让它工作于输入方式。编程使CPU通过输出口向行线上全部送低电平,然后通过输入口读列线值如果此时有某一键按下,则必定会使某一列线值为0。然后重新对并行口初始化编程,使行线接的端口为输出口并将刚读得的列线值所接的并行口输出,再读取行线所接的输入口取得行线上的输入值那么在闭合键所在的行线上的值必定为0。这样当一个键被按下时,必定可读得一对唯一的行值和列值。根据这一对行值和列值就可知哪一行哪一列的键被按下。4、由于键内部的机械簧片在键按下和释放时会产生颤动致使输入端口线上呈现如图一所示波形。图中t1和t3分别为键闭合和断开过程中的抖动期,呈现一串负脉冲时间长短和开关的机械特性有关一般为1020ms之间t2为闭合的稳定期其时间由操作员的按键动作所决定一般为十分之几秒。t0、t4为断开期。为了保证CPU对键的一次闭合作一次且仅作一次处理,必须去抖动在键的稳定闭合或断开期读键的状态。
(二)设计步骤
1按照上图连接电路。2将参考程序改为TDSMD微机系统支持格式,标出程序说明,并画出程序流程图。3、运行程序。4、按动键盘,数码块会显示相应的数字。
四硬件系统框图与说明
功能描述键盘及数码管显示实验通过8255控制。8255的B口控制数码管的段显示A口控制键盘列扫描及数码管的位驱动C口控制键盘的行扫描。按下按键,该按键对应的位置将按顺序显示在数码管上。PA0PA7PB0PB7PC0PC7与其键盘及数码管端口连接即可。
f
五软件主要模块流程图与说明
f8255A与小键盘接口程序流程图
六工作总结
8255键盘及显示接口的课程设计使我了解了8255的基本输入输出的应用,使用通用的可编程并行接口,不但电路得到简化,相应的程序也可以得到简化,了解了8255A端口、B端口、C端口的基本作用,使我对编程程序更加熟悉。
f附录1:电路原理图
键盘及数码管显示单元部分内部电路结构图如下
f附录2:源程序及程序注释
设计程序如下PC8255ASMPAGE6078PA55EQU218HPB55EQU219HP55CTLEQU21BHDATATABLESEGMENTDW0101H0102H0104H0108H0110H0120H0140H0180HDW0201H0202H0204H0208H0210H0220H0240H0280HDW0401H0402H0404H0408H0410H0420H0440H0480H字符码表CHARDBCDEFBA9845673210RPMGMESDBPLAYANYKEYINTHESMALLKEYBOARD0AH0DHDBITWILLBEONTHEr