基于VB的PC-單片機通信波特率自動檢測方法2012-03-10 18:33:05 來源:微計算機信息關鍵字: PC機 單片機 波特率 自動檢測一. 引言 主從分布式微機系統(tǒng)是控制領域廣泛使用的微機系統(tǒng)。主機一般由數據處理能力強、有良好人機界面的PC機擔任,分機常以體積小、價格便宜、控制能力強的單片機為核心。 二.MSComm控件簡介 微軟MSComm控件提供了一系列標準通信屬性和方法,具有完善的串口數據的發(fā)送和接收功能。該控件具有兩種處理方式:(1)事件驅動方式:由 MSComm控件的OnComm事件捕獲并處理通信錯誤及事件;(2)查詢方式:通過檢查CommEvent屬性的值來判斷事件和錯誤。
當設置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位所需的機器數時間。則,單片機波特率為: 五. 主機發(fā)送ASCII碼值為0的字符的源程序 Private Sub Send_Click() 說明:若程序中MSComm1.Settings = "9600,e,8,1",則發(fā)送的是一幀11位偶校驗數據,其中D0~D8均為0。對應單片機檢測程序(見下文五)TH0TL0結果值為一幀10位的對應機器數值。 六.單片機接收測試數據,計算接收一幀9位數據所需機器數時間,源程序如下: ORG 8000H 參考書: 石東海 扈嘯 周旭升《單片機數據通信技術從入門到精通》西安電子科技大學出版社 2002 |
|
|
來自: quasiceo > 《rs232 串口》