用PIC單片機設(shè)計A/D、D/A轉(zhuǎn)換器
2.2 編程4bit PWM實現(xiàn)8bit的D/A轉(zhuǎn)換
設(shè)8bit 待D/A轉(zhuǎn)換的二進制數(shù)存放于PIC16C62×;的數(shù)據(jù)存儲器的某一單元
將其分為兩個4bit的二進制碼:VR=VR3VR2VR1 VR0,VP=VP3VP2VP1V P0。VR控制基準(zhǔn)電壓源實現(xiàn)4bit D/A轉(zhuǎn)換,VP用于對基準(zhǔn)源的輸出電壓進行4bit PWM(脈寬調(diào)制)。PWM的高電平為VR對應(yīng)的VREF電壓值, PWM的低電平為VR-1對應(yīng)的VREF電壓值。如此,以4bit D/A轉(zhuǎn)換基準(zhǔn)電壓源的兩個相鄰二進制碼對應(yīng)的兩個VREF值,分別作為4bit PWM的高電平和低電平,這就組成一個8bit的D/A轉(zhuǎn)換器。圖2、圖3為常規(guī)PWM與D/A+PWM的區(qū)別,常規(guī)PWM 的高電平為VDD(如5V),低電平為0V,其原理眾所皆知,此處不再詳細敘述。本文所述的D/A+PWM其PWM的工作原理與常規(guī)PWM的工作原理一樣,只是PWM脈沖的高電平與低電平分別由VR 與VR-1的值決定。編程時,首先將待D/A轉(zhuǎn)換的8bit二進制數(shù)分成高4位與低4位,低4位存放于PIC16C62×的某一數(shù)據(jù)存儲器R0中,高4位作4次右移(移到字節(jié)低端)存放于PIC16C62×的另一個數(shù)據(jù)存貯器R1中。利用PIC16C64×的一個定時器中斷編寫PWM程序,PWM的占空比由R0中的值(即VP值)決定。將定時器中斷設(shè)置為最高優(yōu)先級別,以保證PWM的占空比精度。此段程序的實質(zhì)是:在由二進制碼VP決定占空比的PWM程序中對VRCON控制寄存器進行賦值操作。PWM脈沖的高電平由向VRCON控制寄存器低4位裝入VR產(chǎn)生,PWM脈沖的低電平由向VRCON控制寄存器低4位裝入VR-1產(chǎn)生。程序中需判斷:當(dāng)VRH=0時,VR-1對應(yīng)的REF由前所述的REFL低段值實現(xiàn)。
OUT即為8bit 的D/A輸出。PWM的濾波電路由0、2、1組成,其時間常數(shù)根據(jù)PWM的周期選定,與具體應(yīng)用中對D/A轉(zhuǎn)換要求的速度和編程有關(guān)。由于PIC16C62×的高速RISC精簡指令,D/A轉(zhuǎn)換速度可達到400Kbit /s以上。DD的溫漂要求盡量小。OUT可根據(jù)需要進行放大或電平變換。
把前述D/A轉(zhuǎn)換輸出的OUT模擬信號接到PIC16C62×內(nèi)部的一個比較器的同相端,待轉(zhuǎn)換模擬信號接到比較器的反相端,這就構(gòu)成一個典型的逐次逼近型A/D轉(zhuǎn)換器。其原理在許多教科書里講得非常清楚,本文不再詳述。
由于PIC16C62×具有比較器中斷功能,充分利用比較器中斷可提高編程效率及提高A/D轉(zhuǎn)換速度。定義一個PIC16C62×的數(shù)據(jù)存儲器單元作為A/D轉(zhuǎn)換結(jié)果數(shù)據(jù)寄存器,啟動A/D轉(zhuǎn)換之前在此寄存器內(nèi)預(yù)置一個經(jīng)驗數(shù)據(jù),采用前述D/A轉(zhuǎn)換的方法將此數(shù)據(jù)轉(zhuǎn)換成OUT電平,OUT電平與待轉(zhuǎn)換模擬信號電平進行比較。比較器的同相端電平高于反相端電平時,比較器輸出邏輯“1”,并產(chǎn)生一次中斷。比較器的同相端電平低于反相端電平時,比較器輸出邏輯“0”,也產(chǎn)生一次中斷。比較器輸出邏輯狀態(tài)“1”或“0”可從其特殊功能寄存器的相關(guān)位查詢獲取。在比較器中斷程序中,根據(jù)查詢結(jié)果逐次修改“A/D轉(zhuǎn)換結(jié)果數(shù)據(jù)寄存器”中的數(shù)據(jù),使OUT電平逐次逼近并最終收斂于待轉(zhuǎn)換模擬信號電平,收斂時數(shù)據(jù)寄存器中的值即為A/D轉(zhuǎn)換結(jié)果。收斂算法的優(yōu)劣是提高A/D轉(zhuǎn)換速度的關(guān)鍵,這與具體應(yīng)用場合及外圍電路參數(shù)相關(guān)。不過,大多數(shù)家電產(chǎn)品應(yīng)用中被轉(zhuǎn)換的模擬信號為低速緩慢變化信號,對A/D轉(zhuǎn)換速度的要求并不高。因此,對收斂算法的要求不高,通常采用從MSB至LSB逐次進行比較的算法。另外,待轉(zhuǎn)換模擬信號須經(jīng)過電平變換,使其變化范圍與OUT電平的變化范圍相一致。
4 小結(jié)
PIC16C62×;系列單片機內(nèi)部有兩個獨立的模擬比較器,并且其數(shù)字I/O口具備直接驅(qū)動發(fā)光二極管與led數(shù)碼管的能力。采用本文所述的A/D、D/A轉(zhuǎn)換器原理的應(yīng)用電路只占用其內(nèi)部一個模擬比較器、一個基準(zhǔn)源、4個引腳的資源,外圍電路也很簡單,應(yīng)用系統(tǒng)容易做到體積小、可靠性高、性價比好 。缺點是A/D、D/A的轉(zhuǎn)換速度較慢并占用單片機的大量時間資源,適合于低速變化的信號應(yīng)用。
模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理
評論