欢迎来到天天文库
浏览记录
ID:16244866
大小:41.50 KB
页数:5页
时间:2018-08-08
《交通灯eda课程设计代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytraffic_ctr1ISGENERIC(green1_cnt:integer:=40;//定义主通道绿灯亮的时间,设为40秒yellow1_cnt:integer:=5;//定义主通道黄灯亮的时间,设为5秒left1_cnt:integer:=15;//定义主通道左拐灯亮的时间,设为15秒green2_cnt:integer:=30;//定义支通道绿灯亮的时间
2、,设为30秒yellow2_cnt:integer:=5;//定义支通道黄灯亮的时间,设为5秒left2_cnt:integer:=15;//定义支通道黄灯亮的时间,设为15秒);PORT(clk:insts_logic;//时钟信号rst:insts_logic;//复位信号lgt1_red:outsts_logic;//主通道灯控制信号lgt1_yellow:outsts_logic;lgt1_green:outsts_logic;lgt1_left:outsts_logic;lgt2_red:outsts_
3、logic;//支通道灯控制信号lgt2_yellow:outsts_logic;lgt2_green:outsts_logic;lgt2_left:outsts_logic;);ENDENTITYtraffic_ctr1;ARCHITECTURErt1OFtraffic_ctr1IS//结构体定义TYPEstatesIS(st0,st1,st2,st3,st4,st5,st6,st7);SIGNALstate:states:=st0;SIGNALcnt:integerrange0to65:=1;//定义时钟SI
4、GNALcnt_enb:std_logic:='0';beginprocess(clk,rst)BEGINIF(rst='1')THEN//复位信号为高电平state<=st0;cnt<=1;ELSIF(rising_edge(clk))THENIF(cnt_enb='1')THENcnt<=cnt+1;ELSECNT<=1;ENDIF;CASEstateIS//状态转换WHENST0=>IF(cnt=green1_cnt)THENstate<=st1;ELSEstate<=st0;ENDIF;WHENST1=>
5、IF(cnt=yellow1_cnt)THENstate<=st2;ELSEstate<=st1;ENDIF;WHENST2=>IF(cnt=left1_cnt)THENstate<=st3;ELSEstate<=st2;ENDIF;WHENST3=>IF(cnt=yellow1_cnt)THENstate<=st4;ELSEstate<=st3;ENDIF;WHENST4=>IF(cnt=green2_cnt)THENstate<=st5;ELSEstate<=st4;ENDIF;WHENST5=>IF(cnt
6、=yellow2_cnt)THENstate<=st6;ELSEstate<=st5;ENDIF;WHENST6=>IF(cnt=left2_cnt)THENstate<=st7;ELSEstate<=st6;ENDIF;WHENST7=>IF(cnt=yellow2_cnt)THENstate<=st0;ELSEstate<=st7;ENDIF;ENDCASE;ENDIF;ENDPROCESS;PROCESS(state)BEGINCASEstateISWHENst0=>//主道绿灯亮,支道红灯亮lgt1_re
7、d<='0';lgt1_yellow<='0';lgt1_left<='0';lgt1_green<='1';lgt2_red<='1';lgt2_yellow<='0';lgt2_left<='0';lgt2_green<='0';cnt_enb<='1';IF(cnt=green1_cnt)THENcnt_enb<='0';ENDIF;WHENst1=>//主道黄灯亮,支道红灯亮lgt1_red<='0';lgt1_yellow<='1';lgt1_left<='0';lgt1_green<='0';lgt2
8、_red<='1';lgt2_yellow<='0';lgt2_left<='0';lgt2_green<='0';cnt_enb<='1';IF(cnt=yellow1_cnt)THENcnt_enb<='0';ENDIF;WHENst2=>//主道左拐灯亮,支道红灯亮lgt1_red<='0';lgt1_yellow<='0';lgt1_left<='1';lgt1_
此文档下载收益归作者所有