跪求电子密码锁设计 在线等

来源:百度知道 编辑:UC知道 时间:2024/09/23 20:41:32
谁能帮帮我啊,各位高手看看,这里有个电子密码锁的要求,最好是 keil 中能用的C程序!! 就今天了,明天就要用了,高手速度搞起来~~~

一、任务:设计并制作一个电子锁 二、要求:1、基本要求:具有十个触摸按钮,作为编码按钮;输入的密码三次不正确,视为非法用户;当有非法用户进入时,能声光报警;在确认用户的基础上,用户可更改密码,自行设置密码。2、发挥部分:具有设置密码提示功能;非法用户进入时,能锁定生光报警功能直至关闭供电电源;设计供电电源;显示非法用户进入时间;特色与创新。
at89s51
p1.0到1.7接4*4键盘和p0.0到0.7是数码管显示的8位端子。p2.2到2.7接数码管的6位位控端子。p2.0是报警电路。p2.1是开锁电路。p3.0到3.2是3个发光二极管。RST为复位电路 .密码为6位
急求,各位行行好,发到我的邮件cbc2314962@163.com

/*

六位密码,原始密码为362330,该程序有点问题,也有不完善的地方,就是修改密码后,如果输入的密码与修改的密码

相同,则锁会开,如果有一次输入有错,则密码会变回原来的密码,即362330.可能因为定义的数组

pws[6]为全局变量,但是也不肯定.希望下载的人提出宝贵的意见,大家共同交流,谢谢.

*/

#include<at89x51.h>

#define uchar unsigned char

#define uint unsigned int

uint num=10; //开始让数码管什么都显示

bit set=0;  //定义设置密码的位

char count=-1; //开始让COUNT=-1,方便后面显示数码管

sbit Beep=P1^2; //蜂鸣器

uchar temp;

uchar pws[6]={3,6,2,3,3,0}; //原始密码

uchar pwx[6];   //按下的数字存储区

bit rightflag;   //密码正确标志位

uchar workbuf[6];

uchar code tabledu[]={

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40

};   //段选码,共阴极

uchar code tablewe[]={

0xfe,0xfd,0xfb,0xf7,0xef,0xdf

};   //位选码

uint keyscan();

void delay(uc