基于单片机的读矩阵键盘,用相应键值

发布者:jiaohe1最新更新时间:2012-09-24 来源: 21ic 关键字:单片机  阵键盘  读矩阵键盘 手机看文章 扫描二维码
随时随地手机看文章

/*****************************************************
     007.ASM

     接线:P0口接数码管
           P2接矩阵键盘
     用定时中断,若一段时间无操作,数码管进入自到循环显示 
      2010.09.05 
   *******************************************************/
   ORG 0000H
     LJMP MAIN
   ORG 000BH
     LJMP INT_T0
   ORG 0020H
MAIN:       ;主程序
     MOV SP,#50H
  MOV DPTR,#LED_DATA   ;取表首地址
  MOV TMOD,#01H     ;设置定时器T0工作模式
  MOV TH0,#15H    ;写计时初值
     MOV TL0,#9FH
  MOV P2,#0FFH    ;P2口赋初值
  MOV R4,#00H     ;赋定时计数初值
  SETB 00H      ;00H为键值改变标志位
  SETB TR0      ;启动定时器T0
  MOV IE,#82H   ;开中断
  LCALL SHOW    ;数码管初始化
loop:      ;主循环
    LCALL KEY_READ   ;读键盘
JBC 00H,LOOP0   ;判断是否有键被按下,有则转去刷新输出并清零定时计数
CJNE R4,#0C8H,LOOP  ;没有键被按下,则判断定时时间是否达到,到,则进入数码管循环输出
LCALL SHOW1    ;没到,则回到主循环,重新扫描键盘
SJMP LOOP
LOOP0:
    LCALL SHOW
    MOV R4,#00H
SJMP LOOP     ;输出刷新完毕,回到主循环,重新扫描键盘

/*键盘扫描程序*/
KEY_READ:
    CLR P2.6    ;P2.6输出低
JB P2.0,N0_0
MOV R0,#01H
LCALL DELAY
JB P2.0,N0_0
JNB P2.0,$
MOV R5,#04H
SETB 00H
SETB P2.6
LJMP NEAT
N0_0:
    JB P2.1,N0_1
MOV R0,#01H
LCALL DELAY
JB P2.1,N0_1
MOV R5,#03H
JNB P2.1,$
SETB 00H
SETB P2.6
LJMP NEAT
N0_1:
    JB P2.2,N0_2
MOV R0,#01H
LCALL DELAY
JB P2.2,N0_2
JNB P2.2,$
MOV R5,#02H
SETB 00H
SETB P2.6
LJMP NEAT
N0_2:
    JB P2.3,N1_0
MOV R0,#01H
LCALL DELAY
JB P2.3,N1_0
JNB P2.3,$
MOV R5,#01H
SETB 00H
SETB P2.6
LJMP NEAT
N1_0:
    SETB P2.6
CLR P2.5
JB P2.0,N1_1
MOV R0,#01H
LCALL DELAY
JB P2.0,N1_1
JNB P2.0,$
MOV R5,#08H
SETB 00H
SETB P2.5
LJMP NEAT
N1_1:
JB P2.1,N1_2
MOV R0,#01H
LCALL DELAY
JB P2.1,N1_2
JNB P2.1,$
MOV R5,#07H
SETB 00H
SETB P2.5
LJMP NEAT
N1_2:
JB P2.2,N1_3
MOV R0,#01H
LCALL DELAY
JB P2.2,N1_3
JNB P2.2,$
MOV R5,#06H
SETB 00H
SETB P2.5
LJMP NEAT
N1_3:
JB P2.3,N2_0
MOV R0,#01H
LCALL DELAY
JB P2.3,N2_0
JNB P2.3,$
MOV R5,#05H
SETB 00H
SETB P2.5
LJMP NEAT
N2_0:
    SETB P2.5
CLR P2.4
JB P2.0,N2_1
MOV R0,#01H
LCALL DELAY
JB P2.0,N2_1
JNB P2.0,$
MOV R5,#0CH
SETB 00H
SETB P2.4
LJMP NEAT
N2_1:
JB P2.1,N2_2
MOV R0,#01H
LCALL DELAY
JB P2.1,N2_2
JNB P2.1,$
MOV R5,#0BH
SETB 00H
SETB P2.4
LJMP NEAT
N2_2:
JB P2.2,N2_3
MOV R0,#01H
LCALL DELAY
JB P2.2,N2_3
JNB P2.2,$
MOV R5,#0AH
SETB 00H
SETB P2.4
LJMP NEAT
N2_3:
JB P2.3,NEAT
MOV R0,#01H
LCALL DELAY
JB P2.3,NEAT
JNB P2.3,$
MOV R5,#09H
SETB 00H
SETB P2.4
LJMP NEAT
NEAT:
    SETB P2.4
    RET
 

/*显示子程序*/
SHOW:
    MOV A,R5
MOVC A,@A+DPTR
MOV P0,A
    RET

/*循环显示子程序*/

SHOW1:      ;
  MOV R3,#00H
LOOP1:
     MOV A,R3
  MOVC A,@A+DPTR
  MOV P0,A
  MOV R0,#35H
  LCALL DELAY
  INC R3
  LCALL KEY_READ
  JB 00H,RETUN1
  CJNE R3,#10H,LOOP1
  MOV R3,#00H
  SJMP LOOP1
RETUN1:
     RET

/*延时子程序*/

DELAY:
D0:  MOV R2,#0FH
D1:  MOV R1,#0BFH
D2:  DJNZ R1,D2
     DJNZ R2,D1
  DJNZ R0,D0
  RET   
    

/*定时中断T0处理子程序*/


INT_T0:
     CLR EA
     PUSH ACC
  INC R4
  MOV TH0,#15H
     MOV TL0,#9FH
  POP ACC
  SETB EA
     RETI

/*数码管显示代码,0~F*/

LED_DATA:
     DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
  DB 01H,09H,11H,0C1H,63H,85H,61H,71H

  END
 

关键字:单片机  阵键盘  读矩阵键盘 引用地址:基于单片机的读矩阵键盘,用相应键值

上一篇:基于51单片机的电子测速里程防盗报警器设计
下一篇:8位数码管显示电子时钟c51单片机程序

推荐阅读最新更新时间:2024-03-16 13:09

MCU基本技术原理及应用方案集锦
  一、单片机与单片微计算机系统   计算机系统已明显地朝巨型化、单片化、网络化三个方向发展。巨型化发展的目的在于不断提高计算机的运算速度和处理能力,以解决复杂系统计算和高速数据处理,比如系统仿真和模拟、实时运算和处理。单片化就是把计算机系统尽可能集成在一块半导体芯片上,其目的在于计算机微型化和提高系统的可靠性,通常把这种单片计算机简称单片机。准确而言,单片机(单片微型计算机)实际上是一种将CPU(中央处理器)、存储器和输入输出接口集成在一个芯片中的微型计算机。单片机的内部硬件结构和指令系统主要是针对自动控制应用而设计的,所以单片机又称微控制器mcu(MicroController Unit),又由于用它可以很容易地将计算机嵌入
[单片机]
<font color='red'>MCU</font>基本技术原理及应用方案集锦
51单片机——存储器
1.存储器概述 存储器是许多存储单元的集合,存储器单元实际上是时序逻辑电路(锁存器)的一种,按单元号顺序排列。每个单元由若干二进制位构成,以表示存储单元中存放的数值,这种结构和数组的结构非常相似。按存储器的使用类型可分为只读存储器(ROM)和随机存取存储器(RAM)。 1.1 存储单位 位(bit):它是计算机中最小的数据单位。由于计算机采用二进制数,所以1位二进制数称作1bit,例如101011为6bit。 字节(Byte,单位简写为B):8位二进制数称为一个字节,1B=8bit。 字(Word):两个字节构成一个字,即2Byte=1Word。 在单片机中还有一个常用术语:字长。所谓字长是指单片机一次能处理的二进制数
[单片机]
51<font color='red'>单片机</font>——存储器
基于Freescale MCU与Audio Codec的安卓音频附件设计
概要   安卓音频附件是Android Open Accessory (AOA) protocol 2.0中新增的功能,它通过标准USB Audio Class Interface将来自安卓设备音频输出到附件中,将音频通过附件声卡播放出去;并且附件可以作为一个人机接口设备来控制安卓设备,比如媒体播放的简单控制等。本文详细描述了基于Freescale MCU与Audio CODEC的安卓音频附件设计方案。   Freescale安卓音频附件简介   本安卓音频附件方案采用Freescale Kinetis K(Cortex-M4)系列的MCU MK70FN1M0VMJ12作为主控芯片,Freescale 的SGTL5000音频
[模拟电子]
基于Freescale <font color='red'>MCU</font>与Audio Codec的安卓音频附件设计
PIC单片机人机接口模块4×4行列式键盘的程序设计
程序的主流程如图1所示。   图1 程序的主流程   程序主要分为两个部分:一个部分不停地监测是否有按键按下,另一个部分查看哪一个键按下。   在初始状态下,4个列输出端口输出低电平,即RD0~RD3输出低电平,然后持续监测4个行输入端口RD4~RD7的状态是不是高电平。   如果没有按键按下,则RD4~RD7的状态是高电平;如果有按键按下,则被按下的键对应的行输入端口的电平就会被拉低,RD4~RD7会有低电平出现,对4个行输入端口RD4~RD7的电平的监测即为对按键的监测。   在4个行输入端口RD4~RD7上出现低电平时,就转到查询程序SEE。键盘扫描子程序流程如图2所示,按键查询子程序流程如图3所示。
[单片机]
PIC<font color='red'>单片机</font>人机接口模块4×4行列式<font color='red'>键盘</font>的程序设计
基于单片机的自动温度测量报警系统设计
摘要:目前,在自动控制领域用温度作为一种控制量对系统进行自动控制已经越来越普遍。针对这种实际情况本文设计了一种简单实用的温度报警系统。该系统以AT89C51单片机为中央处理单元,大大降低了系统开发的成本。通过温度传感器LM35采集外部的温度,并将温度转换成相应的电压值。A/D转换装置对电压值进行模数转换,将结果送入中央处理单元进行计算。单片机根据其处理的结果决定是否需要启动报警装置。结果表明,该系统可以在5~150℃环境下工作,当外界的温度达到设定的报警温度时该系统能够及时地做出反应,具有一定的现实价值。 关键词:AT89C51;传感器;A/D转换;自动报警 目前,无论是在工业生产中还是在科研实验中通过对温度测量来进行自动控制
[单片机]
基于<font color='red'>单片机</font>的自动温度测量报警系统设计
单片机点阵LED灯
电路图如下: 代码如下: #include reg51.h unsigned char code tab ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //unsigned char code tab ={0x7f,0xbf,0xdf,0xef,0xfe,0xfd,0xfb,0xf7}; unsigned char code graph ={ {0x21,0x32,0xac,0x6c,0x32,0x21,0x3a,0x7f}, {0x00,0x02,0x04,0x0a,0xff,0x08,0x04,0x02}, {0xe1,0x55,0x55,0xdf,0x55,0x
[单片机]
<font color='red'>单片机</font>点阵LED灯
单片机系统运行参数的保存及有效性判别
1 引 言   在单片机构成的控制系统中,系统控制时需要使用和保存已经设置或优化的参数。如果将运行参数仅仅存储于单片机的RAM区中,则系统在掉电或重启时将会丢失这些重要参数,不能正常运行。为了解决上述问题,保证控制系统正常、可靠地运行,需要将这些运行参数保存在足够容量的电可擦除存储器(EEPROM)中。在写入或读出EEPROM中的数据时,为保证数据操作的正确性,则需要进行数据校验。在系统运行这些参数之前,为检查运行参数的取值是否在许可范围之内,则需要进行参数取值范围的检验。本文结合作者开发的电梯轿厢门机控制系统,来详细讨论参数保存和校验的设计及实现。 2 系统运行参数的存储   在单片机组成的控制系统中,系统设置的运行参数是系统正常
[单片机]
<font color='red'>单片机</font>系统运行参数的保存及有效性判别
基于单片机的嵌入式SNMP代理器设计与实现
0 引言 SNMP(简单网络管理协议)应用广泛,功能强大,只要管理软件驻留有MIB(管理信息库),并且拥有适当的权限,管理器就可以访问SNMP代理器。SNMP一般用于计算机网络和电信网络,本文提出了用SNMP进行控制。由于其传输媒介是Internet,所以传输距离不受限制,这相对于其他工业控制总线有不可比拟的优势,SNMP最大的优点是协议简洁,适合嵌入式应用。SNMP体系可扩展性强,只要将新的MIB装载在管理软件上就可以实现对新的终端的控制与访问,本文介绍了一种基于廉价的微控制器的实现嵌入式代理器的方案,以微处理器核心实现相关硬件及软件。 1 SNMP体系结构 SNMP的体系结构(见图1)以简单的查询/回答模型为基础,发送查
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved