电竞比分网-中国电竞赛事及体育赛事平台

分享

基于VB的PC-單片機通信波特率自動檢測方法

 quasiceo 2015-07-30

基于VB的PC-單片機通信波特率自動檢測方法

2012-03-10 18:33:05   來源:微計算機信息   

關鍵字: PC機  單片機  波特率  自動檢測

一. 引言

    主從分布式微機系統(tǒng)是控制領域廣泛使用的微機系統(tǒng)。主機一般由數據處理能力強、有良好人機界面的PC機擔任,分機常以體積小、價格便宜、控制能力強的單片機為核心。
    信息量不大的PC機—單片機通信一般采用串行通信方式。在分布式多波特率通信系統(tǒng)中,常常要求從機自身的波特率能隨主機設備自動調整以使系統(tǒng)適應性更強、更具智能化。
    本文介紹:主機為PC機用VB6.0編程,從機為80C51單片機時,利用微軟的Mscomm控件和單片機的定時/記數器實現單片機波特率準確自動檢測的方法。
    該方法硬件和軟件實現容易、簡單、實用。

二.MSComm控件簡介

    微軟MSComm控件提供了一系列標準通信屬性和方法,具有完善的串口數據的發(fā)送和接收功能。該控件具有兩種處理方式:(1)事件驅動方式:由 MSComm控件的OnComm事件捕獲并處理通信錯誤及事件;(2)查詢方式:通過檢查CommEvent屬性的值來判斷事件和錯誤。
    當設置MSComm控件的Settings屬性值為“9600,n,8,1”時表明:PC機串口波特率為9600b/s, 幀格式為:無校驗,一個起始位,8個數據位,一個停止位。一幀數據共10位。幀結構如下:

\

    當設置MSComm控件的Settings屬性值為“9600,e,8,1”時表明:PC串口波特率為9600b/s, 幀格式為:一個起始位,8個數據位,一個偶校驗位,一個停止。一幀數據共11位。幀結構如下:
 \

    其中D0~D7是8位數據位,D8是偶校驗位。

三.硬件原理框圖

          \
四.軟件算法思想

   通信開始時,主機用一幀十位的格式發(fā)一個ASCII碼為0的測試字符,則對應的幀結構如下:
   \

    單片機循環(huán)檢測RXD腳,無數據時該腳為高電平,當檢測到測試數據起始位時(低電平)啟動計數器T0,當檢測到停止位時(高電平)停止記數,T0所記數(TH0TL0)為單片機接收一幀數據9位所需的機器數時間。則,單片機波特率為:
波特率=9/(TH0TL0 x 機器周期)
      =9/(TH0TL0 x 12 x 振蕩周期)
      =(9 x 振蕩頻率)/(TH0TL0 x 12)

五. 主機發(fā)送ASCII碼值為0的字符的源程序
    
Private Sub Form_Load()
  MSComm1.CommPort = 1                ;使用COM1串口
  MSComm1.Settings = "9600,n,8,1"         ;設置通信格式,見本文一
End Sub

Private Sub Send_Click()
  If MSComm1.PortOpen = False Then MSComm1.PortOpen = True ;打開串口COM1
MSComm1.OutBufferCount = 0           ;清0發(fā)送緩沖區(qū)發(fā)送字符數
  A =Chr(0)                             ;ASCII碼為0的字符送A
  MSComm1.Output = A                  ;發(fā)送
End Sub

    說明:若程序中MSComm1.Settings = "9600,e,8,1",則發(fā)送的是一幀11位偶校驗數據,其中D0~D8均為0。對應單片機檢測程序(見下文五)TH0TL0結果值為一幀10位的對應機器數值。

六.單片機接收測試數據,計算接收一幀9位數據所需機器數時間,源程序如下:

ORG 8000H
MOV  TMOD,#01H  ;T0工作于方式1,GATE=0
MOV  TH0,#00H    ;清0  TH0TL0
MOV  TL0,#00H
RLL1: JB P3.0,RLL1        ;等待RXD腳變低
SETB TR0          ;啟動T0
RLL2: JNB P3.0,RLL2       ;等待RXD腳變高
CLR TR0            ;停止T0記數
MOV A,TL0         ;存放一幀9位記數機器數值
MOV A,TH0
   ?。?/p>

參考書:

石東海 扈嘯 周旭升《單片機數據通信技術從入門到精通》西安電子科技大學出版社 2002
復旦大學微機開發(fā)應用研究室《MCS—51微型計算機用戶手冊》1986

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多