跪求!单片机密码锁设计

\u57fa\u4e8e\u5355\u7247\u673a\u7684\u5bc6\u7801\u9501\u8bbe\u8ba1

#include

#define NOP() _nop_() /* \u5b9a\u4e49\u7a7a\u6307\u4ee4 */
#define TRUE 0xff
#define FALSE 0


//6T/12T\u5de5\u4f5c\u6a21\u5f0f
#define Model_6T 0


unsigned char bdata X0,X1,Y0,Key;
unsigned int Tick_10ms=0; //\u65f6\u95f4\u7247\u8ba1\u6570\u5668

sbit K0=Key^0;
sbit K1=Key^1;
sbit K2=Key^2;
sbit K3=Key^3;
sbit K4=Key^4;
sbit K5=Key^5;
sbit K6=Key^6;
sbit K7=Key^7;

bit K0J,K1J,K2J,K3J,K4J,K5J;


#define M_Sum 32
#define D_Sum 185
unsigned char idata M[M_Sum];
unsigned short xdata D[D_Sum];

unsigned int TestDelay1, TestDelay2, TestDelay3;
unsigned int T[6];


//*********************************************************************
#define UCHAR unsigned char
void delay(unsigned int i)
{
UCHAR j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--);
}

/*************************************************************************
* \u51fd\u6570\u540d\u79f0: ConversionStr(void)
* \u529f\u80fd\u63cf\u8ff0: \u5b57\u7b26\u4e32\u8f6c\u6362\u51fd\u6570
* \u8f93 \u5165: *Register, *str
***************************************************************************/
void ConversionStr(unsigned short *Register,unsigned char code *str)
{
unsigned char sL,sH;
while(1)
{
if(*str == '\0') break;
sL=(*str++);
sH=(*str++);
*Register++=sH<<8|sL;
}
}



/*************************************************************
* (T0) 10 ms \u65f6\u949f\u51b2\u65ad
;************************************************************/
void T0zd(void) interrupt 1
{
//TH0=0xC4; //18.432M
//TL0=0x00;

#if Model_6T
TH0=0xB8; //22.1184M
TL0=0x00;
#else
TH0=0xDC; //11.0592M
TL0=0x00;
#endif

Tick_10ms++;
}


/***********************************************************
purpose: \u7cfb\u7edf\u521d\u59cb\u5316
/**********************************************************/
void system_Ini()
{
TMOD|= 0x11;
//TH0=0xC4; //18.432M
//TL0=0x00;

#if Model_6T
TH0=0xB8; //22.1184M
TL0=0x00;
#else
TH0=0xDC; //11.0592M
TL0=0x00;
#endif
IE = 0x8A;
TR0 = 1;

//PWM
//TH1 = 0xfe; //11.0592
//TL1 = 0x33;
//TR1 = 1;
}



//***********************************************************
main()
{ unsigned char Input;
unsigned char i,j;
unsigned char code str1[] = "PLC\u52a8\u4f5c\u7248\u672c V1.05 ";
unsigned char code str2[] = "51\u677f\u7a0b\u5e8f\u7248\u672c V3.28 ";

system_Ini();
InitMotor();

Input=ReHC74165();
X0=Input;

#if Model_6T // \u6676\u632f \u6ce2\u7279\u7387 \u7ad9\u53f7
Modbus_Init(221184, 57600, 1, &M[0], &D[0]);
#else
//Modbus_Init(110592, 19200, 1, &M[0], &D[0]);
Modbus_Init(120000, 19200, 1, &M[0], &D[0]);
#endif
//Modbus_Init(184320, 57600, X1, &M[0], &D[0]);

for(i=0; i<M_Sum; i++) M[i]=0;
for(i=0; i<D_Sum; i++) D[i]=i;
Y0=0;
D[12]=1;
D[24]=0;
D[28]=100;
D[30]=50;
D[100]=0; //PLC-K0~K3\u63a7\u5236\u753b\u9762\u5207\u6362OFF
D[180]=0; //AD\u91c7\u6837\u63a7\u5236
D[181]=0; //\u66f2\u7ebf\u9ed1\u8272\u80cc\u666f
ConversionStr(&D[50],str1);

////////////////////////////////////////////////////////////////////////
while(1)
{
Input=ReHC74165();
X0=Input;
Key=X0;

if(K0&K0J) //\u5355\u6b21\u56fe\u7247\u5207\u6362 D27
{
M[0]=~M[0];
if(++D[27]>5) D[27]=0;
if(D[100]) D[24]=10; //\u63a7\u5236\u89e6\u6478\u5c4f(\u663e\u793a\u753b\u9762\u53f7=10)
}
K0J=~K0;

//\u7531K1~K5\u5fae\u5206\u63a7\u5236, \u4ea4\u66ff\u5207\u6362M1~M5
if(K1&K1J)
{
M[1]=~M[1];
if(D[100]) D[24]=17; //\u63a7\u5236\u89e6\u6478\u5c4f(\u663e\u793a\u753b\u9762\u53f7=17)
}
K1J=~K1;

if(K2&K2J)
{
M[2]=~M[2];
if(D[100])D[24]=29; //\u63a7\u5236\u89e6\u6478\u5c4f(\u663e\u793a\u753b\u9762\u53f7=29)
}
K2J=~K2;

if(K3&K3J)
{
M[3]=~M[3];
if(D[100])D[24]=30; //\u63a7\u5236\u89e6\u6478\u5c4f(\u663e\u793a\u753b\u9762\u53f7=30)
}
K3J=~K3;

if(K4&K4J)M[4]=~M[4]; K4J=~K4;
if(K5&K5J)M[5]=~M[5]; K5J=~K5;


if(M[1]) //\u81ea\u52a8\u56fe\u7247\u5207\u6362 D[27] \u95f4\u969410ms*D[28] \u52a0\u52a0\u4e00\u6b21
{
if(TickOut(&T[0],D[28])) if(++D[27]>5) D[27]=0; //10ms*D[28]
}

//\u663e\u793a\u4e0b\u4f4d\u673a\u7a0b\u5e8f\u7248\u672c
if(K0) ConversionStr(&D[50],str1);
if(K1) ConversionStr(&D[50],str2);


//\u52a8\u6001\u6587\u672c\u753b\u9762\u6570\u636e\u6d4b\u8bd5
if(TickOut(&T[1],D[30])) //D[30]\u4f4d\u4eba\u673a\u8bbe\u5b9a\u7684\u52a8\u4f5c\u901f\u5ea6
{
//\u62a5\u8b66\u4fe1\u606f
if((K0)&&(D[21]<58)) ++D[21];
if((K1)&&(D[21]>0)) --D[21];

//\u52a8\u4f5c\u4fe1\u606f
if((K2)&&(D[22]<9)) ++D[22];
if((K3)&&(D[22]>0)) --D[22];

//\u6e29\u5ea6\u72b6\u6001\u53cd\u8272\u663e\u793a
D[90]++;

//\u5468\u671f\u65f6\u95f4
D[93]++;

//\u6309\u4e0bS5(\u5355ON/\u53ccOFF),\u63a7\u5236\u62a5\u8b66\u81ea\u52a8\u53d8\u5316
if(M[4])
{
if(++D[21]>57) D[21]=0;
}

//\u6309\u4e0bS6(\u5355ON/\u53ccOFF),\u63a7\u5236\u52a8\u4f5c\u81ea\u52a8\u53d8\u5316
if(M[5])
{
if(!M[6]) //\u52a8\u4f5c++
{
if(++D[22]>8)
{
D[22]=8;
M[6]=TRUE;
}
}
else //\u52a8\u4f5c--
{
if(--D[22]==0) M[6]=FALSE;
}
}
}

//\u62e8\u7801\u5f00\u5173\u63a7\u5236[\u8fd0\u884c\u72b6\u6001\u663e\u793a]
D[99]=0;
if(X1&0x10) D[99]=1; //\u62e8\u7801\u5f00\u51731
if(X1&0x20) D[99]=2; //\u62e8\u7801\u5f00\u51732
if(X1&0x40) D[99]=3; //\u62e8\u7801\u5f00\u51733
if(X1&0x80) D[99]=4; //\u62e8\u7801\u5f00\u51734


//\u6570\u7801\u7ba1\u663e\u793a\u503c++
if(TickOut(&TestDelay1,1)) LedNumVal++; //10ms*10

//\u8dd1\u9a6c\u706f\u79fb\u4f4d
if(TickOut(&TestDelay2,50)) //10ms*100
{
LedUnit<<=1;
if(LedUnit==0)LedUnit=1;
}

//\u5982\u679c\u672a\u6267\u884c,\u5b9e\u65f6\u66f2\u7ebf\u6570\u636e\u5de6\u79fb\u52a8
if(D[180]==0)
{
if(TickOut(&T[2],200)) //\u9a8c\u8bc1PLC\u6536\u5230\u7684\u5b8f\u8fd0\u7b97\u7ed3\u679c
{
D[150]=0;
for(i=0; i<14; i++)
{
D[150]+=D[115+i*2];
}
}
}


//\u5b9e\u65f6\u66f2\u7ebf\u6570\u636e\u5de6\u79fb\u52a8, 30\u70b9*2 [D110-169]
if(D[180]>0)
{
if(TickOut(&T[3],100))
{
D[139]=D[0];
for(i=0; i<29; i++) D[110+i]=D[111+i];

D[169]=D[1];
for(i=0; i<29; i++) D[140+i]=D[141+i];
}
}

//AD,DA,LCD\u64cd\u4f5c
if(TickOut(&TestDelay3,10)) //10ms*10
{
if((K4)&&(D[12]<100)) ++D[12];
if((K5)&&(D[12]>0)) --D[12];
if((K6)&&(D[4]<1000)) ++D[4];
if((K7)&&(D[4]>0)) --D[4];
ad_da(); //D[AD=0..3, DA=4]
}


Y0=LedUnit;
if(D[25]==1) //\u8f93\u51faY=B
{
Y0=0;
for(i=0;i<8;i++) Y0+=(M[i]&(1<<i));
}
else
{
if(D[25]==2) Y0=D[29]; //\u8f93\u51faY=\u5b57\u6bcd\u7ec4\u5408D29
}


//\u8bed\u97f3\u62a5\u8b66\u6d4b\u8bd5 S1~S8 \u5bf9\u5e940~7
for(i=0;i<8;i++)
{
if(Key&(1<<i))
{
D[19]=i;
break;
}
}


//=============================================================================
SetMotor(); //D[12]
Modbus_Handle(Tick_10ms);
//========================IIC \u8bfb\u53d6
if(D[13]==66)
{ unsigned char i;
unsigned char pDat[8];

D[13]=0;
IRcvStr(AT24C02, 0 , &pDat[0], 8);
for (i=0; i<4; i++)
{
D[14+i]=pDat[i*2+0]+pDat[i*2+1]*0x100;
}
}

//========================IIC \u4fdd\u5b58
if(D[13]==88)
{ unsigned char i;
unsigned char pDat[8];

D[13]=0;
for (i=0; i<4; i++)
{
pDat[i*2+0]=D[14+i];
pDat[i*2+1]=D[14+i]>>8;
}
ISendStr(AT24C02, 0 , &pDat[0], 8);
}


D[18]=X0;
D[31]=X1;
D[23]=LedNumVal;
D[26]=Key;

if(Key) BEEP=0;
else BEEP=1;

/*
if(X1&0x10) //\u62e8\u7801\u5f00\u51731
{
Y0=X0;
LedNumVal=D[0];
}

if(X1&0x20) //\u62e8\u7801\u5f00\u51732
{
Y0=Key;
LedNumVal=D[1];
}

if(X1&0x40) //\u62e8\u7801\u5f00\u51733
{
Y0=Key;
LedNumVal=D[2];
}

if(X1&0x80) //\u62e8\u7801\u5f00\u51734
{
LedUnit=0;
if(M[0])LedUnit|=1;
if(M[1])LedUnit|=2;
if(M[2])LedUnit|=4;
if(M[3])LedUnit|=8;

Y0=LedUnit;
LedNumVal=D[12];
}
*/

//\u5199\u8f93\u51fa
LedOut[0]=Disp_Tab[LedNumVal%10000/1000];
LedOut[1]=Disp_Tab[LedNumVal%1000/100]&0x7f;
LedOut[2]=Disp_Tab[LedNumVal%100/10];
LedOut[3]=Disp_Tab[LedNumVal%10];

LedOut[4]=Disp_Tab[LedNumVal%10000/1000];
LedOut[5]=Disp_Tab[LedNumVal%1000/100]&0x7f;
LedOut[6]=Disp_Tab[LedNumVal%100/10];
LedOut[7]=Disp_Tab[LedNumVal%10];


for( i=0; i<9; i++)
{
P1 = LedOut[i];
switch(i)
{
case 0:LS138A=0; LS138B=0; LS138C=0; LED8_1=1; break;
case 1:LS138A=1; LS138B=0; LS138C=0; LED8_1=1; break;
case 2:LS138A=0; LS138B=1; LS138C=0; LED8_1=1; break;
case 3:LS138A=1; LS138B=1; LS138C=0; LED8_1=1; break;
case 4:LS138A=0; LS138B=0; LS138C=1; LED8_1=1; break;
case 5:LS138A=1; LS138B=0; LS138C=1; LED8_1=1; break;
case 6:LS138A=0; LS138B=1; LS138C=1; LED8_1=1; break;
case 7:LS138A=1; LS138B=1; LS138C=1; LED8_1=1; break;
case 8:LS138B=1; LS138B=1; LS138C=1; LED8_1=0; break;
}

delay(3);
}
//P1 = 0;

//\u628a75165 \u6309\u952e\u503c\u9001 74595 \u9a71\u52a8\u6570\u7801\u7ba1\u4e0a\u663e\u793a\u6570\u5b57\u3010 0-8 \u3011
j=0;
for( i=0; i<8; i++)
{
if(X0&(1<<i))
{
j=i+1;
break;
}
}
HC595SendData(LED7Code[j]);
}
}

\u597d\u50cf\u5728\u8bba\u575b\u91cc\u89c1\u5230\u8fd9\u4e2a\u7684\u4eff\u771f\u6765\u7740\uff0c\u4f60\u53bbprotues\u8bba\u575b\u91cc\u770b\u770b\uff0c\u641c\u4e00\u4e0b\uff0c\u5e94\u8be5\u80fd\u641c\u5230\u3002

我有两个,均ProteUS仿真调试通过
有偿提供,第一个是帮别的毕业设计做的
第二个没有使用过。

; 密码长度自由可设;
; 密码设定必须加密存储;
; 三次错码输入报警提示,且10分钟内不接受再次输入;
; 具有超级密码功能,长度或格式特殊。

其二:
51单片机,4x4小键盘和1622LCD做一个简易密码锁
悬赏分:0 - 离问题结束还有 4 天 19 小时
就是用8051单片机(或8951)和文字型LCD显示器和薄膜开关(小的数字键盘)做个简易电子密码锁。基本操作:程序执行后LCD显示如下:
Please enter the password
A OR B KEY (初始密码可以设为1111)
按下键A:LCD显示:please enter the old password
然后输入老密码,如果输入正确,
LCD显示:correct,please enter the new password
(如果输入错误 LCD显示:error,please enter again 如果输错三次,则蜂鸣器响 )
设置新的4位数字密码。 成功后,
LCD显示:approve
按下键B:输入4位数字密码并做检查。
当输入4位数字密码正确时,LCD显示:
Password ok! Welcom!

当密码输入错误时,LCD显示:
PASSWORD ERROR!
输入错误超过三次,
蜂鸣器产生声响报警。

我有可以防止多次试探的密码锁,输入错误报警……

  • 鍩轰簬鍗曠墖鏈鏁板瓧瀵嗙爜閿鐨勮绋璁捐
    绛旓細鏍规嵁璁惧畾濂界殑瀵嗙爜锛岄噰鐢ㄤ簩涓寜閿疄鐜板瘑鐮佺殑杈撳叆鍔熻兘锛屽綋瀵嗙爜杈撳叆姝g‘涔嬪悗锛岄攣灏辨墦寮锛屽鏋滆緭鍏ョ殑涓夋鐨勫瘑鐮佷笉姝g‘锛屽氨閿佸畾鎸夐敭3绉掗挓锛屽悓鏃跺彂鐜版姤璀﹀0锛岀洿鍒版病鏈夋寜閿寜涓3绉嶅悗锛屾墠鎵撳紑鎸夐敭閿佸畾鍔熻兘锛涘惁鍒欏湪3绉掗挓鍐呬粛鏈夋寜閿寜涓嬶紝灏遍噸鏂伴攣瀹氭寜閿3绉掓椂闂村苟鎶ヨ銆 鍥4.32.1绯荤粺鏉夸笂纭欢杩炵嚎锛1锛夛紟 鎶娾...
  • 鍩轰簬鍗曠墖鏈鐨勭數瀛瀵嗙爜閿佽璁_姣曚笟璁捐璁烘枃
    绛旓細鏈璁℃槸鍩轰簬AT89C51鍗曠墖鏈涓烘帶鍒舵牳蹇冪殑瀵嗙爜閿佽璁鏂规銆傚湪鏈鍩轰簬鍗曠墖鏈虹殑鐢靛瓙瀵嗙爜閿佽璁′腑锛屽皢閲囩敤AT89C51鍗曠墖鏈轰綔涓烘帶鍒舵牳蹇冿紝閰嶅悎鐩稿簲鐨勭數璺拰杞欢绋嬪簭锛屽疄鐜板瘑鐮佺殑杈撳叆鍜屼慨鏀广佷俊鎭殑鏄剧ず銆侀敭鐩樼殑閿佸畾銆佺郴缁熸姤璀︺佸紑閿佸拰闂攣绛夊姛鑳姐傚湪璁捐涓紝鍒╃敤璇嗗埆瀵嗙爜鏄惁姝g‘鏉ュ紑閿佹垨鎶ヨ锛岄氳繃涓茶瀛樺偍鍣ˋT24C02鏉ュ疄鐜...
  • 璺眰鍗曠墖鏈鐢靛瓙瀵嗙爜閿佽璁
    绛旓細1.璁剧疆6浣瀵嗙爜,閫氳繃閿洏杈撳叆,瀵嗙爜鍙互淇敼,閿佹墦寮鍚庢墠鑳戒慨鏀,杈撳叆鏂板瘑鐮佹椂闇浜屾纭銆2.瀵嗙爜杈撳叆閿欒鏄剧ず鍣ㄤ細鍑虹幇閿欒鎻愮ず,鑻ュ瘑鐮佽緭鍏ラ敊璇鏁拌秴杩3娆,铚傞福鍣ㄦ姤璀﹀苟閿佸畾閿洏銆... 1.璁剧疆6浣嶅瘑鐮,閫氳繃閿洏杈撳叆,瀵嗙爜鍙互淇敼,閿佹墦寮鍚庢墠鑳戒慨鏀,杈撳叆鏂板瘑鐮佹椂闇浜屾纭銆2.瀵嗙爜杈撳叆閿欒鏄剧ず鍣ㄤ細鍑虹幇閿欒鎻愮ず,鑻ュ瘑鐮...
  • 鍩轰簬鍗曠墖鏈鐨勭數瀛瀵嗙爜閿佽璁
    绛旓細褰撹緭鍏ュ瘑鐮佹椂,瀵嗙爜杈撻敊鍚庢寜涓嬮敭S18,鍙噸鏂拌緭鍏ュ叚浣嶅瘑鐮併 褰撹缃瘑鐮佹椂,璁剧疆涓旀兂鏇存敼瀵嗙爜,涔熷彲鎸変笅姝ら敭閲嶆柊璁剧疆銆 4銆佸叧闂瀵嗙爜閿: 鎸変笅S19鍗冲彲灏嗘墦寮鐨勫瘑鐮侀攣鍏抽棴銆傛帹鑽愬垵绾ф紨绀烘楠:杈撳叆鍘熷瀵嗙爜000000---鎸変笅鏇存敼瀵嗙爜鎸夐敭S16---鎸0鍒9璁剧疆瀵嗙爜---鎸塖17纭瀵嗙爜鏇存敼---鎸塖18鍏抽棴瀵嗙爜閿---杈撳叆鏂扮殑瀵...
  • c璇█鍗曠墖鏈哄瘑鐮侀攣鎺у埗绋嬪簭,鐢4涓寜閿緭鍏ョ姸鎬佸垎鍒唬琛4浣嶄簩杩涘埗鏁...
    绛旓細鐢51鍗曠墖鏈,鍋囪p1路0鑷硃1路3鎺4涓紑鍏筹紝P2路0鎺ュ紑閿佹寜閿甋1 While锛坰1锛=0);//绛夊緟鎸夊紑閿佹寜閽 delayms(10);//寤舵椂 While(s1==0);//绛夊緟鎸夐敭鎶捣 mima=0x0F锛哖1;//璇诲彇P1浣4浣 if(mima==12)lock=1;//濡傛灉涓庤瀹氬瘑鐮佺浉绛夊紑閿 else Fmq=1锛//鍚﹀垯锛屾姤璀 ...
  • 鍗曠墖鏈鐢靛瓙瀵嗙爜閿佽璁,閲囩敤4脳4閿洏瀹炵幇瀵嗙爜鐨勮緭鍏ュ姛鑳,褰撳瘑鐮佽緭鍏ユ ...
    绛旓細void fail_an(); //杈撳叆瀵嗙爜 澶辫触鏃 鍝嶅簲 void lockkey(); //閿侀敭鐩樹笁绉 void alarm(); //鍙戝嚭璀︽姤澹 void reset(); //澶嶄綅鍑芥暟 void display_enter(); //鏄剧ず杈撳叆 void main(void){ uchar temp;init();while(1){ if(lockflag){ temp=keyscan(); ...
  • 鍩轰簬鍗曠墖鏈璇剧▼璁捐瀵嗙爜閿
    绛旓細閲囩敤鏁板瓧瀵嗙爜閿鐢佃矾鐨勫ソ澶勫氨鏄璁捐绠鍗曘傜敤浠74LS112鍙孞K瑙﹀彂鍣ㄦ瀯鎴愮殑鏁板瓧閫昏緫鐢佃矾浣滀负瀵嗙爜閿佺殑鏍稿績鎺у埗锛屽叡璁句簡9涓敤鎴疯緭鍏ラ敭锛屽叾涓彧鏈4涓槸鏈夋晥鐨勫瘑鐮佹寜閿紝鍏跺畠鐨勯兘鏄共鎵版寜閿紝鑻ユ寜涓嬪共鎵伴敭锛岄敭鐩樿緭鍏ョ數璺嚜鍔ㄦ竻闆讹紝鍘熷厛杈撳叆鐨勫瘑鐮佹棤鏁堬紝闇瑕侀噸鏂拌緭鍏ワ紱濡傛灉鐢ㄦ埛杈撳叆瀵嗙爜鐨勬椂闂磋秴杩40绉掞紙涓鑸儏鍐典笅锛...
  • 51鍗曠墖鏈鍏充簬瀵嗙爜閿鐨勬瘯涓璁捐,璁烘枃
    绛旓細绋嬪簭璁捐鍐呭 锛1锛夛紟瀵嗙爜鐨勮瀹氾紝鍦ㄦ绋嬪簭涓瘑鐮佹槸鍥哄畾鍦ㄧ▼搴忓瓨鍌ㄥ櫒ROM涓紝鍋囪棰勮鐨勫瘑鐮佷负鈥12345鈥濆叡5浣嶅瘑鐮併傦紙2锛夛紟瀵嗙爜鐨勮緭鍏ラ棶棰橈細 鐢变簬閲囩敤涓や釜鎸夐敭鏉ュ畬鎴愬瘑鐮佺殑杈撳叆锛岄偅涔堝叾涓竴涓寜閿负鍔熻兘閿紝鍙︿竴涓寜閿负鏁板瓧閿傚湪杈撳叆杩囩▼涓紝棣栧厛杈撳叆瀵嗙爜鐨勯暱搴︼紝鎺ョ潃鏍规嵁瀵嗙爜鐨勯暱搴﹁緭鍏ュ瘑鐮佺殑浣嶆暟锛...
  • 姹傚姪:鍝綅鏈夌敤51鍗曠墖鏈鸿璁鐨勭數瀛瀵嗙爜閿鐨勬瘯涓氳璁″晩,鎬ラ渶,灏忓コ瀛愪笉鑳...
    绛旓細鍗曠墖鏈鎺у埗鐨瀵嗙爜閿佽璁銆傚崟鐗囨満p1寮曡剼鐭╅樀鎸夐敭锛屽垎鍒唬琛ㄦ暟瀛楅敭0-9锛岀‘瀹氶敭锛屽彇娑堥敭锛岄噸鏂颁笂妗i敭鍜屼慨鏀瑰瘑鐮侀敭銆傚崟鐗囨満浠巔2鍙h緭鍑3涓俊鍙凤紝鍒嗗埆涓1涓凡寮閿佹寚绀轰俊鍙峰拰瀵嗙爜閿欒淇″彿鎸囩ず锛1涓粍鑹叉姤璀︾伅锛屽垎鍒敤鍙戝厜浜屾瀬绠1-L2鎸囩ず锛岃繕鏈夎渹楦e櫒鎶ヨ銆侺CD1602鐢ㄦ潵鏄剧ず锛屾帀鐢典繚鎶ゆā鍧楋細瀛樺偍鐢佃矾涓昏浣滅敤鏄瓨鍌...
  • 姹傜敤51鍗曠墖鏈鎺у埗鐨勭畝鍗瀵嗙爜閿鍘熺悊
    绛旓細mov r2,#03h ;璁剧疆杈撳叆瀵嗙爜鐨勬鏁 K:mov ie,#81h ;涓柇鏂瑰紡璁剧疆 mov tcon,#01h k1:mov a,p1 clr p1.2 ;鍒ゆ柇寮鍏充綅缃 mov r1,a anl a,#03h jz dmm dec a jz xianshi dec a jz xianshi dec a jz dmm dmm: mov r3,#08h ;璇诲瘑鐮 鍏綅 mov r6,#80h ;闂姩浣嶆帶鍒 m...
  • 扩展阅读:4位密码挂锁开锁大全 ... 三滚轮密码锁开锁 ... 开锁演示图 ... 自制简易小型密码箱 ... 密码一键破解器 ... 6位万能解锁密码 ... 4位密码盒找回密码 ... 四位密码大全 ... 手机屏幕解锁万能解除 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网