本周学习了关于矩阵键盘的知识,并利用矩阵键盘制作了密码锁。
矩阵键盘利用矩阵式的连接减少了IO口的使用,并用扫描的方式保证每一个按键的响应。
下面是代码
main

#include <REGX52.H>
#include "lcd1602.h"
#include "delay.h"
#include "MatrixKey.h"unsigned char keynum,Password,Count;void main()
{LCD_Init();LCD_ShowString(1,1,"helloworld");while(1){keynum=MatrixKey();if(keynum){if(NUMBER<=10){if(Count<4){Password*=10;Password=KeyNum%10;Count++;}}LCD_ShowNum(2,1,keynum,4);if(KeyNum==11){if(Password==0619){LCD_ShowString(1,14,"OK ");Password=0;Count=0;LCD_ShowNum(2,1,keynum,4);}else{LCD_ShowString(1,14,"ERR");Password=0;Count=0;LCD_ShowNum(2,1,keynum,4);}}if(KeyNum==12){Password=0;Count=0;LCD_ShowNum(2,1,keynum,4);}}}
}

MatrixKey.c

unsigned char MatrixKey()
{unsigned char Keynum=0;P1_0=0xFF;P1_3=0;if(P1_7==0){delay(20);while(P1_7==0);delay(20);Keynum=1;}if(P1_6==0){delay(20);while(P1_6==0);delay(20);Keynum=5;}if(P1_5==0){delay(20);while(P1_5==0);delay(20);Keynum=9;}if(P1_4==0){delay(20);while(P1_4==0);delay(20);Keynum=13;}P1_0=0xFF;P1_2=0;if(P1_7==0){delay(20);while(P1_7==0);delay(20);Keynum=2;}if(P1_6==0){delay(20);while(P1_6==0);delay(20);Keynum=6;}if(P1_5==0){delay(20);while(P1_5==0);delay(20);Keynum=10;}if(P1_4==0){delay(20);while(P1_4==0);delay(20);Keynum=14;}P1_0=0xFF;P1_1=0;if(P1_7==0){delay(20);while(P1_7==0);delay(20);Keynum=3;}if(P1_6==0){delay(20);while(P1_6==0);delay(20);Keynum=7;}if(P1_5==0){delay(20);while(P1_5==0);delay(20);Keynum=11;}if(P1_4==0){delay(20);while(P1_4==0);delay(20);Keynum=15;}P1_0=0xFF;P1_0=0;if(P1_7==0){delay(20);while(P1_7==0);delay(20);Keynum=4;}if(P1_6==0){delay(20);while(P1_6==0);delay(20);Keynum=8;}if(P1_5==0){delay(20);while(P1_5==0);delay(20);Keynum=12;}if(P1_4==0){delay(20);while(P1_4==0);delay(20);Keynum=16;}return(Keynum);
}

这个矩阵扫描方式虽然有点繁琐,但是最好理解
.h

#ifndef __MATRIXKEY_H__
#define __MATRIXKEY_H__
unsigned char MatrixKey();
#endif

利用矩阵键盘制作密码锁相关推荐

  1. 五、用矩阵键盘实现密码锁

    矩阵键盘 独立键盘与单片机进行连接时,每一个按键都需要单片机的一个I/O口,若某单片机系统较多按键,如果用独立按键便会占用较多的I/O口资源.为了尽可能节省I/O口线,引入矩阵键盘. 矩阵按键原理 在 ...

  2. ...矩阵键盘计算器的C语言,单片机: 简易计算器的实现(键盘)

    利用矩阵键盘实现一个简易的计算器. 为了简化问题,我们假设只支持小于100的非负整数之间的加.减.乘的运算,并且支持连续运算(结果的数值可以再进行运算). 本程序中C为加号,D为减号,E为乘号,F为等 ...

  3. 51单片机红外电子密码锁【红外对管矩阵键盘数码管LCD1602显示模块】

    系统功能 51单片机红外电子密码锁系统主要由红外线编码电路.红外线解码开锁电路.掉电保护电路.声光提示报警电路.键盘及显示电路等组成,编写相应的程序代码并进行结果测试和仿真演示. 利用红外遥控技术和单 ...

  4. 【Proteus】单片机配合矩阵键盘LCD1602制作简易计算器

    前言 想出一个关于Protues仿真的系列,回想起在大学时做课程设计,大多数是用这个来做,这个系列就围绕一些常用的外设或者说课程设计题目来进行对以前知识的回顾,温故而知新,同时也希望能对新手读者的学习 ...

  5. 【设计方案分享】基于单片机温度监测监控报警系统设计-基于单片机钞票自动智能识别系统设计-基于单片机乒乓球游戏机控制系统设计-基于单片机温度监测监控报警系统设计-基于单片机矩阵键盘的电子密码锁设计

    820基于单片机温度监测监控报警系统设计-设计资料 温度监测器功能描述: 1.主控芯片用的是51单片机(STC89C51). 2.使用温度传感器DS18b20采集温度. 3.用1602液晶显示显示温度 ...

  6. 基于单片机乒乓球游戏机控制系统设计-基于单片机矩阵键盘的电子密码锁设计-基于单片机温度监测监控报警系统设计-基于单片机钞票自动智能识别系统设计-设计资料【转发分享】

    819基于单片机乒乓球游戏机控制系统设计-设计资料下载 乒乓球游戏机设计任务为: (1)使用乒乓游戏机的甲乙双方各在不同的位置发球或击球. (2)乒乓球的位置和移动方向由灯亮及依次点燃的方向决定,球移 ...

  7. 51-矩阵键盘和矩阵键盘密码锁

    一.矩阵键盘 上面两个图中的 扫描 可以理解为 循环 . 在上图中,所谓最终实现所有按键 "同时" 检测的效果指的就是:当我们在矩阵键盘中任意按下或按下并松开一个按键,都能被检测出 ...

  8. 使用51单片机的矩阵键盘和LCD1602做一个密码锁

    文章目录 前言 一.工具准备 工具一:51单片机 工具二:LCD1602液晶显示屏 工具三:Keil软件 二.开始操作 1.LCD1602的程序调试 2.矩阵键盘的程序调试 3.密码锁程序设计 总结 ...

  9. 利用c51进行数模转换并在液晶屏上显示_基于C51单片机的智能计算器、矩阵键盘、lcd1602...

    目录 1绪论.............................................................................................. ...

最新文章

  1. 位移运算符(7个)之第一个: 左移
  2. 【ASP.NET开发】.NET三层架构简单解析
  3. 【渝粤教育】国家开放大学2019年春季 1398分析化学(本) 参考试题
  4. “约见”面试官系列之常见面试题第三十三篇之事件委托(建议收藏)
  5. activemq消息丢失_Kafka or RabbitMQ:消息中间件选型深入分析
  6. git 裁切_GitHub - taiyang0725/PicCrop: 图片裁剪的工具类,基于uCrop封装,使用十分便捷...
  7. HarmonyOS 编译系统源码
  8. WIFEXITED WEXITSTATUS WIFSIGNALED(转)
  9. python越学越不懂_为什么那么多自学Python的后来都放弃了,总结以下原因
  10. Create directory命令
  11. ios人脸识别_适用于Android和iOS的10种最佳人脸识别应用程序
  12. 如果你的下属不服从你得管理,你会怎么办?
  13. 什么是ETL?ETL是什么技术?
  14. 移动客户端谈百度分享经验
  15. 翁恺java考试卷_翁恺java期末考试题
  16. 商人必看的20大电影
  17. HTML+CSS美食静态网页设计——简单牛排美食餐饮(9个页面)公司网站模板企业网站实现
  18. 怎样在latex中插入jpg图片
  19. 清华大学计算机系哪个专业就业前景最好,清华大学有哪些专业最好就业?很多人都不知道!...
  20. MyBatis总结 Day01

热门文章

  1. 开发人员选择驻场有什么好处
  2. spring boot + rabbitMq整合之死信队列(DL)
  3. shapefile文件(shp)读取
  4. 黎曼猜想(一) 欧拉乘积式
  5. android 苹果 换机,苹果12怎么一键换机安卓?iPhone12一键换机功能操作步骤
  6. 抢红包 html 模板,微信抢红包源码和模拟demo
  7. 国信证券笔试题总分120分
  8. 使用电信云时做对象储存时的异常信息:com.amazonaws.services.s3.model.AmazonS3Exception
  9. 用html,js和css设计一个静态网页
  10. 【毕业设计源码】基于Python的校园生活助手(二手+活动+论坛+新闻)信息系统