【51单片机6位数码管密码锁】2022-10-15

缘由六位密码器设计连接LED-嵌入式-CSDN问答

矩阵51单片机密码锁,回复:https://bbs.csdn.net/topics/392713242_智者知已应修善业的博客-CSDN博客

cpp 复制代码
#include "REG52.h"
unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0,64,15,56}; //共阴0~F消隐减号
unsigned char code ShaoMiaoZhi[]={1,2,4,8,16,32,64,128,254,253,251,247,239,223,191,127,238,237,235,231,222,221,219,215,190,189,187,183,126,125,123,119};//独立按键16阵
sbit ledL=P3^6;
sbit ledH=P3^7;
unsigned char JianPanShaoMiao(/*独立按键16扫描法*/)
{	
	unsigned char H=15,L=240,Ys=0,zhi=H+L;
	P1=zhi;
	if(P1!=zhi){while(++Ys);zhi=P1;while(zhi==P1);return zhi;}
	else P1=zhi+1;
	if(P1!=~zhi){while(++Ys);zhi=P1;while(zhi==P1);return zhi;}
	return (H+L);
}
void smxs(unsigned char mz, unsigned char w)
{
	unsigned char Xd=0;
	P0=~0;
	P0=~smgduan[mz];
	P2=w;
	while(++Xd);
}
void main()
{
	unsigned char sm=0,jz=0, mm[12]={0,0,0,0,0,0,1,2,3,4,5,6},w=0;
	while(1)
	{
		smxs(mm[0],1);smxs(mm[1],2);smxs(mm[2],4);
		smxs(mm[3],8);smxs(mm[4],16);smxs(mm[5],32);
		sm=JianPanShaoMiao();jz=0;
		if(sm<255)
		{
			while(sm!=ShaoMiaoZhi[jz])++jz;
			if(w<6)
			{
				mm[w]=jz;
				++w;
			}
			else
			{
				if(jz>9)while(mm[w]==mm[w+6])--w;
				if(w==255){w=ledL=0;ledH=1;}else {ledL=1;w=ledH=0;}
			}
		}
	}
}
相关推荐
wengqidaifeng8 分钟前
数据结构(三)栈和队列(上)栈:计算机世界的“叠叠乐”
c语言·数据结构·数据库·链表
听麟11 分钟前
HarmonyOS 6.0+ PC端虚拟仿真训练系统开发实战:3D引擎集成与交互联动落地
笔记·深度学习·3d·华为·交互·harmonyos
来自晴朗的明天11 分钟前
15、隔离 DC-DC 电源电路(18S12 模块)
单片机·嵌入式硬件·硬件工程
我送炭你添花17 分钟前
电子世界的奇妙冒险:从一个电阻开始(系列目录)
人工智能·单片机·嵌入式硬件·fpga开发
一个人旅程~25 分钟前
我存在吗?你存在吗?
笔记·程序人生·电脑·ai写作
xqqxqxxq30 分钟前
Java IO 核心:BufferedReader/BufferedWriter & PrintStream/PrintWriter 技术笔记
java·笔记·php
VekiSon30 分钟前
Linux内核驱动——设备树原理与应用
linux·c语言·arm开发·嵌入式硬件
国科安芯39 分钟前
火箭传感器控制单元的抗辐照MCU选型与环境适应性验证
单片机·嵌入式硬件·架构·risc-v·安全性测试
BlackQid1 小时前
深入理解指针Part5——回调函数及应用
c语言
日拱一卒——功不唐捐1 小时前
字符串匹配:暴力法和KMP算法(C语言)
c语言·算法