九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

信號(hào)發(fā)生器的設(shè)計(jì).ppt

  • 資源ID:2479104       資源大?。?span id="24d9guoke414" class="font-tahoma">2.70MB        全文頁數(shù):77頁
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

信號(hào)發(fā)生器的設(shè)計(jì).ppt

電子工業(yè)出版社,單片機(jī)控制技術(shù) 項(xiàng)目式教程 (C語言版),電子工業(yè)出版社,項(xiàng)目9 信號(hào)發(fā)生 器的設(shè)計(jì),能了解D/A轉(zhuǎn)換器的相關(guān)技術(shù)指標(biāo); 能理解DAC0832的工作原理與應(yīng)用方法; 能掌握DAC0832與51單片機(jī)的接口方法; 能掌握信號(hào)發(fā)生器的硬件電路的分析與設(shè)計(jì)方法; 能熟練編寫信號(hào)發(fā)生器產(chǎn)生各種波形信號(hào)的單片機(jī)控制程序。,學(xué)習(xí)目標(biāo),敘述D/A轉(zhuǎn)換器的技術(shù)指標(biāo)要求; 敘述DAC0832的工作原理; 設(shè)計(jì)單片機(jī)控制的信號(hào)發(fā)生器的工作電路; 編寫信號(hào)發(fā)生器產(chǎn)生各種波形信號(hào)的單片機(jī)控制程序。,工作任務(wù),任務(wù)9.1 燈光亮度調(diào)節(jié)器的設(shè)計(jì) 任務(wù)9.2 信號(hào)發(fā)生器的設(shè)計(jì) 項(xiàng)目拓展 串行D/A轉(zhuǎn)換芯片PCF8591在實(shí)驗(yàn)板 上的應(yīng)用 項(xiàng)目小結(jié) 思考與訓(xùn)練,項(xiàng)目9 信號(hào)發(fā)生器的設(shè)計(jì),任務(wù)9.1 燈光亮度調(diào)節(jié)器的設(shè)計(jì),D/A轉(zhuǎn)換的功能就是將數(shù)字量轉(zhuǎn)換成模擬量。 基本的D/A轉(zhuǎn)換器由電壓基準(zhǔn)或電流基準(zhǔn)、精密電阻網(wǎng)絡(luò)、電子開關(guān)及全電流求和電路構(gòu)成。,9.1.1 D/A轉(zhuǎn)換器的基本原理,1D/A 轉(zhuǎn)換器的分類 按工作方式分:并行D/A轉(zhuǎn)換器(權(quán)電阻D/A轉(zhuǎn)換器、 R- 2R T型D/A轉(zhuǎn)換器) 串行D/A轉(zhuǎn)換器 間接D/A轉(zhuǎn)換器,按D/A轉(zhuǎn)換的分辨率分:低分辨率D/A轉(zhuǎn)換器 中分辨率D/A轉(zhuǎn)換器 高分辨率D/A轉(zhuǎn)換器,按模擬量輸出方式分:電流輸出D/A轉(zhuǎn)換器 電壓輸出D/A轉(zhuǎn)換器,按模擬電子開關(guān)電路的不同分: CMOS開關(guān)型D/A轉(zhuǎn)換器(速度要求不高) 雙極型開關(guān)D/A轉(zhuǎn)換器 電流開關(guān)型(速度要求較高) ECL電流開關(guān)型(轉(zhuǎn)換速度更高),2D/A 轉(zhuǎn)換器的組成,D/A轉(zhuǎn)換器由數(shù)碼寄存器、模擬電子開關(guān)電路、解碼網(wǎng)絡(luò)、求和電路及基準(zhǔn)電壓等幾部分組成。 以R-2R T型D/A轉(zhuǎn)換器為例,其由基準(zhǔn)電壓Vref、T型(R-2R)電阻網(wǎng)絡(luò)、位切換開關(guān)和運(yùn)算放大器組成。,3D/A 轉(zhuǎn)換器的工作原理,數(shù)字量是用代碼按數(shù)位組合起來表示的,對(duì)于有權(quán)碼,每位代碼都有一定的位權(quán)。為了將數(shù)字量轉(zhuǎn)換成模擬量,必須將每1位的代碼按其位權(quán)的大小轉(zhuǎn)換成相應(yīng)的模擬量,然后將這些模擬量相加,即可得到與數(shù)字量成正比的總模擬量,實(shí)現(xiàn)數(shù)字模擬轉(zhuǎn)換。,R-2R T型D/A轉(zhuǎn)換器工作原理:,圖9.1 R-2R T型D/A轉(zhuǎn)換器原理電路,圖示的電路是一個(gè)3位二進(jìn)制數(shù)的D/A轉(zhuǎn)換電路,每位二進(jìn)制數(shù)控制一個(gè)開關(guān)S。當(dāng)?shù)趇位的數(shù)碼為“0”時(shí),開關(guān)Si打在左邊;當(dāng)?shù)趇位的數(shù)碼為“1”時(shí),開關(guān)Si打在右邊。當(dāng)S0接通時(shí), I0 I0 I0 , I1 I0+ I0 2I0 同理 I1 I1 I1 , I2 2I1 I2 I2 I2 , I 2I2 推出 I0 I/8 ,I1 I/4 ,I2 I/2 I I0 + I1 + I2 (1/8 + 1/4 + 1/2)I - Uref(1/8 + 1/4 + 1/2)/R,將上式推廣到n位二進(jìn)制數(shù)的轉(zhuǎn)換,可得一般表達(dá)式 I- Uref(a0/2n + a1/2n-1 + + an-1/21 +an/20)/R 則輸出電壓為 Uo(I)Rf-Uref(a0/2n+ a1/2n-1+an-1/21+an/20)Rf/R,輸出電壓會(huì)因器件誤差、集成運(yùn)放的非理想特性而產(chǎn)生一定的轉(zhuǎn)換誤差。,一般D/A轉(zhuǎn)換器:,OUT BUr 其中:Ur為常量,由參考Uref決定。 B為輸入數(shù)字量,為二進(jìn)制數(shù)。B可為8位、12位、16 位等,由DAC芯片型號(hào)決定。 當(dāng)B為n位時(shí): Bbn-1bn-2b1b0bn-12n-1+ bn-22n-2+ b121+b020 式中,bn-1為最高位;b0為最低位。,1分辨率 分辨率是D/A轉(zhuǎn)換器對(duì)輸入量變化敏感程度的描述,與輸入數(shù)字量的位數(shù)有關(guān)。如果數(shù)字量的位數(shù)為n,則D/A轉(zhuǎn)換器的分辨率為1/2n。即數(shù)/模轉(zhuǎn)換器能對(duì)滿刻度的1/2n輸入量作出反應(yīng)。,9.1.2 D/A轉(zhuǎn)換器的技術(shù)性能指標(biāo),分辨率輸出模擬量的滿量程值2n,如:8位數(shù)的分辨率為1/256,10位數(shù)分辨率為1/1024,通常用D/A轉(zhuǎn)換器輸入數(shù)字量的位數(shù)來表示分辨率。,D/A轉(zhuǎn)換器常可分為8位、10位、12位三種。,2精度,如果不考慮D/A的轉(zhuǎn)換誤差,D/A轉(zhuǎn)換的精度為其分辨率的大小。因此,要獲得一定精度的D/A轉(zhuǎn)換結(jié)果,首要條件是選擇有足夠分辨率的D/A轉(zhuǎn)換器。,轉(zhuǎn)換速度是DAC每秒可以轉(zhuǎn)換的次數(shù),其倒數(shù)為轉(zhuǎn)換時(shí)間。轉(zhuǎn)換時(shí)間是指從輸入數(shù)字量到轉(zhuǎn)換為模擬量輸出所需的時(shí)間。當(dāng)D/A轉(zhuǎn)換器的輸出形式為電流時(shí),轉(zhuǎn)換時(shí)間較短;當(dāng)D/A轉(zhuǎn)換器的輸出形式為電壓時(shí),轉(zhuǎn)換時(shí)間要加上運(yùn)算放大器的延遲時(shí)間而長一點(diǎn),一般在幾十微秒內(nèi)。,3轉(zhuǎn)換速度,4建立時(shí)間,建立時(shí)間是指從輸入數(shù)字量變化到輸出達(dá)到終值誤差(1/2)LSB(最低有效位)時(shí)所需的時(shí)間,即輸入的數(shù)字量變化后,輸出模擬量穩(wěn)定到相應(yīng)的數(shù)字范圍內(nèi)所需的時(shí)間。 通常以建立時(shí)間來表示轉(zhuǎn)換速度。,輸入編碼形式是指D/A轉(zhuǎn)換電路輸入的數(shù)字量的形式。如二進(jìn)制碼、BCD碼等。,5輸入編碼形式,6線性度,線性度是指D/A轉(zhuǎn)換器的實(shí)際轉(zhuǎn)移特性與理想直線之間的最大誤差,或最大偏移。通常給出在一定溫度下的最大非線性度,一般為0.01%0.03。,大部分D/A轉(zhuǎn)換芯片是電壓型輸出,一般為510V;也有高壓輸出型的,為2430V。有一些是電流型的輸出,低者為20mA左右,高者可達(dá)3A。,7輸出電平,8尖峰,尖峰是輸入的數(shù)字量發(fā)生變化時(shí)產(chǎn)生的瞬時(shí)誤差。通常尖峰的轉(zhuǎn)換時(shí)間很短,但幅度很大。在許多場合是不允許有尖峰存在的,應(yīng)采取措施予以消除。,正確了解D/A轉(zhuǎn)換器件的技術(shù)性能參數(shù),對(duì)于合理選用轉(zhuǎn)換芯片、正確設(shè)計(jì)接口電路十分重要。,D/A轉(zhuǎn)換器的性能指標(biāo)很多,但在選用合適的芯片型號(hào)時(shí)主要考慮的是它的分辨率、精度和轉(zhuǎn)換速度。,目前單片機(jī)系統(tǒng)常用的D/A轉(zhuǎn)換器的轉(zhuǎn)換精度有8位、10位、12位等,與單片機(jī)的接口方式有并行接口、串行接口。,9.1.3 DAC0832芯片及其與單片機(jī)接口電路,1DAC0832芯片介紹,(1)DAC0832的性能 8位D/A轉(zhuǎn)換器,單電源供電,在+5+15 V范圍均可正常工作?;鶞?zhǔn)電壓的范圍為10V;電流建立時(shí)間為1s;CMOS工藝,低功耗(僅為20 mW)。,DAC0832主要特性: 輸出電流線性度可在滿量程下調(diào)節(jié); 轉(zhuǎn)換時(shí)間(電流建立時(shí)間)為; 數(shù)據(jù)輸入可采用雙緩沖、單緩沖或直通方式; 增益溫度補(bǔ)償為0.02%FS/; 每次輸入數(shù)字為8位二進(jìn)制數(shù); 低功耗,20mW; 邏輯電平輸入與TTL兼容; 基準(zhǔn)電壓的范圍為10V; 單電源供電,可在515V 內(nèi)正常工作。,(2)DAC0832的內(nèi)部結(jié)構(gòu),該轉(zhuǎn)換器由輸入寄存器和DAC寄存器構(gòu)成兩級(jí)數(shù)據(jù)輸入鎖存。使用時(shí)數(shù)據(jù)輸入可以采用兩級(jí)鎖存(雙鎖存)形式,或單級(jí)鎖存(一級(jí)鎖存,一級(jí)直通)形式,或直接輸入(兩級(jí)直通)形式。 此外,由3個(gè)與門電路可組成寄存器輸出控制邏輯電路,該邏輯電路的功能是進(jìn)行數(shù)據(jù)鎖存控制。當(dāng) =0時(shí),輸入數(shù)據(jù)被鎖存;當(dāng) =1時(shí),鎖存器的輸出跟隨輸入的數(shù)據(jù)。 D/A轉(zhuǎn)換電路是一個(gè)R-2R T型電阻網(wǎng)絡(luò),可實(shí)現(xiàn)8位數(shù)據(jù)的轉(zhuǎn)換。,(3)DAC0832的引腳 DAC0832為20引腳、雙列直插式封裝。,Vcc:電源線。DAC0832的電源可以在515V內(nèi)變化。典型使用時(shí)用+15V電源。 AGND和DGND:AGND為模擬量地線,DGND為數(shù)字量地線。使用時(shí),這兩個(gè)接地端應(yīng)始終連在一起。,CS:片選輸入信號(hào),低電平有效。只有當(dāng)CS=0時(shí),這片DAC0832才被選中。 DI0DI7:8位數(shù)字量輸入端。應(yīng)用時(shí),如果數(shù)據(jù)不足8位,則不用的位一般接地。,ILE:輸入鎖存允許信號(hào),高電平有效。只有當(dāng)ILE=1時(shí),輸入數(shù)字量才可能進(jìn)入8位輸入寄存器。 WR1:寫信號(hào)1,低電平有效,控制輸入寄存器的寫入。ILE和WR1信號(hào)控制輸入寄存器是數(shù)據(jù)直通方式還是數(shù)據(jù)鎖存方式:當(dāng)ILE=1且WR1=0時(shí),為輸入寄存器直通方式;當(dāng)ILE=1且WR1=1時(shí),為輸入寄存器鎖存方式。 WR2:寫信號(hào)2,低電平有效,控制DAC寄存器的寫入。 XFER:數(shù)據(jù)傳送控制輸入信號(hào),低電平有效,控制數(shù)據(jù)從輸入寄存器到DAC寄存器的傳送。WR2和XFER信號(hào)控制DAC寄存器是數(shù)據(jù)直通方式還是數(shù)據(jù)鎖存方式:當(dāng)WR2=0且XFER =0時(shí),為DAC寄存器直通方式;當(dāng)WR2=1或XFER =1時(shí),為DAC寄存器鎖存方式。,Vref:參考電壓線。Vref接外部的標(biāo)準(zhǔn)電源,與芯片內(nèi)的電阻網(wǎng)絡(luò)相連接,該電壓可正可負(fù),范圍為1010V。 Iout1和Iout2:電流輸出端。Iout1為DAC電流輸出1,當(dāng)DAC寄存器中的數(shù)據(jù)為0xFF時(shí),輸出電流最大,當(dāng)DAC寄存器中的數(shù)據(jù)為0x00時(shí),輸出電流為。Iout2為DAC電流輸出2。DAC轉(zhuǎn)換器的特性之一是Iout1Iout2=常數(shù)。在實(shí)際使用時(shí),總是將電流轉(zhuǎn)為電壓來使用,即將Iout1和Iout2加到一個(gè)運(yùn)算放大器的輸入端。,Rfb:運(yùn)算放大器的反饋電阻端,電阻(15k)已固化在芯片中。因?yàn)镈AC0832是電流輸出型D/A轉(zhuǎn)換器,為得到電壓的轉(zhuǎn)換輸出,使用時(shí)需在兩個(gè)電流輸出端接運(yùn)算放大器,Rfb即為運(yùn)算放大器的反饋電阻。,圖9.5 運(yùn)算放大器的接法,(4)DAC0832的工作原理,將數(shù)字量的每一位按權(quán)值分別轉(zhuǎn)換成模擬量,再通過運(yùn)算放大器求和相加,D/A轉(zhuǎn)換器內(nèi)部有一個(gè)解碼網(wǎng)絡(luò),以實(shí)現(xiàn)按權(quán)值分別進(jìn)行D/A轉(zhuǎn)換。,(5)DAC0832的輸出,DAC0832是電流輸出型D/A轉(zhuǎn)換器。,圖9.6 DAC0832單極性電壓輸出電路,單極性輸出運(yùn)放: VoutIout1Rfb BVref/256,雙極性輸出運(yùn)放: Vout ( Vout1/R Vref/2R )2R 2Vout1Vref 2BVref/256Vref BVref/128Vref Vref(B128)/128,圖9.7 DAC0832雙極性電壓輸出電路,當(dāng)Vref為正,數(shù)字量在0x010x7F之間變化時(shí),Vout為負(fù)值;當(dāng)數(shù)字量在0x800xFF之間變化時(shí),Vout為正值。,(1)直通方式下的接口電路 直通方式是數(shù)據(jù)直接輸入(兩級(jí)直通)的形式。 兩個(gè)8位數(shù)據(jù)寄存器都處于數(shù)據(jù)接收狀態(tài),LE1=1,LE2=1,ILE=1,而WR1、WR2、CS和XFER均為0。輸入數(shù)據(jù)直接送到內(nèi)部D/A轉(zhuǎn)換器去轉(zhuǎn)換。,2DAC0832與51單片機(jī)的接口電路,DAC0832的工作方式:直通方式、單緩沖方式和雙緩沖方式,圖9.8 直通方式下89C51與DAC0832的連接圖,(2)單緩沖方式下的接口電路 單緩沖方式是單級(jí)鎖存(一級(jí)鎖存,一級(jí)直通)形式, 就是使DAC0832的兩個(gè)8位數(shù)據(jù)寄存器中有一個(gè)處于直通方式,而另一個(gè)處于受控的鎖存方式,或者兩個(gè)8位數(shù)據(jù)寄存器處于同時(shí)受控的方式,即同時(shí)送數(shù),同時(shí)鎖存。, 在單緩沖工作方式下,可以將8位DAC寄存器置于直通方式。為此,應(yīng)將WR2和XFER接地,而輸入寄存器的工作狀態(tài)受單片機(jī)的控制。,WR=0,P2.7=0, DAC0832的地址為 0x7FFF, 將數(shù)字量0x08轉(zhuǎn)換為模擬量的程序: #define DAC0832 XBYTE0x7FFF DAC0832=0x08; 或 output(0x7FFF,0x08);,兩個(gè)輸入寄存器同時(shí)受控的連接方法,WR1和WR2一起接89C51的WR,CS和XFER共同接89C51的P2.7,因此兩個(gè)寄存器的地址相同。,(3)雙緩沖方式下的接口電路 雙緩沖方式的數(shù)據(jù)輸入可以采用兩級(jí)鎖存(雙鎖存)的形式,就是把DAC0832的兩個(gè)鎖存器都接成受控鎖存方式。DAC0832的WR1、WR2、CS和XFER都受單片機(jī)送來的信號(hào)的控制。,當(dāng) WR=0,P2.7=0,P2.6=1,8位輸入寄存器處于送數(shù)狀態(tài), 8位DAC寄存器處于鎖存狀態(tài),不能進(jìn)行D/A轉(zhuǎn)換。,雙緩沖方式下89C51與兩片DAC0832的連接圖,如DAC0832的8位輸入寄存器地址為0x7FFF, WR=0,P2.7=1,P2.6=0,8位DAC寄存器處于送數(shù)據(jù)狀態(tài),開始進(jìn)行D/A轉(zhuǎn)換。DAC0832的8位DAC寄存器的地址為0xBFFF,將一個(gè)數(shù)字量轉(zhuǎn)換為模擬量的程序:,#define DAC0832_1 XBYTE0xBFFF #define DAC0832_2 XBYTE0x7FFF DAC0832_1=0x08; DAC0832_2=0x08; 或 output(0xBFFF, 0x08) ; output(0x7FFF, 0x08) ;,1任務(wù)要求,9.1.4 燈光亮度調(diào)節(jié)器的設(shè)計(jì),用AT89C51單片機(jī)和DAC0832控制一個(gè)發(fā)光二極管,使發(fā)光二極管的亮度逐漸變暗,再逐漸變亮,不斷循環(huán)。,2任務(wù)分析,改變發(fā)光二極管的亮度,就要改變通過發(fā)光二極管的電流。方法很多,利用AT89C51控制DAC0832數(shù)模轉(zhuǎn)換芯片,DAC0832的輸出轉(zhuǎn)換成電壓去驅(qū)動(dòng)發(fā)光二極管。當(dāng)DAC0832的輸入數(shù)字量變化時(shí),輸出電壓改變,通過發(fā)光二極管的電流變化,發(fā)光二極管的亮度就改變。,3任務(wù)設(shè)計(jì),(1)器件選擇,(2)硬件原理圖設(shè)計(jì) DAC0832單緩沖方式, P2和P0決定地址,片選信號(hào)CS低電平有效,P2.7為0,DAC0832的地址為0x7FFF。,(3)軟件程序設(shè)計(jì): #include #include #define uint unsigned int #define uchar unsigned char #define DAC0832 XBYTE0x7FFF /延時(shí)子程序 void DelayMS(uint x) uchar t; while(x-) for(t=0;t120;t+); ,/主程序控制燈光亮度變化 void main() uchar i; while(1) for(i=256;i0;i-) AC0832=i; DelayMS(1); for(i=0;i256;i+) AC0832=i; DelayMS(1); ,(4)軟硬件聯(lián)合調(diào)試 在Protus環(huán)境下,將編譯好的軟件下載到AT89C51中運(yùn)行,可以看到LED燈如任務(wù)要求的一樣先由亮逐漸變暗,再由暗逐漸變亮。,1任務(wù)要求,任務(wù)9.2 信號(hào)發(fā)生器的設(shè)計(jì),用單片機(jī)AT89C51和D/A轉(zhuǎn)換芯片DAC0832組成的信號(hào)發(fā)生器生成要求周期和幅度(0V+5V)的鋸齒波、三角波、方波或正弦波。,2任務(wù)分析,鋸齒波:向DAC0832反復(fù)送入0x000xFF數(shù)據(jù),就會(huì)生成 幅度為0V+5V的鋸齒波 三角波:向DAC0832反復(fù)送入0x000xFF和0xFF 0x00數(shù) 據(jù),就會(huì)生成幅度為0V+5V的三角波,方波:向DAC0832送入一定時(shí)長的0x00和一定時(shí)長的0xFF, 就會(huì)生成幅度為0V+5V的方波,波形的周期與單片機(jī)的機(jī)器周期和程序中的延時(shí)長短相關(guān)。,正弦波:等時(shí)間間隔分割正弦信號(hào),計(jì)算出分割時(shí)刻的信 號(hào)幅值,將幅值對(duì)應(yīng)的數(shù)字量存儲(chǔ)到ROM中,然后 用查表的方法取出這些取樣值,送到DAC0832轉(zhuǎn)換 后輸出,那么輸出信號(hào)就是正弦波形。,如:波形頻率為50Hz的正弦波信號(hào), 正弦波信號(hào)以5作為1個(gè)階梯, 則分成 360572份, 時(shí)間間隔為 20720.278ms。 當(dāng)參考電壓為5V時(shí),72個(gè)采樣值、輸 出電壓值、正弦值、角度如表9.2所示。,表9.2 正弦波數(shù)據(jù)表,3任務(wù)設(shè)計(jì),(1)器件選擇,(2)硬件原理圖設(shè)計(jì) DAC0832工作于單緩沖方式,地址為0x7FFF。Vref接5V電壓,輸出的單極性電壓在05V之間變化。,(3)軟件程序設(shè)計(jì): 產(chǎn)生鋸齒波的源程序如下: #include #include #define uint unsigned int #define uchar unsigned char #define DAC0832 XBYTE0x7FFF /延時(shí)子程序 void DelayMS(uint x) uchar t; while(x-) for(t=0;t120;t+); ,/ 主程序生成鋸齒波 void main() uchar i; while(1) for(i=0;i256;i+) DAC0832=i; DelayMS(1); ,產(chǎn)生三角波的源程序如下: #include #include #define uint unsigned int #define uchar unsigned char #define DAC0832 XBYTE0x7FFF /延時(shí)子程序 void DelayMS(uint x) uchar t; while(x-) for(t=0;t120;t+); ,/ 主程序生成三角波 void main() uchar i; while(1) for(i=0;i0;i-) DAC0832=i; DelayMS(1); ,產(chǎn)生正弦波的源程序如下: #include #include #define uint unsigned int #define uchar unsigned char #define DAC0832 XBYTE0x7FFF,/初始化正弦波波形數(shù)據(jù)數(shù)組 uchar code data =0x7F,0x8A,0x95,0xA0,0xAB,0XB5, 0xBF,0xC8,0xD1,0xD9,0xE1,0xE7,0xED,0xF3, 0xF7,0xFA,0xFD,0xFE,0xFF,0xFE,0xFD,0xFA, 0xBF,0xF3,0xED,0xE7,0xE1,0xD9,0xD1,0xC8, 0xBF,0xB5,0xAB,0xA0,0x95,0x8A,0x7F,0x75, 0x6A,0x5F,0x54,0x4A,0x40,0x36,0x2D,0x25, 0x1E,0x17,0x11,0x0C,0x07,0x04,0x02,0x01, 0x00,0x01,0x02,0x04,0x07,0x0C,0x11,0x17, 0x1E,0x25,0x2D,0x36,0x40,0x4A,0x54,0x5F, 0x6A,0x75;,/延時(shí)子程序 void DelayMS(uint x) uchar t; while(x-) for(t=0;t120;t+); /主程序生成正弦波 void main() uchar i; while(1) for(i=0;i72;i+) DAC0832= datai; DelayMS(1); ,(4)軟硬件聯(lián)合調(diào)試 將上面相應(yīng)波形的程序編譯為*.hex文件后,在Proteus繪制的原理圖中,將*.hex文件加載到單片機(jī)AT89C51中運(yùn)行,在虛擬示波器上可以看到對(duì)應(yīng)的波形圖。在Proteus仿真運(yùn)行過程中可能會(huì)提示CPU過載,這時(shí)虛擬示波器可能會(huì)無法實(shí)時(shí)顯示波形,可將虛擬示波器通道A中指向1的黃色旋鈕從1開始先正向旋轉(zhuǎn)一圈,再反向旋轉(zhuǎn)一圈,這樣會(huì)使虛擬示波器盡快刷新顯示波形。,1PCF8591簡介,項(xiàng)目拓展 串行D/A轉(zhuǎn)換芯片PCF8591在實(shí)驗(yàn)板上的應(yīng)用,PCF8591是一個(gè)單片集成的具有I2C總線接口的8位A/D及D/A轉(zhuǎn)換器,有4路A/D輸入,1路D/A輸出。PCF8591的輸入輸出地址、控制和數(shù)據(jù)信號(hào)都是通過I2C總線以串行的方式進(jìn)行傳輸。,PCF8591的主要特性: 單獨(dú)供電 PCF8591的操作電壓范圍+2.5V+6V 低待機(jī)電流 通過IC總線串行輸入/輸出 PCF8591通過3個(gè)硬件地址引腳尋址 PCF8591的采樣率由IC總線速率決定 4個(gè)模擬輸入可編程為單端型或差分輸入 自動(dòng)增量頻道選擇 PCF8591的模擬電壓范圍從VSS到VDD PCF8591內(nèi)置跟蹤保持電路 8-bit逐次逼近A/D轉(zhuǎn)換器 通過1路模擬輸出實(shí)現(xiàn)DAC增益,2PCF8591內(nèi)部結(jié)構(gòu)框圖,3PCF8591引腳功能,4PCF8591工作原理,PCF8591采用典型的I2C總線接口器件尋址方法,即總線地址由器件地址(1001)、引腳地址(由A0A2接地或+5V來確定,接地代表0,接+5V代表1)、方向位(即R/W)組成。在I2C總線系統(tǒng)中最多可接8個(gè)這樣的器件。,表9.5 PCF8591總線地址,R/W=1表示讀操作,R/W=0表示寫操作。如果將A0A2接地,則讀地址為91H;寫地址為90H。 地址字節(jié):由器件地址、引腳地址、方向位組成,它是通信時(shí)主機(jī)發(fā)送的第一字節(jié)數(shù)據(jù)。 控制字節(jié):用于控制PCF8951的輸入方式、輸入通道、D/A轉(zhuǎn)換等,是通信時(shí)主機(jī)發(fā)送的第二字節(jié)數(shù)據(jù),其格式如下表。,D/A轉(zhuǎn)換的數(shù)據(jù)輸入和A/D轉(zhuǎn)換的數(shù)據(jù)輸出都是通過I2C總線串行輸入和輸出的。因此PCF8951中I2C總線的通信格式包括寫數(shù)據(jù)格式和讀數(shù)據(jù)格式。,PCF8591的I2C總線寫數(shù)據(jù)格式:,PCF8591的I2C總線讀數(shù)據(jù)格式:,5I2C總線,(1)I2C總線數(shù)據(jù)位的傳輸,I2C總線上每傳輸一個(gè)數(shù)據(jù)位必須產(chǎn)生一個(gè)時(shí)鐘脈沖,I2C總線上數(shù)據(jù)傳輸?shù)挠行砸骃DA線上的數(shù)據(jù)必須在時(shí)鐘線SCL的高電平期間保存穩(wěn)定,數(shù)據(jù)線的改變只能在時(shí)鐘線為低電平期間。,I2C總線由2根線:串行數(shù)據(jù)線(SDA)和串行時(shí)鐘線(SCL)。,總線上的每一個(gè)器件都有一個(gè)唯一的地址。,(2)I2C總線數(shù)據(jù)的傳輸,數(shù)據(jù)傳輸中的應(yīng)答:相應(yīng)的應(yīng)答位由接收方(從機(jī))產(chǎn)生,在應(yīng)答的時(shí)鐘脈沖期間,發(fā)送方(主機(jī))應(yīng)釋放SDA線(使其為高電平)。在應(yīng)答過程中,接收方(從機(jī))必須將數(shù)據(jù)線SDA拉低,使它在這個(gè)時(shí)鐘脈沖的高電平期間保持穩(wěn)定的低電平。,數(shù)據(jù)傳輸?shù)淖止?jié)格式:發(fā)送到SDA線上的每一個(gè)字節(jié)必須為8位,每次發(fā)送的字節(jié)數(shù)量不受限制,從機(jī)在接收完一個(gè)字節(jié)后向主機(jī)發(fā)送一個(gè)應(yīng)答位,主機(jī)在收到從機(jī)應(yīng)答后才會(huì)發(fā)送第二字節(jié)數(shù)據(jù),發(fā)送數(shù)據(jù)時(shí)先發(fā)數(shù)據(jù)的最高位。,(3) I2C總線的傳輸協(xié)議,主機(jī)寫數(shù)據(jù)到從機(jī)的通信格式:,主機(jī)從從機(jī)中讀數(shù)據(jù)的通信格式:,6. 實(shí)驗(yàn)板上鋸齒波信號(hào)的輸出,(1)STC89C52控制PCF8591生成鋸齒波信號(hào)的電路設(shè)計(jì),將U15的J23的19和20腳用杜邦線與J8的SDA和SCL腳連接。,(2)生成鋸齒波的軟件設(shè)計(jì), 主程序main.c: / PCF8591 的DA轉(zhuǎn)換程序 #include #include “i2c.h“ #define AddWr 0x90 /寫數(shù)據(jù)地址 #define AddRd 0x91 /讀數(shù)據(jù)地址 /鋸齒波數(shù)據(jù)表,表格數(shù)值越多,波形越平滑 unsigned char code tab = 0,10,20,30,40,50,60,70,80,90, 100, 110,120,130,140,150,160,170,180, 190,200, 210,220,230,240,250 ; /定義全局變量 extern bit ack;,/寫入DA轉(zhuǎn)換數(shù)值,dat表示需要輸入轉(zhuǎn)換的DA數(shù)值,從0-255 bit WriteDAC(unsigned char dat,unsigned char num) unsigned char i; Start_I2c(); /啟動(dòng)總線 SendByte(AddWr); /發(fā)送器件地址 if(ack=0) return(0); SendByte(0x40); /發(fā)送器件子地址 if(ack=0) return(0); for(i=0;inum;i+) SendByte(dat); /發(fā)送數(shù)據(jù) if(ack=0) return(0); Stop_I2c(); ,/主程序 main() unsigned char i; while (1) for(i=0;i26;i+) WriteDAC(tab1i,1); ,I2C頭文件i2c.h: #ifndef _I2C_H_ #define _I2C_H_ #include /頭文件的包含 #include #define _Nop() _nop_() /定義空指令 /啟動(dòng)總線 void Start_I2c(); /結(jié)束總線 void Stop_I2c(); /字節(jié)數(shù)據(jù)傳送函數(shù) void SendByte(unsigned char c); #endif,I2C程序i2c.c: /函數(shù)是采用軟件延時(shí)的方法產(chǎn)生SCL脈沖, 晶振頻率是12MHz,即機(jī)器周期為1us #include “i2c.h“ #define _Nop() _nop_() /定義空指令 bit ack; /應(yīng)答標(biāo)志位 sbit SDA=P21; sbit SCL=P20;、 /啟動(dòng)總線 void Start_I2c() SDA=1; /發(fā)送起始條件的數(shù)據(jù)信號(hào) _Nop(); SCL=1; _Nop(); /起始條件建立時(shí)間大于4.7us,延時(shí) _Nop(); _Nop(); _Nop(); _Nop();,SDA=0; /發(fā)送起始信號(hào) _Nop(); /起始條件鎖定時(shí)間大于4 _Nop(); _Nop(); _Nop(); _Nop(); SCL=0; /鉗住I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù) _Nop(); _Nop(); /結(jié)束總線 void Stop_I2c() SDA=0; /發(fā)送結(jié)束條件的數(shù)據(jù)信號(hào) _Nop(); /發(fā)送結(jié)束條件的時(shí)鐘信號(hào) SCL=1; /結(jié)束條件建立時(shí)間大于4 _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SDA=1; /發(fā)送I2C總線結(jié)束信號(hào) _Nop(); _Nop(); _Nop(); _Nop(); ,/字節(jié)數(shù)據(jù)傳送函數(shù) void SendByte(unsigned char c) unsigned char BitCnt; for(BitCnt=0;BitCnt8;BitCnt+) /要傳送的數(shù)據(jù)長度為8位 if(cBitCnt) ,_Nop(); _Nop(); SDA=1; /8位發(fā)送完后釋放數(shù)據(jù)線,準(zhǔn)備接收應(yīng)答位 _Nop(); _Nop(); SCL=1; _Nop(); _Nop(); _Nop(); if(SDA=1) ack=0; else ack=1; /判斷是否接收到應(yīng)答信號(hào) SCL=0; _Nop(); _Nop(); ,將上面的幾個(gè)程序放入Kiel C51的一個(gè)工程文件中進(jìn)行編譯,生成*.hex文件后,通過USB口下載到實(shí)驗(yàn)板中。程序運(yùn)行之后,用示波器測量J33的上面一個(gè)OUT腳,調(diào)節(jié)示波器,可以清晰地看到鋸齒波波形。,注意:在使用PCF8591進(jìn)行D/A轉(zhuǎn)換時(shí),硬件電路連接非常簡單,軟件相對(duì)比較復(fù)雜,單片機(jī)通過I2C總線發(fā)送數(shù)字信號(hào),所以一定要嚴(yán)格按照I2C總線的通信格式要求發(fā)送數(shù)據(jù)。,項(xiàng)目小結(jié),本項(xiàng)目介紹了單片機(jī)常用的外接8位并行D/A轉(zhuǎn)換芯片DAC0832的原理和應(yīng)用。通過兩個(gè)任務(wù)學(xué)習(xí)了采用單片機(jī)和DAC0832實(shí)現(xiàn)各種信號(hào)發(fā)生器的設(shè)計(jì)方法。 DAC0832完成數(shù)字信號(hào)到模擬信號(hào)的轉(zhuǎn)換后是以電流形式輸出,必須外接運(yùn)算放大器把電流轉(zhuǎn)換成電壓信號(hào)。DAC0832 與單片機(jī)根據(jù)接口方式不同有三種工作方式:直通方式、單緩沖方式和雙緩沖方式。實(shí)際應(yīng)用中根據(jù)實(shí)際情況選擇合適的工作方式。 在介紹并行D/A轉(zhuǎn)換芯片的應(yīng)用之后,以PCF8591為例介紹了串行D/A轉(zhuǎn)換芯片的特點(diǎn)、工作原理以及在實(shí)驗(yàn)板上的應(yīng)用方法。,思考與訓(xùn)練,(一)知識(shí)思考: 在單片機(jī)應(yīng)用系統(tǒng)中為什么要進(jìn)行A/D和D/A轉(zhuǎn)換,它們的作用是什么? DAC0832與8051單片機(jī)接口時(shí)有哪些控制信號(hào)?作用分別是什么? 使用DAC0832時(shí),單緩沖方式如何工作?雙緩沖方式如何工作?它們各占用8051外部RAM的哪幾個(gè)單元?軟件編程有什么區(qū)別? 怎樣用DAC0832得到電壓輸出信號(hào)?有哪幾種方法? 多片D/A轉(zhuǎn)換器為什么必須采用雙緩沖接口方式? PCF8591的主要特點(diǎn)是什么?簡述其工作原理。 PCF8591輸入和輸出數(shù)字信號(hào)的格式各是怎樣的? I2C總線的特點(diǎn)和通信格式是怎樣的?,(二)項(xiàng)目訓(xùn)練: 1 試用DAC0832芯片設(shè)計(jì)單緩沖方式的D/A轉(zhuǎn)換器接口電路,并編寫2個(gè)程序,分別使DAC0832輸出負(fù)向鋸齒波和15個(gè)正向階梯波。 2 根據(jù)圖9.17的電路接法,判斷DAC0832是工作在直通方式、單緩沖方式還是雙緩沖方式?欲用DAC0832產(chǎn)生如圖9.18所示波形,則如何編程?(設(shè)滿量程電壓5V,周期為2s)。 3 參照任務(wù)2,將圖9.18的硬件電路作修改,設(shè)計(jì)成一個(gè)完整的信號(hào)發(fā)生器,通過按鍵控制輸出鋸齒波、三角波、方波或正弦波,并寫出完整的程序。,

注意事項(xiàng)

本文(信號(hào)發(fā)生器的設(shè)計(jì).ppt)為本站會(huì)員(xt****7)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!