單片機的數(shù)據(jù)采集_第1頁
單片機的數(shù)據(jù)采集_第2頁
單片機的數(shù)據(jù)采集_第3頁
單片機的數(shù)據(jù)采集_第4頁
單片機的數(shù)據(jù)采集_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第二章數(shù)據(jù)采集本章主要圍繞著下位單片機的工作進行展開的,即主要實現(xiàn)下位單片機對外界模擬 信號和數(shù)字信號的采集,下面分別給予介紹,在介紹之前先對單片機AT89C51做適當(dāng)?shù)?介紹。2.1 AT89C51 簡介AT89C51 是一種帶 4K 字節(jié) FLASH 存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。該 器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸 出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT8

2、9C51 是一種高效微控制器,AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價 廉的方案。主要管腳介紹如下:VCC:供電電壓。GND:接地。P0 : P0 口為一個8位漏級開路雙向I/O 口,每腳可吸收8TTL門電流。當(dāng)P0 口 的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被 定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進行校 驗時,P0輸出原碼,此時P0外部必須被拉高。P1 口: P1 口是一個內(nèi)部提供上拉電阻的8位雙向I/O 口,P1 口緩沖器能接收輸出 4TTL門電流。P1 口管腳寫入1后,被內(nèi)部上拉為高

3、,可用作輸入,P1 口被外部下拉為 低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1 口作為 第八位地址接收。P2 : P2 口為一個內(nèi)部上拉電阻的8位雙向I/O 口,P2 口緩沖器可接收,輸出4 個TTL門電流,當(dāng)P2 口被寫“ 1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因 此作為輸入時,P2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2 口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2 口輸出地址的高 八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行 讀寫時,P2 口輸出其特殊功能寄存器的內(nèi)容。P

4、2 口在FLASH編程和校驗時接收高八位 地址信號和控制信號。P3 :P3 口管腳是8個帶內(nèi)部上拉電阻的雙向I/O 口,可接收輸出4個TTL門電流。 當(dāng)P3 口寫入“ 1”后,它們被內(nèi)部上拉為高電平,并用作輸入。P3 口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳備選功能P3.0 RXD (串行輸入口)P3.1 TXD (串行輸出口)P3.2 /INT0 (外部中斷0)P3.3 /INT1 (外部中斷1)P3.4 T0 (記時器0外部輸入)P3.5 T1 (記時器1外部輸入)P3.6 /WR (外部數(shù)據(jù)存儲器寫選通)P3.7 /RD (外部數(shù)據(jù)存儲器讀選通)P3 口同時為閃爍編程

5、和編程校驗接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字 節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期 輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于 定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想 禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVX,MOVC指令是ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止

6、,置位無 效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期 兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管 是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高 電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1 :反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2 :來自反向振蕩器的輸出。最小系統(tǒng)介紹:對51系列單片機來說,最小系統(tǒng)一般應(yīng)該

7、包括:單片機、時鐘電路、復(fù)位電路、電源。 51單片機的最小系統(tǒng)電路圖如圖2-1所示S-KTftLIKTAL2RSTPSENALE函LI1D 1 ?-!乃.tsh7PgS P2.1X pwwm P2.3W11 P2.iw12 P鑫M P2.6.W1 iP2.7.W15PHURaD P3.1/DCD P32.1HW TP3.iiTDP3/T1_ P3J&I PT7.而PDnP.DD PD.lftDIP0iAD2PEORD3PD.iMDiP0.&MD5P0.&P.D6 PQj.P.DT圖2-1單片機最小系統(tǒng)圖時鐘電路:時鐘電路是單片機的心臟,用于產(chǎn)生單片機工作所需要的時鐘信號,單 片機的時

8、鐘產(chǎn)生方法有內(nèi)部時鐘方式和外部時鐘方式兩種。如上圖是采用的內(nèi)部時鐘方 式。其中最主要的參數(shù)是晶振頻率,通長在1.2M到12M之間選擇,頻率越高,系統(tǒng)的 時鐘頻率就越高,運行速度就越快。復(fù)位電路:復(fù)位的作用是初始化單片機。進行復(fù)位時,外部電路需要在復(fù)位引腳RST 端產(chǎn)生大于兩個機器周期的高電平信號,RST引腳通過片內(nèi)施密特觸發(fā)器與復(fù)位電路相 連,內(nèi)部復(fù)位電路采樣施密特觸發(fā)器的輸出,得到復(fù)位信號后完成復(fù)位。有上電復(fù)位和 上電按鈕復(fù)位兩種方式,上圖采用的是上電按鈕復(fù)位。2.2模擬量的采集部分2.2.1模擬量產(chǎn)生電路模擬量是指變量在一定范圍連續(xù)變化的量也就是在一定范圍(定義域)內(nèi)可以取任 意值。一般模

9、擬量是指現(xiàn)場的水井水位、水塔水位、泵出口壓力和出口流量等模擬量, 需要通過多路復(fù)用芯片完成多路數(shù)據(jù)的采集和模數(shù)轉(zhuǎn)換器完成模擬量和數(shù)字量的轉(zhuǎn)換, 再將采集的數(shù)據(jù)給CPU處理。此處為了仿真與硬件制作的方便,本課題采用變化的電壓 信號作為模擬量信號。電路圖如圖2-2所示。這里使用滑動變阻器產(chǎn)生變化的電壓作為 變化的模擬量輸入,連接到AD轉(zhuǎn)換芯片的輸入端,通過改變滑動變阻器觸點的位置, 可以改變輸入電壓的大小,即為變化的模擬信號。圖2-2模擬量產(chǎn)生電路2.2.2 AD 轉(zhuǎn)換由于模擬量是連續(xù)變化的量,而單片機只能接收數(shù)字量,所以在模擬量采集的過程 中必須有模數(shù)轉(zhuǎn)換電路。在這里使用ADC0809進行模數(shù)轉(zhuǎn)

10、換。ADC0809是美國國家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D轉(zhuǎn)換 器。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路 模擬輸入信號中的一個進行A/D轉(zhuǎn)換。是目前國內(nèi)應(yīng)用最廣泛的8位通用A/D芯片。其結(jié)構(gòu)圖如圖2-3所示。670NO80809Zl ADDAADDBAIHXaitSIALi l 匚EGC匚安QE匚LK匚V仃匚-,RF.F匚y910II1213H火。-福二 D,圖2-3 ADC0809結(jié)構(gòu)圖ADC0809的主要特性:1)8路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位2)具有轉(zhuǎn)換起??刂贫?)轉(zhuǎn)換時間為100 us(時鐘為640kHz時

11、),130 us (時鐘為500kHz時)4)單個+ 5V電源供電5)模擬輸入電壓范圍0+ 5V,不需零點和滿刻度校準(zhǔn)6)工作溫度范圍為-40 85攝氏度7)低功耗,約15mW。ADC0809是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,它由8路模擬開關(guān)、地址鎖存與譯 碼器、比較器、8位開關(guān)樹型A/D轉(zhuǎn)換器、逐次逼近ADC0809的引腳功能ADC0809芯片有28條引腳,采用雙列直插式封裝,下面說明各引腳功能。IN0IN7: 8路模擬量輸入端。2-12-8: 8位數(shù)字量輸出端。ADDA、ADDB、ADDC: 3位地址輸入線,用于選通8路模擬輸入中的一路。ALE:地址鎖存允許信號,輸入,高電平有效。S

12、TART: A/D轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈 沖上升沿使0809復(fù)位,下降沿啟動A/D轉(zhuǎn)換)。EOC: A/D轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換 期間一直為低電平)。OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高 電平,才能打開輸出三態(tài)門,輸出數(shù)字量。CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。REF ( + )、REF (-):基準(zhǔn)電壓。Vcc :電源,+5V。GND:地。ADC0809的工作過程首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8 路模擬輸

13、入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動A/D轉(zhuǎn)換, 之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,?示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當(dāng)。輸入高電 平時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。轉(zhuǎn)換數(shù)據(jù)的傳送A/D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時傳送給單片機進行處理。數(shù)據(jù)傳送的 關(guān)鍵問題是如何確認(rèn)A/D轉(zhuǎn)換的完成,因為只有確認(rèn)完成后,才能進行傳送。為此可采 用下述三種方式。定時傳送方式對于一種A/D轉(zhuǎn)換其來說,轉(zhuǎn)換時間作為一項技術(shù)指標(biāo)是已知的和固定的。例如 ADC0809轉(zhuǎn)換時間為128us,相當(dāng)于6M

14、Hz的MCS-51單片機共64個機器周期??蓳?jù)此 設(shè)計一個延時子程序,A/D轉(zhuǎn)換啟動后即調(diào)用此子程序,延遲時間一到,轉(zhuǎn)換肯定已經(jīng) 完成了,接著就可進行數(shù)據(jù)傳送。查詢方式A/D轉(zhuǎn)換芯片由表明轉(zhuǎn)換完成的狀態(tài)信號,例如ADC0809的EOC端。因此可以用查 詢方式,測試EOC的狀態(tài),即可確認(rèn)轉(zhuǎn)換是否完成,并接著進行數(shù)據(jù)傳送。中斷方式把表明轉(zhuǎn)換完成的狀態(tài)信號(EOC)作為中斷請求信號,以中斷方式進行數(shù)據(jù)傳送。不管使用上述哪種方式,只要一旦確定轉(zhuǎn)換完成,即可通過指令進行數(shù)據(jù)傳送。首 先送出口地址并以信號有效時,OE信號即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機接 受。2.2.3模擬量采集電路以上介紹了模數(shù)

15、轉(zhuǎn)換芯片ADC0809的硬件資料,下來介紹如何使用ADC0809實現(xiàn)模 擬量的采集,為了更直觀的體現(xiàn)出模擬量的采集,在此加了數(shù)碼管顯示電路用來直觀的 顯示采集到的模擬量,該電路采用連續(xù)的0-5V電壓作為模擬量的輸入信號連接到ADC0809的模擬量輸入通道0,輸出OUT1-OUT8連接到單片機的P1 口,由于單片機采 用的是二進制數(shù)據(jù),所以單片機P1 口輸出的數(shù)據(jù)的范圍為二進制數(shù)00000000B到二進 制數(shù)11111111B,轉(zhuǎn)換為十進制數(shù)據(jù)為0到255.也就說當(dāng)改變滑動變阻器觸點的位置, 就可以改變ADC0809的模擬量輸入信號的大小,從而改變P0 口輸出的數(shù)據(jù)。直觀的說 就是當(dāng)ADC080

16、9采集到的模擬電壓信號等于0V的時候,P0 口輸出00000000,當(dāng)ADC0809 采集的模擬電壓信號等于5V的時候,P0 口輸出11111111,對應(yīng)為顯示數(shù)碼管顯示255, 因此這個采集的分辨率為0.0196V,這其實就是數(shù)字電壓表的原理。采集原理圖如圖2-4 所示。模擬量的采集程序如下。CLRSTSETBSTCLRST;啟動AD轉(zhuǎn)換JNBEOC,$;等待轉(zhuǎn)換結(jié)束SETBOEMOVADC,P1;讀取AD轉(zhuǎn)換結(jié)果CLROE該電路的時鐘信號由定時器的定時中斷產(chǎn)生,連接在單片機的P2.4 上面。程序如 下MOVTMOD,#02H;設(shè)置定時器0工作在方式1,定時方式MOVTH0,#245;置計數(shù)

17、初值MOVTL0,#00HMOVIE,#82H;開定時器0的中斷SETBTR0; 啟動定時器INT_T0: CPLCLOCK;提供ADC0808時鐘信號RETI因為本章主要講述的是數(shù)據(jù)的采集,因此沒有給出顯示部分的程序。m FP3.0/RXD P3.1HXD P3.2/n P3.3/iNTfP3.4TO P3.5/T1 P3.6西 P3.7.-RDPCi.DMIOP0.1/AD1PD.2/AD2P0.3/AD3P0.4/.4P0.5MD5P0.6/AD6P0.7/AD7F2 .吹 F2.1 猊 F2.2/A1D P2.3/A11 P2.4/A12 P2.6/A13 P2.6/A14 P2.7/

18、A15-1112T斗16互. ;1CINDIN1IN2ISIN5灣盟簇CLOCKSTARTELICDLU1 DUT2 DUT3 DUT4 DLU5 DUTO DUT7DUT8hi7衛(wèi)1 口 2D re:- .伯 g18估或14 D1、1DEj-XEF(+)X/F:EF(-)OEWDCD80S 8路45機房的采崟及旻示電跳圖2-4 模擬量的采集2.3數(shù)字量的采集數(shù)字量在時間上和數(shù)量上都是離散的,它們的變化在時間上是不連續(xù)的,總是發(fā) 生在一系列離散的瞬間。同時,它們的數(shù)值大小和每次的增減變化都是某一個最 小數(shù)量單位的整數(shù)倍,而小于這個最小數(shù)量單位的數(shù)值沒有任何物理意義。這一 類物理量叫做數(shù)字量。因為單片機內(nèi)部即為數(shù)字量,因此這

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論