利用按键开关控制液晶显示器进行十六进制数字显示.doc
《利用按键开关控制液晶显示器进行十六进制数字显示.doc》由会员分享,可在线阅读,更多相关《利用按键开关控制液晶显示器进行十六进制数字显示.doc(21页珍藏版)》请在沃文网上搜索。
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、设计要求1学习掌握按键开关控制
2、模块、液晶显示模块的工作原理及应用;2. 熟练掌握VHDL编程语言,编写按键开关控制模块的控制逻辑;3. 仿真所编写的程序,模拟验证所编写的模块功能;4. 下载程序到芯片中,硬件验证所设置的功能,能够实现十六进制数字的显示;5. 整理设计内容,编写设计说明书。3、设计方案及实现情况3.1、设计思路根据题目设计要求,用按键控制液晶屏显示16进制数,开始的实际本来是要用16个按键来实现,但在硬件实现的过程中,一直出现各种问题,所以采用了一个按键,循环显示0f。由于是按键控制,所以加入了消抖程序,对液晶屏的控制则是通过状态机来实现的。先输入F9,选择8*16ascII码显示模式,在输入坐标XX YY
3、。3.2、工作原理及框图本设计将系统分为四个模块,消抖模块,按键输入模块,译码模块和液晶屏控制模块,先分别用MAX+PLUS II文本设计输入编写每个模块 ,模块功能好了就可以实现最后的结果了。信号由消抖模块的XD管脚输入,经过消抖程序后,在译码模块中将四位二进制代码翻译成八位2进制的ASCII码,输入到液晶屏控制模块中,实现对液晶屏的控制。与此同时,每按下一次按键,按键模块中的变量就会+1,当加到1111B时,自动清零,实现了0-F循环显示。最重要也是最难的液晶屏控制模块采用状态机程序编写,原理祥见附录1(如图1)。图1 系统原理图3.3、各模块功能描述(1)消抖电路加入本模块的原因是因为按
4、键开关在按下时信号会产生抖动,在硬件实现是可能出现按一下跳过很多个数的情况,对程序的输入会产生影响,加入模块后消除抖动(如图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_logic );end xd;architectu
5、re 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)按键输入和译码模块该模块的作用是将按键输入进来的信号进行处理,每按一次,数自动+1,并将数字的ASCII码编译成8位
6、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 ajwork of aj issignal
7、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 ieee;use ieee.std_logic_1
8、164.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;YIF busy=0 THENIF ready=1 THEN current_state = XX;ready = 0;ELSEdb = 11111001;req = 1
9、;ready = 0;END IF;ELSEreq = 0;ready = 1;current_state IF busy=0 THENIF ready=1 THENcurrent_state = YY;ready = 0;ELSEdb = 00000111;req = 1;ready = 0;END IF;ELSEreq = 0;ready = 1;current_state IF busy=0 THENIF ready=1 THENcurrent_state = ASCII;ready = 0;ELSEdb = 00000011;req = 1;ready = 0;END IF;ELSEr
10、eq = 0;ready =1;current_state IF busy=0 THENIF ready=1 THENcurrent_state = CMD;ready = 0;ELSE db =db_ascii; req = 1;ready = 0END IF;ELSEreq = 0;ready = 1;current_state = ASCII;END IF;END CASE;END IF;END PROCESS;END rtl;3.4、仿真结果本实验结果主要表现在波形的DB7.0信号的波形输出,实现了16进制数的显示(如图5、6)。图5 09仿真波形图 图6 AF并置0波形图3.5、实验
11、箱验证情况(1)部分管脚分配(自动分配)(如图7)。图7 部分管脚图(自动分配)(2)程序硬件实现结果的部分显示(如图815)。 图8 数字1 图9 数字2 图10 数字3 图11 数字8 图12 数字9 图13 数字10图14 数字11 图15 数字12(3)总体硬件图(如图16)。 图16 整体硬件图4、课程设计总结 通过本次课程设计我学到了很多东西,以前虽然也做过不少VHDL程序的设计,但都是在已经有写好的程序的情况下。这次从设计到实现都独立完成还是第一次,自己亲身试过之后才会发现,软件上做出来的正确结果和硬件的实现有着巨大的差距。编译好的程序在硬件实现时还有很多的因素要考虑,要处理。比
12、如,消抖程序中的count值的设定,有的同学count=5就足够了,而有的在设定为5时抖动的相当厉害,这都需要在硬件实现时再进行调试,有时候甚至整个程序都要重新编写。这次课程设计我收获了很多。5、参考文献1侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计. 西安:西安电子科技大学出版社,19992求是科技.CPLD/FPGA应用开发技术与工程实践. 北京:人民邮电出版社,20053罗苑棠.CPLD/FPGA常用模块与综合系统设计实例精讲. 北京:电子工业出版社,20074任勇峰,庄新敏.VHDL与硬件实现速成.北京:国防工业出版社,2005附录1:液晶显示屏说明书1)表1:OCMJ2X8(
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 按键 开关 控制 液晶显示器 进行 十六进制 数字 显示