NEC单片机 按键处理
最近小弟在使用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口置为输入了,请指教!!谢谢!!
按键没有被按下时,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口置为输入了,请指教!!谢谢!!
...全文
相关推荐
KEYscan-按键扫描程序
按键扫描程序编写示例,能正常使用,编译环境是PM+,所用单片机是NEC78F0513,比较简单
基于单片机的红外遥控电路系统:NEC协议解码与工程实践指南
红外遥控通信本质上是一种单向半双工的载波调制技术,核心在于将按键信息通过38kHz载波和PPM脉宽调制编码后发射,由接收头解调还原为数字波形。理解NEC协议的帧结构——引导码、地址码、数据码与反码校验,是设计解码程序的基础。借助单片机外部中断与定时器捕获,可以精确测量脉冲宽度,进而通过状态机实现稳定的解码与按键映射。这种软硬结合的方案在智能家居、嵌入式人机交互和工业遥控领域具有广泛应用价值,同时其设计思路与Modbus等工业通信协议的帧等待、超时重试机制有相通之处。本文从接收电路搭建、解码算法实现、联调测试
基于51单片机的红外遥控解码与显示实战项目
51单片机是经典的8位微控制器,以其结构清晰、成本低廉、开发便捷而广泛应用于各类嵌入式系统中。其核心架构包括:CPU、ROM、RAM、定时器/计数器、I/O端口及中断系统。在红外遥控系统中,51单片机常用于信号的接收、解码与控制执行。通过配置其内部寄存器与I/O端口,51单片机可高效处理红外接收头输出的脉冲信号,并结合定时器实现对脉宽的精确测量。此外,其中断机制能够快速响应外部红外信号的到来,提高系统实时性。随着智能家居与工业自动化的发展,51单片机在红外遥控系统中展现出良好的应用前景。
lcd.rar_nec lcd
lcd显示子程序,记录里程数据,含按键输入检测,选择功能部分,NEC单片机例程
NEC红外无线遥控(2个文件写方便移植)
NEC红外无线遥控(2个文件写方便移植) 键值显示和处理,方便移植


单片机/工控

