Vous êtes sur la page 1sur 4

#include <16F877A.

h> // inicia el pic 16f877a #use delay(clock=4000000) // un reloj interno de 4mhz #fuses HS,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT // usa fusibles #include <lcd.c> // incluye la ibreria lcd #use i2c(master, sda=pin_c4, scl=pin_c3, fast) //recibe el envio i2c pines c4 y c3 void main(){ int segundos=0;//////////la variable del segundo int minutos=0;//variable de los minutos int horas=0;//variable de las horas int dia=0;//variable del dia de la semana int mes=0;//variable del dia int ano=0;//variable del mes int year=0;///////////variable del ao int segundos_m;//se colocan la direccion int segundos_Mayor;//se hace la ecuacion int minutos_m;//se colocan la direccion int minutos_Mayor;//se hace la ecuacion int horas_m;//se colocan la direccion int horas_Mayor;//se hace la ecuacion int dia_m;//se colocan la direccion int dia_Mayor;//se hace la ecuacion int mes_m;//se colocan la direccion int mes_Mayor;//se hace la ecuacion int ano_m;//se colocan la direccion int ano_Mayor;//se hace la ecuacion int year_m;//se colocan la direccion int year_Mayor;//se hace la ecuacion lcd_init(); //inicia la lcd WHILE (TRUE){ i2c_start(); //recibe el i2c i2c_write(0xd0); //direccion del ds1307 i2c_write(0x00); //direccion de la informacion i2c_start();//i2c reinicie i2c_write(0xd1);//lea del ds1307 segundos=i2c_read(); //segundos minutos=i2c_read();//minutos horas=i2c_read();//horas dia=i2c_read();//dia de la semana mes=i2c_read();//dia ano=i2c_read();//mes year=i2c_read(0);// y por ultimo el ao i2c_stop();//i2c detener segundos_m=0b00001111 & segundos; //se da la ubicacion segundos_Mayor=segundos/16; //se una conversion segundos=segundos_Mayor*10+segundos_m; //se hace la conversion y se guarda la v ariable lista para imprimir minutos_m=0b00001111 & minutos;//se da la ubicacion minutos_Mayor=minutos/16;//se una conversion minutos=minutos_Mayor*10+minutos_m; //se hace la conversion y se guarda la vari able lista para imprimir horas_m=0b00001111 & horas;//se da la ubicacion horas_Mayor=horas/16; horas=horas_Mayor*10+horas_m; //se hace la conversion y se guarda la variable l

ista para imprimir mes_m=0b00001111 & mes;//dia mes_Mayor=mes/16; mes=mes_Mayor*10+mes_m; //se hace la conversion y se guarda la variable lista p ara imprimir ano_m=0b00001111 & ano;//mes ano_Mayor=ano/16; ano=ano_Mayor*10+ano_m; //se hace la conversion y se guarda la variable lista p ara imprimir if(ano==1){ //se elaboran los casos para imprimir cada mes lcd_gotoxy(8,2); printf(lcd_putc,"ENE"); } else if(ano==2){ lcd_gotoxy(8,2); printf(lcd_putc,"FEB"); } else if(ano==3){ lcd_gotoxy(8,2); printf(lcd_putc,"MAR"); } else if(ano==4){ lcd_gotoxy(8,2); printf(lcd_putc,"ABR"); } else if(ano==5){ lcd_gotoxy(8,2); printf(lcd_putc,"MAY"); } else if(ano==6){ lcd_gotoxy(8,2); printf(lcd_putc,"JUN"); } else if(ano==7){ lcd_gotoxy(8,2); printf(lcd_putc,"JUL"); } else if(ano==8){ lcd_gotoxy(8,2); printf(lcd_putc,"AGO"); } else if(ano==9){ lcd_gotoxy(8,2); printf(lcd_putc,"SEP"); } else if(ano==10){ lcd_gotoxy(8,2); printf(lcd_putc,"OCT");

} else if(ano==11){ lcd_gotoxy(8,2); printf(lcd_putc,"NOV"); } else if(ano==12){ lcd_gotoxy(8,2); printf(lcd_putc,"DIC"); } dia_m=0b00001111 & dia;//lugar de la semana dia_Mayor=dia/16; dia=dia_Mayor*10+dia_m; //se hace la conversion y se guarda la variable lista p ara imprimir if (dia==1){ //se elaboran los if para imprimir cada dia de la semana lcd_gotoxy(1,2); printf(lcd_putc,"DOM"); } else if (dia==2){ lcd_gotoxy(1,2); printf(lcd_putc,"LUN"); } else if (dia==3){ lcd_gotoxy(1,2); printf(lcd_putc,"MAR"); } else if (dia==4){ lcd_gotoxy(1,2); printf(lcd_putc,"MIE"); } else if (dia==5){ lcd_gotoxy(1,2); printf(lcd_putc,"JUE"); } else if (dia==6){ lcd_gotoxy(1,2); printf(lcd_putc,"VIE"); } else if (dia==7){ lcd_gotoxy(1,2); printf(lcd_putc,"SAB"); } year_m=0b00001111 & year;//ao year_Mayor=year/16; year=year_Mayor*10+year_m; //se hace la conversion y se guarda la variable list a para imprimir

lcd_gotoxy(1,1);

printf(lcd_putc,"%2u :%2u :%2u "horas,minutos,segundos);// imprime las horas minutos y segundos lcd_gotoxy(5,2);//va al siguiente renglos printf(lcd_putc,"%u/"mes); //imprime el dia lcd_gotoxy(11,2);//se mueve 6 espacios printf(lcd_putc,"/20%u "year);//imprime el ao }}/////fin del programa

Vous aimerez peut-être aussi