可以根据以下公式计算相应的密钥号:7.在6中,可以为每行的开头指定一个固定数字0(00H),8(08H),16(10H),24( 18H)),列号按列线顺序为07。 (4)确定是否释放了关闭的键。一旦将其关闭,则只能执行一项功能操作。因此,可以根据释放键后的键编号执行相应的功能键操作。键盘扫描程序,请参考培训7. 1.主程序流程图。源程序中的键盘查询程序,键盘扫描程序和按键查询子程序是三部分,是矩阵键盘的典型应用。与图7. 6相同,8155的入口地址不同,矩阵键盘的列数也不同,并且为了防抖的延迟子例程被display子例程取代,以考虑键盘和显示器。 2)定时扫描方法:定时扫描方法是每隔一定时间扫描键盘一次,使用,JB /高级传输,JMP /直接传输,RET /子例程返回),以确保初学者一目了然!该程序已经过验证,并已通过本网站的电子实验板。它占用更少的CPU时间并具有很高的效率。它被选为单片机的测试程序!矩阵按钮扫描程序是保存IO端口的一种方法。按钮数量越多,节省的IO端口就越多。这个程序的思想与书中的相同:首先判断某个列(行)是否按下了按钮,然后判断行(Column)是按下了哪个键。但是,在编写程序时,网站管理员已采用最简单的方法来使程序最有效。在此程序中,如果检测到某个键被按下,则不会检测到其他键。这样可以完全满足大多数需求,并节省大量CPU时间。另外,我认为键盘使用延迟程序来消除抖动,这是浪费时间。试想一下,如果您不需要中断执行(使用中断执行需要更多的硬件资源)来扫描键盘,每秒扫描20-100次,每次延迟10-20MS,那么我们的微控制器有多少时间可以做生意?实际上,在延迟期间,CPU可以执行其他操作。
因此,可以在键盘扫描程序的正面和背面添加一些代码,这不仅可以实现完美的消除抖动效果,还可以扩展其他功能(例如按键锁定,按键长按等)键功能重用!)此键盘的scan子例程称为key,您每次都需要扫描callkey。以下子例程内容:key:mov p000001111b高四位数字和低四位数字分别是行和列,因此发送高电压和低电压以检查是否有按键按下jmp k10跳到K10开始扫描,这里可以更改为其他条件转移指令以确定您是否要继续进行此扫描,例如减法和转移,主要用于增加功能并确认先前的关键功能是否已完成?等于延迟吗?您要锁定键盘吗? goend:jmp kend如果判断这次键盘扫描程序未执行,请立即转到程序结尾,不要浪费CPU时间。 k10:jb p 0. 0k20扫描正式开始,首先检查是否按下了列出的四个键,否则,跳至K20并检查列k11:movp011101111b。按下键后,P 0. 0变为低电平。按下哪个键?现在输出每行的低电平jb p 0. 0k12当未按下该行的键时,p 0. 0为高电平并跳至K12。检查其他movr11。如果碰巧是该行的键,它将在R0中注册Write 1,这意味着k12:movp011011111b jb p 0. 0k13 mov r12如果按下该行的键,则将2写到寄存器R0中,这意味着按下数字键k13:mov p010111111b jb p 0. 0k14如果mov r13恰好是此行中按下的键,则在寄存器R0中写入3,表示按下数字键k14:mov p001111111b jb p 0. 0kend如果现在未全部按下四个键,则可能会释放该键或产生干扰,请退出扫描(此后,如果movr14恰好是该行中按下的键,则在寄存器R0中写入4,指示jmpkend找到了按下的键,跳到末尾k20:jb p 0. 1k30列k21:movp011101111b当按下列中的键时,P 0. 0将变低,按下哪一行键?输出第jb行的低电平p 0. 1k22如果未按该行的键,则p 0. 0为高电平,跳至K22,?mov r1 5.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-316734-2.html
@Mr_凡先生