Red de conocimiento informático - Material del sitio web - Cómo ajustar el tiempo de retardo del microcontrolador usando botones

Cómo ajustar el tiempo de retardo del microcontrolador usando botones

#includelt;reg51.hgt;

#define uchar unsigned char

#define uint unsigned int

uchar clave1, clave2, key3; //Definir los códigos de las tres claves

uchar a, i, temp, temp1; //Definir las variables utilizadas en la función principal

uint x, y, z ; //Definición Tres variables utilizadas en la función de retraso

void delay1(uint); //Definir la función de retraso 1

void delay2(uint); intervalos grandes de luces encendidas Función

void keycan(); //Definir la función de escaneo del teclado

void main()

{ TMOD=0x01; Para garantizar que el teclado se escanee a tiempo. Cambios, tengo que habilitar la interrupción

TH0=(65536-500)/256; //La interrupción se habilita una vez cada 0,5 ms

TL0=(65536-500)256;

EA=1;

ET0=1;

a=0xfe;

> i=0;

temp1=1 ;

mientras(1)

{

P1=a;

temp=alt;lt;1;

a=gt;

a=temp|a;

retraso1(100);

p>

if(i==8)

{

i=0; p>

retraso2(temp1);

}

}

}

vacío retraso1(uint z)

{

for(x=z ;xgt;0;x--)

for(y=110;ygt;0;y--);

}

retraso nulo2(uint temp1)

{

for(x=temp1;xgt;0;x--)

for(y=1100;ygt;0;y- -);

}

void keycan()

{

if(key1==0)

{

retardo1(10); //rebote del teclado

if(key1==0)

{

temp1= 10;

while(!key1); //Espera a que se suelte la tecla

}

}

if(key2==0)

{

delay1(10); //Eliminación de la fluctuación del teclado

if(key1==0)

{

temp1=20;

while(!key2); //Espera la liberación de la clave

}

}

if (clave3==0)

{

retraso1(10);

//Rebote del teclado

if(key3==0)

{

temp1=30;

while(!key3) ; //Esperar a que se libere la tecla

}

}

}

void T0_time() interrupción 1

{

TH0=(65536-500)/256; //Reinstalar valor inicial

TL0=(65536-500)256;

keyscan() ;

}

Mi proteus está roto y no se puede simular. Lo estoy escribiendo a mano. Si tienes alguna pregunta, dímelo. Mi QQ378773957 usa un microcontrolador ATMEL51. >

No he definido los bits para los puertos IO donde se encuentran los tres botones. Deberías poder definirlos al principio.