cpld矩阵键盘_第1页
cpld矩阵键盘_第2页
cpld矩阵键盘_第3页
cpld矩阵键盘_第4页
cpld矩阵键盘_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、矩阵键盘实验实验目的:1了解4*4矩阵键盘的工作原理。2 掌握利用行列扫描法读取按键信息及软件消抖的方法。3. 熟悉掌握VHDL语言和QUARTUS 2软件的使用。4. 理解状态机的工作原理和设计方法。5. 掌握利用EDA工具进行自顶向下的电子系统设计方法。实验任务设计制作一个检测4*4矩阵键盘的按键编码的实验,把实际按键的键值的八 位编码先转换成从00001111的编码,再译成数码管能识别 的八位编码,在数 码管动态显示时,4*4矩阵键盘的第一行对应00-03,第二行对应04-07, 第三行08-11,第四行对应12-15o实验原理:1. 键盘的工作原理:按键设置在行、列线交点上,行、列线分

2、别连接到按键开关的两端。行线通过 上拉电阻接到+5V电源上。无按键按下时,行线处 于高电平的状态,而当有按键 按下时,行线电平与此行线相连的列线电平决定。2行列扫描法原理:第一步,使行线为编程的输入线,列线是输出线,拉低所有的列线,判断 行线的变化,如果有按键按下,按键按下的对应行线被拉低,否则所有的行线都为 高电平。第二步,在第一步判断有键按下后,延时10ms消除机械抖动,再次读 取行值,如果此行线还处于低电平状态则进入下一步,否则返回第一步重新判 断。第三步,开始扫描按键位置,采用逐 行扫描,每间隔1ms的时间,分别拉低 第一列,第二列,第三列,第四列,无论拉低哪一列其他三列都为高电平,读

3、取行 值找到按键的位置,分别把行值和列值储存在寄存器里。第四步,从寄存器中找 到行值和列值并把其合并,得到按键值,对次按键值进行编码,按照从第一行第一 个一直到第四行第四个逐行进行编码,编码值从“ 0000”至“1111”,再进行译 码,最后显示按键号码。3.数码管动态扫描原理:数码管的7个段及小数点都是由LED块组成的,显示方式分为静 态显示和动 态显示两种。数码管在静态显示方式时,其共阳管的位选信号均为低电平,四个数 码管的共用段选线a、b、c、d、e、f、g、dp分别与CPLD的8根I/O 口线相 连,显示数字时只要给相应的段选线送低电平。数码管在动态显示方式时,在某一时刻只能有一个数码

4、管被点亮显示数 字,其余的处于非选通状态,位选码端口的信号改变时,段选码端口的信号也要 做相应的改变,每位显示字符停留显示的时间一般为l-5ms,利用人眼晴的视 觉惯性,在数码管上就能看到相当稳定的数字显示。四、实验模块电路图及引脚分配1 矩阵键盘电路图:R3 510KR3 610KR3 710KR3 S10K2数码管电路图:3I5I7I9I彳彳科A S 3 _ 4 CA 3 1 2 2 d 3 3 3 34! ,44(矩阵键盘电路图)(数码管电路图)3引脚分配:(1)矩阵键盘:器件引脚标号CPLD与引脚此连接引脚号L161L260L358L457H167H265H364H4632)数码管:器

5、件引脚标号CPLD与此引脚连接引脚号A12B15C16D17E18F20G21DP22Ml24M225M327M428M529M630五、实验步骤:1 启动Quartus 2,新建一(*vhd文件,通过硬件描述语言VHDL来编写 矩阵键盘 扫描实验程序。2. 保存文件,编译并检查语法错误。3. 利用Quartus 2进行波形仿真,验证所编写的程序是否正确,如果错误,进行 相应的修改。4. 把输入、输出量分配给相应的引脚,重新编译。5. 由并口线将计算机与实验板连接在一起,由软件的下载部分将*pof下载芯片 中。6. 把三挡开关打到7128挡,进行实验验证并观察实验现象。7. 整理实验内容,加深

6、对实验的理解,并写下自己的心得,整理实验器材。六、实验程序:LIBRARY IEEE;USE IEEE. STD_L0GIC_1164. ALL;ENTITY KEY4 4 ISPORT(CLR, CLK: IN STD_LOGIC;CLK 40MH: IN STD_LOGIC_VECTOR(1 TO 4):L: OUT STD_LOGIC_VECTOr(l TO 4);SEL: OUT STD_LOGIC_VECTOR(5 DOWNTO 0 );LED8D: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ENTITY KEY4_4;ARCHITECTURE AR

7、T OF KEY4_4 ISTYPE ST IS (SO, SI, S2, S3, S4, S5, S6, S7);SIGNAL S: ST;SIGNAL CLK1K, CLK10K: STD_LOGIC;SIGNAL EN: STD丄OGIC;SIGNAL CNT: INTEGER RANGE 0 TO 9;SIGNAL DI,DO: STD_L0GIC_VECT0R(3 DOWNTO 0):SIGNAL D: STD_L0GIC_VECT0R(3 DOWNTO 0);BEGINCLKDIV_1K:PROCESS(CLR, CLK)VARIABLE CNT: INTEGER RANGE 0

8、TO 39999;VARIABLE NCLK: STD_LOGIC;BEGINIF CLR1 THENCNT:=0;NCLK:二O;ELSIF CLKJ EVENT AND CLK二T THENIF CNT=39999 THENCNT:=0;NCLK:1 ;ELSECNT:二CNT+1;NCLK:O;END IF;END IF;CLK1K=NCLK;END PROCESS CLKDIV_1K;CLKDIV_10K:PROCESS(CLR, CLK)VARIABLE CNT: INTEGER RANGE 0 TO 3999;VARIABLE NCLK: STD_LOGIC;BEGINIF CLR

9、1 THENCNT:=0;NCLK:二O;ELSIF CLK,EVENT AND CLK二1 THENIF CNT=3999 THENCNT:=0;NCLK:1 ;ELSECNT:二CNT+1;NCLK:= 0,;END IF;END IF;CLK10K=NCLK;END PROCESS CLKDIV_10K;SM_YS_JSQ:PROCESS(EN, CLK1K)VARIABLE COUNT: INTEGER RANGE 0 TO 9;BEGINIF EN二T THENCOUNT:=0;ELSIF CLK1KEVENT AND CLK1K二I THENIF C0UNT=9 THENCOUNT

10、:=0;ELSECOUNT:=COUNT+1;END IF;END IF;CNT=COUNT;END PROCESS SM_YS_JSQ;SM_KEY:PROCESS(CLR, CLK10K, H)VARIABLE ENO: STD_LOGIC;VARIABLE LO,KHO,KLO: STD_LOGIC_VECTOR(1 TO 4);VARIABLE JZO: STD_L0GIC_VECT0R(7 DOWNTO 0);VARIABLE KHLO: STD_LOGIC_VECTOR(1 TO 8);BEGINIF CLR=,1 THENENO:1 ;S=SO;ELSIF CLK10K,EVEN

11、T AND CLK10K二T THENCASE S ISWHEN SO二LO:二0000;ENO:1;IF H/二1111 THENS=S1;ELSES=SO;END IF;WHEN SI二ENO:O;IF CNT=9 THENS=S2;ELSESEN0:= 1 ;IF H/二1111 THEN S=S3;ELSESIF H/二1111 THEN KHO:=H;KLO:二0111;S=S4;ELSESIF H/二1111 THEN KHO:=H;KLO:二1011;S二S4;ELSESIF H/二1111 THEN KHO:=H;KLO:二1101;S=S4;ELSESIF H/二1111 T

12、HEN KHO:=H;KLO:二1110;SNULL;END CASE;WHEN S4二ENO:二T;KHLO:=KHO&KLO;SEN0:= 1;CASE KHLO ISWHEN 01110111二JZO:二00000000;WHEN Oil11011二JZO:二00000001;WHEN Olli1101二JZO:二00000010;WHEN 01111110二JZO:二00000011;WHEN 10110111二JZO:二00000100;WHEN 10111011二JZO:二00000101;WHEN 10111101二JZO:二00000110;WHEN 10111110二JZO:

13、=00000111;WHEN 11010111二JZO:二00001000;WHEN 11011011二JZO:二00001001;WHEN 11011101二JZO:二00010000;WHEN 11011110二JZO:二00010001;WHEN 11100111二JZO:二00010010;WHEN 11101011二JZO:二00010011;WHEN 11101101二JZO:二00010100;WHEN 11101110二JZO:二00010101;WHEN OTHERS二NULL;END CASE;IF H二1111 THENS=S6;ELSES=S5;END IF;WHEN

14、S6二ENO:O;IF CNT=9 THENS=S7;ELSES=S6;END IF;WHEN S7二ENO:二T;IF H二1111 THENS=SO;ELSES=S6;END IF;END CASE;END IF;EN二ENO;L=LO;Dl=JZ0(7 DOWNTO 4);DO=JZO (3 DOWNTO 0); END PROCESS SM_KEY;SHOW:PROCESS(CLK1OK, DI, DO)VARIABLE CNT: INTEGER RANGE 0 TO 3;VARIABLE Q: STD_LOGIC_VECTOR(3 DOWNTO 0):VARIABLE WEI: ST

15、D_L0GIC_VECT0R(5 DOWNTO 0); BEGINIF CLK10K, EVENT AND CLK10K二T THEN CNT:二CNT+1;CASE CNT ISWHEN 0二WEI:二111110;Q:二DO;WHEN 2二WEI:二111101;Q:二DI;WHEN OTHERS二NULL;END CASE;END IF;D=Q;SELNULL;END CASE;END PROCESS YM;END ARCHITECTURE ART;美文欣赏1、走过春的田野,趟过夏的激流,来到秋天就是安静祥和的世界。秋天,虽 没有玫瑰 的芳香,却有秋菊的淡雅,没有繁花似锦,却有硕果累累。

16、秋天,没有夏日的激情,却 有浪漫的温情,没有春的奔放,却有收获的喜悦。清风落叶舞秋韵,枝头硕果醉秋容。 秋天是甘美的酒,秋天是壮丽的诗,秋天是动人的歌。2、人的一生就是一个储蓄的过程,在奋斗的时候储存了希望;在耕耘的时候储存了一 粒种子;在旅行的时候储存了风景;在微笑的时候储存了快乐。聪明的人善于储蓄,在 漫长而短暂的人生旅途中,学会储蓄每一个闪光的瞬间,然后用它们酿成一杯美好的回 忆,在四季的变幻与交替之间,散发浓香,珍藏一生!3、春天来了,我要把心灵放回萦绕柔肠的远方。让心灵长出北归大雁的翅膀,乘着吹动彩云的熏风,捧着湿润江南的霭霖,唱着荡漾晨舟的渔歌,沾着充盈夜窗的芬 芳,回到久别的家乡

17、。我翻开解冻的泥土,挖出埋藏在这里的梦,让她沐 浴灿烂的阳 光,期待她慢慢长出枝蔓,结下向往已久的真爱的果实。4、好好享受生活吧,每个人都是幸福的。人生山一程,水一程,轻握一份懂 得,将牵 挂折叠,将幸福尽收,带着明媚,温暖前行,只要心是温润的,再遥远 的路也会走的安 然,回眸处,愿阳光时时明媚,愿生活处处晴好。5、漂然月色,时光随风远逝,悄然又到雨季,花,依旧美;心,依旧静。月的柔情, 夜懂;心的清澈,雨懂;你的深情,我懂。人生没有绝美,曾经习惯漂浮的你我,曾几 何时,向往一种平实的安定,风雨共度,淡然在心,凡尘远路,彼此守护着心的旅程。 沧桑不是自然,而是经历;幸福不是状态,而是感受。6、

18、疏疏篱落,酒意消,惆怅多。阑珊灯火,映照旧阁。红粉朱唇,腔板欲与 谁歌?画 脸粉色,凝眸着世间因果;未央歌舞,轮回着缘起缘落。舞袖舒广青衣薄,何似院落寂 寞。风起,谁人轻叩我柴扉小门,执我之手,听我戏说?7、经年,未染流荡漠漠清荡。流年为祭。琴瑟曲中倦红妆,霓裳舞中残娇曆。冗长红 尘中,一曲浅吟轻诵描绘半世薄凉寂寞,清荡如水。寂寞琉璃,荒城繁心。流逝的痕迹 深深印骨。如烟流年中,一抹曼妙娇羞舞尽半世清冷傲然,花祭唯美。邂逅的情劫,淡 淡刻心。那些碎时光,用来祭奠流年,可好?8、缘分不是擦肩而过,而是彼此拥抱。你踮起脚尖,彼此的心就会贴得更近。生活总 不完美,总有辛酸的泪,总有失足的悔,总有幽深

19、的怨,总有抱憾的恨。生活亦很完 美,总让我们泪中带笑,悔中顿悟怨中藏喜,恨中生爱。9、海浪在沙滩上一层一层地漫涌上来,又一层一层地徐徐退去。我与你一起在海水中尽情的戏嬉,海浪翻滚,碧海蓝天,一同感受海的胸怀,一同去领略海 的温情 这无边的海,就如同我们俩无尽的爱,重重的将我们包裹。10、寂寞的严冬里,到处是单调的枯黄色。四处一片萧瑟,连往日明净的小河也失去了光彩,黯然无神地躲在冰面下恢恢欲睡。有母女俩,在散发着丝丝暖意的阳光 下,母亲在为女儿梳头。她温和的把头发理顺。又轻柔的一缕缕编织着麻花辫。她脸上 写满笑意,似乎满心的慈爱永远装不下,溢到嘴边。流到眼角,纺 织进长长的。麻花 辫。阳光亲吻着长发,像散上了金粉,闪着飘忽的光辉。女儿 乖巧地依偎在母亲怀里, 不停地说着什么,不时把母亲逗出会心的微笑,甜美的亲情融化了冬的寒冷,使萧索的 冬景旋转出春天的美丽。11、太阳终于伸岀纤纤玉指,将青山的柔纱轻轻褪去。青山那坚实的肌胸,挺 拔的脊 梁坦露在人们的面前,沉静而坚毅。不时有云雾从它的怀中涌起,散开,成为最美丽的 语言。那阳光下显得凝重的松柏,那苍茫中显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论