曾鹏飞课设文档格式.docx
- 文档编号:20288513
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:19
- 大小:108.66KB
曾鹏飞课设文档格式.docx
《曾鹏飞课设文档格式.docx》由会员分享,可在线阅读,更多相关《曾鹏飞课设文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
一.设计内容
用一个16×
16的点阵使用逐列循环扫描的方式不间断的显示你姓名的全部大写拼音字母。
二、设计要求:
1、设计思路清晰,给出整体设计框图;
2、在MAX+PLUSⅡ中设计各单元电路,完成其功能仿真和编译并生成低层模块;
3、在MAX+PLUSⅡ中完成顶层设计并编译通过;
4、在MAX+PLUSⅡ中完成设计下载并调试电路;
5、写出设计报告
主要设计条件
1.提供EDA实验室;
2.提供EL实验箱和CPLD芯片;
3.提供设计软件。
说明书格式
1.课程设计封面;
2.任务书;
3.说明书目录;
4.设计总体思路,基本原理和框图(顶层电路图);
5.单元电路设计(各次级模块电路图);
6.设计仿真;
7.编程下载;
8.总结与体会;
9.附录;
10.参考文献。
进度安排
星期一、二:
下达设计任务书,介绍课题内容与要求;
介绍软件的使用;
查找资料,确定总体设计方案和单元电路设计;
星期三~第二周星期三:
上机设计电路,电路仿真,硬件下载;
第二星期四、五:
书写设计报告,打印相关图纸;
答辩
参考文献
1.康华光主编.电子技术基础(数字部分),高等教育出版社。
2.阎石主编.电子技术基础(数字部分),清华大学出版社。
3.陈大钦主编,电子技术基础实验,高等教育出版社。
4.彭介华主编,电子技术课程设计指导,高等教育出版社。
5.张原编著,可编程逻辑器件设计及应用,机械工业出版社。
6.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。
7.MAX+PLUSⅡ入门
8.刘洪喜,陆颖编著.VHDL电路设计实用教程清华大学出版社
目录
1设计总体思路,基本原理和框图1
1.1设计总体思路和基本原理1
1.2设计框图3
1.3顶层框图3
2单元电路设计4
2.1字选模块4
2.2列选模块4
2.3显示模块4
2.4顶层模块4
3设计仿真结果5
4编程下载;
5
4.1字选模块编程实现5
4.2列选模块编程实现6
4.3显示模块编程实现7
4.4顶层模块编程实现12
5总结与体会13
参考文献15
1设计总体思路,基本原理和框图
1.1设计总体思路和基本原理
按照要求可知,LED点阵模块,共由16×
16=256个LED发光二极管组成,如何在该点阵模块上显示字母是本实验的关键。
先将要显示的每一幅图像画在一个16×
16共256个小方格的矩形框中,再在有笔划下落处的小方格里填上“1”,无笔划处填上“0”,这样就形成了与这个汉字所对应的二进制数据在该矩形框上的分布
以数字8为例,点阵分布为:
0000000000000000
0001111111111000
0001100000011000
考虑到实际物理实验平台上点阵发光二极管的原理,以下为16×
16点阵LED外观图,只要其对应的X、Y轴顺向偏压,即可使LED发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
所以我采用逐列扫描的方法,用四位二进制数做列选信号(总共16列),如选中第一列,则扫描第一列之中哪些行是高电平
(1),哪些行是低电平(0);
为高电平的则点亮,为低电平的不亮。
(列信号都接地)。
如此,列选信号由“0000”变到“1111”时,16列扫描完毕,一个字也就出来了,列选信号重新由“0000”开始扫描。
注意扫描频率必须要足够快,才能保证显示一个数字或字母时所有灯在肉眼看来是同时在闪烁的。
再者,就是字变换的问题。
题目要求可显示自己名字的英文字母的大写,11个字母用四位二进制表示字选信号。
每个字选信号对应一个四位二进制代码。
通常情况下是1s变一个字符,但我在实验时考虑到仿真的问题,将字选信号的变化周期缩小很多,以便仿真。
要注意的是,列选信号变化频率一定是比字选信号大得多的。
1.2设计框图
1.3顶层框图
2单元电路设计
2.1字选模块
输入为一个时钟信号,输出为4位二进制(用xuan表示)字选信号来顺序输出题目要求的11个字母。
因为设计采用字选模块和列选模块使用同一个输入时钟脉冲,但是字选信号的变化频率比列选信号要小得多。
所以该模块中还应该设置一个计数器,计数器满,则Q加1,即变向下一个字,同时计数器重新置零。
2.2列选模块
输入为一个时钟信号,输出为4位二进制(用sel表示)列选信号,用来选中列,进行扫描。
2.3显示模块
输入为字选信号和列选信号,输出为16位二进制,用来表示一列,该列中的1的位置就表示亮灯的位置,0的位置表示不亮。
每扫描一列就输出一列,看该列中哪些行是1,哪些行是0。
该模块应该包含ZENGPENGFEI这11个字模。
2.4顶层模块
该模块采用图形模式(.gdf),将所有的模块按要求合理连接起来后,再添加上顶层的输入输出信号。
3设计仿真结果
这里只仿真顶层模块。
由仿真结果可以看出,设计完全符合要求。
4.1字选模块编程实现
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitylyis
port(clk:
instd_logic;
sell:
outstd_logic_vector(3downto0);
q:
outstd_logic_vector(15downto0));
endly;
architecturely_arcoflyis
componentchw
port(clk:
outstd_logic_vector(3downto0));
endcomponentchw;
componentcnta
endcomponentcnta;
componentcora
port(ch:
instd_logic_vector(3downto0);
sel:
q:
endcomponentcora;
signale:
std_logic_vector(3downto0);
signaltmp:
begin
u1:
chwportmap(clk=>
clk,q=>
e);
u2:
cntaportmap(clk=>
tmp);
u3:
coraportmap(ch=>
e,sel=>
tmp,q=>
q);
sell<
=tmp(3downto0);
endarchitecturely_arc;
4.2列选模块编程实现
entitycntais
endcnta;
architecturecnta_arcofcntais
begin
process(clk)
variabletmp:
begin
ifclk'
eventandclk='
1'
then
iftmp="
1000"
then
tmp:
="
0000"
;
else
=tmp+1;
endif;
q<
=tmp-1;
endprocess;
endcnta_arc;
4.3显示模块编程实现
entitycorais
port(ch:
endcora;
architecturecora_arcofcorais
process(ch,sel)
casechis
when"
=>
caseselis
when"
Q<
0000000000000000"
----显示“Z”
0001"
0010"
0011"
0011111111111100"
0100"
0101"
0000000000110000"
0110"
0000000011000000"
0111"
0000001100000000"
0000110000000000"
1001"
0001100000000000"
1010"
1011"
1100"
1101"
1110"
--显示”E“
0111111111111110"
0110000000000000"
1111"
whenothers=>
null;
ENDCASE;
q<
---------N
0111000000000110"
0111100000000110"
0110110000000110"
0110011000000110"
0110001100000110"
0110000110000110"
0110000011000110"
0110000001100110"
0110000000110110"
0110000000001110"
endcase;
---------G
0000001111111000"
0011000000000000"
001100000000000"
0011000111111110"
0011000011000110"
0011111111000110"
----显示“P”
0011000000001100"
--显示”F“
01100
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 曾鹏飞课设