實(shí)驗(yàn) AD轉(zhuǎn)換 一、實(shí)驗(yàn)?zāi)康?/strong> 了解STC單片機(jī)ADC的結(jié)構(gòu); 掌握STC單片機(jī)ADC的使用。 二、實(shí)驗(yàn)原理 STC15F2K60S2單片機(jī)內(nèi)含8路10位高速AD轉(zhuǎn)換器,速度可達(dá)30萬(wàn)次/秒。單片機(jī)P1口既可作為普通I/O口,也可作為AD轉(zhuǎn)換器模擬電壓輸入口。AD轉(zhuǎn)換器相關(guān)的寄存器如表1所示。 表1 ADC轉(zhuǎn)換相關(guān)寄存器
①P1口控制寄存器P1ASF P1ASF某一位為“1”,P1口對(duì)應(yīng)的引腳設(shè)為模擬功能。某一位為“0”,對(duì)應(yīng)的引腳設(shè)為普通I/O。 ②ADC控制寄存器ADC_CONTR ADC_POWER=1,打開(kāi)AD轉(zhuǎn)換器電源(關(guān)閉電源可降低功耗,ADC初次上電需適當(dāng)延時(shí),再啟動(dòng)AD轉(zhuǎn)換)。 SPEED1、SPEED0選擇AD轉(zhuǎn)換速度。
ADC_FLAG:AD轉(zhuǎn)換結(jié)束標(biāo)志,需由軟件清0。 ADC_START:AD轉(zhuǎn)換啟動(dòng)控制。 CHS2、CHS1、CHS0:選擇模擬輸入通道P1.0~P1.7。 轉(zhuǎn)換結(jié)果存放在ADC_RES和ADC_RESL寄存器中,當(dāng)CLK_DIV.5/ADRJ=0時(shí),ADC_RES為結(jié)果的高8位,ADC_RESL為結(jié)果的低2位(如表2所示)。當(dāng)CLK_DIV.5/ADRJ=1時(shí),ADC_RES為結(jié)果的高2位,ADC_RESL為結(jié)果的低8位(如表3所示)。 表2 ADRJ=0時(shí)ADC轉(zhuǎn)換結(jié)果寄存器格式
表3 ADRJ=1時(shí)ADC轉(zhuǎn)換結(jié)果寄存器格式
STC15F2K60S2的AD轉(zhuǎn)換器以Vcc為參考電壓,當(dāng)ADRJ=0時(shí),10位轉(zhuǎn)換結(jié)果與輸入模擬電壓的關(guān)系由式(1)計(jì)算: …………...……………………(1)
如果只取高8位,則由式(2)計(jì)算: ……………………………………...…………………(2)
當(dāng)ADRJ=1時(shí),10位轉(zhuǎn)換結(jié)果與輸入模擬電壓的關(guān)系由式(3)計(jì)算: …………………………………(3)
如果單片機(jī)Vcc電壓不穩(wěn),會(huì)引起AD轉(zhuǎn)換誤差,在實(shí)際應(yīng)用中,可用一路AD采樣外部的基準(zhǔn)電壓(如用TL431基準(zhǔn)電源),另一路AD采樣被測(cè)電壓,按式(4)計(jì)算: ………………………………..…………………..(4)
三、實(shí)驗(yàn)環(huán)境 Windows XP; Keil μ Vision 4; STC-ISP-6.28。 四、實(shí)驗(yàn)內(nèi)容 1.實(shí)驗(yàn)連線 分別用兩根8芯杜邦線將單片機(jī)P2口與J61、單片機(jī)P0口與J62連接起來(lái),P0口用于數(shù)碼管的位選擇,P2口輸出數(shù)碼管的顯示碼。用跳線帽短接JP8、JP9,模擬輸入經(jīng)過(guò)RC濾波(如圖1所示)。用杜邦線連接連接J35和P1.3,單片機(jī)通道3采樣模擬輸入電壓。 
圖1 ADC模擬輸入濾波電路 2.程序設(shè)計(jì) Keil匯編或C語(yǔ)言頭文件REG51.H不包含STC單片機(jī)ADC寄存器定義,而編程時(shí)需要用到ADC_CONTR、ADC_RES等特殊功能寄存器,STC-ISP軟件提供各種STC單片機(jī)的寄存器定義頭文件。在STC-ISP軟件界面,選擇頭文件選項(xiàng)卡,選擇好單片機(jī)系列,該系列的寄存定義出現(xiàn)在文本框中,可以復(fù)制頭文件內(nèi)容,也可以保存頭文件(如圖8-2所示)。本實(shí)驗(yàn)可以將頭文件命名為STC15F2K.H,保存到\Keil\C51\INC文件夾中,以后編程時(shí)直接用該頭文件替換REG51.H。 AD轉(zhuǎn)換可以用中斷的方式,也可以用查詢的方式。每次轉(zhuǎn)換結(jié)束,將ADC_RES寄存器和ADC_RESL寄存器內(nèi)容存入整型變量result。當(dāng)ADRJ=0時(shí): int result; result=(ADC_RES<<2)|(ADC_RESL&3); vin=result*Vcc/1024; //Vcc單位為毫伏 
圖9-2 STC15F2K系列頭文件 3.程序設(shè)計(jì) 程序經(jīng)編譯生成HEX文件,再利用STC-ISP軟件將代碼下載到單片機(jī)中,調(diào)節(jié)多圈電位器W3,觀察數(shù)碼管顯示值的變化。用數(shù)字萬(wàn)用表核對(duì)J35的輸入電壓與數(shù)碼管顯示的電壓是否一致。 五、思考題 1. ADC通道2對(duì)2.45V基準(zhǔn)電壓(J41)采樣,通道3對(duì)模擬輸入電壓采樣,根據(jù)(4)式計(jì)算并顯示被測(cè)電壓。 2.如何實(shí)現(xiàn)多路電壓檢測(cè)并輪流顯示?
以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁(yè)上的一模一樣,方便保存):
實(shí)驗(yàn) AD轉(zhuǎn)換.docx
(104.09 KB, 下載次數(shù): 228)
2018-7-5 10:17 上傳
點(diǎn)擊文件名下載附件
單片機(jī)小實(shí)驗(yàn),感興趣的師兄可以做一下哦 下載積分: 黑幣 -5
|