版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機產(chǎn)品設(shè)計與制作
(stm32機型)石梅香項目7、利用DAC實現(xiàn)LED亮度控制任務(wù)7.1認識STM32單片機的DAC總目錄1項目1、利用GPIO和位帶操作實現(xiàn)溫度報警
2項目2、利用SysTick實現(xiàn)溫度報警與控制
3項目3、利用按鍵查詢實現(xiàn)參數(shù)設(shè)定及顯示
4項目4、利用外部中斷實現(xiàn)工件計數(shù)顯示
5項目5、利用定時器實現(xiàn)直流電動機PWM調(diào)速6項目6、利用計數(shù)器實現(xiàn)工件計數(shù)顯示和打包控制
7項目7、利用DAC實現(xiàn)LED亮度控制8項目8、利用ADC實現(xiàn)土壤濕度采集
項目總目標項目總目標具體工作任務(wù)利用STM32內(nèi)部DAC控制LED亮度。亮度值可由按鍵設(shè)定。請進行方案設(shè)計、器件選型、電路和程序設(shè)計,并完成軟硬件調(diào)試。子目錄7項目7、利用外部中斷實現(xiàn)工件計數(shù)及顯示
7.1任務(wù)7.1 認識STM32單片機的DAC7.2任務(wù)7.2 方案及電路設(shè)計7.3任務(wù)7.3 程序設(shè)計7.4任務(wù)7.4 軟硬件深入(七)任務(wù)目標:了解STM32F103ZET6的DAC基本特性與原理,能看懂DAC結(jié)構(gòu)框圖任務(wù)7.1認識STM32單片機的DAC分組討論自由發(fā)言,闡述對模擬量數(shù)字量的認識,查閱資料了解STM32的DAC。討論與發(fā)言舉一些例子說明自動化系統(tǒng)中哪些是模擬量,哪些是數(shù)字量。總結(jié)什么是模擬量,什么是數(shù)字量?二者有何區(qū)別?什么是DAC?什么是ADC?衡量ADC和DAC性能的指標有哪些?3、模擬信號的類型ADC和DAC設(shè)備允許的模擬信號多數(shù)為電壓、電流、電阻等。STM32F1xx的ADC是電壓輸入,允許輸入的范圍是VREF-
≤
VIN
≤
VREF+。STM32F1xx的DAC是電壓輸出,允許輸出的范圍也是VREF-
≤
VOUT
≤
VREF+。由于VREF-與VSSA接在一起,VREF-=0V,因此允許的模擬電壓輸入/輸出范圍就是0~VREF+。認識DAC和ADC4、DAC的位數(shù)及其影響ADC和DAC電路常見有8、12、14、16、24位等。STM32F1xx的ADC和DAC都是12位的。那么DAC的位數(shù)對其性能有什么影響呢?對于1位的DAC,如果VREF=3.3V,則理想狀態(tài)下,向DAC寫“0”時,引腳上輸出0V;向DAC寫“1”時,引腳上輸出3.3V。輸出電壓和數(shù)字的關(guān)系為:VOUT=D×3.3。向DAC寫入數(shù)值每增加或減小1,輸出電壓跳變3.3V。對于2位的DAC,可以向DAC寫“00”、“01”、“10”、“11”四個二進制數(shù)值,對應(yīng)十進制為“0”、“1”、“2”、“3”。如果VREF=3.3V,則可將其設(shè)計為如下特性:向DAC寫“0”,即二進制“00”時,輸出電壓=0V;向DAC寫“1”,即二進制“01”時,輸出電壓=1.1V;向DAC寫“2”,即二進制“10”時,輸出電壓=2.2V;向DAC寫“3”,即二進制“11”時,輸出電壓=3.3V;輸出電壓和數(shù)字的關(guān)系為:VOUT=D×3.3/3。向DAC寫入數(shù)值每增加或減小1,輸出電壓跳變1.1V。認識DAC和ADC4、DAC的位數(shù)及其影響我們將DAC輸出電壓跳變的最小值稱為電壓分辨率。電壓跳變值越小,DAC的分辨率越高。分辨率越高,DAC的電壓控制越精細。顯然2位DAC比1位DAC的分辨率更高。繼續(xù)增大位數(shù)n,會怎樣呢?表7.1.1給出了VREF+=3.3V時,n=8、12、16三種情況下的數(shù)字量和電壓對應(yīng)關(guān)系。表7.1.1VREF=3.3V時不同位數(shù)DAC的數(shù)字和電壓對應(yīng)關(guān)系認識DAC和ADC位數(shù)數(shù)字電壓轉(zhuǎn)換公式及分辨率二進制十進制n=80000000000×3.3/255=0V轉(zhuǎn)換公式:VOUT=D×255/3.3分辨率:3.3/255≈13mV0000000111×3.3/255≈12.941mV0000001022×3.3/255≈25.882mV………………11111110254254×3.3/255≈3.287V11111111255255×3.3/255=3.3Vn=1200000000000000×3.3/4095=0V轉(zhuǎn)換公式:VOUT=D×4095/3.3分辨率:3.3/4095≈0.8mV00000000000111×3.3/4095≈0.806mV00000000001022×3.3/4095≈1.612mV………………11111111111140954095×3.3/4095=3.3Vn=16000000000000000000×3.3/65535=0V轉(zhuǎn)換公式:VOUT=D×65535/3.3分辨率:3.3/65535≈50μV000000000000000111×3.3/65535≈50.355μV000000000000001022×3.3/4095≈100.710μV………………11111111111111116553565535×3.3/65535=3.3V認識DAC結(jié)構(gòu)
1、DAC結(jié)構(gòu)框圖STM32F103的DAC結(jié)構(gòu)如圖7.1.2所示。STM32F103DAC內(nèi)部有兩個獨立的12位D/A轉(zhuǎn)換器,稱為DACx,x=1和2,它們是DAC的核心執(zhí)行部件,能夠?qū)ORx里存儲的數(shù)字量,轉(zhuǎn)換成0~VREF的模擬電壓,并輸出到DAC_OUTx引腳。DAC相關(guān)引腳除了DAC_OUTx(包括DAC_OUT1和DAC_OUT2),圖7.1.2中也標出了其它相關(guān)引腳。它們的功能及要求如表7.1.2所示。注意DAC_OUT1固定復(fù)用PA4,DAC_OUT2則復(fù)用PA5。認識STM32的DAC結(jié)構(gòu)DAC相關(guān)引腳除了DAC_OUTx(包括DAC_OUT1和DAC_OUT2),圖7.1.2中也標出了其它相關(guān)引腳。它們的功能及要求如表7.1.2所示。注意DAC_OUT1固定復(fù)用PA4,DAC_OUT2則復(fù)用PA5。認識STM32的DAC結(jié)構(gòu)名稱功能要求VDDA和VSSA供電電源正、負極2.4V≤VDDA≤VDD(最大不超過3.6V)VREF+和VREF-參考電源正、負極2.4V≤VREF+≤VDDAVREF-=VSSADAC_OUT1通道1的模擬電壓輸出復(fù)用PA4DAC_OUT2通道2的模擬電壓輸出復(fù)用PA5EXTI_9DAC外部觸發(fā)引腳復(fù)用尾號9的引腳例如PA9、PB9等,可指定4、DAC的數(shù)據(jù)寄存器DORx包括DOR1和DOR2,是數(shù)據(jù)輸出寄存器(DataOutputRegister),DORx的值決定了DACx輸出引腳上的電壓。例如DOR1=0,則DAC_OUT1引腳輸出0V;DOR1=4095,則DAC_OUT1引腳輸出電壓為VREF。DHRx是數(shù)據(jù)保持寄存器(DataHoldRegister)。編程時我們應(yīng)將數(shù)據(jù)寫到DHRx里。DAC工作時,會按照一定的控制邏輯,將DHRx的值裝入DORx,之后進行D/A轉(zhuǎn)換。認識STM32的DAC結(jié)構(gòu)DAC的數(shù)據(jù)疊加將DHRx的數(shù)據(jù)向DORx裝載時,有三種控制邏輯:不疊加:編程設(shè)置為不疊加時,直接將DHRx的數(shù)據(jù)向DORx裝載,不疊加任何其它數(shù)據(jù)。疊加偽噪聲:將DHRx的數(shù)據(jù)疊加上偽噪聲后,再裝載到DORx。疊加三角波:將DHRx的數(shù)據(jù)疊加上三角波后,再裝載到DORx。疊加偽噪聲的形式,或者疊加三角波的幅度,都可以編程設(shè)定,感興趣的可閱讀《STM32F1xx參考手冊》。本項目主要學(xué)習不疊加模式。認識STM32的DAC結(jié)構(gòu)認識STM32的DAC結(jié)構(gòu)DAC控制寄存器DAC控制寄存器能夠根據(jù)程序設(shè)置,發(fā)出諸如ENx、TSELx、TENx、DMAENx、WAVENx、MAMPx等命令,控制DAC1和DAC2的工作。例如編程使能DAC1則EN1=1,只有EN1=1,DAC1才能夠工作。再例如設(shè)置DAC2使能和不疊加,則EN2=1和WAVEN2=00,這種情況下DAC控制寄存器會控制DHR2中的數(shù)據(jù)直接進入DOR2不做任何疊加。認識STM32的DAC結(jié)構(gòu)DAC的觸發(fā)DHR向DOR的裝載還需要觸發(fā)信號??梢跃幊淘O(shè)置為如下幾種觸發(fā)方式:外部觸發(fā)使能禁止(TENx=0)TEN就是TriggerEnable(觸發(fā)使能)。如果編程為“觸發(fā)使能禁止”,則CPU執(zhí)行該語句后DAC控制器會發(fā)出TENx=0信號。這種情況下,不需要任何額外的觸發(fā)信號。向DHRx寄存器寫數(shù)據(jù)后,數(shù)據(jù)會自動裝入DORx,然后進行D/A轉(zhuǎn)換并向?qū)?yīng)引腳輸出模擬電壓。2.如果編程設(shè)置為“觸發(fā)使能允許”,則執(zhí)行后,DAC還需要一個額外的觸發(fā)信號,才能將DHRx中的數(shù)據(jù)裝入DORx??梢跃幊讨付ㄓ|發(fā)源TSELx(TriggerSelection)來自以下八種之一:SWTRIGx(SoftWareTrigger),軟件觸發(fā):DAC軟件觸發(fā)寄存器的SWTRIGx被軟件置位時,觸發(fā)對應(yīng)通道的數(shù)據(jù)裝載。TIM2_TRGO、TIM4_TRGO~TIM8_TRGO,定時器TRGO事件觸發(fā):當指定定時器(例如TIM2)發(fā)生TRGO事件時觸發(fā)數(shù)據(jù)裝載。EXTI_9,外部中斷9引腳觸發(fā):當EXTI_9引腳上輸入有效信號時觸發(fā)數(shù)據(jù)裝載。本項目重點學(xué)習外部觸發(fā)禁止和軟件觸發(fā)兩種方式。認識STM32的DAC結(jié)構(gòu)單DAC和雙DAC模式在STM32F1xxDAC內(nèi)部,DHR寄存器實際上有9個,如圖7.1.3所示。DHR1和DHR2各有3個寄存器,它們在單DAC模式下工作。DHRD有3個寄存器,在雙DAC模式下工作。單DAC模式如圖(a)所示,兩個DAC獨立工作。向DHR12Rx、DHR12Lx或者DHR8Rx(x=1或2)六個寄存器中的任何一個寫數(shù)據(jù),數(shù)據(jù)將按一定規(guī)則送到DORx寄存器。雙DAC的模式如圖(b)所示,向DHR12RD、DHR12LD或者DHR8RD三個寄存器中的任意一個寫數(shù)據(jù),數(shù)據(jù)可以按照一定的規(guī)則同時或者分時送到DOR1和DOR2寄存器。本項目主要學(xué)習單DAC模式。圖7.1.3單DAC模式和雙DAC模式認識STM32的DAC結(jié)構(gòu)DAC的數(shù)據(jù)對齊格式STM32F103的DAC是12位的,每個通道的DOR寄存器只需要12位數(shù)據(jù)。但是編程時,向圖7.1.3中的DHR寄存器寫入的數(shù)據(jù)是32位的。數(shù)據(jù)對齊格式規(guī)定了如何將12位數(shù)據(jù)存儲在32位里。共有12位右對齊、12位左對齊和8位右對齊三種格式。(1)單DAC模式以通道1為例,如果希望DAC_OUT1引腳輸出2V電壓,按照12位D/A轉(zhuǎn)換公式,應(yīng)向DOR1寄存器送數(shù)據(jù)2V×4095/VREF=2V×4095/(3.3V)=2482,對應(yīng)12位二進制數(shù)為100110110010。如果以12位右對齊格式寫數(shù)據(jù),應(yīng)將數(shù)據(jù)寫到DHR12R1寄存器,如圖7.1.4(a)所示。其規(guī)則是:將12位數(shù)據(jù)靠右(Right)放在D11~D0,D15~D12位補“0”,D31~D16不用。不用的位,是“1”還是“0”都不會對數(shù)值有影響,一般可以簡單地認為其值為“0”。12位右對齊這種格式,不會改變數(shù)據(jù)大小,除非數(shù)據(jù)大于4095。如果以12位左對齊格式寫數(shù)據(jù),應(yīng)將數(shù)據(jù)寫到DHR12L1寄存器,如圖(b)所示。其規(guī)則是:將12位數(shù)據(jù)靠左(Left)放在D15~D4,D3~D0位補“0”。相當于將數(shù)據(jù)左移4位,數(shù)據(jù)大小變?yōu)樵瓉淼?6倍。如果以8位右對齊格式寫數(shù)據(jù),應(yīng)將數(shù)據(jù)寫到DHR8R1寄存器,如圖(c)所示。其規(guī)則是:將12位數(shù)據(jù)的最低4位舍棄,只留下8位,然后靠右(Right)存放,高8位補“0”。相當于數(shù)據(jù)被右移了4位,此時數(shù)據(jù)大小變?yōu)樵瓉淼?/16。以上以DOR1為例,DOR2也如此。表7.1.3三種數(shù)據(jù)格式下的DAC計算公式數(shù)據(jù)對齊格式轉(zhuǎn)換公式分辨率12位右對齊DDHR=VOUT×4095/VREFVREF/4095,DDHR每改變1,VOUT跳變一個12位分辨率12位左對齊DDHR=(VOUT×4095/VREF)×16=VOUT×65520/VREFVREF/4095,DDHR每改變16,VOUT跳變一個12位分辨率8位右對齊DDHR=(VOUT×4095/VREF)/16=VOUT×255/VREFVREF/255,DDHR每改變1,VOUT跳變一個8位分辨率認識STM32的DAC結(jié)構(gòu)編程時,如果指定為12位右對齊格式,仍可按照DDHR=VOUT×4095/VREF公式,計算待輸出數(shù)字量的大小。注意DDHR應(yīng)小于等于4095。如果指定為12位左對齊格式,應(yīng)將數(shù)據(jù)乘16,才可得到同樣的電壓輸出。即公式變?yōu)椋篋DHR=(VOUT×4095/VREF)×16=VOUT×65520/VREF,注意D應(yīng)小于等于65520。如果指定為8位右對齊格式,應(yīng)將
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025計算機軟件買賣合同
- 母線槽采購合同范例
- 已經(jīng)簽好合同范例
- 石材 銷售合同范例
- 山西公司商業(yè)合同范例
- 銅仁幼兒師范高等??茖W(xué)?!稇?zhàn)略管理雙語》2023-2024學(xué)年第一學(xué)期期末試卷
- 銅仁幼兒師范高等專科學(xué)?!督ㄖ?jīng)濟》2023-2024學(xué)年第一學(xué)期期末試卷
- 完整版100以內(nèi)加減法混合運算4000道140
- 銅陵學(xué)院《機器視覺檢測技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 陽江廣東陽江陽春市引進中學(xué)校長歷年參考題庫(頻考版)含答案解析
- 中醫(yī)病歷書寫基本規(guī)范
- 杭州蕭山供銷市場開發(fā)管理有限公司招聘筆試參考題庫附帶答案詳解
- (高清版)CJJT 64-2024 糞便處理廠技術(shù)標準
- 2023年檢測站站長工作總結(jié)報告
- 剖宮產(chǎn)史的妊娠的護理查房
- (2024年)防盜報警系統(tǒng)基礎(chǔ)知識
- JTG∕T F30-2014 公路水泥混凝土路面施工技術(shù)細則
- 公路工程資料整理-課件
- 交通銀行測評題庫答案大全
- 新部編版小學(xué)語文四年級下冊單元備課
評論
0/150
提交評論