📄 红外收发.c
字号:
//红外收发测试程序
//用单片机通过发射管发射38K的调制频率码,一体化接收并解码,由发光管显示。正常情况下,由于反射和高灵敏度接收,LED4(P1.3)一直
//闪烁,可以用黑色纸片完全遮挡接收头使之不能接收到发射管的信号,这时LED4熄灭,说明功能正常。
#include <reg52.h>
sbit LED=P3^3; //红外发射
sbit LED1=P1^3; //定义P1.3口为LED1
sbit IR=P3^2; //红外一体化接收
bit Flag;
//定时/计数器T0初始化子程序
void Init_Timer0(void)
{
TMOD=0x01; //定时/计数器T0为方式1,16位计数器
TH0=0xF0; //计数器赋初值为0F000H
TL0=0x00;
EA=1; //CPU开总中断
ET0=1; //开T0中断
TR0=1; //定时/计数器T0启动
}
//定时/计数器T0的中断服务子程序
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x0F; //计数器赋初值为0F00H
TL0=0x00;
Flag=!Flag;
}
//主程序
void main()
{
unsigned int j;
Init_Timer0(); //调用定时/计数器T0初始化子程序
while(1)
{
LED1=IR; //读取一体化接收头数值
if(Flag)
{
for(j=0;j<27;j++) //大约38KHz
{
LED=!LED; //发射管输出
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -