单片机键盘行列扫描法程序问题

单片机键盘行列扫描法程序问题,第1张

while(1) 里面,你不拆耐按的时候n一直等于0xff,如果你的数码管是共阴的,那瞎御数肯定一直亮的磨首,default:return 0xffbreak 改成 default:return 0break就可以

unsigned

char

KeyScan(void)

//键盘扫描函数,使用行列逐级扫描法{

unsigned

char

Val

KeyPort=0xf0//这句其实就是整体看看是否有键按下,四行全送0,有键按下,高四位肯定含简则不为全1

if(KeyPort!=0xf0)//表示有按键按下

{

DelayMs(10)

//去抖

if(KeyPort!=0xf0)

{

//表谈棚示有按键按下

KeyPort=0xfe

//检测第一行

if(KeyPort!=0xfe)

{

Val=KeyPort&0xf0

Val+=0x0e

//相当于检测到第一行有键按下,键值=列(高四位)咐姿+行(低四位)

while(KeyPort!=0xfe)

DelayMs(10)

//去抖

while(KeyPort!=0xfe)

return

Val

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12445387.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存