- Código:
#include <clase10.h>
#include <KBD.C>
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
#include <string.h>
#include <stdlib.h>
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c>
#include <string.h>
#include <stdlib.h>
int tecla, i,dato[4],dir[4];
char a[1],b[1],c[1];
char a[1],b[1],c[1];
void main()
{
kbd_init();
lcd_init();
lcd_gotoxy(1,1);
lcd_putc("Susana Lopez");
lcd_gotoxy(1,2);
lcd_putc("A="); //numero de registro
lcd_gotoxy(8,2);
lcd_putc("D="); //dato que esta en el registro
tecla='\0';
//prueba
//dir[3]=125;
//dato[3]=0x18;
while(TRUE)
{
while(tecla=='\0')
tecla=kbd_getc();
if (tecla!='#' && tecla!='*')
{for (i=0;i<=2;i++)
{
while(tecla=='\0')
tecla=kbd_getc();
lcd_gotoxy(i+3,2);
lcd_putc(tecla);
dir[i]=tecla-48; //para que el vector sea un numero de mas de 1 cifra
tecla='\0';
}
sprintf(a,"%d",dir[0]);
sprintf(b,"%d",dir[1]);
sprintf(c,"%d",dir[2]);
strcat(a,b);
dir[3]=atoi(a);
/*
lcd_gotoxy(14,2);
printf(lcd_putc,"%d",dir[3]);*/
while(tecla=='\0')
tecla=kbd_getc();
if (tecla!='#' && tecla!='*')
{
for (i=0;i<=2;i++)
{
while(tecla=='\0')
tecla=kbd_getc();
lcd_gotoxy(i+10,2);
lcd_putc(tecla);
dato[i]=tecla-48;
tecla='\0';
}
}}
sprintf(a,"%d",dato[0]);
sprintf(b,"%d",dato[1]);
sprintf(c,"%d",dato[2]);
strcat(a,b);
dato[3]=atoi(a);
/*prueba
lcd_gotoxy(14,1);
printf(lcd_putc,"%d",dato[3]);*/
while(tecla=='\0')
tecla=kbd_getc();
if (tecla=='*')
{
dato[3]=read_EEPROM(dir[3]); //lee el dato especificado en dir pos 3
lcd_gotoxy(10,2);
printf(lcd_putc,"%3X",dato[3]); //imprime valor en hexadecimal
tecla='\0';
}
if (tecla=='#')
{
dato[3]=write_EEPROM(dir[3],dato[3]); //escribe el dato en direccion indicada (direccion, dato)
tecla='\0';
}
}
{
kbd_init();
lcd_init();
lcd_gotoxy(1,1);
lcd_putc("Susana Lopez");
lcd_gotoxy(1,2);
lcd_putc("A="); //numero de registro
lcd_gotoxy(8,2);
lcd_putc("D="); //dato que esta en el registro
tecla='\0';
//prueba
//dir[3]=125;
//dato[3]=0x18;
while(TRUE)
{
while(tecla=='\0')
tecla=kbd_getc();
if (tecla!='#' && tecla!='*')
{for (i=0;i<=2;i++)
{
while(tecla=='\0')
tecla=kbd_getc();
lcd_gotoxy(i+3,2);
lcd_putc(tecla);
dir[i]=tecla-48; //para que el vector sea un numero de mas de 1 cifra
tecla='\0';
}
sprintf(a,"%d",dir[0]);
sprintf(b,"%d",dir[1]);
sprintf(c,"%d",dir[2]);
strcat(a,b);
dir[3]=atoi(a);
/*
lcd_gotoxy(14,2);
printf(lcd_putc,"%d",dir[3]);*/
while(tecla=='\0')
tecla=kbd_getc();
if (tecla!='#' && tecla!='*')
{
for (i=0;i<=2;i++)
{
while(tecla=='\0')
tecla=kbd_getc();
lcd_gotoxy(i+10,2);
lcd_putc(tecla);
dato[i]=tecla-48;
tecla='\0';
}
}}
sprintf(a,"%d",dato[0]);
sprintf(b,"%d",dato[1]);
sprintf(c,"%d",dato[2]);
strcat(a,b);
dato[3]=atoi(a);
/*prueba
lcd_gotoxy(14,1);
printf(lcd_putc,"%d",dato[3]);*/
while(tecla=='\0')
tecla=kbd_getc();
if (tecla=='*')
{
dato[3]=read_EEPROM(dir[3]); //lee el dato especificado en dir pos 3
lcd_gotoxy(10,2);
printf(lcd_putc,"%3X",dato[3]); //imprime valor en hexadecimal
tecla='\0';
}
if (tecla=='#')
{
dato[3]=write_EEPROM(dir[3],dato[3]); //escribe el dato en direccion indicada (direccion, dato)
tecla='\0';
}
}
}
- Simulación en Proteus:
- Armado y ejecución:
“En
el registro 010 se escribió el dato 052.”
No hay comentarios:
Publicar un comentario