数电设计报告.docx

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

数电设计报告.docx

《数电设计报告.docx》由会员分享,可在线阅读,更多相关《数电设计报告.docx(28页珍藏版)》请在冰点文库上搜索。

数电设计报告.docx

数电设计报告

2013—2014学年第三学期

《数字电子技术课程设计》报告

(适用专业:

电气12级)

 

专业班级

姓名

学号

开课系室电工电子学教学中心

设计日期2014年7月4日~8日

目录

1、设计任务与要求

2、系统设计总体方案

3、各子模块设计

3.1时钟分频模块

3.2倒计时模块

3.3交通灯控制模块

3.4点阵显示模块

4、总体设计

5、实习总结与讨论

6、附录

一、设计任务与要求

1、数字电子技术课程设计题目:

交通灯控制电路设计

2、设计任务及原理:

交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂。

要完成本实验,首先必须了解交通路灯的燃灭规律。

本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各四个。

依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。

其交通灯的燃灭规律为:

东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯闪烁,红灯亮(表示左转弯),再延时一段时间后,黄灯开始闪烁。

闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯闪烁,红灯亮(表示左转弯),再延时一段时间后,黄灯开始闪烁。

闪烁若干次后,再切换到东西路口方向,重复上述过程。

在实验中使用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个开关分别实现东西向通行(东西向绿灯亮,南北向红灯亮,没有时间限制),实现南北向通行(南北向绿灯亮,东西向红灯亮,没有时间限制),实现东西向左转弯(东西向绿灯闪烁,东西向红灯亮,南北向红灯亮,没有时间限制),实现南北向通行(南北向绿灯闪烁,南北向红灯亮,东西向红灯亮,没有时间限制)。

3、具体要求:

本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块和七段码管中的任意两个来显示。

系统时钟选择时钟模块的50MHz时钟,黄灯和绿灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz脉冲,即每1s中递减一次。

在东西向绿灯期间,点阵显示自己的姓名;在南北向绿灯期间,点阵显示自己的学号后3位。

显示方式:

1秒显示一个汉字或者一个数字(汉字和数字均静止不动,即不循环),然后全暗1秒,然后再显示一个汉字或者一个数字,以此类推。

二、系统设计总体方案

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中。

观察实验结果是否与自己的编程思想一致。

三、各子模块设计

1、时钟分频模块

(1)、源代码

modulefenpin(clk50,clk1,clk2,clk1k);

inputclk;

outputclk1,clk2,clk1k;

reg[31:

0]cnt1,cnt2,cnt3;

regclk1,clk2,clk1k;

initial

begin

clk1=0;

clk2=0;

clk1k=0;

cnt1=0;

cnt2=0;

cnt3=0;

end

always@(posedgeclk50)

begin

if(cnt1==24999999)

begin

clk1<=~clk1;

cnt1<=0;

end

else

begin

cnt1<=cnt1+1;

end

if(cnt2==12499999)

begin

clk2<=~clk2;

cnt2<=0;

end

else

begin

cnt2<=cnt2+1;

end

if(cnt3==24999)

begin

clk1k<=~clk1k;

cnt3<=0;

end

else

begin

cnt3<=cnt3+1;

end

end

endmodule

(2)元件

 

(3)仿真波形

因把50MHZ分成1HZ波形显示不出来,所以把分频倍数减小1000倍,用于检验。

2、倒计时模块

(1)、源代码

moduledaojishi(clk1,k1,seg1,seg2,out,z);

inputclk1,k1;

output[6:

0]seg1,seg2;

outputout,z;

reg[6:

0]seg1,seg2;

regz;

initialz=1;

reg[4:

0]out;

integercnt,a,b;

initialcnt=0;

always@(posedgeclk1)

begin

if(k1==0)

begin

if(cnt>0)

cnt=cnt-1;

elseif(cnt==0)

begin

cnt=20;

z=~z;

end

out=cnt;

end

else

begin

if(cnt>0)

begin

cnt=cnt-1;

end

elseif(cnt==0)

begin

cnt=30;

z=~z;

end

out=cnt;

end

a=cnt%10;

case(a)

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

b=(cnt-cnt%10)/10;

case(b)

0:

seg2=7'b0000001;

1:

seg2=7'b1001111;

2:

seg2=7'b0010010;

3:

seg2=7'b0000110;

endcase

end

endmodule

(2)元件

(3)仿真波形

3、交通灯控制模块

(1)源代码

modulekongzhi(in,z,clk2,r1,y1,g1,r2,y2,g2,k2,k3,k4,k5,k6);

inputclk2,z,k2,k3,k4,k5,k6;

input[4:

0]in;

outputr1,y1,g1,r2,y2,g2;

regr1,y1,g1,r2,y2,g2;

integercnt;

initialcnt=0;

always@(in)

begin

if(k2==0)

begin

cnt=in;

if(z==0)

begin

if(cnt>=10)//we

begin

g1=1;r1=0;y1=0;g2=0;r2=1;y2=0;

end

elseif(cnt>=5&&cnt<10)//weg1shine

begin

g1=clk2;r1=1;y1=0;g2=0;r2=1;y2=0;

end

elseif(cnt>=0&&cnt<5)//wey1shine

begin

g1=0;r1=0;y1=clk2;g2=0;r2=1;y2=0;

end

end

elseif(z==1)

begin

if(cnt>=10)//ns

begin

g1=0;r1=1;y1=0;g2=1;r2=0;y2=0;

end

elseif(cnt>=5&&cnt<10)//nsg2shine

begin

g1=0;r1=1;y1=0;g2=clk2;r2=1;y2=0;

end

elseif(cnt>=0&&cnt<5)//nsy2shine

begin

g1=0;r1=1;y1=0;g2=0;r2=0;y2=clk2;

end

end

end

else

if(k3==1)

begin

g1=1;r1=0;y1=0;g2=0;r2=1;y2=0;

end

elseif(k4==1)

begin

g1=clk2;r1=1;y1=0;g2=0;r2=1;y2=0;

end

elseif(k5==1)

begin

g1=0;r1=1;y1=0;g2=1;r2=0;y2=0;

end

elseif(k6==1)

begin

g1=0;r1=1;y1=0;g2=clk2;r2=1;y2=0;

end

end

endmodule

(2)元件

(3)波形仿真

4、点阵显示模块

(1)源代码

moduledianzhen(clk1,clk1k,h,l,z);

inputclk1,clk1k,z;

//input[4:

0]in1;

output[15:

0]h,l;

reg[15:

0]h,l;

integercnt,cnt1;//jishubianliang

integera,b,c,d,e,f;//fuzhibianliang

initialcnt=0;

initialcnt1=0;

always@(posedgeclk1)

begin

if(cnt<6)

cnt=cnt+1;

else

cnt=0;

end

always@(posedgeclk1k)

begin

if(cnt<16)

cnt1=cnt1+1;

else

cnt1=0;

if(z==0)

begin

if(cnt%6==0)

begin

a=cnt1%16;

case(a)//

0:

beginl=16'b0000_0000_0100_0000;h=16'b0111_1111_1111_1111;end

1:

beginl=16'b0000_0000_1010_0000;h=16'b1011_1111_1111_1111;end

2:

beginl=16'b0111_1001_0001_0000;h=16'b1101_1111_1111_1111;end

3:

beginl=16'b0100_1010_0000_1000;h=16'b1110_1111_1111_1111;end

4:

beginl=16'b0100_1101_1111_0100;h=16'b1111_0111_1111_1111;end

5:

beginl=16'b0100_1000_0000_0000;h=16'b1111_1011_1111_1111;end

6:

beginl=16'b0100_1011_1100_0100;h=16'b1111_1101_1111_1111;end

7:

beginl=16'b0100_1010_0101_0100;h=16'b1111_1110_1111_1111;end

8:

beginl=16'b0111_1011_1101_0100;h=16'b1111_1111_0111_1111;end

9:

beginl=16'b0111_1010_0101_0100;h=16'b1111_1111_1011_1111;end

10:

beginl=16'b0000_0011_1101_0100;h=16'b1111_1111_1101_1111;end

11:

beginl=16'b0000_0010_0101_0100;h=16'b1111_1111_1110_1111;end

12:

beginl=16'b0000_0010_0100_0100;h=16'b1111_1111_1111_0111;end

13:

beginl=16'b0000_0010_1101_1100;h=16'b1111_1111_1111_1011;end

14:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1101;end

15:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1110;end

endcase

end

elseif(cnt%6==2)//

begin

b=cnt1%16;

case(b)

0:

beginl=16'b0000_0001_0001_0000;h=16'b0111_1111_1111_1111;end

1:

beginl=16'b0010_0001_0001_0000;h=16'b1011_1111_1111_1111;end

2:

beginl=16'b0001_0001_0001_0000;h=16'b1101_1111_1111_1111;end

3:

beginl=16'b0001_0001_0001_0000;h=16'b1110_1111_1111_1111;end

4:

beginl=16'b0000_0001_0001_0000;h=16'b1111_0111_1111_1111;end

5:

beginl=16'b0000_0001_0001_0000;h=16'b1111_1011_1111_1111;end

6:

beginl=16'b0111_0001_0001_0000;h=16'b1111_1101_1111_1111;end

7:

beginl=16'b0001_0001_0001_0000;h=16'b1111_1110_1111_1111;end

8:

beginl=16'b0001_0001_0001_0000;h=16'b1111_1111_0111_1111;end

9:

beginl=16'b0001_0001_0001_0000;h=16'b1111_1111_1011_1111;end

10:

beginl=16'b0001_0001_0001_0000;h=16'b1111_1111_1101_1111;end

11:

beginl=16'b0001_0001_0001_0000;h=16'b1111_1111_1110_1111;end

12:

beginl=16'b0010_1000_0000_0000;h=16'b1111_1111_1111_0111;end

13:

beginl=16'b0100_0111_1111_1100;h=16'b1111_1111_1111_1011;end

14:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1101;end

15:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1110;end

endcase

end

elseif(cnt%6==4)//

begin

c=cnt1%16;

case(c)

0:

beginl=16'b0000_0010_0000_0000;h=16'b0111_1111_1111_1111;end

1:

beginl=16'b0000_0010_0000_0000;h=16'b1011_1111_1111_1111;end

2:

beginl=16'b0011_1111_1111_1000;h=16'b1101_1111_1111_1111;end

3:

beginl=16'b0000_0100_0000_0000;h=16'b1110_1111_1111_1111;end

4:

beginl=16'b0000_1001_0000_0000;h=16'b1111_0111_1111_1111;end

5:

beginl=16'b0001_0001_0000_0000;h=16'b1111_1011_1111_1111;end

6:

beginl=16'b0001_1111_1111_0000;h=16'b1111_1101_1111_1111;end

7:

beginl=16'b0000_0001_0000_0000;h=16'b1111_1110_1111_1111;end

8:

beginl=16'b0000_0001_0000_0000;h=16'b1111_1111_0111_1111;end

9:

beginl=16'b0001_0001_0100_0000;h=16'b1111_1111_1011_1111;end

10:

beginl=16'b0001_0001_0010_0000;h=16'b1111_1111_1101_1111;end

11:

beginl=16'b0010_0001_0001_0000;h=16'b1111_1111_1110_1111;end

12:

beginl=16'b0100_0001_0001_0000;h=16'b1111_1111_1111_0111;end

13:

beginl=16'b0000_0111_0000_0000;h=16'b1111_1111_1111_1011;end

14:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1101;end

15:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1110;end

endcase

end

elseif(cnt%6==1||cnt%6==3||cnt%6==5)//black

begin

l=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1111;

end

end

elseif(z==1)

begin

if(cnt%6==0)//shuzi4

begin

d=cnt1%16;

case(d)

0:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1111;end

1:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1111;end

2:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1111;end

3:

beginl=16'b0000_1000_0000_0000;h=16'b1110_1111_1111_1111;end

4:

beginl=16'b0000_1000_0000_0000;h=16'b1111_0111_1111_1111;end

5:

beginl=16'b0001_1000_0000_0000;h=16'b1111_1011_1111_1111;end

6:

beginl=16'b0010_1000_0000_0000;h=16'b1111_1101_1111_1111;end

7:

beginl=16'b0100_1000_0000_0000;h=16'b1111_1110_1111_1111;end

8:

beginl=16'b0100_1000_0000_0000;h=16'b1111_1111_0111_1111;end

9:

beginl=16'b0111_1110_0000_0000;h=16'b1111_1111_1011_1111;end

10:

beginl=16'b0000_1000_0000_0000;h=16'b1111_1111_1101_1111;end

11:

beginl=16'b0000_1000_0000_0000;h=16'b1111_1111_1110_1111;end

12:

beginl=16'b0001_1110_0000_0000;h=16'b1111_1111_1111_0111;end

13:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1111;end

14:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1111;end

15:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1111;end

endcase

end

elseif(cnt%6==2)//shuzi2

begin

e=cnt1%16;

case(e)

0:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1111;end

1:

beginl=16'b0000_0000_0000_0000;h=16'b1111_1111_1111_1111;end

2:

beginl=16'b0000_0000_0000_0000;h=16'b111

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

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

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

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