我想用AVR单片机的PB口的低四位设置成输入口 平时为低电平 检测外部的高电平信号

我想用AVR单片机的PB口的低四位设置成输入口 平时为低电平 检测外部的高电平信号(无线接收模块的输出口,当遥控器上的按键按下时,对应的数据口为高(5V)左右)。然后转到相应的子程序处理。初始化部分改如何设置呢?

如果想要输入口平时接近0V,可以外接下拉电阻,即在该IO口与地之间接一个电阻,这个电阻不能太大也不能太小,先试接个10K的吧。
另外读PB口是要读PINB,别搞错了。追问

谢谢
我现在主要是PCB已经做好了 不好再加下拉电阻了啊 读也是读PINB的值 但程序没反应 不知道是不是输入口那个零点几将近1伏的电压 单片机会误认为是高电平呢

追答

PORTB=0;
DDRB=0xF0;//低四位输入,不上拉
很有可能单片机将那个将近1V的电压认为是高电平了。要知道有些AVR可以低到1.8V供电。
如果是这样,纯粹用软件是解决不了了。还是建议外接下拉电阻,板子难看点正常

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-08
把PB口低四位设为输入不就行了,我觉得不用中断,可以在主程序里一直扫描这四个IO,当其中一个为高电平就进入相应的子程序追问

是把PB口低四位设置了输入了 但是现在输入口在没有按键时 都有电压 不是0 大概零点几将近1V 所以程序没反应

第2个回答  2011-12-08
这方面没有研究,不好意思!!
相似回答