51单片机四位密码锁程序
时间: 2023-12-24 20:01:56 浏览: 149
51单片机密码锁程序.zip
根据提供的引用内容,以下是一个51单片机实现四位密码锁程序的示例:
```c
#include <reg51.h>
#define PASSWORD_LENGTH 4
unsigned char password[PASSWORD_LENGTH] = {1, 2, 3, 4}; // 设置密码为1, 2, 3, 4
unsigned char input[PASSWORD_LENGTH] = {0}; // 存储用户输入的密码
unsigned char count = 0; // 记录用户输入的次数
void delay(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++) {
for (j = 0; j < 120; j++) {
}
}
}
void main() {
while (1) {
unsigned char keyNum = getKeyNum(); // 获取按下的键码
if (keyNum <= 10) { // 只允许输入1-10的键码
if (count < PASSWORD_LENGTH) { // 只允许输入四次有效
input[count] = keyNum; // 存储用户输入的密码
count++; // 计数输入次数
}
}
if (count == PASSWORD_LENGTH) { // 当用户输入了四位密码
unsigned char isCorrect = 1; // 标记密码是否正确
for (unsigned char i = 0; i < PASSWORD_LENGTH; i++) {
if (input[i] != password[i]) { // 检查每一位密码是否正确
isCorrect = 0;
break;
}
}
if (isCorrect) { // 密码正确
openLock(); // 打开锁
delay(1000); // 延时1秒
closeLock(); // 关闭锁
} else { // 密码错误
delay(60000); // 锁死一分钟
}
// 重置输入和计数
for (unsigned char i = 0; i < PASSWORD_LENGTH; i++) {
input[i] = 0;
}
count = 0;
}
}
}
```
阅读全文