欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    利用拨码开关控制液晶显示器进行十进制数.doc

    • 资源ID:865869       资源大小:342.27KB        全文页数:12页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    利用拨码开关控制液晶显示器进行十进制数.doc

    1、目 录1. 课程设计目的22. 课程设计内容和要求22.1 设计内容22.2 设计要求23. 设计方案及实现情况23.1 设计思路23.2 工作原理及框图23.3 各模块功能描述33.4 仿真结果73.5 实验箱验证情况84. 课程设计总结125. 参考文献121、 课程设计目的:1.学习操作数字电路设计实验开发系统,掌握液晶显示模块的工作原理及应用。2.掌握组合逻辑电路、时序逻辑电路的设计方法。3.学习掌握可编程器件设计的全过程。2、课程设计内容和要求:2.1、设计内容1. 拨码模块实现对液晶显示的扫描控制。2. 编写控制液晶显示的程序,实现液晶的显示控制,使液晶能够正常工作。3添加消抖功能

    2、模块,协调模块更好地进行工作。2.2、设计要求1学习掌握按键拨码控制模块、液晶显示模块的工作原理及应用;2. 熟练掌握VHDL编程语言,编写拨码开关控制模块的控制逻辑;3. 仿真所编写的程序,模拟验证所编写的模块功能;4. 下载程序到芯片中,硬件验证所设置的功能,能够实现十进制数字的显示;3、设计方案及实现情况3.1、设计思路 采用模块化的设计思想,对于不同的功能用不同的程序模块来实现。各个模块之间保持相对独立,这样有利于针对不同的功能模块进行调试,以便增加整个系统的成功率;同时还为功能改进和完善提供了方便,使其他无关模块不受影响。基于这种设计思想,对本次课程设计题目分为以下几个模块:消抖模块

    3、:对输入进行消抖处理,消除抖动对输入的影响;开关模块:对拨动的开关进行检测,并将得到的输入转换成2进制数;译码模块:对从开关模块得到的2进制数进行译码,使其转变为液晶的显示码输出。3.2、工作原理及框图拨码模块消抖模块译码模块 图13.3各模块源程序消抖模块源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity antivibrate is port( rst:in std_logic; xd: in std_logic; c

    4、lk: in std_logic; xdout: out std_logic );end antivibrate;architecture anti of antivibrate 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=5)then count=0; xdout=not xd; else count=count+1; end if; end if; e

    5、nd process;end anti;按键模块源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity keyboard isport( aj:in std_logic; rst:in std_logic; ajout:out std_logic_vector(3 downto 0) );end keyboard;architecture key of keyboard issignal q: std_logic;signal

    6、 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=1001 then count=0000; else count=count+1; end if; end if; ajout=count; end process; end key;译码电路模块源程序:library ieee;use ieee.std_logic_1164.all;use ieee

    7、.std_logic_unsigned.all;entity decode is port(ym:in std_logic_vector(3 downto 0); Y:out std_logic_vector(7 downto 0);end decode;architecture decode1 of decode issignal a:std_logic_vector(3 downto 0);begin a=ym;Y=00110000 when ( a=0000 ) else 00110001 when ( a=0001 ) else 00110010 when ( a=0010 ) els

    8、e 00110011 when ( a=0011 ) else 00110100 when ( a=0100 ) else 00110101 when ( a=0101 ) else 00110110 when ( a=0110 ) else 00110111 when ( a=0111 ) else 00111000 when ( a=1000 ) else 00111001 when ( a=1001 ) else 00110000;end decode1;LCD模块源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGI

    9、C_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY lcd ISPORT(busy:INSTD_LOGIC;clk_fsm :INSTD_LOGIC;db_ascii:INSTD_LOGIC_VECTOR(7 DOWNTO 0);req:OUTSTD_LOGIC;db:OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END lcd;ARCHITECTURE lcd1 OF lcd ISSIGNALready:STD_LOGIC;TYPEstate IS (CMD_SEND,XX_SEND,YY_SEND,ASCII_SEND);

    10、 SIGNAL current_state:state;-SIGNAL db_send: std_logic_vector(7 downto 0);BEGINPROCESS(clk_fsm,busy,ready,db_ascii) variable cnt1: std_logic_vector(2 downto 0); BEGIN -db_sendIF busy=0 THENIF ready=1 THEN current_state = XX_SEND;ready = 0;ELSEdb = 11111001;-F1req = 1;ready = 0;END IF;ELSEreq = 0;rea

    11、dy = 1;current_state IF busy=0 THENIF ready=1 THENcurrent_state = YY_SEND;ready = 0;ELSEdb = 00001001;-07req = 1;ready = 0;END IF;ELSEreq = 0;ready = 1;current_state IF busy=0 THENIF ready=1 THENcurrent_state = ASCII_SEND;ready = 0;ELSEdb = 00000010;-02req = 1;ready = 0;END IF;ELSEreq = 0;ready =1;c

    12、urrent_state IF busy=0 THENIF ready=1 THENcurrent_state = CMD_SEND;ready = 0;ELSE db =db_ascii; req = 1;ready = 0; END IF;ELSEreq = 0;ready = 1;current_state = ASCII_SEND;END IF;END CASE;END IF;END PROCESS;END lcd;3.4、仿真结果1、消抖模块仿真波形图如下所示: 图22、拨码开关模块仿真波形图如下所示: 图33、译码模块仿真波形图如下所示: 图44、液晶模块仿真波形图如下所示: 图5

    13、3.5、实验箱验证情况 1. 电路设计总体图 图62. 实验箱连接图 图73.实验箱验证图 图8 图9 图10 图11 图12 图13 图14 图15 图16 图174、课程设计总结本次实验遇到的问题是如何实现防抖电路和拨码开关译码同步进行,经过不断的实验和更改,终于比完美的解决了以上问题,从而实现了拨码开关控制液晶,在其上显示出10进制数。软件的编写与调试是本次实验的重点,在编写过程中遇到最大的麻烦是标点符号和拼写错误,经过反复调试终于得到了预期的结果。硬件电路的调试经过多次的实验才达到实验的要求,原因是连线中有短线和部分引脚分配不正确。本次实验提高的我的设计能力和动手能力,为将来的工作打下了良好的基础。 5主要参考文献:1侯伯亨,顾新。VHDL硬件描述语言与数字逻辑电路设计 西安:西安电子科技大学出版社,19992求是科技。CPLD/FPGA应用开发技术与工程实践 北京:人民邮电出版社,20053罗苑棠。CPLD/FPGA常用模块与综合系统设计实例精讲北京:电子工业出版社,20074任勇峰,庄新敏。VHDL与硬件实现速成北京:国防工业出版社,200511


    注意事项

    本文(利用拨码开关控制液晶显示器进行十进制数.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922