找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

这段单片机代码,写成0x0f和0xf0的区别?

查看数: 10155 | 评论数: 14 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-3-7 17:37

正文摘要:

4×4矩阵键盘程序,检测哪个按键被按下?当写成0x0f的时候,会有一列按键无法使用,改成0xf0的时候就可以使用,请亲们帮忙分析一下原因

回复

ID:691449 发表于 2020-3-8 11:52
0xf0的二进制是11110000,0x0f的二进制是00001111,按键扫描会有点差别,
ID:213173 发表于 2020-3-8 08:39
sunquanfeng 发表于 2020-3-7 23:46
判断是否有键按下,可否用0xf0,个人认为可以,但是用了就会出现第三列无法点亮,protues仿真没问题每列 ...

仿真正常实验板不正常的可能原因:
1.仿真图与实物图不一致
2.实验板上跳线、插针之类转换电路预置错误
ID:688901 发表于 2020-3-7 23:46
Sube 发表于 2020-3-7 20:47
0XF0转化为二进制为1111 0000,此时P0.1,P0.1,P0.2,P0.3引脚对应0000为低电平,而另外4个引脚对应1111为高 ...

判断是否有键按下,可否用0xf0,个人认为可以,但是用了就会出现第三列无法点亮,protues仿真没问题每列都可以点亮,上实验板就第三列不亮
ID:704232 发表于 2020-3-7 22:07
sunquanfeng 发表于 2020-3-7 19:46
用0xef为什么不行呢?请指教

0XEF为1110 1111,按键按下后只会被拉低,不会被拉高。
ID:704232 发表于 2020-3-7 20:47
0XF0转化为二进制为1111 0000,此时P0.1,P0.1,P0.2,P0.3引脚对应0000为低电平,而另外4个引脚对应1111为高电平,当某一列被按下后,比如第一列(P2.4),那么P2.4引脚会被拉低为低电平,由此可以判断哪一列按下。接着用同样的方法扫描行。
ID:688901 发表于 2020-3-7 19:46
lihuailiang 发表于 2020-3-7 19:28
如果式0x0f,检测这一行应该为P2=0xfe。

用0xef为什么不行呢?请指教
ID:88256 发表于 2020-3-7 19:30
你这没贴出完整的扫描程序,不好判断,不要截屏直接贴出程序吧
ID:704216 发表于 2020-3-7 19:28
如果式0x0f,检测这一行应该为P2=0xfe。
ID:88256 发表于 2020-3-7 19:22
huangwb0113 发表于 2020-3-7 18:16
0x0f 是十六进制显示,转化问二进制为0001000,所以第二行不显示

0x0f的二进制是00001111好不好,你那二进制的是0x08
ID:275826 发表于 2020-3-7 18:45
写成0x0f和0xf0的区别:OX0f是读低4位,而0xf0是读高4位
ID:688901 发表于 2020-3-7 18:41
huangwb0113 发表于 2020-3-7 18:16
0x0f 是十六进制显示,转化问二进制为0001000,所以第二行不显示

不是00001000吧?是00001111
ID:704185 发表于 2020-3-7 18:16
0x0f 是十六进制显示,转化问二进制为0001000,所以第二行不显示
ID:688901 发表于 2020-3-7 17:38
第三列按键无法使用

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表