stc15w408as红外解码程序
时间: 2023-11-03 20:04:43 浏览: 190
stc15w408as程序
5星 · 资源好评率100%
STC15W408AS是一款基于8051内核的单片机,实现红外解码需要通过外部红外接收模块来接收红外信号,然后对接收到的信号进行解码。以下是一个红外解码程序的示例:
```c
#include "stc15w408as.h"
#define uint unsigned int
#define uchar unsigned char
sbit IRIN = P1^2;
void delayms(uint ms)
{
uint i,j;
for(i=0; i<ms; i++)
for(j=0; j<120; j++);
}
void Init_IR()
{
IT0 = 1;
EX0 = 1;
EA = 1;
}
void INT0_ISR() interrupt 0
{
uint t=0;
while(!IRIN)
{
t++;
delayms(1);
if(t > 4500)
return;
}
if(t < 2000)
return;
t=0;
while(IRIN)
{
t++;
delayms(1);
if(t > 500)
return;
}
if(t < 20)
return;
// 解码处理
}
void main()
{
Init_IR();
while(1);
}
```
上述代码中,`IRIN`是红外接收模块的输入引脚,通过外部中断0来检测红外信号的上升沿和下降沿,然后通过计算两个沿之间的时间来判断信号的类型。当检测到红外信号时,可以在`INT0_ISR`函数中编写解码处理的代码。需要注意的是,不同品牌的红外遥控器发送的信号格式可能不同,因此需要根据实际情况进行解码处理。
阅读全文