新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 紅外線遙控碼單片機(jī)測試程序

        紅外線遙控碼單片機(jī)測試程序

        作者: 時(shí)間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
        以前在仕創(chuàng)時(shí),總是奇怪 周工為什么可以編出一個(gè)能測試任何遙控的遙控碼 和用戶碼的單片機(jī)程序!周工還將此程序視為寶貝,每次測試完都將那只已經(jīng)燒錄好的單片機(jī)拿回去!!在這幾年 本人也接觸單片機(jī),嘗試寫出測試遙控碼的程序??!但只是能測試出遙控碼 并未能測試出用戶碼?。?!所以當(dāng)時(shí)周工還是相當(dāng)厲害的??!

        下面放出剛剛編錄完成的程序,暫時(shí)只能測試遙控碼!!
        下載地址:http://www.51hei.com/f/hw51d.rar

        本文引用地址:http://www.104case.com/article/201611/323381.htm


        測試遙控碼(家里電視機(jī)待機(jī)按鍵遙控碼):


        程序是由C語言編寫,單片機(jī)使用AT89C52 下面是程序:
        #include
        #include
        #define uchar unsigned char
        #define uint unsigned int
        #define ulong unsigned long

        #defineNop(){_nop_(); _nop_(); _nop_(); _nop_(); _nop_();}

        volatile ulong IRcode=0x00000000;
        volatile ulong Irdcode=0x00000000;
        volatile uint customcode=0x0000;
        volatile uint time_us=0x0000;

        volatile uchar timeH,timeL;

        uchar Lcustomcode;
        uchar Hcustomcode;
        uchar datacode;
        uchar mycode;
        uchar Rdatacode;
        uchar uc1ms;
        uchar uc10ms;
        uchar uc3ms;

        uchar ucDispTime;
        uchar ucDispOrder;
        uchar ucDispCon;
        uchar ucSpeakerTime;
        unsigned char code LedData[16] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
        unsigned char code LedCon[2] = {0x8f,0x4f};
        unsigned char ucDispData[2];
        sbit led1 = P3^7;
        sbit led2 = P3^6;
        sbit power=P1^0;
        sbit BEEP= P2^1;
        bit NewIRcode=0;
        bit DataRight=0;
        bit bSampleOk;
        bit bSampling;
        bit b10msInt;
        bit b1msInt;
        bit bKeySound;
        bit b1msMain;
        bit IR_E;
        bit b3msint;

        void SendDataToDispDevice();
        void Ir_process();
        void display();
        void beeping();

        void init()
        {
        IP=0x09;
        TMOD=0x11;
        TCON=0x01;
        TH0=0xff;
        TL0=0x47;
        TH1=0x00;
        TL1=0x00;

        EA=1;
        ET0=1;
        ET1=1;
        EX0=1;
        TR1=0;
        TR0=1;

        }

        void TimeProg(void)
        {
        b1msMain = b1msInt;
        b1msMain=0;
        b10msInt = 0;


        if(b1msInt == 1)
        {
        b1msMain=1;
        if(++uc10ms == 10)
        {
        uc10ms = 0;
        b10msInt = 1;
        if(bKeySound==1)
        {beeping();
        bKeySound=0;
        }
        }

        }
        }//void TimeProg(void)

        void IR_ISR() interrupt 0 using 1
        {
        static uchar cn;

        TR1=0;
        timeH=TH1;
        timeL=TL1;
        TH1=0;
        TL1=0;
        TR1=1;

        time_us=(unsigned int)timeH;
        time_us=time_us<<8;
        time_us=time_us|timeL;

        if(time_us>12200&&time_us<13000) {cn=1;IRcode=0;}
        if(cn<34)
        {
        if(time_us>950&&time_us<1120) //0
        {
        IRcode=IRcode|0x00000000;
        if(cn<33) IRcode=IRcode>>1;
        }

        else if(time_us>1920&&time_us<2120) //1t > 1950 && t < 2150
        {
        IRcode=IRcode|0x80000000;
        if(cn<33) IRcode=IRcode>>1;
        }


        //else if(time_us>10000&&time_us<11000) {Irdcode=IRcode;cn=34; }
        }
        cn++;
        if(cn==34)
        { NewIRcode=1;
        TR1=0;

        Irdcode= IRcode; cn=0;
        }

        }


        上一頁 1 2 下一頁

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 杭州市| 丹凤县| 涞水县| 科技| 凉城县| 山阴县| 德化县| 油尖旺区| 寿宁县| 邵阳市| 县级市| 宜春市| 武胜县| 堆龙德庆县| 施秉县| 房产| 翁牛特旗| 高陵县| 沾化县| 遂川县| 通化县| 酉阳| 德昌县| 兴城市| 宜兰县| 红安县| 木里| 济源市| 福建省| 南汇区| 韩城市| 东港市| 白银市| 沛县| 新野县| 昆明市| 资中县| 连山| 喀喇| 彰武县| 阜城县|