基于51單片機的數字電壓表仿真設計
2.1 AT89C51單片機和數碼管顯示電路的接口設計
利用單片機AT89C51與ADC0808設計一個(gè)數字電壓表,將模擬信號0~5 V之間的直流電壓值轉換成數字量信號0~FF,以?xún)晌粩荡a管顯示。Proteus軟件啟動(dòng)仿真,當前輸入電壓為2.5 V,轉換成數字值為7FH,用鼠標指針調節電位器RV1,可改變輸入模/數轉換器ADC0808的電壓,并通過(guò)虛擬電壓表觀(guān)察ADC0808模擬量輸入信號的電壓值,LED數碼管實(shí)時(shí)顯示相應的數值量。
在Proteus軟件中設置AT89C51單片機的晶振頻率為12 MHz。本電路EA接高電平,沒(méi)有擴展片外ROM。
2.2 A/D轉換電路的接口設計
A/D轉換器采用集成電路ADC0808。ADC0808具有8路模擬量輸入信號IN0~IN7(1~5腳、26~28腳),地址線(xiàn)C、B、A(23~25腳)決定哪一路模擬輸入信號進(jìn)行A/D轉換,本電路將地址線(xiàn)C、B、A均接地,即選擇0號通道輸入模擬量電壓信號。22腳ALE為地址鎖存允許控制信號,當輸入為高電平時(shí),對地址信號進(jìn)行鎖存。6腳START為啟動(dòng)控制信號,當輸入為高電平時(shí),A/D轉換開(kāi)始。本電路將ALE腳與START腳接到一起,共同由單片機的P2.0腳和WR腳通過(guò)或非門(mén)控制。7腳EOC為A/D轉換結束信號,當A/D轉換結束時(shí),7腳輸出一個(gè)正脈沖,此信號可作為A/D轉換是否結束的檢測信號或向CPU申請中斷的信號,本電路通過(guò)一個(gè)非門(mén)連接到單片機的P3.2腳。9腳OE為A/D轉換數據輸出允許控制信號,當OE腳為高電平時(shí),允許讀取A/D轉換的數字量。該OE腳由單片機的P2.0腳和RD腳通過(guò)或非門(mén)控制。10腳CLOCK為ADC0808的實(shí)時(shí)時(shí)鐘輸入端,利用單片機30引腳ALE的六分頻晶振頻率得到時(shí)鐘信號。數字量輸出端8個(gè)接到單片機的P0口。
3 數字電壓表的軟件程序設計
系統上電狀態(tài),初始化ADC0808的啟動(dòng)地址,數碼管顯示關(guān)閉,開(kāi)始啟動(dòng)A/D轉換。等待啟動(dòng)結束后,將ADC0808的0號通道模擬量輸入信號轉換輸出的數字量結果通過(guò)數碼管動(dòng)態(tài)顯示的方式顯示到三位數碼管上。
根據設計要求結合硬件電路,在輸入模擬信號時(shí)采用電阻分壓,最終的采樣輸入電壓只有實(shí)際輸入電壓的十分之一,所以在編寫(xiě)程序中要編寫(xiě)一段數據調整程序,其中還應注意硬件顯示電路采用了動(dòng)態(tài)掃描顯示,在動(dòng)態(tài)掃描顯示方式中,動(dòng)態(tài)掃描的頻率有一定的要求,頻率太低,數碼管LED將會(huì )出現閃爍現象,通常數碼管點(diǎn)亮時(shí)間間隔一般均取5ms左右為宜,這就要求在編寫(xiě)程序時(shí),使其點(diǎn)亮并保持一定的時(shí)間??偨Y以上分析,程序流程圖如圖3,圖4所示。本文引用地址:http://dyxdggzs.com/article/172735.htm
評論