91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

基于STC89C52制作的密碼鎖 1.選取STC89C52單片機,單片機內部自帶EEPROM,支持掉電保存密碼功能,不需要外置AT24C01保存密碼。 2.為簡化機械裝置,采取5V繼電器模擬開鎖過程。輸入的正確時,繼電器吸合2-3秒,開鎖指示燈亮2-3秒,模擬開鎖。 3.自動報警部分選用蜂鳴器,當三次輸入密碼不同時就會發生報警信息。 4.顯示屏采用LCD1602。 5.6位密碼,密碼可重置,重置密碼時,先輸入原始密碼,正確后輸入新密碼,再交輸入新密碼,兩次輸入的密碼一致辭時,密碼修改成功。開鎖時,密碼通過鍵盤輸入,若密碼正確,則將鎖打開,若密碼不正確時,無法開鎖,密碼輸入錯誤三次時,蜂鳴器報 警并且鎖定鍵盤,10分鐘。 6.4X4矩陣鍵盤輸入,鍵盤掃描程序判定按鍵是否按下。 7.利用keil編程控制高低電平輸出來控制各種功能的實現。

資源截圖

代碼片段和文件信息

#include
#define?uint?unsigned?int
#define?uchar?unsigned?char
void?key_scan();
uchar?count0count1count3numn=0tempajcount4;
uchar?mima[8];????????????????????????????????????????????????????????//初始密碼存儲區
uchar?tab_key[50];????????????????????????????????????????????????//輸入密碼存儲區
uchar?code?table[]={
0x3f0x060x5b0x4f
0x660x6d0x7d0x07
0x7f0x6f0x770x7c
0x390x5e0x790x71};
bit?enterflag;????????????????????????????????????????????????????????//確認鍵按下與否的標志
bit?mimaflag;????????????????????????????????????????????????????????//密碼正確與否的標志
bit?xiugaiflag;????????????????????????????????????????????????????????//修改密碼標志????????
bit?enter1flag;????????????????????????????????????????????????//修改密碼確認鍵標志????????
sbit?red=P3^7;
sbit?bell=P3^6;
sbit?rs=P2^0;
sbit?rw=P2^1;
sbit?lcden=P2^2;
sbit?scl=P3^4;
sbit?sda=P3^5;
uchar?code?table1[]=“Input?the?passcode“;
uchar?code?table2[]=“Code:------“;
uchar?code?table3[]=“*“;
uchar?code?table4[]=“Right(^_^)“;
uchar?code?table5[]=“First?error!!!“;
uchar?code?table6[]=“Second?error!!!“;
uchar?code?table7[]=“Third?error!!!“;
uchar?code?table8[]=“Use?tomorrow(^_^)“;
uchar?code?table9[]=“Cofirm?passcode“;
uchar?code?table10[]=“Code:------“;
uchar?code?table11[]=“Code?is?new“;
//******************************鍵盤消抖函數*******************************
void?delay1()
{?;;?}
void?delay2(uchar?x)
{
????????uchar?ab;
????????for(a=x;a>0;a--)
?????????for(b=100;b>0;b--);
}
????????
void?delay(uint?z)
{
????????uint?xy;
????????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()???//停止
{
????????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)
{
????????uchar?itemp;
????????temp=date;
????????for(i=0;i<8;i++)
????????{
????????????????temp=temp<<1;????????????????????????//保持最高位,左移到進位CY
????????????????scl=0;
????????????delay1();
????????????????sda=CY;
????????????????delay1();
????????????????scl=1;
????????????????delay1();
????????}
????????scl=0;
????????delay1();
????????sda=1;//總線釋放
????????delay1();
}
//*******************************讀字節操作函數*****************************
uchar?read_byte()
{
????????uchar?ik;
????????scl=0;
????????delay1();
????????sda=1;
????????delay1();
????????for(i=0;i<8;i++)
????????{
????????????????scl=1;
????????????????delay1();????????
????????????????k=(k<<1)|sda;????//或運算,放到最低位
?????????

評論

共有 條評論