2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩125頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第9章 模數(shù)轉(zhuǎn)換器與數(shù)模轉(zhuǎn)換器,任課教師:劉忠國山東大學(xué)課程中心網(wǎng)站: http://course.sdu.edu.cn/G2S/stcmcu.cc宏晶官方網(wǎng)站:http://www.stcmcu.comSTC單片機(jī)編譯(匯編)/編程(燒錄)/仿真工具說明書; stc15系列單片機(jī)器件手冊等keil μvision軟件下載及指導(dǎo)手冊(Help→μvision Help) http://www.keil.com/Keil

2、Software –Cx51 編譯器用戶手冊: Cx51編譯器--對傳統(tǒng)和擴(kuò)展的8051微處理器的優(yōu)化的C編譯器和庫參考,2,,第9章 模數(shù)轉(zhuǎn)換器與數(shù)模轉(zhuǎn)換器本章學(xué)習(xí)目標(biāo)了解模數(shù)轉(zhuǎn)換器的工作原理及性能指標(biāo)掌握模數(shù)轉(zhuǎn)換器的應(yīng)用了解數(shù)模轉(zhuǎn)換器的工作原理及性能指標(biāo)掌握數(shù)模轉(zhuǎn)換器的應(yīng)用,3,第9章 模數(shù)轉(zhuǎn)換器與數(shù)模轉(zhuǎn)換器,9.1 模數(shù)轉(zhuǎn)換器的工作原理及性能指標(biāo)9.1.1 模數(shù)轉(zhuǎn)換器的工作原理9.1.2 模數(shù)轉(zhuǎn)換器的性能指

3、標(biāo)9.2 IAP15W4K58S4單片機(jī)片內(nèi)集成的模擬量模塊9.2.1 IAP15W4K58S4集成的A/D模塊的結(jié)構(gòu)及其使用9.2.2 IAP15W4K58S4集成的比較器模塊及其使用9.3 數(shù)模轉(zhuǎn)換器及其應(yīng)用9.3.1 數(shù)模轉(zhuǎn)換器的工作原理及性能指標(biāo)9.3.2 12位D/A轉(zhuǎn)換器TLV5616及其接口技術(shù),4,第9章 模數(shù)轉(zhuǎn)換器與數(shù)模轉(zhuǎn)換器,隨著數(shù)字電子技術(shù)及計(jì)算機(jī)技術(shù)的廣泛普及與應(yīng)用,數(shù)字信號(hào)的傳輸與

4、處理日趨普遍。自然形態(tài)下的物理量多以模擬量形式存在,如溫度、濕度、壓力、流量、速度等,實(shí)際生產(chǎn)、生活和科學(xué)實(shí)驗(yàn)中還會(huì)遇到化學(xué)量、生物量(包括醫(yī)學(xué))等。從信號(hào)工程的角度來看,要進(jìn)行信號(hào)的計(jì)算機(jī)處理,上述所有的物理量、化學(xué)量和生物量等都需要使用相應(yīng)的傳感器,將其轉(zhuǎn)換成電信號(hào)(模擬量)。將模擬量轉(zhuǎn)換為計(jì)算機(jī)能夠識(shí)別處理的數(shù)字量,而后再進(jìn)行信號(hào)的傳輸、處理、存儲(chǔ)、顯示和控制。,5,第9章 模數(shù)轉(zhuǎn)換器與數(shù)模轉(zhuǎn)換器,同樣,計(jì)算機(jī)控制外部設(shè)備時(shí)

5、,如電動(dòng)調(diào)節(jié)閥、調(diào)速系統(tǒng)等,需要將計(jì)算機(jī)輸出的數(shù)字信號(hào)變換成外設(shè)能夠接受的模擬信號(hào)。將模擬量轉(zhuǎn)換成數(shù)字量的器件稱為模數(shù)轉(zhuǎn)換器(Analog to Digital Converter,ADC),也稱為A/D轉(zhuǎn)換器或者ADC器件;將數(shù)字量轉(zhuǎn)換成模擬量的器件稱為數(shù)模轉(zhuǎn)換器(Digital to Analog Converter,DAC),也稱為D/A轉(zhuǎn)換器。,6,第9章 模數(shù)轉(zhuǎn)換器與數(shù)模轉(zhuǎn)換器,以單片機(jī)為核心,具有模擬量輸入和輸出的應(yīng)用系

6、統(tǒng)結(jié)構(gòu)如圖所示。,,圖9-1 具有模擬量輸入輸出的單片機(jī)系統(tǒng),7,第9章 模數(shù)轉(zhuǎn)換器與數(shù)模轉(zhuǎn)換器,傳感器和變送器的區(qū)別檢測儀表在模擬電子技術(shù)條件下,一般是包括傳感器、檢測點(diǎn)取樣設(shè)備及放大器(進(jìn)行抗干擾處理及信號(hào)傳輸),當(dāng)然還有電源及現(xiàn)場顯示部分(可選擇)。傳感器是一種把非電量轉(zhuǎn)變成電信號(hào)的器件。電信號(hào)一般分為連續(xù)量、離散量兩種,實(shí)際上還可分成模擬量、開關(guān)量、脈沖量等。,8,第9章 模數(shù)轉(zhuǎn)換器與數(shù)模轉(zhuǎn)換器,傳感器和變送器的區(qū)別模擬

7、信號(hào)一般采用4-20mA DC的標(biāo)準(zhǔn)信號(hào)傳輸。數(shù)字化過程中,常常把傳感器和微處理器及通信網(wǎng)絡(luò)接口封裝在一個(gè)器件(稱為檢測儀表)中,完成信息獲取、處理、傳輸、存貯等功能。在自動(dòng)化儀表中經(jīng)常把檢測儀表稱為變送器,如溫度變送器、壓力變送器等。,9,第9章 模數(shù)轉(zhuǎn)換器與數(shù)模轉(zhuǎn)換器,本章內(nèi)容安排本章首先介紹模數(shù)轉(zhuǎn)換器的工作原理及性能指標(biāo);然后介紹模數(shù)轉(zhuǎn)換器ADS7852與單片機(jī)的接口方法及編程應(yīng)用,介紹IAP15W4K58S4單片機(jī)片內(nèi)

8、集成模數(shù)轉(zhuǎn)換模塊的使用;最后介紹數(shù)模轉(zhuǎn)換器TLV5616與單片機(jī)的接口方法及編程應(yīng)用。,10,§9.1模數(shù)轉(zhuǎn)換器的工作原理及性能指標(biāo),9.1.1 模數(shù)轉(zhuǎn)換器的工作原理根據(jù)轉(zhuǎn)換的工作原理不同,模數(shù)轉(zhuǎn)換器可以分為計(jì)數(shù)-比較式、逐次逼近式和雙斜率積分式。計(jì)數(shù)-比較式模數(shù)轉(zhuǎn)換器結(jié)構(gòu)簡單,價(jià)格便宜,轉(zhuǎn)換速度慢,較少采用。下面主要介紹逐次逼近式和雙斜率積分式模數(shù)轉(zhuǎn)換器的工作原理。,11,1、逐次逼近式模數(shù)轉(zhuǎn)換器的工作原理,逐次逼

9、近式模數(shù)轉(zhuǎn)換器主要由逐次逼近寄存器SAR, 數(shù)字/電壓轉(zhuǎn)換器, 比較器, 時(shí)序及控制邏輯等部分組成。,(Successive Approximation Register),圖9-2 逐次逼近式模數(shù)轉(zhuǎn)換器的工作原理,1 0 0 0 0 0 0 0,SAR,1,Vx >Vc?輸出為邏輯1?(或0),Yes,保留1,No,1→0,1,3.8V,C2H,12,1、逐次逼近式模數(shù)

10、轉(zhuǎn)換器的工作原理——工作過程,當(dāng)模數(shù)轉(zhuǎn)換器收到“轉(zhuǎn)換命令” 并清除SAR寄存器后,控制電路先設(shè)定SAR 中最高位為“1” , 其余位為“0” , 此預(yù)測數(shù)據(jù)被送至D/A轉(zhuǎn)換器, 轉(zhuǎn)換成電壓Vc。然后將Vc與輸入模擬電壓Vx在高增益的比較器中進(jìn)行比較,比較器的的輸出為邏輯0或邏輯1。如果Vx≥Vc,說明此位置 “1”是對的,應(yīng)予保留;如果Vx<Vc,說明此位置“1” 不合適,應(yīng)予清除。按該方法繼續(xù)對次高位進(jìn)行轉(zhuǎn)換、比較和判斷

11、,決定次高位應(yīng)取“1” 還是取“0” 。重復(fù)上述過程,直至確定SAR最低位為止。該過程完成后,狀態(tài)線改變狀態(tài),表示已完成一次完整的轉(zhuǎn)換,SAR中的內(nèi)容就是與輸入的模擬電壓對應(yīng)的二進(jìn)制數(shù)字代碼。,13,2、雙積分式模數(shù)轉(zhuǎn)換器的工作原理,雙積分模數(shù)轉(zhuǎn)換器的組成框圖如圖所示。,,圖9-3 雙積分式模數(shù)轉(zhuǎn)換器的組成框圖,,,,,S,①S閉合放電后再打開,④從0計(jì)數(shù)到2n溢出,②K向上閉合,K,③電容充電,負(fù),+,⑤K向下閉合,0,⑥電容放電

12、,⑦又從0計(jì)數(shù)到N,⑧計(jì)數(shù)停止,正,+,⑧,14,2、雙積分式模數(shù)轉(zhuǎn)換器的工作原理,雙積分模數(shù)轉(zhuǎn)換器的組成框圖如圖所示。,,圖9-3 雙積分式模數(shù)轉(zhuǎn)換器的組成框圖,,,,,S,①S閉合放電后再打開,④從0計(jì)數(shù)到2n溢出,②K向上閉合,K,③電容充電,負(fù),+,⑤K向下閉合,0,⑥電容放電,⑦又從0計(jì)數(shù)到N,⑧計(jì)數(shù)停止,正,+,⑧,充電電流:,放電電流:,固定時(shí)間:,定斜率,,15,9.1.1 模數(shù)轉(zhuǎn)換器的工作原理,2、雙積分式模數(shù)轉(zhuǎn)換器

13、的工作原理 雙積分式模數(shù)轉(zhuǎn)換器轉(zhuǎn)換方法的抗干擾能力比逐次逼近式模數(shù)轉(zhuǎn)換器強(qiáng)。該方法的基礎(chǔ)是測量兩個(gè)時(shí)間:一個(gè)是模擬輸入電壓向電容充電的固定時(shí)間,另一個(gè)是在已知參考電壓下放電所需的時(shí)間,模擬輸入電壓與參考電壓的比值就等于上述兩個(gè)時(shí)間值之比。,16,2、雙積分式模數(shù)轉(zhuǎn)換器的工作原理,雙積分式模數(shù)轉(zhuǎn)換器優(yōu)點(diǎn)是精度高、抗干擾能力強(qiáng),在實(shí)際工程中得到了使用, 缺點(diǎn)是轉(zhuǎn)換速度慢。由于逐次逼近式模數(shù)轉(zhuǎn)換器能很好的兼顧速度和精度,故在

14、16位以下的模數(shù)轉(zhuǎn)換器中得到了廣泛應(yīng)用。還有并聯(lián)比較型ADC采用各量級(jí)同時(shí)并行比較, 各位輸出碼同時(shí)并行產(chǎn)生, 轉(zhuǎn)換速度快是它的突出優(yōu)點(diǎn)。并聯(lián)比較型ADC的缺點(diǎn)是成本高、功耗大。因?yàn)閚位輸出的ADC, 需要2n個(gè)電阻, (2n-1) 個(gè)比較器和D觸發(fā)器, 以及復(fù)雜的編碼網(wǎng)絡(luò), 其元件數(shù)量隨位數(shù)的增加, 以幾何級(jí)數(shù)上升。所以這種ADC適用于要求高速、低分辯率的場合。,17,9.1.2模數(shù)轉(zhuǎn)換器的性能指標(biāo),A/D轉(zhuǎn)換器是實(shí)

15、現(xiàn)單片機(jī)數(shù)據(jù)采集的常用外圍器件。A/D轉(zhuǎn)換器的品種繁多, 性能各異, 設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)時(shí), 需選擇合適的A/D轉(zhuǎn)換器以滿足系統(tǒng)設(shè)計(jì)要求。選擇A/D轉(zhuǎn)換器需要綜合考慮系統(tǒng)技術(shù)指標(biāo)、成本、功耗、安裝等因素。,1、分辨率分辨率是A/D轉(zhuǎn)換器能分辨最小信號(hào)的能力, 表示數(shù)字量變化一個(gè)相鄰數(shù)碼所需輸入模擬電壓的變化量。分辨率越高,轉(zhuǎn)換時(shí)對輸入模擬信號(hào)變化的反應(yīng)就越靈敏。,18,1、分辨率,例如,8位A/D轉(zhuǎn)換器能夠分辨出滿刻度的1/256

16、,若滿刻度輸入電壓為5V,則該8位A/D轉(zhuǎn)換器能夠分辨出輸入電壓變化的最小值為19.5mV。分辨率常用A/D轉(zhuǎn)換器輸出的二進(jìn)制位數(shù)表示。常見的A/D轉(zhuǎn)換器有8位、10位、12位、14位和16位等。,一般稱8位以下的ADC器件為低分辨率ADC器件;9~12位的ADC器件稱為中分辨率ADC器件;13位以上的ADC器件稱為高分辨率ADC器件。,19,如何選擇ADC器件的分辨率,10位以下ADC器件誤差較大,11位以上對減小誤差并無太大貢

17、獻(xiàn),但對ADC器件的要求卻提得過高。因此,取10位或11位是合適的。由于模擬信號(hào)先經(jīng)過測量裝置,再經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換后才進(jìn)行處理,因此,總的誤差是由測量誤差和量化誤差共同構(gòu)成的。,A/D轉(zhuǎn)換器的精度應(yīng)與測量裝置的精度相匹配。一方面要求量化誤差在總誤差中所占的比重要小,使它不顯著地?cái)U(kuò)大測量誤差;另一方面必須根據(jù)目前測量裝置的精度水平,對A/D轉(zhuǎn)換器的位數(shù)提出恰當(dāng)?shù)囊蟆?20,9.1.2模數(shù)轉(zhuǎn)換器的性能指標(biāo),2、通道有的單芯片內(nèi)部

18、含有多個(gè)ADC模塊,可同時(shí)實(shí)現(xiàn)多路信號(hào)的轉(zhuǎn)換;常見的多路ADC器件只有一個(gè)公共的ADC模塊,由一個(gè)多路轉(zhuǎn)換開關(guān)實(shí)現(xiàn)分時(shí)轉(zhuǎn)換。3、基準(zhǔn)電壓基準(zhǔn)電壓有內(nèi)、外基準(zhǔn)和單、雙基準(zhǔn)之分。,21,9.1.2模數(shù)轉(zhuǎn)換器的性能指標(biāo),4、轉(zhuǎn)換速率轉(zhuǎn)換時(shí)間:A/D轉(zhuǎn)換器從啟動(dòng)轉(zhuǎn)換到轉(zhuǎn)換結(jié)束,輸出穩(wěn)定的數(shù)字量,需要的一定的轉(zhuǎn)換時(shí)間。轉(zhuǎn)換速率:轉(zhuǎn)換時(shí)間的倒數(shù)即每秒鐘完成的轉(zhuǎn)換次數(shù)。A/D轉(zhuǎn)換器的型號(hào)不同,轉(zhuǎn)換時(shí)間不同。逐次逼近式單片A/D轉(zhuǎn)換器轉(zhuǎn)換時(shí)

19、間的典型值為1.0~200μs。,應(yīng)根據(jù)輸入信號(hào)的最高頻率來確定ADC轉(zhuǎn)換速度,保證轉(zhuǎn)換器的轉(zhuǎn)換速率要高于系統(tǒng)要求的采樣頻率。,ADS7852: 12位逐次逼近式A/D轉(zhuǎn)換器轉(zhuǎn)換速率 500kHzICL7109: 12位雙積分式A/D轉(zhuǎn)換器轉(zhuǎn)換速率30次/s,22,9.1.2模數(shù)轉(zhuǎn)換器的性能指標(biāo),確定A/D轉(zhuǎn)換器的轉(zhuǎn)換速率時(shí),應(yīng)考慮系統(tǒng)的采樣速率。例如,如果用轉(zhuǎn)換時(shí)間為100μs的A/D轉(zhuǎn)換器,則其轉(zhuǎn)換速率為10KHz。根據(jù)采樣定

20、理和實(shí)際需要,一個(gè)周期的波形需采10個(gè)樣點(diǎn),那么這樣的A/D轉(zhuǎn)換器最高也只能處理頻率為1KHz的模擬信號(hào)。對一般單片機(jī)而言,在如此高的采樣頻率下,要在采樣時(shí)間內(nèi)完成A/D轉(zhuǎn)換以外的工作,如讀取數(shù)據(jù)、再啟動(dòng)、保存數(shù)據(jù)、循環(huán)計(jì)數(shù)等已經(jīng)比較困難了。,23,9.1.2模數(shù)轉(zhuǎn)換器的性能指標(biāo),5、采樣/保持器采樣/保持也稱為跟蹤/保持(Track/Hold縮寫T/H)。原則上采集直流和變化非常緩慢的模擬信號(hào)時(shí)可不用采樣保持器。對于其他模擬信

21、號(hào)一般都要加采樣保持器。如果信號(hào)頻率不高,A/D轉(zhuǎn)換器的轉(zhuǎn)換時(shí)間短,即使用高速A/D轉(zhuǎn)換器時(shí),也可不用采樣/保持器。,24,9.1.2模數(shù)轉(zhuǎn)換器的性能指標(biāo),6、量程量程即所能轉(zhuǎn)換的電壓范圍,如2.5V、5V和10V。7、滿刻度誤差滿度輸出時(shí)對應(yīng)的輸入信號(hào)與理想輸入信號(hào)值之差稱為滿刻度誤差。8、線性度實(shí)際轉(zhuǎn)換器的轉(zhuǎn)移函數(shù)與理想直線的最大偏移稱為線性度。,25,9.1.2模數(shù)轉(zhuǎn)換器的性能指標(biāo),9、數(shù)字接口方式根據(jù)轉(zhuǎn)換的數(shù)據(jù)輸出接

22、口方式,A/D轉(zhuǎn)換器可以分為并行接口和串行接口兩種方式。并行方式在轉(zhuǎn)換后可直接接收, 但芯片引腳比較多;串行方式所用芯片引腳少,封裝小,但需要軟件處理才能得到所需要的數(shù)據(jù)。單片機(jī)I/O引腳不多時(shí), 用串行器件可節(jié)省I/O資源。但是并行器件具有明顯的轉(zhuǎn)換速度優(yōu)勢。在轉(zhuǎn)換速度要求較高的情況下應(yīng)選用并行器件。,26,9.1.2模數(shù)轉(zhuǎn)換器的性能指標(biāo),10、模擬信號(hào)類型通常ADC器件的模擬輸入信號(hào)都是電壓信號(hào)。同時(shí)根據(jù)信號(hào)是否過零,還

23、分成單極性(Unipolar)信號(hào)和雙極性(Bipolar)信號(hào)。11、電源電壓電源電壓有單電源,雙電源和不同電壓范圍之分,早期的ADC器件要有+15V/-15V,如果選用單+5V電源的芯片則可以使用單片機(jī)系統(tǒng)電源。,27,9.1.2模數(shù)轉(zhuǎn)換器的性能指標(biāo),12、功耗一般CMOS工藝的芯片功耗較低, 對于電池供電的手持系統(tǒng)對功耗要求比較高的場合一定要注意功耗指標(biāo)。13、封裝常見的封裝有雙列直插封裝(Dual In-line Pa

24、ckage, DIP)和表貼型(Surface Mount Devices, SMD)封裝。,,,,,28,1)M1和M0:方式選擇控制位,表7-1 定時(shí)/計(jì)數(shù)器的方式選擇,7-1-2 定時(shí)/計(jì)數(shù)器的相關(guān)寄存器,1、TMOD:定時(shí)器工作方式控制寄存器,29,7-2-1 可編程時(shí)鐘輸出的相關(guān)寄存器,T0CLKO=1: 設(shè)置P3.5為T0的時(shí)鐘輸出引腳T0CLKO 輸出頻率=T0溢出率/

25、2,定時(shí)器T0工作在模式2 (8位自動(dòng)重裝模式)時(shí):,若C/T=0, T0對內(nèi)部系統(tǒng)時(shí)鐘計(jì)數(shù), 則: 1T模式時(shí)的輸出頻率=(SYSclk)/(256 - TH1)/212T模式時(shí)的輸出頻率=(SYSclk)/12/(256 - TH1)/2若C/T=1, T0對外部脈沖輸入(P3.4/T0)計(jì)數(shù), 則輸出時(shí)鐘頻率= (T0_Pin_CLK)/(256 - TH1)/2,,,T0CLKO=0, 不允許將P3.5配置為定時(shí)器0

26、的時(shí)鐘輸出。,外部中斷使能和時(shí)鐘輸出寄存器INT_CLKO (也稱AUXR2),30,3)TR1:T1的運(yùn)行控制位??捎绍浖梦换蚯?。 當(dāng)GATE(TMOD.7)=0,TR1=1啟動(dòng)T1開始計(jì)數(shù),TR1=0時(shí)停止T1計(jì)數(shù)。 當(dāng)GATE(TMOD.7)=1,TR1=1且INTX輸入高電平時(shí),才允許T1計(jì)數(shù)。 4)TR0:定時(shí)器T0的運(yùn)行控制位。 含義和功能與TR1相似。,TCON定時(shí)器控制寄存器,7.1.1

27、定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)及工作原理,31,TCON定時(shí)器控制寄存器,TCON(地址為88H,復(fù)位值為00H)寄存器的格式如下:,1)TF1:T1溢出標(biāo)志位。 T1啟動(dòng)計(jì)數(shù)后,最高位產(chǎn)生溢出時(shí),TF1由硬件置1,向CPU請求中斷,當(dāng)CPU響應(yīng)中斷時(shí),由硬件清0。TF1也可以由程序查詢或清0。 2)TF0:定時(shí)器/計(jì)數(shù)器0溢出標(biāo)志位。 含義和功能與TF1相似。,7.1.1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)及工作原理,32,§9.2

28、 IAP15W4K58S4單片機(jī)片內(nèi)集成的模擬量模塊,本節(jié)首先介紹IAP15W4K58S4單片機(jī)片內(nèi)集成的ADC模塊的結(jié)構(gòu)和使用方法,然后介紹IAP15W4K58S4單片機(jī)片內(nèi)集成的比較器及其使用。,33,9.2.1 IAP15W4K58S4集成A/D模塊的結(jié)構(gòu)及其使用,IAP15W4K58S4單片機(jī)集成有8路10位高速電壓輸入型模數(shù)轉(zhuǎn)換器(ADC), 速度可達(dá)300KHz(30萬次/秒), 可做溫度檢測、壓力檢測、電池電壓檢測、

29、按鍵掃描、頻譜檢測等。,1、模數(shù)轉(zhuǎn)換器的結(jié)構(gòu)及相關(guān)寄存器IAP15W4K58S4集成8通道10位模數(shù)轉(zhuǎn)換器(ADC) 。ADC輸入通道與P1口復(fù)用,上電復(fù)位后P1口為弱上拉型I/O口,用戶可通過軟件設(shè)置將8路中的任何一路設(shè)置為ADC功能,不作為ADC使用的口可繼續(xù)作為I/O口使用。,,34,(1)模數(shù)轉(zhuǎn)換器的結(jié)構(gòu),結(jié)構(gòu)如圖所示。,,ADC控制寄存器ADC_CONTR,P1ASF寄存器控制P1口的模擬功能,圖9-4 IAP15W4K

30、58S4單片機(jī)ADC結(jié)構(gòu)圖,控制時(shí)鐘速度,啟動(dòng)轉(zhuǎn)換,轉(zhuǎn)換完標(biāo)志,選擇通道,開關(guān)電源,,35,(1)模數(shù)轉(zhuǎn)換器的結(jié)構(gòu),IAP15W4K58S4的ADC組成多路選擇開關(guān)比較器逐次比較寄存器SAR10位DAC轉(zhuǎn)換結(jié)果寄存器(ADC_RES和ADC_RESL)ADC控制寄存器ADC_CONTR,,36,(1)模數(shù)轉(zhuǎn)換器的結(jié)構(gòu),IAP15W4K58S4的ADC轉(zhuǎn)換原理IAP15W4K58S4的ADC是逐次比較型模數(shù)轉(zhuǎn)換器。逐次比較

31、型ADC由一個(gè)比較器和D/A轉(zhuǎn)換器構(gòu)成,對每一輸入電壓(AD0~AD7), 通過逐次比較邏輯, 從SAR的最高位(MSB)開始, 順序預(yù)設(shè)置1, 然后將內(nèi)置D/A轉(zhuǎn)換器相應(yīng)的輸出與輸入電壓進(jìn)行比較,根據(jù)比較結(jié)果決定置1的預(yù)設(shè)是否保留。經(jīng)多次比較,使轉(zhuǎn)換所得的數(shù)字量逐次逼近輸入模擬量對應(yīng)值。,,37,1、模數(shù)轉(zhuǎn)換器的結(jié)構(gòu)及相關(guān)寄存器,(2)參考電壓源IAP15W4K58S4單片機(jī)ADC模塊的參考電壓源是輸入工作電壓Vcc,一般不

32、用外接參考電壓源。如果Vcc不穩(wěn)定(例如電池供電的系統(tǒng)中,電池電壓常常在5.3V-4.2V之間漂移), 則可以在8路A/D轉(zhuǎn)換的一個(gè)通道外接一個(gè)穩(wěn)定的參考電壓源,計(jì)算出此時(shí)的工作電壓Vcc,再計(jì)算出其他幾路A/D轉(zhuǎn)換通道的電壓。,,38,(3)與ADC有關(guān)的特殊功能寄存器,表9-1 新出現(xiàn)的與ADC模塊有關(guān)的特殊功能寄存器,,39,1)P1口模擬功能控制寄存器P1ASF,P1ASF (地址為9DH, 復(fù)位值為00H)各位定義如下:

33、,若要用P1相應(yīng)口P1.x的模擬功能, 需將P1ASF特殊功能寄存器中的相應(yīng)位置為1。如, 若要用P1.6的模擬量功能, 則需將P16ASF置為1。注意: P1ASF寄存器不能位尋址, 可用匯編語言指令ORL P1ASF, #40H, 也可用C語言語句P1ASF |= 0x40;,(3)與ADC有關(guān)的特殊功能寄存器,P1 Analog Special Function Configure register,,(該寄存器是只寫寄存器

34、,讀無效),,40,(3)與ADC有關(guān)的特殊功能寄存器,2)ADC控制寄存器ADC_CONTRADC_CONTR(地址為BCH,復(fù)位值為00H)各位定義:,①ADC_POWER:ADC電源控制位。0:關(guān)閉ADC電源。1:打開ADC電源。,,,,41,2)ADC控制寄存器ADC_CONTR,說明建議進(jìn)入空閑模式前,將ADC電源關(guān)閉,即ADC_POWER =0。啟動(dòng)A/D轉(zhuǎn)換前一定要確認(rèn)ADC電源已打開,A/D轉(zhuǎn)換結(jié)束后關(guān)閉ADC

35、電源可降低功耗,也可不關(guān)閉。初次打開內(nèi)部ADC轉(zhuǎn)換模擬電源,需適當(dāng)延時(shí),等內(nèi)部模擬電源穩(wěn)定后,再啟動(dòng)A/D轉(zhuǎn)換。建議啟動(dòng)A/D轉(zhuǎn)換后,在A/D轉(zhuǎn)換結(jié)束之前,不改變?nèi)魏蜪/O口的狀態(tài),有利于提高A/D轉(zhuǎn)換的精度。,,,42,2)ADC控制寄存器ADC_CONTR,②SPEED1, SPEED0:ADC轉(zhuǎn)換速度控制位。,表9-2 ADC轉(zhuǎn)換速度控制,27MHz/90=300KHz,,,43,2)ADC控制寄存器ADC_CONTR,IAP

36、15W4K58S4單片機(jī)A/D轉(zhuǎn)換模塊的時(shí)鐘使用外部晶體時(shí)鐘或內(nèi)部R/C振蕩器所產(chǎn)生的系統(tǒng)主時(shí)鐘,不使用時(shí)鐘分頻寄存器CLK_DIV對系統(tǒng)時(shí)鐘分頻后所產(chǎn)生的供給CPU工作所使用的時(shí)鐘(系統(tǒng)時(shí)鐘)。優(yōu)點(diǎn):不僅可以讓ADC用較高的頻率工作,提高A/D的轉(zhuǎn)換速度;而且可以讓CPU用較低的頻率工作,降低系統(tǒng)的功耗。,STC12C5A60S2.pdf說明書有此敘述, STC15系列無。,IAP15W4K58S4單片機(jī)A/D轉(zhuǎn)換模塊的時(shí)鐘就是C

37、PU工作所使用的時(shí)鐘(系統(tǒng)時(shí)鐘)。,,,44,2)ADC控制寄存器ADC_CONTR,③ADC_FLAG:A/D轉(zhuǎn)換結(jié)束標(biāo)志位。A/D轉(zhuǎn)換完成后,ADC_FLAG = 1,要由軟件清零。不管A/D轉(zhuǎn)換完成后由該位申請產(chǎn)生中斷, 還是由軟件查詢該標(biāo)志位判斷A/D轉(zhuǎn)換是否結(jié)束, 當(dāng)A/D轉(zhuǎn)換完成后, ADC_FLAG = 1, 取數(shù)據(jù)后, 一定要軟件清0。,用MOV 語句對ADC_CONTR寄存器進(jìn)行賦值。,,,45,2)ADC控制寄存

38、器ADC_CONTR,④ADC_START: ADC轉(zhuǎn)換啟動(dòng)控制位, 設(shè)置為“1”時(shí), 開始轉(zhuǎn)換,轉(zhuǎn)換結(jié)束后為0。,用MOV 語句對ADC_CONTR寄存器進(jìn)行賦值。,⑤ CHS2、CHS1、CHS0:模擬輸入通道選擇, 具體選擇情況見表9-3 。,,,46,⑤ CHS2、CHS1、CHS0:模擬輸入通道選擇,見下表。,表9-3 模擬輸入通道選擇,,,ADC_CONTR 控制寄存器,,,47,2)ADC控制寄存器ADC_CON

39、TR,需要注意設(shè)置ADC_CONTR控制寄存器的語句執(zhí)行后,要經(jīng)過4個(gè)CPU時(shí)鐘的延時(shí),其值才能夠保證被設(shè)置進(jìn)ADC_CONTR控制寄存器。典型代碼如下: MOV ADC_CONTR, #DATA ; #DATA是設(shè)置值 NOP NOP NOP NOP MOV A, ADC_CONTR ;經(jīng)4個(gè)時(shí)鐘延時(shí),才能正確讀ADC_CONTR控制寄存器值,,

40、,48,3)A/D轉(zhuǎn)換結(jié)果存儲(chǔ)格式控制及A/D轉(zhuǎn)換結(jié)果寄存器,ADC_RES、ADC_RESLADC_RES(地址:BDH, 復(fù)位值: 00H)和ADC_RESL(地址:BEH,復(fù)位值:00H)用于保存A/D轉(zhuǎn)換結(jié)果。特殊功能寄存器CLK_DIV中的ADRJ位用于設(shè)置A/D轉(zhuǎn)換結(jié)果的存儲(chǔ)格式。ADRJ位在時(shí)鐘分頻寄存器CLK_DIV (也稱PCON2,地址: 97H, 復(fù)位值: 0000 x000B)中, 其各位的定義如下:,AD

41、RJ: ADC轉(zhuǎn)換結(jié)果調(diào)整寄存器位,the adjustment bit of ADC result,,,49,3)A/D轉(zhuǎn)換結(jié)果存儲(chǔ)格式控制及A/D轉(zhuǎn)換結(jié)果寄存器,ADRJ=0時(shí), ADC_RES[7:0]存放高8位ADC結(jié)果, ADC_RESL[1:0]存放低2位ADC結(jié)果;,,,ADRJ=1時(shí),ADC_RES[1:0]存放高2位ADC結(jié)果,ADC_RESL[7:0]存放低

42、8位ADC結(jié)果。,,,,50,3)A/D轉(zhuǎn)換結(jié)果存儲(chǔ)格式控制及A/D轉(zhuǎn)換結(jié)果寄存器,ADRJ=1時(shí),ADC_RES[1:0]存放高2位ADC結(jié)果,ADC_RESL[7:0]存放低8位ADC結(jié)果。,,,,,51,3)A/D轉(zhuǎn)換結(jié)果存儲(chǔ)格式控制及A/D轉(zhuǎn)換結(jié)果寄存器,如果IAP15W4K58S4單片機(jī)的10位A/D轉(zhuǎn)換結(jié)果的高8位存放在ADC_RES中,低2位存放在ADC_RESL的低2位中,模/數(shù)轉(zhuǎn)換結(jié)果計(jì)算公式如下:取10位結(jié)果 :

43、 (ADC_RES[7:0], ADC_RESL[1:0]) = 1024×Vin/Vcc取8位結(jié)果: ADC_RES[7:0] = 256×Vin / Vcc Vin為模擬輸入通道輸入電壓,Vcc為單片機(jī)實(shí)際工作電壓,用單片機(jī)工作電壓作為模擬參考電壓。,,,,52,4)與A/D轉(zhuǎn)換中斷有關(guān)的寄存器,中斷允許控制寄存器IE中的EADC位 (D5位) 用于開放ADC中斷;EA位 (D7位) 用于開放C

44、PU中斷。,中斷優(yōu)先級(jí)寄存器IP中的PADC位(D5位)用于設(shè)置A/D中斷的優(yōu)先級(jí),在中斷服務(wù)程序中, 要用軟件將A/D中斷標(biāo)志位ADC_FLAG (也是A/D轉(zhuǎn)換結(jié)束標(biāo)志位)清0。,,,53,9.2.1 IAP15W4K58S4集成A/D模塊的結(jié)構(gòu)及其使用,2、IAP15W4K58S4單片機(jī)ADC模塊的使用編程要點(diǎn)打開ADC電源,第一次使用時(shí)要打開內(nèi)部模擬電源 (設(shè)置ADC_CONTR . ADC_POWER =1)。適當(dāng)

45、延時(shí),等內(nèi)部模擬電源穩(wěn)定。一般延時(shí)1ms以內(nèi)即可。設(shè)置P1口中的相應(yīng)口線作為A/D轉(zhuǎn)換通道 (設(shè)置P1ASF寄存器)。(也可在打開ADC電源前設(shè)置),(在此可設(shè)置CLK_DIV中的ADRJ位: 轉(zhuǎn)換結(jié)果存儲(chǔ)格式),,54,2、IAP15W4K58S4單片機(jī)ADC模塊的使用,選擇ADC通道(設(shè)置ADC_CONTR中CHS2~CHS0 位)。延時(shí)(若切換了通道, 延時(shí)20μs~200μs, 否則略)。⑤′啟動(dòng)ADC轉(zhuǎn)換(ADC_CON

46、TR中ADC_START位置1)。 (ADC_CONTR的各位設(shè)置可一次完成)⑥查詢A/D轉(zhuǎn)換結(jié)束標(biāo)志ADC_FLAG,判斷A/D轉(zhuǎn)換是否完成,若完成,則讀出結(jié)果(結(jié)果保存在ADC_RES和ADC_RESL寄存器中),并進(jìn)行數(shù)據(jù)處理。,(根據(jù)需要設(shè)置CLK_DIV中的ADRJ位: 轉(zhuǎn)換結(jié)果存儲(chǔ)格式),,55,2、IAP15W4K58S4單片機(jī)ADC模塊的使用,讀取轉(zhuǎn)換結(jié)果注意:如果是多通道模擬量進(jìn)行轉(zhuǎn)換,則更換A/D轉(zhuǎn)換通道后要

47、適當(dāng)延時(shí),使輸入電壓穩(wěn)定,延時(shí)量取20μs~200μs即可,與輸入電壓源的內(nèi)阻有關(guān)。如果輸入電壓信號(hào)源的內(nèi)阻在10K?以下,可不加延時(shí)。如果是單通道模擬量轉(zhuǎn)換,則不需要更換A/D轉(zhuǎn)換通道,也就不需要加延時(shí)。,,56,2、IAP15W4K58S4單片機(jī)ADC模塊的使用,⑦若采用中斷方式,還需進(jìn)行中斷設(shè)置(EADC置1,EA置1)。⑧在中斷服務(wù)程序中讀取ADC轉(zhuǎn)換結(jié)果,并將ADC中斷請求標(biāo)志ADC_FLAG清零。,,57,9.2.1

48、 IAP15W4K58S4集成A/D模塊的結(jié)構(gòu)及其使用,2、IAP15W4K58S4單片機(jī)ADC模塊的使用編程要點(diǎn) (以下步驟順序較簡潔)設(shè)置P1口中的相應(yīng)口線作為A/D轉(zhuǎn)換通道 (設(shè)置P1ASF寄存器)。根據(jù)需要設(shè)置轉(zhuǎn)換結(jié)果存儲(chǔ)格式(設(shè)置CLK_DIV中的ADRJ位)。設(shè)置ADC_CONTR(包括打開ADC電源, 時(shí)鐘速度,通道選擇,開啟) 。適當(dāng)延時(shí),等內(nèi)部模擬電源穩(wěn)定,設(shè)置值穩(wěn)定 。一般延時(shí)1ms以內(nèi)即可。,,58,2、

49、IAP15W4K58S4單片機(jī)ADC模塊的使用,查詢A/D轉(zhuǎn)換結(jié)束標(biāo)志ADC_FLAG,判斷A/D轉(zhuǎn)換是否完成,若完成,則讀出結(jié)果(結(jié)果保存在ADC_RES和ADC_RESL寄存器中),并進(jìn)行數(shù)據(jù)處理。 若是多通道模擬量進(jìn)行轉(zhuǎn)換,則更換A/D轉(zhuǎn)換通道后要適當(dāng)延時(shí),使輸入電壓穩(wěn)定,延時(shí)量取20-200μs即可(與輸入電壓源的內(nèi)阻有關(guān)),如果輸入電壓源的內(nèi)阻在10KΩ以下,可不加延時(shí)。若用中斷方式, 還需進(jìn)行中斷設(shè)置(EADC置1

50、,EA置1)。在中斷服務(wù)程序中讀取ADC轉(zhuǎn)換結(jié)果,并將ADC中斷請求標(biāo)志ADC_FLAG清零。,,59,單片機(jī)ADC模塊的使用——舉例,【例9-1】 編程實(shí)現(xiàn)利用IAP15W4K58S4單片機(jī)ADC通道2采集外部模擬電壓信號(hào), 8位精度, 采用查詢方式循環(huán)進(jìn)行轉(zhuǎn)換, 并將轉(zhuǎn)換結(jié)果保存于30H單元中。假設(shè)時(shí)鐘頻率為18.432MHz。解: 按ADC編程要點(diǎn), 打開ADC電源,延時(shí), 設(shè)置通道(P1ASF, ADC_CONTR中C

51、HS2~ CHS0 位) ,延時(shí);8位精度時(shí), 若ADRJ=0, 則可直接使用ADC_RES的值。因復(fù)位后, ADRJ=0, 因此, 按ADC編程要點(diǎn)進(jìn)行初始化,啟動(dòng)后, 直接查詢判斷ADC_FLAG標(biāo)志是否為1;若ADC_FLAG為1, 則讀出ADC_RES寄存器的值, 并存入30H即可; 若為0, 則繼續(xù)等待。,,60,【例9-1】 ADC通道2采集電壓, 8位精度,結(jié)果存30H。,匯編語言程序代碼如下:$INCLUDE

52、 (STC15.INC) ;包含STC15單片機(jī)寄存器定義文件ADC_DAT EQU 30H ; (30H)存儲(chǔ)單元內(nèi)存A/D轉(zhuǎn)換結(jié)果 ORG 0000H LJMP MAIN ORG 0050H MAIN: MOV SP, #70H ;設(shè)置堆棧 ORL ADC_CONTR, #8

53、0H ;開A/D轉(zhuǎn)換電源 MOV A, #20H (1版延遲子程用A) LCALL DELAY ;開電源后加適當(dāng)延時(shí), 1ms以內(nèi)即可 MOV P1ASF,#04H ;設(shè)置P1.2的模擬量功能 MOV ADC_CONTR,#11100010B ;選擇P1.2為A/D轉(zhuǎn)換通道 MOV A, #05H (1版) LCALL DE

54、LAY ;如果切換A/D轉(zhuǎn)換通道, 則需要加延時(shí),DELAY延時(shí)時(shí)間≈ 47.41 ms,DELAY延時(shí)時(shí)間≈ 47.41 ms,轉(zhuǎn)換周期: 90個(gè)時(shí)鐘,,61,【例9-1】 ADC通道2采集電壓, 8位精度,結(jié)果存30H,WAIT_AD: ORL ADC_CONTR, #00001000B ;啟動(dòng)A/D轉(zhuǎn)換 MOV A, #00010000B ;判斷A/D轉(zhuǎn)換是否完成

55、 ANL A, ADC_CONTR JZ WAIT_AD ;A/D轉(zhuǎn)換尚未完成, 繼續(xù)等待 ANL ADC_CONTR, #11100111B ;將ADC_FLAG清0 MOV A, ADC_RES ;讀取A/D轉(zhuǎn)換結(jié)果 MOV ADC_DAT, A ;保存A/D轉(zhuǎn)換結(jié)果到30H單元 LJMP WAIT_AD ;等待下一

56、次轉(zhuǎn)換完成,,用查詢(ADC_FLAG)方式,查詢方式也需清0,,,62,DELAY: ;延時(shí)子程序 MOV R2, #2 ;2個(gè)時(shí)鐘周期 MOV R3, #0 ;2T MOV R4, #0 ;2TDELAY_LOOP: DJNZR3, DELAY_LOOP ;4個(gè)時(shí)鐘周期 DJNZ R4, DE

57、LAY_LOOP ;4T DJNZ R2, DELAY_LOOP ;4T RET ;4T END,延時(shí)時(shí)間大約為:[((256*4)*256)*2 +10]/11.0592MHz≈ 47.41 ms,DELAY: ;延時(shí)子程序 PUSH 02 ;將寄存器組0的R2入棧 ,不能PUSH R2, 因寄存器尋址 PUSH 0

58、3 ;將寄存器組0 的 R3 入棧 ;3T PUSH 04 ;將寄存器組0 的 R4 入棧 ;3T MOV R2, #2 ;2個(gè)時(shí)鐘周期 MOV R3, #0 ;2T MOV R4, #0 ;2TDELAY_LOOP: DJNZR3, DELAY_LOOP ;4個(gè)時(shí)鐘周期 DJNZ R4, DELAY

59、_LOOP ;4T DJNZ R2, DELAY_LOOP ;4T POP 04 ;2T POP 03 POP 02 RET ;4T END,【例9-1】 ADC通道2采集電壓, 8位精度,結(jié)果存30H,,63,【例9-2】 ADC通道2采集電壓, 8位精度,結(jié)果存30H,DELAY:

60、 ;延時(shí)子程序 PUSH 02 ;將寄存器組0的R2入棧 ,不能PUSH R2, 因寄存器尋址 PUSH 03 ;將寄存器組0 的 R3 入棧 PUSH 04 ;將寄存器組0 的 R4 入棧 MOV R4, A DELAY_LOOP0: MOV R3, #200 ;2個(gè)時(shí)鐘周期Delay_LOOP1: MOV R

61、2, #249 ;2個(gè)時(shí)鐘周期DELAY_LOOP: DJNZ R2, DELAY_LOOP ;4個(gè)時(shí)鐘周期 DJNZ R3, DELAY_LOOP1 ;4個(gè)時(shí)鐘周期 DJNZ R4, DELAY_LOOP0 ;4個(gè)時(shí)鐘周期 POP 04 POP 03 POP 02 RET END,延時(shí)時(shí)間大約為:(

62、(249*4)*200)*A值/18.432MHz≈ 10.81 ms*A值,(第1版延遲子程用A),,64,【例9-1】 ADC通道2采集電壓, 8位精度,結(jié)果存30H,C語言程序代碼如下:#include “stc15.h” //包含STC15單片機(jī)寄存器定義文件unsigned char data adc_dat _at_ 0x30; //A/D轉(zhuǎn)換結(jié)果變量void main(void){ unsigned l

63、ong i; //i用于for循環(huán) unsigned char status; //status用來存儲(chǔ)ADC_CONTR 的ADC_FLAG ADC_CONTR|=0x80; //開A/D轉(zhuǎn)換電源 for (i=0; i<10000; i++); //適當(dāng)延時(shí) P1ASF=0x04; //選擇P1.2作為A/D轉(zhuǎn)換通道

64、 ADC_CONTR=0xE2; //11100010B, P1.2為A/D通道 for (i=0;i<10000;i++); //適當(dāng)延時(shí),轉(zhuǎn)換周期: 90個(gè)時(shí)鐘,,65,【例9-1】 C語言程序代碼:,while(1) //循環(huán)進(jìn)行A/D 轉(zhuǎn)換 { ADC_CONTR |=0x08; //(重新)啟動(dòng) A/D 轉(zhuǎn)換 stat

65、us=0; //status用來存儲(chǔ)ADC_CONTR 的ADC_FLAG while(status==0) //等待A/D轉(zhuǎn)換結(jié)束, 即ADC_FLAG=1 { status=ADC_CONTR&0x10; } ADC_CONTR&=0xE7; //將ADC_FLAG清零 adc_dat=ADC_RES;

66、 //保存A/D轉(zhuǎn)換結(jié)果,高8位 }},ADC_START: 置 “1”時(shí), 開始轉(zhuǎn)換, 轉(zhuǎn)換結(jié)束后為0。,,66,單片機(jī)ADC模塊的使用——舉例,【例9-2】 編程實(shí)現(xiàn)利用IAP15W4K58S4單片機(jī)ADC通道2采集外部模擬電壓信號(hào), 10位精度, 采用中斷方式進(jìn)行轉(zhuǎn)換,并將轉(zhuǎn)換結(jié)果保存于30H和31H單元中。假設(shè)時(shí)鐘頻率為18.432MHz。解:ADRJ=0時(shí),ADC結(jié)果的高8位在ADC_RES中,低2位在ADC

67、_RESL的低2位。因此, 可在中斷服務(wù)程序中讀出ADC_RESL寄存器的值, 屏蔽高6位后存入30H單元,讀出ADC_RES寄存器的值,存入31H單元。,,,67,[例9-2] ADC通道2采集電壓, 10位精度, 結(jié)果存30H, 31H,匯編語言程序代碼如下:$INCLUDE (STC15.INC) ;包含STC15F寄存器定義文件 ADC_HI EQU 31H ;A/D轉(zhuǎn)換結(jié)果高8位 AD

68、C_LOW EQU 30H ;A/D轉(zhuǎn)換結(jié)果低2位 ORG 0000H LJMP MAIN ORG 002BH ;ADC中斷入口地址 LJMP ADC_ISR ;ADC中斷服務(wù)程序入口 ORG 0050H MAIN: MOV SP, #70H ;設(shè)置堆棧

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論