电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
请教单片机按键扫描延时问题
已解决
73482
个问题
已帮助
5993
位优秀工程师
请教单片机按键扫描延时问题
8b6ffe166d34c398
2020-08-09
浏览量:768
以下是吴鉴鹰单片机课程里的按键扫描
unsigned char Key_Scan(void)
{
uchar Key_TempScan_CodeTemp_Code;
P2 = 0XF0;
Key_Temp = P2;
if((Key_Temp&0xf0)^0xf0) //0XE0 0b1110 0000 & 0b1111 0000 --0b1110 0000 ^0b1111 0000= 0b0001 0000
{
Scan_Code = 0xfe; //0B1111 1110
while((Scan_Code&0x10) != 0x00) //0XFE = 0B1111 1110 0B1111 0111
{
P2 = Scan_Code;
if((P2&0XF0)^0XF0)
{
Temp_Code = (P2&0XF0)|0X0F;//1101 0111 &0x f0 = 0b1101 0000 |0x0f = 0b1101 1111 ~0b0010 0000
return((~Temp_Code)+(~Scan_Code));
}
else
{
Scan_Code = (Scan_Code<<1)|0X01;// 0b1111 1110 <<1 = 1111 1100 | 0000 0001 = 1111 1101
}
Delay(10); 这里不明白
}
}
return(0);
}
视频里说硬件响应需要时间,这里不明白为什么要加延时。
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
川楠
延时,实际上就是消波形抖动。延时,其实加载前面和加载后面没啥区别。
你的程序延时加在后面,也就是一按键第一次触发为准。
发布于
2020-08-10
举报
评论 0
0
0
其他答案
数量:
2
yhj416606438
不加延时会重复触发按键按下,也可能是扫描时间太快,延时只是降低扫描按键速度
发布于
2020-08-09
举报
评论 0
0
0
chen0000009
加延时应该是为了防止重复触发,将延时加到那个地方应该是无法消抖的
发布于
2020-08-13
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
请教单片机按键扫描延时问题
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: