密码锁控制说明书(5)

2025-06-26

3)、掉电存储服务程序——当比较密码的时候,需要读取AT24C02程序,将存储于芯片内的数据读到RAM中,然后和输入密码相比较,当修改密码时需要把密码保存于24C02中。

4)、显示子程序——包括关闭状态显示子程序(dis-A)、开锁状态显示子程序(DIS-B)、密码输入及修改状态显示子程序(DIS-C)、密码输入错误报警状态子程序(DIS-D).

程序流程图

21

四、程序设计

#include #define uint unsigned int #define uchar unsigned char int pw_error,audio_out,cnt_state; void key_scan();

uchar count0,count1,count3,num,n=0,temp,a,j,count4; uchar mima[4]; //初始密码存储区 uchar tab_key[50]; //输入密码存储区 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};

bit enterflag; //确认键按下与否的标志 bit mimaflag; //密码正确与否的标志 bit xiugaiflag; //修改密码标志 bit enter1flag; //修改密码确认键标志 sbit red=P3^7; sbit bell=P3^6; sbit rs=P2^0;

22

sbit rw=P2^1; sbit lcden=P2^2; sbit green=P3^2; sbit scl=P3^4; sbit sda=P3^5;

uchar code table1[]=%uchar code table2[]=\ --------%uchar code table3[]=\

uchar code table4[]=\ (^_^) %uchar code table5[]=\

uchar code table6[]=%uchar code table7[]=\ --------%uchar code table8[]=\ is new%uchar code table9[]=\//*********************************键盘消抖**************************** void delay1() { ;; }

void delay2(uchar x) {

uchar a,b; for(a=x;a>0;a--)

23

函 for(b=100;b>0;b--); }

void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }

//****************************e^2room******************************* void start() //开始信号 { sda=1; delay1(); scl=1; delay1(); sda=0; delay1(); }

void stop() //停止

24

初始化

的{ sda=0; delay1(); scl=1; delay1(); sda=1; delay1(); }

//****************************

************************************* void respond() { uchar i; scl=1; delay1();

while((sda==1)&&(i<250))i++; scl=0; delay1(); }

//**********************************写字节操作函*****************************

void write_byte(uchar date)

25


密码锁控制说明书(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第一部分 教材梳理 选修六

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219