【正文】
INTR的下降沿ELSE NEXT_STATE = ST2。END IF。WHEN S2 = WR=39。139。CS=39。039。RD=39。039。LOCK=39。039。IF (INTR=39。039。) THEN NEXT_STATE = ST2。 測試INTR的上升沿ELSE NEXT_STATE = ST3。 =1則表明結(jié)束轉(zhuǎn)換END IF。WHEN S3 = WR=39。139。CS=39。139。RD=39。139。LOCK=39。139。NEXT_STATE = ST0。WHEN OTHERS = WR=39。139。CS=39。139。RD=39。139。LOCK=39。039。NEXT_STATE = ST0。end case。end if。end process。end block statechange。readdata:block 數(shù)據(jù)讀取模塊beginprocess(cp)begin if cp39。event and cp=39。139。 then if ec=39。139。 then d=din。 end if。 end if。end process。 end block readdata。conversion:block A/D轉(zhuǎn)換模塊 signal v:std_logic_vector(8 downto 0)。 signal t:std_logic_vector(7 downto 0)。 begin v=(damp。39。039。)100010001。 A/D數(shù)據(jù)*2(111H) t=V(7 downto 0)。 temp=t。value=000000000000 when T=0 Else000000000001 when T=1 Else000000000010 when T=2 Else000000000011 when T=3 Else000000000100 when T=4 Else000000000101 when T=5 Else000000000110 when T=6 Else000000000111 when T=7 Else000000001000 when T=8 Else000000001001 when T=9 Else000000010000 when T=10 Else000000010001 when T=11 Else000000010010 when T=12 Else000000010011 when T=13 Else000000010100 when T=14 Else000000010101 when T=15 Else000000010110 when T=16 Else000000010111 when T=17 Else000000011000 when T=18 Else000000011001 when T=19 Else000000100000 when T=20 Else000000100001 when T=21 Else000000100010 when T=22 Else000000100011 when T=23Else000000100100 when T=24 Else000000100101 when T=25 Else000000100110 when T=26 Else000000100111 when T=27 Else000000101000 when T=28 Else000000101001 when T=29 Else000000110000 when T=30 Else000000110001 when T=31 Else000000110010 when T=32 Else000000110011 when T=33 Else000000110100 when T=34 Else000000110101 when T=35 Else000000110110 when T=36 Else000000110111 when T=37 Else000000111000 when T=38 Else000000111001 when T=39 Else000001000000 when T=40 Else000001000001 when T=41 Else000001000010 when T=42 Else000001000011 when T=43 Else000001000100 when T=44 Else000001000101 when T=45 Else000001000110 when T=46 Else000001000111 when T=47 Else000001001000 when T=48 Else000001001001 when T=49 Else000001010000 when T=50 Else000001010001 when T=51 Else000001010010 when T=52 Else000001010011 when T=53 Else000001010100 when T=54 Else000001010101 when T=55 Else000001010110 when T=56 Else000001010111 when T=57 Else000001011000 when T=58 Else000001011001 when T=59 Else000001100000 when T=60 Else000001100001 when T=61 Else000001100010 when T=62 Else000001100011 when T=63 Else000001100100 when T=64 Else000001100101 when T=65 Else000001100110 when T=66 Else000001100111 when T=67 Else000001101000 when T=68 Else000001101001 when T=69 Else000001110000 when T=70 Else000001110001 when T=71 Else000001110010 when T=72 Else000001110011 when T=73 Else000001110100 when T=74 Else000001110101 when T=75 Else000001110110 when T=76 Else000001110111 when T=77 Else000001111000 when T=78 Else000001111001 when T=79 Else000010000000 when T=80 Else000010000001 when T=81 Else000010000010 when T=82 Else000010000011 when T=83 Else000010000100 when T=84 Else000010000101 when T=85 Else000010000110 when T=86 Else000010000111 when T=87 Else000010001000 when T=88 Else000010010000 when T=90 Else000010010001 when T=91 Else000010010010 when T=92 Else000010010011 when T=93 Else000010010100 when T=94 Else000010010101 when T=95 Else000010010110 when T=96 Else000010010111 when T=97 Else000010011000 when T=98 Else000010011001 when T=99 Else000100000000 when T=100 ElseEnd Block Conversion。free_counter:block 自由計數(shù)器amp。產(chǎn)生掃描信號signal q:std_logic_vector(15 downto 0)。beginprocess(cp) 計數(shù)器計數(shù)begin if cp39。event and cp=39。139。 then q=q+1。 end if。end process。st=q(15 downto 14)。selout=010 when st=0 else 001 when st=1 else 000 when st=2 else 111。sel=110 when st=0 else 掃描信號 001 when st=1 else 000 when st=2 else 111。end block free_counter。select_bcd:blockbeginnum= value(3 downto 0) when st=0 else value(7 downto 4) when st=1 else value(11 downto 8)。end block select_bcd。seven_segment:blockbeginseg=0111111 when num=0 else BCD轉(zhuǎn)換成七段顯示器碼 0111111 when num=1 else 0111111 when num=2 else 0111111 when num=3 else 0111111 when num=4 else 0111111 when num=5 else 0111111 when num=6 else 0111111 when num=7 else 0111111 when num=8 else0111111 when num=9 else 1000000。end block seven_segment。end a。321