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

📄 c54.txt

📁 PIC16C54红外线遥控接收程序,格式为汇编语言
💻 TXT
字号:
unsigned char rfcount,
         loop,
         rftime,    //查询定时器
         k;
bit    rfbit,       //接收完标记
       lowbit1,
       lowbit2,
       downbit,     //检测下降沿标记
       rfgobit;
unsigned char rcvData[5];//结果


////////////////////////////////////////////////////////////////////////////////
IR_rcv( )//遥控接收
{
        if(rfbit==0)                     //准备接收
        {
        if((lowbit1==0)&&(RB5==0))       //RB5口用做接收口,有低电平        
        {
        downbit=1;
        rftime=0;
        lowbit1=1;
        return;
        }
        if((lowbit1==1)&&(RB5==1))       //有由低变高电平 
        {
        lowbit2=1;
        return;
        }
        if((lowbit1==1)&&(lowbit2==1)&&(RB5==0))
        {
        lowbit1=0;
        lowbit2=0;
        if((rftime>=40)&&(downbit==1))  //遥控接收(4.5ms start ?)
        {
        rfgobit=1;
        loop=0;
        rfcount=0;
        k=1;
        rftime=0;
        return;
        }
        rfcount +=1;
        loop +=1;
        if(rfcount>=31)                //接收了32位数据                 
        {
        rfgobit=0;                     //清0
        downbit=0;
        rfcount=0;
        rfbit=1;
        loop=0;
        return;
        }
        if((rftime>=7)&&(rfgobit==1))     //(2.25ms----1)?
        {
        rcvData[k] |=0x80;                //1?
        rftime=0;
        if(loop==8)
        {
        k += 1;
        loop=0;
        return;
        }
        rcvData[k]>>=1;
        return;
        }
        if((rftime<5)&&(rfgobit==1))     //(1.12ms----0)?
        {
        rcvData[k] &=0x7f;               //0 ?
        rftime=0;
        if(loop==8)
        {
        k += 1;
        loop=0;
        return;
        }
        rcvData[k] >>=1;               //rcvData[5]?只有32位定义5个数组干什么?
        return;                        //多出的一个数组有何用?
        }
      }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -