单片机按键检测

2019-07-16 00:24发布

Atmega16单片机,按键电路如下,按键另一端一般都是直接接地的,这个比较另类。尝试了不少方法还是没写出检测按键的程序,在此求助各位高手..最好有具体程序例子
qqq.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
Stone_up
1楼-- · 2019-07-16 03:11
先把IO拉低,然后再检测高电平,试试。

评分

参与人数 1威望 +2 +2 积分 +2 收起 理由 xiaoliu241 + 2 + 2 + 2 非常感谢您对提问者的帮助

查看全部评分

q373073148
2楼-- · 2019-07-16 07:20
Stone_up 发表于 2013-5-25 01:34
先把IO拉低,然后再检测高电平,试试。

不行啊

DDRD = 0xff;   
PORTD = 0x00;  
DDRD = 0x00;   
if((PIND|0x00)!=0x00)
  pressed = 1;   
else
  pressed = 0;   
// DDRD = 0xff;   
return pressed;
Stone_up
3楼-- · 2019-07-16 10:20
q373073148 发表于 2013-5-25 01:46
不行啊

DDRD = 0xff;   

具体搞不懂。不好意思。
加个延时去抖动试试,另外,在51上面移植试试。
Stone_up
4楼-- · 2019-07-16 15:43
q373073148 发表于 2013-5-25 01:46
不行啊

DDRD = 0xff;   

AVR单片机没有搞过。是不是可以设置IO口的状态,如果可以,把这里的IO设置为下拉输入试试。
q373073148
5楼-- · 2019-07-16 19:02
 精彩回答 2  元偷偷看……
africlion
6楼-- · 2019-07-16 23:41
我还不懂,真得要学习。

一周热门 更多>