亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦>創(chuàng)業(yè)指南>辦事指南>辦事流程>

      串口中斷程序流程圖

      時間: 嘉敏1004 分享

        串行接口簡稱串口,也稱串行通信接口或串行通訊接口(通常指COM接口),是采用串行通信方式的擴(kuò)展接口。什么原因?qū)е麓谥袛?,中斷的問題在哪里。小編給大家整理了關(guān)于串口中斷程序流程圖,希望你們喜歡!

        串口中斷程序流程圖

        引起串口中斷的問題

        1、 你要發(fā)送的數(shù)據(jù),經(jīng)串行口發(fā)送后,SCON中的TI會置1,這時候就會有串行口中斷,通知單片機(jī)數(shù)據(jù)已經(jīng)發(fā)送成功,單片機(jī)就可以進(jìn)入串行口中斷程序(匯編中入口地址0023H),這時候你就可以再一次發(fā)送數(shù)據(jù),也就是將數(shù)據(jù)寫到SBUF中,發(fā)送后中斷返回,等到發(fā)送成功后會再一次產(chǎn)生串行口中斷,這時你就可以再次進(jìn)入中斷處理程序,發(fā)送數(shù)據(jù)。

        流程是: (主程序中)發(fā)送數(shù)據(jù)--等待中斷--發(fā)送成功產(chǎn)生中斷--進(jìn)入中斷清除TI,再次發(fā)送--中斷返回---等待中斷---發(fā)送成功產(chǎn)生中斷--進(jìn)入中斷清除TI,再次發(fā)送。。。。 循環(huán)而已

        2、如果你想定時發(fā)送,比如每隔一段時間發(fā)送一次,這時你可以用定時器,在定時器的中斷處理程序中發(fā)送數(shù)據(jù),而不去理會串行口中斷(可以關(guān)閉串行口中斷或者在串行口中斷中什么也不做直接返回)。

        需要注意的是:如果你用串行口工作方式1或者3,那么定時器1就被作為波特率發(fā)生器,是不能開定時器1的中斷的。定時器0不受影響,可以用。如果你選的是方式2,則兩個定時器都可以用,也可以組合使用,產(chǎn)生較長時間定時。

        3、你想用外中斷觸發(fā),來發(fā)送數(shù)據(jù)的話,和2情況相同,此時可以由你自己手工控制什么時候發(fā)送,只需要關(guān)閉串行口中斷(默認(rèn)為關(guān)閉),開外中斷,在外中斷處理程序中發(fā)送數(shù)據(jù),要想知道發(fā)送成功了沒有,可以檢查TI,不影響外中斷。

        綜合來說就是中斷可開可閉,也可以同時用兩個甚至多個,但這樣容易引起數(shù)據(jù)發(fā)不到就被另一個中斷打斷,最好根據(jù)實(shí)際情況選擇其中一種

        關(guān)于計(jì)數(shù)結(jié)束

        你的計(jì)數(shù)結(jié)束表述不明確啊,是計(jì)數(shù)器溢出了計(jì)數(shù)結(jié)束呢,還是說后面沒有脈沖了(即外部脈沖結(jié)束了)計(jì)數(shù)結(jié)束呢?如果是前者,很簡單只要在計(jì)數(shù)器的中斷處理程序中完成你所需的操作,如果是后者,就沒那么簡單了,因?yàn)閱纹瑱C(jī)不可能知道什么時候外部脈沖什么時候結(jié)束,除非用外部中斷的方式通知單片機(jī),你可以在外部中斷處理程序中,完成取數(shù),給上位機(jī)通過串口送數(shù),這時候你必須做出選擇 1,如果某次計(jì)數(shù)結(jié)束,你上一次經(jīng)過串口發(fā)送的數(shù)據(jù),還沒發(fā)送成功,你放棄本次發(fā)送 2,如果某次計(jì)數(shù)結(jié)束,你上一次經(jīng)過串口發(fā)送的數(shù)據(jù),還沒發(fā)送成功,你繼續(xù)發(fā)送,覆蓋原來數(shù)據(jù)。

        其實(shí)你應(yīng)該把你的東西詳細(xì)說出來,你只說一個方面,可能你的想法不太對路,我還要按照你的不太對路的想法給你解釋,這樣不太方便。 如果你想計(jì)數(shù)的話,一般的方法是,給一個定時器設(shè)定一個時間,另一個做計(jì)數(shù)器,定時器時間一到,就在段中取數(shù),給上位機(jī)送數(shù),定時器可工作在方式2,循環(huán)送數(shù)。不知道你是不是想做這個。

        如果你是發(fā)送數(shù)據(jù),你不應(yīng)該把注意力放在串口中斷上,除非你過分追求發(fā)送的成功率,一般情況下都能發(fā)送成功。

        你說的“用串口中斷傳數(shù)給上位機(jī)”,這句話本身就有問題,TI是在發(fā)送完畢后產(chǎn)生中斷,你甚至可以不理它,用定時器中斷的處理程序來完成取數(shù),送數(shù)。所以說你必須明確到底是發(fā)送完畢后立即再次發(fā)送(利用TI),還是每次你所謂的“計(jì)數(shù)結(jié)束”后發(fā)送數(shù)據(jù)(此時勸你不要在意TI)。

      串口中斷程序流程圖相關(guān)文章:

      1.串口通信程序流程圖

      2.串口通信流程圖

      3.程序控制流程圖

      4.程序結(jié)構(gòu)流程圖

      5.處理客戶投訴的流程圖

      3109412