




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中北大学课 程 设 计 说 明 书学生姓名:杨泽政学 号:0806024119学 院:电子与计算机科学技术学院专 业:微电子学题 目:利用拨码开关控制米字管进行十进制数字显示指导教师: 王红亮 段俊萍 职称: 讲师 2011 年 6 月 24 日目 录1、课程设计目的22、课程设计内容及要求22.1、设计内容22.2、设计要求23、设计方案及实现情况.23.1、设计思路23.2、工作原理及框图23.3、各模块功能描述43.4、仿真结果63.5、试验箱验证情况74、课程设计总结95、参考文献111、课程设计目的 1.学习操作数字电路设计实验开发系统,掌握米字管的工作原理及应用。2.掌握组合逻辑电路、时序逻辑电路的设计方法。3.学习掌握可编程器件设计的全过程。2、课程设计内容和要求 2.1、设计内容用VHDL语言编写程序,利用拨码开关控制米字管进行十进制数字显示。2.2、设计要求1学习掌握拨码开关控制模块、米字管的工作原理及应用;2. 熟练掌握VHDL编程语言,编写拨码开关控制模块的控制逻辑;3. 仿真所编写的程序,模拟验证所编写的模块功能;4. 下载程序到芯片中,硬件验证所设置的功能,能够实现十进制数字的显示;5. 整理设计内容,编写设计说明书。3、设计方案及实现情况3.1、设计思路采用模块化的设计思想,本实验结果的实现只需要两个模块就可以了。首先是拨码开关的输入模块,然后是米字管的显示模块。工作过程如下:首先输入一组开关信息,在拨码开关输入模块中进行一次信息存储,然后在米字管的显示模块中进行一次译码,使得米字管进行十进制数显示。3.2、工作原理及框图(1)拨码开关工作原理拨码开关其实就是一个高低电平输出器件,往上拨为高电平,往下拨为低电平。(2)米字管的工作原理实验箱上的米字管是共阴极接法,当接的是高电平时,对应的数字段就会发光。它除了能显示0-9十个数字外,还可以组合显示“ ”、“ ”、“ ”、“ ”以及英文字母A-Z26个字母等。每个数字段字母顺序如图1所示:图1 米字管显示原理图下面是显示十进制数字与对应字母输入高低电平的表格:表1 十进制数字与对应字母输入高低电平表格显示ABCDEFGHIJKLMNOP01111111100000000100110000000000002111011101000100031111110010001000400110001100010005110111011000100061101111110001000711110000000000008111111111000100091111110110001000(3)系统框图:图2系统框图3.3、各模块功能描述(1)BOMA模块:功能就是记住拨码开关的输入信息,通过译码使得每个开关控制一位十进制数的输出。详细代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;use ieee.std_logic_arith.all;ENTITY BOMA ISport(k : in std_logic_vector(9 downto 0);q : out std_logic_vector(3 downto 0);end BOMA;ARCHITECTURE boma_r OF boma ISBEGINprocess(k)begincase k iswhen 0000000001=qqqqqqqqqqq=1111;end case;end process;end boma_r;(2)显示mizi模块:功能就是就是把拨码开关的输入状态通过米字管显示出来,从而实现拨码开关控制米字管的十进制显示。(3)显示扩展:用一个control信号控制米子管显示,当control为高电平时,实现拨码开关控制米子管十进制显示;当control为低电平时,动态显示十进制数(0-9)。详细代码如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MIZI ISport( control,clk:in std_Logic;s : in std_logic_vector(3 downto 0);q :out std_logic_vector(16 downto 0);end mizi;ARCHITECTURE mizi_r OF mizi IS signal uclk :std_logic;signal s0,s1,s2,s3,s4,s5,s6,s7,s8,s9: std_logic_vector(16 downto 0);signal a: std_logic_vector(3 downto 0);signal i: integer range 0 to 4000000;BEGINs0=11111111000000000; -0s1=00000000001000010; -1s2=11101110100010000; -2s3=11111100100010000; -3s4=00000001101010010; -4s5=11011101100010000; -5s6=11011111100010000; -6s7=11110000000000000; -7s8=11111111100010000; -8s9=11111101100010000; -9-分频process(clk)begin if clkevent and clk=1 thenif i=4000000 theni=0;uclk=not uclk;else i=i+1;end if;end if;end process;-循环显示控制process(uclk)beginif uclkevent and uclk=1 thenif a=1001 thena=0000;else acase s iswhen 0000=qqqqqqqqqqqcase a iswhen 0000=qqqqqqqqqqq=null;end case;end case ;end process;end mizi_r;3.4、仿真结果(1)BOMA模块仿真波形图如下所示:图3 BOMA模块仿真波形图由仿真图可以看出,拨码开关的信息存入q,例如0000000001用q为0表示,0000000010用q为1表示10000000000用q为9表示。 (2)MIZI模块仿真波形图如下所示:图4 MIZI模块仿真波形图由仿真结果可知:当输入为0的时候,输出为11111111000000000,输入为1的时候,输出为00000000001000010,相应的在米字管上就会显示对应的数字。(3)总体仿真结果如下图所示:图5 总体仿真结果图3.5、实验箱验证情况(1) 按照程序中管脚的分配,连接好电路。(2)将程序仿真编译后下载到FPGA芯片,接通电源,拨动拨码开关得到预期的结果,结果如下图所示:图6 数字0显示图 图7数字1显示图图8数字2显示图 图9数字3显示图 图10数字4显示图 图11 数字5显示图 图12 数字6显示图 图13 数字7显示图 图14 数字8显示图 图15数字9显示图4、课程设计总结继大二我们学习了硬件描述语言之后,我们今年又学习了可编程逻辑器件的应用,在这两门课程的讲课过程中,我充分感受到了硬件描述语言的灵活与强大,一些单片机上很多程序才能实现的功能在FPGA上仅仅使用很少的程序就搞定了,虽然这也跟编程语言有关系,但是也显示了硬件描述语言必定会成为以后的主流编程语言。通过本次实验,我学到了拨码开关的工作原理,还掌握了米字管的工作以及显示原理,使我又增添了许多这方面的知识,尤其是模块的设计。原来学模块的时候学得并不是很清楚,通过这次试验我对模块的概念掌握得更清楚了。采用模块化的设计思想,对于不同的功能用不同的程序模块来实现。各个模块之间保持相对独立,这样有利于针对不同的功能模块进行调试,以便增加整个系统的成功率;同时还为功能改进和完善提供了方便,使其他无关模块不受影响。这次课程设计真的很有意义,使我了解并掌握了硬件描述语言的应用并能用FPGA实现一定的功能,我会更加努力学习本门课程,我相信它会在以后的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论