基于DAC0832和AT89S52的信號發(fā)生器設計
摘要 該信號發(fā)生器以單片機AT89C52和D/A轉換器DAC0832芯片為核心進(jìn)行設計。通過(guò)AT89S52控制DAC0832產(chǎn)生所需電流,然后使用運算放大器LF393將其電流輸出線(xiàn)性地轉換成0~5 V電壓輸出。通過(guò)程序控制,可以產(chǎn)生一系列有規律的波形j該系統具有精度高、抗干擾性強、性能穩定、升級方便等特點(diǎn),具有較高的應用價(jià)值。
關(guān)鍵詞 AT89S52;DAC0832;信號發(fā)生器;D/A轉換
信號發(fā)生器是一種常用的信號源,廣泛應用于電子電路、自動(dòng)控制系統和教學(xué)實(shí)驗等領(lǐng)域。信號的產(chǎn)生有模擬電路、專(zhuān)用硬件和軟件產(chǎn)生等方法。采用模擬電路搭建函數信號發(fā)生器,可同時(shí)產(chǎn)生方波、三角波、正弦波,但不能產(chǎn)生任意波形,存在波形質(zhì)量差、控制難、可調范圍小,電路復雜和體積大等缺點(diǎn),且頻率調節不方便。專(zhuān)用硬件方法產(chǎn)生的信號頻率分辨率高、穩定性好、在線(xiàn)調整方便,如目前在通訊系統中應用廣泛的直接數字頻率合成(DDS)技術(shù),例如AD9854是一種典型的信號產(chǎn)生方法,但是價(jià)格昂貴。
利用單片機通過(guò)程序設計方法產(chǎn)生低頻信號,其頻率底線(xiàn)較低,具有線(xiàn)路簡(jiǎn)單、結構緊湊、體積小、價(jià)格低廉、頻率穩定度高、抗干擾能力強、用途廣泛等優(yōu)點(diǎn),且如需要產(chǎn)生新的波形時(shí),只需對程序進(jìn)行修改即可。文中利用單片機AT89S52和D/A轉換器DAC0832轉換數字信號為0~5 V模擬電壓信號,并在LCD1602顯示。
1 系統硬件設計
系統硬件采用模塊化設計,以單片機控制器為核心,與D/A轉換電路、按鍵電路、LCD顯示電路等組成信號發(fā)生器控制系統。字符型液晶顯示模塊是一種專(zhuān)用于顯示字母、數字、符號等點(diǎn)陣式LCD,目前常用的有16×1、16×2、20×2和40×2行等模塊。系統選用1602字符型LCD模塊,其控制器為日立公司生產(chǎn)的HD44780,可用來(lái)顯示數字、字符等。按鍵輸入使用獨立式按鍵K1、K2,主要實(shí)現數字信號DAC值的加減。
系統硬件組成框圖如圖1所示。
1.1 主控芯片電路
在大部分的工控或測控設備中,8位的MCS-51系列單片機能滿(mǎn)足大部分的控制要求,加之MCS-51系列單片機的價(jià)格優(yōu)勢,使MCS-51系列單片機成為單片機應用主流。AT89S52是MCS-51系列兼容單片機中的代表產(chǎn)品。鑒于此,本系統選用AT89S52單片機作為主控制器。
1.2 D/A轉換電路
D/A模塊由D/A芯片和放大電路組成,系統D/A芯片選用DAC0832芯片來(lái)完成數/模轉換過(guò)程。數字信號的輸入從“D0~D7”端口輸入,通過(guò)按鍵K1、K2實(shí)現DAC值的加減,其值在0~255之間,并在LCD1602上顯示??刂艱AC0832工作的控制信號南“WR-CS”端口輸入。DAC 0832是電流輸出型D/A轉換芯片,通過(guò)集成運放LF393完成電流到電壓的轉換,由于LF393工作在雙電源條件下,因此要給LF393加入±12 V電壓。DAC轉換的模擬電壓值從“D/A輸出”口輸出。
系統硬件電路原理圖如圖2所示。
2 系統軟件設計
系統的軟件設計使用C51編程,采用模塊化設計方法,主要由主函數、定時(shí)器T0中斷服務(wù)函數、D/A轉換函數、計算D/A轉換值函數、按鍵掃描函數、LCD顯示函數、LCD顯示A/D轉換值函數等模塊組成。根據D/A轉換芯片DAC0832的工作時(shí)序,20 ms進(jìn)行一次D/A轉換,可以利用單片機AT89S52的定時(shí)器T0定時(shí),20 ms定時(shí)到時(shí),產(chǎn)生定時(shí)器T0中斷,在定時(shí)器T0中斷服務(wù)函數巾調用DAC0832采樣轉換函數進(jìn)行D/A采樣轉換,然后調用計算D/A轉換值函數把D/A轉換值轉換成相應的ASCⅡ碼,最后通過(guò)LCD顯示D/A轉換值函數把DAC轉換的模擬電壓值(0~5 V)顯示在液晶LCD1602上,并從“D/A輸出”端子輸出DAC轉換的0~5 V模擬電壓。系統軟件結構框圖如圖3所示。
主函數是完成硬件初始化、數據初始化、函數調用等功能,等待中斷到來(lái)。計算D/A轉換值ASCII碼函數實(shí)現把D/A轉換值dabl轉換為相應的ASCII碼,以便在LCD上顯示。按鍵掃描函數實(shí)現了通過(guò)系統程序改變數字量初始值,按鍵K1實(shí)現數字量加1,按鍵K2實(shí)現數字量減1,使數字量在0~255的范圍內變化,從而模擬數字信號的輸入。LCD顯示函數包括LCD初始化函數、寫(xiě)入指令數據到LCD函數、寫(xiě)入顯示數據到LCD函數、LCD顯示D/A轉換值函數、延時(shí)函數等模塊。軟件程序的核心由定時(shí)器T0中斷服務(wù)程序、DAC0832采樣轉換程序構成。
模擬信號相關(guān)文章:什么是模擬信號
adc相關(guān)文章:adc是什么
負離子發(fā)生器相關(guān)文章:負離子發(fā)生器原理
評論