<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于VC6.0的多單片機和PC機串口通訊實(shí)現方案

基于VC6.0的多單片機和PC機串口通訊實(shí)現方案

作者: 時(shí)間:2013-09-29 來(lái)源:網(wǎng)絡(luò ) 收藏


軟件設計

下位機程序設計

  主要由數據發(fā)送和數據接收子程序組成。設計單片機通信程序時(shí),必須充分發(fā)揮單片機的效率。由于單片機多應用于實(shí)時(shí)性較強的控制場(chǎng)合,因此, 應將及時(shí)響應和控制對象的動(dòng)作放在優(yōu)先考慮的位置,以盡量減少通信等輔助性操作所占用的CPU時(shí)間?;谏鲜隹紤],在設計單片機通信程序時(shí),將通信程序分為接收中斷處理程序和發(fā)送中斷處理程序2部分。

主程序首先完成串行口的初始化、設置串口的工作方式、串口波特率,數據位、校驗位等。

(1) 接收子程序

  在接收到上位機發(fā)送的地址后, 下位機響應中斷信號進(jìn)入接收子程序。首先讀取上位機發(fā)送的地址數據, 檢查地址是否匹配,如果匹配, 準備接收其余的數據幀。在接收完上位機發(fā)送的數據后,判斷下位機是否發(fā)出中斷申請,如果有,則清除中斷申請信號。
  (2) 發(fā)送子程序只有當發(fā)送緩沖區內有數據要發(fā)送并且置位發(fā)送中斷允許位時(shí)才調用。發(fā)送的數據遵守通訊協(xié)議的數據幀格式:首先發(fā)送起始標志, 然后發(fā)送需要傳輸的數據,最后發(fā)送校驗和以及結束標志位。

上位機通訊

  上位機程序設計采用VC ++ 6.0開(kāi)發(fā)平臺來(lái)實(shí)現。應用MSComm控件,可以非常方便地創(chuàng )建串行通信應用程序,但其程序執行效率不夠高,并且無(wú)法應用串行通信的一些底層功能。CSerialPort類(lèi)支持線(xiàn)連接的串口編程操作,編寫(xiě)的程序在Windows98/2000/XP下可以很好的運行CSerialPort類(lèi)是基于多線(xiàn)程的。

  1)設置通信對象、通信端口號以及配置通信格式(如起始位個(gè)數、數據位長(cháng)度、校驗方式、停止位個(gè)數等) 和其他相關(guān)屬性;

  2)設定通信協(xié)議;

  3)打開(kāi)通信端口,進(jìn)行數據的傳輸;

m_Port.StartMonitoring();//開(kāi)啟監視線(xiàn)程;

m_Port.WriteToPort((LPCTSTR)temp);//發(fā)送數據;

  4)關(guān)閉通信端口,釋放系統資源。在完成串行通信操作后,應該將串行通信端口的資源歸還給操作系統;

m_Port.ClosePort();//關(guān)閉串口
  上位機程序工作流程如下:首先設置好串口參數,再開(kāi)啟串口監測工作線(xiàn)程,串口監測工作線(xiàn)程監測到串口接收到的數據、流控制事件或其他串口事件后,就以消息方式通知主程序,激發(fā)消息處理函數來(lái)進(jìn)行數據處理,這是對接收數據而言;發(fā)送數據可以直接發(fā)送。


結束語(yǔ)

  串 口通訊方式在計算機控制系統中有著(zhù)廣泛的應用,本文設計的通訊協(xié)議經(jīng)實(shí)踐證明穩定可靠,保證了單片機與PC之間數據傳輸的準確率,CSerialPort類(lèi)簡(jiǎn)化封裝了大部分通訊用API函數,同時(shí)簡(jiǎn)化了編程操作在實(shí)際中有著(zhù)廣泛的應用 。

參考文獻:

[1].PC datasheethttp://www.dzsc.com/datasheet/PC+_2043275.html.
[2].MSP430F169datasheethttp://www.dzsc.com/datasheet/MSP430F169_98.h.
[3].MSP430 datasheethttp://www.dzsc.com/datasheet/MSP430+_490166.html.
[4].MAX3232datasheethttp://www.dzsc.com/datasheet/MAX3232_1107769.html.
[5].RISCdatasheethttp://www.dzsc.com/datasheet/RISC_1189725.html.

單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理


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


分頻器相關(guān)文章:分頻器原理
晶振相關(guān)文章:晶振原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: VC6.0 多單片機 PC機 串口通訊

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>