用六位数码管动态显示计数器的计数结果.docx
- 文档编号:4585240
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:16
- 大小:50.70KB
用六位数码管动态显示计数器的计数结果.docx
《用六位数码管动态显示计数器的计数结果.docx》由会员分享,可在线阅读,更多相关《用六位数码管动态显示计数器的计数结果.docx(16页珍藏版)》请在冰豆网上搜索。
用六位数码管动态显示计数器的计数结果
北华航天工业学院
《EDA技术综合设计》
课程设计报告
重写
报告题目:
用六位数码管动态显示计数器的计数结果
作者所在系部:
电子工程系
作者所在专业:
自动化
作者所在班级:
B08221班03号
作者姓名:
肖茂林
指导教师姓名:
崔瑞雪
完成时间:
2010年12月1日
课程设计任务书
课题名称
用六位数码管动态显示计数器的计数结果
完成时间
2010年
11月30日
指导教师
崔瑞雪
职称
教授
学生姓名
肖茂林
班级
B08221
总体设计要求和技术要点
①总体设计要求:
设计一个能在7段数码管上动态刷新显示十进制、十二进制、六十进制、四位二进制计数器计数结果的VHDL语言程序并在EDA实验开发系统上实现该功能。
②技术要点:
VHDL语言编辑程序、共阴7段数码管及FPGA可编程芯片的工作原理与连线。
工作内容及时间进度安排
2010年11月18日—28日编辑VHDL语言程序
2010年11月29日在教二实验室调试程序
2010年11月30日在实验室答辩验收
课程设计成果
1.与设计内容对应的软件程序
2.课程设计报告书
3.成果使用说明书
4.设计工作量要求
内容摘要
用VHDL语言在MAX+PLUS2环境下
设计一个带使能输入、进位输出及同步清零的十进制计数器。
设计一个带使能输入及同步清零的十二进制计数器。
设计一个带使能输入及同步清零的六十进制加法计数器。
设计一个四位二进制可逆计数器。
设计一个共阴7段数码管控制接口,在时钟信号的控制下,使六位数码管动态刷新显示上述计数器的计数结果。
最后在EDA实验开发系统实验操作。
关键词
计数器、EDA实验开发系统、动态显示
目录
1、课程设计要求……………………………………1
二、题目分析…………………………………………1
三、设计思路…………………………………………1
四、VHDL语言程序设计…………………………2
五、顶层文件截图……………………………………7
六、在EDA实验开发系统上的功能实现…………8
七、实验总结…………………………………………8
八、参考文献…………………………………………8
一、课程设计要求
用VHDL语言在MAX+PLUS2环境下
设计一个带使能输入、进位输出及同步清零的十进制计数器。
设计一个带使能输入及同步清零的十二进制计数器。
设计一个带使能输入及同步清零的六十进制加法计数器。
设计一个四位二进制可逆计数器。
设计一个共阴7段数码管控制接口,在时钟信号的控制下,使六位数码管动态刷新显示上述计数器的计数结果。
最后在EDA实验开发系统实验操作。
2、题目分析
四个计数器同时开始计数,通过计数器的使能端可以随时控制计数器是否继续工作,通过同步清零端可以随时把任何一个计数器清零重新开始计数。
四位二进制可逆计数器可以随时进行加计数或减计数。
通过六进制计数器扫描数码管和作为对其他4个计数器的选择信号,再通过一个数据选择器选择出计数器的输出信号,通过4-7译码器的输出信号在数码管上显示出计数结果。
3、设计思路
当时钟信号频率足够大时可以实现六个数码管“同时”显示各计数器的计数结果。
因为人的眼睛分辨不出各数码管的快速跳变。
所以能实现所要求的同步计数的目的。
四、VHDL语言程序设计
1.十进制计数器:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYJISHU10IS
PORT(CLK,E,L:
INSTD_LOGIC;
I:
INSTD_LOGIC_VECTOR(3DOWNTO0);
C:
OUTSTD_LOGIC;
O:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));
ENDJISHU10;
ARCHITECTUREABCOFJISHU10IS
BEGIN
C<='1'WHENO="1001"ANDE='1'ELSE'0';
PROCESS(I)
BEGIN
IFRISING_EDGE(CLK)THEN
IFL='1'THENO<=I;
ELSIFE='1'THEN
IFO="1001"THENO<="0000";
ELSEO<=O+1;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDABC;
2.十二进制计数器:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYJISHU12IS
PORT(CLK,E,L:
INSTD_LOGIC;
I:
INSTD_LOGIC_VECTOR(3DOWNTO0);
O:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));
ENDJISHU12;
ARCHITECTUREABCOFJISHU12IS
BEGIN
PROCESS(I)
BEGIN
IFRISING_EDGE(CLK)THEN
IFL='1'THENO<=I;
ELSIFE='1'THEN
IFO="1011"THENO<="0000";
ELSEO<=O+1;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDABC;
3.六十进制计数器:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYJISHU60IS
PORT(CLK,E,L:
INSTD_LOGIC;
I:
INSTD_LOGIC_VECTOR(7DOWNTO0);
6
OL,OH:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));
ENDJISHU60;
ARCHITECTUREABCOFJISHU60IS
BEGIN
PROCESS(I)
BEGIN
IFRISING_EDGE(CLK)THEN
IFL='1'THENOL<=I(3DOWNTO0);OH<=I(7DOWNTO4);
ELSIFE='1'THEN
IFOL="1001"THENOL<="0000";
IFOH="0101"THENOH<="0000";
ELSEOH<=OH+1;
ENDIF;
ELSEOL<=OL+1;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDABC;
4.四位二进制可逆计数器:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYKENI16IS
PORT(CLK,JJ,L,E:
INSTD_LOGIC;
I:
INSTD_LOGIC_VECTOR(7DOWNTO0);
OL,OH:
BUFFERSTD_LOGIC_VECTOR(3DOWNTO0));
ENDKENI16;
ARCHITECTUREABCOFKENI16IS
BEGIN
PROCESS(I)
BEGIN
IFRISING_EDGE(CLK)THEN
IFL='1'THENOH<=I(7DOWNTO4);OL<=I(3DOWNTO0);
ELSIFE='1'THEN
IFJJ='1'THEN
7
IFOL="0101"ANDOH="0001"THENOL<="0000";OH<="0000";
ELSIFOL="1001"THENOL<="0000";OH<=OH+1;
ELSEOL<=OL+1;
ENDIF;
ELSIFJJ='0'THEN
IFOL="0000"ANDOH="0000"THENOL<="0101";OH<="0001";
ELSIFOL="0000"THENOL<="1001";OH<=OH-1;
ELSEOL<=OL-1;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDABC;
5.4--7译码器:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYYIMAIS
PORT(I:
INSTD_LOGIC_VECTOR(3DOWNTO0);
O:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDYIMA;
ARCHITECTUREABCOFYIMAIS
BEGIN
WITHISELECT
O<="1111110"WHEN"0000",
"0110000"WHEN"0001",
"1101101"WHEN"0010",
"1111001"WHEN"0011",
"0110011"WHEN"0100",
"1011011"WHEN"0101",
"1011111"WHEN"0110",
8
"1110000"WHEN"0111",
"1111111"WHEN"1000",
"1111011"WHEN"1001",
"1110111"WHEN"1010",
"0011111"WHEN"1011",
"0000000"WHENOTHERS;
ENDABC;
6.六进制计数器:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYJISHU6IS
PORT(CLK,E,L:
INSTD_LOGIC;
I:
INSTD_LOGIC_VECTOR(2DOWNTO0);
O:
BUFFERSTD_LOGIC_VECTOR(2DOWNTO0));
ENDJISHU6;
ARCHITECTUREABCOFJISHU6IS
BEGIN
PROCESS(I)
BEGIN
IFRISING_EDGE(CLK)THEN
IFL='1'THENO<=I;
ELSIFE='1'THEN
IFO="101"THENO<="000";
ELSEO<=O+1;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
ENDABC;
7.数据选择器:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYXUANZEIS
PORT(A,B,C,D,E,F:
INSTD_LOGIC_VECTOR(3DOWNTO0);
I:
INSTD_LOGIC_VECTOR(2DOWNTO0);
O:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDXUANZE;
ARCHITECTUREABCOFXUANZEIS
BEGIN
PROCESS(I)
BEGIN
CASEIIS
WHEN"000"=>O<=A;
WHEN"001"=>O<=B;
WHEN"010"=>O<=C;
WHEN"011"=>O<=D;
WHEN"100"=>O<=E;
WHEN"101"=>O<=F;
WHENOTHERS=>NULL;
ENDCASE;
ENDPROCESS;
ENDABC;
五、顶层文件截图
六、在EDA实验开发系统上的功能实现
在计算机和试验箱均断电的情况下连接好下载电缆和芯片的各端口之间的连线,接下来先给试验箱供电然后打开计算机找到MAX+plus2软件将先前已编辑好的的程序下载到芯片上。
调整时钟信号的频率直到7段数码管能实现所求的功能。
七、实验总结
1.实验注意事项
①不能再带电情况下拔插下载电缆。
②连接好下载电缆后应先接通实验箱的电源,再接通计算机的电源。
③测试完毕后应先断开计算机的电源再断开试验箱的电源最后拔下下载电缆的两个插头。
2.收获与体会
①掌握了十进制、十二进制、六十进制、十六进制计数器的设计方法。
②掌握多位计数器相连的设计方法。
③掌握了CPLD技术的层次化结构化设计方法。
④通过同一设计小组的几个同学分做不同模块然后将不同模块合起来联试,培养了大家的分工与合作的团队意识,同时加深对层次化设计理念的理解。
8、参考文献
李国洪、胡辉、沈明山等编著《EDA技术与实验》—机械工业出版社出版。
指导教师评语及设计成绩
评语
课程设计成绩:
指导教师:
日期:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用六位 数码管 动态 显示 计数器 计数 结果