ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:369.54KB ,
资源ID:20718743      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20718743.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(利用键盘控制点阵进行汉字显示课程设计Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

利用键盘控制点阵进行汉字显示课程设计Word下载.docx

1、2.1、设计内容 用VHDL语言编写程序,使键盘控制点阵显示模块显示汉字。2.2、设计要求1学习掌握键盘控制模块、点阵显示模块的工作原理及应用;2. 熟练掌握VHDL编程语言,编写键盘控制模块的控制逻辑;3. 仿真所编写的程序,模拟验证所编写的模块功能;4. 下载程序到芯片中,硬件验证所设置的功能,能够实现汉字显示;5. 整理设计内容,编写设计说明书。3、设计方案及实现情况3.1、设计思路通过键盘扫描程序的行输出与列输入就可以确认按键的状态,再通过键盘处理程序便可识别键值。将产生的键值信号送到4-16译码器,经过译码器译码将键值通过LED点阵显示出来。3.2、工作原理及框图3.2.1、矩阵式键

2、盘的工作原理矩阵式键盘又叫行列式键盘,是用I/O口线组成的行、列矩阵结构,在每根行线与列线的交叉处,二线不直接相通而是通过一个按键跨接接通。采用这种矩阵结构只需M根行输出线和N根列输入线,就可连接MN个按键。通过键盘扫描程序的行输出与列输入就可确认按键的状态,再通过键盘处理程序便可识别键值。如图1图1 48矩阵键盘电路原理图键盘译码电路,主要是根据当按键时键盘会输出四 个KIN值(KIN3KIN0)和三个SEL值(SEL2SEL0)。这些构成了键盘的参数。反过来就可以以这些参数来确定具体的键值。有了键盘参数表 ,要写出键盘译码电路的VHDL程序就非常容易了,尤其针对有表可以对照的电路设计,只要

3、使用CASE-WHEN或WHEN-ELSE语句,便可轻松完成设计。表1 键盘参数表SEL2-SEL0KIN3-KIN0对应的按键0001110100MEM1101681011LASTE0111CTRLEMPTY40011101ESC79STEPFEMPTY1SHIFT01021104REGACNEXTEMPTY2NONE01131115EXECBDENTEREMPTY33.2.2、点阵的工作原理点阵式LED显示器采用逐行扫描式工作。要使点阵显示出一个字符的编程方法是:首先选通第一行;接着,向行码锁存器写入该行的字型码(即列数据)。然后,按相同的方式选通第二行,写第二行的字型码由此类推,直到写完

4、所有行的字型码,完成一个字符的显示。如果要使多个点阵循环显示多个字符,只要把显示的各个字符按顺序安排在显示缓冲区,然后根据显示的字符去查表,再按一定的时序向各个字形行码锁存器和行扫描器输入相应的字形行码和行扫描码,便可达到目的。图2 点阵字符的显示3.2.3、程序框图图3 程序总图3.3、各模块功能描述3.3.1、分频模块此模块对时钟信号进行分频,产生时序信号。 图4 分频模块图程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin is port(clk:in std_

5、logic; divclk:out std_logic);end fenpin;architecture dclk_arch of fenpin is beginprocess(clk)variable cnt:std_logic_vector(1 downto 0);variable a:std_logic; if clkevent and clk=1 then if a=0if cnt=11 a:=; else cnt:=cnt+1; end if;elsif a= if cnt=00 a: else=cnt-1; end if;end if;divclk=a;end process;en

6、d dclk_arch;3.3.2、CNT模块此模块产生选通信号和键盘扫描信号,键盘扫描信号的变化顺序为000-001-010-011-100-101-110-111,由sel2&sel1&sel0来决定。依次循环变化来扫描8列按键。其中sel3无影响。 图5 CNT模块图程序:entity cnt is port( clk: sel3,sel2,sel1,sel0:end cnt;architecture cnt_arch of cnt isvariable cn:std_logic_vector(3 downto 0); if cn=1111 cn:=0000=cn+1;sel0=cn(0

7、);sel1=cn(1);sel2=cn(2);sel3=cn(3);end cnt_arch;3.3.3、键盘译码模块当按下数字键时,键盘所产生的的输出KIN3-KIN0跟扫描信号SEL3-SEL0结合,编译成与数字键键值相对应数字的二位二进制码,传给到显示模块。 图6 键盘译码程序框图entity ym is port(kin3,kin2,kin1,kin0: clk: sel3,sel2,sel1,sel0: p:out std_logic_vector(1 downto 0);end ym;architecture ym_arch of ym issignal a:signal b:s

8、ignal q:signal m:std_logic_vector(7 downto 0); a=kin3&kin2&kin1&kin0; b=sel3&sel2&sel0; mq=q; end case; pend ym_arch;3.3.4、显示模块此模块对应产生列字符扫描信号图7 显示模块entity cora is port(ch:in std_logic_vector(1 downto 0); se0,se1,se2,se3: q:out std_logic_vector(15 downto 0);end cora;architecture corn_arc of cora issi

9、gnal sel: selnull; end case;when 000011000110000001111100011111100001100001100100001100000110011001100000011111111100000001111111000000110000000011111111111111110000011100000000000001111100000000001110011100000000111000111000000111000001110000111000000011100111000000001110001100011100010000110001110

10、001100110000000000110011001111110011000100111111001000000000011100000000000001100000001111111111111100000110011000000end case;end corn_arc;3.4、仿真结果3.4.1、分频模块仿真图图8 分频模块仿真图3.4.2、CNT模块仿真图图9 CNT模块仿真图3.4.3、键盘译码模块仿真图图10 键盘译码模块仿真图3.4.4、显示模块仿真图图11 显示模块仿真图3.4.5、总电路仿真图图12 总电路仿真图3.5、实验箱验证情况将写好的程序仿真保存后建立一个.gdf文

11、件,将所有的程序框图连接起来(如图4)。然后仿真,无误后,选择芯片类型。分配管脚,然后再仿真,无错后。根据所分配的管脚在实验箱上把线连接好(如图18),最后把程序下载到FPGA中,运行并观察结果。 图13 硬件连线图在本次实验中,我只用了0、1、2、3,四个键来实现显示,当按下这些键时其显示的结果是图14 显示汉字“中” 图15 显示汉字“北” 图16 显示汉字“大” 图17 显示汉字“学”4、课程设计总结通过本次课程设计,学会了操作数字电路设计实验开发系统,掌握了点阵显示模块的工作原理及应用和组合逻辑电路、时序逻辑电路的设计方法以及键盘控制模块的工作原理及应用;理解了键盘和点阵的逻辑工作原理。熟练掌握了VHDL编程语言,编写出键盘控制模块的控制逻辑和点阵显示逻辑的VHDL程序,仿真成功并下载到FPGA中。最终在实验箱上成功实现了硬件验证所设置的功能-汉字显示。5、参考文献1侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计. 西安:西安电子科技大学出版社,19992求是科技.CPLD/FPGA应用开发技术与工程实践. 北京:人民邮电出版社,20053罗苑棠.CPLD/FPGA常用模块与综合系统设计实例精讲. 北京:电子工业出版社,20074任勇峰,庄新敏.VHDL与硬件实现速成.北京:国防工业出版社,2005

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1