【正文】
set有一個(gè)下降沿時(shí),d4=“0000”,d3=“0000”,d2=“0000”;以上預(yù)計(jì)結(jié)果與仿真圖輸出相同,仿真結(jié)果正確。data_out[11..0]:12位并行二進(jìn)制數(shù)據(jù)輸出端。2. 提高要求: (1) 能夠連續(xù)測(cè)量。這些工作由ADS7816轉(zhuǎn)換控制模塊、數(shù)據(jù)轉(zhuǎn)換控制模塊、譯碼顯示模塊完成。 reset:復(fù)位鍵,輸入。四. 源程序1. ADS7816轉(zhuǎn)換控制模塊LIBRARY IEEE。event and clk=39。 第4個(gè)時(shí)鐘上升沿ADS開(kāi)始輸出數(shù)據(jù) when 5=data_out(10)=ad_dat。 end if。2. 數(shù)據(jù)轉(zhuǎn)換控制模塊LIBRARY IEEE。 signal en1,en2,f_en:std_logic。) then if (r=0 and flag=0)or (r=0 and flag=1) then flag=1。 WHEN 0011= data2 = 0000010001100001。 WHEN 0001= data1 = 0000000000010000。 END CASE。 WHEN 1111= data0 = 0000000000001001。 16位BCD碼中的(74位)相加,和大于9進(jìn)1 sum2=(39。data2(11 DOWNTO 8))+(39。data1(15 DOWNTO 12))+(39。d2=do2(3 DOWNTO 0)。3. 譯碼顯示模塊LIBRARY IEEE。 END IF。 else seg=1111110。 end if。 WHEN OTHERS = seg = 1111110。) THEN IF temp=11 THEN temp=0。經(jīng)過(guò)咨詢同學(xué),得知ADS7816的數(shù)據(jù)輸入是待測(cè)量的電壓,輸出的串行12位數(shù)據(jù)是EPM1270T144C5的數(shù)據(jù)輸入。應(yīng)充分利用VHDL“自頂向下”的設(shè)計(jì)優(yōu)點(diǎn)以及層次化的設(shè)計(jì)概念,層次概念對(duì)于設(shè)計(jì)復(fù)雜的數(shù)字系統(tǒng)是非常有用的,它使得我們可以從簡(jiǎn)單的單元入手,逐漸構(gòu)成龐大而復(fù)雜的系統(tǒng)。不要做金錢(qián)、權(quán)利的奴隸;應(yīng)學(xué)會(huì)做“金錢(qián)、權(quán)利”的主人。在學(xué)習(xí)用QUARTUS設(shè)計(jì)原理圖時(shí),我鍛煉了分析實(shí)驗(yàn)要求、判斷電路結(jié)構(gòu)的能力,而在編寫(xiě)VHDL程序時(shí),尤其是設(shè)計(jì)和實(shí)現(xiàn)ADS轉(zhuǎn)換控制模塊,分析問(wèn)題、解決問(wèn)題的能力得到了逐步提升。畢竟課程設(shè)計(jì)不同于實(shí)驗(yàn)課,電路圖和程序都要自己設(shè)計(jì)。若沒(méi)有超過(guò)量程,數(shù)碼管顯示當(dāng)前電池的電壓值。 SIGNAL clk_temp: STD_LOGIC。 elsif (doo2=1000) then seg=1111111。 elsif (doo3=0111) then seg=1110000。 elsif (doo4=0110) then seg=1011111。EVENT AND CLK1 = 39。039。 END IF。amp。 END IF。data0(3 DOWNTO 0))。 WHEN 1011= data0 = 0000000000000111。 WHEN 1101= data1 = 0000000100100101。 WHEN 1111= data2 = 0010001100000100。end if。 f_en=clk and en1 and (not en2)。 SIGNAL sum1,sum2,sum3,sum4,do1,do2,do3,do4:STD_LOGIC_VECTOR(4 DOWNTO 0)。 end if。 when others=data_out=000000000000。 if oe=1 then if clk39。 signal t:integer range 0 to 16。2. 數(shù)據(jù)轉(zhuǎn)換控制模塊 如圖所示,當(dāng)en有一個(gè)上升沿時(shí),開(kāi)始數(shù)據(jù)轉(zhuǎn)換。cs:A/D轉(zhuǎn)換結(jié)束信號(hào),輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)。 (5) 按鍵控制測(cè)量和復(fù)位。2. 總體框圖3. 分塊設(shè)計(jì) ADS7816轉(zhuǎn)換控制模塊 (1)ADS7816工作原理 在ADS7816的工作時(shí)序中,串行時(shí)鐘DCLK用于同步數(shù)據(jù)轉(zhuǎn)換,每位轉(zhuǎn)換后的數(shù)據(jù)在DCLK的下降沿開(kāi)始傳送。按鍵按下為高電平。USE 。039。 when 6=data_out(9)=ad_dat。 end if。USE 。 signal reset1,reset2,f_reset:std_logic。 end if。 WHEN 0100= data2 = 0000011000010100。 WHEN 0010= data1 = 0000000000011001。將低四位二進(jìn)制數(shù)據(jù)所代表的電壓值轉(zhuǎn)換為16位BCD碼 CASE datain(3 DOWNTO 0) IS WHEN 0000= data0 = 0000000000000000。 WHEN OTHERS= data0 = NULL。039。039。039。 輸出十進(jìn)制BCD碼中的低四位d3=do3(3 DOWNTO 0)。USE 。 END IF。 end if。 低四位譯碼 WHEN 1 = CAT = 111110。CAT = 111000。clk_temp=NOT clk_temp。ADS7816是獨(dú)立于EPM1270T144C5之外的模數(shù)轉(zhuǎn)換芯片。在實(shí)習(xí)中經(jīng)常會(huì)遇到一些自己可能暫時(shí)無(wú)法想明白的問(wèn)題,請(qǐng)教同學(xué)或老師是很好的做法,節(jié)省時(shí)間也會(huì)從別人上上學(xué)到更多。什么時(shí)候離光明最近?那就是你覺(jué)得黑暗太黑的時(shí)候。通過(guò)這次數(shù)電實(shí)驗(yàn),我收獲的不止是知識(shí),更重要的是分析、解決問(wèn)題的能力。七. 總結(jié)和結(jié)論課程設(shè)計(jì)剛開(kāi)始,拿著選定的題目不知如何入手。 整個(gè)測(cè)量過(guò)程:將電池電壓接入到實(shí)驗(yàn)板,按下開(kāi)始測(cè)量鍵BIN6。ARCHITECTURE struct OF div_12 IS SIGNAL temp :INTEGER RANGE 0 TO 124。 elsif (doo2=0111) then seg=1110000。 elsif (doo3=0110) then seg=1011111。 elsif (doo4=0101) then seg=1011011。 BEGIN