Red de conocimiento informático - Conocimiento de la instalación - Buscando un programa de bloqueo de contraseña simple escrito en lenguaje C para 51 microcontroladores

Buscando un programa de bloqueo de contraseña simple escrito en lenguaje C para 51 microcontroladores

En primer lugar, quiero explicar que esta es mi propia creación, no una simulación. Puede haber errores en el programa. Modifíquelo usted mismo.

# include & ltreg52.h & gt

typedef carácter sin signo uchar

unidad entera typedef sin signo;

sbit key1= p0^ 0;

clave de bits2=p0^1;

clave de bits3=p0^2;

clave de bits4=p0^3;

sbit wela=p2^0; //Bit final del pestillo

#Define SMG P1

sbit led=p3^0; //Luz de bajo brillo

tabla de códigos uchar[]={0x8d, 0x 86}; //* * *Tubo digital Yang P, E

uchar _Mima[]={2, 1, 3 }; >uchar shuru _ mima[3];

uchar index; //Controla el número de dígitos para ingresar la contraseña.

uchar flag _ 3s = 0; //bit de bandera 3s

uchar keydown//determinar variables clave

#definir tiempo 15//tiempo de rebote 15 milisegundos

uchar key1_count, key2_count, key3_count, key4_count

void inicialization()

{

wela = 0;

wela = 0; p>

SMG = 0xff

TMOD = 0x 01;

TH0 =(65536-1000)/256;

TL0 =(65536-1000 )% 256;

ET0 = 1;

EA = 1;

TR0 = 1;

LED = 1;

p>

}

void main()

{

init();

mientras(1)

{

Cambiar (tecla)

{

if(índice & gt; 2) index = 0;

Caso 1:

shuru _ mima[index]= 0;

index++;

Rotura;

Caso dos:

shuru _ mima[index]= 1;

index++;

Rotura;

Caso 3:

shuru_mima[index]= 2;

index++;

Rotura;

Caso 4:

shuru _ mima[index]= 3 ;

index++;

Romper;

}

bandera _ 3s = 0 ;

for(I = 0;i<3;i++)

{

if(shuru _mima[i]= = virgin_mima[I])

{

LED = 0;

wela = 1;

SMG = tabla[0]

if( bandera_3s)

{

bandera_3s = 0;

wela = 0;

}

}

Otros

{

LED = 1;

wela = 1

SMG = tabla[1; ];

if(flag_3s)

{

bandera _ 3s = 0

wela = 0; p>}

}

}

}

}

Temporizador no válido 0() interrupción 1

{

Contar Uchar;

TH0 =(65536-1000)/256;

TL0 =(65536-1000)% 256 ;

si (++ recuento >=600)

{

recuento = 0;

bandera _ 3s = 1;

}

/* * * * * * * * Botón de escaneo de interrupción de 1 ms (incluido el programa antirrebote) * * * * * */

Si (! clave 1&&key1_count! =0)

{

clave 1 _ cuenta-;

if(key1_count==0)

{

pulsación de tecla = 1;

p>

}

}

else if(!clave 1)clave 1 _ cuenta = veces;

//clave 2, clave 3, La clave 4 la escribe usted mismo.

}