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