資源簡介
此資源包含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語言寫的最壞適應算法
評論
共有 條評論