<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 輕松學(xué)PIC之RS232串口通信篇

          輕松學(xué)PIC之RS232串口通信篇

          作者: 時間:2013-11-14 來源:網(wǎng)絡(luò) 收藏

          在實(shí)際應(yīng)用中一般采用如圖4 所示的硬件電路圖,這是最簡單的連接方法,但是對我們來說已經(jīng)足夠使用了。

            為了能夠在電腦端看到單片機(jī)發(fā)出的數(shù)據(jù),我們必須借助一個PC 機(jī)(上位機(jī))的軟件進(jìn)行觀察,這里我們推薦一個免費(fèi)的電腦串口調(diào)試軟件——串口調(diào)試助手,軟件界面如圖5 所示。

            軟件可以設(shè)定串口號、波特率、校驗(yàn)位等參數(shù),非常實(shí)用。在實(shí)際應(yīng)用中一定要保證上位機(jī)設(shè)置與單片機(jī)相統(tǒng)一,否則數(shù)據(jù)將會出錯。串口調(diào)試助手可以從http://www.hificat.com/ 免費(fèi)下載使用。

            對于下位機(jī)軟件的編程,我們使用MPLab IDE 軟件來進(jìn)行C 語言編程,它是我們的編程環(huán)境,同時我們可以通過使用ICD2 仿真燒寫器和增強(qiáng)型實(shí)驗(yàn)板連接進(jìn)行程序的仿真調(diào)試和燒寫步驟,具體的操作步驟,我們已經(jīng)在前幾期做了詳細(xì)的說明和介紹,在此就不再重復(fù)說明,讀者朋友可以參閱以前的文章或直接登陸http://www.hificat.com/pic_demo/pic_demo.asp 查看資料。現(xiàn)在我們可以輸入程序代碼進(jìn)行調(diào)試了,我們在MPLab IDE 軟件中新建工程,加入源程序代碼,同時進(jìn)行芯片型號的選擇和配置位的設(shè)置,我們實(shí)驗(yàn)所用的芯片型號為16F877A。編寫的程序代碼如下:

            #includepic.h> / 包含單片機(jī)內(nèi)部資源預(yù)定義

            unsigned char recdata;

            void delay() // 延時子程序

            {

            unsigned int k;

            for(k=0;k300;k++);

            }

            //------------------------------

            // 主程序

            void main()

            {

            TRISC=0xC0; // 設(shè)置C 口方向

            TRISA=0XC0; //RA0--RA5 為輸出

            SPBRG=0X19; // 設(shè)置波特率為9600BPS

            TXSTA=0X24; // 使能串口發(fā)送,選擇高速波特率

            RCSTA=0X90; // 使能串口工作,連續(xù)接收

            RCIE=0X1; // 使能接收中斷

            GIE=0X1; // 開放全局中斷

            PEIE=0X1; // 使能外部中斷

            while(1) // 等待中斷

            {

            switch (recdata)

            {

            case 0x01:PORTC=0x01;break;

            case 0x02:PORTC=0x02;break;

            case 0x03:PORTC=0x04;break;

            case 0x04:PORTC=0x08;break;

            case 0x05:PORTC=0x10;break;

            case 0x06:PORTC=0x20;break;

            }

            delay();

            }

            }

            //------------------------------

            // 中斷函數(shù)

            void interrupt usart(void)

            {

            if(RCIF) // 判斷是否為串口接收中斷

            {

            RCIF=0;

            recdata=RCREG; // 接收數(shù)據(jù)并存儲

            TXREG=recdata; // 返送接收到的數(shù)據(jù) // 把接

            收到的數(shù)據(jù)發(fā)送回去

            }

            }

            編好程序后,讀者朋友可以將編譯好的HEX 通過ICD2 仿真燒寫器燒入單片機(jī)芯片,然后上電運(yùn)行。首先,我們打開串口調(diào)試助手,設(shè)定好串口序號、波特率等相關(guān)參數(shù),具體參數(shù)見圖6 所示,然后我們發(fā)送十六進(jìn)制數(shù)“01”,我們的思路是發(fā)送數(shù)據(jù)“01”,則點(diǎn)亮實(shí)驗(yàn)板上第一個LED 發(fā)光管;發(fā)送數(shù)據(jù)“02”,則點(diǎn)亮板上第二個LED 發(fā)光管,現(xiàn)在我們發(fā)送了“01”后,我們可以看到實(shí)驗(yàn)板上的第一個發(fā)光管已點(diǎn)亮,如圖7 所示,同樣,你可以試一下用串口調(diào)試助手發(fā)送其它數(shù)據(jù)內(nèi)容,板子上將會出現(xiàn)何種現(xiàn)象。

            我們輸入了這么長一段程序后,作為初學(xué)者的讀者一定對有些語句會有點(diǎn)疑問,下面我們就來一起結(jié)果實(shí)際,看一下一些關(guān)鍵程序語句的作用。

            #includepic.h> 語句用來加載 庫文件,頭部recdata 變量的定義是用來存放我們接收到的串口數(shù)據(jù),void delay () 是延時函數(shù),TRISC、TRISA 相關(guān)的語句用來設(shè)置RC、RA 口的輸入、輸出狀態(tài),在此我們設(shè)置為輸出。SPBRG=0X19 至PEIE=0X1 這些語句,分別是對參數(shù)的配置與開啟中斷使能, while(1) 是死循環(huán)語句,即周而復(fù)始地執(zhí)行{ } 內(nèi)的語句體,如我們現(xiàn)在的程序中的作用即是不停地判斷recdata 這個變量,也就是不停地判斷串口接收到的數(shù)據(jù)是否為0x01、0x02??

            0x06 這些數(shù)據(jù),通過判斷不同的數(shù)值,再點(diǎn)亮板上LED 發(fā)光管,即PORTC 端口的賦值。在程序尾部有個interrupt usart() 函數(shù),它是我們的中斷處理函數(shù),當(dāng)有串口中斷產(chǎn)生時,就會進(jìn)入這個函數(shù)體,函數(shù)體中語句的主要作用是把接收到的串口數(shù)據(jù)放到變量recdata 中,同時將接收到的數(shù)據(jù)再返回給上位機(jī),即回傳給PC 機(jī),這樣就進(jìn)行了一次完整的雙向通信。

             的原理與使用我們講到這里,接下來幾期,我們將繼續(xù)一起學(xué)習(xí)增強(qiáng)型PIC 實(shí)驗(yàn)板的其它各部分資源的原理與使用,使你對單片機(jī)應(yīng)用的各方面知識都有所入門與提高。增強(qiáng)型PIC實(shí)驗(yàn)板系統(tǒng)資源豐富,可做實(shí)驗(yàn)有:6 位LED 數(shù)碼管、8 路LED、直控鍵盤、蜂鳴器喇叭、繼電器試驗(yàn)、I2C 總線接口、SPI 總線接口、160X 液晶、128X64液晶、紅外接收頭接口、步進(jìn)電機(jī)驅(qū)動接口、AD模/ 數(shù)轉(zhuǎn)換接口、串行時鐘芯片DS1302、溫度傳感器DS18B20 接口、 串口通訊、外擴(kuò)展接口以便外接更多的實(shí)驗(yàn)資源。

          手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)


          數(shù)字通信相關(guān)文章:數(shù)字通信原理


          通信相關(guān)文章:通信原理


          電荷放大器相關(guān)文章:電荷放大器原理
          蜂鳴器相關(guān)文章:蜂鳴器原理

          上一頁 1 2 下一頁

          關(guān)鍵詞: PIC RS232 串口通信

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();