最近自己在网上搜了很多资料,发现很多的红外解码,关于重码的处理的代码很少,分享一下红外解码包括重码的处理。 使用单片机:EN8F156 功能说明:红外遥控器解码,只使用定时器T0定时100us进行按键解码,处理按键短按与长按,将解码的数据通过串口打印。 /*************************************** 功能说明:红外遥控器解码,定时器T0定时100us进行按键解码,处理按键短按与长按,串口打印解码数据。 ****************************************/ #include SYSCFG.h #define uchar 本文主要介绍如何使用8位单片机EN8F156仅通过一个定时器T0实现红外遥控器的解码,同时处理按键的短按和长按事件,并通过模拟串口打印解码出的数据。红外遥控器解码是电子设备控制领域的一个常见应用,它允许用户通过遥控器对设备进行远程操作。 单片机EN8F156的定时器T0被设置为每隔100us进行一次中断,这个间隔时间对于红外遥控信号的解析非常关键。红外遥控信号通常由一系列的高电平和低电平脉冲组成,这些脉冲编码了不同的按键信息。通过精确地测量这些脉冲的长度,可以解码出遥控器发送的指令。 在这个设计中,定义了一些关键变量用于存储解码过程中的信息。例如,`Receive_Count`记录接收的脉冲数,`Low_Level_Time`和`High_Level_Time`分别记录低电平和高电平的时间,`UserCode_High`和`UserCode_Low`用于存储用户码的高位和低位,`Data_Code`用于存放数据码,而`Repeat_Count`用于统计重码出现的次数。此外,还有一系列的标志位,如`Data_Receive_Flag`、`Begin_Flag`等,用来标记解码的不同阶段和状态。 在初始化过程中,单片机的系统时钟被设置为2MHz,这对于定时器T0的精度非常重要。同时,红外输入端口IR_PIN(这里为PA2)被配置为输入模式,串口发射端口PIN_TX(这里为PC0)被配置为输出模式,以实现数据的串口通信。 中断服务程序ISR主要处理定时器T0的中断,当检测到红外输入端口的电平变化时,会根据当前的解码状态执行相应的操作。例如,如果检测到的是低电平,且已经找到了同步码(即`Data_Receive_Flag==1`),那么就会开始记录低电平的持续时间,这有助于区分不同类型的脉冲,从而解码出按键信息。 对于按键的短按和长按处理,可以通过设定一个阈值来判断。例如,如果连续接收到的信号在一定时间内没有变化,可能就表示用户持续按下某个按键,这就构成了长按;反之,如果信号在短时间内频繁变化,则表示用户快速按下并释放按键,即短按。 解码出的数据会通过模拟串口打印出来。在单片机中,模拟串口通常是指使用GPIO引脚模拟UART接口,实现与外部设备的通信,如电脑的串口调试助手。这种方式简化了硬件设计,但可能需要更复杂的软件协议来确保数据的正确传输。 这个设计巧妙地利用了一个定时器和一些基本的逻辑判断来实现红外遥控的解码,同时也考虑了重码的处理,提高了解码的可靠性。通过串口通信,可以方便地将解码结果输出,便于调试和分析。这样的实现方式在资源有限的8位单片机中是相当经济和实用的。
2025-04-14 18:25:13 58KB 串口
1
浅谈 38K 红外发射接受编码 1. 红外概念:红外是一种物理存在,不仅仅是一种遥控技术。红外遥控需要红外发光管、接收光线的“接收管”和产生 38K 信号源三部分组成。红外编码 IC 只需要简单的外围电路。 2. 红外接收头:红外接收头分为电平头和脉冲头两种。电平型的红外接收头可以输出连续的低电平信号,而脉冲型的红外接收头只能接收间歇的 38K 信号。 3. 红外遥控中的载波:红外遥控中的载波是 38K 信号,占空比是 1/2,周期是 1/38000 S。红外遥控的载波信号可以是脉冲信号,也可以是电平信号。 4. 38K 红外发射接受编码:38K 红外发射接受编码是使用红外发光管和接收光线的“接收管”来实现的。红外编码 IC 只需要简单的外围电路。 5. 红外 38K 载波信号:红外 38K 载波信号是红外遥控中的载波信号,频率为 38K,占空比为 1/2。红外 38K 载波信号可以是脉冲信号,也可以是电平信号。 6. 三极管驱动:三极管驱动是红外遥控中的一个重要组件,可以作为开关,共射的方式。一般采用 PNP 管作为开关管,NPN 管是利用高电平时候导通。 7. 红外编码信号:红外编码信号是使用 38K 信号来实现的,可以是脉冲信号,也可以是电平信号。红外编码信号可以是红外遥控中的载波信号,也可以是红外接收头中的信号。 8. 红外遥控中的问题:红外遥控中存在一些问题,例如红外接收头的选择、红外编码信号的设计、红外遥控中的载波信号等。 9. 红外遥控的应用:红外遥控有广泛的应用,如电视机、空调、音响等家电设备的遥控,红外数据传输等。 10. 红外遥控的优点:红外遥控有很多优点,如操作简单、距离远、安全性高、成本低等。 11. 红外遥控的缺点:红外遥控也存在一些缺点,如容易受到干扰、距离有限、安全性不高等。 12. 红外遥控的发展:红外遥控技术还在不断发展,新的技术和应用不断涌现,如红外数据传输、红外遥控的安全性等。
2025-04-07 09:27:43 45KB 38K红外解码
1
STM32 F103C8T6学习笔记12:红外遥控—红外解码~~.rar
2024-04-09 14:06:56 3.68MB stm32
1
CC2530 红外解码
2023-12-22 21:14:13 573KB cc2530
1
本文是武汉市海联天下物联网有限公司技术团队内部学习笔记,将详细讲解红外遥控的基本原理以及51单片机如何利用外部中断和定时器0对红外信号进行解码。
2023-12-15 12:53:22 12KB 红外解码 数码管显示 学习笔记
1
单片机C语言实例红外解码
2022-12-13 21:30:00 52KB 单片机C语言实例
1
红外解码,杜洋老师清晰的讲解,单片机初学者可以上手。
2022-11-11 17:25:35 659KB 红外解码 单片机
1
使用CA51F253L3单片机实现红外遥控器解码程序,并将单独编写了测试改芯片外部中断,定时器功能程序。
2022-11-07 15:57:55 126KB 红外解码 CA51F253L3 定时器 ca51f253l3-s2
1
/*************************************************************************** ***** * 描述: * * * **************************************************************************** ****/ #include #include #define uchar unsigned char #define uint unsigned int uchar LCD_ID_1[16] = {"Red Control"}; uchar LCD_ID_2[16] = {"IR CODE:--H"}; void delay(uchar x); //x*0.14MS void delay1(int ms); void beep(); sbit IRIN = P3^3; //红外接收器数据线 sbit BEEP = P1^5; //蜂鸣器驱动线 sbit RELAY= P1^4; //继电器驱动线 uch
2022-06-19 14:03:34 42KB 文档资料
红外解码程序。直接下载到单片机里。用超级终端或者串口工具可以直接看到红外遥控的键值编码。
2022-05-27 13:43:13 541KB 单片机 红外解码
1