欢迎来到天天文库
浏览记录
ID:12637530
大小:955.00 KB
页数:14页
时间:2018-07-18
《利用键盘控制点阵显示汉字》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、目录1、课程设计目的…………………………………………22、课程设计内容和要求…………………………………23、设计方案及实现情况3.1设计思路……………………………………………………23.2工作原理及框图……………………………………………33.3各模块功能描述……………………………………………43.4实验箱验证情况…………………………………………134、课程设计总结…………………………………………145、参考书目………………………………………………15一、课程设计目的1.学习操作数字电路设计实验开发系统,掌握点阵显示模块的工作原理及应用。2.掌握组合逻辑电路、时序逻辑电路的设计方法。3.学习掌
2、握可编程器件设计的全过程。二、课程设计内容和要求1.学习掌握键盘控制模块、点阵显示模块的工作原理及应用;2.熟练掌握VHDL编程语言,编写键盘控制模块的控制逻辑;3.仿真所编写的程序,模拟验证所编写的模块功能;4.下载程序到芯片中,硬件验证所设置的功能,能够实现汉字显示;5.整理设计内容,编写设计说明书。6.VHDL源程序及内部原理图。7.该设计可以在实验箱上正常工作并演示。 三、设计方案及实现情况3.1、设计思路按照本题目要求,需要“键盘键值读取模块”和“点阵显示模块”(如图1)。值得注意的是:sel3、sel2、sel1、sel0是键盘和点阵的复用片选信号。其中键盘对sel2、sel1、
3、sel0敏感,点阵对sel3、sel2、sel1、sel0敏感。图13.2、工作原理及框图如上所述:sel3、sel2、sel1、sel0经译码后片选,且分时复用。sel3、sel2、sel1、sel0组成的二进制码对应点阵的dat0—dat15(共16个列选);sel2、sel1、sel0组成的二进制码对键盘产生片选信号。具体如表格:selout(3-0)kin(3-0)按键值X00011102X00011016X00111101X00111017X01011102X0101011CX01111103X0111011DX10011018X1001011EX10111019X1011011F
4、X1101101AX11011104X1111101BX11111105其中“X”表示任意值例如:当selout(3-0)等于X000时,读取键盘kin(3-0)等于1110,那么可以确定按下了“2键”,即可以对应显示某一汉字(例如:“大”)。16*16点阵标准字模生成(例如:“科”):3.3、各模块功能描述所以程序代码:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitykeyisport(clk:instd_logic;kin:instd_logic_vector(3downto0);do
5、tout:outstd_logic_vector(15downto0);selout:outstd_logic_vector(3downto0));endkey;architecturertlofkeyisbeginprocess(clk)variabletmp:std_logic_vector(3downto0);variablesel:std_logic_vector(3downto0);variabledat:std_logic_vector(3downto0);beginifclk'eventandclk='1'theniftmp="1111"thentmp:="0000";else
6、tmp:=tmp+1;endif;endif;ifkin="1111"thensel:=tmp;elsedat:="1111";endif;selout<=tmp;--------------------------键盘键值读取----------------------------if(sel="0000"orsel="1000")andkin="1110"thendat:="0000";---0elsif(sel="0001"orsel="1001")andkin="1110"thendat:="0001";---1elsif(sel="0010"orsel="1010")andkin=
7、"1110"thendat:="0010";---2elsif(sel="0011"orsel="1011")andkin="1110"thendat:="0011";---3elsif(sel="0110"orsel="1110")andkin="1110"thendat:="0100";---4elsif(sel="0111"orsel="1111")andkin="1110"thendat:="0101
此文档下载收益归作者所有