新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機串口通信

        51單片機串口通信

        作者: 時間:2012-10-23 來源:網絡 收藏

        三、程序設計

        本講設計實例程序如下:

        #include "AT89X52.h" (1)

        void Init_Com(void) ( 2)

        {

        TMOD = 0x20; ( 3)

        PCON = 0x00; ( 4)

        SCON = 0x50; ( 5)

        TH1 = 0xE8; ( 6)

        TL1 = 0xE8; ( 7)

        TR1 = 1; ( 8)

        }

        void main(void) ( 9)

        {

        unsigned char dat; ( 10)

        Init_Com(); ( 11)

        while(1) ( 12)

        程序詳細說明:

        (1)頭文件包含。

        (2)聲明串口初始化程序。

        (3)設置定時器1 工作在模式2,自動裝載初值(詳見第二講)。

        (4)SMOD 位清0,波特率不加倍。

        (5)串行口工作在方式1,并允許接收。

        (6)定時器1 高8 位賦初值。波特率為1200b/s(7)定時器1 低8 位賦初值。

        (8)啟動定時器。

        (9)主函數。

        (10)定義一個字符型變量。

        (11)初始化串口。

        (12)死循環。

        (13)如果接收到數據。

        (14)將接收到的數據賦給之前定義的變量。

        (15)將接收到的值輸出到P0 口。

        (16)對接收標志位清0,準備再次接收。

        (17)將接收到的數據又發送出去。

        (18)查詢是否發送完畢。

        (19)對發送標志位清0。

        四、調試要點與實驗現象

        接好硬件,通過冷啟動方式將程序所生成的。hex文件下載到單片機運行后,打開串口調試助手軟件,設置好波特率1200,復位單片機,然后在通過串口調試助手往單片機發送數據(見圖3),可以觀察到在接收窗口有發送的數據顯示,此外電路板上的串行通信指示燈也會閃爍,P0 口所接到LED 燈會閃爍所接收到的數據。

        51單片機串口通信

        圖3 串口軟件調試界面

        另外串口調試助手軟件使用時應注意的是,如果單片機開發板采用串口下載而且和串口調試助手是使用同一串口,則在打開串口軟件的同時不能給單片機下載程序,如需要下載,請首先點擊“關閉串口”,做發送實驗的時候,注意如果選中16 進制發送的就是數字或者字母的16 進制數值,比如發送“0”,實際接收的就應該是0x00,如果不選中,默認發送的是ASCII 碼值,此時發送“0”,實際接收的就應該是0x30,這點可以通過觀察板子P0 口上的對應的LED 指示出來。

        五、總結

        本講介紹了單片機的原理并給出了實例,通過該講,讀者可以了解和掌握51 單片機的原理與應用流程,利用,單片機可以與計算機相連,也可以單片機互聯或者多個單片機相互通信組網等,在實際的工程應用中非常廣泛。從學習的角度來說,熟練的利用串口將單片機系統中的相關信息顯示在計算機上可以很直觀方便的進行調試和開發。

        51單片機相關文章:51單片機教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        數字通信相關文章:數字通信原理


        通信相關文章:通信原理



        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 双峰县| 乌拉特前旗| 辉南县| 东源县| 清丰县| 成安县| 巍山| 合江县| 辉南县| 雷山县| 廉江市| 凌云县| 冀州市| 广德县| 唐山市| 贵溪市| 定南县| 邳州市| 郑州市| 辰溪县| 铜陵市| 芜湖市| 辽宁省| 聂拉木县| 英德市| 彩票| 武安市| 雷波县| 曲阳县| 巴青县| 绩溪县| 达州市| 磴口县| 米易县| 洪泽县| 兰西县| 衡山县| 得荣县| 西乌| 永兴县| 福鼎市|