单片机培训第3讲——矩阵键盘、数码管、中断
单片机矩阵键盘

按键在闭合和断开时,触点会存在抖动现象:
数码管前三位显示一个跑表,从000到999之间以1%秒速度运行,当按下一个独立键盘时跑表停止,松开手后跑表继续运行。(用定时器设计表)。
在上题的基础上,用另外三个独立键盘实现按下第一个时计时停止,按下第二个时计时开始,按下第三个是计数值清零从头开始。
键盘处理程序就作这么一个简单的介绍,实际上,键盘、显示处理是很复杂的,它往往占到一个应用程序的大部份代码,可见其重要性,但说到,这种复杂并不来自于单片机的本身,而是来自于操作者的习惯等等问题,因此,在编写键盘处理程序之前,最好先把它从逻辑上理清,然后用适当的算法表示出来,最后再去写代码,这样,才能快速有效地写好代码
ANL A,#0FH
CJNE A,#0FH,KCODE;
MOV A,R1
SETB C RLC A JC NEXT2 NEXT3: MOV R0,#00H RET KCODE: MOV B,#0FBH NEXT4: RRC A INC B JC NEXT4 MOV A,R1 SWAP A NEXT5: RRC A INC B INC B INC B INC B 。
按下16个矩阵键盘依次在数码管上显示1-16的平方。如按下第一个显示1,第二个显示4...
识别方法
04
03
01
02
3、若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描。P1.4-P1.7按下述4种组合依次输出: P1.7 1 1 1 0 P1.6 1 1 0 1 P1.5 1 0 1 1 P1.4 0 1 1 1 在每组行输出时读取P1.0-P1.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值 4、为了保证键每闭合一次CPU仅作一次处理,必须去除键释放时的抖动。
51单片机矩阵按键

1.矩阵按键的由来 2.矩阵按键扫描原理 3.矩阵按键怎么变成独立按键 4.编写矩阵按键控制程序
1. 矩阵按键由来
2. 矩阵按键扫描原理
方法一:
逐行扫描:我们可以通过高四位轮流输出低电平来对矩 阵键盘进行逐行扫描,当低四位接收到的数据不全为1的时候, 说明有按键按下,然后通过接收到的数据是哪一位为0来判断 是哪一个按键被按下。
3. 矩阵按键怎么变们可以通过高四位全部输出低电平,低四位
输出高电平。当接收到的数据,低四位不全为高电平时,说 明有按键按下,然后通过接收的数据值,判断是哪一列有按 键按下,然后再反过来,高四位输出高电平,低四位输出低 电平,然后根据接收到的高四位的值判断是那一行有按键按 下,这样就能够确定是哪一个按键按下了。
单片机——中断和矩阵键盘

主讲人:陶旭辉
三 . 外部中断的处 理过程
3.1 中断请求
在中断允许的情况下,单片 机收到外部的低电平或者下 降沿时,可认为外部发出了 中断请求。
外电路如何发出低电平信号 或者下降沿信号呢?
主讲人:陶旭辉
3.11 中断响应条件
在满足以下2个条件时,CPU将响应中断。
1)有中断源发出中断请求; 2)中断允许 a 中断总允许位 EA=1 ; b 发出请求的中断源被允许中断; c CPU没有在执行一个同级或者优先级更高的中断服务 程序。
主讲人:陶旭辉
矩阵键盘
一、按键的抖动与消抖 为什么要消抖 按键按下瞬间会产生一段时间的毛刺(持续10mS左右)然后才稳 定的现象,如果不加消抖措施会在程序中误判为多次按下按键 通常采取软件消抖的方法,即程序检测到按键按下后,延时 10mS以上再次检测按键状态,如果状态仍然按下则为一次可靠 的按下。
主讲人:陶旭辉
自然优先级:
低
断串 口 中
中定 断时 器
高
断外 部 中
中定 断时 器 断外 部 中 0
1
主讲人:陶旭辉
1
0
中断系统结构图
主讲人:陶旭辉
五、中断的应用
初始化步骤: a.开放CPU中断并允许有关中断源中断(IE) b.确定中断优先级(IP) c.确定中断触发方式(TCON) 配置实例: void init_int1(void)//初始化INT1 { IP = 0x00;//使用自然中断优先级 EX1 = 1;// INT1中断开 IT1 = 1;// INT1下降沿触发(为0则为低电平触发) }
0x0003
外部中断0
0x000B
定时器0
0x0013
数码管和矩阵

数码管和矩阵键盘----笔记2其实这次笔记我想和大家分享的是矩阵,但是单独的把矩阵拿出来,显得少了什么,因为展现矩阵的功能,必须有一个比较的明显展示区域。
看单片机上,最显眼就是那一排数码管。
选数码管,其实是有原因,因为本次笔记中矩阵刚好是4X4的,分别对16个按键进行操作,操作显示不同数字,正好就用数码管显示。
废话不多说,在讲矩阵之前,要说一下数码管,但在说数码管之前,必须了解单个数码管。
现在开始大家说单个数码管:1:数码管的结构:led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等....,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
颜色有红,绿,蓝,黄等几种。
led数码管广泛用于仪表,时钟,车站,家电等场合。
选用时要注意产品尺寸颜色,功耗,亮度,波长等。
下面将介绍常用LED数码管内部引脚图片。
一个数码管的引脚是10个,显示一个8字需要7个小段,还有一个小数点,所以内部只有8个二极管,生产厂商为了封装统一,单位数码管都封装10个引脚,剩下的两个为公共端。
(如图a)对于共阴极的数码管,其8个发光二极管的阴极在数码管里全部连接在一起,所以称为共阴极,而他们的阳极一般都是独立的,通常在设计电路的时候,阴极接地。
所以当我们给数码管中任一阳极高电平的时候,就会点亮该二极管,同理,如果你想显示“8”和右下角的小数点,那么必须把所有的阳极全部送高电平。
对应共阴极的0-F的编码:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1 ,0x86,0x8e对于共阳极的数码管,其内部8个发光二极管的所有阳极连接在一起,电路连接时,公共电断接高电平,因此我们要点数码管中二极管,则必须送低电平过去,此时显示的数字的编号于共阴极编码相反,数码管内部发光二极管点亮时,也需要5mA以上的电流,理论上电流越大越好,但是最好在5mA-20mA范围内,不然很容易烧坏。
单片机矩阵键盘

汇报人: 202X-01-04
contents
目录
• 单片机矩阵键盘概述 • 单片机矩阵键盘硬件设计 • 单片机矩阵键盘软件编程 • 单片机矩阵键盘调试与测试 • 单片机矩阵键盘优化与扩展
01 单片机矩阵键盘 概述
定义与特点
定义
单片机矩阵键盘是一种由行线和 列线组成的键盘,通过按键的行 和列交叉点来识别按键。
用于显示输入的信息或状态, 如数码管、液晶显示屏等。
电源模块
为整个系统提供稳定的电源, 保证系统的正常工作。
电路连接
01
矩阵键盘的行线和列线分别连接到单片机的输入/输出端口,通 过软件扫描方式检测按键状态。
02
单片机控制模块与显示模块连接,将需要显示的信息传输给显
示模块。
电源模块为整个系统提供稳定的电源,保证系统的正常工作。
在通讯设备领域,单片机矩阵键盘可以用 于手机、电话等设备的操作面板,实现拨 号、挂断等功能。
பைடு நூலகம்
02 单片机矩阵键盘 硬件设计
硬件组成
01
02
03
04
矩阵键盘模块
由行线和列线组成的键盘矩阵 ,按键被安排在行线和列线的
交叉点上。
单片机控制模块
用于接收和处理来自矩阵键盘 的信号,控制整个系统的运行
。
显示模块
软件编程
编写单片机程序,用于扫描矩阵键盘并识 别按键按下事件。
测试方法
按键响应时间测试
测试从按键按下到单片机响应 的时间,确保在合理范围内。
按键防抖测试
测试按键防抖功能是否正常, 即在按键按下和释放时是否能 够正确识别。
多键同时按下测试
测试在多个按键同时按下时, 单片机是否能够正确识别并处 理。
单片机入门3(矩阵键盘、点阵屏)

21 22 23 24 25 26 27 28
40 20 10 11 30 29
P12 K8 P13 K12
P14 P15 P16 P17
8 K9 C K13
9 K10 D K14
A K11 E K15
B F
number是一个 系统变量。由于 以后要用中断函 数,所以不主张 使用返回值。
39 38 37 36 35 34 33 32
K0
P10
K4
P11
0 K1 4 K5
1 K2 5 K6
2 K3 6 K7
3 7
13 12
15 14
31
19 18
9
17 16
INT1 INT0
T1 T0
89C52
EA/VP
X1 X2
RESET
RD WR
P20 P21 P22 P23 P24 P25 P26 P27
• 一般来说,单个数码管扫描频率在50Hz为 宜,n个数码管则为n倍。
动态扫描数码管可以“同 时”显示多位,由于要保 证整体扫描频率为50Hz, 这8个数码管扫描频率每个 要为400Hz。
这就是扫描函数的核心部分。由于没有用定时器精确 定时,所以只好近似把频率控制为500Hz……
• 主函数是很简单的, 直接输入整数,即可 显示!
• 按键可以排成矩阵,LED灯呢?当然也可以! 使用方法也相似。
• 本学期纳新时的展板四周的64个灯就是矩 阵式连接,可惜阳光太足,没能施展……
• 排成矩阵式的LED称为“点阵屏”,灯越多, 可以显示的字符、图案越丰富。
16×16 点阵屏 循环显 示“多 隆电子 协会” 字样
单片机中断和矩阵键盘课件

基于中断和矩阵键盘的智能家居控制系统
总结词
该系统结合单片机中断和矩阵键盘技术,实现对家居 设备的智能控制,提高家居生活的便利性和舒适性。
详细描述
基于中断和矩阵键盘的智能家居控制系统主要由家居 设备、单片机、矩阵键盘和无线通信模块组成。用户 通过矩阵键盘输入控制指令,单片机通过中断处理程 序实时监测键盘输入,并将控制指令通过无线通信模 块发送给家居设备。家居设备接收到指令后,根据指 令内容执行相应的操作,如调节灯光亮度、控制空调 温度等,以实现家居设备的智能控制。
采用高效的扫描算法,减 少扫描时间,提高响应速 度。
防止抖动
在检测按键时,采用软件 去抖动技术,确保按键值 的准确性。
04
单片机中断的编程实现
中断使能与优先级设置
中断使能
在单片机中,需要开启中断功能才能响应外部或内部事件。通常在单片机初始化 时,需要设置中断使能位。
优先级设置
不同的中断源有不同的优先级。在编程时,需要根据需要设置或配置相应的优先 级。
能,确保按键状态的准确性。
06
单片机中断与矩阵键盘的应用实例
基于单片机的温度监控系统
总结词
该系统利用单片机中断功能,实时监测环境温度变化,并通过矩阵键盘输入设定温度阈值,实现温度的自动调节 。
详细描述
基于单片机的温度监控系统主要由温度传感器、单片机、矩阵键盘和执行机构组成。温度传感器负责采集环境温 度,并将数据传输给单片机。单片机通过中断程序实时监测温度变化,一旦温度超过设定的阈值,便会触发中断 ,执行相应的控制程序,调整执行机构的工作状态,以实现温度的自动调节。
键盘扫描方法
逐行扫描法
按顺序逐行扫描,通过读取列线的电 平状态判断按键是否被按下。
矩阵式键盘控制数码管显

为了避免按键抖动造成的误判,微 控制器会对检测到的按键状态进行 去抖动处理,确保按键状态的准确 性。
键盘编码方式
行码与列码组合
01
每个按键都有一个唯一的行码和列码组合,用于标识按键的位
置。
编码表
02
建立一个包含所有按键行码和列码组合的编码表,用于将按键
位置映射到对应的编码值。
编码输出
03
键盘扫描程序
根据矩阵式键盘的原理,编写键盘扫描程序,实 现按键的检测与识别。
数码管显示程序
根据数码管的显示原理,编写数码管显示程序, 实现数码管的显示和控制。
主程序
主程序负责调用键盘扫描程序和数码管显示程序, 实现整个系统的控制逻辑。
系统调试与测试
硬件调试
检查硬件电路连接是否正确,确保各模块工作正常。
矩阵式键盘控制数码管显示系 统
目录
CONTENTS
• 矩阵式键盘控制原理 • 数码管显示技术 • 矩阵式键盘控制数码管显示系统设计 • 系统性能优化与改进 • 应用前景与发展趋势
01 矩阵式键盘控制原理
CHAPTER
矩阵式键盘结构
4x4矩阵式键盘结构
由16个按键组成的矩阵,行线和列线 交叉连接,每个按键位于行线和列线 的交叉点上。
根据按键位置在编码表中找到对应的编码值,通过微控制器输
出相应的编码信号,控制数码管显示相应的字符或数字。
02 数码管显示技术
CHAPTER
数码管工作原理
数码管由多个LED段组成,通过控制各段的亮灭来显示数字或字符。
数码管内部有8个LED段,通过电流的通断控制每个段的亮灭,从而显示不同的数字 或字符。
数码管驱动方式
点驱动方式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
拓展部分
1. 利用定时器不阻塞CPU的方式,扫描数码管
2. 在实现基础部分(3)的基础上,利用两个按键实现全部功能(类似于手 表)
Page
30
按键进阶
数码管
中断系统
点阵及蜂鸣器
Page
31
点阵---基本结构
Page
32
点阵---如何点亮
设: 则: 或: 结果: 被点亮
“列”接P0口, “行”接P2口。
利用SPWM波实现呼吸灯效果
Page
2
类SPWM波---大致时序图
Page
3
类SPWM波---编程核心思想
Page
4
按键进阶
数码管
中断系统
点阵及蜂鸣器
Page
5
按键进阶---按键单击
按键单击时序图
Page
6
按键进阶---长按短按
按键长按短按时序图
Page
7
按键进阶---按键单击连击
按键长按短按时序图
让手里的单片机“有声有色”
Weihei 2013.05.12
温习---利用单片机IO输出
直接对IO口赋值
Unsigned char LEDVal = 0xFE; P1 = 0X5FE; P1 = LEDVal;
利用位运算或移位函数改变LEDVal值,即可实现多种方式流水效果
LEDVal = LEDVal >> 1; LEDVal |= 0x80;//左移一位 LEDVal = _crol_(LEDVal ,1);//循环左移,每次移动1位
Page 26
中断系统---定时器
定时器的实质即是一个计数器。
用作定时器,计内部时钟。 用作计数器,计外部脉冲。
定时器的简单理解
一个需要设置的闹钟
一个可调整定时周期(一定范围内可调)的闹钟
一个不阻塞CPU的延时处理函数
定时器的初始化/设置
查询芯片手册,查询每个寄存器每一位的作用(后期推荐此方法) 使用小工具,轻松完成定时器设置(初学推荐此方法)
13
数码管的原理---如何点亮一只数码管
16进制表示为 0X06 P1.0 | | | | | | | P1.7 0X5B
利用80C51单片机P1口点亮一只数码管原理图
Page
14
数码管---断码查询小工具
Page
15
点亮单只数码管---代码
Page
16
数码管---多位数码管一起亮的原理
余晖效应
P2^0 = 1; P0^0 = 0;
P2 = 0x01; P0 = 0xFE; 左上角的一个LED
Page
33
点阵---以级联方式拓展
通过串行控制锁存芯片,实现IO口的拓展,以将点阵屏幕扩大
Page
34
蜂鸣器---基本原理
有源蜂鸣器
内部自带振荡源,所以只要一通电就会叫
无源蜂鸣器
Page
24
按键进阶
数码管
中断系统
点阵及蜂鸣器
Page
25
中断系统---中断的概念
优先级更高的事件发生,打断优先级低的事件进程时,称为中断。 可以引起中断的事件来源,我们称为中断源。 单片机往往支持多个中断源,但是我们只用了其中的一部分,其他的中断都屏蔽了, 不去响应它。使用过程中,通常只开启自己需要的中断源,把不需要用的中断源都关 掉。 中断响应及中断返回 每当发生中断,从主函数A跳入中断执行函数B,执行函数B的过程称为“中断相 应”,B函数执行完之后,再返回主函数A继续执行之前的指令的过程,称为是 “中断返回”。 现场保护及事后恢复 从主函数A跳入中断执行函数B前,需要对主函数的执行情况进行记录,称为“现 场保护”,B函数执行完,要回到主函数A继续执行,需要进行“事后恢复”,以 便继续执行下一条指令。 在执行级别较低的中断B时,又触发了更高级别的中断C,从尚未执行完的中断B跳入 中断C,执行中断C内的内容,C中断执行完返回到B中断,B中断执行完,再返回到主 函数的过程,称为“中断嵌套”
内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K-5K的 方波去驱动它。
Page
35
Байду номын сангаас
演示&练习题
基础部分
1. 2. 3. 利用单片机IO输出单一频率PWM波驱动蜂鸣器,发出单一声音 通过按键改变单片机IO口输出PWM波频率,改变其声音 在保证蜂鸣器正常发声的基础上,加入数码管显示,两者互不干扰运行
以足够快的速度切换显示
Page
17
数码管---多位数码管---0.5s扫描
Page
18
数码管---多位数码管---0.1s扫描
Page
19
数码管---多位数码管动态扫描编程核心思想
保证每个数码管亮足够1mS
Delay延时函数(阻塞CPU) 定时器中断(不阻塞CPU)
切换至下一位数码管,并显示该位数值
用Delay延时函数方式,加入人为制造的CPU阻塞(既是在调用完显 示函数后,加一个1S的Delay延时函数),观察其效果并分析原因。 Note:Delay延时函数定义为
for(i=0;i<100;i++) for(j=0;j<200;j++);//让单片机连续200*100个时钟周期都不执行操作 此类让单片机不执行任何操作的延时即是阻塞CPU方式的延时。
Note:此处连击定义为按下不松手,等效为不断的单次按下
Page 8
按键进阶---单击双击
按键单击双击时序图
Page 9
按键进阶
数码管
中断系统
点阵及蜂鸣器
Page
10
数码管的原理---实物图
Page
11
数码管的原理---单位数码管原理图
Page
12
数码管的原理---多位数码管原理图
Page
21
数码管动态扫描---代码
Page
22
附:数据手册去哪找
Page
23
演示&练习题
点亮单只数码管(自己计算断码,并直接赋值方式) 点亮单只数码管,并依次显示1,2,3……(查询段码表方式)
Delay延时函数方式实现数码管动态扫描
加入按键,实现数码管显示数字的增减 用Delay延时函数方式实现一个“码表”
视觉暂留现象 人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光 的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”, 视觉的这一现象则被称为“视觉暂留”。
数码管的扫描操作
每一位分别显示,单位时间只亮一个 通过过分时轮流控制各个LED数码管的COM端,切换亮不同的数码管
拓展部分
1. 利用仪器设备或自己计算频率,,实现一个按键控制的简易电子琴,发 出声音的音调级别可通过数码管显示出来。
Page
36
感谢您的关注
Weihei 2013.05.12
Note:可以暂时避过枯燥无味的定时器原理,直接利用小工具实现自己想要的功能,等自己有一 定基础在回来看这一部分原理(精彩绝不容错过)
Page 27
Page
28
定时器闪烁灯---代码
Page
29
演示&练习题
基础部分
1. 利用定时器实现的LED闪烁灯 2. 利用定时器实现一个秒表,在数码管上显示,实现一个较为精确的1s递 增效果 3. 在保证(2)功能的前提下,增加按键,实现秒表的开始定时、暂停、继 续、复位功能(单个按键单个功能)
查询断码表(内含显示不同数字的16进制码) 查询位码表(内含显示不同位的16进制码) 将断码、位码分别送给数码管,完成操作
锁存器的使用
锁存的概念(为节省IO口,复用同一IO口,在不同的时间段实现不同的 功能,既是分时复用的思想)
Page
20
数码管---锁存器74HC573简介
Page