labVIEW與微控制器實現串列埠通訊的設計過程

2021-09-01 04:11:28 字數 1979 閱讀 5740

在現代測控系統中,我們經常會採用上位機和下位機的開發控制模式。下位機主要是用來採集資料,可以通過嵌入式控制器、微控制器

控制器、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 差不多我們就可以開始我們的開發了...