在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于89C52與DT9122D紅外遙控用數(shù)碼管顯示

            基于89C52與DT9122D紅外遙控用數(shù)碼管顯示

            作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
            本實驗是89C52DT9122D紅外遙控的鍵值顯示在數(shù)碼管上,希望對朋友們有幫助,程序如下:

            #include
            #include
            typedefunsigned int uint;
            typedefunsigned char uchar;

            本文引用地址:http://www.biyoush.com/article/201611/322562.htm

            uchar code smg_tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//數(shù)碼管段碼0~F

            sbit IRINPUT=P3^2;//紅外線接收頭端口

            uchar IR_Input_Buffer[]={0x00,0x00,0x00,0x00};
            uchar Display_Buffer[]={0x00,0x00};//數(shù)碼管顯示緩沖
            //-------------------------------------------------/
            //函數(shù)功能:延時函數(shù)(MS)              /
            //入口參數(shù):x/
            //出口函數(shù):無/
            //------------------------------------------------/
            void _delay_ms(uint x)
            {
            uchar i;
            while(x--)for(i=0;i<120;i++);
            }
            //-------------------------------------------------/
            //函數(shù)功能:延時函數(shù)(140US)           //
            //入口參數(shù):x//
            //出口函數(shù):無//

            void _delay_us(uint x)
            {
            uchar i;
            while(x--)
            for(i=0;i<13;i++);
            }
            //-------------------------------------------------/
            //函數(shù)功能:中斷0初始化             /
            //入口參數(shù):無//
            //出口函數(shù):無//

            void IR_INT0(void)
            {
            EX0=1;
            IT0=1;
            EA=1;
            }
            //------------------------------------------------/
            //函數(shù)功能:顯示函數(shù)(把接收到數(shù)據(jù)顯示在數(shù)碼管)   /
            //入口參數(shù):無/
            //出口函數(shù):無  /
            //------------------------------------------------/
            void Show_IR_Input_Value(void)
            {
            P2=0x7f;
            P0=smg_tab[Display_Buffer[0]];
            _delay_ms(2);
            P2=0xbf;
            P0=smg_tab[Display_Buffer[1]];
            _delay_ms(2);
            }
            //--------------------------------------------------/
            //函數(shù)功能:主函數(shù)(程序入口)            /
            //入口參數(shù):無/
            //出口函數(shù):無  /
            //------------------------------------------------/
            void main(void)
            {
            IR_INT0();
            IRINPUT=1;
            while(1)
            {
            Show_IR_Input_Value();
            }
            }
            //--------------------------------------------------/
            //函數(shù)功能:外部中斷0函數(shù)             /
            //入口參數(shù):無/
            //出口函數(shù):無  /
            //-------------------------------------------------/
            void Display_IR_Input_Value(void) interrupt 0//紅外遙控信號進行鍵值解碼和糾錯.
            {

            uchar i,j,k,N=0;
            EX0=0;
            _delay_us(15);
            for(i=0;i<14;i++)
            {
            if(IRINPUT)
            {
            EX0=1;
            return;
            }
            }
            while(!IRINPUT)
            _delay_us(1);
            for(j=0;j<4;j++)
            {
            for(k=0;k<8;k++)
            {
            while(IRINPUT)
            _delay_us(1);
            while(!IRINPUT)
            _delay_us(1);
            while(IRINPUT)
            {
            _delay_us(1);
            N++;
            if(N>=30)
            {
            EX0=1;
            return;
            }
            }
            IR_Input_Buffer[j]=IR_Input_Buffer[j]>>1;
            if(N>=8)
            IR_Input_Buffer[j]=IR_Input_Buffer[j]|0x80;
            N=0;
            }
            }
            if(IR_Input_Buffer[2]!=~IR_Input_Buffer[3])
            {
            EX0=1;
            return;
            }
            Display_Buffer[0]=IR_Input_Buffer[2]&0x0f;
            Display_Buffer[1]=IR_Input_Buffer[2]>>4;
            EX0=1;
            }



            評論


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

            關(guān)閉