La Red de Conocimientos Pedagógicos - Conocimientos de formación/capacitación - Historia

Historia

# include & ltreg52.h & gt

#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;

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>

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);

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()

{

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;

}

}

if(clave3==0)

{

Daremus(5);

si(clave3==0)

{

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++;

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++ ;

}

sshi = número 3/10;

sge = número 3% 10;

//if(num4)

Display();

}

}

void main()

{

init();

mientras(1)

{

escaneo de teclas();

}

}