找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1306|回复: 6
打印 上一主题 下一主题
收起左侧

请各位解释一下单片机C语言这几个键值怎么的出来的?

[复制链接]
跳转到指定楼层
楼主
ID:138707 发表于 2022-3-1 00:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请各位解释一下以这几个键值怎么的出来的
以下是部分程序:
---
#define uchar unsigned char   
#define uint unsigned int
#define key P1   
#define dataout P3
uchar data keyword;
---
void keyscan()               //键盘扫描函数
{   
keyword=key&0x3f;   
if(keyword!=0x3f)   
{   
  while((key&0x3f)!=0x3f);  //等待按键松开   
  switch(keyword)   
  {
     case 62: {;}
     case 61: {;}

     case 59: {;}
     case 55: {;}
     case 47: {;}
     case 31: {;}
}
}
}

提问:
(1)键值62,61,59,55,47,31怎么得出来的;
(2) 代表哪几个按键或对应引脚。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:86926 发表于 2022-3-1 08:07 | 只看该作者
本帖最后由 蓝魄 于 2022-3-1 08:11 编辑

1:键值是十进制数,读到的键值是十六进制数,建议了解下进制转换。2:相与0x3f即是取低6位,key定义的是P1,则是P1.0-P1.5;建议了解下C基础;
回复

使用道具 举报

板凳
ID:86926 发表于 2022-3-1 08:09 | 只看该作者
2:相与0x3f即是低6位,key定义的是P1,则是P1.0-P1.5;这可是C的基础哦;
回复

使用道具 举报

地板
ID:86926 发表于 2022-3-1 08:12 | 只看该作者
1:键值是十进制数,读到的IO数据口是十六进制数,建议了解下进制转换。
回复

使用道具 举报

5#
ID:121859 发表于 2022-3-1 08:28 | 只看该作者
这几个数分别对应十六进制:3EH,3DH,3BH,37H,2FH,1FH,在按键而言,分别对应P1.0到P1.5相接的6个按键。
回复

使用道具 举报

6#
ID:338503 发表于 2022-3-1 08:31 | 只看该作者
按键的接口是P1的低6位,如果P1的最低位按下,键值就是十六进制0x3e,十进制就是62;次低位按下键值就是十六进制0x3d,十进制就是61;依此类推,分别就是59、55、47、31.
回复

使用道具 举报

7#
ID:8222 发表于 2022-3-1 10:50 | 只看该作者
你把它变成二进制就能看出来了。但这键值有问题,判断是6位,键值是5位。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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