非编码键盘的扫描程序设计.docx

上传人:b****8 文档编号:30470686 上传时间:2023-08-15 格式:DOCX 页数:9 大小:22.64KB
下载 相关 举报
非编码键盘的扫描程序设计.docx_第1页
第1页 / 共9页
非编码键盘的扫描程序设计.docx_第2页
第2页 / 共9页
非编码键盘的扫描程序设计.docx_第3页
第3页 / 共9页
非编码键盘的扫描程序设计.docx_第4页
第4页 / 共9页
非编码键盘的扫描程序设计.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

非编码键盘的扫描程序设计.docx

《非编码键盘的扫描程序设计.docx》由会员分享,可在线阅读,更多相关《非编码键盘的扫描程序设计.docx(9页珍藏版)》请在冰豆网上搜索。

非编码键盘的扫描程序设计.docx

非编码键盘的扫描程序设计

非编码键盘的扫描程序设计

      武汉理工大学《计算机控制技术》课程设计说明书  目录  1设计任务及要求......................................................................................1  初始条件........................................................................................1要求完成的主要任务....................................................................12方案比较及认证......................................................................................13键盘扫描原理..........................................................................................34系统硬件设计..........................................................................................4  选用元器件....................................................................................4  8031单片机.........................................................................48155芯片.............................................................................7硬件电路.....................................................................................10  矩阵式键盘电路................................................................10时钟电路和复位电路........................................................11非编码键盘的总电路........................................................12  5系统软件设计........................................................................................13  软件思想......................................................................................13程序流程图.................................................................................14源程序..........................................................................................156调试记录及结果分析...........................................................................18心得体会...................................................................................................19

      武汉理工大学《计算机控制技术》课程设计说明书  下。

  识别具体按键的方法:

首先逐列置零电平,其余各列置为高电平,然后检查各行线电平的变化,如果某行电平高电平变为零电平,则可确定此行此列交叉点处的按键被按下。

  4系统硬件设计  选用元器件  8031单片机  8031单片机共有40条引脚,其中有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制或与其它电源复用的引脚,32条输入/输出引脚。

其引脚图如图4-1所示。

  图4-18031单片机引脚图  下面按其引脚功能分为四部分叙述这40条引脚的功能。

主电源引脚VCC和VSSVCC——接+5V电压;VSS——接地。

  外接晶体引脚XTAL1和XTAL2  XTAL1接外部晶体的一个引脚。

在单片机内部,它是一个反相放大  4  武汉理工大学《计算机控制技术》课程设计说明书  器的输入端,这个放大器构成了片内振荡器。

当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。

  XTAL2接外晶体的另一端。

在单片机内部,接至上述振荡器的反相放大器的输出端。

采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。

  控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP①RST/VPD当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。

推荐在此引脚与VSS引脚之间连接一个约的下拉电阻,与VCC引脚之间连接一个约10μF的电容,以保证可靠地复位。

  VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。

当VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围内,VPD就向内部RAM提供备用电源。

  ②ALE/PROG:

当访问外部存贮器时,ALE的输出用于锁存地址的低位字节。

即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。

因此,它可用作对外输出的时钟,或用于定时目的。

然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。

ALE端可以驱动8个LS型的TTL输入电路。

  对于EPROM单片机,在EPROM编程期间,此引脚用于输入编程脉冲。

  ③PSEN:

此脚的输出是外部程序存储器的读选通信号。

在从外部程序存储器取指令期间,每个机器周期两次PSEN有效。

但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。

PSEN同样可以驱动8个LS型的TTL输入。

  ④EA/VPP:

当EA端保持高电平时,访问内部程序存储器,但在PC值超过0FFFH或1FFFH时,将自动转向执行外部程序存储器内的程序。

当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。

对于常用的8031来说,无内部    5  武汉理工大学《计算机控制技术》课程设计说明书  程序存储器,所以EA脚必须常接地,这样才能只选择外部程序存储器。

  对于EPROM型的单片机,在EPROM编程期间,此引脚也用于施加21V的编程电源。

  输入/输出引脚P0、P1、P2、P3  ①P0口:

是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。

  ②P1口:

是准双向8位I/O口。

于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。

P1口能驱动4个LS型的TTL负载。

对8052、8032,引脚的第二功能为T2定时/计数器的外部输入,引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。

对EPROM编程和程序验证时,它接收低8位地址。

  ③P2口:

是准双向8位I/O口。

在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。

在对EPROM编程和程序验证期间,它接收高8位地址。

P2可以驱动4个LS型的TTL负载。

  ④P3口:

是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。

P3能驱动4个LS型的TTL负载。

  作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。

作为第二功能使用时,各引脚的定义如表4-1所示。

P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。

    表4-1P3各口线的第二功能定义    6  武汉理工大学《计算机控制技术》课程设计说明书  口线  引脚1011121314151617第二功能RXDTXDINT0INT1T0T1WRRD8155芯片  8155芯片是为8086系列微机开发出的系列通用可编程I/O接口芯片。

8155不仅可以提供三个并行的I/O端口,在其内部还集成有256个字节的RAM存储空间、一个14位的定时/计数器,因此非常适合与MCS-51单片机连接实现系统功能的扩展。

  8155的引脚图如图4-2所示:

  图4-28155引脚图    8155各引脚功能说明如下:

    7  武汉理工大学《计算机控制技术》课程设计说明书  RST:

复位信号输入端,高电平有效。

复位后,3个I/O口均为输入方式。

  AD0~AD7:

三态的地址/数据总线。

与单片机的低8位地址/数据总线相连。

单片机与8155之间的地址、数据、命令与状态信息都是通过这个总线口传送的。

  RD:

读选通信号,控制对8155的读操作,低电平有效。

WR:

写选通信号,控制对8155的写操作,低电平有效。

CE:

片选信号线,低电平有效。

  IO/M:

8155的RAM存储器或I/O口选择线。

当IO/M=0时,则选择8155的片内RAM,AD0~AD7上地址为8155中RAM单元的地址;当IO/M=1时,选择8155的I/O口,AD0~AD7上的地址为8155I/O口的地址。

  ALE:

地址锁存信号。

8155内部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及,IO/的状态都锁存到8155内部锁存器。

因此,P0口输出的低8位地址信号不需外接锁存器。

  PA0~PA7:

8位通用I/O口,其输入、输出的流向可程序控制。

PB0~PB7:

8位通用I/O口,功能同A口。

  PC0~PC5:

有两个作用,既可作为通用的I/O口,也可作为PA口和PB口的控制信号线,这些可通过程序控制。

  TIMERIN:

定时/计数器脉冲输入端。

TIMEROUT:

定时/计数器输出端。

VCC:

+5V电源。

  8155的地址编码及工作方式  在单片机应用系统中,8155是按外部数据存储器统一编址的,为16位地址,其高8位片选线提供,CE=0,选中该片。

  当CE=0,IO/M=0时,选中8155片内RAM,这时8155只能作片外RAM使用,其RAM的低8位编址为00H~FFH;当CE=0,IO/M=1时,选中8155的I/O口,其端口地址的低8位AD7~AD0确定,如表4-2所示。

  8

  

      武汉理工大学《计算机控制技术》课程设计说明书  这时,A、B、C口的口地址低8位分别为01H、02H、03H。

表4-28155芯片的I/O口地址CE0000000IO/M1111110A7-A3XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXA2A1A0000001010011100101XXX所选端口命令/状态寄存器A口B口C口计数器低8位计数器高8位RAM单元8155的A口、B口可工作于基本I/O方式或选通I/O方式。

C口可工作于基本I/O方式,也可作为A口、B口在选通工作方式时的状态控制信号线。

当C口作为状态控制信号时,其每位线的作用如下:

PC0:

AINTRPC1:

ABFPC2:

ASTBPC3:

BINTRPC4:

BBFPC5:

BSTB8155的I/O工作方式选择是通过对8155内部命令寄存器设定控制字实现的。

命令寄存器只能写入,不能读出,命令寄存器的格式如图4-3所示。

TM2TM1IEBIEAPC2PC1PBPA图4-38155命令寄存器的格式PB、PA:

A、B口工作方式:

0输入;1输出。

PC2、PC1:

C口工作方式:

00ALT1;01ALT2;10ALT3;11ALT4。

  9  武汉理工大学《计算机控制技术》课程设计说明书  IEBIEA:

A、B口中断允许位:

0禁止中断;1允许中断。

  TM2TM1:

计数器工作方式:

00无操作;01停止计数;10计满后停止;11开始计数。

  在ALT1~ALT4的不同方式下,A口、B口及C口的各位工作方式如下:

ALT1:

A口,B口为基本输入/输出,C口为输入方式。

ALT2:

A口,B口为基本输入/输出,C口为输出方式。

  ALT3:

A口为选通输入/输出,B口为基本输入/输出。

PC0为AINTR,PC1为ABF,PC2为,PC3~PC5为输出。

  ALT4:

A口、B口为选通输入/输出。

PC0为AINTR,PC1为ABF,PC2为,PC3为BINTR,PC4为BBF,PC5为。

  8155内还有一个状态寄存器,用于锁存输入/输出口和定时/计数器的当前状态,供CPU查询用。

状态寄存器的端口地址与命令寄存器相同,低8位也是00H,状态寄存器的内容只能读出不能写入。

所以可以认为8155的I/O口地址00H是命令/状态寄存器,对其写入时作为命令寄存器;而对其读出时,则作为状态寄存器。

  硬件电路    矩阵式键盘电路  矩阵式键盘将按键设置在行列线的交叉点上,行列线分别连接到按键的两端。

行线通过上拉电阻接至+5V电压,即行线的输出被钳位到高电平状态;判断有无按键按下时通过列线送出扫描信号,然后行线读取状态得到。

其方法是依次给列线送低电平,检查行线的输入。

若行线为高电平,则代表所在行无按键被按下,如果行线出现低电平,则低电平所在的行和出现低电平的列的交叉点处有按键按下。

矩阵式键盘电路如图4-4所示。

  10  武汉理工大学《计算机控制技术》课程设计说明书  图4-4矩阵式键盘电路  时钟电路和复位电路  时钟振荡器是单片机工作节奏的原始动力,单片机的所有工作时序都是靠时钟振荡信号来控制的,没有时钟振荡,单片机就无法工作。

8031的内部时钟电路实际上仅是一个可以构成振荡器的电路。

使用时还要外接元件才能变成振荡器。

  外部连接的晶振电路如图4-5所示。

    11  武汉理工大学《计算机控制技术》课程设计说明书  图4-5晶振电路  复位的目的是对单片机的片内电路重新进行初始化,使有关部件都恢复到原先规定的初始工作状态。

8031的外接复位电路如图4-6所示。

  图4-6复位电路  非编码键盘的总电路  图4-7为总电路图。

总电路是用8031单片机控制,通过8155扩展I/O口组  12  武汉理工大学《计算机控制技术》课程设计说明书  成的6×6行列式键盘电路。

其中8031的P0口与8155的AD0~AD7相连,传递地址、数据、命令与状态信息。

PA0~PA5作为列线输出,PC0~PC5作为行线输入。

PC0~PC5通过上拉电阻接到+5V上,而当有按键按下时,行线电平状态与此行线相连的列线电平决定。

列线电平如果为低,则行线电平为低;列线电平如果为高,则行线电平亦为高。

进行扫描时,先令PA0~PA5均输出0,确定有没有键被按下,若有键被按下,则令PA0~PA5逐个输出为0,其它输出为1,然后读入PC口的数据,看哪一行为零电平,则此行与此列的交叉处的键被按下。

  图4-7非编码键盘总电路图  5系统软件设计  软件思想  编程的依据是键盘扫描的原理。

在程序里,先将PA口置零输出,然后读取PC口的值,看PC口有没有为低电平的位,如果有,则表示有按键按下,接下来将PA0~PA5逐位置零,读取PC口的值,看哪一位为零,则改行与该列交点处的按键被按下,计算键值入栈保存。

  13

  

      武汉理工大学《计算机控制技术》课程设计说明书  本次选择使用编程扫描的方法,所以在一开始的时候就要通过初始化程序定义8155PA、PB、PC口的工作方式。

  本次选用软件方法去抖动,所以要编写去抖动延时程序。

  程序流程图  程序流程图如图5-1所示。

      图5-1键盘扫描流程图  开始否有键闭合?

是调用去抖动延时子程序否有键闭合?

是计算键值并入栈保护否闭合键释放?

是键号A,出栈返回14  武汉理工大学《计算机控制技术》课程设计说明书    源程序  ORG0000HAJMPMAINORG0100HMAIN:

NOP;8155控制字  KD1:

MOVDPTR,#7F00H  ;PA,PBMOVA,#03HMOVX@DPTR,A  LCALLKEY1    ;KEY1:

ACALLKS1    ;JNZ  LK1    ;  AJMPKEY1    ;LK1:

ACALLDELA12  ;12msACALLKS1    ;JNZ  LK2    ;  AJMPKEY1    ;LK2:

MOVR2,#0FEH  ;R2=11111110B  MOV  R4,#00H  LK4:

MOVDPTR,#7F01HMOVA,R2MOVX@DPTR,A  INCDPTR    ;INCDPTRMOVX  A,@DPTR  JB,LONE  ;  口为输出,PC口为输入调用扫描子程序有无键按下子程序有键按下,转去抖延时程序  无键按下,继续扫描  延时程序调用判断键是否真正按下有键按下,转逐列扫描  无键按下,继续扫描  存放键值  使PA0=0  指向PC口  读入行状态  第0行无键按下,转LONE  15    ;R4  ;  ;武汉理工大学《计算机控制技术》课程设计说明书  MOVA,#00H    ;有键按下,设置行首键号AJMP  LKP    ;转求键号  ;第1行无键按下,转LTWO    LONE:

JB,LTWO  MOV  A,#06H  ;有键按下,设置行首键号  AJMPLKP    ;转求键号    LTWO:

JB,LTHRMOV  A,#0CH  ;  AJMPLKP  LTHR:

JB,LFOR  MOVA,#012H  LFOR:

JB,LFIV  MOVA,#18HLFIV:

JB,NEXT  MOVA,#1EH  LKP:

ADDACC,R4  ;  PUSHACC    ;LK3:

ACALLKS1    ;JNZLK3    ;POP  ACC    ;  AJMPOVER    ;NEXT:

INCR4    ;MOV  A,R2    ;JNB,KND  RLA    ;MOVR2,A    ;  AJMPLK4    ;LTHR:

JB,NEXT  MOVA,#18H  ;LKP:

ADDA,R4    ;  ;第2行无键按下,转LTHR  有键按下,设置行首键?

  ;转求键号  ;第3行无键按下,查下一列  ;有键按下,设置行首键  求键号,键号=行首键号+列号保护键号  等待键释放键未释放,继续等待键释放,键号送A  键扫描结束  列号加1,指向下一列    判断8列扫描完否  ;8列扫描完,继续  扫描字左移一位送扫描字转下一列扫描    ;第3行无键按下,查下一列  有键按下,设置行首键  求键号,键号=行首键号+列号  16  武汉理工大学《计算机控制技术》课程设计说明书  PUSHACC    ;保护键号  LK3:

ACALLKS1    ;等待键释放    JNZLK3    ;键未释放,继续等待POPACC    ;键释放,键号送AAJMP  OVER    ;键扫描结束  NEXT:

INCR4      ;列号加1,指向下一列    MOVA,R2JNB,KND  ;8列扫描完,继续  RLA    ;字左移一位MOVR2,A    ;送扫描字AJMPLK4    ;下一列扫描    KND:

AJMPKEY1  OVER:

RET    ;扫描结束KS1:

MOVDPTR,#7F01H  ;向PA口    MOVA,#00H    ;扫描字MOVX  @DPTR,A  ;描字送PA口  INCDPTRINCDPTRMOVX    ;向PC口  A,@DPTR  ;入PC口状态  CPL    ;高电平表示有键按下ANLA,#0FH    ;蔽高4位RET  ;晶振为6MHz时的12ms延时子程序DELL:

MOVR7,#12DEL:

MOVR6,#250NN:

DJNZR6,NN  DJNZR7,DELRET    17  武汉理工大学《计算机控制技术》课程设计说明书  END  6调试记录及结果分析  程序调试,是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。

这是保证计算机信息系统正确性的必不可少的步骤。

编完计算机程序,必须送入计算机中测试。

  在调试过程中,会发现程序中的错误,例如分号不是在英文输入状态下输入的,为使程序正常运行,要对这些错误进行改正。

  编写的程序能够完成按键识别和去抖动的功能。

      18

  

      武汉理工大学《计算机控制技术》课程设计说明书  心得体会  通过这次课程设计,我对计算机控制技术这门课程的知识有了更深的理解。

这次的课设是关于键盘扫描的,这方面的知识在课堂上涉及得很少,所以需要去查阅很多资料,这在无形中提高我查阅资料和自学的能力。

这次画电路图用的是proteus,通过电路图的绘制,我初步掌握了proteus的使用方法。

通过编程,进一步了解了单片机的指令。

  这次课程设计,我首先去学习一些初级原理。

例如为什么按键会产生抖动、去抖动有哪些方法、键盘扫描的原理是什么,有哪几种方式以及它们的区别。

理解后,通过比较,选择了编程扫描法和编程去抖动法。

  然后,我进一步学习了8031单片机和8155芯片的工作原理以及引脚的功能,然后用proteus绘制出了电路图。

  最后,我通过一些例子弄懂了如何编程来控制键盘扫描的过程。

自己绘制了流程图,编写出了源程序,经过修改,最后的到正确的源程序。

  在课程设计的过程中,我认识到了理论与实践结合的重要性。

感觉在理论上已经理解的知识,当应用到实践中去的时候,还是会出现各种各样的问题,通过学习解决了之后才是对知识真正的掌握。

我们应该把学到的知识应用到实践中去,这样才能不断加深理解,使各方面的知识融会贯通。

  这次我做的设计达到了任务书上的要求,但仍然有美中不足的地方,在以后的学习中我将进一步提高和完善自己。

    19  武汉理工大学《计算机控制技术》课程设计说明书  

      武汉理工大学《计算机控制技术》课程设计说明书  LFIV:

JB,NEXT  MOVA,#

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1