您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng) > 電子技術(shù)應(yīng)用 > 實驗中心 > 編程實驗 >

基于Max+PlusⅡ與VHDL的數(shù)字電壓表設(shè)計(2)

2011年09月26日 13:41 本站整理 作者:秩名 用戶評論(0
關(guān)鍵字:VHDL(1)Max+PlusⅡ(4)
2.2計算模塊

  該模塊將A/D轉(zhuǎn)換結(jié)果分為高低4位,查表依次得到其BCD碼后再進(jìn)行計算,計算結(jié)果與A/D轉(zhuǎn)換器的位寬和參考電壓Vref均有關(guān)。本文選用8位轉(zhuǎn)換器ADC0804,參考電壓為5.12V,故能輸出從0~5.12V按照0.02V步進(jìn)變化的256(28)個離散值。如表1所示。

  電壓離散值可用8位二進(jìn)制(或2位十六進(jìn)制數(shù))表示,表1中列出了輸出數(shù)字電壓高4位及低4位可能出現(xiàn)的16個值。如果CPLD從ADC20804接收到信號01101000B(即68H),對照表1高4位0110B是1.92V,而低4位1000B是0.16V,則最后的電壓輸出結(jié)果是1.92+0.16=2.08V。

  

 

  本文要求精確到兩位小數(shù)0.01V,故將輸出電壓表示成12位的BCD碼形式。如上述的1.92V是(000110010010)BCD,0.16V是(000000010110)BCD,相加結(jié)果2.08V是(001000001000)BCD。同理,若CPLD轉(zhuǎn)換數(shù)據(jù)01110000B(即70H),則計算結(jié)果2.24 V是(001000100100)BCD。因此計算模塊的設(shè)計主要包括一個12位的加法器及與之對應(yīng)的存儲器。

  主要VHDL語句如下:

  

 

  3 仿真結(jié)果

  CPLD設(shè)計完成后,用Max+Plus II軟件編譯和仿真,波形如圖3所示。由圖3可知,CPLD工作時,先啟動控制模塊,它對模數(shù)轉(zhuǎn)換的一次控制由四個狀態(tài)組成。在狀態(tài)S0,選定ADC0804,為模數(shù)轉(zhuǎn)換做準(zhǔn)備;在狀態(tài)S1,使ADC0804進(jìn)行轉(zhuǎn)換,當(dāng)CPLD的INTR信號端由高電平轉(zhuǎn)為低電平時,模數(shù)轉(zhuǎn)換結(jié)束進(jìn)入下一狀態(tài)S2,為讀取轉(zhuǎn)換結(jié)果做準(zhǔn)備;在狀態(tài)S3,CPLD讀取模數(shù)轉(zhuǎn)換結(jié)果。接著,CPLD的計算模塊工作,求出二進(jìn)制模數(shù)轉(zhuǎn)換數(shù)據(jù)的12位BCD碼。最后啟動顯示驅(qū)動模塊,用數(shù)碼管顯示有兩位小數(shù)的數(shù)字電壓值。例如,模數(shù)轉(zhuǎn)換結(jié)果即CPLD的輸入信號Din[7..0]若為68H,則輸出電壓Dout[11..0]是2.08V,Din[7..0]為70H時,輸出電壓Dout[11..0]是2.24V,符合設(shè)計要求。

  

 

  4 結(jié) 語

  本文數(shù)字電壓表的功能由VHDL程序決定,用Max+PlusⅡ軟件編譯、仿真和邏輯綜合后,下載到CPLD芯片EPF10K10LC84-4。CPLD工作主頻為100 MHz,邏輯綜合占用了174個邏輯單元,資源利用率為30%。本文所設(shè)計的數(shù)字電壓表電路板已通過硬件測試,能測量和顯示0~5V的弱電壓信號,準(zhǔn)確度為0.02V,并已在我校EDA工程實訓(xùn)中心測試成功。保持CPLD芯片不變,將輸入信號改為溫度信號、濕度等信號分別測試時,均能顯示相應(yīng)的數(shù)字值,因此,基于這種設(shè)計方法的數(shù)字電子系統(tǒng)具有很強的靈活性。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發(fā)表人:葉子 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?