键盘密码锁C语言程序,单片机C语言键盘编程问题做的关于密码锁数码管显示希望解答大侠们!? 爱问知识人...

给你个框架看看

#define N 4

#dfeine INPUT 12

#define CHG 13

#define CONFIRM 14

#define idle 0

#define inputpass 1

#define chgpass 2

#define waitconfirm 3

#define end 4

unsigned char keyscan()

{

unsigned char key,tempkey;

//get key

//delay()

//confirm key

//return key

}

void show_Led(/***/)

{

//show something on leds

}

void main(void)

{

unsigned char State = idle,Key_Value,Pass[4] = {0},passCNT;

while(1)

{

Key_Value = keyscan();

switch(State)

{

case idle:{

if(INPUT == Key_Value) State = inputpass;

if(ICHG == Key_Value) State = chgpass;

State = idle;

show_Led(/*idle*/);

break;

}

case inputpass:{

if(/*Key_Value != CHG && != INPUT* && passCNT < N/)

{/*get pass into Pass[] & show_Led()*/}

else

{

if(passCNT == N)

{

State = waitconfirm;

}

else

{

State = idle; /*state error!*/

show_Led(/*error then idle*/);

}

}

break;

}

case chgpass:{

/*see inputpass*/

}

case waitconfirm:{

if(CONFIRM == Key_value){State = end ;};

else{/*if timeout( State = idle)*/}

break;

}

case end:{

/* add do pass check*/

}

default :{

State = idle;

show_Led(/*idle*/);

break;

}

}

}

}。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值