白苗潔成都理工大學(xué)信息科學(xué)與技術(shù)學(xué)院
?
基于微控制器的數(shù)字信號發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)
白苗潔
成都理工大學(xué)信息科學(xué)與技術(shù)學(xué)院
摘要:本設(shè)計(jì)是基于單片機(jī)STC89C52的多功能波形發(fā)生器。由STC98C52、D/A轉(zhuǎn)換、LM324運(yùn)放放大器、示波器液晶顯示、外圍電路構(gòu)成的數(shù)字信號發(fā)生器。利用STC89C52單片機(jī)產(chǎn)生數(shù)字信號波形,再通過D/A轉(zhuǎn)換將數(shù)字信號轉(zhuǎn)換成模擬信號,在經(jīng)過有LM324組成的運(yùn)放電路放大信號,由示波器輸出,之后再經(jīng)過有LM324組成的反向電路使得模擬信號反向輸出,最后,一起顯示在示波器里。
關(guān)鍵字:STC89C52單片機(jī) DA轉(zhuǎn)換 數(shù)字信號
不論是在生產(chǎn)還是在科研與教學(xué)上,信號發(fā)生器都是電子工程師仿真實(shí)驗(yàn)的最佳工具。隨著我國經(jīng)濟(jì)和科技的發(fā)展,對相應(yīng)的測試儀器和測試手段也提出了更高的要求,信號發(fā)生器己成為測試儀器中至關(guān)重要的一類,因此開發(fā)信號發(fā)生器具有重大意義。傳統(tǒng)的信號發(fā)生器采用專用芯片,成本高,控制方式不靈活。現(xiàn)在很多設(shè)計(jì)利用單片機(jī)靈活的控制、豐富的外設(shè)處理能力,實(shí)現(xiàn)頻率、幅值可調(diào)的函數(shù)波形的輸出,同時(shí)可以根據(jù)需要方便地實(shí)現(xiàn)各種比較復(fù)雜的調(diào)頻、調(diào)相和調(diào)幅功能,具有良好的實(shí)用性。
經(jīng)過再三考慮,確定方案如下:利用STC89C52單片機(jī)采用程序設(shè)計(jì)的方法產(chǎn)生方波、矩形波、三角波、正弦波四個(gè)波形,再通過D/A轉(zhuǎn)換器DAC0832將數(shù)字信號轉(zhuǎn)換成模擬信號,濾波放大,再通過反向電路,最終由示波器顯示出來。通過由STC8C52產(chǎn)生的數(shù)字信號通過DAC0832轉(zhuǎn)換為模擬信號,有數(shù)字量的大小直接和模擬信號的頻率成正比。因?yàn)閱纹瑱C(jī)本身的可提供的最大頻率并不是很穩(wěn)定,所以在單片機(jī)P2端口處加排阻連接在一起,又此來確定波形的最大頻率。本設(shè)計(jì)用單片機(jī)控制所產(chǎn)生信號的幅度,并且充分地利用了單片機(jī)強(qiáng)大的程序控制和計(jì)算功能,采用查表的方法利用軟件生成了各種信號,從而大大地節(jié)省了硬件開銷,動(dòng)態(tài)地實(shí)現(xiàn)了目標(biāo)信息的模擬。
3.1單片機(jī)模塊
STC89C52單片機(jī)是一種低功耗、高性能8位單片微型計(jì)算機(jī)。它把構(gòu)成計(jì)算機(jī)的中央處理器CPU、存儲器、寄存器、I/O接口制作在一塊集成電路芯片中,從而構(gòu)成較為完整的計(jì)算機(jī)、而且其價(jià)格便宜。
3.2D/A轉(zhuǎn)換模塊
D/A轉(zhuǎn)換是由最常用的DAC0832來完成,主要優(yōu)點(diǎn)有:分辨率為8位;電流穩(wěn)定時(shí)間1us;可單緩沖、雙緩沖或直接數(shù)字輸入;只需在滿量程下調(diào)整其線性度;單一電源供電(+5V~+15V);低功耗,20mW。而且相對其他D/A轉(zhuǎn)換設(shè)施DAC0832容易入手,可快速掌握。
3.3運(yùn)放模塊
在運(yùn)放模塊中,現(xiàn)實(shí)常用的芯片有LM358,TL062,TL072,TL082,LF353,NE5532等等,在這里我選擇的是LM324,主要是因?yàn)樵谝郧暗膶?shí)訓(xùn)中使用過LM324,所以比較熟悉它的性能。
3.4反向電路模塊
因?yàn)樵谶\(yùn)放模塊中選擇的是LM324,所以為了節(jié)約成本,所以反向電路用的也是LM324。使用LM324也可以提高集成度,使得做出的電路板面積減小,易于使用。
3.5鍵盤模塊
矩陣式鍵盤。矩陣式鍵盤的按鍵觸點(diǎn)接于由行、列母線構(gòu)成的矩陣電路的交叉處。當(dāng)鍵盤上沒有鍵閉合時(shí),所有的行和列線都斷開,行線都呈高電平。當(dāng)某一個(gè)鍵閉合時(shí),該鍵所對應(yīng)的行線和列線被短路。
單片機(jī)內(nèi)部數(shù)據(jù)只能以0,1輸出,所產(chǎn)生的信號都是離散的信號。為了能夠讓單片機(jī)實(shí)現(xiàn)函數(shù)信號輸出功能,采用對信號采樣,量化的方法。在設(shè)計(jì)中,對正弦信號進(jìn)行采樣,通過查表來實(shí)現(xiàn)輸出不團(tuán)的幅度值。采樣點(diǎn)越密集,信號失真度就越小。對于三角波的輸出,就是實(shí)現(xiàn)兩次循環(huán),通過有最小值到最大值和由最大值到最小值的循環(huán)來實(shí)現(xiàn)三角波的輸出。方波的輸出時(shí)間間隔由軟件通過定時(shí)、計(jì)數(shù)器來控制。鋸齒波的輸出就是三角波的1/2步驟由最小到最大,一直重復(fù)這個(gè)步驟。
產(chǎn)生指定波形可以通過DAC來實(shí)現(xiàn),不同波形產(chǎn)生實(shí)質(zhì)上是對輸出的二進(jìn)制的數(shù)字量進(jìn)行相應(yīng)改變來實(shí)現(xiàn)的。
(1)方波信號是利用定時(shí)器中斷產(chǎn)生的,每次中斷時(shí),將輸出的信號反向即可。
(2)三角波信號是將輸出的二進(jìn)制數(shù)字信號依次加1,達(dá)到0xff時(shí)依次減1,并實(shí)時(shí)將數(shù)字信號經(jīng)D/A轉(zhuǎn)換得到。
(3)鋸齒波信號是將輸出的二進(jìn)制數(shù)字信號依次加1,達(dá)到0xff時(shí)置為0x00并實(shí)時(shí)將數(shù)字信號經(jīng)D/A轉(zhuǎn)換得到的。
(4)正弦波是利用MATLAB將正弦曲線均勻取樣后,得到等間隔時(shí)刻的y方向上的二進(jìn)制數(shù)值,然后依次輸出后經(jīng)D/A轉(zhuǎn)換得到。
參考文獻(xiàn)
[1]米昶. Protel2004電路設(shè)計(jì)與仿真(高等學(xué)校計(jì)算機(jī)輔助設(shè)計(jì)規(guī)劃教材)[M].機(jī)械工業(yè)出版,2006.
[2]何立民.單片機(jī)高級教程-應(yīng)用與設(shè)計(jì)[M].北京航空航天大學(xué)出版社,2008.
[3]李剛,等.ADUC845單片機(jī)原理、開發(fā)方法及應(yīng)用實(shí)例[M].電子工業(yè)出版社,2006.
[4]張毅剛單片機(jī)原理及應(yīng)用J高等教育出版社,2003