非编码键盘的扫描程序设计
实验五 键盘扫描实验 实验报告
键盘扫描实验实验报告一、实验目的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 KeyLJMP K7: CJNE R2, #82H, K8ORG 0100H MOV P0, #0F8H Init: CLR P1.3 LJMP KeyMOV P0, #0C0H K8: CJNE R2, #14H, K9 Key: MOV P2, #0F0H MOV P0, #080HMOV A, P2 LJMP KeyMOV R1, A K9: CJNE R2, #24H, K10MOV P2, #0FH MOV P0, #090HMOV A, P2 LJMP KeyORL A, R1 K10: CJNE R2, #44H, K11CPL A MOV P0, #088HMOV R2, A LJMP KeyJNZ KeyPro K11: CJNE R2, #84H, K12LJMP Key MOV P0, #083H KeyPro: CJNE R2, #11H, K1 LJMP KeyMOV P0, #0C0H K12: CJNE R2, #18H, K13LJMP Key MOV P0, #0C6H K1: CJNE R2, #21H, K2 LJMP KeyMOV P0, #0F9H K13: CJNE R2, #28H, K14LJMP Key MOV P0, #0A1H K2: CJNE R2, #41H, K3 LJMP KeyMOV P0, #0A4H K14: CJNE R2, #48H, K15LJMP Key MOV P0, #086H K3: CJNE R2, #81H, K4 LJMP KeyMOV P0, #0B0H K15: CJNE R2, #88H, K16LJMP Key MOV P0, #08EH K4: CJNE R2, #12H, K5 LJMP KeyMOV P0, #099H K16: LJMP KeyLJMP Key ENDK5: CJNE R2, #22H, K6MOV P0, #092HLJMP KeyK6: CJNE R2, #42H, K7MOV P0, #082H五、实验结果1. 当按下开关Kn时,数码管能够显示对应的数字。
stm32键盘扫描电路原理
stm32键盘扫描电路原理
STM32键盘扫描电路原理是通过使用STM32微控制器的GPIO(通用输入/输出)功能和外部硬件电路,实现对键盘的扫描和检测。
1. 首先需要将键盘的按键连接到STM32微控制器的GPIO引脚上。
可以使用矩阵排列的方式来连接多个按键。
2. 然后将STM32微控制器的GPIO设置为输入模式,需要扫描的按键对应的GPIO引脚设置为输入。
3. 在代码中,设置一个循环,依次对每一个按键进行扫描。
可以使用GPIO外部中断来触发按键的扫描。
4. 在每次扫描过程中,将某一个按键对应的GPIO引脚设置为高电平,并读取引脚的状态。
5. 如果读取到的引脚状态为高电平,则表示该按键被按下。
6. 根据读取到的按键状态,可以执行相应的操作。
需要注意的是,如果使用矩阵排列的方式连接多个按键,还需要使用GPIO引脚的输出模式来控制矩阵的行和列。
总之,STM32键盘扫描电路原理是通过STM32微控制器的GPIO和外部硬件电路,实现对键盘的扫描和检测。
实验四4×4键盘输入
实验四: 4 × 4键盘输入实验一、实验目的:1.学习非编码键盘的工作原理和键盘的扫描方式。
2.学习键盘的去抖方法和键盘应用程序的设计。
二、实验原理:键盘是单片机应用系统接受用户命令的重要方式。
单片机应用系统一般采用非编码键4*4矩阵盘,需要由软件根据键扫描得到的信息产生键值编码,以识别不同的键。
本板采用键盘,行信号分别为P1.0-P1.3 ,列信号分别为P1.4-P1.7 。
具体电路连接见下图对于键的识别一般采用逐行(列)扫描查询法,判断键盘有无键按下,由单片机I/O口向键盘送全扫描字,然后读入列线状态来判断。
程序及流程图:ORG 0000HAJMP MAINORG 0000HAJMP MAINORG 0030HMAIN:MOV P2,#0F7HMOV P1,#0F0HMOV R7,#100DJNZ R7,$MOV A,P1ANL A,#0F0HXRL A,#0F0HJZ MAINLCALL D10MSMOV A,#00HMOV R0,AMOV R1,AMOV R2,#0FEH SKEY0:MOV A,R2MOVP1,AMOVR7,#10DJNZ R7,$MOVA,P1ANLA,#0F0HXRLA,#0F0HJNZ LKEYINC R0MOVA,R2RL AMOVR2,AMOVA,R0CJNE A,#04H,SKEY0AJMP MAIN LKEY:JNB ACC,4,NEXT1MOVA,#00HMOVR1,AAJMP DKEYNEXT1:JNB ACC.5,NEXT2MOVA,#01HMOVR1,AAJMP DKEYNEXT2:JNB ACC.6,NEXT3MOVA,#02HMOVR1,AAJMP DKEYNEXT3:JNB ACC.7,MAINMOVA,#03HMOVR1,AAJMP DKEY DKEY:MOV A,R0MOVB,#04HMULABADDA,R1AJMP SQRSQR:MOVDPTR,#TABMOVC A,@A+DPTRMOVP0,AAJMP MAINTAB:DB0C0H,0F9H,0A4H,0B0H,99H, 92H, 82H, 0F8H DB 80H, 90H, 88H, 83H, 0C6H,0A1H,86H, 8EH D10MS:MOV R6,#10L1:MOV R5,#248DJNZ R5,$DJNZ R6,L1RETEND流程图:结束三、思考题:总结 FPGA是如何识别按键的?与单片机读取键值有何不同?答:FPGA的所有 I/O 控制块允许每个 I/O 引脚单独配置为输入口 , 不过这种配置是系统自动完成的。
键盘扫描程序实验报告
一、实验目的1. 理解键盘扫描的基本原理。
2. 掌握使用C语言进行键盘扫描程序设计。
3. 学习键盘矩阵扫描的编程方法。
4. 提高单片机应用系统的编程能力。
二、实验原理键盘扫描是指通过检测键盘矩阵的行列状态,判断按键是否被按下,并获取按键的值。
常见的键盘扫描方法有独立键盘扫描和矩阵键盘扫描。
独立键盘扫描是将每个按键连接到单片机的独立引脚上,通过读取引脚状态来判断按键是否被按下。
矩阵键盘扫描是将多个按键排列成矩阵形式,通过扫描行列线来判断按键是否被按下。
这种方法可以大大减少引脚数量,降低成本。
本实验采用矩阵键盘扫描方法,使用单片机的并行口进行行列扫描。
三、实验设备1. 单片机开发板(如51单片机开发板)2. 键盘(4x4矩阵键盘)3. 连接线4. 调试软件(如Keil)四、实验步骤1. 连接键盘和单片机:将键盘的行列线分别连接到单片机的并行口引脚上。
2. 编写键盘扫描程序:(1)初始化并行口:将并行口设置为输入模式。
(2)编写行列扫描函数:逐行扫描行列线,判断按键是否被按下。
(3)获取按键值:根据行列状态,确定按键值。
(4)主函数:调用行列扫描函数,读取按键值,并根据按键值执行相应的操作。
3. 调试程序:将程序下载到单片机,观察键盘扫描效果。
五、实验程序```c#include <reg51.h>#define ROW P2#define COL P3void delay(unsigned int ms) {unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 123; j++);}void scan_key() {unsigned char key_val = 0xFF;ROW = 0xFF; // 初始化行delay(1); // 延时消抖key_val = ROW & COL; // 获取按键值ROW = 0x00; // 初始化行delay(1); // 延时消抖key_val = ROW & COL; // 获取按键值ROW = 0x00; // 初始化行delay(1); // 延时消抖key_val = ROW & COL; // 获取按键值ROW = 0x00; // 初始化行delay(1); // 延时消抖key_val = ROW & COL; // 获取按键值}void main() {while (1) {scan_key();if (key_val != 0xFF) {// 执行按键对应的操作}}}```六、实验结果与分析1. 实验结果:程序下载到单片机后,按键按下时,单片机能够正确读取按键值。
非编码键盘的扫描程序设计
计算机控制技术课程设计是在教学及实验基础上,对课程所学理论知识的深化和提高。
本次课程设的内容是利用8031微控制器,通过8155扩展I/O口行列式键盘。
要求通过8155扩展I/O口组成4×8行列式键盘,设计非编码键盘的扫描系统,并且能够对键盘的按键正确识别,去抖动。
关键词:8155 非编码去抖1 课程设计目的 (1)2 非编码键盘 (2)3 芯片介绍 (3)3.1 8031芯片介绍 (3)3.2 8155芯片介绍 (5)4 电路设计 (7)5 程序设计 (8)6 电路仿真 (12)7 心得体会 (17)附录程序清单 (18)参考文献 (21)非编码键盘的扫描程序设计1 课程设计目的(1)了解并掌握非编码键盘的工作原理;(2)熟悉和掌握8155与8031的结构及工作原理;(3)通过课程设计,掌握电路设计的基本方法和技术;(4)掌握单片机的接口技术及相关外围芯片的外特性,控制方法,从而加深对计算机控制技术知识的理解;(5)通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
2 非编码键盘键盘可以分为编码式和非编码式两种。
编码式键盘是通过数字电路直接产生对应于按键的ASCⅡ码,这种方式目前很少使用。
非编码式键盘将案件排列成矩阵的形势,由硬件或软件随时对矩阵扫描,一旦某一键被按下,该键的行列信息即被转换为位置码并送入主机,再由键盘驱动程序查表,从而得到按键的ASCⅡ码,最后送入内存中的键盘缓冲区供主机分析执行。
非编码式键盘由于结构简单,按键重定义方便而成为目前最常采用的键盘类型。
由此,多姿多彩的多媒体键盘便应运而生,这些键盘通常出现在品牌机上,如联想、同方等,品牌机上的“单键上网”也是基于此原理。
非编码键盘又分为:独立键盘和行列式(又称为矩阵式)键盘。
本次课程设计要求设计的是4×8行列式键盘。
3 芯片介绍3.1 8031芯片介绍8031和8051一样是最常见的MCS51系列单片机,是inter公司早期的成熟的单片机产品,应用范围涉及到各行各业。
键盘程序设计
键盘扫描程序是整个程序的核心部分,其流程图如下图3.1所示。
图3.1 键盘扫描程序流程图
八位七段数码管显示程序,采用动态显示,每个数码管均可以从0到9、A到F的显示。
通过查询键盘输出端的数据总线的通码值,将相应的通码在数码管上显示出来。
程序见附录A,八位七段数码管显示如图3.2所示。
图3.2 八位七段数码管
16*16点阵显示程序,通过查询数据总线的通码值,在LED点阵上显示键盘上相应的符号。
程序见附录B,16*16点阵显示如图3.3所示。
图3.3 16*16点阵
扫描码有两种不同的类型:“通码”和“断码”。
当一个键被按下去或长按的时候,键盘就发送通码;当一个键被释放的时候,键盘就发送断码。
每个键盘被分配了唯一的通码和断码,这样主机通过查找唯一的扫描码就可以确定是哪个按键被按下或释放。
程序见附录C。
动态扫描程序,控制八位七段数码管和16*16点阵单独显示,当系统时钟频率达到一定值时,显示效果就和静态显示一样了。
基于非编码的键盘/显示系统设计
关键词 单片机
键盘 显示 接 口电路
器、个 3 1 ×7行列式键 盘等相关 电路构成 。
1 引 言 通 常 键 盘 有 编 码 和 非 编 码 两 种 编 码 键 盘 通 过 硬 件 电
际中只用 到 了 8位 中 的 3位 其 地址 为 A 0 H 4 S6反 相 F 0 。7 L0
器 : 电 极 开 路 6反 相 与 非 门 , 集 用它 来 驱 动 L D显 示 器 段 选 。 E
图 1 键 显接 口电 路 维普资讯 东越) i ; 舛技
U N 03集成驱 动芯 片 : L 20 是具 有 7个达林 顿 电路 的集成
A M v V 到求键值 程序 JP v ; G : I V A 群2 ; H  ̄ 。 H 第三行行号送 A I O
v : tO B #7 列数送 B w d V , H;
Ⅻ AB 行 号 ×列 数 送 A :
杂, 通常不 被微 型计算 机采纳 , 尤其是 单片机 非编码键 盘常 用一些按键 排列 成行列 矩阵 , 按键 的作用
只是 使 相应 接 点 接 通 或 断 开 , 相 』 程 序 配 合 下 , 可 产 生 在 ‘ 也 被 按 按 键 的 编 码 非编 码 键 盘 硬 件 电 路 极 为 简 单 , 能 广 泛 故 应 用 于 微 型 计 算 机 。 例 如 IM P B — c机 常 用 的 11 盘 , 文 0键 本 所 设 计的 3 列 式 键 盘 均 属 于 此 类 。 7行 x
由键 显 电 路 图 1所 示 , 电 路 主 要 由 2片 数 据 锁 存 器 本
非编码键盘的扫描程序设计
非编码键盘的扫描程序设计武汉理工大学《计算机控制技术》课程设计说明书目录1设计任务及要求............................................................................ . (1)1.1初始条件 ........................................................................... ............. 1 1.2要求完成的主要任务 .................................................................... 1 2方案比较及认证............................................................................ .......... 1 3键盘扫描原理............................................................................ .............. 3 4系统硬件设计............................................................................ .. (4)4.1选用元器件 ........................................................................... (4)4.1.1 8031单片机 (4)4.1.2 8155芯片 ........................................................................... .. 7 4.2 硬件电路 ........................................................................... . (10)4.2.1矩阵式键盘电路 ................................................................ 10 4.2.2时钟电路和复位电路 .. (11)4.2.3非编码键盘的总电路 (12)5系统软件设计............................................................................ (13)5.1软件思想 ........................................................................... ........... 13 5.2 程序流程图 ........................................................................... ...... 14 5.3源程序 ........................................................................... ............... 15 6调试记录及结果分析 ...........................................................................18 心得体会 ........................................................................... ........................ 19 参考文献 ........................................................................... ........................ 20 附录 ........................................................................... .. (21)1武汉理工大学《计算机控制技术》课程设计说明书附录1 8031单片机资料 ................................................................... 21 附录2 8155芯片资料 (21)附录3 程序清单 ........................................................................... . (22)2武汉理工大学《计算机控制技术》课程设计说明书非编码键盘的扫描程序设计1设计任务及要求1.1初始条件1.通过8155扩展I/O口组成6×6行列式键盘 2.利用8031微控制器1.2要求完成的主要任务1.技术指标:对键盘按键能够正确识别,去抖动 2.工作原理:键盘扫描 3.课程设计说明书应包括(1)设计任务及要求(2)方案比较及认证(3)键盘扫描原理(4)硬件原理,电路图,采用器件的功能说明(5)软件思想,流程,源程序(6)调试记录及结果分析(7)参考资料(8)附录:芯片资料,程序清单(9)总结2方案比较及认证(1)键盘去抖动方案的选择键盘采用机械弹性开关来反映一个电压信号的开、断。
单片机4X4键盘扫描和显示课程设计
二、设计内容1、本设计利用各种器件设计,并利用原理图将8255单元与键盘及数码管显示单元连接,扫描键盘输入,最后将扫描结果送入数码管显示。
键盘采用4*4键盘,每个数码管可以显示0-F共16个数。
将键盘编号,记作0-F,当没按下其中一个键时,将该按键对应的编号在一个数码管上显示出来,当在按下一个键时,便将这个按键的编号在下一个数码管上显示,数码管上可以显示最近6次按下的按键编号。
设计并实现一4×4键盘的接口,并在两个数码管上显示键盘所在的行与列。
三、问题分析及方案的提出4×4键盘的每个按键均和单片机的P1口的两条相连。
若没有按键按下时,单片机P1口读得的引脚电平为“1”;若某一按键被按下,则该键所对应的端口线变为地电平。
单片机定时对P1口进行程序查询,即可发现键盘上是否有按键按下以及哪个按键被按下。
实现4×4键盘的接口需要用到单片机并编写相应的程序来识别键盘的十六个按键中哪个按键被按下。
因为此题目还要求将被按下的按键显示出来,因此可以用两个数码管来分别显示被按下的按键的行与列表示任意一个十六进制数)分别表示键盘的第二行、第三行、第四行;0xXE、0xXD、0xXB、0xX7(X表示任意一个十六进制数)则分别表示键盘的第一列、第二列、第三列和第四列。
例如0xD7是键盘的第二行第四列的按键对于数码管的连接,采用了共阳极的接法,其下拉电阻应保证芯片不会因为电流过大而烧坏。
五、电路设计及功能说明4×4键盘的十六个按键分成四行四列分别于P1端口的八条I/O数据线相连;两个七段数码管分别与单片机的P0口和P2口的低七位I/O数据线相连。
数码管采用共阳极的接法,所以需要下拉电阻来分流。
结合软件程序,即可实现4×4键盘的接口及显示的设计。
当按下键盘其中的一个按键时,数码管上会显示出该按键在4×4键盘上的行值和列值。
所以实现了数码管显示按键位置的功能四、设计思路及原因对于4×4键盘,共有十六个按键。
键盘扫描-分类
一、概述键盘在单片机应用系统中,实现输入数据、传送命令的功能,是人工干预的主要手段。
键盘分两大类:编码键盘和非编码键盘。
编码键盘:由硬件逻辑电路完成必要的键识别工作与可靠性措施。
每按一次键,键盘自动提供被按键的读数,同时产生一选通脉冲通知微处理器,一般还具有反弹跳和同时按键保护功能。
这种键盘易于使用,但硬件比较复杂,对于主机任务繁重之情况,采用8279可编程键盘管理接口芯片构成编码式键盘系统是很实用的方案。
非编码键盘:只简单地提供键盘的行列与矩阵,其他操作如键的识别,决定按键的读数等仅靠软件完成,故硬件较为简单,但占用CPU较多时间。
有:独立式按键结构、矩阵式按键结构。
二、键盘系统设计首先,确定键盘编码方案:采用编码键盘或非编码键盘。
随后,确定键盘工作方式:采用中断或查询方式输入键操作信息。
然后,设计硬件电路。
非编码键盘系统中,键闭合和键释放的信息的获取,键抖动的消除,键值查找及一些保护措施的实施等任务,均由软件来完成。
(一)非编码键盘的键输入程序应完成的基本任务1.监测有无键按下;键的闭合与否,反映在电压上就是呈现出高电平或低电平,所以通过电平的高低状态的检测,便可确认按键按下与否。
2.判断是哪个键按下。
一.编程扫描方式:当单片机空闲时,才调用键盘扫描子程序,反复的扫描键盘,等待用户从键盘上输入命令或数据,来响应键盘的输入请求。
二.定时扫描工作方式:单片机对键盘的扫描也可用定时扫描方式,即每隔一定的时间对键盘扫描一次。
三.中断工作方式:只有在键盘有键按下时,才执行键盘扫描程序并执行该按键功能程序,如果无键按下,单片机将不理睬键盘3.完成键处理任务。
(二)从电路或软件的角度应解决的问题1.消除抖动影响。
键盘按键所用开关为机械弹性开关,利用了机械触点的合、断作用。
由于机械触点的的弹性作用,一个按键开关在闭合和断开的瞬间均有一连串的抖动、抖动时间的长短由按键的机械特性决定,一般为5~10m s,这是一个很重要的参数。
非编码键盘工作流程
非编码键盘工作流程
非编码键盘工作流程:
①按键按下:用户按下键盘上的某个键,触发机械开关闭合;
②产生键扫描码:键盘内部电路根据闭合开关的位置,生成对应的键扫描码;
③键扫描码发送:键盘控制器将键扫描码通过数据线传输给计算机;
④操作系统接收:计算机硬件接口接收到键扫描码,传递给操作系统;
⑤转换为ASCII码:操作系统根据当前键盘布局,将键扫描码转换为对应的ASCII字符码;
⑥应用程序响应:操作系统将ASCII码传递给活跃的应用程序,触发相应字符输入事件;
⑦显示字符:应用程序根据接收到的字符码,在屏幕上显示相应的字符或执行相关命令;
⑧按键释放:用户松开按键,机械开关断开,键盘停止发送该键的扫描码。
非编码键盘工作原理交互式非编码键盘
非编码键盘工作原理交互式非编码键盘【知识文章标题】:解密非编码键盘:揭开工作原理与交互式体验【引言】非编码键盘,作为一种创新的输入设备,旨在提升用户的输入效率和用户体验。
然而,很少有人真正了解它的工作原理以及使用过程中的交互设计。
本文将带您深度探索非编码键盘的工作原理,同时结合交互式体验,使您对这一概念有更全面、深刻和灵活的理解。
【目录】1. 什么是非编码键盘?2. 非编码键盘的工作原理2.1 传感技术2.2 软件算法2.3 用户体验设计3. 非编码键盘的交互式体验3.1 使用场景3.2 操作方式3.3 功能丰富性4. 我对非编码键盘的观点和理解5. 总结与回顾【正文】1. 什么是非编码键盘?非编码键盘是一种由传统键盘演变而来的输入设备,其灵感来源于摄影调焦环的设计概念。
与传统键盘相比,非编码键盘通过去除冗余按键和改变按键排布的方式,实现了更简洁、精确和高效的输入方式。
通过非编码键盘,用户可以更加专注于内容的创作,减少了反复移动手的频率,从而提升了工作效率。
2. 非编码键盘的工作原理2.1 传感技术非编码键盘主要依靠内置的传感器来实现高度的精确度和灵敏度。
这些传感器可以实时检测手指在按键上的位置、角度和力度,将这些数据传输给键盘的软件系统进行处理。
2.2 软件算法非编码键盘内置的软件算法对传感器采集的数据进行处理和解读,准确地将用户的输入转化为文字或命令。
这些算法通过学习用户的习惯和行为来实现个性化的输入效果,同时也具备自适应能力,不断优化用户的输入体验。
2.3 用户体验设计非编码键盘的用户体验设计也是其工作原理中重要的一环。
设计师需要兼顾按键的布局、尺寸和触感,以及手部姿势和操作流程。
通过合理的设计,非编码键盘可以减少用户疲劳感,提供舒适的手感和良好的操作流畅性。
3. 非编码键盘的交互式体验3.1 使用场景非编码键盘适用于各种工作场景,包括文字编辑、程序开发、数据分析等。
无论是专业人士还是普通用户,在处理大量输入任务时都可以受益于非编码键盘的高效性和便捷性。
项目2任务5非编码键盘系统设计PPT课件
0
0
00
根据行端口的值,确定 哪一行有键按下
3、键名与键值
一一对应(键值表)
键名 0 1 2 3 4 5 6 7
键值 0xee 0xde 0xbe 0x7e 0xed 0xdd 0xbd 0x7d
键名 8 9 A B C D E F
键值 0xeb 0xdb 0xbb 0x7b 0xe7 0xd7 0xb7 0x77
11
列端口
2、线反转法
行端口输出 0000
检查列端口的值
0
根据列端口的值,已经 行 0
可以确定在哪一列有键 端 0
按下
口
0
5V
1
1
01 1
列端口
行端口输出 0000 检查列端口的值
列端口
根据列端口的值,确定
5V
1
哪一列有键按下
行 01
将行端口和列端口 输入输出方向反转
端 口
1
1
列端口输出0000 检查行端口的值
子程序1(键盘检测,返回键值) 子程序2(获取键值) 参考例程
小练习4
【例】 用LCD1602作为显示器,显示输入的数字。
写在最后
成功的基础在于好的学习习惯
The foundation of success lies in good habits
29
谢谢聆听
·学习就是为了达到一定目的而努力去干, 是为一个目标去 战胜各种困难的过程,这个过程会充满压力、痛苦和挫折
知识点1 非编码键盘
1、编码键盘与非编码键盘
2、线性非编码键盘
5V
1个MCU的IO口,可以检查一个按键的状态
结构简单 编程容易
口线资源占用严重!
单片机中非编码键盘的编码设计
单片机中非编码键盘的编码设计赵晓林【摘要】本文介绍了以51单片机为核心,主要对非编码薄膜键盘在单片机键盘控制中进行了硬件连接介绍和按键识别、键值确定的编码设计。
此设计在实际控制中具有性能稳定、按键功能自由确定的特点。
【期刊名称】《兰州教育学院学报》【年(卷),期】2014(000)009【总页数】2页(P122-123)【关键词】单片机;接口;键盘;编码【作者】赵晓林【作者单位】兰州职业技术学院,甘肃兰州 730070【正文语种】中文【中图分类】TP274键盘是计算机最基本、最重要的输入设备之一,按其接口分为编码键盘和非编码键盘两类[1]。
我们熟悉的台式计算机或笔记本电脑所使用的键盘属于编码键盘,它由多个按键和专用驱动芯片组合而成,通过PS/2通讯协议(双向同步串行通讯协议)发送编码数据至PC机,达到PC对相关信息识别和确定的功能,其按键识别和键值的确定全部依靠硬件完成。
本文设计主要是以51单片机为核心,由于该单片机具有操作简单、价格低廉、硬件电路简洁、键盘信息量不大的特点,故采用非编码键盘,同时由于该单片机I/O口引脚的限制,故采用矩阵按键,对矩阵键盘的识别和键值的确定主要为键盘编码的设计。
薄膜键盘是按键较多且排列整齐有序的薄膜开关,人们习惯称之为薄膜键盘,由薄膜开关和薄膜面板组成[2]。
薄膜键盘外形美观、新颖,体积小、重量轻,密封性强,具有防潮、防尘、防油污、耐酸碱、抗震及使用寿命长等特点,被广泛应用于智能化电子测量仪器、医疗仪器、计算机控制、数码机床、微波炉、电风扇、洗衣机等领域。
51单片机共有4个8位的并行I/O接口,分别记作P0、P1、P2、P3。
每个接口都包含一个锁存器、一个输出驱动器和两个三态输入缓冲器,因此数据输出时可以与外设直接连接。
故此,本文所设计的薄膜键盘可直接与51单片机连接,具体电路连线见图1。
本文主要通过键盘扫描、按键是否按下、按键识别、键盘解码四个程序设计环节实现键盘的编码设计。
浅谈单片机非编码键盘工作原理及设计方法
独立式按键电路每一个按键开关占一根 I/O 口线, 当按键数 较多时, 要占用较多的 I/O 口线。因此, 在按键数大于 8 时, 通常 多采用行列式 (也称 “矩阵式” ) 键盘电路。 3.1 行列式键盘电路的结构及原理 图 3 为用 AT89S51 单片机扩展 I/O 口组成的行列式键盘电 路。图中行线 P2.0~P2.3 通过 4 个上拉电阻接 Vcc, 且处于输入 状态, 列线 P1.0~P1.7 为输出状态。按键设置在行、 列线交点上, 行、 列线分别连接到按键开关的两端。 判断有无键按下: 当键盘上没有键闭合时, 行线和列线之间
AT89S51 I/O
李伍元
浅谈单片机非编码键盘工作原理及设计方法
本刊 E-mail:bjb@mail P1.4 P1.3 P1.2 P1.1 P1.0 AT89S51 P2.0 P2.1 P2.2 P2.3 0 1 2 3 4 5 6 7 10 kΩ×4 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Vcc
Strengthen the Core Competitiveness of the Primary Medical Information Centre
LUO Fang, HU Wei, JIN Xiao-jun, YU Dan-yan
ABSTRACT: This paper analyzes the present situation of the primary medical information centre , and points out that the primary medical information centre must strengthen the self-construction continuously , and based on the actual situation of the local users, centers on the satisfaction of users’information demands and on the knowledge service, establishes the self’ s core competitiveness, and therefore improves the service quality. KEY WORDS: primary medical information centre; core competitiveness; knowledge service
实验一 矩阵键盘检测
实验一矩阵键盘检测一、实验目的:1、学习非编码键盘的工作原理和键盘的扫描方式。
2、学习键盘的去抖方法和键盘应用程序的设计。
二、实验设备:51/AVR实验板、USB连接线、电脑三、实验原理:键盘接口电路是单片机系统设计非常重要的一环,作为人机交互界面里最常用的输入设备。
我们可以通过键盘输入数据或命令来实现简单的人机通信。
1、按键的分类一般来说,按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。
前者造价低,后者寿命长。
目前,微机系统中最常见的是触点式开关按键(如本学习板上所采用按键)。
按键按照接口原理又可分为编码键盘与非编码键盘两类,这两类键盘的主要区别是识别键符及给出相应键码的方法。
编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的识别。
全编码键盘由专门的芯片实现识键及输出相应的编码,一般还具有去抖动和多键、窜键等保护电路,这种键盘使用方便,硬件开销大,一般的小型嵌入式应用系统较少采用。
非编码键盘按连接方式可分为独立式和矩阵式两种,其它工作都主要由软件完成。
由于其经济实用,较多地应用于单片机系统中(本学习板也采用非编码键盘)。
2、按键的输入原理在单片机应用系统中,通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。
也就是说,它能提供标准的TTL 逻辑电平,以便与通用数字系统的逻辑电平相容。
此外,除了复位按键有专门的复位电路及专一的复位功能外,其它按键都是以开关状态来设置控制功能或输入数据。
当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能。
因此,键信息输入是与软件结构密切相关的过程。
对于一组键或一个键盘,通过接口电路与单片机相连。
单片机可以采用查询或中断方式了解有无按键输入并检查是哪一个按键按下,若有键按下则跳至相应的键盘处理程序处去执行,若无键按下则继续执行其他程序。
基于FPGA的键盘扫描程序的设计
X X学院CHANGSHA UNIVERSITY 本科生毕业设计XX学院教务处二○一一年二月制(20 13 届)本科生毕业设计说明书基于FPGA的键盘扫描程序的设计2013 年 6 月摘要在现代电子工业的控制电路中,键盘扫描和显示电路对系统的调试和设置有着重要的作用。
随着EDA技术的发展,基于FPGA的扫描键盘因其结构简单,能有效防止机械键盘按键抖动带来的数据错误等优点在许多电子设备中都得到了广泛的应用。
本文主要是设计一个基于FPGA的键盘扫描程序,该设计在EDA工具Quarutus II9.0上开发完成,以Creat-SOPC2000实验箱上的4*4矩阵键盘为硬件实体,设计键盘扫描程序,将程序划分为时序产生模块、键盘扫描模块、弹跳消除模块、键值译码模块四个模块,时序产生模块为键盘扫描和弹跳消除模块产生时钟信号,键盘扫描模块采用行扫描法对4*4矩阵键盘进行扫描,键值译码模块将所按键值译码为共阳极8位7段数码管的显示码,几个模块组合起来实现键盘扫描的设计要求。
最后对程序进行仿真分析和硬件验证。
仿真结果表明,该系统具有集成度高、稳定性好、设计灵活和设计效率高等优点。
关键词: FPGA,Quartus II,VHDL,键盘扫描ABSTRACTIn the modern electronics industry controlling-circuit, the keyboard scanning and display circuit plays an important role in debugging and setting the system. With the development of EDA technology, FPGA-based scanning keyboard have been widely used in many electronic devices because of its simple structure, and it also can effectively prevent mechanical keyboard jitter caused by data errors.This article primarily designed an FPGA-based keyboard scan procedures, this design is developed on the EDA tools—— Quarutus II9.0 and designed the keyboard scan program, using the Creat-SOPC2000 experimental box 4 * 4 matrix keyboard as the hardware entity .the program is divided into four modules as the timing generation module, a keyboard scanning module, bounce cancellation module and the decoding module. The timing generation module generates the clock signal for the keyboard scanning and bounce elimination module, the keyboard scanning module using the line scanning method to sweep the 4* 4 matrix keyboard, key decoder module decodes the key value for the common anode eight 7-segment display code. Several modules assembles together to meet the keyboard scanning design requirements. Finally, conducting simulation analysis by the program and verifying the hardware.Simulation results show that the system has many advantages such as high integration, good stability, high efficiency, flexible design and high design efficiency.Keywords: FPGA,Quartus II,VHDL,keyboard scanning目录摘要 (I)ABSTRACT .......................................................................................................... I I 第1章绪论 (1)1.1 课题的研究背景 (1)1.2 课题的研究意义 (2)1.3 本文的主要工作 (2)第2章FPGA开发工具简介 (3)2.1 FPGA概述 (3)2.2 VHDL语言以及Quartus II应用 (3)2.3 本章小结 (4)第3章基于FPGA的键盘扫描程序的设计 (3)3.1 键盘扫描程序的总体电路设计 (5)3.1.1 矩阵式键盘扫描的工作原理 (6)3.1.2 数码管的显示原理 (7)3.2 键盘扫描电路各主要功能模块的设计 (8)3.2.1 时序产生模块 (8)3.2.2 键盘扫描模块 (9)3.2.3 弹跳消除模块 (11)3.2.4 键盘译码电路 (13)3.2.5 键盘扫描程序的顶层文件设计 (15)3.3本章小结 (16)第4章键盘扫描程序的波形仿真及硬件验证 (17)4.1 系统仿真 (17)4.1.1 消抖电路仿真 (17)4.1.2 键盘时钟信号仿真 (18)4.1.3 键盘扫描信号仿真 (18)4.1.4 键盘译码电路仿真 (19)4.1.5 键盘扫描总体电路仿真 (21)4.2引脚的锁定 (22)4.3硬件验证 (23)4.4本章小结 (25)结论 (26)参考文献 (27)附录 (28)致谢 (32)第1章绪论1.1 课题的研究背景在现代计算机与电子系统中,一般都采用通用式的标准键盘将所需的数据和指令等信息通过键盘输入到计算机和电子系统,以此来实现人机之间的接口交互。
扫描按键原理
扫描按键原理
扫描按键原理是一种常见的输入设备工作原理,常用于电脑键盘、手机触摸屏等设备中。
扫描按键原理的基本思想是通过周期性地扫描每个按键,来检测按键是否被按下。
具体的工作流程如下:
1. 首先,将所有按键连接到一个键盘矩阵中。
键盘矩阵由若干列和若干行组成,按键与对应的行和列交叉连接。
2. 然后,将每一列设置为输入状态,每一行设置为输出状态。
3. 系统开始扫描按键时,首先将第一列置为高电平,然后逐行读取输入状态。
如果某一行的输入状态为低电平,说明该行对应的按键被按下。
4. 当检测到按键按下后,系统将记录下所在的行和列信息,并执行相应的操作。
5. 接下来,系统继续将下一列置为高电平,继续扫描按键直到所有列都被扫描完毕。
6. 扫描完成后,系统会根据之前记录的按键信息,来判断哪些按键被按下,并进行相应的响应。
通过周期性的扫描方式,系统可以实时检测按键的状态,并进行相应的处理,从而实现按键输入的功能。
需要注意的是,扫描按键原理存在一定的延迟,因为需要不断地扫描每个按键。
为了提高响应速度,可以通过优化扫描速度或者使用中断方式来减少延迟。
总之,扫描按键原理是一种常用的输入设备工作原理,通过周期性扫描按键的方式来检测按键状态,并进行相应的处理。
它在各种电子设备中被广泛应用,为用户提供便捷的操作体验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要 ------------------------------------------------------------------------------------------------------- 11设计方案 ------------------------------------------------------------------------------------------------ 21.1设计任务 ---------------------------------------------------------------------------------------- 2 1.2设计方案 ---------------------------------------------------------------------------------------- 22系统硬件设计------------------------------------------------------------------------------------------ 32.1最小应用系统 ------------------------------------------------------------------------------------ 3 2.28155扩展电路---------------------------------------------------------------------------------- 4 2.3矩阵键盘接口电路 ---------------------------------------------------------------------------- 6 2.4LCD1602接口电路----------------------------------------------------------------------------- 6 2.5主电路设计 --------------------------------------------------------------------------------------- 8 3系统软件设计------------------------------------------------------------------------------------------ 83.1主程序设计 --------------------------------------------------------------------------------------- 9 3.2延时程序设计----------------------------------------------------------------------------------- 9 3.3键盘扫描子程序设计 ------------------------------------------------------------------------ 103.4显示子程序设计------------------------------------------------------------------------------- 114 系统调试与结果 ---------------------------------------------------------------------------------- 134.1调试内容与问题解决----------------------------------------------------------------------- 13 4.2运行结果与分析 ----------------------------------------------------------------------------- 13 小结 ------------------------------------------------------------------------------------------------------- 15 参考文献 ------------------------------------------------------------------------------------------------ 16 附录 ------------------------------------------------------------------------------------------------------- 17摘要计算机控制技术是一门以电子技术、自动控制原理、计算机应用技术为基础,以计算机控制技术为核心,综合可编程控制技术、单片机技术、计算机网络技术,从而实现生产技术的精密化、生产设备的信息化、生产过程的自动化及机电控制系统的最佳化的专门学科。
企业对具备较强的计算机控制技术应用能力专门人才需求很大。
本文在proteus7.5软件上利用8155芯片来扩展8031单片机的I/O接口,在keil软件下采用C语言编程,生成.hex文件,可以仿真实现6*6矩阵键盘的按键识别和消除按键抖动,将识别到的按键更人性化的在lcd1602的液晶显示,主要由方案设计、硬件电路设计、系统软件设计和系统调试四部分组成。
关键词:8031单片机 8155芯片矩阵键盘 I/O口扩展 1602液晶非编码键盘的扫描程序设计1设计方案1.1 设计任务通过8155扩展8031微控制器I/O口组成6×6行列式键盘行列式键盘。
设计非编码键盘的扫描硬件系统,画出电路图;对键盘按键能够正确识别,去抖动;键盘扫描;撰写设计说明书。
1.2 设计方案首先,将用8155芯片扩展8031单片机的I/O口,然后需要检测6*6的矩阵键盘的12根导线可分别接在8155的PB0-PB6和PC口,LCD1602的8根数据线可接在8155的PA0口,控制线接在单片机的P2.0-P2.3,由于8155是可编程芯片,所以将的PA、PB和PC口依次设为输出、输出和输入,通过编写键盘扫描程序来识别按键并返回按键值,最后判断将识别到的按键值形象的显示在LCD1602液晶上。
主电路结构框图如图1-1所示。
图1-1 系统结构图2系统硬件设计2.1最小应用系统80C31单片机,它是8位高性能单片机。
属于标准的MCS-51的HCMOS产品。
它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,标准MCS-51单片机的体系结构和指令系统。
80C31内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
但80C31片内并无程序存储器,需外接ROM。
此外,80C31还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
本次设计采用80C31的PDIP(40pin)封装形式,管脚图如图2-1所示。
图2-1 8031管脚图80c31单片机的40根管脚,若要单片机正常工作必须满足:1. 电源线2根Vcc:编程和正常操作时的电源电压,接+5V。
Vss:地电平。
2. 晶振:2根XTAL1:振荡器的反相放大器输入。
使用外部震荡器是必须接地。
XTAL2:振荡器的反相放大器输出和内部时钟发生器的输入。
当使用外部振荡器时用于输入外部振荡信号。
所以可以得到单片机的最小应用系统如图2-2所示。
图2-2 8031最小应用系统2.2 8155扩展电路8155芯片介绍关于Intel的8155/8156:是一多功能的可编程外围接口芯片,40脚双列直插封装,有A口、B口、C口和定时器/计数器低8位以及定时器/计数器高8位五个端口,另外8155内部还有一个命令/状态寄存器,所以8155内部共有6各端口。
对它们只需要使用即可实现编址,如表1-1所示。
8155的A口有输入和输出两种工作方式,B口也有输入和输出两种工作方式,而C口有输入方式(ALT1),输出方式(ALT2),A口控制端口方式(ALT3)以及A口和B口控制端口方式(ALT4)四种工作方式。
这些端口的工作方式是由8155内部的命令寄存器(命令字)来控制的。
命令字除了规定端口的工作方式还规定了定时器/计数器的工作方式。
命令字只能进行写操作。
其格式如图2-3所示。
图2-3 8155的命令字结合8031和8155的芯片结构和特点,可设计出如图2-4所示的扩展电路。
图2-4 8155扩展电路2.3 矩阵键盘接口电路编码键盘与单片机的接口单片机系统所用的键盘有编码键盘和非编码键盘两种。
非编码键盘是由一些按键排列成的一个行列矩阵。
按键的作用,只是简单地实现接点的接通和断开,但必须有一套相应的程序与之配合,才能产生出相应的键码。
非编码键盘几乎不需要附加什么硬件电路,目前,在微型计算机控制系统中使用比较普遍。
本次设计有一个6行×6列的非编码键盘,按行依次为1-36,键盘的行线接8155C口的六条线PB5~PB0,键盘的列线则接8155C口的6条线,而且在C口接下拉电阻。
如图2-5所示。
图2-5 矩阵键盘接口电路2.4 LCD1602接口电路LCD1602字符型液晶显示模块是一种专门用于可以显示16列*2行显示字母、数字、符号等点阵式LCD, 16*2等的模块。
其管脚介绍如下:第1脚:VSS为地电源。
第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
图2-6 LCD1602接口电路第15脚:背光源正极。
第16脚:背光源负极。