//Logo Image
作者:蔡宗成、陳明周(2001-06-20);推薦:徐業良(2001-06-21)

單晶片實習-VBRS232之應用

本文是介紹如何使用VB程式撰寫簡易RS232溝通程式,傳輸控制指令到89C51單晶片上,輸出數位訊號,控制周邊設備,例如LED閃爍、步進馬達正反轉等。

1. 89C51單晶片基本電路

1所示為89C51單晶片基本電路設計,供應單晶片+5V工作電壓,接上12MHz石英震盪器作為時脈電路設計,RESET按鈕提供系統重置電路,PCRS232必須經過MAX232(或其相容單晶片)電位轉換單晶片,才能與89C51之串列埠連接,確保傳輸資料正確。

1. 單晶片基本電路

2所示為89C51單晶片輸出電路,使用PORT0P0.0~P0.4(pin39~pin35),相關腳位功能與說明如表1所示。

2. 輸出電路

1. 腳位說明

2所示為基本輸出電路圖,PORT0先接LED燈再接220歐姆到VCC供應電壓,接電阻是防止LED燈燒毀,控制PORT0之接腳輸出為0(低電位)時,VCC電壓流經LED燈,使之導通點亮,反之,當PORT0之接腳輸出為1(高電位)時,LED燈便會斷路而滅。本文先介紹基本輸出電路,以VB撰寫RS232溝通程式,輸出控制指令,使LED燈產生明、暗、閃爍等動作,未來可以此為基本架構,發展更多的功能,例如加入放大電路來控制步進馬達,或是驅動繼電器來控制電器開關,更可以加入感測裝置,感測溫度、亮度等,再將資訊傳回電腦,做進一步的應用與處理。

2. 89C51組合語言

3所示為89C51單晶片之控制程式,總共分成三個部份,第一部份為程式主體,如圖3(a)所示,程式一開始執行,便設定RS232之相關通訊協定,以P0.0LED燈的明、暗表示設定中與設定完畢,接著,開始等待RS232有無傳送資料過來,以P0.1LED燈的明、暗表示接收中與接收完畢。圖3(b)為資料判斷程式,當程式接收傳來的資料時,開始判斷資料形式,逐一比對,接收到正確的指令時,使LED燈產生所需要的動作。圖3(c)為副程式,分別為設定RS232副程式與時間延遲程式,此副程式設計有助於縮短程式開發時間,使一個較大的程式分割成幾個較小的副程式,幫助設計者容易開發程式、減少除錯時間,另一個好處是可直接把這些副程式直接套用在另一個程式上。

3(a). 主程式

3(b). 資料判斷程式

3(c). 副程式

此程式是以組合語言來設計,可以使用記事本直接進行撰寫,經過組譯與連結,產生可執行檔,便可將此可執行檔燒錄至單晶片裡,進行所需要的工作。

3. VBRS232程式設計

Visual Basic專業版裡,有一個專為設計串列通訊的物件,也就是MSComm通訊控制項,只要將它外掛進程式裡,設定好通訊協定,便能使用RS232與外界相容之電子設備進行溝通,以下介紹如何設計一個簡易的VBRS232的應用程式。

MsComm通訊控制項屬於特殊功能元件,並不會主動出現在預設工具箱裡,當程式需要此元件時,必須到「專案-設定使用元件-Microsoft Comm Comtrol 6.0」,設定步驟如圖4所示。

4. MsComm通訊控制項設定步驟

引用控制項完成後,便是設定其通訊協定的屬性,如圖5所示,設定RS232之通訊埠,本程式以設定2代表COM2為傳輸埠,此數值最大值號碼為16,除了在這屬性窗設定外,也可以設計在程式裡,如式(1)所示。

        MSComm1.CommPort = 2                                                                      (1)

5. 設定通訊埠代號

如圖6所示,設定鮑率參數,VB程式與89C51單晶片的組合語言之鮑率參數必須相同,本文是設定1200bps,其中“1200,N,8,1”,代表“所使用的通訊埠是以每秒1200Bit的速度進行傳輸,不作同位位元的檢查,每個位元是8Bit,停止位元是1Bit”,同樣地,此參數也可直接設計在程式裡,如式(2)所示。

        MSComm1.settings = “1200,N,8,1”                                                 (2)

6. 設定鮑率參數

設定好以上兩種基本的參數後,便可開始設計RS232溝通程式。如圖7所示,放置一個文字輸入框,提供使用者輸入指令,按下傳送鈕,便會將文字框裡的指令送至89C51單晶片裡,並放置三個控制按鈕,裡頭有專屬的控制指令。如圖8所示,為本程式設計說明。

7. 溝通程式範例

8. 溝通程式說明

當程式與硬體電路準備後之後,便可以開始進行實驗,檢查有無錯誤發生,程式是否如預期運作,本實習電路如圖9所示。本程式為基本的單晶片與PC的溝通程式,為單方向的傳輸,也可以設計成全雙工的形式,使用者將資料傳送至單晶片上,經過處理傳回PC,顯示給使用者了解,也可設計遠端遙控程式,使單晶片配合現今流行的網際網路,其應用的範圍可說無遠弗屆。

9. VBRS232實習電路

參考資料

鍾自立、張正賢著,8051實作與燒錄器製作,宏友書局,2000

陳龍三著,8051入門與介面控制,松崗書局,1999

范逸之、陳立元、賴俊朋著,Visual BasicRS232串列通訊控制,文魁書局,1999

李齊雄、游國幹著,8051單晶片微電腦原理與實作,儒林書局,1995