基于單片機(jī)的函數(shù)發(fā)生器的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
在自動(dòng)控制系統(tǒng)設(shè)計(jì)及調(diào)試過(guò)程中,不同頻率的正弦波、三角波和方波常作為信號(hào)源,應(yīng)用十分方便。過(guò)去常由分立元件及集成運(yùn)放構(gòu)成振蕩器,后來(lái)出現(xiàn)的ICL8038其最高頻率僅能達(dá)到100kHz。而MAX038芯片性能更好,最高頻率可達(dá)20MHz,且三種波形由同一端輸出。單片機(jī)控制品質(zhì)卓越,基于單片機(jī)的函數(shù)發(fā)生器運(yùn)行可靠,操作方便。
2 高頻信號(hào)發(fā)生器芯片MAX038簡(jiǎn)介
MAXIM公司生產(chǎn)的MAX038芯片是一種高頻精密的函數(shù)發(fā)生器,可產(chǎn)生三角波、鋸齒波、正弦波、方波及脈沖波,且頻率及占空比的控制可獨(dú)立進(jìn)行。
Lin管腳電流范圍在10~400μA時(shí)電路獲得最佳工作性能。輸出波形的選擇由邏輯地址引腳A0和A1的組合來(lái)決定:A1A0=10或11時(shí),輸出正弦波;A1A0=00時(shí),輸出方波;A1A0=01時(shí)輸出三角波。波形切換可在0.3μs內(nèi)完成,但輸出波形有0.5μs的延遲時(shí)間。輸出頻率由Lin引腳的電流、SOSC引腳的對(duì)地電容量和FADJ的電壓來(lái)決定。當(dāng)FADJ引腳接地時(shí),輸出頻率由公式給出:
F0=Lin/CF
式中,F(xiàn)0是輸出頻率,單位MHz;Lin是管腳輸入電流,單位μA;CF是決定輸出頻率的串入電容值,單位pF。
3 基于單片機(jī)的函數(shù)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)
3.1 系統(tǒng)硬件接口電路設(shè)計(jì)
Intel公司的MCS-51系列中的8051單片機(jī)應(yīng)用已很成熟,以其為基核的其他8位機(jī)都有極好的兼容性,應(yīng)用十分方便。圖1所示為以8051和MAX038為核心的系統(tǒng)硬件電路。
用8279完成鍵盤輸入和LED顯示控制兩種功能,鍵盤按鍵設(shè)置:數(shù)字鍵0~9,小數(shù)點(diǎn),正弦波、方波和三角波切換鍵,頻率選擇Hz、kHz、MHz切換鍵,占空比鍵,回車鍵。采用外部譯碼方式,8279的SL0~SL2經(jīng)74LS138(2)輸出接鍵盤,同時(shí)經(jīng)74LS138(1)輸出驅(qū)動(dòng)后送LED。8279的顯示輸出B0~B3,A0~A3作8位數(shù)據(jù)輸出,當(dāng)鍵盤出現(xiàn)有效閉合鍵時(shí),數(shù)據(jù)自動(dòng)進(jìn)入8279的RAM存儲(chǔ)器,并向CPU申請(qǐng)中斷。
MAX038的頻率控制電壓由10位DAC1020提供,經(jīng)Rin=50kΩ的電阻進(jìn)入Lin引腳,8051的P2.6作為DAC1020的片選信號(hào),采用雙緩沖器方式,鎖存10位數(shù)據(jù)。DADJ引腳電壓范圍-2.4V~+2.4V由8位DAC0832的雙極性輸出電壓提供,即占空比調(diào)節(jié)的控制電壓。用8051的P2.5作為DAC0832的片選信號(hào),基準(zhǔn)電壓采用MAX038內(nèi)部2.5V基準(zhǔn)電壓,接入VR端。DAC0832的ILE接+5V,片選端和數(shù)據(jù)傳送端都與74LS373輸出線A0相連。
設(shè)Lin輸入端電壓為Vin,串接電阻為Rin,則有公式:
F0=Vin/〔Rin×CF〕
式中,F(xiàn)0是輸出頻率,單位MHz;Vin是輸入端電壓,單位V;Rin是串接電阻,單位Ω;CF是決定輸出頻率的串入電容值,單位pF。
取Rin=50kΩ,Vin的范圍0.5~5V,這樣對(duì)于某一電容,可提供十倍掃頻范圍,從而電容的選擇就可確定輸出頻率范圍,即頻段。第一頻段電容取100μF,頻率范圍0.1~1Hz,第二頻段到第九頻段電容選擇按十倍衰減,即可獲得各頻段頻率范圍,第九頻段頻率范圍是10~20MHz,每一頻段步進(jìn)值選各頻段低段頻率的0.5%。有九個(gè)頻段供選擇切換,8051的P1.2~P1.5通過(guò)T1042譯碼后送入頻段設(shè)定電路,由軟件啟動(dòng)頻段設(shè)定電路中的開(kāi)關(guān)來(lái)進(jìn)行頻段選擇。
3.2 系統(tǒng)軟件設(shè)計(jì)方案及實(shí)現(xiàn)
系統(tǒng)的主程序流程框圖如圖2所示?! ?/p>
先對(duì)8279進(jìn)行初始化,即允許中斷申請(qǐng),清8279狀態(tài),置鍵盤顯示方式及時(shí)鐘編程等,再置MAX038初始波形與頻率、占空比。然后測(cè)試回車鍵是否閉合,以決定是否進(jìn)行中斷處理,判斷輸出波形并輸出控制信號(hào),有關(guān)輸出波形頻率的控制電壓及占空比的計(jì)算送DAC1020及DAC0832,最后將波形頻率及占空比送顯示緩沖區(qū),調(diào)顯示子程序顯示。
4 結(jié)束語(yǔ)
利用單片機(jī)對(duì)MAX038的實(shí)時(shí)程序控制可產(chǎn)生高頻高精度的輸出波形,系統(tǒng)運(yùn)行穩(wěn)定,輸出波形失真小、漂移小、頻率范圍寬,基于8051的CHMOS單片機(jī)也可方便地實(shí)現(xiàn)嵌入應(yīng)用。