在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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è)計應用 > 單片機程序的無限循環(huán)問題

            單片機程序的無限循環(huán)問題

            作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
            有如下單片機程序,功能是通過串行口向外發(fā)送字符0、1、2、3、4、5、6、7、8、9,波特率:9600,無校驗位,8位數(shù)據(jù)位,1位停止位。

            #include
            void Send(char signal)//數(shù)據(jù)發(fā)送函數(shù)
            {
            SBUF=signal;
            while(TI==0);
            TI=0;
            }

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

            void main(void) //主函數(shù)
            {

            int i;
            char a[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; //字符表
            TMOD=0x20;
            SCON=0x40;
            PCON=0x00;
            TH1=0xfd;
            TL1=0xfd;
            TR1=1;
            for(i=0;i<10;i++)
            {
            Send(a[i]); //依次發(fā)送字符
            }
            }

            通過閱讀程序可知,在執(zhí)行時,單片機會向外發(fā)送一遍0—9共十個字符,用Keil仿真的結(jié)果也是這樣,但是將程序?qū)懭腴_發(fā)板實際運行時,就變成一遍遍地發(fā)送字符0—9,形成了死循環(huán)——很難解釋為什么會這樣。

            為了糾正這種現(xiàn)象,不得不在程序末尾加上一句while(1),這樣才正常起來。

            改后程序如下:

            #include
            void Send(char signal)//數(shù)據(jù)發(fā)送函數(shù)
            {
            SBUF=signal;
            while(TI==0);
            TI=0;
            }

            void main(void) //主函數(shù)
            {

            int i;
            char a[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; //字符表
            TMOD=0x20;
            SCON=0x40;
            PCON=0x00;
            TH1=0xfd;
            TL1=0xfd;
            TR1=1;
            for(i=0;i<10;i++)
            {
            Send(a[i]); //依次發(fā)送字符
            }
            while(1);
            }

            起碼通過這一現(xiàn)象可以知道,Keil的仿真并不一定能代表真實情況。



            關(guān)鍵詞: 單片機程序無限循

            評論


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

            關(guān)閉