版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于單片機的八路數(shù)據(jù)采集系統(tǒng)(一)摘要:單片機數(shù)據(jù)采集系統(tǒng)是計算機在工業(yè)控制中最為普遍的應(yīng)用系統(tǒng)它的任務(wù)是采集生產(chǎn)過程中的各種工況參數(shù)經(jīng)過處理后送入內(nèi)存儲器,CPU再對這些參數(shù)數(shù)據(jù)進行分析,運算和處理。本系統(tǒng)設(shè)計一個單片機系統(tǒng),負責數(shù)據(jù)的采集和顯示,設(shè)計一個多路數(shù)據(jù)輸入輸出系統(tǒng),實現(xiàn)8路輸入和輸出。采用89C51系列單片機、ADC0809、LED數(shù)碼管等芯片實現(xiàn)硬件仿真,采用匯編語言。最后硬件電路在Proteaus下仿真實現(xiàn)。關(guān)鍵詞:數(shù)據(jù)采集;8路輸入輸出;LED顯示。0.前言隨著科學技術(shù)的進步,人們越來越多地用計算機來實現(xiàn)控制系統(tǒng),因此,充分理解計算機控制系統(tǒng)是十分重要的。計算機控制系統(tǒng)的工
2、作原理可歸納為以下三個步驟:1.實時數(shù)據(jù)采集:對來自測量變送裝置已的被控量的瞬時值進行檢測和輸入。 2.實時控制決策:對采集到的被控量進行分析和處理,并按已定的控制規(guī)律,決定將要采取的控制行為。3.實時控制輸出:根據(jù)控制決策,適時地對執(zhí)行機構(gòu)發(fā)出控制信號,完成控制任務(wù)。工業(yè)控制機包括硬件和軟件兩部分:硬件包括主機板、內(nèi)部總線和外部總線、人-機接口、系統(tǒng)支持板、磁盤系統(tǒng)、通信接口、輸入輸出通道。軟件包括系統(tǒng)軟件、支持軟件和應(yīng)用軟件。本系統(tǒng)設(shè)計一個單片機系統(tǒng),負責數(shù)據(jù)的采集和顯示,設(shè)計一個多路數(shù)據(jù)輸入輸出系統(tǒng),實現(xiàn)8路輸入和輸出。采用89C51系列單片機、ADC0809、LED數(shù)碼管等芯片實現(xiàn)硬件
3、仿真,采用匯編語言。最后硬件電路在Proteaus下仿真實現(xiàn)。1.基單片機的八路數(shù)據(jù)采集的基本理論基于單片機的八路數(shù)據(jù)采集電路的主要原理是:通過電位計控制輸入信號(電壓值)的幅值,經(jīng)單片機對八路信號進行實時同步采樣,并用鍵盤選擇通道控制LED顯示八路數(shù)據(jù)采集結(jié)果。 本課題只要掌握單片機與ADC0809,LED數(shù)碼管的接口方式,ADC0809的工作原理,LED數(shù)碼管的驅(qū)動原理,就能實現(xiàn)Proteus仿真。2.方案設(shè)計數(shù)據(jù)采集電路的原理框圖1所示?,F(xiàn)場信號1數(shù)據(jù)采集器1主控系統(tǒng)數(shù)據(jù)存儲現(xiàn)場信號2數(shù)據(jù)采集器2現(xiàn)場信號8數(shù)據(jù)采集器8數(shù)據(jù)顯示圖1 數(shù)據(jù)采集電路的原理框圖根據(jù)設(shè)計要求,采用的方案如下:硬件
4、部分實現(xiàn)對8路數(shù)據(jù)采集和顯示的功能,包括MCS-51單片機、ADC0809、LED數(shù)碼管;軟件部分實現(xiàn)單片機對8路輸入數(shù)據(jù)的采集以及對LED的顯示操作。主要設(shè)計思想:單片機P1口與ADC0809相連,P3.0、P3.1口與74LS164連接,四個74LS164連接分別與四個LED數(shù)碼管連接。模擬信號通過IN0IN7輸入到ADC0809中轉(zhuǎn)換為數(shù)字信號,P1獲得此值后,經(jīng)過處理得到每位的數(shù)據(jù)后,通過四個74LS164送到LED顯示屏上。3.系統(tǒng)硬件的工作原理3.1 MCS51單片機MCS-51單片機的內(nèi)部資源主要有并行I/O接口、定時器/計數(shù)器、串行接口以及中斷系統(tǒng)。其外部引腳如圖2所示。圖2
5、MCS-51單片機3.1.1 I/O接口51系列單片機有4個8位并行的I/O端口:P0、P1、P2、P3口。這4個口既可以并行輸入或輸出8位數(shù)據(jù),又可以按位方式使用,即每一位均能獨立作為輸入或輸出接口用。3.1.2 定時器/計數(shù)器電路1.MCS-51單片機有兩個16位的可編程定時/計數(shù)器:定時/計數(shù)器T0和定時/計數(shù)器T1。2.每個定時/計數(shù)器既可以對系統(tǒng)時鐘計數(shù)實現(xiàn)定時,也可以對外部信號計數(shù)實現(xiàn)計數(shù)功能,這些功能都是通過編程設(shè)定來實現(xiàn)的。3.每個定時/計數(shù)器有多種工作方式,其中T0有四種工作方式;T1有三種工作方式,T2有三種工作方式。通過編程可設(shè)定工作于某種方式。4.每一個定時/計數(shù)器定時
6、計數(shù)時間到時產(chǎn)生溢出,使相應(yīng)的溢出位置位,溢出可通過查詢或中斷方式來處理。 3.1.3 串行接口MCS-51單片機具有一個全雙工的串行異步通信接口,可以同時發(fā)送、接收數(shù)據(jù)。發(fā)送、接收數(shù)據(jù)可通過查詢或中斷的方式來處理。它有四種工作方式: 0.方式0,稱為同步移位寄存器方式,一般用于外接移位寄存器芯片擴展I/O接口。 1.方式1,稱為8位的異步通信方式,通常用于雙機通信。 2.方式2和方式3,稱為9位的異步通信方式,通常用于多機通信。 3.1.4 中斷系統(tǒng)MCS-51單片機提供5個(52子系列提供6個)硬件中斷源:兩個外部中斷源INT0(P3.2)和INT1(P3.3),兩個定時/計數(shù)器T0和T1
7、的溢出中斷TF0和TF1;1個串行口發(fā)送T1和接收R1中斷。以下為本系統(tǒng)用到的串口中斷部分指令:EA:中斷允許總控位。EA=0,屏蔽所有的中斷請求;EA=1,開放中斷。EA的作用是使中斷允許形成兩級控制。ES:串行口中斷允許位。ES=1允許串行口中斷。REN為允許接收控制位。REN=1,則允許接收。TI位發(fā)送中斷標志位。RI為接收中斷標志位。3.2 數(shù)據(jù)采集轉(zhuǎn)換模塊這一模塊主要有ADC0809轉(zhuǎn)化器完成。ADC0809是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型A/D轉(zhuǎn)換器、逐次逼近寄存器、邏輯控制和定時電路組成。其外部引腳如圖3所示。圖3
8、ADC08093.2.1 輸入輸出端 1. IN0IN7:8路模擬量輸入端。 2. 2-12-8:8位數(shù)字量輸出端。 3.2.2 傳輸通道選擇端 ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路。 3.2.3 使能端1.ALE:地址鎖存允許信號,輸入,高電平有效。 2.START: A/D轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復(fù)位,下降沿啟動A/D轉(zhuǎn)換)。 3.EOC: A/D轉(zhuǎn)換結(jié)束信號,輸出,當A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。 4.OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當A/D轉(zhuǎn)換結(jié)束
9、時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。 5.CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。 6.REF(+)、REF(-):基準電壓。 7.Vcc:電源,單一+5V。 8.GND:地。3.3 顯示模塊顯示模塊選用 LED數(shù)碼管。1602型LCD顯示模塊具有體積小,功耗低,顯示內(nèi)容豐富等特點。1602型LCD可以顯示2行16個字符,有8位數(shù)據(jù)總線D0-D7和RS,R/W,EN三個控制端口,工作電壓為5V,并且具有字符對比度調(diào)節(jié)和背光功能。其外部引腳如圖3所示。圖4 LED數(shù)碼管3.3.1 各引腳功能 1.VSS:電源地。 2.VDD:電源正極。 3.VEE:液晶顯示偏
10、壓信號。 4.RS:數(shù)據(jù)/命令選擇端。 5.R/W:讀寫選擇端。 6.E:使能信號。 7.D0-D7:數(shù)據(jù)輸入/輸出口。 4.軟件編程設(shè)計思想:ADC0809的使能控制端連接在單片機P3口,操作時由程序控制。當A/D轉(zhuǎn)換結(jié)束后由單片機將P1口A/D轉(zhuǎn)換后的數(shù)據(jù)附給P0口,進而由連接在P0口的LCD顯示。主程序功能:void main()/主函數(shù)實現(xiàn)8路數(shù)據(jù)的采集與控制輸出數(shù)據(jù)。子程序功能:void init()/初始化函數(shù) 對LCD進行初始化設(shè)置。 void delay(uint z)/延時函數(shù) 當z=1時,延時約為1ms。 Void write_command(uchar com)/寫命令
11、LCD寫命令操作 void write_data(uchar date)/寫數(shù)據(jù) LCD寫數(shù)據(jù)操作 void start() /開始AD轉(zhuǎn)換 開啟AD轉(zhuǎn)換 void xianshi() /AD轉(zhuǎn)化結(jié)果顯示 顯示AD轉(zhuǎn)化的結(jié)果 中斷程序功能:void timer0() interrupt 1 a2=0時,LCD第一屏顯示前四位數(shù)據(jù)。 a2=1時,LCD第二屏顯示后四位數(shù)據(jù)。程序流程圖:基于開關(guān)量的數(shù)據(jù)采集系統(tǒng)的程序流程圖如圖5所示。開始 鍵盤掃描電壓數(shù)據(jù)采集 數(shù)據(jù)處理 LED顯示 結(jié)束 圖5 程序流程圖5. 系統(tǒng)調(diào)試和結(jié)果分析根據(jù)方案設(shè)計結(jié)果,進行了硬件電路在Proteaus下的仿真。當通過電位
12、器調(diào)節(jié)AD轉(zhuǎn)換器輸入端的電壓時,模擬電壓值經(jīng)過AD轉(zhuǎn)換后,經(jīng)由單片機將轉(zhuǎn)換后的電壓值發(fā)送至P0口,供LCD進行顯示。仿真過程描述:通過keil軟件對所編程序進行編譯,生成.hex文件,在proteaus軟件中,用MCS51單片機調(diào)用.hex,即可進行硬件的仿真。該仿真包括兩部分:1. 對8路電壓進行采集,經(jīng)由AD轉(zhuǎn)換器進行轉(zhuǎn)化,轉(zhuǎn)化后的16進制數(shù)存于單片機的內(nèi)部存儲器中。2. 對轉(zhuǎn)換后的電壓進行顯示。將內(nèi)部存儲器中存儲的轉(zhuǎn)化后的電壓對應(yīng)的16進制數(shù)付給P0口,由LCD進行顯示。調(diào)節(jié)電位器LCD的顯示數(shù)據(jù)也會發(fā)生變化。調(diào)試中遇到的問題:將程序下載至開發(fā)板上的單片機進行硬件調(diào)試時主要遇到以下兩個問
13、題。1. LCD不顯示數(shù)據(jù),LED出現(xiàn)亂閃。解決方法:將LED的段選和位選端關(guān)閉后再進行硬件調(diào)試,問題得到解決。2. 調(diào)節(jié)電位器后,AD轉(zhuǎn)換的數(shù)據(jù)不變化只顯示5V。解決方法:AD轉(zhuǎn)換程序出現(xiàn)錯誤,更改程序后問題得到解決。6. 結(jié)論及進一步設(shè)想本系統(tǒng)設(shè)計一個單片機系統(tǒng),實現(xiàn)8路數(shù)據(jù)的采集和顯示,它的任務(wù)是采集生產(chǎn)過程中的各種工況參數(shù)經(jīng)過處理后送入內(nèi)存儲器,CPU再對這些參數(shù)數(shù)據(jù)進行分析,運算和處理。采用89C51系列單片機、AD轉(zhuǎn)換器、LCD1602等器件,并采用C語言編程,在Proteaus下實現(xiàn)了硬件仿真,得到了一個8路數(shù)據(jù)輸入輸出系統(tǒng)。根據(jù)實驗結(jié)果,本設(shè)計已經(jīng)完成了設(shè)計任務(wù),達到要求。但是
14、由于仿真與實際應(yīng)用是有很大差別的,該單片機的8路數(shù)據(jù)采集系統(tǒng)還存在著實際的應(yīng)用方面的缺陷,可以通過把C語言編程、單片機、真實的硬件電路等更精密的器件綜合到一起,控制在工廠生產(chǎn)過程中需要采集和控制的數(shù)據(jù),從而進一步改善該系統(tǒng),使其能夠應(yīng)用到實際的生產(chǎn)過程中。參考文獻1 謝維成,楊加國.單片機原理與應(yīng)用及C51程序設(shè)計. 北京:清華大學出版社,20092 于海生等.微型計算機控制技術(shù).北京;清華大學出版社,20083 劉復(fù)華. 單片機及其應(yīng)用系統(tǒng). 北京:清華大學出版社,19924 李斌,董慧穎. 可重組機器人研究和發(fā)展現(xiàn)狀. 沈陽工業(yè)學院學報,2000,19(4):5 于海生等. 微型計算機控制
15、技術(shù). 北京:清華大學出版社,19996 單片機原理與應(yīng)用及C51程序設(shè)計. 北京:清華大學出版社,2009課設(shè)體會做了兩周的課程設(shè)計,對于單片機的實際應(yīng)用方面讓我感受頗深。對于本專業(yè)的學生,我深知不進行自主的實踐,永遠也學不到真東西。在課設(shè)剛開始拿到題目覺得挺簡單,書上也有類似的程序,有點散漫。但當我真正的去思考開始著手做程序時才發(fā)現(xiàn)自己還有好多要去學習。Proteus仿真軟件對我來說還是比較陌生的,有很多硬件都找不到,查閱了Proteus相關(guān)的入門書籍后才能自如的運用軟件。之后便是程序的編寫,根據(jù)課設(shè)任務(wù)的要求,寫出了程序的一個大概流程,按著程序流程圖一步一步的得到了能實現(xiàn)數(shù)據(jù)輸入輸出的程
16、序,期間經(jīng)過了多次調(diào)試,修改。最終得到完整的程序,心里還是小有成就感的。問題隨之又來,當我將寫好的程序進行實物仿真時,和我想的結(jié)果完全不同,寫入程序的開發(fā)板并沒有像軟件仿真時那樣得出期望的結(jié)果,最后經(jīng)過查閱資料將程序、Proteus仿真、硬件的端口一一對應(yīng),才得出了爭確的結(jié)果。最后,感謝學校和老師給我們安排了這次課程設(shè)計,讓我真正感受到的是合作的重要,許多時候老師的指導中的一句半句啟發(fā)了我,就出現(xiàn)的讓人欣喜的結(jié)果;理論知識同樣很重要,有些問題都是由于基礎(chǔ)知識掌握不好才出現(xiàn)的??傊?,要想做好一個硬件,理論知識基礎(chǔ),動手能力也必須過關(guān),二者缺一不可,我會繼續(xù)努力學習這方面的知識,通過類似課設(shè)這種方
17、式鍛煉自己,達到學以致用。附錄1 電路原理圖附錄2 程序清單 #include#include#define uchar unsigned char#define uint unsigned intsbit adoe=P37; /OE接3.7sbit eoc=P33; /EOC接3.1sbit adstart=P36;/start接3.2sbit a0=P30; /A 3.3sbit a1=P31; /B 3.4sbit a2=P32; /C 3.5sbit lcdrs=P35; /LCD RS 3.6sbit lcden=P34; /LCD EN 3.7sbit dula=P26;sbit
18、wela=P27;long int temp,b1,b2,b3,b4,b5;uchar tt;uchar code table=.V; /顯示電壓void delay(uint z) /延時 uint x,y; for(x=z;x0;x-) for(y=100;y0;y-);void write_command(uchar com)/寫命令 dula=0; wela=0; lcdrs=0; /輸入指令P1=com;delay(5);lcden=1; /讀數(shù)據(jù)delay(5);lcden=0; /寫指令或者數(shù)據(jù)void write_data(uchar date)/寫數(shù)據(jù) lcdrs=1; /輸
19、入數(shù)據(jù)P1=date; /顯示delay(5);lcden=1; /讀數(shù)據(jù)delay(5);lcden=0;/寫指令或數(shù)據(jù)void init()/初始化lcden=0;write_command(0x38);/不可變,顯示模式設(shè)置:16*2顯示,5*7點陣,8位數(shù)據(jù)接口write_command(0x0c);/屏幕開啟和光標閃爍write_command(0x06);/顯示開關(guān)及光標設(shè)置write_command(0x01);/清屏void start() /開始AD轉(zhuǎn)換adoe=0; adstart=0; _nop_();adstart=1;adstart=0; void xianshi()
20、 /AD轉(zhuǎn)化結(jié)果顯示 write_data(tableb1); /最高位delay(1); write_data(table10); /小數(shù)點delay(1); write_data(tableb2); /第二位delay(1); write_data(tableb3); /第三位delay(1); write_data(table11); /電壓Vdelay(1); void first_mark() /0-4路通道的標號write_command(0x01);write_command(0x80);write_data(A);delay(1);write_command(0x80+0x01
21、);write_data(=);delay(1);write_command(0x80+0x09);write_data(B);delay(1);write_command(0x80+0x0a);write_data(=);delay(1);write_command(0x80+0x40);write_data(C);delay(1);write_command(0x80+0x41);write_data(=);delay(1);delay(1);write_command(0x80+0x49);write_data(D);delay(1);write_command(0x80+0x4a);w
22、rite_data(=);delay(1);void second_mark() /5-7路通道的標號write_command(0x01);write_command(0x80);write_data(E);delay(1);write_command(0x80+0x01);write_data(=);delay(1);write_command(0x80+0x09);write_data(F);delay(1);write_command(0x80+0x0a);write_data(=);delay(1);write_command(0x80+0x40);write_data(G);del
23、ay(1);write_command(0x80+0x41);write_data(=);delay(1);delay(1);write_command(0x80+0x49);write_data(H);delay(1);write_command(0x80+0x4a);write_data(=);delay(1);void main()a2=0;init();/調(diào)用LCD初始化子程序TMOD=0x01;EA=1;/開總中斷TH0=(65535-1000)/256;TL0=(65535-1000)%256; ET0=1;/開定時器0中斷TR0=1;/定時器0置位first_mark();whi
24、le(1) a0=0; /0路或4路通道的AD轉(zhuǎn)化a1=0;start();while(!eoc); adoe=1; temp=P0;delay(3);adoe=0; b1=(temp*500/255)/100; /最高位b2=(temp*500/255)%100/10; /第二位b3=(temp*500/255)%10; /第三位write_command(0x80+0x02);xianshi();a0=1; /1路或5路通道的AD轉(zhuǎn)化a1=0;start();while(!eoc); adoe=1; temp=P0;delay(3);adoe=0;b1=(temp*500/255)/100
25、; /最高位b2=(temp*500/255)%100/10; /第二位b3=(temp*500/255)%10; /第三位write_command(0x80+0x0b);xianshi();a0=0; /2路或6路通道的AD轉(zhuǎn)化a1=1; start();while(!eoc); adoe=1; temp=P0; delay(3);adoe=0;b1=(temp*500/255)/100; /最高位b2=(temp*500/255)%100/10; /第二位b3=(temp*500/255)%10; /第三位write_command(0x80+0x42);xianshi();a0=1;
26、/3路或7路通道的AD轉(zhuǎn)化a1=1;start();while(!eoc); adoe=1; temp=P0;delay(3);adoe=0;b1=(temp*500/255)/100; /最高位b2=(temp*500/255)%100/10; /第二位b3=(temp*500/255)%10; /第三位write_command(0x80+0x4b);xianshi(); void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt+;if(a2=0&tt=20)=1) /LCD第二屏顯示 tt=0;a2=1;second_mark(); if(a2=1&tt=20)=1) /LCD第一屏顯示tt=0;a2=0;first_mark();tgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 深入解析技術(shù)服務(wù)合同范本模板
- 保安服務(wù)提供商合同
- 延期還款協(xié)議
- 物資招標文件寫作技巧
- 水利建設(shè)合同協(xié)議
- 貨品購買合同格式
- 專業(yè)合同協(xié)議合規(guī)管理方法服務(wù)
- 聯(lián)營共營合同范例
- 心理輔導與咨詢服務(wù)
- 節(jié)能改造合同能源
- 2024-2025學年人教版八年級上冊數(shù)學期末押題卷(含答案)
- 高標準農(nóng)田建設(shè)的風險管理與應(yīng)急預(yù)案
- (T8聯(lián)考)2025屆高三部分重點中學12月聯(lián)合測評語文試卷(含答案解析)
- 2024年考研(英語一)真題及參考答案
- 2023年軍隊文職統(tǒng)一考試(公共科目)試卷(含解析)
- NB/T 11127-2023在用鋼絲繩芯輸送帶報廢檢測技術(shù)規(guī)范
- 2024年GYB創(chuàng)業(yè)意識及就業(yè)能力知識考試題庫(附含答案)
- 《民用爆炸物品企業(yè)安全生產(chǎn)標準化實施細則》解讀
- 行政復(fù)議法-形考作業(yè)2-國開(ZJ)-參考資料
- 智能化實驗室建設(shè)方案
- 歌曲演唱 萬疆
評論
0/150
提交評論