其实它是一个判断语句,while()里面(sccode&0x10)!=0是判断语句,sccode&0x10
即scode与10000000每位相与,只有最高位为1有效,但是不代表它就是判断最后一行,
那要看你的具体电路是怎么连的,比如这里也可以(sccode&0x01)!=0,你可能是这样写
才觉得是在扫描第一行吧,其实这两个道理是一样的,只不过一个从高位开始接,一个从
低位开始接,你再结合实际电路看看吧
其实它是一个判断语句,while()里面(sccode&0x10)!=0是判断语句,sccode&0x10
即scode与10000000每位相与,只有最高位为1有效,但是不代表它就是判断最后一行,
那要看你的具体电路是怎么连的,比如这里也可以(sccode&0x01)!=0,你可能是这样写
才觉得是在扫描第一行吧,其实这两个道理是一样的,只不过一个从高位开始接,一个从
低位开始接,你再结合实际电路看看吧
"P1=0xf0;//发全0行扫描码,列线输入
if((P1&0xf0)!=0xf0)//若有键按下 "
P1=0xf0什么意思呀?
你这是4*4的键盘吧。
P1=0xf0的意思是p1.4-P1.7设置为输入,P1.0-P1.3为输出0。
然后读P1口,判断P1的高4位看是否有键。
有键的话,再P1.0-P1.3依次输出0,回读P1口。就可以判断是哪个键按下了。
只不过这个按键程序太差了。没有一个编程的结构。
它判断最后一行明显是功能键的判断。就像PC键盘的Ctrl、Shift等。
0x10等于10000000吗二进制
它判断最后一行明显是功能键的判断。为什么是这样
我不懂