當(dāng)有數(shù)據(jù)要從Pc機傳到單片機時,如果這些數(shù)據(jù)是靜態(tài)的,也就是在程序設(shè)計階段就已經(jīng)確定了要傳輸?shù)臄?shù)據(jù),首先設(shè)置vIsA write的write bu能r的顯示屬性為Hex Display,然后直接輸入要發(fā)送的十六進制字符串就可以了。串口設(shè)備的控制命令通常是由一個或多個十六進制字符組成的,當(dāng)需要對其進行控制時經(jīng)常會采用這種方法發(fā)送控制命令。
如果數(shù)據(jù)是動態(tài)的,即要傳輸?shù)臄?shù)值型數(shù)據(jù)是動態(tài)產(chǎn)生和變化的,在發(fā)送之前首先要將其轉(zhuǎn)換成對應(yīng)的十六進制字符串,才能賦給vIsA write發(fā)送。將這些數(shù)據(jù)構(gòu)成~個數(shù)組,用byte amy to string進行轉(zhuǎn)換,轉(zhuǎn)換的結(jié)果就是對應(yīng)數(shù)組數(shù)值的字符串,可以提交vISA wdte發(fā)送,或者使用type cast也可以實現(xiàn)同樣的功能。另一方面,在PIc單片機中,數(shù)據(jù)的存儲和表示是8位二進制數(shù),通信時,由PIc單片機發(fā)送過來的8位二進制數(shù)經(jīng)過串口后被轉(zhuǎn)換成字符的形式,因此在程序中必須將數(shù)據(jù)還原,LabVIEw中有一個string to byte amy節(jié)點,利用該節(jié)點可以很方便地將字符串轉(zhuǎn)換成數(shù)據(jù)數(shù)組。
3.3 LabVIEW程序前面板
LabvIEw通信程序的前面板如圖5所示,由于通信格式(波特率、數(shù)據(jù)位、停止位、奇偶校驗位等)已經(jīng)預(yù)先設(shè)為固定值,故只需一個枚舉控件配合case stllJcture(選擇結(jié)構(gòu))就可以實現(xiàn)對串口的選擇。程序通過一個打開端口按鈕控件建立起與串口的聯(lián)系,取得對串口的占用權(quán);通過一個發(fā)送數(shù)據(jù)按鈕控件與PIC單片機取得聯(lián)系,控制其發(fā)送數(shù)據(jù)。在實現(xiàn)這2個按鈕控件的功能時,采用了event stmcture(事件結(jié)構(gòu)),這樣使程序具有了事件驅(qū)動的能力,也就是說程序在沒有指定事件發(fā)生時處于休息狀態(tài),直到前面板窗口中有一個事件發(fā)生為止,這段時間可以將cPu交給其他的應(yīng)用程序使用,大大提高了系統(tǒng)資源的利用率。Pc機接收到的數(shù)據(jù)可以根據(jù)需要進行數(shù)據(jù)處理,然后利用wavefo珊graph(事后記錄波形圖)將其顯示出來,wavefo瑚graph控件可以設(shè)置cursor(指針),利用cursor可以定位到每一個數(shù)據(jù)點,并顯示其值,另外該程序再附加一些簡單的編程就可以實現(xiàn)對數(shù)據(jù)的保存、打印等。
4 PIC單片機串口通信的實現(xiàn)
4.1功能寄存器設(shè)置
PIC單片機內(nèi)部集成了USART(通用同步/異步收發(fā)器)模塊,該模塊采用的是一種在標(biāo)準(zhǔn)規(guī)范基礎(chǔ)上簡化了的、無握手信號的、二線式的串行通信方式,使占用單片機引腳資源的數(shù)量降到最低限度。
在單片機中,串口通信格式的設(shè)置是通過對一系列特殊寄存器的賦值來完成的,且其通信格式必須與LabvIEw程序中的設(shè)置嚴格一致,否則通信無法建立。PIc單片機中串口通信專用的寄存器有5個,它們分別是TxsTA(發(fā)送狀態(tài)兼控制寄存器)、Rcs7rA(接收狀態(tài)兼控制寄存器)、TxREG(發(fā)送緩沖寄存器)、RcREG(接收緩沖寄存器)、SPBRG(波特率寄存器)。其中TxsTA和RCSTA共同完成通信方式、格式等一些通信約定的設(shè)置,TXREG和RcREG分別用來暫時存放待發(fā)送和接收的數(shù)據(jù),sPBRG寄存器通過控制一個獨立的8位定時器的溢出周期完成對通信波特率的設(shè)置,該寄存器的設(shè)定值與波特率成反比關(guān)系。為了保證通信的順利進行,單片機開始工作時必須對這些寄存器進行初始化設(shè)置。
4.2 PIC通信流程
PIc單片機與Pc機之間的聯(lián)系在單片機中是通過硬件中斷方式實現(xiàn)的。在通信過程中,Pc機始終具有初始傳送優(yōu)先權(quán),所有的通信均由Pc機來啟動,PIc單片機處于被動狀態(tài)。PIc單片機中提供了串口通信的接收和發(fā)送中斷,這樣可以省去軟件的周期性查詢,從而節(jié)省單片機的資源。在本文的程序中只使用了接收中斷,當(dāng)有數(shù)據(jù)從Pc機傳來時,單片機產(chǎn)生中斷,主程序跳轉(zhuǎn)到中斷服務(wù)子程序,進行數(shù)據(jù)的上傳工作。對于當(dāng)前數(shù)據(jù)發(fā)送是否完成采用了軟件周期性查詢的方式,若發(fā)送完成,則進行下一個數(shù)據(jù)的傳送,否則繼續(xù)查詢,PIc單片機串口通信程序流程圖如圖6所示。這樣,在初始化子程序中就必須對接收中斷使能位進行置位,允許接收中斷。
<<上一頁[1][2][3]下一頁>>
相關(guān)信息 







推薦企業(yè)
推薦企業(yè)
推薦企業(yè)