在現代測控系統中,我們經常會採用上位機和下位機的開發控制模式。下位機主要是用來採集資料,可以通過嵌入式控制器、微控制器
控制器、plc
等來實現。上位機主要是圖形介面,用來實時顯示採集資料,並進行資料分析及處理,同時可以控制下位機。上位機的實現可以通過各種高階語言,比如vb、delphi等以及ni公司的圖形化虛擬儀器軟體開發環境labview
.由於labview採用的是圖形化的程式設計方法,所以無論你是否有過程式設計經驗,都可以快速、高效地設計使用者介面,實現與控制硬體的通訊,並進行資料分析和處理。如今labview已經滲透到工業測量的各個領域,與此同時在嵌入式、fpga、dsp
、實時控制等領域也發揮著巨大的作用。
首先利用微控制器stc89c54通過串列埠傳送「你好,labview」,labview將微控制器傳送到資料進行顯示。通過這個例項來了解labview的串列埠通訊設計。
3.下位機硬體設計與軟體設計
微控制器串列埠通訊硬體電路設計比較簡單,主要包括微控制器stc89c54最小系統以及max232和九針串列埠。
設計原始碼如下:
#include《reg52.h》
#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&ti
mes;50; //scon:模式
1,8-bituart,使能接收
tmod|=0&ti
mes;20; //tmod:ti
mer 1,mode
2,8-bit重灌
th1=0xfd; // th1:重灌值9600波
特率 晶振11.0592mhz
tr1=1; //tr1:ti
mer 1開啟
ea=1; //開啟總中斷
void mai
n(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++;
①visa資源名稱
在「新式」控制項選項卡下「i/o」子選項卡下有「visa資源名稱」控制項。安裝好visa驅動後,與硬體連線好後,該控制項下可以列出相應的com口,可以選擇合適的com口。
②visa配置串列埠函式
該函式位於函式選項卡下的「儀器i/o」
子選項卡下,主要用來對串列埠進行引數配置,包括波特率、資料位元、奇偶校驗等。
③visa讀取和visa關閉函式
visa讀取函式的功能是從visa資源名稱所指定的裝置或介面中讀取指定數量的位元組,並將資料返回至讀取緩衝區。visa關閉函式的功能是關閉visa資源名稱指定的裝置會話控制代碼或事件物件。
程式框圖設計如圖1所示。
利用labview進行上位機設計,其介面美觀,實現起來較容易,可以很方便的運用於各種測量監控系統中。
微控制器串列埠配置
串列埠引數配置 usart initstructure.usart baudrate 115200 設定波特率為115200 usart initstructure.usart wordlength usart wordlength 8b 設定資料位為8位 usart initstructure.u...
微控制器串列埠通訊
微控制器串列埠通訊 通常的usb序列通訊方式為全雙工,即兩條資料線 rxd和txd,一條用於傳送資料,一條用於接收資料。在序列通訊前,需要對序列通訊進行配置。對於微控制器 ri為接受中斷標誌位,未通訊時ri 0 當電腦傳送第乙個位元組幀a0到微控制器時,sbuf a0,中斷標誌位ri 1,微控制器呼...
微控制器串列埠通訊
1 需求 實現電腦端控制微控制器開啟燈光風扇,顯示微控制器傳遞過來的資料 如溫度 濕度等 2 工具 平台軟體 驅動人生 vs2012 keil4 3 下面就開始吧 4 檢視我們當前的通訊埠號 如圖 然後確定我們微控制器的晶振,我是用的是11.0592m的 即9600 差不多我們就可以開始我們的開發了...