51单片机用HS0038B读取遥控按键码

本文介绍了如何使用51单片机配合HS0038B红外接收头来读取并解析遵循NEC协议的遥控器按键码。通过配置单片机外部中断为下降沿触发,结合定时器计时,获取高低电平时间,从而解码出按键码。文中还提供了一个头文件示例,包含初始化、获取高电平和低电平时间的函数以及中断服务程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

各种红外遥控器产生的红外信号都是使用NEC协议,将自己的信号波加载到38KHZ的载波上发送出去的,而HS0038B自己具有解码功能,所以单片机从HS0038B所读取到的信号是解码后的信号,也就是按键码对应NEC协议里的高低电平。

NEC协议中,数据传输的格式为:引导码、用户码、用户码(或其反码)、按键码、按键码反码,最后一个停止位。

引导码为9ms载波加上4.5ms的空闲。数据“1”为560us的载波加上560us的空闲。数据“0”为560us的载波加上1.68ms的空闲。

配置51单片机的外部中断为下降沿触发,再通过定时器计时,可以得到每次收到的高低电平的时间,再对应得出相应的按键码即可。

写成头文件的形式

ifndef _INFRARED_H_
#define _INFRARED_H_

#include<reg52.h>
#include "infrared.h"
sbit ir_inp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值