//这个解码方式是针对目前最常用的宽度调剂方式编的.
//注意:1.遥控器中红外信号是反相输出的。
#include<STC89C51RC.H>
sbit T2 = P2^0;
void dely(int time) //定义延时函数
{
while(time--)
{
}
}
unsigned char bianma(void)
{
char wei,pm,ma;
int gdp;
pm=0xff;
for (wei=0;wei<8;wei++)
{
while(T2==0);//SBUF=5; //低电平时停住
TH0=0; //进入高电平后开始计时
TL0=0;
TR0=1;
while(T2==1); // SBUF=6;
TR0=0; //进入低电平后计时结束
gdp=TH0*256+TL0; //高电平的时间长度
if ((gdp<2000)&&(gdp>100)) //属于编码长度范围
{ //SBUF=7;
if (gdp>1000) ma=1;
else ma=0;
pm<<=1;
pm+=ma;
}
}
return pm;
}
void fasong(void) interrupt 4 using 2
{ char j;
if(RI) //RI接收中断标志位 当接收到了一信息帧后,RI自动置1,
{ //指示CPU可以读取丰放在接收缓冲器SUBUF中的数据//
RI=0;
j=SBUF;
dely(300);
SBUF=j;
}
if(TI) //发送中断标志 TI自动置1表明当前数据帧已发送毕
{
TI=0;
}
}
main()
{
char thh,tll;
unsigned char jiema1,jiema2,jiema3,jiema4;
int low,high;
TMOD=0X21; // 12M晶体,不能用11.0592
SCON=0X50; //SM1=1,工作方式为1,REN=1,接收允许;其他为0
PCON=0X80; //不加倍
TH1=0XF3; //定时器初值,用于设定波特率
TL1=0XF3; //同上
EA=1; //中断总允许
ES=1; //串行口的中断允许位
ET0=1; //定时器T0中断允许位
PS=1; //串行中断优先值
ET1=1;
TR1=1; //启动定时器1
//unsigned char bianma(void); //函数原型说明
while(1) //解码程序
{
while(T2==1); //SBUF=0Xff; //最开始没信号时为高电平,停住不动
TH0=0; TL0=0; TR0=1; //来信号,进入引导码低电平后开始计时
while(T2==0); //SBUF=4;//停住,计时引导码的低电平
TR0=0; //进入高电平后计时结束
thh=TH0;
tll=TL0;
TH0=0; TL0=0; TR0=1; //进入高电平后开始计时
low=thh*256+tll;
//低电平的时间长度
while(T2==1); // SBUF=8;//停住,计时引导码的高电平
TR0=0; //进入低电平后计时结束
high=TH0*256+TL0; //高电平的时间长度
if ((high>3000)&&(high<6000)&&(low>8000)&&(low<10000))
{ //引导码高低电平符合范围
jiema1=bianma(); //用户码
jiema2=bianma(); //用户反码
jiema3=bianma(); //键码
jiema4=bianma(); //键反码
//向串口输出数据
if((jiema1==~jiema2)&&(jiema3==~jiema4)) SBUF=jiema3;
//else SBUF=0x00;
dely(255);
//j1为0x00,j2为0xff,这里我只输出了键码
//本程序经调试可行!!!!!
}
}
}
hongwaiyaokong.rar_红外学习_红外学习功能
版权申诉
52 浏览量
2022-09-24
14:21:42
上传
评论
收藏 14KB RAR 举报
小贝德罗
- 粉丝: 71
- 资源: 1万+
最新资源
- anaconda安装Web-ma笔记
- 酷狗top500数据分析完整
- 天气数据爬虫以及可视化分析
- unity shadergraph 特效案例del-for-network-ids-mas开发笔记
- 用户空间操作I2C适配器从而与I2C设备通信
- 2_base.apk.1.1
- 32位alu设计实验logisim-ma开发笔记
- Tangram-ES 0.17.1 64位 Debug/Release版 基于OpenGL地图渲染引擎
- 2018 各系统CNC 数据采集方法-5718b19bb868a98271fe910ef12d2af90342a827.pdf
- 【知识付费小程序源码】可开激励广告流量主+虚拟资源变现+搭建教程.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈