hola yo lo solucione usando el segundo ejemplo de coneccion, estan en los driver de kbd como se conecta cada pin del teclado
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
Mmm como ya creo que has podido comprobar mi nivel de electrónica no es tanto como para poder entender todo eso que me dices.Insisto en el tema porque realmente necesito la ayuda y eso.No se si es que molesta o que, pero si necesito ayuda y acudo a un foro donde presupongo que me podrian ayudar/guiar sobre el asunto...Contadores de anillo?IC?..lo siento pero ya digo que no tengo ese nivel.
#include <16f887.h>
#use delay(clock=4000000)
#fuses XT,NOWDT,NOPUT,NOMCLR,NOPROTECT,NOCPD,NOBROWNOUT,NOIESO,NOFCMEN,NOLVP
#include <lcd.c>
#use standard_io(c)
#use standard_io(d)
#use standard_io(b)
void main()
{
int8 i;
int8 columna,fila,coordenada;
int a,s,x=7,z;
int co[3]={0x01,0x02,0x04}; //Columna valor
int c [3]={pin_b0,pin_b1,pin_b2}; //Columna
int fi[4]={0x10,0x20,0x40,0x80}; //Fila valor
int f [4]={pin_b4,pin_b5,pin_b6,pin_b7}; //Fila
//int M [12]={0x11,0x12,0x14,0x21,0x22,0x24,0x41,0x42,0x44,0x81,0x82,0x84}; //Valores teclas
set_tris_d(0x00);
set_tris_c(0x00);
set_tris_b(0x07);
lcd_init();
output_b(0x00);
printf(lcd_putc"\f");
printf(lcd_putc" Contrasena");
while(TRUE)
{
output_b(0x07);
output_c(0x01);
if(input_b()!=0x07)
{
for(a=0;a<=2;a++)
{
if(input(c[a])==0) //Escanea columnas
{
columna=co[a];
z=c[a]; //Guarda el valor de la columna
}
}
output_high(pin_b4); //Escanea filas
if(input(z)==1)
{
fila=fi[s];
}
output_high(pin_b5); //Escanea filas
if(input(z)==1)
{
fila=fi[s];
}
output_high(pin_b6); //Escanea filas
if(input(z)==1)
{
fila=fi[s];
}
output_high(pin_b7); //Escanea filas
if(input(z)==1)
{
fila=fi[s];
}
delay_ms(200);
coordenada=columna+fila;
delay_ms(200);
if(coordenada==0x11) //1
{
lcd_gotoxy(x,1);
printf(lcd_putc"1");
delay_ms(500);
x++;
}
if(coordenada==0x12) //2
{
lcd_gotoxy(x,1);
printf(lcd_putc"2");
delay_ms(500);
x++;
}
if(coordenada==0x14) //3
{
lcd_gotoxy(x,1);
printf(lcd_putc"3");
delay_ms(500);
x++;
}
if(coordenada==0x21) //4
{
lcd_gotoxy(x,1);
printf(lcd_putc"4");
delay_ms(500);
x++;
}
if(coordenada==0x22) //5
{
lcd_gotoxy(x,1);
printf(lcd_putc"5");
delay_ms(500);
x++;
}
if(coordenada==0x24) //6
{
lcd_gotoxy(x,1);
printf(lcd_putc"6");
delay_ms(500);
x++;
}
if(coordenada==0x41) //7
{
lcd_gotoxy(x,1);
printf(lcd_putc"7");
delay_ms(500);
x++;
}
if(coordenada==0x42) //8
{
lcd_gotoxy(x,1);
printf(lcd_putc"8");
delay_ms(500);
x++;
}
if(coordenada==0x44) //9
{
lcd_gotoxy(x,1);
printf(lcd_putc"9");
delay_ms(500);
x++;
}
if(coordenada==0x82) //0
{
lcd_gotoxy(x,1);
printf(lcd_putc"0");
delay_ms(500);
x++;
}
}
if(x==10)
{
printf(lcd_putc"\f");
x=7;
}
}
}
oraleee ke buenos programas yo tambienn hicee uno parecidoo pero ahora necesito uno igual pero en ensamblador alguien me podria ayudar o decir como