3)、掉电存储服务程序——当比较密码的时候,需要读取AT24C02程序,将存储于芯片内的数据读到RAM中,然后和输入密码相比较,当修改密码时需要把密码保存于24C02中。
4)、显示子程序——包括关闭状态显示子程序(dis-A)、开锁状态显示子程序(DIS-B)、密码输入及修改状态显示子程序(DIS-C)、密码输入错误报警状态子程序(DIS-D).
程序流程图
21
四、程序设计
#include
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
号
数
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库密码锁控制说明书(5)在线全文阅读。
相关推荐: