请教单片机3*3矩阵键盘程序的问题

请教单片机3*3矩阵键盘程序的问题,第1张

SCANPORT= ( SCANPORT&0XC0) | ( uca_LineScan[ucLine|0XC0) //运算, 高2位保持,低6位变成想要的。

Temp=SCANPORT &0x07 //你要高山注意, SCANPORT里面的值戚昌中包括P2.6、P2.7

if(Temp!=0x07)

一般的与、或运算可以解决。可能我写的不太好,你可以用一个中间变量在运算那儿。迅派

2*3的键盘雹宏,太简单了,不值得用循环,特别是双重循环。

最简明、行搜高效的程序如下:

sbit P10 = P1^0

sbit P11 = P1^1

sbit P12 = P1^2

sbit P13 = P1^3

sbit P14 = P1^4

char scan_key(void)

{

P13 = 0

if (!P10) return 0

if (!P11) return 1

if (!P12) return 2

P13 = 1

P14 = 0

if (!P10) return 3

if (!P11) return 4

if (!P12) return 5

}

本程序,使用的变量最少,也不涉及其它接口。

代源带册码最少,执行效率最高。


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

原文地址: https://www.outofmemory.cn/yw/8241358.html

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

发表评论

登录后才能评论

评论列表(0条)

保存