




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、利用键盘控制点阵进行十进制加法计算显示1、课程设计目的:(1) 学习操作数字电路设计实验开发系统,掌握点阵显示模块的工作原理及应用。(2) 掌握组合逻辑电路、时序逻辑电路的设计方法。(3) 学习掌握可编程器件设计的全过程。2、课程设计内容和要求:2. K设计内容:用VHDL语言编写程序,编写键盘控制模块的控制逻辑,仿真所编写的程序,模拟验证所 编写的模块功能,下载程序到芯片中,实现键盘控制点阵进行十进制加法计算显示。2.2v设计要求:(1) 学习掌握键盘控制模块、点阵显示模块的工作原理及应用;(2) 熟练掌握VHDL编程语言,编写键盘控制模块的控制逻辑;(3) 仿真所编写的程序,模拟验证所编写
2、的模块功能;(4) 下载程序到芯片中,硬件验证所设置的功能,能够实现十进制数字的显示;(5) 整理设计内容,编写设计说明书。3、设计方案及实现情况:3.1 设计思路:分三个模块编写程序,首先实现键盘对点阵的控制,然后设计加法计算功能模块,由于点阵 显示的局限性,当有进位时设置CC为高电平在数码管上显示出来,在最后一个模块编写显示的1 到9以及加号的列字符扫描信号,从而实现键盘控制点阵十进制加法计算的显示。3.2x工作原理及框图:系统的输入信号有:开关(允许输入及显示)信号RST系统时钟信号CLK按键信号(KEYIN3.0) o系统的输出信号有:点阵行驱动输出信号(LEDOUT0.15J),点阵
3、列选信 号 (SEL3.0),进位输出信号CO系统的工作过程为:在开关信号RST (低电平有效)为低电平时,矩阵键盘不工作,16 X 16点阵没有显示;当开关信号RST为高电平时,整个系统工作,当在矩阵键盘上按下按键 JS, 16X16点阵会显示出一个1位十进制数,在进行功能操作时,当按下NEXTS时,点阵上 显示号,然后再按下一个十进制数在点阵上显示,最后按下 ENTER键进行加法计算,如 果结果大于9,则进位输出CO输出高电平,点亮发光二极管,点阵显示个位,否则直接输出结 果。LED点阵显示原理:LED点阵式显示器不仅可以显示数字,也可显示所有西文字母和符号, 与由单个发光二极管连成的显示
4、器相比,具有焊点少、连线少,所有点在同平面、亮度均匀、夕卜 形美观以及具有显示信息丰富、功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优 点,可以代替数码管、符号管和米字管。如果将多块组合可以构成大屏幕显示屏用于 汉字、图 形、图表等等的显示,因此被泛用于机场、车站、码头、银行及许多公共场所的指 示、说明、广 告等场合。16X16的LED点阵显示器,是由256个LED组成,共阳极的16X16的LED点阵显示 器的典型连接方式是:每一行的16个阳极连在一起,由行扫描码锁存器和驱 动器的一位控制,总 共16行阳极连线由16位分别控制;每一列的16个阴极连在一起,由列扫描码锁存器和驱动器的
5、一位控制,总共16列阴极连线由16位分别控制。点阵字符的驱动 过程:点阵式LED显示器采 用逐行扫描式工作。要使点阵显示出一个字符的编程方法是:首先选通第一行;接着,向行码锁存器写入该行的字型码(即列数据)。然后,按相同的方式选通 第 二行,写第二行的字型码,,由此类推,直到写完所有行的字型码,完成一个字符的显示。16X16 点阵显示驱动的行选通信号为一 416译码器的输出,所以我们在设计点阵控制接口时,其行选通 信号输出必须经416编码。矩阵式键盘的工作原理:矩阵式键盘又叫行列式键 盘,是用I/O 口线 组成的行、列矩阵结构,在每根行线与列线的交叉处,二线不直接相通而 是通过一个按键跨接接
6、通。采用这种矩阵结构只需M根行输出线和N根列输入线,就可连接MXN个按键。通过键盘扫描程序的行输出与列输入就可确认按键的状态,再通过键盘处理程 序 便可识别键值。矩阵式键盘的按键识别方法为行扫描法又称为逐行扫描查询法,是一种最常用的 按键识别方法,介绍过程如下:1)判断键盘中有无键按下:将全部行线置低电平,然 后检测列线 的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于 低电平线与行线 相交叉的按键之中。若所有列线均为高电平,则键盘中无键按下。2 )判断闭合键所在的位置:在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行 线置为低电平,即在置某根行线为低电
7、平时,其它线为高电平。在确定某根行线位置为 低电平 后,再逐行检测各列线的电平状态。若某列为低,则该列线与低电平的行线交叉处的按键就是闭 合的按键。键盘中的按键可分为数字键和功能键。数字键主要用来输入数字,但 从上述内容发 现,键盘所产生的输出KIN3KINO无法拿来直接使用;另外不同的数字按键也 担负不同的功 能,因此必须由键盘译码电路来规划某个按键的输出形式,以便执行相应的动1作W 口旨i电丨別-擔4艮囲已型型圍園输尿遁鈕吧理尊葺A询73可刁乜迴宜feA7X01一禺创色3二LEDDISPCN(.OUK DOMT15 OJ二LEDOUTKEYBOARD(XI K2TK 1 M2. 08 KE
8、 SEL3J图1总体框图5图2矩阵键盘的电路原理图X / X X 厂 X X X.翌I対3j 在BCOM 8.1前已接有一个38译3.3、各模块功能描述:键盘扫描模块:实验箱中4X8矩阵键盘的电路原理图如图2所示WII 3XWEH卜BCOMTjoBCOJMS uBCOM5uBCOM4BCOM3 inBCOIME2 i BCOM1该矩阵键盘的工作原理为:扫描信号为BCOM 8.1码器,38译码器的输入为SEL0-SEL2当38译码器的输入为1 0001时,即BCOM为O,其他位为1:我们按下第一排第一键,此时KIN0输出4 0: KIN1-KIN3输出全为“按下第二排第二键时,KIN1输出,其他
9、输出当38译码器输入为90时,即BCOM2为O,我们按下第一排第一键,此时KINO输出O, KIN1-KIN3输出全为1同理其他 键依此类推。键盘上的每个按键就是一个开关,当某键被按下时,该按键的接点会呈现0,状态,反之为 十扫描信号为SEL2.O进入38译码器,再从译码器输出到键盘,所以第一次只能扫描一 排,依此周而复始。若从KIN3.O输出的皆为“时,表示没有按键按下,代表该列没有按键被 按下,贝怀进行按键编码的操作,反乙 如果有被按下时,贝I应将KIN3.O读出的值送到译码电路 进行编码。按键位置与数码的关系如下表1所示:表1按键位置与数码关系表SEL2-SELOKIN3-KINO对应的
10、按键按键功能OOO11100数字011O16数字61011LAST功能键0111CTRL功能键00111101数字111017数字71O11STEP功能键0111EMPTY1扩展101011102数字21101REG功能键1O11C字母C0111EMPTY2扩展2O1111103数字311O1EXEC功能键1011D字母D0111EMPTY3扩展31OO1110MEM功能键11018数字81O11E字母E0111EMPTY4扩展41O11110ESC功能键11019数字91011F字母F0111SHIFT功能键11011104数字41101A字母A1011NEXT功能键0111NONE无定义1
11、1111105数字51101B字母B1011ENTER功能键0111NONE无定义在设计该模块时,因为要实现十六进制数的显示,所以在KEYBOARD模块中的p3进程依据上表描述了按键位置与数码的关系,实现了键盘输入输出的功能。KOUT4.0为键盘扫描后的对应的译码输出;CP为时钟CLK的四分频后的输出;Q1.O对按下的键值进行标志:00表示按下0* 9 之间的键值、“01”表示按下NEXT按键、u 10表示按下ENTER按键、“1T表示按下其它按键。键盘控制模块如图3所示。KEYBOARDCL.KRSTQC JL.KOUTaCP OJI1C I fri lJ-OjIOj图3键盘控制模块图源程序
12、:library ieee;use ieee.std_logic_1164.all;use ieee.stdogic_ un sig ned.all;en tity keyboard isport (elk ,rst: in stdjogic;kin : in stdo gic_vector (3 dow nto 0); q : out std_logic_vector (1 dow nto 0); sei : out stdogic_vector (3 dow nto 0); kout: out stdogic vector (4 dow nto 0);cp:out stdjogicend
13、keyboard;architecture keyboard_arc of keyboard issig nal coun ter: stdo gic_vector(3 dow nto 0); sig nal coun ter1 : stdo gic_vector(1 dow nto0);sig nal coun ter2 : stdo gic_vector(4 dow nto 0); sig nal colsel,Y : stdogic_vector(4 dow nto0); sig nal clk1 ,ktest,kdow n: stdjogic;sig nal a: stdo gic_v
14、ector(3 dow nto 0);sig nal b: stdo gic_vector(2 dow nto 0);beg in ktest=ki n(3) and kin and ki n and kin (0); p1: process(rst,clk)beg inif(rst=,O,) the ncou nter1=n00n;elsif(clk*eve nt and clk=1) the ncoun ter1=co un ter1+1;end if;end process p1;clk1= 0* whe n coun ter1=01n elseT;cpv=clk1;p2: proces
15、s(rst,clk1 ,ktest)if(rst-O) thencou nter=nOOOOH;elsif(clk1*eve nt and clk1=1) the n if(ktest=O) or (kdow n=*0f) the n coun ter=co un ter;elsecoun ter=co un ter+1;end if;end if;end process p2;sel=co un ter;p3:process(clk,ktest)begi na=k in;bcase a iswhen H1110H= Yv-OOOOO”;when n1101n= Ywhen H0111H=wh
16、e n others=nu II;end case;when n001n=case a iswhen H1110M= Y Ywhe n ”01whe n others=nu II;end case;when H010n=case a iswhen,1110,= Yv=”00010”;when n110r*= Ywhen H0111n=whe n others=nu II;9end case;when H011n=case a iswhen n1110n=YYYv=”11111”; whe n others=nu II;end case;whenn100H=case a iswhen H1110
17、,=when H1101,=YYYv=”11111”; whe n others=nu II;end case;when”101”=case a iswhen H1110,=when H1101,=Y Yv=H11111n;whenwhe n others=nu II;end case;whenn110H=case a iswhen n1110M= YY Ynu II;when,111,=case a iswhen H1110H= Ywhenn1011H= Ynu II;end case;whe n others=nu II;end case;end process p3;p4: proces
18、s(ktest,clk,rst)beg inif(rst=,O,) the ncou nter2=n00000M;kdow nv=T;elsif(clk*eve nt and clk=1) the nif(ktest=,O,) the ncoun ter2=H00000n;kdow *=V;elsif(cou nter2111101) the n coun ter2=co un ter2+1; if(cou nter2=M11100n) the nkdow nv=T;end if;end if;end if;end process p4;p5: process(kdow n,rst)beg i
19、nif(rst=*O) the n11colsel=MOOOOOn;elsif(kdow neve nt and kdow n=T) the n if(Y,1OOOO,)the nq=,00n;colsel=Y;elsif(Y=n1OOOOn)the n q=n01H;elsif(Y=n10001n)the n q=H10H;elsif(Y=”11111”)thenqv=”11”;end if;end if;end process p5;koutcase sei iswhen ”0000” = ledout ledout ledout ledout ledout ledout ledout l
20、edout ledout ledout ledout ledout ledout ledout ledout ledout n ull;end case;when H00001n=case sei iswhe n ”0000” = ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout n ull;end case;whe n ”00010”=case sei is#when ”0000” = ledout ledout led
21、out ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledoutledout n ull;end case;when n00011n=case sei iswhen ”0000” = ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledoutv=”0001000000000100”;whe n n1011 ” = ledout ledout ledout ledoutledout n ull;
22、end case;whe n H00100H=case sei iswhen ”0000” = ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledoutledout n ull;end case;when H00101M=case sei is17when ”0000” = ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout le
23、dout ledout ledoutledout n ull;end case;whe n ”00110”=case sei iswhen ”0000” = ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout n ull;end case;whe n n00111n=case sei iswhe n ”0000” = ledout ledout ledout ledout ledout ledout ledout ledou
24、t ledout ledout ledout ledout ledout ledoutv=”0000110000000000”;when n1110” = ledout ledout n ull;end case;when n01000M=case sei is21whe n ”0000” = ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout ledout n ull;end case;when n01001H=case sei isw
25、he n ”0000” = ledout ledout ledout ledout ledout ledout ledout ledouUOOOl000001000100M;whe n ”1000” = ledout ledout ledout ledout ledoutv=”0000001000000000”;when H1111n = ledout n ull;end case;whe n ”10000”=case sei is显示加号whe n ”0000” = ledout ledout ledout ledout ledout ledout ledout ledout ledout
26、ledout ledout ledoutv=”0000000110000000”;whe n ”1100” = ledout ledout ledout ledout n ull;whe n ”1001” = ledout ledout ledout ledout ledout ledoutv=”0000000000000000“;when ”0100“ = ledoutv=”0000000000000000”;when ”0101” = ledout ledout ledout ledoutv=”0000000000000000”;when ”1001” = ledoutv=”0000000
27、000000000”;when ”1010” = ledoutv=”0000000000000000”;when ,1011,* = ledout ledout ledout ledout ledout n ull;end case;whe n others=n ull;end case;end process;end leddisp_arc;加法计算模块:该模块实现对点阵显示方式的控制,控制模块的引脚功能如图5所示,其中:CLK为时钟输入端;RST为复位端,低电平有效;Q仁0为功能方式输入端,用来识别按下键的类型; DATAIN4.O接收来自KEY BOAR模块送来的键值;DATAOUT4.
28、0输出键值码;当按下ENTER 键输出键码值大于9时,进位输出CO为高电平,点亮一个发光二极管。29RSTCLKDATROUTE 0ni f 1etiCODR1TRINa图5加法计算模块图源程序:library ieee;use ieee.stdo gic_1164.all;use ieee.stdogic_ un sig ned.all;use ieee.stdo gic_arith.all;en tity con trol isport(rst,clk : in stdjogic;q : in stdo gic_vector(1 dow nto 0); datain : in stdogic_vector(4 downto 0); dataout: out std_Jogic_vector(4 downto 0); co : out stdogic);end con trol;architecture con trol_arc of con trol issignal s : stdogic_vector(4 downto 0);sig nal tempi : s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国多功能移动充电器市场调查研究报告
- 2025年中国咖啡色市场调查研究报告
- 2025年中国医用活性炭市场调查研究报告
- 2025年中国一次性前身市场调查研究报告
- 音乐基础理论总结题及答案
- 2025年科学与工程计算软件项目建议书
- 2025年农村购房合同模板
- 2025国内转贷款合同范本
- 2025合同文件汇编
- 非高危培训试题及答案大全
- 《高速公路改扩建工程预算定额》
- 化工装置报废拆除施工方案
- 职场心态-培训课件
- 第四届全国智能制造应用技术技能大赛决赛-仪器仪表制造工(仪器仪表与智能传感应用技术)赛项竞赛平台主要设备技术标准
- 统编版 高中语文 选择性必修下 第二单元《边城》
- 白内障患者护理教学查房
- 幼儿园 中班心理健康《我会倾诉》
- 机械租赁保障措施
- 2024-2030年中国病号服行业市场发展趋势与前景展望战略分析报告
- 洗煤厂安全应急预案
- 抖音火花合同模板
评论
0/150
提交评论