P3=P3|0xf0是0xf0什么意思思

格式:DOC ? 页数:28页 ? 上传日期: 01:28:07 ? 浏览次数:9 ? ? 1500积分 ? ? 用稻壳阅读器打开

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

矩阵键盘的使用在单品机的学习當中十分广泛可是对于许多新手,包括本人有时也是搞不明白昨天晚上和今天早上的思考和同行们的讨论,终于有了点头绪所以想記录下读取键盘的思路。

在单片机的学习版中矩阵键盘通常如下图设计:

下面就以按下S16键来讲解其思路:

最后将两个值相加得P3=0xE7;

在keyscan()函数(假设我们的键盘扫描程序为unsigned char keyscan())返回其键盘的值供后续的程序调用,通常会有一个switch块根据其返回值来确定输出的是哪一个数值

下面提供一段KeilC51语言的代码来解释一下:


首先把P3的口赋值为0x0f,同时把P3和0x0f赋值给cord_h(行的数值)倘若有按键按下,那么P3的值就会改变随后cord_h的只也會随之变化,经过消抖之后记录cord_h的值

(若以S16为例,那么P3.3的值变为0所以cord_h的值就会变为0x07;)

意在不改变P3的第四位,把P3的高四位赋为高电平那么P3=0x0f7;

cord_l = P3 & 0xf0;我当初以为cord_l=0xf0呢,结果就和程序运行的不一样喽最后还是问了我的同行(非常感谢刘伟同志!指点迷津!),其实在第二个if语言内S16已经被按下了的,所以P3的值立刻就变为0x0e的了以至于cord_l=0x0e,最后返回行和列的和return( cord_h + cord_l );(0xe7)这才是最终对的结果,各位看官懂了吗O(∩_∩)O哈哈~

我要回帖

更多关于 0xf0什么意思 的文章

 

随机推荐