EDA课程设计1616字符发生器.docx

上传人:b****5 文档编号:7368065 上传时间:2023-01-23 格式:DOCX 页数:13 大小:274.63KB
下载 相关 举报
EDA课程设计1616字符发生器.docx_第1页
第1页 / 共13页
EDA课程设计1616字符发生器.docx_第2页
第2页 / 共13页
EDA课程设计1616字符发生器.docx_第3页
第3页 / 共13页
EDA课程设计1616字符发生器.docx_第4页
第4页 / 共13页
EDA课程设计1616字符发生器.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

EDA课程设计1616字符发生器.docx

《EDA课程设计1616字符发生器.docx》由会员分享,可在线阅读,更多相关《EDA课程设计1616字符发生器.docx(13页珍藏版)》请在冰豆网上搜索。

EDA课程设计1616字符发生器.docx

EDA课程设计1616字符发生器

EDA课程设计

-----16X16字符发生器

学院:

阜阳师范学院

专业:

电子信息科学与技术

班级:

08级电子一班

姓名(学号):

刘蕊(200840620119)、穆良群(200840620123)

邵敏(200840620125)、邵盛楠(200840610318)

张南南(200840620143)、张雪琳(200840620145)

时间:

2010年12月1日

一.设计任务及要求

1.设计任务:

利用实验箱上16X16点阵,设计字符发生器,可以循环显

示预置字符:

同心协力。

2.设计要求:

(1)利用VHDL编写字符扫描驱动电路;

(2)设计一个可以自动循环显示4个字符的电路;

(3)编写预置字符的rom程序生成模块接入电路。

二.总体框图

设计思路:

此电路由八进制计数器,ROM和ADDRESS1这三部分构成。

ADDRESS1的作用是在时钟clk的作用下将从rom中读出的信号对应正确的写在16×16的点阵上。

Reset是复位端,起复位作用。

输出addr[4..1]选中16X16LED点阵的对应列,随着addr[4..1]值得增加,从左往右依次选中点阵的各列addr0则决定输出是在高位还是在低位。

FLEX10的lout0-7和hout0-7分别与LED点阵的低八位L0-7和高八位L8-15相连。

八进制计数器是在addr[7..0]输出0-3的循环计数,由此输出与ADDRESS1的输出addr[4..0]共同作为rom的输入地址,以此决定q[7..0]的输出(即ADDRESS1的DIN[7..0]的输入),此八进制计数器是由74LS160十进制计数器修改得来的,输出由原来十进制的0-9循环输出变为八进制的0-3循环输出。

Rom是一个用来存储数据的具有读写功能的的存储器,在此电路中的作用是存储“同心协力”四个字.在addr[7..0]输入相应的地址时读取rom中的相应的数据,然后在输出端q[7..0]输出。

在时钟脉冲的作用下,地址计数器计数,EPROM相对应的地址单元中的代码输出,以驱动列选通线产生电路。

地址计数器同时又为行选通线产生电路。

地址随着地址计数器计数值的变化,发光二极管显示屏逐行扫描,显示屏上显示出字符或图案。

各模块功能:

1)ROM是只读存储器存放字符的代码,他是字符显示器的核心部件。

2)发光二极管显示屏用来显示字符或图案,他是由若干发光二极管组成的点阵式显示屏。

3)ADDRESS1的作用是在时钟clk的作用下将从ROM256*8中读出的信号对应正确的写在16×16的点阵上。

三.选择器件与功能模块

1.用来构成输出八进制的74LS160十进制计数器

(1).74LS160器件图

A.B.C.D为输入端;LDN为置数端;ENT与ENP为使能控制端;CLRN为置零端;

RCO为进位输出端;QA.QB.QC.QD为输出端;CLK为脉冲信号输入端.

(2).74160内部结构图

(3).74160功能表

CP

CLRN(RD非)

LDN(LD非)

EPET

工作状态

X

0

X

XX

置零

1

0

XX

预置数

X

1

1

01

保持

X

1

1

X0

保持(C=0)

1

1

11

计数

 

2.ADDRESS1模块设计文件ADDRESS1.VHD

说明:

CLK为时钟输入端口;

RESET为置零端;

DIN[7..0]为接受ROM数据信号端口;

AD[4..0]为片选地址输出;

HOUT[7..0],LOUT[7..0]分别为高八位断驱动和低八位短驱动.

Address1设计程序:

LIBRARYIEEE;

USEIEEE.std_logic_1164.ALL;

USEIEEE.std_logic_unsigned.ALL;

ENTITYaddress1IS

PORT(

clk,reset:

INSTD_LOGIC;

ad:

OUTSTD_LOGIC_VECTOR(4downto0);

din:

inSTD_LOGIC_VECTOR(7DOWNTO0);

hout,lout:

outSTD_LOGIC_VECTOR(7downto0));

ENDaddress1;

ARCHITECTUREaOFaddress1IS

BEGIN

process(clk,din,reset)—敏感信号

VARIABLEQ1:

STD_LOGIC_VECTOR(4DOWNTO0);--标准逻辑变量

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFRESET='0'OR(Q1="11111")THEN

Q1:

="00000";

ELSE

Q1:

=Q1+1;

ENDIF;

ENDIF;

CASEQ1(0)IS

WHEN'0'=>

LOUT<=din;

HOUT<=(others=>'0');

WHEN'1'=>

HOUT<=din;

LOUT<=(others=>'0');

WHENOTHERS=>

null;

ENDCASE;

ad<=Q1;

ENDPROCESS;

ENDa;

模块功能:

地址选择器包含行选线产生电路和列选线产生电路,从ROM中选择相应的地址输出。

Clk为扫描时钟脉冲,控制扫描速度的快慢;RESET为复位端,只有在RESET为高电平的情况下,在脉冲上升沿到来时,ad计数,其中ad[4..1]输出扫描驱动信号,接入扫描片选端,依次选中LED点阵的各列,din输入字符存储器中每个存储单元的数据,hout[7..0]控制LED点阵的高八位lout[7..0]控制LED点阵的低八位,din中存储器中调用的数据模块分别由hout[7..0]或lout[7..0]输出,在LED点阵中经扫描显示字符。

仿真图:

3.用来存储字符的ROM256X8存储器

(1).存入ROM中的数据

width=8;

depth=256;

address_radix=hex;

data_radix=hex;

contentbegin

00:

00;01:

00;02:

fe;03:

ff;04:

02;05:

00;06:

02;07:

00;--tong

08:

92;09:

3f;0a:

92;0b:

10;0c:

92;0d:

10;0e:

92;0f:

10;

10:

92;11:

10;12:

92;13:

10;14:

92;15:

10;16:

da;17:

3f;

18:

02;19:

40;1a:

02;1b:

80;1c:

ff;1d:

7f;1e:

02;1f:

00;

20:

00;21:

00;22:

00;23:

00;24:

00;25:

04;26:

00;27:

02;--xin

28:

c0;29:

01;2a:

00;2b:

00;2c:

f0;2d:

3f;2e:

01;2f:

40;

30:

02;31:

40;32:

1c;33:

40;34:

08;35:

40;36:

00;37:

07;

38:

00;39:

70;3a:

80;3b:

00;3c:

80;3d:

00;3e:

00;3f:

07;

40:

10;41:

00;42:

10;43:

00;44:

ff;45:

ff;46:

10;47:

00;--xie

48:

10;49:

04;4a:

80;4b:

03;4c:

00;4d:

40;4e:

10;4f:

20;

50:

10;51:

1c;52:

ff;53:

03;54:

10;55:

00;56:

10;57:

40;

58:

10;59:

80;5a:

f8;5b:

7f;5c:

90;5d:

00;5e:

00;5f:

03;

60:

10;61:

80;62:

10;63:

80;64:

10;65:

80;66:

10;67:

60;--li

End;

(2)由VHDL编译生成的ROM256X8存储器图

16×16扫描LED点阵的工作原理同8位扫描数码管类似。

它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯。

所以其扫描译码地址需4位信号线。

2864E2PROM存贮器是电可擦除/编程的只读存贮器,容量为8k×8bit,有13位并行地址线和8位并行数据线,而一个完整的字符所需的存贮容间为32字节即32×4bit,也就是说2864最多可连续存256个16×16点阵字形。

存贮方式可事先约定好.

四.总体设计电路图

1).工作情况:

将74LS160十进制计数器变为了八进制的计数器。

在输入clk1的作用下在输出端输出000-111的地址数据。

八进制输出的地址数据与ADDRESS1的输出addr[4..0]共同作为了存储器ROM的地址输入。

此输入地址选定了存储器中在该地址上存储的数据。

然后将数据在存储器的输出端q[7..0]输出。

存储器的输出作用下输出的addr[4..1]决定了输出结果在16×16的点阵上列循环扫描。

而addr0则决定着输出在16×16的点阵上的行扫描,也即输出时在低位(lout)还是在高位(hout)。

总体上说来就是计数器提供部分地址,而ROM是一个字符的存储库,ADDRESS1则是决定着要输出的字符如何在16×16的点阵上扫描输出.

2).模块间的连接关系:

计数器的输出连接在ROM259×8的地址输入端,ROM259×8的输出q[7..0]连接在ADDRESS1的din[7..0]端。

ADDRESS1的输出addr[4..0]又回到了ROM256×8的地址输入端。

1.时序仿真结果

仿真分析:

RESET接低电平;CLK1为CLK的10倍,当CLK1第一个上升沿未到来时,列选信号输出端为"00",即点阵第一列选通,此时LED低八位L7~L4为"1110"十六进制为'E',L3~L0为"0000"十六进制为'0';LED高八位L15~L12为"0000"十六进制为'0',L11~L8为"0000"十六进制为'0'.

由此可推断模拟结果符合设计要求.

2.管脚分配图

 

五.心得体会

通过本次课程设计我感触很深,这是我做的第一次课程设计,从开始到结束到是在匆匆忙忙的生活中度过的,但是可以学的到很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次设计,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。

在编辑模块过程中我遇到很多问题,所以慢慢的很少讨论问题的我跟同学对设计的交流成了家常便饭,在整个过程中虽然付出了很多的努力,当看到显示频上不断跳出自己设计的字符时我觉得任何困难都值得。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。

 

六.附录

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

当前位置:首页 > 农林牧渔 > 林学

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

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