数电课程设计题目与要求交通灯控制电路设计.docx

上传人:b****2 文档编号:3183823 上传时间:2023-05-05 格式:DOCX 页数:44 大小:691.10KB
下载 相关 举报
数电课程设计题目与要求交通灯控制电路设计.docx_第1页
第1页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第2页
第2页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第3页
第3页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第4页
第4页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第5页
第5页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第6页
第6页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第7页
第7页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第8页
第8页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第9页
第9页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第10页
第10页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第11页
第11页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第12页
第12页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第13页
第13页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第14页
第14页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第15页
第15页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第16页
第16页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第17页
第17页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第18页
第18页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第19页
第19页 / 共44页
数电课程设计题目与要求交通灯控制电路设计.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数电课程设计题目与要求交通灯控制电路设计.docx

《数电课程设计题目与要求交通灯控制电路设计.docx》由会员分享,可在线阅读,更多相关《数电课程设计题目与要求交通灯控制电路设计.docx(44页珍藏版)》请在冰点文库上搜索。

数电课程设计题目与要求交通灯控制电路设计.docx

数电课程设计题目与要求交通灯控制电路设计

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2