NEC单片机 按键处理

wxiang168 2011-01-09 08:45:56
最近小弟在使用NEC78F0513单片机,独立式按键做项目,在按键扫描时有点问题,软件代码检测不到按键被按下。详细情况是这样:按键Key1跟单片机的P27相连,根据硬件原理图(能够确定原理图是正确的),
按键没有被按下时,P27引脚为低电平(此时使用万用表测量是0V),
当按键被按下时,P27引脚为高电平(此时使用万用表测量是5V),
使用IAR开发环境,按键扫描代码如下:
void Key_Scan()
{
if(0x80 == (P2 & 0x80))
{
FLASH_DELAY(50);
if(0x80 == (P2 & 0x80))
{
key_num = key6;
key6_flag = 1;
}
}
}
我就纳闷,当按下时使用万用表都可以检测到5V,为什么代码检测不到呢?使用执行到光标处(颜色标记代码),就是到不了,进不到if语句里,说明软件检测不到5V,是按键检测软件代码写法有问题吗?我在初始化中也把P27口置为输入了,请指教!!谢谢!!
...全文
122 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoyu_bo 2011-01-11
  • 打赏
  • 举报
回复
设为输入就读不了P2口的值啊
DISINHUI 2011-01-10
  • 打赏
  • 举报
回复
1. 设置为输入,是正确的,注意是否本引脚有第二等其他功能,如果有,比如兼做AD输入,那么需要屏蔽AD功能才能进行正常IO操作。
2.看看外部是否有过大的上拉电阻,或者IO外部串接电容接地。
3.单按钮,建议用外部中断来实现,这样实时性好,代码也简洁易懂。
hicaru000000 2011-01-10
  • 打赏
  • 举报
回复
看看端口使能了没有。
doushi87 2011-01-10
  • 打赏
  • 举报
回复
可以设置成输出试试!

27,509

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧