欢迎来到天天文库
浏览记录
ID:22470780
大小:50.00 KB
页数:7页
时间:2018-10-29
《实验二键盘扫描实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验二键盘扫描实验一、实验目的熟悉VHDL的语法和编译排错,重点掌握组合逻辑中显示译码器的设计。附加学习键盘和数码管显示控制。二、实验内容1.设计一个BCD码到LED的七段译码器,非BCD值时仅G段亮(输出为“一”)。2.下载验证键盘显示实验。3.改写程序,将学号的数据固定地显示在1-8位数码管上。4.将F键功能改为换向键,即可以控制数字滚动显示的方向。三、实验步骤1.用文本输入法,在键盘显示程序的译码部分,分別用三种语法填写BCD到LED的译码器。三种语法为Whenelse、Withselect、Case,建
2、议使用模板。每一种都需编译通过提交程序。2.选一种语法,编译,绑定引脚,下载验证结果。3.改写程序,将0--7的数据固定地显示在1-8位数码管上。编译、下载验证结果。4.将F键功能改为换向键,即可以控制数字滚动显示的方向。编译、下载验证结果。四、实验硬件图14x4键盘图2数码管动态显示原理框图一种推荐的适配卡连线如下表所示:五、实验文件(需要填写译码部分)KEYSCAN时钟扫描程序文件名:KEYSCAN.VHDlibraryIEEE;useIEEE.std_logic_1164.all;useIEEE.STDL
3、OGICARITH.ALL;useIEEE.STDLOGICUNSIGNED.ALL;entityKEYSCANisport(CLK1:inSTD一LOGIC;KEYROW1,KEYROW2ZKEYROW3,KEYROW4:inSTD_LOGIC;--键盘行接门KEYCOL:outSTD_LOGIC_VECTOR(3DOWNTO0);--键盘列接口LED—BIT:outSTD_LOGIC_VECTOR(7DOWNTO0);-LED位选接口LED_SEG:outSTD_LOGIC_VECTOR(7DOWNTO0)
4、);-LED段选接口endKEYSCAN;architectureKEYSCAN_ARCHofKEYSCANisSIGNALSEGSIGNALBIT:SIGNALNUM:SIGNALCOUNT:SIGNALCOUNTO:STD_LOGIC_VECTOR(6DOWNTOO);-LED段选STD_LOGIC_VECTOR(2DOWNTOO);-LED位选STD_LOGIC_VECTOR(3DOWNTO0);--显示数字STD_LOGIC_VECTOR(4DOWNTO0);--计数脉冲STD一LOGIC;--计数脉冲
5、最低位LSBSIGNALCOL:STD_LOGIC_VECTOR(1DOWNTO0);--键盘列begin--计数器模块PROCESS(CLK1)BEGINIFCLKl'eventANDCLK1='1'THENCOUNT<=COUNT+1;ENDIF;ENDPROCESS;--计数器模块--键盘模块COL<=COUNT(3DOWNTO2);KEYCOL<="1110HWHENCOL=0ELSE"1101"WHENCOL=1ELSE"1011nWHENCOL=2ELSE"
6、0111"WHENCOL=3ELSEnllll";COUNTO<=COUNT(0);PROCESS(countO,COUNT,KEYIN1?KEYIN2)BEGINIFCOUNTO'eventand(COUNTO='1')THEN--分四行扫描IF(KEYROW1='0')and(COUNT(1)='0')THENNUM(3DOWNTO2)<=n00n;NUM(1DOWNTO0)<=COUNT(3DOWNTO2);-COUNT(1DOWN
7、TO0)只起分频延时的作用ELSIF(KEYR0W2='0')and(COUNT(l)='0')THENNUM(3DOWNTO2)<=n01n;NUM(1DOWNTO0)<=C0UNT(3DOWNTO2);ELSIF(KEYROW3='0')and(COUNT(l)='0')THENNUM(3DOWNTO2)<=n10n;NUM(1DOWNTO0)<=C0UNT(3DOWNTO2);ELSIF(KEYROW4='0&
8、#39;)and(COUNT(l)='0')THENNUM(3DOWNTO2)<="ll";NUM(1DOWNTO0)<=C0UNT(3DOWNTO2);ENDIF;ENDIF;ENDPROCESS;--键盘模块--显示模块BIT<=C0UNT(4DOWNTO2);--位选扫描信号LED_BIT<=n11111110nWHENBIT=0ELSE-
此文档下载收益归作者所有