在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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單片機串口程序C語言版

            51單片機串口程序C語言版

            作者: 時間:2016-11-19 來源:網(wǎng)絡(luò) 收藏
            這篇文章主要來介紹一下51單片機的串口,下面先來看一下與串口相關(guān)的寄存器。

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

            圖1 (該圖來自51單片機技術(shù)文檔)

            下面來逐個介紹個寄存器。

            SCON寄存器的SM1,SM2主要用來設(shè)置串行口的工作方式,具體對應關(guān)系見圖2,REN:串行口接受使能位,當單片機要接受數(shù)據(jù)時該位應該置一,TB8:發(fā)送數(shù)據(jù)的第九位。在方式2或者方式3中TB8為發(fā)送的第九位數(shù)據(jù)。該位不是很常用,具體介紹請查看51單片機的技術(shù)文檔,這里不多做介紹。TI:發(fā)送中斷標志,由硬件在方式0串行發(fā)送第8位結(jié)束時置位,或在其它方式串行發(fā)送停止位的開始時置位,必須由軟件清零。RI:接受中斷標志,由硬件由硬件在方式0串行發(fā)送第8位結(jié)束時置位,或在其它方式串行發(fā)送停止位的中間時置位,必須由軟件清零。

            在這里需要提醒的是,大家在看技術(shù)文檔是一定要注意那些必須由軟件清零的標志位,在寫程序時一定要記得清零。

            圖2(本圖來自51單片機技術(shù)文檔)

            SBUF寄存器:(為了方便就直接截圖說明了)

            PCON寄存器D7位SMOD是串行波特率倍增位,SMOD為一時,串行口在工作方式1,方式2,方式3中波特率加倍,復位時,SMOD=0.

            寄存器IPH,IPSADEN,SADDR不是很常用,在這里就不做介紹,我下面的程序中也沒有用到,感興趣的可以自己查閱一下技術(shù)文檔。

            接下來開始調(diào)試串口的方法和步驟。

            1.STC—ISP下載軟件自帶串口調(diào)試功能。下面是軟件界面

            2.在串口調(diào)試之前還必須知道自己學習板接的是電腦的哪個端口,查看端口的方法如下:

            右鍵單擊桌面上的:我的電腦—設(shè)備管理器,如果學習板通過下載線連接到了電腦會顯示如下界面:

            從端口選項中可以看到我連接的是COM3.

            3接下來的任務(wù)就是不程序下載到單片機中開始調(diào)試了(程序我會在下面給出,先把調(diào)試步驟介紹完)

            程序下載完畢之后單擊STC-ISP下載軟件中的:串口助手按鈕,就會出現(xiàn)如下界面:

            然后在點擊打開串口按鈕,上圖中顯示的是:關(guān)閉串口,是因為我的串口已經(jīng)打開了,接下來在單字符串發(fā)送區(qū),輸入要傳送的數(shù)據(jù),例如傳送:77,選擇十六進制發(fā)送,觀察,學習班上LED的亮滅情況,和數(shù)據(jù)接區(qū)的反應。如下圖:

            需要注意的是必須要將COM(即端口號),比特率,校驗位,數(shù)據(jù)位,停止位,設(shè)置正確否則會顯示亂碼。

            可以觀察到的現(xiàn)象是:led的第八個和第四個點亮了,原因也很簡單,因為發(fā)送的數(shù)據(jù)是77,選擇的是十六進制發(fā)送,即0111 0111,可以看到第8位和第四位是零,所以LED點亮了。接受單口顯示data recieve ok,說明單片機數(shù)據(jù)接受成功。

            最后也是最重要的就是編寫程序了:下面是我的調(diào)試程序,希望對大家能有幫助。







            (因為程序粘貼過來的時候注釋會顯示亂碼,沒辦法只好使用截圖,請大家將就著看一下,還有需要提醒的是程序的第57,58和第29行在截圖時重復了請大家仔細對著行標號看就很清楚了)

            程序的注釋寫的很清楚,我在這里就不重復解釋了,不懂的請大家仔細看注釋。



            關(guān)鍵詞: 51單片機串口程序C語言

            評論


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

            關(guān)閉