新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > RS-232接口與單片機串行通信程序

        RS-232接口與單片機串行通信程序

        作者: 時間:2013-01-15 來源:網絡 收藏


        4、接收到數據后,發出一時短聲提示。同時將數據重新發送回電腦串口,供電腦程序接收顯示,電腦軟件接收到發送過來的數據后,顯示在軟件的接收數據窗中。

        程序設計】

        該系統程序由單片機通信程序和電腦通信程序構成。在微機測控系統中,一般稱計算機為上位機、而前端采集控制的單片機系統稱為下位機。上位機主要負責所有測控數據的綜合管理與下位機的調度控制,而下位機由單片機構成前端的測控系統,進行原始數據的采集及設備的控制,下位機受上位機的管理控制。

        一、單片機程序開發

        51單片機有一個全雙工的口,非常適合與電腦進行通信,51單片機的串口開發在各種教科書上都有詳細的介紹,我們這里不在重復,大家可以參考一下書籍。單片機程序功能主要如下:初始化串口、打開串口中斷、接收電腦發送的數據、在1602液晶模塊上顯示數據、將數據發送回電腦RS-232串口、接收繼電器控制命令、控制繼電器動作等。

        單片機通信參考程序如下:

        ORG0000H
        AJMPSTART ;轉到初始化程序

        ORG0023H
        AJMPPGUART ;轉到串行中斷服務子程序

        START:MOVSP,#60H ;堆棧指針初始化
        MOVP0,#0FFH ;P0端口初始化
        MOVP1,#0FFH ;P1端口初始化
        MOVP2,#0FFH ;P2端口初始化
        MOVP3,#0FFH ;P3端口初始化
        MOVTMOD,#20H ;定時器T1工作于模式2,自動重裝載
        MOVTH1,#0FDH ;TH1初值為"0FDH",9600bps
        MOVTL1,#0FDH ;TL1初值為"0FDH",9600bps
        MOVSCON,#50H ;串行口工作于方式1,允許接收
        SETBTR1 ;啟動定時器T1
        SETBES ;允許串行口中斷
        SETBEA ;開總中斷
        CLR UABIT
        ;----------------------與單片機程序設計-------------------------------

        MAIN:...... ;主程序處理其他任務,等待串口中斷
        AJMP MAIN

        PGUART: ...... ;串口中斷服務子程序,接收處理數據
        RETI

        END

        二、RS-232串行通信測試軟件開發

        計算機RS-232串行通信測試軟件采用VB6.0開發,VisualBasic 6.0(簡稱VB6.0)以其簡單易學,

        VB6.0為可視化編程開發軟件,開發程序簡單易學,VB程序開發主要分為兩步:第一步、使用VB控件設計出軟件界面,第二步、給各種控件編寫相應的執行程序代碼,代碼編寫完成后可以運行查看結果了。

        VB6提供了多種控件,其中MSCOMM.OCX是用于串行通信的控件,我們可將該控件添加到工具箱(Toolbox)內,這樣就可以利用該控件進行串行通信程序的設計了。

        下面介紹Mscomm控件的主要屬性和方法:
           1) CommPort:設置或返回串行端口號,VB6的取值范圍為1~16,表示打開或返回通信端口號COM1~COM16
           2) Setting:設置或返回串行端口的波特率、奇偶校驗位、數據位數、停止位。如:Mscomm1.Setting=“9600,N,8,1”
           3) PortOpen:打開或關閉串行端口,格式為:Mscomm1.PortOpen=『True/False』
           4) InBufferSize:設置或返回接收緩沖區的大小,缺省為1024字節
           5) InBufferCount:返回接收緩沖區內的等待讀取的字節個數,可通過設置該屬性為0來清除接收緩沖區
           6) RThreshold:該屬性為一閥值,當接收緩沖區內字節個數達到或超過該值后就產生OnComm事件
           7) InputLen:設置或返回接收緩沖區內用Input讀入的個數。若取0,則Input將讀取整個緩沖區的所有內容
           8) Input:該屬性表示從接收緩沖區InputLen個字符
           9) OutBufferSize:設置或返回發送緩沖區大小,缺省為512字節
           10) OutBufferCounter:返回發送緩沖區內等待發送的字符數,可用來清空緩沖區
           11) Output:向發送緩沖區傳送一字符串,即向串口發送數據



        第一步:開發程序界面

        打開VB6.0 -> 新建“標準 EXE”建立一個新的工程。在工程窗口Form1中添加我們要使用的各種按鈕和控件,其中一個圖標如電話一樣的控件就是MSCOMM串行通信控件了,該控件在界面設計時候可見,在程序運行時候不可見。最后,放置好了各種控件后,程序的界面界面就出來了,是不是很簡單呀!如下圖4所示:

      1. <fieldset id="4ggi2"></fieldset>
        <strike id="4ggi2"><input id="4ggi2"></input></strike>
        <strike id="4ggi2"><input id="4ggi2"></input></strike><ul id="4ggi2"><tfoot id="4ggi2"></tfoot></ul><xmp id="4ggi2"><dfn id="4ggi2"></dfn></xmp>
        <ul id="4ggi2"></ul>
      2. RS-232串口通信測試軟件界面開發
        點擊瀏覽下一頁

        圖 4

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


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


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


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


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


        通信相關文章:通信原理




        評論


        相關推薦

        技術專區

        主站蜘蛛池模板: 综艺| 临猗县| 镇坪县| 家居| 木里| 诏安县| 鞍山市| 宁远县| 郎溪县| 蒙山县| 杨浦区| 孝昌县| 宾阳县| 千阳县| 宜兰县| 西藏| 博野县| 任丘市| 禄劝| 裕民县| 三台县| 泸州市| 沐川县| 乡城县| 柳州市| 邳州市| 类乌齐县| 鄢陵县| 二手房| 工布江达县| 大姚县| 大冶市| 南和县| 宣恩县| 航空| 海门市| 广东省| 开江县| 三江| 太谷县| 平阳县|
        <fieldset id="4ggi2"><input id="4ggi2"></input></fieldset>