基于状态机的交通灯控制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

交通灯状态机程序:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;USEIEEE.std_logic_arith.ALL;ENTITYtraffic_light_dianlianISPORT(clk:INstd_logic;reset:INstd_logic;rl,gl,yl:OUTstd_logic;counter_time:OUTstd_logic_vector(3DOWNTO0));ENDENTITY;ARCHITECTUREnanOFtraffic_light_dianlian_32ISSIGNALmtime:integerRANGE0TO9;BEGINPROCESS(clk,reset)TYPEstate_typeIS(R,G,Y);VARIABLEstate:state_type;BEGINIFreset='1'THENstate:=R;rl='1';gl='0';yl='0';mtime=9;counter_time=conv_std_logic_vector(mtime,4);ELSIFclk'eventandclk='1'THENCASEstateISWHENR=rl='1';gl='0';yl='0';mtime=mtime-1;counter_time=conv_std_logic_vector(mtime,4);IF(mtime=1)THENstate:=G;mtime=6;ELSEstate:=R;ENDIF;WHENG=gl='1';rl='0';yl='0';mtime=mtime-1;counter_time=conv_std_logic_vector(mtime,4);IF(mtime=1)THENstate:=Y;mtime=3;ELSEstate:=G;ENDIF;WHENY=yl='1';gl='0';rl='0';mtime=mtime-1;counter_time=conv_std_logic_vector(mtime,4);IF(mtime=1)THENstate:=R;mtime=9;ELSEstate:=Y;ENDIF;ENDCASE;ENDIF;ENDPROCESS;ENDnan;数码管显示:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;ENTITYledISPORT(counter_time:INstd_logic_vector(3DOWNTO0);EN:INstd_logic;seven_seg_input:OUTstd_logic_vector(7DOWNTO0));ENDled;ARCHITECTUREled_archOFledISSIGNALcounter_time_input:std_logic_vector(4DOWNTO0);SIGNALseven_seg_input_reg:std_logic_vector(7DOWNTO0);BEGINcounter_time_input=EN&counter_time;display:PROCESS(counter_time_input,seven_seg_input_reg)BEGINCASEcounter_time_inputISWHEN00000=seven_seg_input_reg=00000010;WHEN00001=seven_seg_input_reg=10011110;WHEN00010=seven_seg_input_reg=00100100;WHEN00011=seven_seg_input_reg=00001100;WHEN00100=seven_seg_input_reg=10011000;WHEN00101=seven_seg_input_reg=01001000;WHEN00110=seven_seg_input_reg=01000000;WHEN00111=seven_seg_input_reg=00011110;WHEN01000=seven_seg_input_reg=00000000;WHEN01001=seven_seg_input_reg=00001000;WHENOTHERS=seven_seg_input_reg=11111111;ENDCASE;seven_seg_input=seven_seg_input_reg;ENDPROCESS;ENDled_arch;分频器:LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;ENTITYfrequenciesISPORT(clk:INstd_logic;q:OUTstd_logic);ENDfrequencies;ARCHITECTUREbehavOFfrequenciesISBEGINPROCESS(clk)VARIABLEtime:integerRANGE0TO50000000;BEGINIFrising_edge(clk)THENtime:=time+1;IFtime=25000000THENq='1';ELSEIFtime50000000THENq='0';elsetime:=0;ENDIF;ENDIF;ENDIF;ENDPROCESS;ENDBEHAV;

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功