c语言单片机密码锁控制程序,用4个按键输入状态分别代表4位二进制数,可组成16种密码,范围0000

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-05
请问,用四个独立按键来制作简易密码锁C语言程序该怎么编写

这个可以模拟那种拨码形式的密码锁方式来设计,比如OFO共享单车的拨码方式。
#include
#define uchar unsigned char
uchar mima[4]={1,2,3,4};
uchar keymm[4]={0,0,0,0};
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
sbit led=P1^4;
bit flag=0;
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
main()
{
uchar i;
led=1;
while(1)
{
if(key1==0)
{
while(key1==0);
keymm[0]++;
keymm[0]%=10;
}
if(key2==0)
{
while(key2==0);
keymm[1]++;
keymm[1]%=10;
}
if(key3==0)
{
while(key3==0);
keymm[2]++;
keymm[2]%=10;
}
if(key4==0)
{
while(key4==0);
keymm[3]++;
keymm[3]%=10;
}
for(i=0;i<4;i++)
{
if(keymm[i]!=mima[i])break;
if(i==3)flag=1;
}
if(flag)
{
i=10;
while(i--)
{
led=~led;
delay(100);
}
flag=0;
}
}
}

一看问题就知道你什么都不懂,4位的数码管能显示HELLO这5个字母?!

用51单片机,假设p1·0至p1·3接4个开关,P2·0接开锁按键S1
While(s1!=0);//等待按开锁按钮
delayms(10);//延时
While(s1==0);//等待按键抬起
mima=0x0F&P1;//读取P1低4位
if(mima==12)lock=1;//如果与设定密码相等开锁
else Fmq=1;//否则,报警

#include<cstdio>
int main(){
char c[4];
int ans=1;
scanf("%s",c);
ans+=(c[0]-'0')*8+(c[0]-'0')*4+(c[0]-'0')*2+(c[0]-'0');
printf("%d",ans);
return 0;
}

  • c语言单片机密码锁控制程序,用4个按键输入状态分别代表4位二进制数...
    答:用51单片机,假设p1·0至p1·3接4个开关,P2·0接开锁按键S1 While(s1!=0);//等待按开锁按钮 delayms(10);//延时 While(s1==0);//等待按键抬起 mima=0x0F&P1;//读取P1低4位 if(mima==12)lock=1;//如果与设定密码相等开锁 else Fmq=1;//否则,报警 ...
  • 请问,用四个独立按键来制作简易密码锁C语言程序该怎么编写
    答:这个可以模拟那种拨码形式的密码锁方式来设计,比如OFO共享单车的拨码方式。include<reg51.h> define uchar unsigned char uchar mima[4]={1,2,3,4};uchar keymm[4]={0,0,0,0};sbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^2;sbit key4=P1^3;sbit led=P1^4;bit flag=0;void ...
  • 关于51单片机C语言 数码管 4*4按键 简单的密码锁 请您帮助一下_百度知...
    答:当输入密码时,密码输错后按下键S18,可重新输入六位密码。 当设置密码时,设置中途想更改密码,也可按下此键重新设置。 4、关闭密码锁: 按下S19即可将打开的密码锁关闭。推荐初级演示步骤:输入原始密码000000---按下更改密码按键S16---按0到9设置密码---按S17 确认密码更改---按S18关闭密码锁---输入新的...
  • 求用avr单片机,c语言编电子密码锁,四个数码管显示,3*4的键盘其中有两个...
    答:用什么AVR啊,过来用PIC.密码算法有的话,就没什么难度啊。用个电磁铁控制开关锁,数码管你脚位够就直接接I/O上面不过这样很浪费。用个片选把每个数码管轮流选通。键盘搞个行列式的,唉这有啥难度呢。关键就在密码的算法上面。这时要话心思的,如果你打算自己写算法。
  • ...及8位数码管显示构成的电子密码锁.的C语言程序。
    答:case 0x7e:{P0=duanma[0];break;} //编码检测,第一个键按下显示0,第16个按键按下显示F case 0xbe:{P0=duanma[1];break;} case 0xde:{P0=duanma[2];break;} case 0xee:{P0=duanma[3];break;} case 0x7d:{P0=duanma[4];break;} case 0xbd:{P0=duanma[5];break;} case...
  • 51单片机中用4个开关控制4个发光二极管的C语言程序设计
    答:TX-1单片机开发板 独立键盘开关接在P3.4到P3.7口#include<reg52.h>sbit p34=P3^4;sbit p35=P3^5;sbit p36=P3^6;sbit p37=P3^7;void delay(uint z);main(){while(1){if(p34==0)P1=0xfe;if(p35==0)P1=0xfd;if(p36==0)P1=0xfb;if(p37==0)P1=0xf7;}} ...
  • 51单片机4*4矩阵键盘用C语言如何设置成密码开锁键?
    答:int i=0;char b[4]={'0','0','0','0'};//输入的密码放这里和初始的比较来判断是否密码正确 void keyscan()//扫描按键是否按下 { uchar temp;P3=0xfe;//扫描第一行 temp=P3;temp=temp&0xf0;if(temp!=0xf0)//判断按键是否按下 { delayms(10);//去抖动 temp=P3;temp=temp&0x...
  • 求51单片机C语言编的密码锁程序
    答:define BIN(a,b,c,d,e,f,g,h) ((a<<7)+(b<<6)+(c<<5)+(d<<4)+(e<<3)+(f<<2)+(g<<1)+(h<<0))//下面的code表示数组存放在ROM中,因为这个数组的值不需要改写 uchar code KeyCode[16]={15,14,12,8,30,28,24,16,60,56,48,32,120,112,96,64};//值为m*(n+...
  • 求单片机密码锁源程序,C语言的
    答:define A 0x0a //输入密码 define B 0x0b //修改密码 define D 0x0d //关锁 define enter 0x0c //确认 define backspace 0x0f //退格键 sbit baojing = P3^7; //蜂鸣器接口 sbit lock = P3^3;//锁信号 sbit set = P3^2;uchar idata mima_5[6] = {1,2,3,4,5,6}; //...
  • 基于单片机电子密码锁设计~
    答:给你一个思路吧,先用7个端口做成3*4矩阵键盘,0~9 * #共12个键,另外用4个端口做红灯输出、绿灯输出、报警输出、开锁输出。*键为取消键,#键为确认键,密码可存入单片机的ROM中(不能改密码)或存入24CXX串行E2PROM(可改密码)。键盘处理方法可以用两种,一种是在主程序里不停扫描端口检测按键...