在單片機控制系統中,經常會涉及到上位機與下位機的通信。本文主要通過一個簡單的實例來介紹labVIEW與單片機的串口通信實現過程,包括下位機單片機的硬件與軟件設計,上位機LabVIEW的前面板和程序框圖設計。
1.概述
在現代測控系統中,我們經常會采用上位機和下位機的開發控制模式。下位機主要是用來采集數據,可以通過嵌入式控制器、單片機控制器、PLC等來實現。上位機主要是圖形界面,用來實時顯示采集數據,并進行數據分析及處理,同時可以控制下位機。上位機的實現可以通過各種高級語言,比如VB、Delphi等以及NI公司的圖形化虛擬儀器軟件開發環境LabVIEW.由于LabVIEW采用的是圖形化的編程方法,所以無論你是否有過編程經驗,都可以快速、高效地設計用戶界面,實現與控制硬件的通信,并進行數據分析和處理。如今LabVIEW已經滲透到工業測量的各個領域,與此同時在嵌入式、FPGA、DSP、實時控制等領域也發揮著巨大的作用。
2.本實例實現的功能
首先利用單片機STC89C54通過串口發送“你好,LabVIEW”,LabVIEW將單片機發送到數據進行顯示。通過這個實例來了解LabVIEW的串口通信設計。
3.下位機硬件設計與軟件設計
(1)硬件設計
單片機串口通信硬件電路設計比較簡單,主要包括單片機STC89C54最小系統以及MAX232和九針串口。
(2)軟件設計
設計源碼如下:
#include
#define uchar unsigned char
#define uint unsigned int
void SendStr(unsigned char *s);//發送
字符串
void DelayMs(uint xms)//延時子函數
{
uint i,j;
for(i=xms;i>0;i-)
for(j=110;j>0;j-);
}
void InitUART(void) //串口初始化
{
SCON=0×50; //SCON:模式
1,8-bitUART,使能接收
TMOD|=0×20; //TMOD:timer 1,mode
2,8-bit重裝
TH1=0xFD; // TH1:重裝值9600波
特率 晶振11.0592MHz
TR1=1; //TR1:timer 1打開
EA=1; //打開總中斷
}
void main(void)
{
InitUART();
while(1)
{
SendStr(“你好!LabVIEW!”);
DelayMs(240);
DelayMs(240);
}
}
void SendByte(unsigned char dat)
{
SBUF=dat;
while(!TI);
TI=0;
}
void SendStr(unsigned char *s)
{
while(*s!='\0‘)//\0表示字符串結束
標志,//通過檢測是否字符串末尾
{
SendByte(*s);
s++;
}
4.上位機LabVIEW前面板與程序框圖
(1)相關函數介紹
在做LabVIEW串口通信的時候首先要安裝VISA驅動,驅動可以從網上下載。LabVIEW對串口的操作主要是讀操作和寫操作。本實例主要是接受數據,也就是讀操作,在這里首先介紹一下與此實例相關控件和函數。
①VISA資源名稱
在“新式”控件選項卡下“I/O”子選項卡下有“VISA資源名稱”控件。安裝好VISA驅動后,與硬件連接好后,該控件下可以列出相應的COM口,可以選擇合適的COM口。
②VISA配置串口函數
該函數位于函數選項卡下的“儀器I/O”
子選項卡下,主要用來對串口進行參數配置,包括波特率、數據比特、奇偶校驗等。
③VISA讀取和VISA關閉函數
VISA讀取函數的功能是從VISA資源名稱所指定的設備或接口中讀取指定數量的字節,并將數據返回至讀取緩沖區。VISA關閉函數的功能是關閉VISA資源名稱指定的設備會話句柄或事件對象。
(2)程序框圖設計
程序框圖設計如圖1所示。
5.測試
將硬件連接好后,上電,下載程序,運行labVIEW,我們可以看到在讀取緩沖區里接收到了單片機發送來的字符串“你好!LavVIEW”.如圖2所示。
6.總結
利用LabVIEW進行上位機設計,其界面美觀,實現起來較容易,可以很方便的運用于各種測量監控系統中。
-
單片機
+關注
關注
6058文章
44822瀏覽量
644862 -
LabVIEW
+關注
關注
1991文章
3669瀏覽量
331727 -
串口通信
+關注
關注
34文章
1633瀏覽量
56388 -
上位機
+關注
關注
27文章
952瀏覽量
55471 -
STC89C54RD
+關注
關注
3文章
1瀏覽量
2473
發布評論請先 登錄
相關推薦
上位機什么意思_上位機和下位機的區別
上位機下位機介紹

評論