单片机STC89C52RC实现矩阵键盘(汇编语言版)
单片机型号:STC 89C52RC
引脚如图:
接线方法:4X4矩阵键盘,每行接P3.0-P3.3引脚,每列接P3.4-P3.7引脚,8个LED发光二极管接P1.0-P1.7,用于显示当前按下的键盘序号的二进制表示。
代码如下:
ORG 0000HLJMP MAINMAIN: MOV P3,#0FH ;行接高电平,列接低电平;检查所有行,若出现低电平则跳转JNB P3.0,H1JNB P3.1,H2JNB P3.2,H3JNB P3.3,H4LJMP MAINH1: MOV R0,#1D ;R0记下行LJMP CHECKL ;列接高电平,行接低电平;检查所有列
H2: MOV R0,#2DLJMP CHECKLH3: MOV R0,#3DLJMP CHECKLH4: MOV R0,#4DLJMP CHECKLCHECKL: MOV P3,#0F0HJNB P3.4,L1JNB P3.5,L2JNB P3.6,L3JNB P3.7,L4LJMP MAINL1: MOV R1,#1D ;R1记下列LJMP COUNTL2: MOV R1,#2DLJMP COUNTL3: MOV R1,#3DLJMP COUNTL4: MOV R1,#4DLJMP COUNTCOUNT: MOV A,R0 ;计算所在按键,并将相应的灯置低电平DEC AMOV B,#4DMUL ABADD A,R1CPL AMOV P1,AACALL DELMOV P1,#0FFHMOV R0,#00HMOV R1,#00HLJMP MAINDEL: MOV R5,#04H ;亮灯延迟
DEL1: MOV R6,#0FFH
DEL2: MOV R7,#0FFH
DEL3: DJNZ R7, DEL3DJNZ R6, DEL2DJNZ R5, DEL1RETEND
效果:每按下一个按键,8个发光二极管亮起的灯表示按键序号的二进制表示。
单片机STC89C52RC实现矩阵键盘(汇编语言版)相关推荐
- 单片机STC89C52RC实现时钟(汇编语言)
单片机STC89C52RC实现时钟(汇编语言) 基于STC89C52制作时钟(汇编)7.27 完整代码: ;REGISTER_GROUP0:R0,R1,R2,R3,R4,R5 R6->M R7- ...
- 51单片机 c语言 yl236,基于亚龙YL236单片机设备的矩阵键盘程序设计.doc
基于亚龙YL236单片机设备的矩阵键盘程序设计.doc 基于亚龙YL236单片机设备的矩阵键盘程序设计 摘 要矩阵键盘在单片机技能大赛题目中基本是必备模块,连接贯穿整个题目的设计完成.本文介绍了基于亚 ...
- 4*4按键扫描程序c语言,【资料】单片机4*4矩阵键盘扫描程序(c语言+汇编语言2个版本)...
;4X4矩阵键盘程序.主要原理为扫描键盘矩阵时,每次只有一行电平拉低.在逐次扫描拉低的这些行的同时,去读那些列的电平. ;被拉低的行上,按下的键对应的列的电平为0 ,其它为1. 用左移位的指令,在进位 ...
- 4x4矩阵键盘扫描c语言程序,单片机4*4矩阵键盘扫描程序(c语言+汇编语言2个版本)...
;4X4矩阵键盘程序.主要原理为扫描键盘矩阵时,每次只有一行电平拉低.在逐次扫描拉低的这些行的同时,去读那些列的电平. ;被拉低的行上,按下的键对应的列的电平为0 ,其它为1. 用左移位的指令,在进位 ...
- 【单片机实验】矩阵键盘
实验五 矩阵键盘 一.实验目的 1.掌握矩阵键盘的硬件电路原理和软件编程方法: 2.掌握利用数码管显示矩阵键盘键值的编程方法. 二.实验说明 本实验提供了一个4X4小键盘,开始先将4行置一,4列置零, ...
- 设计分享|单片机4*4矩阵键盘控制LED灯
目录 具体实现功能 设计介绍 51单片机简介 设计思路 设计内容 仿真图(protues8.7) 程序(Keil5) 具体实现功能 4*4矩阵键盘控制LED显示,第一个按键控制一个LED点亮,第二个按 ...
- 51单片机基础之矩阵键盘4X4
原理: 16个键盘,通过八个引脚就可以控制,高四位控制行,低四位控制列. 代码: #include <reg51.h>#define SMG P0 //宏定义数码管 #define KEY ...
- 【单片机】C52单片机之4X4矩阵键盘和数码管联动
各位读者好,本文主要介绍在C52单片机上如何设计矩阵键盘并与数码管联动. 在你拥有以下条件时,学习效果最佳: 1.开发环境中安装了keil(单片机程序开发工具).proteus(仿真软件) 2.有一定 ...
- 4*4矩阵键盘c语言,单片机 4*4 矩阵键盘应用
在单片机按键使用过程中,当键盘中按键数量较多时 为了减少端口的占用通常将按键排列成矩阵 形式如下图所示,在矩阵式键盘中 每条水平线和垂直线在交叉处不直接连通而是通过一个按键加以连接,到底这样做是出意何 ...
最新文章
- linux mysql 自动加斜杠_【实战演练】Linux操作系统19-Mysql主主复制加Keepalived高可用...
- 当AV1视频编解码器来到Webex!
- 关于Git下载上传项目的操作指令
- springbot 注入多实例
- [CodeForces gym 101630 J] 过路费(最短路)
- LINQ学习笔记(9) LINQ to Objects---查询内存中对象的集合
- Linux NAT设定
- 在线预览文档简单例子
- win7 32位操作系统 ie8浏览器问题解决办法
- 计算机局域网访问受限制,电脑本地连接受限制的处理方法
- iPhone苹果手机iOS系统怎么修复?教你自己修复iOS故障
- 【UER #4】量子态的棋盘
- 深度学习之残差网络原理深度刨析
- 2019 kyle年度总结
- 20190121——不慕神仙?不羡神仙! java中的单例模式
- 如何搭建团队知识管理体系?从入门到精通,你只差……
- 锐捷Linux上不了外网,校园网锐捷通过认证 但不能上网 求助!!
- matlab数值分析和微分Polynomial
- mac电脑常用开发软件
- 某面试官分享经验:看求职者第一眼,开口说第一句话,面试结果就差不多定了,准确率高达90%以上...
热门文章
- attachment.php是什么,attachment是什么意思
- 一文教你快速学习搭建属于自己的数据指标体系
- mysql关于case when的用法举例
- c语言开发安装浏览器,用Visual C++开发简易浏览器
- C语言编写寻找1--100间的奇数
- pytorch LSTM的股价预测
- 《EROFS: A Compression-friendly Readonly File System for Resource-scarce Devices》
- 丛麟环保IPO过会:年利润超2亿 拟募资20.3亿
- 钉钉内置浏览器下载文件(钉钉跨域下载文件、图片等)
- rmxp4droid for 天敏电视盒子