国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C8051F060單片機的多路數(shù)據(jù)采集系統(tǒng)設(shè)計

2014-01-15 09:59李輝
電子設(shè)計工程 2014年15期
關(guān)鍵詞:中斷上位語句

李輝

(晉城市城市管理監(jiān)督指揮中心 山西 晉城 048000)

隨著信息技術(shù)的發(fā)展和普及,數(shù)據(jù)采集技術(shù)已在通信、測控儀器、航空航天、工業(yè)自動控制等領(lǐng)域得到了廣泛的應(yīng)用,同時C8051F060微控制器體積非常小、功能很強、可靠性也比較好,非常適合應(yīng)用于計算機控制系統(tǒng)中用于對現(xiàn)場傳感器進行采集以及實現(xiàn)現(xiàn)場設(shè)備控制的場合。

1 系統(tǒng)硬件設(shè)計

1.1 C8051F060微控制器

美國Silicon Laboratories公司于前幾年推出了一款具有集成混合信號的片上智能系統(tǒng)型的單片機C8051F060,具有與80C51兼容的CIP-51內(nèi)核,指令集與MCS-51完全兼容。具有59個數(shù)I/O管腳;它采用的是具有高速、流水線結(jié)構(gòu)等特點的CIP-51內(nèi)核(最快可達25MIPS),其內(nèi)部指令的執(zhí)行速度于MCS-51相比,有了極大的提高。C8051F060的內(nèi)部功能部件主要包括了兩個16位、采集速率達到1 Msps的ADC模塊、具備尋址功能的64 kB的XRAM、控制器局域網(wǎng)(CAN2.0B)控制器、兩個具有可編程數(shù)據(jù)更新方式12位DAC、SPI接口、此外還有SMBus/I2C接口以及兩個UART串接、一個具有八通道多路開關(guān)的十位、200 ksps的ADC、集成在芯片內(nèi)部的看門狗定時器、片內(nèi)VDD監(jiān)視器以及溫度傳感器等。

1.2 總體方案設(shè)計

系統(tǒng)以C8051F060為核心,采用I/O口采集外部的模擬信號,使用微控制器內(nèi)部集成的的AD轉(zhuǎn)換器,將模擬量轉(zhuǎn)換成數(shù)字量,并通過計算機UART口上傳至電腦上。計算機端編寫接收軟件把數(shù)據(jù)接收上來,并通過軟件內(nèi)部控件將傳感器數(shù)據(jù)還原成原始波形曲線,這樣就實現(xiàn)了將傳感器數(shù)據(jù)采集、波形復(fù)原功能。本系統(tǒng)的傳感器數(shù)據(jù)采集模塊部分的結(jié)構(gòu)圖如圖1所示。

圖1 傳感器數(shù)據(jù)采集模塊結(jié)構(gòu)圖Fig.1 Sensor data acquisition module structure diagram

1.3 傳感器采集模塊原理圖設(shè)計

傳感器采集模塊采用單片機內(nèi)部的AD轉(zhuǎn)換器,在輸入端采用電阻分壓方式對信號幅度進行調(diào)節(jié),可以增大傳感器信號的輸入范圍。

本系統(tǒng)進行電平轉(zhuǎn)換功能的芯片采用的是MAX232,之所以需要轉(zhuǎn)換,是因為C8051F060輸出的信號是TTL電平,而電腦上具有的是標準串口;因此必須要轉(zhuǎn)換二者之間的電氣參數(shù),所以要對單片機輸出的TTL信號電平進行一定的信號轉(zhuǎn)換才能完成單片機與PC機的數(shù)據(jù)通訊。進行電壓轉(zhuǎn)換的芯片是MAX1658,因為外接的供電電源是5 V,但是C8051F060采用的是3.3 V進行供電,所以需要電壓轉(zhuǎn)換。傳感器數(shù)據(jù)采集模塊圖如圖2所示。

圖2 傳感器數(shù)據(jù)采集模塊電路圖Fig.2 Sensor data acquisition module circuit

2 傳感器數(shù)據(jù)采集模塊軟件設(shè)計

傳感器數(shù)據(jù)采集模塊軟件設(shè)計部分主要由單片機c8051f060端和以及電腦上位機端兩個部分組成。單片機c8051f060端主要功能是實現(xiàn)內(nèi)部ADC采集多個傳感器數(shù)據(jù),存入數(shù)組后并通過UART口向電腦上位機端實時上傳。電腦上位機端軟件主要功能是實現(xiàn)設(shè)置單片機c8051f060的通信波特率、接收單片機C8051F060采集的傳感器數(shù)據(jù)以及將波形進行還原等功能。

2.1 單片機軟件設(shè)計

傳感器數(shù)據(jù)采集模塊以單片機為核心控制單元,最多可采集外部八路傳感器信號。本模塊使用的是單片機c8051f060內(nèi)部的數(shù)字模擬轉(zhuǎn)換器ADC2。啟動ADC2開始轉(zhuǎn)換所用的方法為為采用定時器2溢出的方式。單片機c8051f060將8個信號通道采集上來的傳感器信號統(tǒng)統(tǒng)轉(zhuǎn)換成為數(shù)字信號,再向單片機UART口發(fā)送數(shù)據(jù)之前,關(guān)閉單片機的所有中斷。等待數(shù)據(jù)全部發(fā)送結(jié)束后,打開單片機所有的中斷,開始準備下一次對傳感器進行數(shù)據(jù)采集。傳感器數(shù)據(jù)采集模塊的程序流程情況圖如圖3所示。

圖3 傳感器數(shù)據(jù)采集模塊程序流程圖Fig.3 Sensor data acquisition module program flow chart

C8051f060單片機的內(nèi)部定時器2的中斷應(yīng)用程序:

void TIMER2_ISR (void) interrupt 5//單片機 c8051f060的內(nèi)部定時器2中斷

{

SFRPAGE=TMR2_PAGE;

TF2=0; //去掉中斷標志TF2

tongdao_input++; //切換至下一路輸入

if(tongdao_input==moni_input) //當最后一路數(shù)據(jù)采集完成后轉(zhuǎn)到第一通道

{

tongdao_input=0;

}

SFRPAGE=ADC2_PAGE;

AMX2SL=tongdao_input;

}

C8051f060單片機的內(nèi)部ADC2轉(zhuǎn)換結(jié)束中斷應(yīng)用程序:

void ADC2_ISR (void)interrupt 18//單片機 c8051f060的內(nèi)部ADC2轉(zhuǎn)換結(jié)束中斷

{

static long jishuqi[10]={0L};

unsigned char i;

char SFRPAGE_SAVE=SFRPAGE;//保存目前的 SFR配置頁

SFRPAGE=ADC2_PAGE;//切換到 ADC2的配置頁AD2INT=0; //去掉ADC2的轉(zhuǎn)換完成標志

jishuqi[amux_convert]=ADC2; //讀取ADC2內(nèi)的數(shù)值

if(tongdao_convert== (moni_input-1))

{

for(i=0; i

result[i]=jishuqi[i];

jishuqi[i]=0L;

}

SFRPAGE=UART1_PAGE;//切換到串口配置頁

EA=0;//關(guān)閉所有中斷

for(j=0; j

{

SBUF1=244+j;

while(!TI1);

TI1=0;

celiangzhi=result[j]*243/1023;//將測量值經(jīng)過計算轉(zhuǎn)換為實際值

SBUF1=measurement;

while(!TI1);//等待串口發(fā)送成功標志變化

TI1=0;

}

EA=1;//重新開全局中斷

}

tongdao_convert= 通 道 _input;//當 前 轉(zhuǎn) 換 路 變 為tongdao_input

SFRPAGE=SFRPAGE_SAVE; //保存當前的SFR配置頁

}

2.2 電腦端系統(tǒng)的上位機軟件設(shè)計

上位機端采用Visual Basic程序語言進行數(shù)據(jù)接收與波形還原。以下為串口配置初始化函數(shù)程序代碼:

Main.ctrMSComm.InputLen=1

Main.ctrMSComm.InputMode=1'接受方式為二進制數(shù)組

Main.ctrMSComm.InBufferSize=1024'接受緩沖區(qū)為1大小

Main.ctrMSComm.RThreshold=1'接收緩沖區(qū)為一個字節(jié)就觸發(fā)事件

intPort=1

strSet="115200,n,8,1"

blnAutoSendFlag=False

blnReceiveFlag=False

intReceiveLen=0'接收初始化

繪圖部分主要調(diào)用兩條語句:Line語句和PSet語句。Line語句表示在圖中畫一個線段:起點和終點分別是語句中的兩個坐標點。PSet語句的作用是在制定容器內(nèi)畫一個點,此容器的位置就是語句內(nèi)的坐標點。

Line語句與PSet語句如下:

drawline.Line(X0,Y0)-(X,Y)

drawline.PSet(X,Y)

圖4與圖5為用Visual Basic程序編寫的多路數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)接收界面以及波形還原界面。

圖4 多路數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)接收界面Fig.4 The data receiving interface of multi-channel data acquisition system

圖5 多路數(shù)據(jù)采集系統(tǒng)波形還原界面Fig.5 Multi channel data acquisition system to restore the waveform interface

3 系統(tǒng)測試

在多路數(shù)據(jù)采集系統(tǒng)設(shè)計完成后,對系統(tǒng)進行了測試。在任意一路模擬信號端連接信號發(fā)生器,對數(shù)據(jù)進行采集,并波形還原,再與用示波器捕捉到的信號發(fā)生器的波形進行比較,看是否吻合。圖6與圖8為示波器捕捉到的頻率為30 Hz的三角波與正弦波截圖。圖7與圖9為用多路數(shù)據(jù)采集系統(tǒng)采集到數(shù)據(jù)后進行波形還原后,在計算機上看到的波形圖。

可以從圖6~圖9中看到:多路數(shù)據(jù)采集系統(tǒng)采集到的波形發(fā)生器的波形與示波器捕捉到的信號發(fā)生器的波形基本一致。

圖6 三角波30 Hz(示波器)Fig.6 Triangle wave 30 Hz(DSO)

圖7 三角波30 Hz(上位機)Fig.7 Triangle wave 30 Hz(PC)

圖8 三角波30 Hz(示波器)Fig.8 Triangle wave 30 Hz(DSO)

圖9 三角波30 Hz(上位機)Fig.9 Triangle wave 30 Hz(PC)

4 結(jié) 論

文中設(shè)計的基于C8051F060的多路數(shù)據(jù)采集系統(tǒng)可對8路模擬量數(shù)據(jù)進行采集,并能實時傳輸?shù)絇C機,并能實時顯示所采集的數(shù)據(jù)及模擬量的波形。且成本低廉,結(jié)構(gòu)簡單,可廣泛應(yīng)用于各種工業(yè)場合中。

[1]潘琢金.C8051F060/1/2/3/4/5/6/7混合信號ISP FLASH微控制器[M].新華龍電子有限公司,2004.

[2]張培仁.基于C語言C8051F系列微控制器原理與應(yīng)用[M].北京:清華大學(xué)出版社,2007.

[3]李雁翎.Visual Basic程序設(shè)計[M].北京:清華大學(xué)出版社,2004.

[4]康健,武彬.基于單片的變頻調(diào)速恒壓給水控制系統(tǒng)設(shè)計[J].煤炭技術(shù).2012(5):23-26.KANG Jian,WU Bin.The design of control system of based on chip VVVF constant pressure watersupply[J].Coal technology,2012,(5):23-26.

[5]田澤.嵌入式系統(tǒng)與應(yīng)用[M].北京:航空航天大學(xué)出版,2005.

[6]李洪科,吳漢松.基于RTW的無刷直流電機控制系統(tǒng)仿真的新方法.微計算機信息,2005:67-69.LI Hong-ke,WU Han-song.Based on RTW brushless DCmotor control system simulation the new method[J].Microcomputer Information,2005(6):67-69.

猜你喜歡
中斷上位語句
重點:語句銜接
基于FPGA的中斷控制器設(shè)計*
特斯拉 風云之老阿姨上位
跟蹤導(dǎo)練(二)(5)
千里移防,衛(wèi)勤保障不中斷
“三扶”齊上位 決戰(zhàn)必打贏
基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
以新思路促推現(xiàn)代農(nóng)業(yè)上位
如何搞定語句銜接題
FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
万安县| 龙岩市| 隆子县| 汉阴县| 荔浦县| 徐汇区| 阳城县| 普格县| 读书| 筠连县| 巴林左旗| 新龙县| 伊吾县| 邢台市| 龙泉市| 潼南县| 云南省| 教育| 高清| 唐山市| 新营市| 乾安县| 巴林左旗| 集贤县| 香港| 景洪市| 湘阴县| 永济市| 万州区| 武宣县| 沁水县| 深圳市| 河间市| 铜鼓县| 高要市| 阿克苏市| 河南省| 通城县| 田阳县| 清徐县| 武乡县|