久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 938|回復: 2
收起左側

紅外接收接收不了,麻煩各位師兄幫忙看一下。

[復制鏈接]
ID:342739 發表于 2024-12-17 16:05 | 顯示全部樓層 |閱讀模式
/*************  本程序功能說明  **************

單片機型號:STC89C52

晶振頻率  :11.0592MHz

復位電路  :內部復位電路

功能描述  :演示紅外接收點亮LED。

LED對應IO口:P1.0-P3.7-P3.6-P3.5-P3.4-P3.3-P3.2-P3.1

******************************************/

#include "reg52.h"
#define uchar unsigned char
#define uint unsigned int
sbit IR_INPUT=P3^2;               //紅外接收引腳
bit IRflag=0;                                       //紅外接收結束標志
uchar IRcode[4];                       //紅外代碼接收緩沖區
void Initinfrared();

void main()
{
        Initinfrared();  
  while(1)
  {
                switch(IRcode[2])
                {
                        case 0x15:P1=0x7f;break;
                        case 0x07:P1=0xbf;break;
                        default:P1=0xff;break;
                }
        }

}

void Initinfrared()
{
    IR_INPUT=1;
                TMOD=0x01;
                EA=1;
                ET0=0;   //打開T0中斷
    EX0=1;         //打開外部中斷0
    IT0=1;          //下降沿觸發

}
/*獲取當前高電平的結束時間*/
unsigned int GetHighTime()
{
                TH0=0;  
    TL0=0;
    TR0=1;
                while(IR_INPUT)
                {
                        if(TH0>=0x40)  //  12/11.0592*16384≈18mS
                        break;
                }
                TR0=0;
                return(TH0*256+TL0);
}
/*獲取當前低電平的結束時間*/
unsigned int GetLowTime()
{
                TH0=0;  
    TL0=0;
    TR0=1;
                while(!IR_INPUT)
                {
                        if(TH0>=0x40)
                        break;
                }
                TR0=0;
                return(TH0*256+TL0);
}

void EXINT1_ISR() interrupt 0 // 外部中斷服務程序
{
                uchar i,j;  
    uchar buf;
                uchar time;
                time=GetLowTime();
                if((time<7833)||(time>8755)) // 引導碼9ms判斷  12/11.0592*X≈8500 (8.5ms~9.5ms之間)
                {
                        EX0=1;
                        return;
                }
                time=GetHighTime();
                if((time<3686)||(time>4608)) // 引導碼頭4.5ms判斷  12/11.0592*X≈4000 (4ms~5ms之間)
                {
                        EX0=1;         // 打開外部中斷0
                        return;         // 返回
                }
                for(i=0;i<4;i++)                                                 // 接收4個字節處理程序
                {
                        for(j=0;j<8;j++)                                  // 接收8個位/字節,處理程序
                        {
                                time=GetLowTime();
                                if((time<313)||(time>718))  // 判斷560us低電平  12/11.0592*X≈560us (500us~600us之間)
                                {
                                        EX0=1;
                                        return;
                                }
                                time=GetHighTime();
                                if((time>313)&&(time<718))        // 判斷560us高電平  12/11.0592*X≈560us (500us~600us之間)
                                {
                                        buf>>=1;
                                }                        // 當確認是0時,把變量buf循環右移,將低位移到高位
                                else if((time>1345)&&(time<1751)) // 判斷1.68ms高電平  12/11.0592*X≈1680us (1.46ms~1.9ms之間)
                                {
                                        buf>>=1;                       // 當確認是1時,右移1位
                                        buf|=0x80;
                                }
                                else
                                {
                                        EX0=1;
                                        return;
                                }
                        }
                        IRcode[i]=buf;  // 接收完數據后把數據傳給數組對應的位置。
                }
                IRflag=1;                // 將結束標志位置1,代表接收完成,中斷返回。
                EX0=1;

}

回復

使用道具 舉報

ID:57657 發表于 2024-12-18 11:13 | 顯示全部樓層
遙控接收需要紅外接收頭,接收管沒有解調放大電路用不了的,具體需要有原理圖才知道是什么問題。
回復

使用道具 舉報

ID:517951 發表于 2024-12-19 07:51 | 顯示全部樓層
用示波器,或邏輯分析儀接到紅外接收管輸出腳量測一下有沒有輸出波形, 軟件對應的IO端口有沒有與紅外端口正確對應.
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品亚洲综合 | 亚洲成人网在线观看 | 国产一区二区三区免费观看在线 | 天天干在线播放 | 国产美女精品 | 国产网站在线免费观看 | 亚洲国产二区 | 欧美小视频在线观看 | 精品国产乱码 | 国产一区二区三区免费 | 国产一区二区三区高清 | 久久精品国产精品青草 | 日韩在线h| 欧美精品一区二区三区在线播放 | 国产乱码精品一区二区三区中文 | 91人人爽 | 免费视频99 | 久久久久久999 | 韩国av影院 | 91午夜在线 | 精产国产伦理一二三区 | 女同av亚洲女人天堂 | 成人一区二区三区在线观看 | 国产精品色一区二区三区 | 一区二区三区国产好的精 | 国产区视频在线观看 | 色站综合 | 久草在线在线精品观看 | 人人人人爽 | 国产偷自视频区视频 | 中国一级特黄视频 | 成人免费看片 | av一区二区三区四区 | 亚洲影音先锋 | 91麻豆精品国产91久久久更新资源速度超快 | 欧美日韩综合 | 青青草中文字幕 | 日本久草 | 91福利在线观看 | 成年人精品视频在线观看 | 国产精品一二三区 |