




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA设计与Verilog设计 4 X 4键盘扫描及显示4 X 4键盘扫描及显示原理图工学院07级机电0701班 设计者王 斌 学号 2007307200397 设计者傅国栋 学号 2007307200408 E-mail:493420923 2010年6月11日1、 功能和原理分析功能分析 采用“4 X 4键盘扫描及显示”,可以非常方便的判别操作、读取和显示键值。 原理分析“4 X 4键盘扫描及显示”分为两部分: 1、4 X 4键盘的扫描 在这一部分中,利用时钟信号进行扫描和频率计数器的计数来完成对键盘的扫描。 时钟信号给定相应的时钟信号,通过它的上升沿信号给计数器赋值。并同时读取复位信号,一旦获取到相应的复位信号,所有键盘值即被初始化复位。2、 扫描结果的显示 用7段数码管显示相应的扫描结果。其中7段数码管采用共阳极读取键值。当某一键被按下,相应的7段数码管获得低电平,便显示该键值。2、 设计思路如右图所示为“4 X 4键盘”模拟图。行“row”有四行:row0、row1、row2、row3。列“column”有四列:column0、column1、column2、column3 通过给四行赋值循环地对每行进行扫描,例如:通过行线赋值为“1110”时,这样就使得第0行“0键、1键、2键、3键”处在低电平的状态下。此时如果0键被按下,那么就有第0列输出为低电平。即四位column输出为“1110”,获取键值为“0”然后在7段数码管上显示出来。3、 源程序及注释/*矩阵键盘介绍矩阵键盘扫描实现的方法,这里没有考虑去抖和判断键弹起的问题把相应的键值显示在数码管上*/module key1(clk,rst,row,column,dataout) ;input clk,rst;input3:0 column;/列线output3:0 row;/行线output7:0 dataout;/数码管显示数据reg3:0 row;reg7:0 dataout;reg3:0 scan_key; /扫描码寄存器reg15:0 cnt_scan;/扫描频率计数器/*通过计数器计数,循环地给4根行线送出电平*/always(posedge clk or negedge rst)/用时钟上升沿对行列进行扫描beginif(!rst) begin/如果复位信号位于低电平0row=4b1110;/行线赋值cnt_scan=0;/扫描频率计数器赋初值0 endelse begin/如果复位信号位于高电平1cnt_scan=cnt_scan+1;/扫描计数器正常计数if(cnt_scan=16hffff) begin/扫描计数器计数值为最大时row3:1=row2:0;row0=row3; /4根行线循环送出低电平 end endend/*扫描键盘,并根据扫描的结果存取键值*/always(posedge clk or negedge rst)beginif(!rst) begin/如果复位信号位于低电平0scan_key=0;/将0赋给扫描码寄存器 endelse begin/*检测何处有键按下*/ case(row) /选择相应的行,然后对该行进行扫描4b1110:/选择第1行case(column)/检查相应列的值,完成对第一行进行扫描4b1110: beginscan_key=0; end4b1101: beginscan_key=1; end4b1011: beginscan_key=2; end4b0111: beginscan_key=3; end endcase4b1101:/选择第2行case(column)/检查相应列的值,完成对第二行进行扫描4b1110: beginscan_key=4; end4b1101: beginscan_key=5; end4b1011: beginscan_key=6; end4b0111: beginscan_key=7; end endcase4b1011:/选择第3行case(column)/检查相应列的值,完成对第三行进行扫描4b1110: beginscan_key=8; end4b1101: beginscan_key=9; end4b1011: beginscan_key=10; end4b0111: beginscan_key=11; end endcase4b0111:/选择第4行case(column)/检查相应列的值,完成对第四行进行扫描4b1110: beginscan_key=12; end4b1101: beginscan_key=13; end4b1011: beginscan_key=14; end4b0111: beginscan_key=15; end endcase default:scan_key=15; endcase endend/*通过上面的检测,对相应的键值进行检查,获取键值之后通过七段数码管(共阳极)的控制显示键值*/always(scan_key)begincase(scan_key)4b0000:dataout=8b00000011;/共阳极,显示04b0001:dataout=8b10011111;/共阳极,显示14b0010:dataout=8b00100101;/共阳极,显示24b0011:dataout=8b00001101;/共阳极,显示34b0100:dataout=8b10011001;/共阳极,显示44b0101:dataout=8b01001001;/共阳极,显示54b0110:dataout=8b01000001;/共阳极,显示64b0111:dataout=8b00011111;/共阳极,显示74b1000:dataout=8b00000001;/共阳极,显示84b1001:dataout=8b00011001;/共阳极,显示94b1010:dataout=8b00010001;/共阳极,显示A4b1011:dataout=8b11000001;/共阳极,显示b4b1100:dataout=8b01100011;/共阳极,显示C4b1101:dataout=8b10000101;/共阳极,显示d4b1110:dataout=8b01100001;/共阳极,显示e4b1111:dataout=8b01110001;/共阳极,显示F endcaseendendmodule4、 仿真波形上图为仿真波形图,其中100.0ns200.0ns给了复位信号下降沿,时钟信号给的是0.1MHZ(即每隔10.0ns给一个时钟脉冲信号),同时在100.0ns200.0ns给“column0”低电平(即按下了键“0”)。上图为初始状态下,复位信号处于高电平各行线输入为低电平,同时也没有按键按下,各列线为高电平,7段数码管默显示认为“0”。上图为default状态下,扫描信号扫描有效,复位信号处于高电平各行线输入为低电平,同时也没有按键按下,各列线为高电平,7段数码管默显示认
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新教材高中数学 第3章 圆锥曲线的方程 3.1 椭圆 3.1.1 椭圆及其标准方程说课稿 新人教A版选择性必修第一册
- 2025大学生综合保险合同范本
- 2025私人租房合同范本自由交易版
- 2025年个体门面租赁合同简易版范本
- 第五节 同一直线上二力的合成说课稿-2025-2026学年初中物理北师大版北京2024八年级全一册-北师大版北京2024
- 2025《合同法》变革风暴
- 第11课 目录和封底的制作教学设计-2023-2024学年小学信息技术(信息科技)四年级上册粤教粤科版
- 2025年度土地使用权入股种植树木合同书
- 2025官方的个人购房合同
- 铜陵事业单位笔试真题2025
- 2025年领导干部任前廉政法规知识考试题库(含答案)
- 2025年四川基层法律服务工作者执业核准考试仿真试题及答案一
- 2025年山东省济宁市邹城市第十一中学中考二模数学试题
- 信息技术基础教程(WPS版)课件 第3章 Windows 10 操作系统的使用
- 水工监测工竞赛试试题库
- 2023年安仁县林业系统事业单位招聘笔试题库及答案解析
- 精选急腹症影像学表现资料课件
- 角膜 角膜炎课件
- 《卫生政策学》第三章 政策问题确认
- 水利水库工程项目划分表及说明书
- 雨污水检查井施工方案
评论
0/150
提交评论