利用拨码开关控制米字管进行特殊字符显示Word格式文档下载.docx
《利用拨码开关控制米字管进行特殊字符显示Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《利用拨码开关控制米字管进行特殊字符显示Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
2.2、设计要求………………………………………………………………………2
3、设计方案及实现情况……………………………………………………………2
3.1、设计思路………………………………………………………………………2
3.2、工作原理及框图………………………………………………………………3
3.3、各模块功能描述………………………………………………………………4
3.4、仿真结果………………………………………………………………………6
3.5、试验箱验证情况………………………………………………………………7
4、课程设计总结……………………………………………………………………9
5、参考文献…………………………………………………………………………10
1、课程设计目的
(1)学习操作数字电路设计实验开发系统,掌握米字管的工作原理及应用。
(2)掌握组合逻辑电路、时序逻辑电路的设计方法。
(3)学习掌握可编程器件设计的全过程。
2、课程设计内容和要求
2.1、设计内容
用VHDL语言编写程序,使键盘控制米字管进行特殊符号的显示。
2.2设计要求
1.学习掌握拨码开关控制模块、米字管的工作原理及应用;
2.熟练掌握VHDL编程语言,编写拨码开关控制模块的控制逻辑;
3.仿真所编写的程序,模拟验证所编写的模块功能;
4.下载程序到芯片中,硬件验证所设置的功能,能够实现特殊字符显示;
5.整理设计内容,编写设计说明书。
3、
设计方案及实现情况
3.1、设计思路
(1)相关知识:
米字管是17段的数码管,但是此次的课程设计的题目是进行十六进制数字的显示,所以并不需要数码管DP,即使用十六根数码管。
米字管的工作原理以及使用方法都和七段数码管类似,但所能显示的内容较七段数码管要丰富.
米字管的引脚图如图1。
图1米字管的引脚图
(2)基本思路:
采用模块化的设计思想,对于不同的功能用不同的程序模块来实现。
各个模块之间保持
相对独立,这样有利于针对不同的功能模块进行调试,以便增加整个系统的成功率;
同时还为功能改进和完善提供了方便,使其他无关模块不受影响。
基于这种设计思想,对本次课程设计题目分为以下两个模块:
拨码开关控制模块,控制米自管显示模块。
控制模块由拨码开关组成,显示模块由米字管组成。
两模块分别连接于FPGA芯片上。
编写相应的程序下载至FPGA芯片上,使其完成相应的功能。
3.2、工作原理及框图
(1)工作原理:
首先编写程序,实现使8个拨码开关工作,当其中任意一个为高电平时,控制米字管点亮相应的数码管,分别显示8个特殊字符。
用Maxplus
软件仿真各个模块以及总模块。
仿真无误后选择一个拨码开关连接至米字管的选通端,选择一个米字管工作。
将米字管的17段数码管的输入端以及8个拨码开关按照在Maxplus
软件中的管脚分配,分别将其接至CPLD芯片上,将程序下载至芯片,最后使程序控制芯片,完成相应的特殊字符的显示。
(2)逻辑功能表如表1
特殊字符
拨码开关
显示字符的逻辑段
“+”
Kin0
1001010100000000
“-“
Kin1
0001000100000000
“*”
Kin2
1110111000000000
“/”
Kin3
010*********
“>
”
Kin4
1001010100110000
“<
Kin5
0010100000000000
“П”
Kin6
0111000100000000
“米”
Kin7
1111111100000000
表1逻辑功能表
3.3、各模块功能描述
本实验共分为两个模块,分别是控制模块和显示模块。
(1)
拨码开关控制模块:
由拨码开关组成,负责控制哪一个特殊字符的显示。
当某一个拨码开关处于高电平状态时,与之相应的特殊字符即显示在米字管上。
拨码开关控制模块框图如图2。
图2拨码开关控制模块框图
拨码开关控制模块的VHDL程序:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityboma2is
port(a:
instd_logic_vector(7downto0);
q:
outstd_logic_vector(3downto0));
endboma2;
architecturertlofboma2is
signalb:
std_logic_vector(3downto0);
begin
process(a)
begin
caseais
when"
000000001"
=>
b<
="
0000"
;
000000010"
0001"
000000100"
0010"
000001000"
0011"
000100000"
0100"
001000000"
0101"
010000000"
0110"
100000000"
0111"
whenothers=>
null;
endcase;
q<
=b;
endprocess;
endrtl;
(2)米字管显示模块:
本模块由米字管组成。
米字管的17个输入控制端分别接至FPGA上,当有相应的拨码开关为高电平时,则米字管显示相应的特殊字符.
米字管显示模块框图如图3
图3米字管显示模块框图
米字管显示模块的VHDL程序:
libraryieee;
entityxianshiis
port(m:
instd_logic_vector(3downto0);
c:
outstd_logic_vector(15downto0));
endxianshi;
architecturertlofxianshiis
signaln:
std_logic_vector(15downto0);
process(m)
casemis
n<
1001010100000000"
0001000100000000"
1110111000000000"
0100100000000000"
0010100000000000"
0100001000000000"
0111000100000000"
1111111100000000"
1111111111111111"
c<
=n;
(3)整个实验电路图如图4所示。
图4整个实验电路图
3.4、仿真结果
(1)拨码开关控制模块仿真结果如图5。
图5拨码开关控制模块仿真时序图
(2)米字管显示模块仿真结果如图6。
图6米字管显示模块仿真时序图
(3)整个实验电路仿真结果如图7。
图7整个实验电路仿真时序图
3.5、实验箱验证情况
(1)实验总连线图如图8。
图8实验总连线图
(2)米字管显示特殊字符如图9~17
图9拨码显示“+”图10拨码显示“-”
图11拨码显示“*”图12拨码显示“/”
图13拨码显示“﹥”图14拨码显示“﹤”
图15拨码显示“米”图16拨码显示“П”
图17拨码显示“±
4、课程设计总结
本次课程设计,我的题目是用拨码开关控制米字管显示特殊字符。
通过这次的课程设计,第一个收获就是熟悉了以前不怎么常用的米字管,了解到米字管实际上就是17段数码管。
它的工作原理以及使用都和我们常用的7段数码管类似。
其次就是熟悉了利用FPGA控制逻辑电路的方法,并且对于使用FPGA的优点有了进一步的体会。
还有就是熟练掌握了Maxplus
仿真软件的使用流程。
另外,在整个设计流程中,从最初的查阅资料确定设计思路,到编程仿真,到最后的用实验箱实现,每一步都曾经走过弯路,从发现错误,并且改正的过程中我学到了很多有关于实际应用的知识,我想达到了动手实验的最终目的,锻炼了我的耐心以及发现问题的能力。
同时通过这次的课程设计,对于可编程器件的设计和使用也有了更深入的认识,为以后这方面的学习以及从事相关的工作拓宽了思路,打下了基础。
5、参考文献
(1).侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:
西安电子科技大学出版社,1999
(2).求是科技.CPLD/FPGA应用开发技术与工程实践.北京:
人民邮电出版社,2005
(3).罗苑棠.CPLD/FPGA常用模块与综合系统设计实例精讲.北京:
电子工业出版社,2007
(4).基于FPGA的数字系统设计.西安:
西安电子科技大学出版社,2008