基于VB的PC-單片機(jī)通信波特率自動(dòng)檢測(cè)方法2012-03-10 18:33:05 來(lái)源:微計(jì)算機(jī)信息關(guān)鍵字: PC機(jī) 單片機(jī) 波特率 自動(dòng)檢測(cè)一. 引言 主從分布式微機(jī)系統(tǒng)是控制領(lǐng)域廣泛使用的微機(jī)系統(tǒng)。主機(jī)一般由數(shù)據(jù)處理能力強(qiáng)、有良好人機(jī)界面的PC機(jī)擔(dān)任,分機(jī)常以體積小、價(jià)格便宜、控制能力強(qiáng)的單片機(jī)為核心。 二.MSComm控件簡(jiǎn)介 微軟MSComm控件提供了一系列標(biāo)準(zhǔn)通信屬性和方法,具有完善的串口數(shù)據(jù)的發(fā)送和接收功能。該控件具有兩種處理方式:(1)事件驅(qū)動(dòng)方式:由 MSComm控件的OnComm事件捕獲并處理通信錯(cuò)誤及事件;(2)查詢方式:通過(guò)檢查CommEvent屬性的值來(lái)判斷事件和錯(cuò)誤。 當(dāng)設(shè)置MSComm控件的Settings屬性值為“9600,e,8,1”時(shí)表明:PC串口波特率為9600b/s, 幀格式為:一個(gè)起始位,8個(gè)數(shù)據(jù)位,一個(gè)偶校驗(yàn)位,一個(gè)停止。一幀數(shù)據(jù)共11位。幀結(jié)構(gòu)如下: 其中D0~D7是8位數(shù)據(jù)位,D8是偶校驗(yàn)位。 三.硬件原理框圖 通信開(kāi)始時(shí),主機(jī)用一幀十位的格式發(fā)一個(gè)ASCII碼為0的測(cè)試字符,則對(duì)應(yīng)的幀結(jié)構(gòu)如下: 單片機(jī)循環(huán)檢測(cè)RXD腳,無(wú)數(shù)據(jù)時(shí)該腳為高電平,當(dāng)檢測(cè)到測(cè)試數(shù)據(jù)起始位時(shí)(低電平)啟動(dòng)計(jì)數(shù)器T0,當(dāng)檢測(cè)到停止位時(shí)(高電平)停止記數(shù),T0所記數(shù)(TH0TL0)為單片機(jī)接收一幀數(shù)據(jù)9位所需的機(jī)器數(shù)時(shí)間。則,單片機(jī)波特率為: 五. 主機(jī)發(fā)送ASCII碼值為0的字符的源程序 Private Sub Send_Click() 說(shuō)明:若程序中MSComm1.Settings = "9600,e,8,1",則發(fā)送的是一幀11位偶校驗(yàn)數(shù)據(jù),其中D0~D8均為0。對(duì)應(yīng)單片機(jī)檢測(cè)程序(見(jiàn)下文五)TH0TL0結(jié)果值為一幀10位的對(duì)應(yīng)機(jī)器數(shù)值。 六.單片機(jī)接收測(cè)試數(shù)據(jù),計(jì)算接收一幀9位數(shù)據(jù)所需機(jī)器數(shù)時(shí)間,源程序如下: ORG 8000H 參考書(shū): 石東海 扈嘯 周旭升《單片機(jī)數(shù)據(jù)通信技術(shù)從入門(mén)到精通》西安電子科技大學(xué)出版社 2002 |
|
來(lái)自: quasiceo > 《rs232 串口》