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