【正文】
= 0000000000000001。 WHEN 1010= data0 = 0000000000000110。 將高,中,低分別代表的16位BCD(表示為150位)進(jìn)行加法運(yùn)算16位BCD碼中的(30位)相加,和大于9進(jìn)1 sum1=(39。amp。data2(7 DOWNTO 4))+(39。 ELSE c2=00001。data1(11 DOWNTO 8))+(39。039。data0(15 DOWNTO 12))+c3。 ELSE do3=sum301010。 輸出十進(jìn)制BCD碼中的高四位 ,溢出顯示為“”IF(do4(3 DOWNTO 0)=0001 and do3(3 DOWNTO 0)=0101 ) THEN beef=39。 beef=39。USE 。 BEGIN p1: PROCESS(CLK1) BEGIN IF(CLK139。 p2: PROCESS(TMP) BEGIN CASE TMP IS 高四位譯碼 WHEN 3 = CAT = 111011。 elsif (doo4=0101) then seg=1011011。dp=39。 elsif (doo3=0110) then seg=1011111。039。 elsif (doo2=0111) then seg=1110000。 END PROCESS。ARCHITECTURE struct OF div_12 IS SIGNAL temp :INTEGER RANGE 0 TO 124。 END IF。 整個(gè)測(cè)量過(guò)程:將電池電壓接入到實(shí)驗(yàn)板,按下開始測(cè)量鍵BIN6。后來(lái)發(fā)現(xiàn)時(shí)序圖對(duì)于ADS轉(zhuǎn)換控制模塊極其重要,仔細(xì)閱讀,掌握了ADS7816的時(shí)序圖:采用在DCLK的上升沿接收轉(zhuǎn)換后的各位數(shù)據(jù)流。七. 總結(jié)和結(jié)論課程設(shè)計(jì)剛開始,拿著選定的題目不知如何入手。所以本次試驗(yàn)通過(guò)自己對(duì)相關(guān)資料的查詢,以及向其他同學(xué)的請(qǐng)教、相互間的討論,基本順利地完成了實(shí)驗(yàn),能夠?qū)崿F(xiàn)對(duì)電池電壓的測(cè)量。通過(guò)這次數(shù)電實(shí)驗(yàn),我收獲的不止是知識(shí),更重要的是分析、解決問(wèn)題的能力。什么時(shí)候離光明最近?那就是你覺(jué)得黑暗太黑的時(shí)候。另外在具體的實(shí)驗(yàn)操作過(guò)程中一定要細(xì)心,比如在引腳設(shè)定時(shí)一定要做到“對(duì)號(hào)入座”,曾經(jīng)自己由于這一點(diǎn)沒(méi)做好耗費(fèi)了很多時(shí)間。在實(shí)習(xí)中經(jīng)常會(huì)遇到一些自己可能暫時(shí)無(wú)法想明白的問(wèn)題,請(qǐng)教同學(xué)或老師是很好的做法,節(jié)省時(shí)間也會(huì)從別人上上學(xué)到更多。3. 仿真時(shí)間區(qū)域的設(shè)定與輸入波形周期的設(shè)定一定要協(xié)調(diào),否則得到波形可能不便于觀察或發(fā)生錯(cuò)誤。ADS7816是獨(dú)立于EPM1270T144C5之外的模數(shù)轉(zhuǎn)換芯片。 reset:為復(fù)位鍵,連接到BIN5,按下此鍵顯示值變?yōu)椤?00”。clk_temp=NOT clk_temp。 clk_out: OUT STD_LOGIC)。CAT = 111000。 elsif (doo2=0101) then seg=1011011。 低四位譯碼 WHEN 1 = CAT = 111110。 elsif (doo3=0100) then seg=0110011。 end if。 elsif (doo4=0011) then seg=1111001。 END IF。 END display。USE 。 d3=0000。 輸出十進(jìn)制BCD碼中的低四位d3=do3(3 DOWNTO 0)。 END IF。039。 END IF。039。data0(7 DOWNTO 4))+c1。039。data1(3 DOWNTO 0))+(39。 WHEN OTHERS= data0 = NULL。 WHEN 1000= data0 = 0000000000000101。將低四位二進(jìn)制數(shù)據(jù)所代表的電壓值轉(zhuǎn)換為16位BCD碼 CASE datain(3 DOWNTO 0) IS WHEN 0000= data0 = 0000000000000000。 WHEN 1010= data1 = 0000000010010110。 WHEN 0010= data1 = 0000000000011001。 WHEN 1100= data2 = 0001100001000011。 WHEN 0100= data2 = 0000011000010100。 end if。 end if。 end if。 signal reset1,reset2,f_reset:std_logic。 d2,d3,d4:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。USE 。 t=1時(shí)下一次轉(zhuǎn)換開始,cs變?yōu)榈碗娖? when others=null。 end if。 when 14=data_out(1)=ad_dat。 when 6=data_out(9)=ad_dat。139。039。END ads。USE 。這樣得到模擬電壓的BCD碼。按鍵按下為高電平。輸入高電平時(shí)開始轉(zhuǎn)換。2. 總體框圖3. 分塊設(shè)計(jì) ADS7816轉(zhuǎn)換控制模塊 (1)ADS7816工作原理 在ADS7816的工作時(shí)序中,串行時(shí)鐘DCLK用于同步數(shù)據(jù)轉(zhuǎn)換,每位轉(zhuǎn)換后的數(shù)據(jù)在DCLK的下降沿開始傳送。 (2) AD 參考電壓:。 (5) 按鍵控制測(cè)量和復(fù)位。CS的下降沿用于啟動(dòng)轉(zhuǎn)換和數(shù)據(jù)變換,CS有效后的最初1至2個(gè)轉(zhuǎn)換周期內(nèi),ADS7816采樣輸入信號(hào),此時(shí)輸出引腳Dout呈三態(tài)。cs:A/D轉(zhuǎn)換結(jié)束信號(hào),輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(轉(zhuǎn)換期間一直為低電平)。beef:蜂鳴器,高電平有效。2. 數(shù)據(jù)轉(zhuǎn)換控制模塊 如圖所示,當(dāng)en有一個(gè)上升沿時(shí),開始數(shù)據(jù)轉(zhuǎn)換。ENTITY ads ISPORT( en:in std_logic。 signal t:integer range 0 to 16。 end if。 if oe=1 then if clk39。 when 9=data_out(6)