单片机学习笔记 —— 红外测试

一、原理图

上面为红外接受原理图,下面为红外发射原理图
在这里插入图片描述
在这里插入图片描述
引脚:发射IR_T:P3.5; 接收IR_R:P3.6
原理:当红外接收传感器接收到38KHz的红外脉冲时,返回一个低电平



二、设计目标和思路

目标:需要两个电路板,一个电路板用于发送,另一个用于接收。按下KEY1每100毫秒发送红外信号一次。接收方在接收到红外信号后,L0会发光。

思路:红外接收头被设计为只能接受一定频率范围内的红外线脉冲,接在P3.6的红外线接收头可将收到的38kHz的脉冲转换成低电平,使P3.6的输入为0;接收头没收到脉冲时,会持续输出高电平,使P3.6输入为1。因此,发送一方利用接在P3.5的红外发光二极管发出38kHz的红外脉冲即能让接收一方的接收头收到;接收方判断P3.6的电平决定是否点亮LED灯。



三、程序实现

变量定义:定义红外发射/接收引脚别名

#include <STC15F2K60S2.H>
#define uchar unsigned char
/*---------引脚别名定义---------*/
sbit sbtLedSel = P2 ^ 3;            //LED灯与数码管显示切换
sbit sbtKey1 = P3 ^ 2;              //按键1 对应外部中断
sbit sbtGetIr = P3 ^ 6;             //P3.6连接红外接收头
sbit sbtPutIr = P3 ^ 5;             //P3.5连接红外线发光二极管

uchar ucPutIrFlagN = 1;       //标记位,标记是否发送脉冲。0:发送、   1:不发送

Init()函数:设置T1定时器与中断

void InitT0()               //定时器T0初始化
{
    
    
    AUXR |= 0x80;                   //1T
    TMOD &= 0xF0;                  //清除之前的设置
    TMOD |= 0x02;                  //设置为8位自动重装
    TL0 = 0x70;                     //定时器初始值
    TH0 = 0x70;                     //自动重装置
    TF0 = 0;                        //清除TF0标记
    TR0 = 1;                        //T0开始运行
}
}

中断函数:翻转引脚电平,发出红外脉冲

void T0_Processs() interrupt 1
{
    
    
    if( ucPutIrFlagN == 0 )    //如果ucPutIrFlagN=0
        sbtPutIr = ~sbtPutIr; //P3.5根据定时器中断的频率产生翻转(频率设为38kHz)
    else
        sbtPutIr = 0;       //不发射
}

main()函数:控制LED灯的亮,控制发出红外线的频率,每秒发射五次

void main()
{
    
    
    //设置推挽输出
    P0M0 = 0XFF;
    P0M1 = 0X00;
    P2M0 = 0XFF;
    P2M1 = 0X00;

    P0 = 0;             //初始化P0
    sbtLedSel = 1;       //选择LED发光

    InitT0();
    ET0 = 1;            //打开定时器T0中断
    EA = 1;             //打开总中断

    while( 1 )
    {
    
    
        P0 = !sbtGetIr;      //P0显示值
        while( !sbtKey1 )     //如果sbtKey1保存按下
        {
    
    
            ucPutIrFlagN = 0;                   //发射红外线脉冲
            Delay();
            ucPutIrFlagN = 1;                   //不发射红外线脉冲
            Delay();
        }
    }
}

以上就是关于红外测试的内容啦~



完结,cheers ! ??

猜你喜欢

转载自blog.csdn.net/qq_41140138/article/details/100104306