在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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è)計應用 > 51學習之串口收發(fā)

            51學習之串口收發(fā)

            作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
            自己寫了個接收程序,流程是上位機發(fā)給單片機,如果收到的是1,就點亮一個LED,同時把收到的再發(fā)到串口。編譯不通過,原因是我把中斷函數(shù)、接收函數(shù)等前加了個void,一直不明白加與不加有何區(qū)別。明天上網(wǎng)查下。去掉,有報警,但是編譯能通過,下進去,果然沒有預期的結(jié)果。也不知道到底是啥毛病,明天再找吧!
            明天調(diào)好這個,再做做收發(fā),就先做自收發(fā)吧!


            調(diào)通了網(wǎng)上原程序。這個也通了??蓪崿F(xiàn)上述功能,不過程序做的是點亮后,延時會熄滅。

            #include
            #define uchar unsigned char
            #define uint unsigned int
            sbit Led = P0^0;
            Delay()
            { int i,j;
            for(i=0;i<5000;i++)
            {
            for(j=0;j<30;j++);
            }
            }


            Uart_int()
            { SCON=0x50;
            TMOD=0x20;
            TH1 =0xfd;
            TL1 =0xfd;
            IE =0x90;
            TR1 =1;
            }
            UART_interrupt() interrupt 4
            { char m;
            ES = 0;
            if(TI)
            {
            TI=0;
            }
            else
            {
            RI=0;
            m=SBUF;

            if(m==0x31)
            {
            Led=0;
            Delay();
            Led=1;
            }
            SBUF=m;
            }
            ES = 1;
            }


            其實,開始我自己做的程序也行。錯就錯在關(guān)于m判斷上。我以前寫的是if(m==1),而從串口發(fā)31或1.而在C中,它只能判定16進制和10進制,所以我的ASCII 收成10進制是49,收成16進制是31,怎么也不會等于1.而把if(m==1)改成if(m==0x31)一試OK了。


            關(guān)鍵詞: 51串口收

            評論


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

            關(guān)閉