⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 红外收发.c

📁 AT89S52单片机程序50例(00-50)
💻 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 + -