【正文】
2):=t(15 DOWNTO 12)+1。ELSE t(15 DOWNTO 12):=0000。END IF。END IF。END IF。END IF。 END IF。 ELSE t:=(others=39。039。) 。END IF。END IF。count=t。END PROCESS。END block。車輛與動(dòng)力工程學(xué)院課程設(shè)計(jì)說明書PROCESS(clkk)BEGINIF clkk39。EVENT AND clkk=39。039。 THEN d2=count。END IF。END PROCESS。PROCESS(clk,rst)VARIABLE t:integer range 0 to 79999:=0。BEGINIF rst=39。039。 THEN t:=0。ELSIF rising_edge(clk) THEN IF t=79999 THEN clkkk=not clkkk。t:=0。ELSE t:=t+1。END IF。END IF。END PROCESS。disp:block 轉(zhuǎn)速顯示模塊BEGINPROCESS(clkkk,d2,rst)VARIABLE t:STD_LOGIC_VECTOR(1 DOWNTO 0):=00。BEGINIF rst=39。039。 THEN t:=00。shift=1111。data_ledin=1111。ELSIF rising_edge(clkkk) THEN case t ISWHEN 00=shift=1110。 data_ledin=d2(3 DOWNTO 0)。 t:=t+1。WHEN 01=shift=1101。 data_ledin=d2(7 DOWNTO 4)。 t:=t+1。WHEN 10=shift=1011。 data_ledin=d2(11 DOWNTO 8)。 t:=t+1。WHEN 11=shift=0111。 data_ledin=d2(15 DOWNTO 12)。 t:=00。WHEN others=shift=1111。t:=00。END case。END IF。END PROCESS。END block。車輛與動(dòng)力工程學(xué)院課程設(shè)計(jì)說明書yima:blockBEGINPROCESS (data_ledin) 譯碼 BEGIN case data_ledin IS WHEN0000=data_led=11000000。0 WHEN0001=data_led=11111001。1WHEN0010=data_led=10100100。2WHEN0011=data_led=10110000。3WHEN0100=data_led=10011001。4WHEN0101=data_led=10010010。5WHEN0110=data_led=10000010。6WHEN0111=data_led=11111000。7WHEN1000=data_led=10000000。8WHEN1001=data_led=10010000。9WHEN others=data_led=11111111。No SIGNAL。 END case。END PROCESS。END block。END Behavioral。圖 車輛與動(dòng)力工程學(xué)院課程設(shè)計(jì)說明書圖 /**/變頻模塊LIBRARY IEEE。USE 。USE 。USE 。ENTITY bianpin IS PORT (rst,clk,sub,add:in STD_LOGIC。 復(fù)位信號(hào)/系統(tǒng)時(shí)鐘/減速輸入/加速輸入 count:out STD_LOGIC )。 已變頻率輸出END bianpin。ARCHITECTURE Behavioral OF bianpin ISSIGNAL con:integer range 1 to 100:=50。SIGNAL clkk:STD_LOGIC:=39。039。SIGNAL t1:integer range 0 to 1100。BEGINPROCESS(clkk,add,sub,rst) 加減鍵處理模塊VARIABLE con1:integer range 1 to 100:=50。BEGINIF rst=39。039。 THEN con1:=1。ELSIF clkk39。EVENT AND clkk=39。139。 THEN IF add=39。039。 THEN IF con1=99 THEN con1:=con1+1。END IF。ELSIF sub=39。039。 THEN IF con1=2 THEN con1:=con11。END IF。END IF。END IF。con=con1。END PROCESS。車輛與動(dòng)力工程學(xué)院課程設(shè)計(jì)說明書PROCESS(clk,rst) 產(chǎn)生按鍵檢測(cè)頻率VARIABLE t:integer range 0 to 1499999。BEGINIF rst=39。039。 THEN t:=0。ELSIF clk39。EVENT AND clk=39。139。 THEN IF t=1499999 THEN clkk=not clkk。t:=0。ELSE t:=t+1。END IF。END IF。END PROCESS。PROCESS(clk,con,t1,rst) 變頻模塊BEGINIF rst=39。039。 THEN t1=0。ELSIF rising_edge(clk) THEN IF t1=1000 THEN t1=0。count=39。039。 ELSIF t1=con THEN count=39。139。t1=t1+con。 ELSE count=39。039。t1=t1+con。 END IF。 END IF。END PROCESS。END Behavioral。圖 車輛與動(dòng)力工程學(xué)院課程設(shè)計(jì)說明書圖 /**/按鍵去抖模塊LIBRARY IEEE。USE 。USE 。USE 。ENTITY anjianqd IS PORT (clk,key:in STD_LOGIC。系統(tǒng)時(shí)鐘/輸入按鍵 keyo:out STD_LOGIC )。輸出按鍵END anjianqd。ARCHITECTURE Behavioral OF anjianqd ISSIGNAL clkk,dly,ndly,dIFf:STD_LOGIC。BEGINPROCESS(clk)VARIABLE t:integer range 1 to 256000。BEGINIF clk39。EVENT AND clk=39。139。 THEN IF t=2 THEN t:=1。 clkk=39。139。ELSE t:=t