Sie sind auf Seite 1von 4

#include <16f877a.

h>
#device adc=8
#fuses HS,NOWDT,PUT,NOBROWNOUT,NOLVP,NOCPD,NOWRT,NOPROTECT
#USE DELAY (CLOCK=8000000)
#use i2c(master,SDA=PIN_C4,SCL=PIN_C3,FORCE_HW)
#use standard_io (d)
#use standard_io (c)
#include <lcd.c>
void main (){
lcd_init();

////inicia el lcd

while (true){
int seg;
int min;
int hor;
int d;
int date;
int m;
int y;
int segundos_m;
int segundos;
int Segundos_Mayor;
int minutos_m;
int minutos_Mayor;
int minutos;
int hora;
int hora_m;
int hora_Mayor;
int hora_ma;
int day;
int dia;
int dia_m;
int dia_Mayor;
int mes;
int mes_m;
int mes_Mayor;
int year;
int year_Mayor;
int year_m;

////////////////
////////////////
///////////////
////////////////
///////////////
//////////////
////////////////
////////////////
////////////////
////////////////
////////////////
////////////////
////////////////
////////////////
////////////////
////// variables
////////////////
////////////////
////////////////
////////////////
////////////////
////////////////
////////////////
////////////////
////////////////
////////////////
////////////////

i2c_start();
i2c_write(0xD0);
i2c_write(0x00);
i2c_start();
i2c_write(0xD1);
seg=i2c_read();
min=i2c_read();
hor=i2c_read();
d=i2c_read();
date=i2c_read();
m=i2c_read();
y=i2c_read(0);
i2c_stop();

///////inicia i2c
///////dirrecion de la rtc
/////////direccion de la informacion
///////i2c reinicie
///////lea del ds1307
///////seg
///////min
/////hor
/////d
/////date
//////m
//////y
//////i2c detener

segundos_m=0b00001111 & seg;


//////se da la ubicacion
Segundos_Mayor=seg/16;
/////se hace una conversion
Segundos=Segundos_Mayor*10+segundos_m;
/////se guarda la variable lista pa

ra imprimir
minutos_m=0b00001111 & min;
////////se da la ubicacion
minutos_Mayor=min/16;
/////se hace una conversion
minutos=minutos_Mayor*10+minutos_m;
/////se guarda la variable lista para
imprimir
hora_m= 0b00001111 & hor;
////se da la ubicacion
hora_Mayor=hor/16;
//////se hace una conversion
hora=hora_Mayor*10+hora_m;
//////se guarda la variable lista para imprimi
r
lcd_gotoxy(1,2);
////lleva el cursor del lcd ala posicion 1,2
printf(lcd_putc,"HORA: %2u:%2u:%2u",hora,minutos,segundos);
////imprime la
s horas en el lcd
day= 0b00000111 & d;
switch(day)
{
Case 1:
lcd_gotoxy(1,1);

///////////////////////////////////

////lleva el cursor del lcd ala posicion 1,2

printf(lcd_putc,"DOM");
////imprime FEB en el lcd
Break;
///////////////////////////////////
Case 2:
lcd_gotoxy(1,1);
////lleva el cursor del lcd ala posicion 1,2
printf(lcd_putc,"LUN");
////imprime FEB en el lcd
Break;
///////////////////////////////////
Case 3:
lcd_gotoxy(1,1);
////lleva el cursor del lcd ala posicion 1,2
printf(lcd_putc,"MAR");
////imprime FEB en el lcd
Break;
///////////////////////////////////
Case 4:
lcd_gotoxy(1,1);
////lleva el cursor del lcd ala posicion 1,2
printf(lcd_putc,"MIE");
////imprime FEB en el lcd
Break;
///////////////////////////////////
Case 5:
lcd_gotoxy(1,1);
////lleva el cursor del lcd ala posicion 1,2
printf(lcd_putc,"JUE");
////imprime FEB en el lcd
Break;
///////////////////////////////////
Case 6:
lcd_gotoxy(1,1);
////lleva el cursor del lcd ala posicion 1,2
printf(lcd_putc,"VIE");
////imprime FEB en el lcd
Break;
///////////////////////////////////
Case 7:
lcd_gotoxy(1,1);
////lleva el cursor del lcd ala posicion 1,2
printf(lcd_putc,"SAB");
Break;
default:
Delay_us(500);
Break;
}
dia_m=0b00001111 & date;

////imprime FEB en el lcd


///////////////////////////////////
//////////retardo de 500 micro segundos
///////////////////////////////////
//////se da la ubicacion

dia_Mayor=date/16;
//////se hace una conversion
dia=dia_Mayor*10+dia_m;
/////se guarda la variable lista para imprimir
lcd_gotoxy(5,1);
////lleva el cursor del lcd ala posicion 8,1
printf(lcd_putc,"/%2u",dia);
///imprime 2 enteros de la variable dia en el
lcd
mes_m=0b00001111 & m;
mes_Mayor= 0b00010000 & y;
mes_Mayor=m/16;
mes=mes_Mayor*10+mes_m;

//////se da la ubicacion
///////////////////////////////////
//////se hace una conversion
////////se guarda la variable lista para imprimir

switch(mes)
{
Case 1:
lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion
printf(lcd_putc,"ENE");
////imprime ENE en el lcd
Break;
///////////////////////////////////
Case 2:
lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion
printf(lcd_putc,"FEB");
////imprime FEB en el lcd
Break;
///////////////////////////////////
Case 3:
lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion
printf(lcd_putc,"MARZ");
////imprime MARZ en el lcd
Break;
///////////////////////////////////
Case 4:
lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion
printf(lcd_putc,"ABR");
////imprime ABR en el lcd
Break;
///////////////////////////////////
Case 5:
lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion
printf(lcd_putc,"MAY");
////imprime MAY en el lcd
Break;
///////////////////////////////////
Case 6:
lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion
printf(lcd_putc,"JUN");
////imprime JUN en el lcd
Break;
///////////////////////////////////
Case 7:
lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion
printf(lcd_putc,"JUL");
////imprime JUL en el lcd
Break;
///////////////////////////////////
Case 8:
lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion
printf(lcd_putc,"AGO");
////imprime AGO en el lcd
Break;
///////////////////////////////////
Case 9:
lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion
printf(lcd_putc,"SEP");
////imprime SEP en el lcd
Break;
///////////////////////////////////
Case 10:
lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion
printf(lcd_putc,"OCT");
////imprime OCT en el lcd
Break;
///////////////////////////////////
Case 11:
lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion
printf(lcd_putc,"NOV");
////imprime NOV en el lcd
Break;
///////////////////////////////////
Case 12:

8,1

8,1

8,1

8,1

8,1

8,1

8,1

8,1

8,1

8,1

8,1

lcd_gotoxy(8,1);
////lleva el cursor del lcd ala posicion 8,1
printf(lcd_putc,"DIC");
////imprime DIC en el lcd
Break;
///////////////////////////////////
default:
Delay_us(500);
///////RETARDO DE 500 MICROSEGUNDOS
Break;
///////////////////////////////////
}

year_m= 0b00001111 & y;


year_Mayor=y/16;
year=year_Mayor*10+year_m;

///////se da la ubicacion
//////se hace una conversion
////se guarda la variable lista para imprimir

lcd_gotoxy(11,1);
////lleva el cursor del lcd ala posicion 11,1
printf(lcd_putc,"/%2u"year);
////imprime 2 enteros de la variable year e
n el lcd

}
}

Das könnte Ihnen auch gefallen