EDA课设交通灯注释程序.docx
- 文档编号:1046061
- 上传时间:2022-10-16
- 格式:DOCX
- 页数:11
- 大小:22.42KB
EDA课设交通灯注释程序.docx
《EDA课设交通灯注释程序.docx》由会员分享,可在线阅读,更多相关《EDA课设交通灯注释程序.docx(11页珍藏版)》请在冰豆网上搜索。
EDA课设交通灯注释程序
--交通灯程序注释
--一、交通灯的功能是实现一个交叉口的通车控制,交通灯显示有以下4种状态:
--主干道绿灯,支干道红灯;
--主干道绿灯,支干道黄灯;
--主干道红灯,支干道绿灯;
--主干道黄灯,支干道绿灯。
--支干道没车时,主干道一直亮绿灯;主干道没车时,主干道和支干道交替亮绿灯;主干道和支干道都有车时同样交替亮红绿灯。
在红绿灯交替时亮5s黄灯。
--cnt04s.vhd(4秒倒计时模块)
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycnt04sis--定义实体名
port(clk,en04m,en04b:
instd_logic;--(端口说明,输入类型)
dout4:
outstd_logic_vector(7downto0));--(端口说明,输入类型)
endentitycnt04s;
architectureartofcnt04sis--结构体定义
signalcnt2b:
std_logic_vector(1downto0);--定义信号
begin
process(clk,en04m,en04b)is--(EN代表允许计数信号)
begin
if(clk'eventandclk='1')then
ifen04m='1'thencnt2b<=cnt2b+1;--当有始终信号前提下,EN为1,开始计数
elsifen04b='1'thencnt2b<=cnt2b+1;--当有始终信号前提下,EN为1,开始计数
elsifen04b='0'thencnt2b<=cnt2b-cnt2b-1;--不计数,保持不变
endif;
endif;
endprocess;--结束进程
process(cnt2b)is
begin
casecnt2bis
when"00"=>dout4<="00000100";--计数器计数对应在数码管上的显示数字4
when"01"=>dout4<="00000011";--计数器计数对应在数码管上的显示数字3
when"10"=>dout4<="00000010";--计数器计数对应在数码管上的显示数字2
when"11"=>dout4<="00000001";--计数器计数对应在数码管上的显示数字1
whenothers=>dout4<="00000000";--计数器计数对应在数码管上的显示数字0
endcase;
endprocess;
endarchitectureart;--结束结构体
--cnt20s.vhd(20s倒计时模块)
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycnt20sis
port(sb,sm,clk,en20:
instd_logic;
dout20m,dout20b:
outstd_logic_vector(7downto0));
endentitycnt20s;
architectureartofcnt20sis
signalcnt5b:
std_logic_vector(4downto0);
begin
process(sb,sm,clk,en20,cnt5b)is
begin
if(sb='0'orsm='0')thencnt5b<=cnt5b-cnt5b-1;
elsif(clk'eventandclk='1')then
ifen20='1'thencnt5b<=cnt5b+1;
elsifen20='0'thencnt5b<=cnt5b-cnt5b-1;
endif;
endif;
endprocess;
process(cnt5b)is
begin
casecnt5bis--数码管显示电路程序
when"00000"=>dout20m<="00100000";dout20b<="00100100";
when"00001"=>dout20m<="00011001";dout20b<="00100011";
when"00010"=>dout20m<="00011000";dout20b<="00100010";
when"00011"=>dout20m<="00010111";dout20b<="00100001";
when"00100"=>dout20m<="00010110";dout20b<="00100000";
when"00101"=>dout20m<="00010101";dout20b<="00011001";
when"00110"=>dout20m<="00010100";dout20b<="00011000";
when"00111"=>dout20m<="00010011";dout20b<="00010111";
when"01000"=>dout20m<="00010010";dout20b<="00010110";
when"01001"=>dout20m<="00010001";dout20b<="00010101";
when"01010"=>dout20m<="00010000";dout20b<="00010100";
when"01011"=>dout20m<="00001001";dout20b<="00010011";
when"01100"=>dout20m<="00001000";dout20b<="00010010";
when"01101"=>dout20m<="00000111";dout20b<="00010001";
when"01110"=>dout20m<="00000110";dout20b<="00010000";
when"01111"=>dout20m<="00000101";dout20b<="00001001";
when"10000"=>dout20m<="00000100";dout20b<="00001000";
when"10001"=>dout20m<="00000011";dout20b<="00000111";
when"10010"=>dout20m<="00000010";dout20b<="00000110";
when"10011"=>dout20m<="00000001";dout20b<="00000101";
whenothers=>dout20m<="00000000";dout20b<="00000000";
endcase;
endprocess;
endarchitectureart;
--cnt40s.vhd(40秒倒计时模块)
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitycnt40sis--(定义实体,实体名为cn40s,40秒计数器)
port(sb,clk,en40:
instd_logic;--(端口说明,输入类型)
dout40m,dout40b:
outstd_logic_vector(7downto0));--(端口说明,输出类型)
endentitycnt40s;--(实体说明结束)
architectureartofcnt40sis--(实体的结构体名称以及所属关系)
signalcnt6b:
std_logic_vector(5downto0);--(6个数对应以下信号)--义信号)
begin
process(sb,clk,en40,cnt6b)is
begin
ifsb='0'thencnt6b<=cnt6b-cnt6b-1;
elsif(clk'eventandclk='1')then
ifen40='1'thencnt6b<=cnt6b+1;
elsifen40='0'thencnt6b<=cnt6b-cnt6b-1;
endif;
endif;
endprocess;
process(cnt6b)is
begin
casecnt6bis--数码管显示电路程序
when"000000"=>dout40m<="01000000";dout40b<="01000100";--(44)
when"000001"=>dout40m<="00111001";dout40b<="01000011";
when"000010"=>dout40m<="00111000";dout40b<="01000010";
when"000011"=>dout40m<="00110111";dout40b<="01000001";
when"000100"=>dout40m<="00110110";dout40b<="01000000";
when"000101"=>dout40m<="00110101";dout40b<="00111001";
when"000110"=>dout40m<="00110100";dout40b<="00111000";
when"000111"=>dout40m<="00110011";dout40b<="00110111";
when"001000"=>dout40m<="00110010";dout40b<="00110110";
when"001001"=>dout40m<="00110001";dout40b<="00110101";
when"001010"=>dout40m<="00110000";dout40b<="00110100";
when"001011"=>dout40m<="00101001";dout40b<="00110011";
when"001100"=>dout40m<="00101000";dout40b<="00110010";
when"001101"=>dout40m<="00100111";dout40b<="00110001";
when"001110"=>dout40m<="00100110";dout40b<="00110000";
when"001111"=>dout40m<="00100101";dout40b<="00101001";
when"010000"=>dout40m<="00100100";dout40b<="00101000";
when"010001"=>dout40m<="00100011";dout40b<="00100111";
when"010010"=>dout40m<="00100010";dout40b<="00100110";
when"010
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 交通灯 注释 程序