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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

利用按键开关控制液晶显示器进行十六进制数字显示.docx

1、利用按键开关控制液晶显示器进行十六进制数字显示目 录1、课程设计目的32、课程设计内容及要求32.1、设计内容32.2、设计要求33、设计方案及实现情况33.1、设计思路33.2、工作原理及框图33.3、各模块功能描述43.4、仿真结果113.5、试验箱验证情况114、课程设计总结145、参考文献14附录1:液晶显示屏说明书151、课程设计目的1.学习操作数字电路设计实验开发系统,掌握液晶显示模块的工作原理及应用。2.掌握组合逻辑电路、时序逻辑电路的设计方法。3.学习掌握可编程器件设计的全过程。2、课程设计内容和要求:2.1、设计内容用VHDL语言编写程序,实现利用按键开关控制液晶屏显示16进

2、制数。2.2、设计要求1学习掌握按键开关控制模块、液晶显示模块的工作原理及应用;2. 熟练掌握VHDL编程语言,编写按键开关控制模块的控制逻辑;3. 仿真所编写的程序,模拟验证所编写的模块功能;4. 下载程序到芯片中,硬件验证所设置的功能,能够实现十六进制数字的显示;5. 整理设计内容,编写设计说明书。3、设计方案及实现情况3.1、设计思路根据题目设计要求,用按键控制液晶屏显示16进制数,开始的实际本来是要用16个按键来实现,但在硬件实现的过程中,一直出现各种问题,所以采用了一个按键,循环显示0f。由于是按键控制,所以加入了消抖程序,对液晶屏的控制则是通过状态机来实现的。先输入F9,选择8*1

3、6ascII码显示模式,在输入坐标XX YY。3.2、工作原理及框图本设计将系统分为四个模块,消抖模块,按键输入模块,译码模块和液晶屏控制模块,先分别用MAX+PLUS II文本设计输入编写每个模块 ,模块功能好了就可以实现最后的结果了。信号由消抖模块的XD管脚输入,经过消抖程序后,在译码模块中将四位二进制代码翻译成八位2进制的ASCII码,输入到液晶屏控制模块中,实现对液晶屏的控制。与此同时,每按下一次按键,按键模块中的变量就会+1,当加到1111B时,自动清零,实现了0-F循环显示。最重要也是最难的液晶屏控制模块采用状态机程序编写,原理祥见附录1(如图1)。图1 系统原理图3.3、各模块功

4、能描述(1)消抖电路加入本模块的原因是因为按键开关在按下时信号会产生抖动,在硬件实现是可能出现按一下跳过很多个数的情况,对程序的输入会产生影响,加入模块后消除抖动(如图2)。程序代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; 图2 消抖模块硬件原理图entity xd is port( rst:in std_logic; xd: in std_logic; clk: in std_logic; xdout: out std_log

5、ic );end xd;architecture a of xd is signal count:integer range 0 to 100; begin process(clk,rst,xd) begin if(rst=0)then count=0; xdout=0; elsif(clkevent and clk=1)then if(count=30)then count=0; xdout=not xd; else count=count+1; end if; end if; end process;end a;(2)按键输入和译码模块该模块的作用是将按键输入进来的信号进行处理,每按一次,

6、数自动+1,并将数字的ASCII码编译成8位2进制ASCII码送给液晶屏控制程序,当显示到 F时置0(如图3)。程序代码:按键输入模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all; 图3 按键及译码模块硬件原理图 use ieee.std_logic_arith.all;entity aj isport( aj:in std_logic; rst:in std_logic; ajout:out std_logic_vector(3 downto 0) );end aj;architecture

7、ajwork of aj issignal q: std_logic;signal count : std_logic_vector(3 downto 0);begin q=aj when rst=1else 0; process(q,rst) begin if(rst=0)then count=0000; elsif qevent and q=1 then if count=1111 then count=0000; else count=count+1; end if; end if; ajout=count; end process; end ajwork;译码模块library iee

8、e;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ym is port(ym:in std_logic_vector(3 downto 0); Y:out std_logic_vector(7 downto 0);end ym;architecture yima_arch of ym issignal a:std_logic_vector(3 downto 0);begina=ym;Y IF busy=0 THEN IF ready=1 THEN current_state = XX; ready = 0; ELSE db = 11111001; req = 1; ready = 0; END IF; ELSE req = 0; ready = 1; current_state IF busy=0 THEN IF ready=1 THEN current_state = YY; ready = 0; ELSE db = 00000111; req = 1; ready = 0; END IF; ELSE req = 0; ready = 1; current_state IF busy=0 THEN IF ready=1 THEN current_state = AS

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

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