PIC單片機(jī)與PC機(jī)異步串行通信的設(shè)計(jì)
(2)MSComm屬性
MSComm屬性很多,其重要的屬性說(shuō)明如下:
①CommPort:設(shè)定或返回通信端口號(hào)。端口號(hào)由1開(kāi)始往上遞增,最大值是16。
②Settings:設(shè)定通信端口初始化參數(shù)。其格式為“Baud,P,D,S”,其中Baud為波特率, 可設(shè)為1200、2400、9600、14400、19200和28800等幾種;P為校驗(yàn)位(E表示偶校驗(yàn)、O表示奇校驗(yàn)、M表示符號(hào)校驗(yàn)(即在校驗(yàn)位放置一個(gè)1的位)、S表示空白校驗(yàn)(即在校驗(yàn)位放置一個(gè)0的位)、N表示無(wú)校驗(yàn)位(默認(rèn)值));D為數(shù)據(jù)位數(shù),可選值為4、5、6、7、8(默認(rèn)值);S 表示停止位數(shù),可選值為1、1.5、2。
③PortOpen:設(shè)定并返回通信端口的狀態(tài)。
使用串行端口之前必須先打開(kāi)該端口(PortOpen=True),而在使用完畢后必須關(guān)閉該端口(PortOpen=False)。
④Input:從輸入緩沖區(qū)返回并清除字符。這是一種FIFO(FirstinFirstOut)機(jī)制。如Buffer$=MSComm1.Input,表示將輸入緩沖區(qū)的字符讀入Buffer字符串變量中。
⑤Output:將一個(gè)字符或字符串寫(xiě)入傳輸緩沖區(qū),如MSComm1.Output=“ABCD”。此即將ABCD4個(gè)字符通過(guò)串行端口傳送出去。
⑥InBufferCount:傳回在接收緩沖區(qū)中的字符數(shù),是指已接收,并在接收緩沖區(qū)等待讀取的字符數(shù)。
⑦InputMode:設(shè)定和返回類(lèi)型。該屬性設(shè)為0時(shí),數(shù)據(jù)通過(guò)Input屬性以文本方式取回,如設(shè)為1,則數(shù)據(jù)通過(guò)Input屬性以二進(jìn)制方式取回。
結(jié)論
利用PIC16C711的外部中斷輸入引腳RB0/INT接收數(shù)據(jù),避免了查詢(xún)法帶來(lái)的耗費(fèi)大量系統(tǒng)資源的缺點(diǎn)。PIC系列單片機(jī)執(zhí)行指令的速度快,提高了系統(tǒng)效率。PIC16C711內(nèi)部無(wú)硬件UART,本文用軟件模擬它與PC之間的串行異步通信,從而降低了硬件成本。VB具備MSComm(電話盒)控件,實(shí)現(xiàn)串行通信非常方便。
評(píng)論