#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
////////////////////////////////////////////////
sbit IRIN=P3^2;//红外接口标志
////////////////////////////////////////////
bit irpro_ok;
unsigned char IRCOM[4];
//////////////////////////////////////////////
void Ir_work(void);
/////////////////////////////////////////////////////////////////
void delay(unsigned char x)//x*0.14MS
{
unsigned char i;
while(x--)
{
for (i = 0; i<13; i++) {}
}
}
void IR_IN() interrupt 0 using 0
{
unsigned char i,j,k,N=0;
EA = 0;
I1:
for (i=0;i<4;i++)
{
if (IRIN==0) break;
if (i==3) {EA =1;return;}
}
delay(20);
if (IRIN==1) goto I1; //确认IR信号出现
while (!IRIN) //等 IR 变为高电平
{delay(1);}
for (j=0;j<4;j++)
{
for (k=0;k<8;k++)
{
while (IRIN) //等 IR 变为低电平
{delay(1);}
while (!IRIN) //等 IR 变为高电平
{delay(1);}
while (IRIN) //计算IR高电平时长
{
delay(1);
N++;
if (N>=30) {EA=1;return;}
}
IRCOM[j]=IRCOM[j] >> 1;
if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}
N=0;
}//end for k
}//end for j
if (IRCOM[2]!=~IRCOM[3]) {EA=1;return;}
irpro_ok=1;
EA = 1;
}
/******************************************************************/
void Ir_work(void)//红外键值散转程序
{
switch(IRCOM[2])//判断第三个数码值
{
case 0x00:P0=0xf9;break;//1 显示相应的按键值
case 0x01:P0=0xa4;break;//2 P0为段选
case 0x02:P0=0xb0;break;//3
case 0x03:P0=0x99;break;//4
case 0x04:P0=0x92;break;//5
case 0x05:P0=0x82;break;//6
case 0x06:P0=0xf8;break;//7
case 0x07:P0=0x80;break;//8
case 0x08:P0=0x90;break;//9
}
irpro_ok=0;//处理完成标志
}
/////////////////////////////////////////////////////////////////
void main(void)
{
IT0 = 1; // Configure interrupt 0 for falling edge on /INT0 (P3.2)
EX0 = 1; // Enable EX0 Interrupt
EA = 1;
P2=0x00;//8位数码管全部显示(P2口是位选)
while(1)//主循环
{
if(irpro_ok)//step press key
{
Ir_work();//码值识别散转
}
}
}
yaokong.rar_红外遥控解码
版权申诉
192 浏览量
2022-09-14
16:38:08
上传
评论
收藏 1KB RAR 举报
weixin_42651887
- 粉丝: 79
- 资源: 1万+
最新资源
- 海尔618算价表_七海5.20_16.00xlsx(1)(2).xlsx
- WebCrawler.scr
- 【计算机专业毕业设计】大学生就业信息管理系统设计源码.zip
- YOLO 数据集:8种路面缺陷病害检测【包含划分好的数据集、类别class文件、数据可视化脚本】
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于YOLOv8的FPS TPS AI自动锁定源码+使用步骤说明.zip
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于yolov8+streamlit的火灾检测部署源码+模型.zip
- 测试aaaaaaabbbbb
- VID20240521070643.mp4
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈