新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > MCS251單片機和PC機間的串口通信

        MCS251單片機和PC機間的串口通信

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

          隨著計算機技術的快速發展和廣泛應用,上位機和下位機的主從工作方式為工業控制及自動控制系統所采用。由于分析能力強、處理速度更快及單片機使用靈活方便等特點,所以一般都將作為上位機,單片機作為下位機,二者通過RS2232或者RS2485接收、發送數據和傳送指令。單片機可單獨處理數據和控制任務,同時也將數據傳送給,由PC機對這些數據進行處理或顯示。

          本文介紹PC機和單片機通信在一種基于C8051F單片機的波形發生器中的應用,在上位機上顯示正弦波的幅值和頻率,由上位機發送指令可以改變波形幅度及頻率。

          1 硬件電路的設計

           單片機有一個全雙工的串行通訊口UART,利用其RXD和TXD與外界進行通信,其內部有2 個物理上完全獨立的接收、發送緩沖器SBUF,可同時發送和接收數據。所以單片機和PC機之間可以方便地進行串口通訊。單片機串口有3條引線: TXD (發送數據) 、RXD (接收數據)和GND(信號地) .因此在通信距離較短時可采用零MO2DEM方式,簡單三連線結構。IBM2PC機有兩個標準的RS2232串行口,其電平采用的是E IA電平,而單片機的串行通信是由TXD (發送數據)和RXD (接收數據)來進行全雙工通信的,它們的電平是TTL電平;為了PC機與機之間能可靠地進行串行通信,需要用電平轉換芯片,我們采用了MAXIM公司生產的專用芯片MAX232 進行轉換。

          電路如圖1所示。

        MCS251單片機和PC機間的串口通信

        圖1 轉換芯片電路

          2 系統軟件設計

          軟件設計分上位機軟件設計和下位機軟件設計。這兩部分雖然在不同的機器上編寫和運行,但它們要做的工作是對應的:一個發送,另一個接收。

          為了保證數據通信的可靠性,要制定通信協議,然后各自根據協議分別編制程序。現約定通信協議如下: PC機和單片機都可以發送和接收。上位機和下位機均采用查詢方式發送控字符和數據、中斷方式接收控制字符和數據。采用RS2232串口異步通信,1位起始位, 8位數據位, 1位停止位,無奇偶校驗,波特率9 600 b / s.每次PC機向單片機發送數據時,先發送握手信號"FF",下位單片機收到握手信號則發送應答信號"EE"至PC機,上位PC機收到應答信號后即發送數據。同樣,當單片機要向PC機發送數據時,也先向PC機發聯絡信號"EB90",PC機收到聯絡信號后發應答信號"EBOO",單片機收到應答信號后則發送數據。

          2.1 上位機通信程序設計

          PC機的串口都采用的是INS8250芯片。PC機中有2個異步通信口,一個是COM1,其端口地址范圍是3F8H-3 FFH,另一個是COM2,其端口地址是2F8H-2FFH.其與MODEM配合可以實現遠距離通信。其波特率是標準波特率(50-9 600) b / s。

          8250內部有10個寄存器端口,其中有一個除數鎖存器,可以通過編程除數的大小來確定異步通信的波特率。8250使用的頻率是2 MHz的基準時鐘輸入信號,所以必須用分頻的方法產生所需要的波特率(移位脈沖) .除數鎖存器的值必須在8250初始化時設置, 即把通信線路控制器的最高位(DLAB)置1,然后分兩次把除數鎖存器的高8位和低8位分別寫入端口地址3F8H和3F9H (COM1) ,8250傳送或接收串行數據時使用的時鐘信號的頻率是數

        據傳輸波特率的16 倍,即波特率= 16 ×除數/1 843 200.

          在Windows平臺上的串行通信多使用其提供的AP I函數來實現,這種方法使用起來需要許多底層設置,因而較為繁瑣,并且難以理解。Microsoft推出的ActiveX技術提供了另外一種實現串行通信的方法。這種方法不僅相對較為簡單,而且非常實用。

          尤其是Visual C + +這種可視化面向對象的編程環境中,可以真正把串口看作一個對象,編程時只需簡單的設置,理解起來也很容易。本文上位機通信程序使用VC + +提供的串行通信控件MSComm (Mi2crosoft Communication Control) ,主要步驟如下:打開VC + + 610集成開發環境,選擇菜單項File /New,在出現的對話框中選中Projects標簽中的MFC App2Wizard ( exe) ,生成一個基于對話框的應用程序。選擇菜單項Project/Add to p roject/Components andControls?,在彈出的對話框中選擇Registered Ac2tiveX Controls文件夾下的Microsoft CommunicationsControl, 選擇Registered ActiveX Controls 來注冊MSComm,將該控件從工具箱中拉到對話框中即可實現控件的插入。選擇ClassWizard為新創建的通信控件加入一個成員變量,將其命名為m_commute.


        上一頁 1 2 3 下一頁

        關鍵詞: MCS251 PC機 串口通信

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新龙县| 富平县| 图木舒克市| 宾阳县| 甘肃省| 屏南县| 酒泉市| 宜黄县| 呼伦贝尔市| 芦溪县| 朔州市| 胶州市| 景洪市| 林周县| 改则县| 成安县| 曲周县| 井陉县| 祁门县| 福鼎市| 武乡县| 托里县| 临颍县| 江阴市| 宁城县| 榆林市| 铜鼓县| 开原市| 饶阳县| 开平市| 湘西| 鸡东县| 工布江达县| 婺源县| 娱乐| 建平县| 镇江市| 安义县| 枣庄市| 广东省| 黔西县|