矩阵键盘介绍
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。
采用逐行或逐列的“扫描”,就可以读出任何位置按键的状态。
结构:在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(⑨键) 由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
扫描的概念
数码管扫描(输出扫描)
原理:显示第1位→显示第2位→显示第3位→……,然后快速循环这个过程,最终实现所有数码管同时显示的效果。因为它的扫描速度是非常快的,根据人的肉眼现象,你所看到的扫描都是同时进行显示的。这就是少量 IO 口,连接到矩阵减少 IO 口的一个目的。
矩阵键盘扫描(输入扫描)
原理:读取第1行(列)→读取第2行(列) →读取第3行(列) → ……,然后快速循环这个过程,最终实现所有按键同时检测的效果。原理:跟数码管是极其相像的,扫描的过程其实是由电脑的显卡来进行扫描的这个是一个其它的一个知识点。其实对于显示器来说这个扫描的概念是非常广泛的,因为这个像素点是非常多的几乎所有的显示器都会采用矩阵来进行扫描的。
以上两种扫描方式的共性:节省I/O口
关键字:51单片机 矩阵键盘 矩阵形式
引用地址:
【51单片机】矩阵键盘
推荐阅读最新更新时间:2024-11-12 17:11
MCS-51单片机内部程序存储器ROM结构详解
MCS-51单片机的程序存储器用于存放编好的程序和表格常数。8051片内有4 KB的ROM,8751片内有4 KB的EPROM,8031片内无程序存储器。 MCS-51的片外最多能扩展64 KB程序存储器,片内外的ROM是统一编址的。如端保持高电平,8051的程序计数器PC在0000H~0FFFH地址范围内 (即前4 KB地址) 是执行片内ROM中的程序,当PC在1000H~FFFFH地址范围时,自动执行片外程序存储器中的程序;当保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。 MCS-51的程序存储器中有些单元具有特殊功能,使用时应予以注意。 其中一组特殊单元是0000H~0002H。系统复位后,(
[单片机]
51单片机常见的六个问题
一,为何51单片机爱用11.0592MHZ晶振? 其一:由于它能够精确地划分红时钟频率,与UART(通用异步接纳器/发送器)量常见的波特率有关。特别是较高的波特率(19600,19200),不论多么古怪的值,这些晶振都是精确,常被运用的。 其二:用11.0592晶振的缘由是51单片机的定时器致使的。用51单片机的定时器做波特率发生器时,假如用11.0592Mhz的晶振,根据公式算下来需求定时器设置的值都是整数;假如用12Mhz晶振,则波特率都是有误差的,比如9600,用定时器取0XFD,实践波特率10000,通常波特率误差在4%摆布都是能够的,所以也还能用STC90C516 晶振12M 波特率9600 ,倍数时误差率6
[单片机]
51单片机内部EEPROM的应用
STC89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次以上,先来介绍下ISP与IAP的区别和特点。 ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给STC单片机下载程序,或给AT89S51单片机下载程序,这就是利用了ISP技术。 IAP:In Application Programable 是指在应用编程,就是片子提供一系列的机制(硬件/软件上的)当片子在运行程序的时候可以
[单片机]
贰:第一个51单片机的汇编实验
指令是指示单片机执行某种操作的指令。 1、机器码指令 用二进制(或十六进制)表示,这种形式的指令能够直接被计算机硬件识别和执行。 例如:二进制码“0000 0100B”,(十六进制“04H”)。 2、汇编语言指令 为了方便记忆,便于程序的编写和阅读,用助记符来表示每一条指令的功能。用助记符表示的指令不能被微处理器直接识别和执行,必须转换成机器码指令才能被机器执行。 例如,把5FH传送到累加器A中,实现这种操作的汇编语言指令形式为: MOV A,#5FH 其中“#”号为立即数5FH的标示符。这条指令的机器码为“74H 5FH” 汇编语言的语句格式 :操作码助记符 LOOP:MOV P0,#0FFH ;P0 端口
[单片机]
MCU--51单片机CPU和存储器
单片机 8051的CPU由运算器和控制器组成。 一、运算器 运算器以完成 二进制 的算术/逻辑运算部件ALU为核心,再加上暂存器TMP、累加器A CC 、寄存器B、程序状态标志寄存器PSW及布尔处理器。累加器ACC是一个八位寄存器,它是CPU中工作最频繁的寄存器。在进行算术、逻辑运算时,累加器ACC往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)。寄存器B主要用于乘法和除法操作。标志寄存器PSW也是一个八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。其每位的具体含意如下所示。PSW CY AC FO RS1 RS0 OV - P对用户来讲,最关心的是以下四位。 1?进位标志CY(
[单片机]
51单片机-数码管显示函数
1.代码选择 有时我们需要6个数码管显示我们想要看到的数字,比如计算结果呈现在数码管上,然而当要显示的数为“520”时又不想前面的3个数码管亮(也就是高位为0不显示),我们把这部分功能代码封装为带参数的函数,传入的参数就是要显示的数值。参数定义的是unsigned long类型,也就是支持0~4294967296的数值(2的32次方等于4294967296)。 示例1: void ShowNumber(u32 num) { LedBuff =LedChar ; LedBuff =LedChar ; LedBuff =LedChar ; LedBuff =LedChar ; LedBuff =LedChar ;
[单片机]
51单片机1ms延时程序
51单片机1ms延时程序 程序: void delay1s(void) { unsigned char h,i,j,k; for(h=5;h 0;h--) for(i=4;i 0;i--) for(j=116;j 0;j--) for(k=214;k 0;k--); } void delay1s(void)//12M晶振,延时999999.00us { unsigned char i,j,k; for(i=46;i 0;i--) for(j=152;j 0;j--) for(k=70;k 0;k--); }
[单片机]
51单片机程序及调试步骤实战经验
我刚参加工作的时候,用的是stc 51单片机的,51单片机不像stm32那样可以通过st-link在keil上面在线仿真。 有时候出现bug的时候,非常难找问题,要一段一段屏蔽然后测试。 在刚开始接触开发的时候,我非常不习惯用在线仿真,大概是因为没用过。 记得有一次进了一家公司做行车记录仪,用的台产GRAIN的单片机。 那时候基本上没什么资料,就一个dada sheet和demo程序。 在开发之前,老大安排了给我一个任务,就是把这个仿真环境先给搭起来。 相当于是他们原厂没有的东西,让我去搞定,这个芯片是基于Fa626TE core的32位控制器。 网上的资料太少了,光是测试搭建这个环境花了半个多月,最后还没搭建出来。
[单片机]