实验八 交通灯控制器设计.docx
文本预览下载声明
PAGE \* MERGEFORMAT6
实验八 交通灯控制器设计实验报告
一、实验要求
1、GW48实验箱;
2、设计十字路口交通灯控制器,并进行编译、仿真、下载;
3、总结实验步骤和实验结果。
二、实验内容
设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间。当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆禁止通行,红灯全亮,时钟停止计时。当特殊运行状态结束后,管理系统恢复原来的状态,继续正常运行。
/*信号定义与说明:
CLK:为同步时钟;
EN:使能信号,为1的话,则控制器开始工作;
LAMPA:控制A 方向四盏灯的亮灭;其中,LAMPA0~LAMPA3,分别控制A方向的左拐灯、绿灯、黄灯和红灯;
LAMPB:控制B方向四盏灯的亮灭;其中,LAMPB0~LAMPB3,分别控制B方向的左拐灯、绿灯、黄灯和红灯;
ACOUNT:用于A方向灯的时间显示,8位,可驱动两个数码管;
BCOUNT:用于B方向灯的时间显示,8位,可驱动两个数码管。*/
module zdw8(CLK,EN,LAMPA,LAMPB,ACOUNT,BCOUNT);
output [7:0] ACOUNT,BCOUNT;
output [3:0] LAMPA,LAMPB;
input CLK,EN;
reg[7:0] numa,numb;
regtempa,tempb;
reg[2:0] counta,countb;
reg[7:0] ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft;
reg[3:0] LAMPA,LAMPB;
always @(EN)
if(!EN)
begin //she zhigezhongdeng de yuzhishu
ared=8h55;//55 minus
ayellow=8h5;//5 minus
agreen=8h40;//40 minus
aleft=8h15;//15 minus
bred=8h65;//65 minus
byellow=8h5;//5 minus
bleft=8h15;//15 minus
bgreen=8h30;//30 minus
end
assign ACOUNT=numa;
assign BCOUNT=numb;
always@(posedge CLK) //kongzhi A fangxiang de sizhongdeng
begin
if(EN)
begin
if(!tempa)
begin
tempa=1;
case(counta) //kongzhiliangdengshunxu
0:beginnuma=agreen;LAMPA=2;counta=1;end
1:beginnuma=ayellow;LAMPA=4;counta=2;end
2:beginnuma=aleft;LAMPA=1;counta=3;end
3:beginnuma=ayellow;LAMPA=4;counta=4;end
4:beginnuma=ared;LAMPA=8;counta=0;end
default:LAMPA=8;
endcase
end
else begin //daojishi
if(numa1)
if(numa[3:0]==0) begin
numa[3:0]=4b1001;
numa[7:4]=numa[7:4]-1;
end
elsenuma[3:0]=numa[3:0]-1;
if(numa==2) tempa=0;
end
end
else begin
LAMPA=4b1000;
counta=0;tempa=0;
end
end
always @(posedge CLK) //kongzhi B fang xiang de sizhongdeng
begin
if(EN)
begin
if(!tempb)
begin
tempb=1;
case(countb) //kongzhiliangdengshunxu
0:begin numb=bred;LAMPB=8
显示全部