欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
電子密碼鎖Proteus仿真+單片機代碼
[打印本頁]
作者:
單小白。
時間:
2019-4-28 11:41
標題:
電子密碼鎖Proteus仿真+單片機代碼
電子密碼鎖仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(16.02 KB, 下載次數: 23)
下載附件
2019-4-29 16:37 上傳
單片機源程序如下:
#include"lcd.h"
//--定義使用的IO口--//
#define KEY P3
sbit BEEP=P2^6; //接蜂鳴器
unsigned char mima[6]={1,2,3,4,5,6};
unsigned char mima3[6]={6,5,4,3,2,1};
unsigned char mima4[6]={7,7,7,7,7,7};
unsigned char mima2[6];
unsigned char state=0;
unsigned char cuowu=0;
unsigned char KeyValue;
unsigned char KeyState; //記錄按鍵的狀態,0沒有,1有
void TimerConfiguration();
unsigned char Time=0;
unsigned char sec=60;
void KeyDown(); //檢測按鍵函數
void Delay10ms(unsigned int c) //誤差 0us
{
unsigned char a,b;
for(;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
void BZ()
{
BEEP= 0;
Delay10ms(100);
BEEP= 1;
}
void BZ2()
{
BEEP= 0;
Delay10ms(30);
BEEP= 1;
Delay10ms(30);
BEEP= 0;
Delay10ms(30);
BEEP= 1;
Delay10ms(30);
BEEP= 0;
Delay10ms(30);
BEEP= 1;
}
void main(void)
{
unsigned char i=0;
unsigned char j=0;
KeyState=0;
TimerConfiguration();
LcdInit();
while(1)
{
if(state==0)
{
LcdWriteCom(0x01);
LCDWrite_String(0, 0, 16, "Shu ru mi ma:");
LCDWrite_String(4, 1, 6, " ");
while(state==0)
{
KeyDown();
if((KeyState==1))
{
if((KeyValue<10)&&(i<6))
{
LcdWriteCom(0xc4+i);
LcdWriteData('*');
mima2[i]=KeyValue;
i++;
}
if((i==6)&&(KeyValue==15))
{
if(
((mima2[0]==mima[0])
&&(mima2[1]==mima[1])
&&(mima2[2]==mima[2])
&&(mima2[3]==mima[3])
&&(mima2[4]==mima[4])
&&(mima2[5]==mima[5]))
||((mima2[0]==mima3[0])
&&(mima2[1]==mima3[1])
&&(mima2[2]==mima3[2])
&&(mima2[3]==mima3[3])
&&(mima2[4]==mima3[4])
&&(mima2[5]==mima3[5]))
||((mima2[0]==mima4[0])
&&(mima2[1]==mima4[1])
&&(mima2[2]==mima4[2])
&&(mima2[3]==mima4[3])
&&(mima2[4]==mima4[4])
&&(mima2[5]==mima4[5]))
)
{
LCDWrite_String(4, 1, 6, " Kai!");
BZ();
LCDWrite_String(4, 1, 6, " ");
}
else
{
LCDWrite_String(4, 1, 6, "Cuowu!");
BZ2();
cuowu++;
if(cuowu>=3)
{
state=1;
cuowu=0;
ET0 = 1;TR0 = 1; //打開定時器0中斷//啟動定時器0
}
LCDWrite_String(4, 1, 6, " ");
}
for(i=0;i<6;i++)
{
mima2[i]=0;
}
i=0;
}
if(KeyValue==14)
{
LCDWrite_String(4, 1, 6, " ");
for(i=0;i<6;i++)
{
mima2[i]=0;
}
i=0;
}
if(KeyValue==13) //qingling
{
LCDWrite_String(4, 1, 6, " ");
for(i=0;i<6;i++)
{
mima2[i]=0;
}
i=0;
}
if(KeyValue==12) //shemoima
{
state=2;
}
KeyState=0;
}
}
}
if(state==1)
{
LcdWriteCom(0x01);
LCDWrite_String(0, 0, 16, "Please wait!... ");
while(state==1)
{
BZ2();
LcdWriteCom(0xc4);
LcdWriteData('0'+sec/10%10);
LcdWriteData('0'+sec%10);
}
}
if(state==3)
{
LcdWriteCom(0x01);
LCDWrite_String(3, 0, 16, "WARRING... ");
while(state==3);
}
if(state==2)
{
LcdWriteCom(0x01);
LCDWrite_String(0, 0, 16, "Jiu mima :");
while(state==2)
{
KeyDown();
if((KeyState==1))
{
if((KeyValue<10)&&(i<6))
{
LcdWriteCom(0xc4+i);
LcdWriteData('*');
mima2[i]=KeyValue;
i++;
}
if(KeyValue==14)
{
if(i>0)
{
i--;
LcdWriteCom(0xc4+i);
LcdWriteData(' ');
}
}
if(KeyValue==13)//qingling
{
LCDWrite_String(4, 1, 6, " ");
for(i=0;i<6;i++)
{
mima2[i]=0;
}
i=0;
}
if((i==6)&&(KeyValue==15)) //queding
{
if(
((mima2[0]==mima[0])
&&(mima2[1]==mima[1])
&&(mima2[2]==mima[2])
&&(mima2[3]==mima[3])
&&(mima2[4]==mima[4])
&&(mima2[5]==mima[5]))
||((mima2[0]==mima3[0])
&&(mima2[1]==mima3[1])
&&(mima2[2]==mima3[2])
&&(mima2[3]==mima3[3])
&&(mima2[4]==mima3[4])
&&(mima2[5]==mima3[5]))
||((mima2[0]==mima4[0])
&&(mima2[1]==mima4[1])
&&(mima2[2]==mima4[2])
&&(mima2[3]==mima4[3])
&&(mima2[4]==mima4[4])
&&(mima2[5]==mima4[5]))
)
{
state=3;
}
else
{
LCDWrite_String(4, 1, 6, "Cuowu!");
BZ2();
state=0;
LCDWrite_String(4, 1, 6, " ");
}
for(i=0;i<6;i++)
{
mima2[i]=0;
}
i=0;
}
KeyState=0;
}
}
}
if(state==3)
{
LcdWriteCom(0x01);
LCDWrite_String(0, 0, 16, "Xin mi ma:");
while(state==3)
{
KeyDown();
if((KeyState==1))
{
if((KeyValue<10)&&(i<6))
{
LcdWriteCom(0xc4+i);
LcdWriteData('*');
mima2[i]=KeyValue;
i++;
}
if(KeyValue==14)
{
if(i>0)
{
i--;
LcdWriteCom(0xc4+i);
LcdWriteData(' ');
}
}
if(KeyValue==13) //清零
{
LCDWrite_String(4, 1, 6, " ");
for(i=0;i<6;i++)
{
mima2[i]=0;
}
i=0;
}
if((i==6)&&(KeyValue==15))
{
for(i=0;i<6;i++)
{
mima[i]=mima2[i];
}
i=0;
state=0;
for(i=0;i<6;i++)
{
mima2[i]=0;
}
i=0;
}
KeyState=0;
}
}
}
}
}
void KeyDown(void)
{
unsigned int a=0;
KEY=0x0f;
if(KEY!=0x0f)
{
Delay10ms(1);
a++;
a=0;
if(KEY!=0x0f)
{
KeyState=1;//有按鍵按下
//測試列
KEY=0X0F;
switch(KEY)
{
case(0X07): KeyValue=0;break;
case(0X0b): KeyValue=1;break;
case(0X0d): KeyValue=2;break;
case(0X0e): KeyValue=3;break;
}
//測試行
KEY=0XF0;
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
電子密碼鎖.zip
(3.13 MB, 下載次數: 82)
2019-4-28 11:41 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
Lynn123456
時間:
2019-5-1 19:52
請問一下,還需要修改密碼方式為串口通信的話,要怎么修改呢
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1