基于EDA和单片机技术在键盘上的应用.docVIP

基于EDA和单片机技术在键盘上的应用.doc

  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文档。上传文档
查看更多
基于EDA和单片机技术在键盘上的应用   在电子技术飞速发展的今天,特别是微电子技术的发展,更是令人应接不暇。在这其中尤其以EDA技术和单片机技术的发展更为迅速。现在对EDA技术和单片机技术的应用十分广泛,包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有它们的应用。目前这两项技术已在各大公司、企事业单位和科研教学部门广泛使用。为了更好的研究EDA和单片机技术,我们借助EDA―单片机综合系统。这套系统由浅入深包括了基于AT89S51单片机和Cyclone公司的EP1C3T144C8 EDA芯片为设计芯片。   单片机部分我们采用的是AT89S51单片机及其相配套的爱迪克编译软件,还有Easy 51pro下载软件。而EDA部分我们选用了EDA软件Quartus II 4.1来作为编程下载软件。   首先我们采用的是矩阵式键盘(也称作行列式键盘)适用于按键数量较多的场合。接线电路图如下图所示:   本文采用的是4*4的一个十六键键盘,键盘的工作原理是:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V上。平时无按键按下时,行线处于高电平状态,而当有键按下时,行线电平状态将由与此行线相连的列线电平决定。列线电平如果为低,则行线电平为低;列线电平如果为高,则行线电平也为高。这是识别矩阵键盘按键是否被按下的关键所在。由于矩阵键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平。因此各按键彼此将互相发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。同时我们还设定了键盘工作允许控制如电路图,这样当我们不用键盘时可以空着VCC和ZL_KEY_RX端,键盘不工作,当我们要用到键盘时,则可以用短路帽将VCC和ZL_KEY_RX端短接,这样键盘就工作了。   按键的识别方法有两种方法,①扫描法和②线反转法我们采用线反转法扫描法,图中用一个8位I/O口构成一个4*4的矩阵键盘,采用查询方式进行工作,下面介绍一下线反转法的两个具体操作步骤:   第一步:将行线编程为输入线,列线编程为输出线,并使输出线输出为全零电平,则行线中电平由高到低的所在行为按键所在行。   第二步:同第一步完全相反,将行线编程为输出线,列线编程为输入线,并使输出线输出为全低电平,则列线中电平由高到低的所在列为按键所在列。   结合两步的结果,可确定按键所在的行和列,从而识别出所按的键。假定3号键被按下,那么第一步即在D0~D3输出全零,然后,读入D4~D7位,结果D4=0,而D5,D6,D7均为1,因此,第一行出现电平的变化,说明第一行有键按下;第二步让D4~D7输出全0,然后,读入D0~D3位,结果D0=0,而D1,D2,D3均为1,因此第四列出现电平的变化,说明第四列有键按下。综合一、二两步,即第一行第四列按键被按下,此按键即是3号键。因此线反转法非常简单实用。当然要运用好还得靠编程实现。   单片机程序如下:   ORG 0000H   AJMP MAIN   ORG 0030H   MAIN:MOV P1,#0F0H    NOP    NOP    NOP    CJNE A,#0F0H,KEY1    SJMP $   KEY1:CJNE P1.4,#0,KEY2   SJMP XIACI   KEY2:CJNE P1.5,#0,KEY3   SJMP XIACI   KEY3:CJNE P1.6,#0,KEY4   CHULI:CJNE P1.0,#0,KEY6   SJMP $   KEY6:CJNE P1.1,#0,KEY7   SJMP $   KEY7: CJNE P1.2,#0,KEY8    KEY8: CJNE P1.3,#0,MAIN    SJMP $   END   用这个键盘程序可以实现功能的散转,即根据按下不同的键去完成不同的功能,可以通过键盘去调显示子程序完成显示功能。   下面是相应的EDA的键盘程序:   LIBRARY IEEE;   USE IEEE.STD_LOGIC_1164.all;   USE IEEE.STD_LOGIC_ARITH.all;   USE IEEE.STD_LOGIC_UNSIGNED.all;   NTITY keyboard IS   PORT(keyboard_clk, keyboard_data, clock_25Mhz ,   reset, read: INSTD_LOGIC;   scan_code: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);   scan_read

文档评论(0)

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

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

1亿VIP精品文档

相关文档