【正文】
是同時(shí)在顯示。四. 源程序1. ADS7816轉(zhuǎn)換控制模塊LIBRARY IEEE。USE 。ENTITY ads ISPORT( en:in std_logic。 cs:out STD_LOGIC。 da_out: out std_logic_vector(11 downto 0))。ARCHITECTURE behave OF ads IS signal oe:integer range 0 to 1。 signal t:integer range 0 to 16。 signal data_out:std_logic_vector(11 downto 0)。event and clk=39。 then en2=en1。 end if。 f_en=clk and en1 and (not en2)。event and f_en=39。 )then 接收到開(kāi)始測(cè)量按鍵的信號(hào) oe=1。 if oe=1 then if clk39。139。 第4個(gè)時(shí)鐘上升沿ADS開(kāi)始輸出數(shù)據(jù) when 5=data_out(10)=ad_dat。 when 7=data_out(8)=ad_dat。 when 9=data_out(6)=ad_dat。 when 11=data_out(4)=ad_dat。 when 13=data_out(2)=ad_dat。 when 15=data_out(0)=ad_dat。 when others=data_out=000000000000。 if t16 then t=t+1。 end if。 if clk39。039。139。039。 end case。 end if。 cs=temp_cs。2. 數(shù)據(jù)轉(zhuǎn)換控制模塊LIBRARY IEEE。USE 。ENTITY deal IS PORT( clk: in std_logic。 en: in std_logic。 beef: OUT STD_LOGIC。END deal。 SIGNAL sum1,sum2,sum3,sum4,do1,do2,do3,do4:STD_LOGIC_VECTOR(4 DOWNTO 0)。 signal flag:integer range 0 to 1。 signal en1,en2,f_en:std_logic。 BEGINp2:process(clk) 按鍵防抖 begin if clk39。039。 reset1=reset。 en1=en。 end process。 f_en=clk and en1 and (not en2)。event and f_en=39。) then if (r=0 and flag=0)or (r=0 and flag=1) then flag=1。 if (r=1 and flag=1)or( r=1 and flag=0 ) then flag=0。 end if。event and f_reset=39。) then if (r=0 and flag=0)or (r=1 and flag=0) then r=0。 if (r=1 and flag=1)or( r=0 and flag=1) then r=1。end if。 WHEN 0001= data2 = 0000000101010100。 WHEN 0011= data2 = 0000010001100001。 WHEN 0101= data2 = 0000011101101000。 WHEN 0111= data2 = 0001000001110101。 WHEN 1001= data2 = 0001001110000010。 WHEN 1011= data2 = 0001011010010000。 WHEN 1101= data2 = 0001100110010111。 WHEN 1111= data2 = 0010001100000100。 END CASE。 WHEN 0001= data1 = 0000000000010000。 WHEN 0011= data1 = 0000000000101001。 WHEN 0101= data1 = 0000000001001000。 WHEN 0111= data1 = 0000000001100111。 WHEN 1001= data1 = 0000000010000110。 WHEN 1011= data1 = 0000000100000110。 WHEN 1101= data1 = 0000000100100101。 WHEN 1111= data1 = 0000000101000100。 END CASE。 WHEN 0001= data0 = 0000000000000001。 WHEN 0011= data0 = 0000000000000010。 WHEN 0101= data0 = 0000000000000011。 WHEN 0111= data0 = 0000000000000100。 WHEN 1001= data0 = 0000000000000101。 WHEN 1011= data0 = 0000000000000111。 WHEN 1101= data0 = 0000000000001000。 WHEN 1111= data0 = 0000000000001001。END CASE。039。data2(3 DOWNTO 0))+(39。amp。039。data0(3 DOWNTO 0))。 ELSE c1=00001。 16位BCD碼中的(74位)相加,和大于9進(jìn)1 sum2=(39。amp。039。data1(7 DOWNTO 4))+(39。amp。 IF sum201010 THEN c2=00000。 END IF。039。data2(11 DOWNTO 8))+(39。amp。039。data0(11 DOWNTO 8))+c2。 ELSE c3=00001。 16位BCD碼中的(1512位)相加,和大于9進(jìn)1 sum4=(39