文档库 最新最全的文档下载
当前位置:文档库 › 单片机键盘检测控制实验原理

单片机键盘检测控制实验原理

单片机键盘检测与控制实验是嵌入式系统和数字电子技术领域的一个常见实验,通过该实验,可以学习到单片机输入输出的基本原理、数字信号的处理方法以及键盘输入的检测和控制技术。以下是这个实验的基本原理和步骤:

**实验目的:**

1. 了解单片机的输入输出原理。

2. 掌握键盘输入的检测原理。

3. 实现对键盘输入的基本控制。

**实验原理:**

1. **单片机输入输出原理:** 单片机通常具有一些通用输入输出引脚,用于与外部设备进行信息交互。这些引脚可以配置为输入或输出模式。在实验中,我们主要使用单片机的输入引脚,将键盘连接到这些引脚上,以便单片机可以读取键盘的输入信号。

2. **键盘输入的检测原理:** 键盘通常是由多个按键组成的矩阵结构。每个按键都与键盘的一行和一列相连。通过扫描键盘的行和列,可以检测到哪个按键被按下。具体步骤如下:- **行扫描:** 单片机首先选择一行,将该行置为低电平,同时检测每一列的状态。如果某一列为低电平,说明该列对应的按键被按下。

- **列扫描:** 单片机依次选择每一列,将该列置为低电平,同时检测每一行的状态。如果某一行为低电平,说明该行对应的按键被按下。

3. **实现对键盘输入的基本控制:** 一旦检测到按键按下的信号,单片机可以采取相应的措施,例如在数码管上显示按下的键值、驱动LED灯等。

**实验步骤:**

1. **连接键盘:** 将键盘的行和列引脚连接到单片机的相应引脚上。

2. **编写程序:** 使用编程语言(如C语言或汇编语言)编写程序,实现键盘输入的检测和控制逻辑。

3. **下载程序:** 将编写好的程序下载到单片机中。

4. **运行实验:** 接通电源,运行实验,观察键盘输入的检测和相应控制的效果。

**实验注意事项:**

1. 确保键盘连接正确,行和列的对应关系准确。

2. 程序中的扫描算法要正确,确保能够准确检测到键盘的按键状态。

3. 在程序中加入防抖动处理,防止由于按键机械弹性导致的多次触发。

通过这个实验,学生可以深入理解单片机输入输出的基本原理,掌握键盘输入的检测和控制方法。这对于嵌入式系统开发和数字电子技术的学习都是非常有益的。

单片机键盘实验报告

单片机键盘实验报告 单片机键盘实验报告 引言: 单片机是一种集成电路,具备处理器、存储器和各种输入输出接口等功能。在现代电子设备中,单片机被广泛应用于各种控制系统中。其中,键盘作为一种重要的输入设备,常用于与单片机进行交互。本实验旨在通过使用单片机和键盘,实现一个简单的输入输出系统。 实验目的: 1. 了解单片机的基本原理和工作方式; 2. 掌握键盘的工作原理和使用方法; 3. 利用单片机和键盘实现一个简单的输入输出系统。 实验器材: 1. 单片机开发板; 2. 键盘模块; 3. 电脑。 实验步骤: 1. 连接键盘模块到单片机开发板的合适接口上; 2. 将开发板连接到电脑上; 3. 编写单片机程序,实现键盘输入的读取和显示; 4. 将程序下载到单片机开发板上; 5. 运行程序,测试键盘输入和显示功能。 实验原理:

1. 单片机工作原理: 单片机通过执行存储在其内部的程序来完成各种任务。它通过读取输入信号,进行运算处理,然后输出相应的结果。单片机的核心是中央处理器(CPU),它负责执行指令和控制整个系统的工作。 2. 键盘工作原理: 键盘是一种输入设备,通过按下不同的按键产生不同的电信号,然后传输给单片机进行处理。键盘通常由多个按键组成,每个按键都有一个唯一的编码。当用户按下某个按键时,键盘会发送相应的编码信号给单片机。 实验结果: 经过实验,我们成功实现了一个简单的单片机键盘输入输出系统。通过按下键盘上的按键,我们可以在电脑上显示相应的字符。这样的系统可以应用于各种需要用户输入的场景,如密码输入、菜单选择等。 实验总结: 通过本次实验,我们深入了解了单片机的基本原理和工作方式,掌握了键盘的工作原理和使用方法。同时,我们也体验到了单片机和键盘的强大功能,以及它们在现代电子设备中的重要性。单片机键盘输入输出系统的实现为我们提供了一个基础平台,可以进一步扩展和应用于更复杂的控制系统中。 未来展望: 在今后的学习和实践中,我们将进一步研究和应用单片机和键盘技术。通过深入理解其原理和方法,我们可以设计和实现更加复杂和功能强大的控制系统。同时,我们也将关注新技术的发展,不断更新和拓展我们的知识和技能,以适应快速变化的电子行业需求。

单片机键盘检测控制实验原理

单片机键盘检测与控制实验是嵌入式系统和数字电子技术领域的一个常见实验,通过该实验,可以学习到单片机输入输出的基本原理、数字信号的处理方法以及键盘输入的检测和控制技术。以下是这个实验的基本原理和步骤: **实验目的:** 1. 了解单片机的输入输出原理。 2. 掌握键盘输入的检测原理。 3. 实现对键盘输入的基本控制。 **实验原理:** 1. **单片机输入输出原理:** 单片机通常具有一些通用输入输出引脚,用于与外部设备进行信息交互。这些引脚可以配置为输入或输出模式。在实验中,我们主要使用单片机的输入引脚,将键盘连接到这些引脚上,以便单片机可以读取键盘的输入信号。 2. **键盘输入的检测原理:** 键盘通常是由多个按键组成的矩阵结构。每个按键都与键盘的一行和一列相连。通过扫描键盘的行和列,可以检测到哪个按键被按下。具体步骤如下:- **行扫描:** 单片机首先选择一行,将该行置为低电平,同时检测每一列的状态。如果某一列为低电平,说明该列对应的按键被按下。 - **列扫描:** 单片机依次选择每一列,将该列置为低电平,同时检测每一行的状态。如果某一行为低电平,说明该行对应的按键被按下。 3. **实现对键盘输入的基本控制:** 一旦检测到按键按下的信号,单片机可以采取相应的措施,例如在数码管上显示按下的键值、驱动LED灯等。 **实验步骤:** 1. **连接键盘:** 将键盘的行和列引脚连接到单片机的相应引脚上。 2. **编写程序:** 使用编程语言(如C语言或汇编语言)编写程序,实现键盘输入的检测和控制逻辑。 3. **下载程序:** 将编写好的程序下载到单片机中。 4. **运行实验:** 接通电源,运行实验,观察键盘输入的检测和相应控制的效果。 **实验注意事项:** 1. 确保键盘连接正确,行和列的对应关系准确。 2. 程序中的扫描算法要正确,确保能够准确检测到键盘的按键状态。 3. 在程序中加入防抖动处理,防止由于按键机械弹性导致的多次触发。 通过这个实验,学生可以深入理解单片机输入输出的基本原理,掌握键盘输入的检测和控制方法。这对于嵌入式系统开发和数字电子技术的学习都是非常有益的。

实验五 键盘扫描实验 实验报告

键盘扫描实验实验报告 一、实验目的 1. 掌握线反转法键盘扫描原理。 2. 了解单片机的输入和输出过程,理解单片机的数据采集过程。 二、实验内容 单片机外接4x4键盘,通过线反转法判断按下的键,并在数码管上显示按键对应的数字。 第一行从左到右分别是开关K0, K1, K2, K3,第二行从左到右分别是K4, K5, K6, K7以此类 推。当按下Kn时,在数码管上显示数字n。 三、实验原理 线翻转法:先对行(R0-R3)置0,对列(R4-R7)置1。当有键被按下时,会把按键所在的列的电位从1变0,记录下位置;然后再将行列翻转,记录下按下键的所在行,两数进行或运算,就可以得到一个唯一表示按下键的数字。 例如:假定R0-R7分别与单片机的P2.0-P2.7相连。先把R4-R7置1,R0-R3置0(通过指令MOV P2, #0F0H实现)。当键K5被按下时,R5电位被拉低为低电平。此时,P2口表示的数为:1101 0000(0xD0);然后再置R4-R7为0,R0-R3为1,此时,R1电位被拉低为低电平,此时,P2口表示的数为:0000 1101(0x0D)。将两数相与取反,得到:0010 0010。

四、实验过程 1. 连接好单片机及其外围设备电路

2. 编写汇编程序 ORG LJMP Key LJMP K7: CJNE R2, #82H, K8 ORG 0100H MOV P0, #0F8H Init: CLR P1.3 LJMP Key MOV P0, #0C0H K8: CJNE R2, #14H, K9 Key: MOV P2, #0F0H MOV P0, #080H MOV A, P2 LJMP Key MOV R1, A K9: CJNE R2, #24H, K10 MOV P2, #0FH MOV P0, #090H MOV A, P2 LJMP Key ORL A, R1 K10: CJNE R2, #44H, K11 CPL A MOV P0, #088H MOV R2, A LJMP Key JNZ KeyPro K11: CJNE R2, #84H, K12 LJMP Key MOV P0, #083H KeyPro: CJNE R2, #11H, K1 LJMP Key MOV P0, #0C0H K12: CJNE R2, #18H, K13 LJMP Key MOV P0, #0C6H K1: CJNE R2, #21H, K2 LJMP Key MOV P0, #0F9H K13: CJNE R2, #28H, K14 LJMP Key MOV P0, #0A1H K2: CJNE R2, #41H, K3 LJMP Key MOV P0, #0A4H K14: CJNE R2, #48H, K15 LJMP Key MOV P0, #086H K3: CJNE R2, #81H, K4 LJMP Key MOV P0, #0B0H K15: CJNE R2, #88H, K16 LJMP Key MOV P0, #08EH K4: CJNE R2, #12H, K5 LJMP Key MOV P0, #099H K16: LJMP Key LJMP Key END K5: CJNE R2, #22H, K6 MOV P0, #092H LJMP Key K6: CJNE R2, #42H, K7 MOV P0, #082H 五、实验结果 1. 当按下开关Kn时,数码管能够显示对应的数字。并且P2口的实际输出值跟理论值完全符合。(也就是按下K0, K1, …, K15,数码管上会显示0, 1, 2, …, F)

单片机实现触摸键盘技术

单片机实现触摸键盘技术 触摸键盘技术是一种常见的输入技术,它广泛应用于各种电子设备中,如计算机、智能手机、平板电脑等。对于单片机来说,实现触摸键盘技术 可以扩展其输入功能,使其更加易用和灵活。本文将介绍如何利用单片机 实现触摸键盘技术,包括工作原理、设计思路和实现方法等。 一、工作原理 触摸键盘技术的核心原理是利用人体电容来检测触摸操作。当人体接 近或触摸到触摸键盘上的电极时,会发生电荷传导,从而改变触摸键盘电 极上的电位。单片机通过采集这些电位变化,就可以获得用户的输入信息。 二、设计思路 实现触摸键盘技术的基本思路是通过电容传感器来检测触摸操作,并 将电容传感器的输出信号转换成数字信号,以供单片机进行处理。具体的 设计步骤如下: 1.选择电容传感器:根据应用需求选择适合的电容传感器。常见的电 容传感器有电容触摸开关、电容触摸按钮等,可以根据实际情况进行选择。 2.连接电容传感器:将电容传感器与单片机连接起来。一般情况下, 电容传感器会有两个电极,分别连接到单片机的输入引脚和地。 3.设置引脚模式:在单片机的软件中,将连接到电容传感器的引脚设 置为输入模式。 4.采集电压数据:通过单片机的模拟输入功能,采集电容传感器引脚 上的电压数据。可以使用ADC(模拟-数字转换器)模块来实现这一功能。

5.判断触摸操作:根据采集到的电压数据,判断是否发生了触摸操作。可以通过设定一个阈值来判断触摸与非触摸状态。 6.处理触摸信息:如果发生了触摸操作,可以通过单片机的中断功能 或轮询方式来获取触摸信息。根据具体应用需求,可以对触摸信息进行处理,如显示在LCD屏幕上或进行其他操作。 三、实现方法 根据具体的单片机型号和开发环境的不同,实现触摸键盘技术的方法 会有所不同。下面以常用的单片机STM32为例,介绍一种实现方法。 1.硬件连接:将电容传感器的输出引脚连接到单片机的一个模拟输入 引脚上,并连接到供电地。可以使用一个电阻将电容传感器的输出与模拟 输入引脚串联,以减小输出信号的噪声。 2.配置引脚:在STM32的开发环境中,通过引脚配置工具将连接到电 容传感器的引脚设置为模拟输入模式。 3.初始化ADC模块:使用STM32提供的库函数,初始化ADC模块,设 置采样频率、采样通道、分辨率等参数。 4.采集电压数据:在主程序中,使用ADC库函数进行电压采集。可以 通过调用函数获取电容传感器引脚上的电压数据。 5.判断触摸操作:根据采集到的电压数据,判断是否发生了触摸操作。可以通过比较采集值与事先设定的阈值来进行判断。 6.处理触摸信息:如果发生了触摸操作,根据具体应用需求进行处理。可以将触摸信息显示在LCD屏幕上,或者通过串口输出到PC进行进一步 处理。

单片机按键实验报告

单片机按键实验报告 篇一:单片机按键扫描实验报告 键盘扫描 一.实验目的 (1)掌握矩阵键盘接口电路和键盘扫描编程方法。 (2)掌握按键值处理与显示电路设计。 二.实验任务 (1)设计4*4键盘,编写各个键的特征码和对应的键值(0~F); (2)编程扫描按键,将按键对应的数字值使用数码管显示出来。 三.实验电路及连线方法 1.采用动态显示 连线方法:电路由2 片74LS573,1 个六字一体的共阴数码管组成。由U15 输出段选码,U16 做位选码,与单片机的采用I/O 口连接方式,短路片J22 连接P2.0,J23 连接P2.3,做输出信号锁存。 (实际电路连接是d7-d6-d5-d4-d3-d2-d1-d0?h-c-d-e-g-b-a-f)。PW12 是电源端。 2.键盘电路 连线方法:电路由16 个按键组成,用P1 口扩展4×4 行列式键盘。 J20 是键盘连接端,连接到P1 口。J21 是行列键盘、独立键盘选择端,当J21 的短路片连接2-3 脚时,构成4×4 行列式键盘;当J21 的短路片连接2-1 脚时,

可形成3×4 行列式键盘,4 个独立式 按键S4、S8、S12、S16,这4 个独立按键分别连接P1.4~P1.7;其他12 个键3×4 行列式键盘。 PW15 是电源端。 四.编程思路 1.采用反转法识别按键的闭合。 2.采用动态显示将键值显示出来。 五.算法流程图 六.资源分配 1.用P1口进行查找按键 2.用R3做键值指针 3.用R1做动态显示为选码指针。 4.R5为延时指针。 七.程序设计 KPIN: ORG MOV MOV ANL MOV 0000H P1,#0F0H A,P1 A,#0F0H B,A MOVP1,#0FH MOVA,P1 ANLA,#0FH ORLA,B CJNE A,#0FFH,KPIN1 AJMP EXIT

C51单片机键盘检测原理以及实现

C51单片机键盘检测原理以及实现 首先,在做软件之前确定硬件。明确键盘类型:弹性按键:按下时闭合, 松手后自动断开。如电脑键盘 自锁式按键:按下时闭合,且自动锁住。一边用于开关 在I/O 口检测触电电压时应该考虑按键抖动问题,一般按键抖动为5~10ms 左右,具体与其机械特性有关,所以要加检测抖动环节,可以用软件或者去抖 动芯片硬件处理,当然通常用延时方法处理。注意正确连接引脚。 下面是一个简单的4 按键独立键盘程序,在51hei 开发板的数码管上操作。 完整的源代码下载51hei/f/jpdd.rar 数值为0~59 变化,开始显示00 按key1 数 值加1,按key2 数值减1,按key3 数值归0,按key4 数值每秒加1。#include reg52.h#define uchar unsigned char#define unit unsigned intsbit key1=P3 ;sbit key1=P3;sb it key1=P3;sb it key1=P3;sb it dula=P2;sb it wela=P2;uch a r code table[]={0x3f,0x06.0x5b,0x4f,0x66,0x6d,0x7d,0x070x7f,0x6f,0x77,0x7c0x39,0x5e,0 x79,0x71};void delayms(unit);uchar numt0,unm;void display(uchar numdis) //定义一个显示的函数,分个位十位,用来显示{uchar shi,ge; //然后用轮流显示发,利 用人眼图像残留分别显示shi=numdis/10; //上面的numdis 表示num 这个显示的 数ge=numdis%10; //numdis 由下面主函数num 赋值dula=1;P0=table[shi]; dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delayms(5);dula=1;P0=table[ge];dula=0;P0 =0xff;wela=1;P0=0xfe;wela=0;delayms(5);}void delayms(unit xms) //自定义延迟环 节{unit i,j;for(i=xms,i0,i--);for(j=110,j0,j--);}void init() //初始化函数,保证程序正 常运行{TMOD=0x01;TH0=(65536-45872)/256;TL0=(65536- 458720%256;EA=1;ET=0;}tips:感谢大家的阅读,本文由我司收集整编。仅供参 阅!

键盘显示控制实验报告

键盘显示控制实验报告 实验目的: 本次实验旨在研究键盘显示控制技术,在实现键盘输入的同时,将输入的结果实时显示在屏幕上,为之后的软件开发提供基础。 实验原理: 键盘是一种常见的输入设备,可根据用户的输入情况向计算机 发送指令和数据。在计算机中,键盘输入会以扫描码的形式发送 给系统,系统将扫描码转化成字符代码后再进行处理,最终将字 符显示在屏幕上。 本次实验采用基于51单片机的键盘显示控制电路,通过51单 片机对键盘输入进行扫描和处理,并将结果实时显示在LED数码 管和OLED屏幕上。 实验步骤: 1. 搭建电路

将51单片机与键盘、LED数码管和OLED屏幕连接起来,确保连接正确并无短路。 2. 编写程序 根据实验原理,编写键盘扫描程序和字符显示程序,分别实现对键盘输入的扫描和处理,以及将字符实时显示在LED数码管和OLED屏幕上。 3. 转化字符编码 对于键盘输入的扫描码,需要进行字符编码的转化,以便正确地输出字符。在程序中,我们采用ASCII码表进行字符编码的转化。 4. 测试程序

将编写好的程序烧录到51单片机中,通过对键盘进行输入测试,验证程序的正确性和稳定性,同时观察LED数码管和OLED 屏幕上的字符输出情况。 实验结果: 经过测试,我们成功实现了基于51单片机的键盘显示控制电路。在键盘输入的同时,程序能够实时将输入结果显示在LED数码管和OLED屏幕上,具有良好的稳定性和可靠性。 实验结论: 本次实验成功探究了键盘显示控制技术,对键盘输入的扫描和转化有了更深入的理解,并通过实验验证了实现键盘输入与屏幕输出的基本原理,为之后的软件开发提供了有力支持。

单片机 矩阵键盘实验 实验报告

单片机矩阵键盘实验实验报告 一、实验目的 本次实验的目的是掌握原理和方法,利用单片机识别矩阵键盘并编程实现键码转换功能,控制LED点亮显示。 二、实验原理 矩阵键盘是一种由多路单向控制器输入行选择信号与列选择信号连接而形成的一一对 应矩阵排列结构。它广泛应用于电子游戏机、办公自动化设备、医疗仪器、家电控制及书 籍检索机器等方面。本次实验采用的矩阵键盘是一个4 x 4矩阵,用4段数码管显示按键 编码,每个按键都可以输入一个代码,矩阵键盘连接单片机,实现一个软件算法来识别键 码转化。从而将键盘中的按键的按下信号转换成程序能够识别的代码,置于相应的输出结 果中,控制LED点亮,从而可以实现矩阵键盘按键的转换功能。 三、实验方法 1.硬件搭建:矩阵键盘(4行4列)与单片机(Atmel AT89C51)相连,选择引脚连接,并将数码管和LED与单片机相连以实现显示和点亮的功能。 2.程序设计:先建立控制体系,利用中断服务子程序识别和码值转换,利用中断服务 子程序实现从按键的按下信号转换为程序能够识别的代码,然后将该代码段编写到单片机 程序中,每次按下矩阵键盘按键后单片机给出相应的按键编码输出,用数码管显示,控制LED点亮。 四、实验结果 经过实验,成功实现了矩阵键盘与单片机之间的连接,编写了中断服务子程序,完成 了按键编码输出与LED点亮的功能。实验完成后,数码管显示各种按键的编码,同时LED 会点亮。 本次实验介绍了矩阵键盘的原理,论述了键码转换的程序设计步骤,并实验完成矩阵 键盘与单片机的连接,实现用LED点亮以及数码管显示按键的编码。通过本次实验,受益 匪浅,使我对使用单片机编写算法与程序有了更深入的认识,同时丰富了课堂学习的内容,也使我更加热爱自己所学的专业。

单片机 矩阵键盘实验 实验报告

实验五矩阵键盘实验 一、实验内容 1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。按其它键退出。 2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。可定义“A”键为“+”键,“B”键为“=”键。 二、实验目的 1、学习独立式按键的查询识别方法。 2、非编码矩阵键盘的行反转法识别方法。 三、实验说明 1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。 2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。 3、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。 由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。 行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。 四、接线方法 键盘连接成4×4的矩阵形式,占用单片机P1口的8根线,行信号是P1.0-1.3,列信号是P1.4-1.7。

(实验四)单片机矩阵键盘检测和液晶仿真实验

实验四单片机矩阵键盘检测和液晶仿真实验 (4学时) 一、实验任务 利用51单片机实现4X4矩阵键盘和LCD1602液晶显示人机交互系统,编程实现: (1)按键扫描(1、2、……9、A、B、C、D、E、F)和LCD1602显示按键的键号,格式为:KEYNUM+按键号; (2)LCD1602的第一行显示加1功能,初始数字为980,显示位置自己确定,每次按下某一个按键,数字加1,范围为15---20; 二、实验目的 1、掌握仿真软件Proteus和单片机联调的方法; 2、掌握矩阵键盘扫描检测的原理,并且编程实现键盘按键的检测; 3、掌握LCD1602液晶显示的原理,并且编程实现LCD1602的显示功能; 4、掌握利用单片机实现键盘检测和液晶显示的功能组合,并掌握独立编程控制的能力。 三、实验设备 电脑、Proteus软件、Keil软件 四、实验原理 (一)矩阵键盘扫描检测原理 按照按键结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点开关按键,如电气式按键、磁感应按键等。在单片机应用系统中,通过按键实现控制功能和数据输入是非常普遍的。在所需按键数量不多时,系统常采用独立式按键。独立式按键是指每个按键单独占有一根I/O口线,且其工作状态不会影响其他I/O口线的工作状态。这种按键的电路配置灵活,软件结构简单。不过在实际应用中,由于不同的系统对按键的要求不同,因此,对按键程序的设计要考虑全面,以便更好地完成按键所设定的功能。在按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图4.1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一

单片机按键扫描原理

单片机按键扫描原理 一、引言 单片机按键扫描是嵌入式系统中常见的功能,其主要作用是检测按键 输入并进行相应处理。本文将从硬件和软件两个方面详细介绍单片机 按键扫描的原理。 二、硬件原理 1. 按键电路 按键电路是单片机按键扫描的基础,其主要由按键、上拉电阻和接线 组成。其中,按键是一个开关元件,上拉电阻则用于保持输入引脚的 高电平状态,避免因为按键未被按下而导致输入引脚处于低电平状态。 2. 输入引脚 输入引脚是单片机检测外部信号的接口,其主要作用是将外部信号转 换为数字信号供单片机内部使用。在单片机中,每个输入引脚都有一 个对应的寄存器位来存储该引脚的状态。

3. 外部中断 外部中断是一种特殊类型的中断,在单片机中通常用于检测外部事件。当外部事件发生时,单片机会立即停止当前任务并转而执行外部中断 服务程序。 4. 定时器 定时器可以在固定时间间隔内产生一个定时中断,并执行相应的服务 程序。在单片机按键扫描中,定时器可以用于检测按键是否被长按。 三、软件原理 1. 软件扫描 软件扫描是一种简单的按键检测方法,其主要思路是通过循环不断地 读取每个输入引脚的状态,并判断是否有按键被按下。这种方法简单 易懂,但效率较低,容易导致系统响应速度慢。 2. 硬件扫描 硬件扫描是一种高效的按键检测方法,其主要思路是通过将多个按键 连接到同一个输入引脚上,并使用矩阵式接线方式来进行扫描。这种

方法可以大大提高系统响应速度和效率。 3. 中断服务程序 中断服务程序是一种特殊的程序,在单片机中通常用于处理中断事件。在单片机按键扫描中,可以通过外部中断和定时器中断来实现相应的 功能。 四、总结 单片机按键扫描是嵌入式系统中常见的功能之一,其主要作用是检测 按键输入并进行相应处理。在硬件方面,需要使用合适的电路和接线 方式来实现按键检测;在软件方面,则需要根据实际需求选择合适的 扫描方法和中断服务程序。综合来看,单片机按键扫描需要硬件和软 件两个方面的配合,才能实现稳定、高效的功能。

单片机实验上机--实验十七查询式键盘实验

实验十七查询式键盘实验 一、实验目的 1、掌握键盘和显示器的接口方法和编程方法 2、掌握键盘和八段码显示器的工作原理 3、静态显示的原理和相关程序的编写 二、实验说明 本实验提供了8个按钮的小键盘,如果有键按下,则相应输出为低,否则输出为高。通过这样可以判断按下什么键。在有键按下后,要有一定的延时,防止由于键盘抖动而引起误操作。 三、实验步骤及内容 1、用一根扁平数据线连接查询式键盘实验模块与八位逻辑电平显示模块,无键按下时,键盘输出全为“1”发光二极管全部熄灭,有键按下,对应发光二极管点亮。此种电路的程序要判断是否有2个或2个以上的键盘同时按下,以免键盘分析错误。阵列式键盘的编程同样也有这样的问题要注意。 2、一根八位数据线连接查询式键盘实验模块与扫描显示实验模块。无键按下时,LED 数码显示八段全部熄灭,有键按下时,则对应LED段点亮。 3、使用静态串行显示模块显示键值。单片机最小应用系统1的 P1口接查询式键盘输出口,RXD接静态数码显示DIN,TXD接CLK。 4、安装好伟福仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。 5、启动计算机,打开伟福仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。 6、打开查询KEY.ASM源程序,编译无误后运行程序,在键盘上按下某个键,观察数显是否与按键值一致,键值从左至右为0~7。 7、可把源程序编译成可执行文件,烧录到89C51芯片中。 四、流程图及源程序 1、流程图

2、源 程序 ORG 0000H DBUF EQU 30H TEMP EQU 40H MOV 30H ,#16 MAIN: ACALL DISP ACALL KEY0 AJMP MAIN KEY : MOV P1,#0FFH MOV A ,P1 CJNE A , #0FFH ,K00 ;有键按下 AJMP KEY ;无键按下 K00: ACALL DELAY ;延时去抖动 MOV A ,P1 CJNE A ,#0FFH ,K01 ;确有键按下 AJMP KEY K01: MOV R3, #8 ;8个键 MOV R2,#0 ;键码 MOV B ,A ;暂存键值 MOV DPTR ,#K0TAB K02: MOV A ,R2 MOVC A ,@A+DPTR ;从键值表中取键值 CJNE A ,B ,K04 ;键值比较 K03: MOV A ,P1 ;相等 CJNE A #0FFH ,K03 ;等键释放 ACALL DELAY ;延时去抖动 MOV A ,R2 ;得键码 RET K04: INC R2 ;不相等,到继续访问键值表 主程序框

单片机按键与显示实验报告

单片机原理及应用 随堂实验报告 学院计算机与电子信息学院 专业电子信息工程班级电信11 -1班 姓名温石坚学号 11034030132 指导教师左敬龙 实验报告评分:_______

一、实验原理及电路 实验原理:在电路图中,单片机AT89C51的P1口接有一按键矩阵,P0和P2口接15个灯,P3口接一个led数码显示管。刚开始时,电路处于扫描按键是否被按下的状态。当有某个按键被按下时,在键盘扫描函数的作用下,会有一小段消抖动的时间。当确定没抖动情况下,程序就会查找出是哪个按键被按下了。之后就会执行按键功能函数。 以下是按键扫描函数(包括消抖动程序)和按键功能函数: 按键扫描函数按键功能函数 uchar rdkey() uchar i; { void k(uchar n) uchar scan1,scan2,keycode,j; {P3=tab[n]; P1=0x0f; if(n>=8) scan1=P1; { if((scan1&0x0f)!=0x0f) for(i=0;i<=8;i++) { {P2=led[i]; P0=0x00; delayms(30); delayms(100); scan1=P1; }} if((scan1&0x0f)!=0x0f) else{ { for(i=0;i<=n;i++) P1=0xf0; { scan2=P1; P0=led[i];P2=0xff;delayms(100); keycode=scan1|scan2; } for(j=0;j<=15;j++) } { } if(keycode= = key_code[j]) { key=j; return(key); } } } } else P1=0xff; return (16);} 按键扫描函数是通过首先检查行(给P1赋值为0x0f,再将P1赋给变量scan1,用0x0f与scan1相与,可检查出第几行的按键被按下),再检查列的方法(将P1赋值为0xf0,再将P1赋给scan2,此时被按下键的那一列的值会变为0),然后再将两次检查的数按位或,最后将按位或后的那个数与组合键编码对比组合键编码,找出被按下的按键数,返回按键值。 按键功能函数是当第n号按键按下时,连接在P3的显示器显示n,同时连接在P0,P2上的灯会从第0个开始,逐一亮到第n个。由于用到两个I/O口,所以当按键号数大于8时,程序应该将P0口赋值为0x00(共阳极)。 实验电路图如下(此时被按下的按键是六号按键,即第7个按键):

单片机实验五报告-单片机键盘实验

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:⃞验证 ⃞综合■设计 ⃞创新实验日期:2018.05.18 实验成绩: 实验五单片机键盘实验 (一)实验目的 1.掌握单片机键盘控制; 2.掌握数码管显示控制。 (二)设计要求 1.行列扫描按键键值为0~F; 2.按键只支持单键按下,不支持多键同时按下; 3.要求用数码管显示按键值。 (三)实验原理 1.矩阵式键盘的设计 按键数目较多的杨合常采用矩阵式(也称行列式)键盘。键盘由行线和列线组成,按键位于行、列的交叉点上,如下图所示,一个4×4的行列结构可构成一个16个按键的键盘,需要一个8位的并行I/O口。很明显,在按键数目较多的场合,矩阵式键盘要比独立式键盘节省较多的I/O口线。对下图所示的矩阵式键盘的查询扫描,一般包括以下4个步骤。 (1)首先判别整个键盘有无按键按下方法为单片机驱动列线P0.0-P0.3输出全0,然后读行线

P0.4-P0.7的状态,若全为1,则键盘上没有闭合键;若P0.4-P0.7,则有键按下。 (2)去除键的抖动当判别出可能有键按下时,软件延时一段时间(10ms左右)再判别键盘的状态,若仍有键闭合,则认为键盘上有确定的键按下,否则是键抖动。 (3)求出按下键的键号上图中的16个按键,键号依次为0,1,...15。各行的首键号分别为0,4,8,12,列号依次为0,1,2,3。行线通过上拉电阻接+5V,当无键按下时,行线为高电平,当有按键按下时,对应的行线与列线短接,行线的电平将由此行线相连的列线电平决定。 如果把行线设置为单片机的输入口线,列线设置为单片机的输出口线,则按键号的识别过程是:先令0列线P0.0为低电平0,其余3根列线都为高电平,遂行检查行线状态。如果行线P0.4-P0.7都为高电平1,则P0.0这列上没有按键闭合,若P0.4-P0.7中有一行为低电平,则该行线与列线交叉的按键按下。如果P0.0这一列上没有按键闭合,接着再使P0.1为低电平,其余列线为高电平。用同样的方法检查P0.1这列上有无按键闭合,以此类推。这样采用逐列扫描(只有列为低),然后读入各行线的电平,即可求出设下键的键号N=行的首键号+列号。各行的首键号分别为0,4,8,12,列号依次为0,1,2,3。编程时设置1个列号计数器,初值为0,每扫描1列,列号计数器加1。 (4)判闭合键是否松开如果松开则将键号送入相应的寄存器中保存,单片机根据按下键的键号,对该键的一次闭合仅作一次键功能处理。 2.数码管显示键值 上述的键盘扫面步骤结束后,键号存储在相应的寄存器中,要把键号显示出来,只须向P4.0口输出对应的段码、位码以及向P4.3和P5.4口输出相应信号,利用74HC595芯片控制八段数码管从而达到显示相应键号的效果。电路图如下所示:

单片机实验——查询式键盘实验

单片机实验——查询式键盘实验 1.实验目的 (1)掌握查询式按键检测方法 (2)掌握数码管动态扫描汇编语言的编制方法 2.预习要点 (1)按键检测的基本原理 (2)数码管动态扫描显示方法 3.实验设备 计算机、单片机实验箱。 4.实验内容 基本要求: 接实验二的实验内容,通过实验板的4个按键电路,将按键的检测线连接到CPU 的p1.0~p1.3上。当按下按键1到4时,在实验板显示电路分别对应显示30H到33H存储单元的内容。 扩展要求: 30H~33H中放置字母A~D的ASCII码,当按下按键1到4时,A~D字母循环间隔分别为1至4秒 实验3 ORG 0000H SJMP MAIN ;******************************** ;主程序 ORG 0030H MAIN:MOV SP,#70H ;初始化8155 MOV DPTR,#0100H MOV A,#03H MOVX @DPTR,A LOOP:LCALL KEYSCAN ;键扫描 LCALL DISPLAY ;数码管显示 SJMP LOOP

;******************************** ;显示子程序 DISPLAY: LD0:MOV DPTR,#0102H MOV A,#0FEH MOVX @DPTR,A MOV DPTR,#DTAB MOV A,R0 MOVC A,@A+DPTR MOV DPTR,#0101H MOVX @DPTR,A LCALL DELAY RET ;******************************** ;字形表 DTAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH DB 77H,7CH,39H,5EH,79H DB 71H ;******************************** ;延时1ms DELAY: MOV R7,#2 DEL1:MOV R6,#0FFH ;(这里用的是FFH,和250差不多的这里精确度要求不高) DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 RET ;******************************** ;延时20ms ;用来消除抖动用的 DELAY20MS: MOV R7,#40 DEL11:MOV R6,#0FFH DEL22:DJNZ R6,DEL22 DJNZ R7,DEL11 RET ;******************************** ;键扫描子程序 KEYSCAN: MOV P1,#0FFH ;给P1全高,如果此时有键按下的话下一瞬间对应的位会马上变0 MOV A,P1 CJNE A,#0FFH,K_NEXT1 ;如果A=FFH则表明没有键按下,退出子程序,有键按下的话跳转到K_NEXT1

相关文档
相关文档 最新文档