eda电子路标二 课程设计.docx

上传人:b****7 文档编号:9667524 上传时间:2023-02-05 格式:DOCX 页数:25 大小:239.39KB
下载 相关 举报
eda电子路标二 课程设计.docx_第1页
第1页 / 共25页
eda电子路标二 课程设计.docx_第2页
第2页 / 共25页
eda电子路标二 课程设计.docx_第3页
第3页 / 共25页
eda电子路标二 课程设计.docx_第4页
第4页 / 共25页
eda电子路标二 课程设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

eda电子路标二 课程设计.docx

《eda电子路标二 课程设计.docx》由会员分享,可在线阅读,更多相关《eda电子路标二 课程设计.docx(25页珍藏版)》请在冰豆网上搜索。

eda电子路标二 课程设计.docx

eda电子路标二课程设计

燕山大学

课程设计说明书

 

题目:

电子路标二

 

学院(系):

电气工程学院

年级专业:

应用电子技术四班

学号:

080103030185

学生姓名:

李明华

指导教师:

吕宏诗张强

教师职称:

实验师

燕山大学课程设计(论文)任务书

院(系):

电气工程学院基层教学单位:

电子实验中心

学号

080103030185

学生姓名

李明华

专业(班级)

08应电四班

设计题目

电子路标二

●在双色点阵上显示电子路标(指示人物);

●电子路标能够行走和停止(用不同颜色表示)。

 

●用双色点阵发光管显示电子路标;

●用频率组模块作为频率信号发生器。

●学会使用Max+PlusII软件、VerilogHDL语言和实验箱;

●独立完成电路设计,编程下载、连接电路和调试;

●参加答辩并书写任务书。

1.了解EDA的基本知识,学习使用软件Max+PlusII,下发任务书,开始电路设计;

2.学习VerilogHDL语言,用VerilogHDL进行程序设计

3.学习使用实验箱,继续电路设计;

4.完成电路设计;

5.编程下载、连接电路、调试和验收;

6.答辩并书写任务书

《数字电子技术基础》.阎石主编.高等教育出版社.

《EDA课程设计A指导书》.郑兆兆等编.

指导教师签字

吕宏诗张强

基层教学单位主任签字

金海龙

2011年1月14日

目录

 

第1章设明说明…………………………………………………………………………3

第2章verilogHDL设计源程序………………………………………………………5

第3章波形仿真…………………………………………………………………………13

第4章管脚锁定及硬件连线……………………………………………………………16

第5章总结………………………………………………………………………………18

第6章参考文献…………………………………………………………………………19

 

第1章设计说明

1.1设计思路

本设计“电子路标二”实现在双色8*8点阵上显示电子路标(指示人物),人物能够行走和停止。

行走时人物呈绿色,停止时人物呈红色。

具体显示效果见下图1.1-a,1.1-b,1.1-c三图,也可以加入橙灯闪动作为缓冲。

1.1-a1.1-b

1.1-c

要实现人物的“行走”,需要两幅画面交替循环显示,即图1.1-a,图1.1-b两幅图。

停止状态人物画面需要显示较长时间,可以通过自身循环显示实现。

在本设计中使用了频率组模块作为频率信号发生器。

本设计采用了两个频率,即低频率组中的2Hz和低频率组中的256Hz。

2Hz频率用来进行画面的切换,即人物行走时图1.1-a和图1.1-b画面的交替循环显示和人物停止时图1.1-c画面自身的循环显示。

8*8点阵一次只能点亮一行或一列,为了使人感觉各行或各列是同时点亮,需要较高频率的扫描,256Hz的频率信号就是扫描信号,在本次设计中采用逐行扫描,因为点阵是行共阴,列共阳,所以逐行扫描采用每个钟上升沿点亮一行,依次循环点亮各行,即各行依次循环置0,各列输出显示的图形。

`

1.2模块介绍

本次设计只采用了一个模块来实现设计的要求。

其中clk1,clk2为输入端口,row是一个八位输出端口,lineg为一个六位输出端口,liner为一个四位输出端口。

在模块中设置了变量j,用来对时钟脉冲clk1时钟脉冲进行计数,j=0时输出显示图1.1-a的画面,j=1时输出显示图1.1-b的画面,j=2时输出显示图1.1-a的画面,j=3时输出显示图1.1-b的画面,这样可以实现人物的行走状态。

j=4,5,6,7时输出显示图1.1-c的画面,这样可以实现人物的停止状态。

在j=7的下一个clk1的时钟上升沿,j的值被重新置0。

这样就可以实现行走和停止两种状态的交替显示。

通过更改clk1的输入时钟频率还可以变化交替间隔时间。

模块中的另一个时钟信号clk2用来实现逐行扫描。

通过如下语句实现一个画面的显示。

if(j==0)

begin

case(a)//显示图1.1-b所示图形

0:

beginrow=8'b11111110;lineg=6'b001100;liner=4'b0000;end

1:

beginrow=8'b11111101;lineg=6'b001100;liner=4'b0000;end

2:

beginrow=8'b11111011;lineg=6'b001100;liner=4'b0000;end

3:

beginrow=8'b11110111;lineg=6'b001100;liner=4'b0000;end

4:

beginrow=8'b11101111;lineg=6'b001100;liner=4'b0000;end

5:

beginrow=8'b11011111;lineg=6'b001100;liner=4'b0000;end

6:

beginrow=8'b10111111;lineg=6'b001100;liner=4'b0000;end

7:

beginrow=8'b01111111;lineg=6'b001100;liner=4'b0000;end

endcase

a=a+1;

if(a>7)

begina=0;end

end

end

其中的变量a对clk2进行计数,每个clk2的上升沿a的值加1,通过case语句输出显示一行。

a的值大于7时被重新置0,从而实现逐行扫描。

由于要求实现双色显示,所以用到两个输出lineg和liner,分别接绿色和红色二极管阳极端口。

模块中在点亮一种颜色的二极管时封锁另一色二极管,从而避免出现色彩显示的错误。

 

第2章VerilogHDL设计源程序

本次课程设计的VerilogHDL源程序如下:

modulelubiao(clk1,clk2,lineg,liner,row);

outputlineg,liner,row;

inputclk1,clk2;

reg[7:

0]row;

reg[6:

1]lineg;

reg[5:

2]liner;

reg[2:

0]a,b,c,d,e;

reg[3:

0]j;

always@(posedgeclk1)//变量j从0到6循环

begin

j=j+1;

if(j>7)

begin

j=0;

end

end

always@(posedgeclk2)

begin

if(j==0)//j=0时显示图1.1-a所示图形

begin

case(a)

0:

beginrow=8'b11111110;lineg=6'b001100;liner=4'b0000;end

1:

beginrow=8'b11111101;lineg=6'b001100;liner=4'b0000;end

2:

beginrow=8'b11111011;lineg=6'b001100;liner=4'b0000;end

3:

beginrow=8'b11110111;lineg=6'b001100;liner=4'b0000;end

4:

beginrow=8'b11101111;lineg=6'b001100;liner=4'b0000;end

5:

beginrow=8'b11011111;lineg=6'b001100;liner=4'b0000;end

6:

beginrow=8'b10111111;lineg=6'b001100;liner=4'b0000;end

7:

beginrow=8'b01111111;lineg=6'b001100;liner=4'b0000;end

endcase

a=a+1;

if(a>7)

begina=0;end

end

elseif(j==1)//j=1时显示图1.1-b所示图形

begin

case(b)

0:

beginrow=8'b11111110;lineg=6'b001100;liner=4'b0000;end

1:

beginrow=8'b11111101;lineg=6'b001100;liner=4'b0000;end

2:

beginrow=8'b11111011;lineg=6'b011110;liner=4'b0000;end

3:

beginrow=8'b11110111;lineg=6'b101101;liner=4'b0000;end

4:

beginrow=8'b11101111;lineg=6'b001100;liner=4'b0000;end

5:

beginrow=8'b11011111;lineg=6'b001110;liner=4'b0000;end

6:

beginrow=8'b10111111;lineg=6'b010010;liner=4'b0000;end

7:

beginrow=8'b01111111;lineg=6'b100010;liner=4'b0000;end

endcase

b=b+1;

if(b>7)

beginb=0;end

end

elseif(j==2)//j=2时显示图1.1-a所示图形

begin

case(c)

0:

beginrow=8'b11111110;lineg=6'b001100;liner=4'b0000;end

1:

beginrow=8'b11111101;lineg=6'b001100;liner=4'b0000;end

2:

beginrow=8'b11111011;lineg=6'b001100;liner=4'b0000;end

3:

beginrow=8'b11110111;lineg=6'b001100;liner=4'b0000;end

4:

beginrow=8'b11101111;lineg=6'b001100;liner=4'b0000;end

5:

beginrow=8'b11011111;lineg=6'b001100;liner=4'b0000;end

6:

beginrow=8'b10111111;lineg=6'b001100;liner=4'b0000;end

7:

beginrow=8'b01111111;lineg=6'b001100;liner=4'b0000;end

endcase

c=c+1;

if(c>7)

beginc=0;end

end

elseif(j==3)//j=3时显示图1.1-b所示图形

begin

case(d)

0:

beginrow=8'b11111110;lineg=6'b001100;liner=4'b0000;end

1:

beginrow=8'b11111101;lineg=6'b001100;liner=4'b0000;end

2:

beginrow=8'b11111011;lineg=6'b011110;liner=4'b0000;end

3:

beginrow=8'b11110111;lineg=6'b101101;liner=4'b0000;end

4:

beginrow=8'b11101111;lineg=6'b001100;liner=4'b0000;end

5:

beginrow=8'b11011111;lineg=6'b001110;liner=4'b0000;end

6:

beginrow=8'b10111111;lineg=6'b010010;liner=4'b0000;end

7:

beginrow=8'b01111111;lineg=6'b100010;liner=4'b0000;end

endcase

d=d+1;

if(d>7)

begind=0;end

end

else

begin

case(e)//j=4,5,6,7时都显示图1.1-c所示图形

0:

beginrow=8'b11111110;liner=4'b0110;lineg=6'b000000;end

1:

beginrow=8'b11111101;liner=4'b0110;lineg=6'b000000;end

2:

beginrow=8'b11111011;liner=4'b1111;lineg=6'b000000;end

3:

beginrow=8'b11110111;liner=4'b1111;lineg=6'b000000;end

4:

beginrow=8'b11101111;liner=4'b1111;lineg=6'b000000;end

5:

beginrow=8'b11011111;liner=4'b0110;lineg=6'b000000;end

6:

beginrow=8'b10111111;liner=4'b0110;lineg=6'b000000;end

7:

beginrow=8'b01111111;liner=4'b0110;lineg=6'b000000;end

endcase

e=e+1;

if(e>7)

begine=0;end

end

end

endmodule

(附)后来又加入了橙色人形闪动的画面,扩展后的源程序为:

modulelubiao(clk1,clk2,lineg,liner,row);

outputlineg,liner,row;

inputclk1,clk2;

reg[7:

0]row;

reg[6:

1]lineg;

reg[5:

2]liner;

reg[2:

0]a,b,c,d,e,f,g,h,m,n,o;

reg[3:

0]j;

always@(posedgeclk1)

begin

j=j+1;

if(j>13)

begin

j=0;

end

end

always@(posedgeclk2)

begin

if(j==0)

begin

case(a)

0:

beginrow=8'b11111110;liner=4'b0110;lineg=6'b001100;end

1:

beginrow=8'b11111101;liner=4'b0110;lineg=6'b001100;end

2:

beginrow=8'b11111011;liner=4'b1111;lineg=6'b011110;end

3:

beginrow=8'b11110111;liner=4'b1111;lineg=6'b011110;end

4:

beginrow=8'b11101111;liner=4'b1111;lineg=6'b011110;end

5:

beginrow=8'b11011111;liner=4'b0110;lineg=6'b001100;end

6:

beginrow=8'b10111111;liner=4'b0110;lineg=6'b001100;end

7:

beginrow=8'b01111111;liner=4'b0110;lineg=6'b001100;end

endcase

a=a+1;

if(a>7)

begina=0;end

end

elseif(j==1)

begin

case(b)

0:

beginrow=8'b11111110;liner=4'b0000;lineg=6'b000000;end

1:

beginrow=8'b11111101;liner=4'b0000;lineg=6'b000000;end

2:

beginrow=8'b11111011;liner=4'b0000;lineg=6'b000000;end

3:

beginrow=8'b11110111;liner=4'b0000;lineg=6'b000000;end

4:

beginrow=8'b11101111;liner=4'b0000;lineg=6'b000000;end

5:

beginrow=8'b11011111;liner=4'b0000;lineg=6'b000000;end

6:

beginrow=8'b10111111;liner=4'b0000;lineg=6'b000000;end

7:

beginrow=8'b01111111;liner=4'b0000;lineg=6'b000000;end

endcase

b=b+1;

if(b>7)

beginb=0;end

end

elseif(j==2)

begin

case(c)

0:

beginrow=8'b11111110;liner=4'b0110;lineg=6'b001100;end

1:

beginrow=8'b11111101;liner=4'b0110;lineg=6'b001100;end

2:

beginrow=8'b11111011;liner=4'b1111;lineg=6'b011110;end

3:

beginrow=8'b11110111;liner=4'b1111;lineg=6'b011110;end

4:

beginrow=8'b11101111;liner=4'b1111;lineg=6'b011110;end

5:

beginrow=8'b11011111;liner=4'b0110;lineg=6'b001100;end

6:

beginrow=8'b10111111;liner=4'b0110;lineg=6'b001100;end

7:

beginrow=8'b01111111;liner=4'b0110;lineg=6'b001100;end

endcase

c=c+1;

if(c>7)

beginc=0;end

end

elseif(j==3)

begin

case(d)

0:

beginrow=8'b11111110;lineg=6'b001100;liner=4'b0000;end

1:

beginrow=8'b11111101;lineg=6'b001100;liner=4'b0000;end

2:

beginrow=8'b11111011;lineg=6'b001100;liner=4'b0000;end

3:

beginrow=8'b11110111;lineg=6'b001100;liner=4'b0000;end

4:

beginrow=8'b11101111;lineg=6'b001100;liner=4'b0000;end

5:

beginrow=8'b11011111;lineg=6'b001100;liner=4'b0000;end

6:

beginrow=8'b10111111;lineg=6'b001100;liner=4'b0000;end

7:

beginrow=8'b01111111;lineg=6'b001100;liner=4'b0000;end

endcase

d=d+1;

if(d>7)

begind=0;end

end

elseif(j==4)

begin

case(e)

0:

beginrow=8'b11111110;lineg=6'b001100;liner=4'b0000;end

1:

beginrow=8'b11111101;lineg=6'b001100;liner=4'b0000;end

2:

beginrow=8'b11111011;lineg=6'b011110;liner=4'b0000;end

3:

beginrow=8'b11110111;lineg=6'b101101;liner=4'b0000;end

4:

beginrow=8'b11101111;lineg=6'b001100;liner=4'b0000;end

5:

beginrow=8'b11011111;lineg=6'b001110;liner=4'b0000;end

6:

beginrow=8'b10111111;lineg=6'b010010;liner=4'b0000;end

7:

beginrow=8'b01111111;lineg=6'b100010;liner=4'b0000;end

endcase

e=e+1;

if(e>7)

begine=0;end

end

elseif(j==5)

begin

case(f)

0:

beginrow=8'b11111110;lineg=6'b001100;liner=4'b0000;end

1:

beginrow=8'b11111101;lineg=6'b001100;liner=4'b0000;end

2:

beginrow=8'b11111011;lineg=6'b001100;liner=4'b0000;end

3:

beginrow=8'b11110111;lineg=6'b001100;liner=4'b0000;end

4:

beginrow=8'b11101111;lineg=6'b001100;liner=4'b0000;end

5:

beginrow=8'b11011111;lineg=6'b001100;liner=4'b0000;end

6:

beginrow=8'b10111111;lineg=6'b001100;liner=4'b0000;end

7:

beginrow=8'b01111111;lineg=6'b001100;liner=4'b0000;end

endcase

f=f+1;

if(f>7)

beginf=0;end

end

elseif(j==6)

begin

case(g)

0:

beginrow=8'b11111110;lineg=6'b001100;liner=4'b0000;end

1:

beginrow=8'b1111110

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

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1