34利用拨码开关控制数码管进行十六进制数字显示说明书.docx
《34利用拨码开关控制数码管进行十六进制数字显示说明书.docx》由会员分享,可在线阅读,更多相关《34利用拨码开关控制数码管进行十六进制数字显示说明书.docx(13页珍藏版)》请在冰豆网上搜索。
34利用拨码开关控制数码管进行十六进制数字显示说明书
中北大学
课程设计说明书
学生姓名:
胡修勇
学号:
1106024234
学院:
仪器与电子学院
专业:
微电子科学与工程
题目:
利用拨码开关控制数码管进行十六进制数字
显示
指导教师:
李圣昆职称:
讲师
2014年6月22日
1.课程设计目的…………………………………………………………1
2.课程设计内容和要求…………………………………………………1
3.设计方案及其实现……………………………………………………1
3.1设计思路……………………………………………………………………1
3.2工作原理及原理图…………………………………………………………1
3.3模块功能描述………………………………………………………………2
3.4仿真结果……………………………………………………………………3
3.5实验箱验证情况……………………………………………………………4
4.课程设计总结…………………………………………………………8
5.参考文献………………………………………………………………8
1.课程设计目的
(1)学习操作数字电路设计实验开发系统,掌握液晶显示器的工作原理及应用。
(2)掌握组合逻辑电路、时序逻辑电路的设计方法。
(3)学习掌握可编程器件设计的全过程。
2.课程设计内容和要求
1.学习掌握拨码开关控制模块、数码管的工作原理及应用;
2.熟练掌握VHDL编程语言,编写拨码开关控制模块的控制逻辑;
3.仿真所编写的程序,模拟验证所编写的模块功能;
4.下载程序到芯片中,硬件验证所设置的功能,能够实现十六进制数字的显示;
5.整理设计内容,编写设计说明书。
3.设计方案及其实现
3.1设计思路
由于七段数码管(外加小数点)是共阴极的,可以用七个电平驱动数码管的显示。
通过对不同管脚的点亮,使数码管显示16进制的每个数字。
可以用四个拨码开关组合成4位二进制对应BCD码以表示16进制。
当四位BCD码变化时,在输出端输出相应的高低电平以驱动七段数码管的显示。
3.2工作原理及原理图
七段共阴极数码管由数码管由abcdefg七段组成,分别对不同的引脚写高电平可以点亮。
在输入端输入相应的bcd码,在输出端就会产生相应的电平以驱动数码管的显示。
由于只需要16个数的显示。
那么拨码开关只需用四个就可以实现16个数字的表示。
工作原理图如下:
七段数码管如下图所示:
由图知,如果要显示数字“0”,只需点亮abcdef段,对应的输出端电平为1111110.要显示数字“1”,只需点亮bc段,对应的输出端电平为0110000…如果要显示字母“A”,只需点亮abcefg段,对应的输出端电平为1110111.如果要显示字母“b”,只需点亮cdefg段,对应的输出端电平为0011111.同理可以显示其他数字和字母。
3.3模块功能描述
根据输出功能的要求,写出如下vhdl代码已实现所需的功能。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entitybomakaiguanis
port(indata:
instd_logic_vector(3downto0);
output:
outstd_logic_vector(6downto0));
endentity;
architectureactionofbomakaiguanis
signalY:
std_logic_vector(6downto0);
begin
process(indata)
begin
caseindatais
when"0000"=>Y<="1111110";--abcdefg
when"0001"=>Y<="0110000";--4321
when"0010"=>Y<="1101101";when"0011"=>Y<="1111001";
when"0100"=>Y<="0110011";when"0101"=>Y<="1011011";
when"0110"=>Y<="1011111";when"0111"=>Y<="1110000";
when"1000"=>Y<="1111111";when"1001"=>Y<="1111011";
when"1010"=>Y<="1110111";when"1011"=>Y<="0011111";
when"1100"=>Y<="1001110";when"1101"=>Y<="0111101";
when"1110"=>Y<="1001111";when"1111"=>Y<="1000111";
whenothers=>Y<="0001000";
endcase;
output<=Y;
endprocess;
endarchitecture;
3.4仿真结果
通过对四个输入端(对应于拨码开关的高或低电平信号)输入十六个四位BCD码数字,然后仿真得出以下波形图,有七个输出端分别对应数码管的七个段发光二极管。
3.5实验箱验证情况
对FPGA分配引脚,保存并重新编译,如下图。
将程序仿真编译后下载到FPGA芯片,如图。
拨动拨码开关,可以在数码管上依次显示16进制的数字。
以下是拨动拨码开关显示的16进制数的截图,从0到F的显示。
4.课程设计总结
通过本次实验,掌握了对FPGA的简单控制、应用及开发流程。
要实现某一功能,首先应根据要求查找相关资料,确定实现方案。
然后设计输入,对输入的文件编译后波形仿真。
经过仿真后下载到FPGA再进行验证,最终实现功能。
5.参考文献
1.任勇峰,庄新敏.VHDL与硬件实现速成.北京:
国防工业出版社,2005
2.侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计.西安:
西安电子科技大学出版社,1999
3.基于FPGA的数字系统设计.西安:
西安电子科技大学出版社,2008
4.罗苑棠.CPLD/FPGA常用模块与综合系统设计实例精讲.北京:
电子工业出版社,2007