4×4键盘扫描电路设计.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计项目成绩评定表 一、设计任务及要求: 1、设计任务: 利用 EDA设计试验箱、微机和QuartusⅡ软件系统,设计并实现一个4*4键盘扫描电路。设计过程中使用 Verilog HDL语言,完成硬件设计和功能仿真。最后下载EDA设计试验箱中予以实现。 2、要 求: 在时钟控制下循环扫描键盘,根据列扫描信号和对应键盘响应信号确定键盘按键位置,并将按键值显示在7段数码管上。 指导教师签名: 年 月 日 二、指导教师评语: 指导教师签名: 年 月 日 三、成绩评定: 指导教师签名: 年 月 日 四、系部意见: 系部盖章: 年 月 日 设计报告书目录 一、设计目的 1 二、设计思路 1 三、设计内容 2 3.1、原理分析 2 3.1 1、4* 4键盘的扫描 2 3.1.2、扫描结果的显示 3 3.1.3、电路符号 3 3.1.4、数码管地址选择控制信号 4 3.2、程序设计 4 3.3、管脚分配 8 四、系统调试与结果 9 五、主要元器件与设备 10 六、课程设计体会 11 七、参考文献 11 一、设计目的 1、掌握常用的输入设备—行列式键盘接口电路的实现方法。 2、学习较复杂的数字系统设计方法。 二、设计思路 如下图所示为“4 * 4键盘”模拟图。行“kbrow”有四行:kbrow0、kbrow1、kbrow2、kbrow3 图3 程序配套的4*4矩阵键盘电路图 时钟信号给定相应的时钟信号,通过它的上升沿信号给计数器赋值。并同时读取复位信号,一旦获取到相应的复位信号,所有键盘值即被初始化复位。 3.1.2、扫描结果的显示 用7段数码管显示相应的扫描结果。其中7段数码管采用共阴极读取键值。当某一键被按下,相应的7段数码管获得高电平,便显示该键值,如图4所示: 图4 7段数码管及所对应的I/O接口 3.1.3、电路符号 4*4矩阵键盘扫描电路的电路符号如图5所示。输入信号:时钟信号clk;开始信号start;行扫描信号kbrow[3:0]。输出信号:列扫描信号kbcool[3:0];7段显示控制信号seg7_out[6:0];数码管地址选择控制信号scan[2:0], 图5 4*4矩阵键盘扫描电路的电路符号 3.1.4、数码管地址选择控制信号 数码管地址选择控制信号scan[2:0]用于选择哪个数码管显示数字,8个数码管(SM8-SM1)为共阴极数码管(段码为高电平点亮数码管),I/O2-I/O0为数码管位选,位选对应的数码管关系如下表一所示: 表一:数码管地址选择控制信号对应的位选 接口序列(硬件接口管教号) 数码管选中状态, 可显示 I/O0 (scan0) I/O1 (scan1) I/O3 (scan2) 1 1 1 SM8 1 1 0 SM7 1 0 1 SM6 1 0 0 SM5 0 1 1 SM4 0 1 0 SM3 0 0 1 SM2 0 0 0 SM1 3.2、程序设计 module jp(kbrow,seg7_out,scan,clk,start,kbcol); output [3:0] kbrow;// 列扫描信号 output [6:0]seg7_out;// 7段显示控制信号 output [2:0] scan;// 数码管地址选择控制信号 input clk,start;// 扫描时钟信号,开始信号,高电平有效 input [3:0] kbcol;// 行扫描信号 reg [3:0] kbrow; reg [6:0]seg7_out; reg [2:0] scan; reg [1:0] sta; reg [1:0] count; reg [6:0] seg7; reg [4:0] dat; reg fn;// 按键标志位,判断是否有键被按下 initial scan=3b000;// 只使用一个数码管显示 //循环扫描计数器 always @ (posedge clk) begin if(start==0) seg7=7b0000000; else begin count=count+1; //循环列扫描 case(count) 2b00:begin kbrow=4b0001;sta=2b00;end 2b01:begin kbrow=4b0010;sta=2b01;end 2b10:begin kbrow=4b0100;sta=2b10;end 2b11:begin kbr

文档评论(0)

文档分享 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档