#include <18F4550.h> // Pic a utilizar
#device *=16 // Dispositivo de 16 bit´s
#device adc=10 // ADC a 10 Bits
#fuses PLL1,CPUDIV1,USBDIV,XTPLL,NOFCMEN,NOIESO,PUT,NOBROWNOUT,VREGEN,NOWDT,NOPBADEN,MCLR,NOSTVREN,NOLVP,NODEBUG,NOPROTECT,NOSTVREN,NOCPB,NOWRT
#use delay(clock=48000000) // Frecuancia del CPU.
#byte porta = 0xF80 // Dirección del puerto A para la familia 18Fxx5x.
#byte portb = 0xF81 // Dirección del puerto B para la familia 18Fxx5x.
#byte portc = 0xf82
#byte portd = 0xf83
#byte porte = 0xf84
#byte use_portd_lcd=8 // Define el puerto_d para la lcd.
#include <lcd4x20.c> // Librería para el manejo del LCD
int t=0,s=0;
char b1[8] = {4,21,14,4,10,10,10};
char b2[8] = {4,14,21,4,10,10,10};
char b3[8] = {21,14,4,4,10,10,10};
char b4[8] = {21,14,4,4,10,17,0};
char b5[8] = {6,6,4,14,21,4,10,10};
char b6[8] = {12,12,4,14,21,4,10,10};
char b7[8] = {6,6,4,14,21,4,26,2};
char b8[8] = {6,6,4,14,20,6,10,8};
char b9[8] = {6,6,4,30,5,4,10,10};
void animacion_caminar(void)
{
for (t=6;t<=6;t++)
{
lcd_send_byte(0,0x40); for (s=0;s<8;s++) {lcd_send_byte(1,b5[s]);} lcd_gotoxy(t,3); lcd_send_byte(1,0); delay_ms(500); lcd_gotoxy(t,3); lcd_putc(" ");
lcd_send_byte(0,0x48); for (s=0;s<8;s++) {lcd_send_byte(1,b6[s]);} lcd_gotoxy(t,3); lcd_send_byte(1,1); delay_ms(500); lcd_gotoxy(t,3); lcd_putc(" ");
}
for (t=6;t<=16;t++)
{
lcd_send_byte(0,0x50); for (s=0;s<8;s++) {lcd_send_byte(1,b7[s]);} lcd_gotoxy(t,3); lcd_send_byte(1,2); delay_ms(50); lcd_gotoxy(t,3); lcd_putc(" ");
lcd_send_byte(0,0x58); for (s=0;s<8;s++) {lcd_send_byte(1,b8[s]);} lcd_gotoxy(t,3); lcd_send_byte(1,3); delay_ms(50); lcd_gotoxy(t,3); lcd_putc(" ");
lcd_send_byte(0,0x60); for (s=0;s<8;s++) {lcd_send_byte(1,b9[s]);} lcd_gotoxy(t,3); lcd_send_byte(1,4); delay_ms(50); lcd_gotoxy(t,3); lcd_putc(" ");
if(t==6) {lcd_gotoxy(t,2); lcd_putc("T");}
if(t==7) {lcd_gotoxy(t,2); lcd_putc("O");}
if(t==8) {lcd_gotoxy(t,2); lcd_putc("A");}
if(t==9) {lcd_gotoxy(t,2); lcd_putc("T");}
if(t==10) {lcd_gotoxy(t,2); lcd_putc("S");}
if(t==11) {lcd_gotoxy(t,2); lcd_putc("M");}
if(t==12) {lcd_gotoxy(t,2); lcd_putc("A");}
if(t==13) {lcd_gotoxy(t,2); lcd_putc("S");}
if(t==14) {lcd_gotoxy(t,2); lcd_putc("T");}
if(t==15) {lcd_gotoxy(t,2); lcd_putc("E");}
if(t==16) {lcd_gotoxy(t,2); lcd_putc("R");}
}
for (t=17;t<=17;t++)
{
lcd_send_byte(0,0x40); for (s=0;s<8;s++) {lcd_send_byte(1,b5[s]);} lcd_gotoxy(t,3); lcd_send_byte(1,0); delay_ms(500); lcd_gotoxy(t,3); printf(lcd_putc," ");
lcd_send_byte(0,0x48); for (s=0;s<8;s++) {lcd_send_byte(1,b6[s]);} lcd_gotoxy(t,3); lcd_send_byte(1,1); delay_ms(500); lcd_gotoxy(t,3); printf(lcd_putc," ");
lcd_send_byte(0,0x40); for (s=0;s<8;s++) {lcd_send_byte(1,b5[s]);} lcd_gotoxy(t,3); lcd_send_byte(1,0); delay_ms(500); lcd_gotoxy(t,3); printf(lcd_putc," ");
lcd_send_byte(0,0x48); for (s=0;s<8;s++) {lcd_send_byte(1,b6[s]);} lcd_gotoxy(t,3); lcd_send_byte(1,1); delay_ms(500); lcd_gotoxy(t,3); printf(lcd_putc," ");
}
for (t=0;t<3;t++)
{
lcd_send_byte(0,0x40); for (s=0;s<8;s++) {lcd_send_byte(1,b1[s]);} lcd_gotoxy(17,3); lcd_send_byte(1,0); delay_ms(200);
lcd_send_byte(0,0x48); for (s=0;s<8;s++) {lcd_send_byte(1,b2[s]);} lcd_gotoxy(17,3); lcd_send_byte(1,1); delay_ms(100);
lcd_send_byte(0,0x50); for (s=0;s<8;s++) {lcd_send_byte(1,b3[s]);} lcd_gotoxy(17,3); lcd_send_byte(1,2); delay_ms(200);
lcd_send_byte(0,0x58); for (s=0;s<8;s++) {lcd_send_byte(1,b4[s]);} lcd_gotoxy(17,3); lcd_send_byte(1,3); delay_ms(100);
if(t==4) {delay_ms(500); printf(lcd_putc,"\f");}
}
}
void main(void)
{
lcd_init();
animacion_caminar();
while(true)
{
}
}