利用键盘控制米字管进行特殊字符显示NUC_第1页
利用键盘控制米字管进行特殊字符显示NUC_第2页
利用键盘控制米字管进行特殊字符显示NUC_第3页
利用键盘控制米字管进行特殊字符显示NUC_第4页
利用键盘控制米字管进行特殊字符显示NUC_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、课程设计目的1.学习操作数字电路设计实验开发系统,掌握米字管显示模块的工作原理及应2.掌握组合逻辑电路、时序逻辑电路的设计方法。3.学习掌握可编程器件设计的全过程。二、课程设计内容和要求2.1、设计内容1. 学习掌握键盘控制模块、数码管显示模块的工作原理及应用;2熟练掌握VHDL编程语言,编写键盘控制模块的控制逻辑。2.2、设计要求 1. 仿真所编写的程序,模拟验证所编写的模块功能;2下载程序到芯片中,硬件验证所设置的功能,能够实现特殊字符的显示;3整理设计内容;三、设计方案及实现情况时序产生电路3.1 设计思路利用键盘扫描电路米字管显示电路 图 1 系统设计总体原理图3.2工作原理及框图

2、1、键盘原理简述键盘电路网络很像一台微缩的计算机,它拥有自己的处理器和在该处理器之间传输数据的电路,这个电路的很大一部分组成了键矩阵。键矩阵是位于键下方的一种电路网格。在所有的键盘(中,每个电路在每个按键所处的位置点下均处于断开状态。当您按下某个键时,此按键将按下了开关,从而闭合电路,使得少量电流可以通过。开关的机械作用会导致某种振动(称作回弹),处理器可以过滤掉这种振动。如果您按下某键并保持住,则处理器认为您是在反复按下该键。2、键盘中按键的判断对于键盘中有无键按下的判断是很重要的,具体判断如下:将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的

3、键位于低电平线与行线相交叉的按键之中。若所有列线均为高电平,则键盘中无键按下。在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与低电平的行线交叉处的按键就是闭合的按键。3、米字型数码管显示模块米字管为共阴数码管。本模块的输入口共有21个,为17个段信号输入口和4个位信号输入口,分别为A1、A2、B、C、D1、D2、E、F、G、H、J、K、M、N、O、P、DP、SEL0、SEL1、SEL2、SEL3。其中SEL0对应最左端的数码管,SEL3对应最

4、右端的数码管。米字管的管脚分配如图所示: 图 2 米自管的管角图 3.3、各模块功能描述 1、时序电路模块功能:是产生控制电路时序脉冲信号的模块。library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity dclk is port(clk:in std_logic; divclk:out std_logic); end dclk; architecture dclk_arch of dclk is begin process(clk) variable cnt:std_logic_vect

5、or(1 downto 0); variable a:std_logic; beginif clkevent and clk=1 thenif a=0 thenif cnt=11 thena:=1;elsecnt:=cnt+1;end if;elsif a=1 thenif cnt=00 thena:=0;elsecnt:=cnt-1;end if;end if; end if; divclk=a; end process; end dclk_arch;(2)扫描模块:由扫描模块产生的扫描信号在键盘中扫描,检测是否有是否有按键。 library ieee; use ieee.std_logic

6、_1164.all; use ieee.std_logic_unsigned.all; entity cnt is port( clk:in std_logic; sel2,sel1,sel0:out std_logic); end cnt;architecture cnt_arch of cnt isbeginprocess(clk)variable cn:std_logic_vector(2 downto 0);beginif clkevent and clk=1 thenif cn=111 thencn:=000;elsecn:=cn+1;end if;end if;sel0=cn(0)

7、; sel1=cn(1); sel2=cn(2);end process;end cnt_arch; (3) 译码模块:将扫描信号从键盘中扫描到的信号,进行译码,从而控制米字管 的亮灭。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity mizi isport( kin3,kin2,kin1,kin0: in std_logic; sel2,sel1,sel0: in std_logic; q: out std_logic_vec

8、tor(16 downto 0); selout: out std_logic_vector(3 downto 0);end mizi;architecture a of mizi issignal a:std_logic_vector(3 downto 0);signal b:std_logic_vector(2 downto 0);signal y:std_logic_vector(3 downto 0);signal x:std_logic_vector(3 downto 0);begina=kin3&kin2&kin1&kin0;b=sel2&sel1&sel0;x=0000 and

9、x=0111 thenyq=01001010100000000;seloutq=01111111100000000;seloutq=00100100000000000;seloutq=10000000000000000;seloutq=01001010100110000;seloutq=01001010000110000;seloutq=01010010000000011;seloutq=01111010111111111;seloutnull; end case;end process;end a;3.4仿真结果 图 3 Dclk仿真图 图 4 Cnt仿真图 图 5 译码及显示电路仿真图 图

10、6 总体仿真图3.5 实验箱验证情况 图7 按0键第一个管显示“ +” 图8 按1键第二管显示“ *” 图9 按LAST键第一个管显示“土” 图10 按STEP 键第二个管显示“上”四、 课程设计总结1、对于个人专业课程要稳扎稳打,实现理论运用到实际中的能力。2、学会使用身边的学习环境,利用图书馆的资料查找自己需要的东西。3、多和别人交谈,交流经验,正所谓三人行必有我师。4、要有良好的使用软件的习惯,按照规定排版。养成良好的电子设计习惯。5、通过此次试验,我对于max pllus II有了更为深刻的了解。明白在以后的学习设计过程中应该按照一般电路设计的思路对系统设计进行详细的设计。6、培养了我的自学能力,学会了自己分析题目,找到解决方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论