Historia
#Definir carácter uchar sin signo
#Definir uint entero sin signo
sbit dula=p2^6;
p>sbit wela=p2^7;
sbit lcden=p3^4;
sbit lcdrs=p3^5;
sbit key1= p3^0;
clave de bits2=p3^1;
clave de bits3=p3^2;
//clave de bits4=p3^3; p>
tecla sbit3=p3^2;
p>
tecla sbit=p3^7;
visualización nula();
void delay ms(uint z);
voidkeyscan();
void init();
void write_com(uchar com);
void write_data(uchar date);
uchar num, num1, num 2, num4
uchar sshi, sge, fshi, fge, mshi, mge
uint temp = 0;
Void init() //Inicialización
{
Dula = 0
wela; = 0;
TMOD = 0x 01 ;
TH0 =(65536-45872)/256;
ésimo 1 =(65536-45872)% 256;
EA = 1;
ET0 = 1;
TR0 = 1;
LC den = 0;
write_com(0x 38);
write_com(0x0c);
write_com(0x 06);
write_com(0x 01); p>
}
p>
void write _ com(uchircom)//escribir comando
{
LCD RS = 0;
P0 = com
Daremus(5);
LC guarida = 1;
Daremus(5);
LC den = 0;
}
Void write_data(uchar date)//Escribir datos.
{
LCD RS = 1;
P0 = Fecha
Daremus(5);
LC den = 1;
Daremus(5);
LC den = 0;
}
Retrasos vacíos (uint z) //Retraso
{
uint i,j;
for(I = z;i>0;i-)
for( j = 110;j & gt0;j-);
}
Pantalla vacía()//Pantalla LCD
{
escribir _ com(0x 80);
escribir _ datos(sshi+48
retraso ms(1); 01);
write_data(sge+48);
retraso ms(1);
write_com(0x 80x 02); p>
escribir _ data(':');
retrasar ms(1);
escribir _ com( 0x 80x 03);
write_data(fshi+48);
retraso ms(1);
write_com(0x 8 0x 04);
write_data(fge+48) );
retraso ms(1);
write_com(0x 80x 05) ;
write_data(':');
retraso ms(1);
write_com(0x 80x 06);
retraso ms(1);
write_com(0x 80x 06); p>
write_data(mshi+48);
retraso ms(1);
write_com(0x 80x 07);
write_data(mge+48);
retraso ms(1);
}
void teclasscan()
{ p>
clave = 0;
if(clave1==0)
{
Daremus(5);
if(clave 1 = = 0);
{
Y (! clave 1);
temp++;
TR0 = 0;
escribir _ com(0x0f);
}
}
Interruptor (temperatura)
{
Caso 1:
if(key2==0)
{
Daremus(5);
si(clave 2 = = 0);
{
Y ( ! clave 2)
num 1++;
si(num 1 = = 60)num 1 = 0;
}
}
if(clave3==0)
{
Daremus(5);
si (clave3==0)
{
Y (! tecla 3)
num 1-;
si(num 1 = =-1)num 1 = 0;
}
}
Rotura;
Caso 2:
{
if(clave2==0)
{
Daremus(5
);
if(key2==0)
{
Y (!key 2);
num 2++;
si(núm 2 = = 60)núm 2 = 0
}
}
si(clave3==0)
{
Daremus(5);
if(key3==0)
{
Y (!tecla 3);
núm 2-;
si(núm 2 = =-1)núm 2 = 0;
}
}
}
Rotura;
Caso 3:
{ if(key2==0)
{
Daremus(5);
si(clave2==0)
{
Y(!clave 2 );
num 3++;
si(num 3 = = 60)num 3 = 0;
} p>
}
if(clave3==0)
{
Daremus(5);
si(clave3==0) p>
{
Y (!clave 3);
num 3-;
si(num 3 = =-1)num 3 = 0;
}
}
}
Rotura;
Caso 4:
{
temp = 0;
TR0 = 1;
write_com(0x 08);
}
}
}
Voidt0 _ time() interrupción 1//reloj 0 interrupción
{
num++; p>
TH0 =(65536-45872)/256;
ésimo 1 =(65536-45872)% 256;
si (cantidad == 20)
{
núm = 0;
núm 1++;
si(núm1= =60)
{
núm 1 = 0;
núm 2++;
}
mshi = núm 1/10;
mge = número 1% 10;
if(num2==60)
{
número 2 = 0
núm 3++;
}
fshi = núm 2/10
fge = núm 2 % 10;
si (núm3==24)
{
núm 3 = 0;
//núm 4++ ;
} p>
sshi = número 3/10;
sge = número 3% 10;
//if(num4)
Display();
}
}
void main()
{
init();
mientras(1)
{
escaneo de teclas();
}
}