• <button id="3m49y"><acronym id="3m49y"></acronym></button>

  • <tbody id="3m49y"></tbody>
  • <em id="3m49y"></em>

    基于DAC0832和AT89S52的信號發生器設計

    訊石光通訊網 2012/8/17 8:47:09
           信號發生器是一種常用的信號源,廣泛應用于電子電路、自動控制系統和教學實驗等領域。信號的產生有模擬電路、專用硬件和軟件產生等方法。采用模擬電路搭建函數信號發生器,可同時產生方波、三角波、正弦波,但不能產生任意波形,存在波形質量差、控制難、可調范圍小,電路復雜和體積大等缺點,且頻率調節不方便。專用硬件方法產生的信號頻率分辨率高、穩定性好、在線調整方便,如目前在通訊系統中應用廣泛的直接數字頻率合成(DDS)技術,例如AD9854是一種典型的信號產生方法,但是價格昂貴。

            利用單片機通過程序設計方法產生低頻信號,其頻率底線較低,具有線路簡單、結構緊湊、體積小、價格低廉、頻率穩定度高、抗干擾能力強、用途廣泛等優點,且如需要產生新的波形時,只需對程序進行修改即可。文中利用單片機AT89S52和D/A轉換器DAC0832轉換數字信號為0~5 V模擬電壓信號,并在LCD1602顯示。

    1 系統硬件設計

            系統硬件采用模塊化設計,以單片機控制器為核心,與D/A轉換電路、按鍵電路、LCD顯示電路等組成信號發生器控制系統。字符型液晶顯示模塊是一種專用于顯示字母、數字、符號等點陣式LCD,目前常用的有16×1、16×2、20×2和40×2行等模塊。系統選用1602字符型LCD模塊,其控制器為日立公司生產的HD44780,可用來顯示數字、字符等。按鍵輸入使用獨立式按鍵K1、K2,主要實現數字信號DAC值的加減。

    系統硬件組成框圖如圖1所示。

    1.1 主控芯片電路

             在大部分的工控或測控設備中,8位的MCS-51系列單片機能滿足大部分的控制要求,加之MCS-51系列單片機的價格優勢,使MCS-51系列單片機成為單片機應用主流。AT89S52是MCS-51系列兼容單片機中的代表產品。鑒于此,本系統選用AT89S52單片機作為主控制器。

    1.2 D/A轉換電路

             D/A模塊由D/A芯片和放大電路組成,系統D/A芯片選用DAC0832芯片來完成數/模轉換過程。數字信號的輸入從“D0~D7”端口輸入,通過按鍵K1、K2實現DAC值的加減,其值在0~255之間,并在LCD1602上顯示??刂艱AC0832工作的控制信號南“WR-CS”端口輸入。DAC 0832是電流輸出型D/A轉換芯片,通過集成運放LF393完成電流到電壓的轉換,由于LF393工作在雙電源條件下,因此要給LF393加入±12 V電壓。DAC轉換的模擬電壓值從“D/A輸出”口輸出。

             系統硬件電路原理圖如圖2所示。

    2 系統軟件設計

              系統的軟件設計使用C51編程,采用模塊化設計方法,主要由主函數、定時器T0中斷服務函數、D/A轉換函數、計算D/A轉換值函數、按鍵掃描函數、LCD顯示函數、LCD顯示A/D轉換值函數等模塊組成。根據D/A轉換芯片DAC0832的工作時序,20 ms進行一次D/A轉換,可以利用單片機AT89S52的定時器T0定時,20 ms定時到時,產生定時器T0中斷,在定時器T0中斷服務函數巾調用DAC0832采樣轉換函數進行D/A采樣轉換,然后調用計算D/A轉換值函數把D/A轉換值轉換成相應的ASCⅡ碼,最后通過LCD顯示D/A轉換值函數把DAC轉換的模擬電壓值(0~5 V)顯示在液晶LCD1602上,并從“D/A輸出”端子輸出DAC轉換的0~5 V模擬電壓。系統軟件結構框圖如圖3所示。

            主函數是完成硬件初始化、數據初始化、函數調用等功能,等待中斷到來。計算D/A轉換值ASCII碼函數實現把D/A轉換值dabl轉換為相應的ASCII碼,以便在LCD上顯示。按鍵掃描函數實現了通過系統程序改變數字量初始值,按鍵K1實現數字量加1,按鍵K2實現數字量減1,使數字量在0~255的范圍內變化,從而模擬數字信號的輸入。LCD顯示函數包括LCD初始化函數、寫入指令數據到LCD函數、寫入顯示數據到LCD函數、LCD顯示D/A轉換值函數、延時函數等模塊。軟件程序的核心由定時器T0中斷服務程序、DAC0832采樣轉換程序構成.

    2.1 定時器T0中斷服務函數設計

            當定時器T0定時20 ms后,進入定時器T0中斷服務函數。首先重裝定時器T0初值,設置按鍵輸入口P1口的值為0xdf,調用按鍵掃描函數。接著調用D/A轉換函數進行D/A轉換,得到D/A轉換值dabl,然后調用計算D/A轉換值函數計算dabl相應的ASCII碼,再調用LCD顯示D/A轉換值函數把數字量輸入值D/A進行轉換后的模擬量顯示在液晶LCD1602上。最后T0中斷函數返回主程序等待下一次D/A轉換。定時器T0中斷服務函數設計流程圖如圖4所示。

            2.2 DAC0832采樣轉換函數設計

            根據D/A轉換芯片DAC0832的工作時序,片選信號低電平有效。把芯片DAC0832的片選信號置低電平,選中該芯片。把數字量D/A轉換值dabl送給P0口,準備送入芯片DAC0832進行D/A轉換處理。芯片DAC0832寫信號置低電平后再過兩個時鐘周期至高電平,產生一個上升沿信號,進行數據D/A轉換處理。模擬量dabl從Iout1、Iout2引腳輸出送到運算放大器LF393進行處理,最后從“D/A輸出”端子輸出,可用萬用表測量到輸出電壓。數據轉換完畢,把芯片DAC0832片選信號置高電平,最后函數返回。D/A轉換函數設計流程圖如圖5所示。

         3 實驗測試分析

          根據輸入單片機的數字信號,用萬用表測量從“D/A輸出”端子測試輸出模擬電壓信號,如表1所示。從表1可知,該信號發生器的電壓輸出誤差小、精度高。

            4 結束語

              系統按照簡單化、便捷化原則設計,介紹了系統的總體結構、硬件設計和軟件設計。側重闡述了采用AT89S52單片機與D/A轉換器DAC08 32對輸入數字信號進行處理,最后驅動輸出顯示裝置LCD1602顯示D/A轉換的0~5 V模擬電壓信號。實驗調試表明該信號發生器在技術指標上達到了設計要求,具有精度高、抗干擾性強、性能穩定、升級方便等特點,有較高的應用價值。

    新聞來源:電子周刊

    相關文章

    自拍偷拍亚洲无码中文字幕,高清无码三区四区,人妻无码免费视频一区,日韩高清无码种子