数电课程设计题目与要求交通灯控制电路设计.docx
- 文档编号:3183823
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:44
- 大小:691.10KB
数电课程设计题目与要求交通灯控制电路设计.docx
《数电课程设计题目与要求交通灯控制电路设计.docx》由会员分享,可在线阅读,更多相关《数电课程设计题目与要求交通灯控制电路设计.docx(44页珍藏版)》请在冰点文库上搜索。
数电课程设计题目与要求交通灯控制电路设计
2013—2014学年第三学期
《数字电子技术课程设计》任务书
(适用专业:
电气12级、自动化12级、勘查(卓越)12级)
专业班级电气五班
姓名张佳
学号11053530
开课系室电工电子学教学中心
设计日期2014年7月4日~8日
一、设计任务及原理
二、具体要求
三、输入输出资源说明…………………………………………………………………………….
四、顶层设计结果………………………………………………………………………………….
五、各子模块设计
5.1时钟分频模块
5.2倒计时模块
5.3交通灯控制模块
5.4点阵显示模块
六、仿真测试结果
七、实习总结与心得
数字电子技术课程设计题目:
交通灯控制电路设计
一、设计任务及原理:
交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂。
要完成本实验,首先必须了解交通路灯的燃灭规律。
本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各四个。
依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。
其交通灯的燃灭规律为:
东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯闪烁,红灯亮(表示左转弯),再延时一段时间后,黄灯开始闪烁。
闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯闪烁,红灯亮(表示左转弯),再延时一段时间后,黄灯开始闪烁。
闪烁若干次后,再切换到东西路口方向,重复上述过程。
在实验中使用4个七段码管中的任意两个数码管显示时间。
东西路和南北路的通车时间均设定为20s(其中,绿灯亮时间为10s,绿灯闪烁时间为5s,黄灯闪烁时间为5s)。
数码管的时间总是显示为20、19、18、17……2、1、0、20、19、18……。
在显示时间小于等于5秒的时候,通车方向的黄灯闪烁。
在东西向绿灯期间,点阵显示自己的姓名;在南北向绿灯期间,点阵显示自己的学号后3位。
扩展要求:
1、利用一个开关将0-20s扩展为0-30s(30-10s之间绿灯亮,其他与基本要求相同);
2、增加交警控制模块:
用一个开关切换自动模式(上述情况属于自动模式)和人工模式(交警控制模式):
用4个开关分别实现东西向通行(东西向绿灯亮,南北向红灯亮,没有时间限制),实现南北向通行(南北向绿灯亮,东西向红灯亮,没有时间限制),实现东西向左转弯(东西向绿灯闪烁,东西向红灯亮,南北向红灯亮,没有时间限制),实现南北向通行(南北向绿灯闪烁,南北向红灯亮,东西向红灯亮,没有时间限制)。
二、具体要求:
本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意两个来显示。
系统时钟选择时钟模块的50MHz时钟,黄灯和绿灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz脉冲,即每1s中递减一次。
在东西向绿灯期间,点阵显示自己的姓名;在南北向绿灯期间,点阵显示自己的学号后3位。
显示方式:
1秒显示一个汉字或者一个数字(汉字和数字均静止不动,即不循环),然后全暗1秒,然后再显示一个汉字或者一个数字,以此类推。
实验箱中用到的数字时钟模块、按键开关、数码管、点阵与FPGA的接口电路,以及数字时钟源、按键开关、数码管、点阵与FPGA的管脚连接在以前的实验中都做了详细说明,这里不再赘述。
交通灯模块原理与LED灯模块的电路原理一致,当有高电平输入时LED灯就会被点亮,反之不亮。
只是LED发出的光有颜色之分。
其与FPGA的管脚连接如下表所示:
EDA/SOPC开发平台
交通信号灯模块
R1纵向
D3
R2横向
E3
Y1纵向
D4
Y2横向
E4
G1纵向
D5
G2横向
F3
信号名称
EP2C35IO接脚
信号名称
EP2C35IO接脚
EDA/SOPC开发平台
16*16点阵显示模块
C0
P19
R0
L8
C1
P4
R1
J4
C2
R6
R2
H6
C3
R7
R3
H5
C4
R8
R4
H4
C5
J3
R5
H3
C6
W18
R6
G7
C7
R11
R7
G6
C8
U10
R8
P6
C9
U9
R9
P5
C10
U8
R10
P3
C11
R16
R11
N6
C12
R15
R12
N4
C13
R14
R13
N3
C14
J6
R14
M6
C15
R4
R15
M5
CLK
L1
系统时钟输入端口,50MHz
7SEG-DISPLAY
DS1
DS2
DS3
DS4
A
N4
A
B7
A
H4
A
D11
B
N3
B
C14
B
H3
B
G5
C
M6
C
A7
C
G7
C
G3
D
N6
D
D4
D
H6
D
B6
E
P3
E
D5
E
H5
E
C13
F
P6
F
E3
F
L8
F
D14
G
P5
G
E4
G
J4
G
A6
H
M5
H
D3
H
G6
H
F4
EDA/SOPC开发平台
12位拨动开关模块
K1
E15
K7
A16
K2
B14
K8
F13
K3
F9
K9
F14
K4
B15
K10
A17
K5
A15
K11
H7
K6
F11
K12
A18
核心板模块
七段码LED
a
T11
e
V9
b
T12
f
V11
c
T16
g
U13
d
J14
dp
U14
三、输入输出资源说明:
1、外部输入脉冲信号时钟源CP(50MHz),经适当分频后供计数器使用。
2、输出2组显示译码信号(每组7个输出端),分别接到外部的两个七段数码管M1、M2上,M1和M2分别显示倒计时的十位和个位。
3、输出6个高低电平信号,分别接到外部的6个指示纵向、横向的LED灯。
(输出高电平时,对应的LED灯亮)
其具体框图如下:
图1交通灯控制电路结构框图
根据如上说明,本设计的主要任务和设计要求是:
1、按照现代数字系统的Top-Down模块化设计方法,提出交通灯控制电路设计系统的整体设计方案,并进行正确的功能划分,分别提出并实现控制器、计数器、输出译码、点阵显示等模块化子系统的设计方案。
2、在QuartusⅡ的EDA设计环境中,完成系统的顶层设计、各子系统的模块化设计。
分别完成各个基于Verilog语言实现的子模块(包括控制器电路、计数器电路、输出译码电路、点阵显示电路)的逻辑功能仿真。
最后对顶层设计进行功能仿真。
3、在2步的基础上,用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。
观察实验结果是否与自己的编程思想一致。
四、顶层设计结果
总体设计结果及线路连接:
开关功能注解:
K1……………20s/30s计时转换;K2……………自动/人工模式转换;
K3……………东西向通行;K4……………东西向左转弯;
K5……………南北向通行;K6……………东西向左转弯;
顶层设计仿真源文件及波形:
K1=0(即20s计时),K2=0(即自动模式下):
K1=0(即20s计时),K2=(即手动模式下):
a.K3=1(即东西方向通行)
b.K4=1(即东西方向左转)
c.K5=1(即南北方向通行)
d.K6=1(即南北方向左转)
五、各子模块设计
5.1时钟分频模块
(1)50MHz分1Hz:
modulefenpin1(clk_in,clk_out);
outputclk_out;
inputclk_in;
integercnt;
initial
cnt=0;
regclk_out;
always@(posedgeclk_in)
begin
if(cnt<25000000)
begin
clk_out=0;
cnt<=cnt+1;
end
elseif(cnt<50000000)
begin
clk_out=1;
cnt<=cnt+1;
end
else
begin
cnt<=0;
end
end
endmodule
生成模块:
仿真源文件及波形(50Hz分1Hz模拟):
(2)50MHz分2Hz分频模块:
modulefenpin2(clk_in,clk_out);
inputclk_in;
outputclk_out;
regclk_out;
integercnt;
initialcnt=0;
always@(posedgeclk_in)
begin
if(cnt<12500000)
begin
clk_out=0;
cnt<=cnt+1;
end
elseif(cnt<25000000)
begin
clk_out=1;
cnt<=cnt+1;
end
else
begin
cnt<=0;
end
end
endmodule
生成模块:
仿真源文件及波形(50Hz分2Hz模拟):
(3)50MHz分1000Hz分频模块:
modulefenpin1k(clk_in,clk_out);
outputclk_out;
inputclk_in;
integercnt;
initial
cnt=0;
regclk_out;
always@(posedgeclk_in)
begin
if(cnt<25000)
begin
clk_out=0;
cnt<=cnt+1;
end
elseif(cnt<50000)
begin
clk_out=1;
cnt<=cnt+1;
end
else
begin
cnt<=0;
end
end
endmodule
生成模块:
仿真源文件及波形(50Hz分10Hz模拟):
5.2倒计时模块
moduledaojishi(clk1,k1,seg1,seg2,fangxiang,shijian);
inputclk1,k1;
output[6:
0]seg1,seg2;
reg[6:
0]seg1,seg2;
outputfangxiang;
regfangxiang;
output[4:
0]shijian;
reg[4:
0]shijian;
parameterNUM1=20;
parameterNUM2=30;
integercnt;
initial
begin
cnt=0;
fangxiang=1;
end
always@(posedgeclk1)
begin
if(k1==0)
begin
if(cnt>0)
begin
cnt<=cnt-1;
end
else
begin
cnt<=NUM1;
fangxiang<=!
fangxiang;
end
shijian<=cnt;
end
else
begin
if(cnt>0)
begin
cnt<=cnt-1;
end
else
begin
cnt<=NUM2;
fangxiang=!
fangxiang;
end
shijian<=cnt;
end
case(cnt%10)
0:
seg1=7'b0000001;
1:
seg1=7'b1001111;
2:
seg1=7'b0010010;
3:
seg1=7'b0000110;
4:
seg1=7'b1001100;
5:
seg1=7'b0100100;
6:
seg1=7'b1100000;
7:
seg1=7'b0001111;
8:
seg1=7'b0000000;
9:
seg1=7'b0001100;
endcase
case(cnt/10)
0:
seg2=7'b0000001;
1:
seg2=7'b1001111;
2:
seg2=7'b0010010;
3:
seg2=7'b0000110;
endcase
end
endmodule
生成模块:
仿真源文件及波形
:
K1==0,即20s计时模式
仿真源文件及波形
:
K1==1,即30s计时模式
5.3交通灯控制模块
modulecontrol(clk1k,clk2,r1,y1,g1,r2,y2,g2,fangxiang,shijian,k2,k,p);
inputclk1k,clk2,fangxiang,k2;
input[4:
0]shijian;
input[3:
0]k;
outputr1,y1,g1,r2,y2,g2,p;
regr1,y1,g1,r2,y2,g2,p;
always@(k2)
begin
if(k2==0)//自动控制
begin
if(fangxiang==0&&shijian>5'd10)//东西方向通车
begin
g1=1;g2=0;r1=0;r2=1;y1=0;y2=0;
end
elseif(fangxiang==0&&shijian>5'd5)//东西方向左转
begin
g1=clk2;g2=0;r1=1;r2=1;y1=0;y2=0;
end
elseif(fangxiang==0)//东西方向黄灯闪烁
begin
g1=0;g2=0;r1=0;r2=1;y2=0;
y1=clk2;
end
elseif(fangxiang==1&&shijian>5'd10)//南北方向通车
begin
g1=0;g2=1;r1=1;r2=0;y1=0;y2=0;
end
elseif(fangxiang==1&&shijian>5'd5)//南北方向左转
begin
g2=clk2;g1=0;r1=1;r2=1;y1=0;y2=0;
end
elseif(fangxiang==1)//南北方向黄灯闪烁
begin
g1=0;g2=0;r1=1;r2=0;y1=0;y2=clk2;
end
end
else//手动控制
begin
g1=0;g2=0;r1=0;r2=0;y1=0;y2=0;
case(k)
4'b1000:
beging1=1;g2=0;r1=0;r2=1;y1=0;y2=0;p=0;end//welv
4'b0100:
beging1=clk2;g2=0;r1=1;r2=1;y1=0;y2=0;end//wels
4'b0010:
beging1=0;g2=1;r1=1;r2=0;y1=0;y2=0;p=1;end//nslv
4'b0001:
beging2=clk2;g1=0;r1=1;r2=1;y1=0;y2=0;end//nsls
endcase
end
end
endmodule
生成模块:
仿真源文件及波形
:
(东西方向通行)
仿真源文件及波形
:
(东西方向左转)
仿真源文件及波形
:
(东西方向黄灯闪)
仿真源文件及波形
:
(南北方向通行)
仿真源文件及波形
:
(南北方向左转)
仿真源文件及波形
:
(南北方向黄灯闪)
5.4点阵显示模块
modulexianshi(clk1,clk1k,fangxiang,shijian,r,c,k0,p);
inputclk1,clk1k,fangxiang,k0,p;
input[4:
0]shijian;
output[15:
0]r,c;
reg[15:
0]r,c;
integercnt1k,cnt1;
initial
begin
cnt1k=0;cnt1=0;
end
always@(posedgeclk1)
begin
if(cnt1<120)
begin
cnt1=cnt1+1;
end
else
begin
cnt1=0;
end
end
always@(posedgeclk1k)
begin
if(cnt1k<16)
begin
cnt1k=cnt1k+1;
///////////////////////////////////////////////东西方向显示姓名//////////////////////////////////////////////
if((k0==0&&fangxiang==0&&shijian>=5'd10)||(k0==1&&p==0))
begin
///////////////////////////////张////////////////////////////////////////////////////////////////
if(cnt1%2==0)
begin
if((cnt1/2)%2==0)
begin
if(cnt1k%16==0)
begin
c=16'b0000000100000000;//hang
r=16'b0111111111111111;//lie
end
elseif(cnt1k%16==1)
begin
c=16'b0111100100001000;
r=16'b1011111111111111;
end
elseif(cnt1k%16==2)
begin
c=16'b0000100100010000;
r=16'b1101111111111111;
end
elseif(cnt1k%16==3)
begin
c=16'b0000100100100000;
r=16'b1110111111111111;
end
elseif(cnt1k%16==4)
begin
c=16'b0111100101000000;
r=16'b1111011111111111;
end
elseif(cnt1k%16==5)
begin
c=16'b0100000100000000;
r=16'b1111101111111111;
end
elseif(cnt1k%16==6)
begin
c=16'b0100011111111100;
r=16'b1111110111111111;
end
elseif(cnt1k%16==7)
begin
c=16'b0100000100100000;
r=16'b1111111011111111;
end
elseif(cnt1k%16==8)
begin
c=16'b0111100100100000;
r=16'b1111111101111111;
end
elseif(cnt1k%16==9)
begin
c=16'b0000100100010000;
r=16'b1111111110111111;
end
elseif(cnt1k%16==10)
begin
c=16'b0000100100010000;
r=16'b1111111111011111;
end
elseif(cnt1k%16==11)
begin
c=16'b0000100101001000;
r=16'b1111111111101111;
end
elseif(cnt1k%16==12)
begin
c=16'b0000100110000100;
r=16'b1111111111110111;
end
elseif(cnt1k%16==13)
begin
c=16'b0011000100000000;
r=16'b1111111111111011;
end
elseif(cnt1k%16==14)
begin
c=16'b0000000000000000;
r=16'b1111111111111101;
end
elseif(cnt1k%16==15)
begin
c=16'b0000000000000000;
r=16'b1111111111111110;
end
end
else
begin
////////////////////////////////////////佳////////////////////////////////////////////////////////
if(cnt1k%16==0)
begin
c=16'b0000100001000000;//hang
r=16'b0111111111111111;//lie
end
elseif(cnt1k%16==1)
begin
c=16'b0000100001000000;
r=16'b1011111111111111;
end
elseif(cnt1k%16==2)
begin
c=16'b0000101111111000;
r=16'b1101111111111111;
end
elseif(cnt1k%16==3)
begin
c=16'b0001000001000000;
r=16'b1110111111111111;
end
elseif(cnt1k%16==4)
begin
c=16'b0001000001000000;
r=16'b1111011111111111;
end
elseif(cnt1k%16==5)
begin
c=16'b0011011111111100;
r=16'b1111101111111111;
end
elseif(cnt1k%16==6)
begin
c=16'b0101000000000000;
r=16'b1111110111111111;
end
elseif(cnt1k%16==7)
begin
c=16'b0001000001000000;
r=16'b1111111011111111;
end
elseif(cnt1k%16==8)
begin
c=16'b0001000001000000;
r=16'b1111111101111111;
end
elseif(cnt1k%16==9)
begin
c=16'b0001001111111000;
r=16'b1111111110111111;
end
elseif(cnt1k%16==10)
begin
c=16'b0001000001000000;
r=16'b1111111111011111;
end
elseif(cnt1k%16
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 题目 要求 交通灯 控制电路 设计