电子产业一站式赋能平台

PCB联盟网

搜索
查看: 2365|回复: 0
收起左侧

单片机C语言实例-256-红外收发演示

[复制链接]
发表于 2022-3-11 17:20:57 | 显示全部楼层 |阅读模式
单片机C语言实例-256-红外收发演示

/*-----------------------------------------------
  名称:99秒计时器
  公司:上海浩豚电子科技有限公司
  网站:www.doflye.cn
  编写:师访
  日期:2009.5
  修改:无
  内容:
        *红外测试程序,用单片机通过发射管发射38K的调制频率码,由一体化接收并解码由发光管显示。
        *正常情况下,由于反射和高灵敏度接收,LED4(P1.3)一直闪烁,可以用黑色纸片完全遮挡接收头使
        *之不能接收到发射管的信号,这是LED4熄灭。说明功能性正常

------------------------------------------------*/
#include<reg52.h>     //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义



sbit LED=P3^3;        //红外发射
sbit LED1=P1^3;
sbit IR=P3^2;         //红外一体化接收

bit Flag;

void Init_Timer0(void)
{
TMOD |= 0x01;                             
TH0=0xf0;                              /* Init value */
TL0=0x00;
EA=1;                      /* interupt enable */
ET0=1;                     /* enable timer0 interrupt */
TR0=1;  
}


/******************************************************************/
/*                    定时器0初始化                               */
/******************************************************************/
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x0f;                /* Init value */
TL0=0x00;
Flag=!Flag;
}

/******************************************************************/
/*                    主函数                                      */
/******************************************************************/
main()
{

unsigned int j;
Init_Timer0();    //定时器初始化

while(1)
{

    LED1=IR;       //读取一体化接收头数值
        if(Flag)
           {
            for(j=0;j<27;j++)//大约38KHz
                   {
                    LED=!LED;    //发射管输出
                    }
            }
   }
}


更多详情参考附件文档
+08:00C430联盟网3625.png
游客,如果您要查看本帖隐藏内容请回复

回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表