资源简介
此资源包含c语言程序,keilc专用软件编写,有pretous仿真原理图。可直接下载到单片机中使用,无须调试。其中24c02的使用是一个很好的例子
对与毕业设计的同学是一个好的选择。
代码片段和文件信息
/********************************************************************************
电子密码锁主函数,在不断完善中......
*******************************************************************************/
#include
#include<12864.h>
#include
#include<24C01.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED1=P1^5;
sbit LED2=P1^6;
sbit INIT=P2^2;
sbit SOUND=P1^7;
uchar idata key[6]={000000};
uchar idata iic[6]={012345};
void press(uchar *s)
{
uchar dat;
//**************************************************
P3=0xf0; //保存第一位密码
while(P3==0xf0);
dat=key_scan();
if((dat!=0x0a)&&(dat!=0x0b))
{ *s=dat;
Left();
star_12864(star0x0516);
}
s++;
//**************************************************
P3=0xf0; //保存第二位密码
while(P3==0xf0);
dat=key_scan();
if((dat!=0x0a)&&(dat!=0x0b))
{ *s=dat;
Left();
star_12864(star0x0524);
}
s++;
//**************************************************
P3=0xf0; //保存第三位密码
while(P3==0xf0);
dat=key_scan();
if((dat!=0x0a)&&(dat!=0x0b))
{ *s=dat;
Left();
star_12864(star0x0532);
}
s++;
//**************************************************
P3=0xf0; //保存第四位密码
while(P3==0xf0);
dat=key_scan();
if((dat!=0x0a)&&(dat!=0x0b))
{ *s=dat;
Left();
star_12864(star0x0540);
}
s++;
//**************************************************
P3=0xf0; //保存第五位密码
while(P3==0xf0);
dat=key_scan();
if((dat!=0x0a)&&(dat!=0x0b))
{ *s=dat;
Left();
star_12864(star0x0548);
}
s++;
//**************************************************
P3=0xf0; //保存第六位密码
while(P3==0xf0);
dat=key_scan();
if((dat!=0x0a)&&(dat!=0x0b))
{ *s=dat;
Left();
star_12864(star0x0556);
}
//**************************************************
do{P3=0xf0; //键入Enter键盘继续执行下面语句,否则等待
while(P3==0xf0);
dat=key_scan();
}while(dat!=0x0b);
}
void Delay10ms(void) //延时10ms
{
uint ijk;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}
void main()
{
uchar dat;
uchar i=0j=0k;
uchar x;
LED1=1;
LED2=1;
SOUND=0;
INIT=1;
if(INIT==0) //密码初始化
{
x=SendB(iic0x506);
Delay10ms();
} //首先从IIC器件中读出密码以供下面输入密码进行比较
x=ReadB(iic0x506);
Init_12864();
for(i=0;i<150;i++){Delay10ms();}
//**********************************若密码不正确,循环执行do{}while()********************************************
do{
LED1=1;
System(); //显示:“请输入密码“字幕
press(key);
if((key[0]==iic[0])&&(key[1]==iic[1])&&(key[2]==iic[2])&&(key[3]==iic[3])&&(key[4]==iic[4])&&(key
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2775 2008-08-14 00:12 24C01.h
文件 14412 2008-08-14 03:58 12864.h
文件 1090 2008-08-13 16:59 keypad.h
文件 190008 2008-08-14 04:07 Last Loaded 电子密码锁.DBK
文件 6376 2005-03-22 15:22 STARTUP.A51
文件 14049 2008-08-14 01:46 STARTUP.LST
文件 749 2008-08-14 01:46 STARTUP.OBJ
文件 36713 2008-08-14 22:21 电子密码锁
文件 40 2008-08-14 22:20 电子密码锁.__i
文件 4670 2008-08-14 22:20 电子密码锁.c
文件 190008 2008-08-14 22:26 电子密码锁.DSN
文件 12078 2008-08-14 22:21 电子密码锁.hex
文件 53 2008-08-14 22:21 电子密码锁.lnp
文件 11023 2008-08-14 22:20 电子密码锁.LST
文件 41636 2008-08-14 22:21 电子密码锁.M51
文件 43245 2008-08-14 22:20 电子密码锁.OBJ
文件 1958 2008-08-14 22:21 电子密码锁.Opt
文件 561 2008-08-14 22:21 电子密码锁.plg
文件 2404 2008-08-14 22:26 电子密码锁.PWI
文件 2219 2008-08-12 14:00 电子密码锁.Uv2
....... 1956 2008-08-14 14:55 电子密码锁_Opt.Bak
....... 2215 2008-08-12 01:25 电子密码锁_Uv2.Bak
----------- --------- ---------- ----- ----
580238 22
- 上一篇:51单片机产生PWM的程序和怎样控制直流电机
- 下一篇:用C语言写的最坏适应算法
评论
共有 条评论