51单片机解码NEC协议红外遥控器,串口助手显示键值码

在这里插入图片描述
#include <reg52.h>
#include <intrins.h>//这个为啥可以省略我也不知道,后面有用到 右移所以保守不省略。去掉也是可以完成此功能

unsigned char IR_Time;//33位数据脉宽时间用计时器0中断个数表示 ,进入一次中断需要1.085*256=277.76us

unsigned char IR_Date[33];//红外接收头发给单片机解码的33位数据(引导码1+用户码16+按键键值码8+键值码反码8)

unsigned char IR_Byte[4]; //去掉引导码剩余的32位,即4字节数据
bit StartFlag; //位0或者为1的脉宽时间做标记

bit IR_DateOK; //32位数据的脉宽时间接收成功标记

bit IR_DecodeOK;//去掉引导码剩余的32位脉宽时间的数据已经解码为32位二进制成功标志

void init()//以下都叫定时器,也可以叫计数器,是一样的
{EA=1; //开总中断
ET0=1;// 开定时器0中断
TMOD|=0x02;// 设置定时器0工作模式2,8位自动重装
TH0=TL0=0;// //初始化定时器0寄存器,定时器0溢出一次时间为256个机器周期
TR0=1;// 启动定时器0

EX0=1;// 开外部中断0
IT0=1; //外部中断0设置下降沿触发

TMOD|=0x20;//设置定时器1工作模式2,8位自动重装
TH1=0xfd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值