新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC單片機(jī)與PC機(jī)異步串行通信的設(shè)計

PIC單片機(jī)與PC機(jī)異步串行通信的設(shè)計

作者: 時間:2012-04-18 來源:網(wǎng)絡(luò) 收藏

發(fā)送數(shù)據(jù)程序框圖

用RB5引腳作為發(fā)送引腳,發(fā)送數(shù)據(jù)程序框圖如圖4所示。當(dāng)有數(shù)據(jù)要從發(fā)往機(jī)時,單片機(jī)調(diào)用發(fā)送子程序。在發(fā)送子程序中,首先設(shè)置發(fā)送計數(shù)器內(nèi)容為8,然后發(fā)送起始位,起始位應(yīng)持續(xù)104μs。因此要調(diào)用延時子程序,延時子程序執(zhí)行完后,RB5上的信號并未立刻變成第一位數(shù)據(jù)的值,這是因?yàn)檫€要執(zhí)行幾條指令,如右移TRS_R、置位等RB5上的信號才會變化。假設(shè)延時104μs,那么加上幾條指令的執(zhí)行時間,起始位就比104μs寬了。因此,延時子程序少于104μs,根據(jù)具體的程序定為97μs。然后,右移發(fā)送數(shù)據(jù)寄存器TRS_R,將其最低位即要發(fā)送的數(shù)據(jù)位移入C中,再根據(jù)C中的內(nèi)容將RB5清零或置1,然后將發(fā)送計數(shù)器內(nèi)容減1,并判斷其是否為0。若為1,則說明未發(fā)送完畢,繼續(xù)發(fā)送;否則,發(fā)送停止位。最后,退出發(fā)送子程序。

22.jpg
圖4 單片機(jī)發(fā)送數(shù)據(jù)程序框圖

機(jī)程序

VB6.0提供了通訊MSComm(電話盒)控件來為應(yīng)用程序提供,它將串口設(shè)備當(dāng)作一個目標(biāo)封裝起來,容易操作,編程很方便,其良好的用戶界面、簡單方便的和實(shí)用性強(qiáng)的優(yōu)點(diǎn),無需借用其他語言就可以開發(fā)出優(yōu)秀的通信軟件,因而機(jī)軟件采用VB6.0語言編寫。

MSComm控件的調(diào)出及其主要屬性如下。

(1)MSComm控件的調(diào)出

VB6.0的MSComm控件并不會主動出現(xiàn)在工具箱中,當(dāng)需要它時,讓它出現(xiàn)在工具箱中的步驟如下:

①選擇菜單上的“工程”;

②在“工程”菜單中選擇“部件”;

③出現(xiàn)對話框后,在可勾選的項(xiàng)目中勾選Microsoft Comm Contro l6.0;

④按下“確定”按鈕,即可在工具箱中見到“電話盒”的圖標(biāo),就可以將此控件加載進(jìn)行串行通信。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉