Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?
30/04/2011 #181


de izquierda a derecha comenzando en el pin 17:
1-2-4-8
les soldé resistencia como de 360 ohms y si van a GND
30/04/2011 #182


espero que sii!! eske tambien staba chekando aki mismo en el foro de komo konectarlos a un display de 7 segmentos y tampoko me funciono en el diagrama viene un CI 74ls273 k es un flipflop http://www.forosdeelectronica.com/f2...63/#post489162 tu haz usado este programa eske nose k signifiken los 0 k van en un rekuadro de kolor azull kreo k es tierra
30/04/2011 #183


generalmente, en los programas rojo es voltaje y azul tierra
30/04/2011 #184


sii es tierraa !!! ya lo konecte igual pero nada mas para un display para k me funcione peroo no me da nada me marka un 0 en el display y al momento k kiero poenerle un numero en el teklado no me da nada =(
30/04/2011 #185


pero para el Display, me parece que tienes que ponerle primero un decodificador

y pues tambien me parece que necesitas primero hacer un arreglo de 2 flip flops y estos van a los decodificadores y de ahi a los displays
30/04/2011 #186


sii ahii en el diagrama viene un flipflop k kreo k es pa ke decodifke los valores k salen del 74922 y despues esos valores los mandas al 7448
01/05/2011 #187

Avatar de Darzeck

Que tal teban2pac.

teban2pac dijo: Ver Mensaje
los ceros k stan en un rekuadro azul k signifikan... tierra???

Si te refieres a los "Logic State" Si, es a tierra.
11/05/2011 #188

Avatar de juancaca

Multiplexacion de CI74154 con Pic y teclado matricial de 8x4
Hola amigos del foro

Alguien me puede colaborar con un codigo en pic basic pro el cual me multiplexe un CI74154, yo se que este integrado no prende varias salidas a la vez, pero se que por multiplexacion se puede hacer que parescan que prenden varias salidas a la vez, estoy utilizando un teclado matricial de 8x4, un pic 16f883.

Lo que quiero hacer es que cuando presione una de las teclas prenda una de las salidas y cuando presione cualquiera de las otras teclas tambien se parescan que estan encendidas.
Yo tengo trabajando el teclado y visualizando cada salida del CI74154 cada vez que oprimo una tecla.

Espero me pueda colaborar, adjunto la foto del esquematico.

Cordial saludo

Codigo del programa

Código HTML:
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 26/04/2011 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
'ensayo teclado
 
anselh=0
trisa=0
porta=%00011111
 
A var portb.4
B var portb.5
C var portb.6
D var portb.7
UNO VAR portc.0
DOS VAR portc.1
TRES VAR portc.2
CUATRO VAR portc.3
CINCO VAR portc.4
SEIS VAR portc.5
SIETE VAR portc.6 
OCHO VAR portc.7
 
main: 
teclado:
low a
if UNO=0 then PORTA=0
if dos=0 then PORTA=1
if tres=0 then porta=2
if cuatro=0 then porta=3
if cinco=0 then porta=4
if seis=0 then porta=5
if siete=0 then porta=6
if ocho=0 then porta=7
high a
low b
if UNO=0 then porta=8
if dos=0 then porta=9
if tres=0 then porta=10
if cuatro=0 then porta=11
if cinco=0 then porta=12
if seis=0 then porta=13
if siete=0 then porta=14
if ocho=0 then porta=15
high b
low c
if UNO=0 then porta=16
if dos=0 then porta=17
if tres=0 then porta=18
if cuatro=0 then porta=19
if cinco=0 then porta=20
if seis=0 then porta=21
if siete=0 then porta=22
if ocho=0 then porta=23
high c
low d
if UNO=0 then porta=24
if dos=0 then porta=25
if tres=0 then porta=26
if cuatro=0 then porta=27
if cinco=0 then porta=28
if seis=0 then porta=29
if siete=0 then porta=30
if ocho=0 then porta=31
high d
pause 10
goto teclado
end
Imágenes Adjuntas
Tipo de Archivo: jpg Montaje en proteus.jpg (265,5 KB (Kilobytes), 17 visitas)
22/05/2011 #189


teclado matricial, lcd y 89c51
Buenas
soy nuevo en el foro y necesito ayuda para hacer el sigueinte proyecto
con un 89c51 necesito mostrar en una lcd de 16x2 un numero que sea oprimido en el teclado 4x4....
hasta el momento he buscado informacion de como funciona la lcd, incluso vi un codigo en asm de un "hola mundo" y lo simule en proteus, pero no me funciona.. les agradeceria si me ayudan
23/05/2011 #190


Pic16f887
Sabes.......con el 16f877a no hay ningun problema con esa libreria, de hecho yo tengo hasta dos librerias que puedo usar.......

Debido a que se hicieron algunas modificaciones al 16f887, que segun es el hermano mayor del 16f877a, a la hora de la migracion viene el problema, ya que tienes que configurar los pines del puerto B para poder utilizar las interrupciones en el teclado. Esa parte se me ha complicado, y a la fecha no eh podido hacer adnar el teclado en el 887, que para mi es un dispositivo muy poderoso, ya que no hay necesidad de colocarle un oscilador, ya que lo tiene internamente, aparte de ser mas economico, todo funciona perfectamente hasta que queires configurar el teclado, si alguien sabes como configurarlo lo agradecere.

no soy un experto en el 877a pero si necesitan algo no duden en preguntar.
26/05/2011 #191


Tengo un problema.
Me compila bien el código el CCS pero en el Proteus no hace nada el teclado.
Le pongo cualquier dígito y no sale nada.
A ver si pueden ayudarme.

Código:
#include <16F876.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock= 4000000)        
#define use_portb_kbd TRUE
#include <lcd.c>
#include <kbd.c>
        

void main() {
   char k; 
   int  x;
          
   lcd_init(); 
   kbd_init();
   port_b_pullups(TRUE); 

   lcd_putc("\fListo...\n");
                                    
   while (TRUE) {
      k=kbd_getc(); 
      x=k-48;                             //Conversión numérica
      if(k!=0){
        if(k=='*')  
          lcd_putc('\f'); 
        else
           lcd_putc(k);             //Imprime carácter
           delay_ms(500);
           printf(lcd_putc,"\f Car=%c",k); //Imprime carácter
           delay_ms(500);
           printf(lcd_putc,"\f Car=%u",k); //Imprime valor ASCII
           delay_ms(500);
           printf(lcd_putc,"\f Num=%u",x); //Imprime valor numérico
           delay_ms(500);
           lcd_putc("\fListo...\n");
      }
   }
}
30/05/2011 #192


una cosa a la hora de hacer el montaje np hay problema que el 74c922 se de la familia cmos y el resto sea ttl
30/05/2011 #193


Hola GABAVAGA

En las hojas de datos del MM74C922 dice que este es de la familia CMOS y que es compatible con la familia LPTTL, que quien sabe qué será. es probable que quiera decir Low Power TTL.

saludos
a sus ordenes
31/05/2011 #194


Decodificador de Teclado Matricial de 3X4
bueno... problema es q necesito crear mediante compuertas un decodificador o un metodo que me permita decodificar o conocer el numero qeu ha sido pulsado en un teclado matricial 3x4 sin usar el 74c922 o cuanquier key encoder intente hacer las ecuaciones logicas y ok no son muchas pero a la hora de construir el circuito queda demasiado mostro y no puedo simplificar con mapas k xq son siete ¡¡¡¡ variables con el otro metodo en el que se agrupan el nuimero de unos tampoco porque siempre es el mismo numero (5unos)...... si alguin sabe un metodo por fa ayuda
01/06/2011 #195


andrealiz dijo: Ver Mensaje
Hola!! estoy haciendo un teclado matricial (sin usar pic), y bueno simulando en proteus debo conectar un reloj en una de las entradas de una compuerta AND de dos entradas. En el propetus pues el reloj es un dibujito de pulsos, pero no te dice componentes que utilizaras ni nada.. ahora que lo estoy armando en mi protoboard quisiera saber si puedo usar el N555 (que tengo uno guardado de un montaje anterior) pero no se si servira... y en el caso que si sirva, como lo conecto?? osea me refiero a los pines que trae el 555 con la entrada de la AND. Les agradezco de antemano si me pueden ayudar por favor!!

Andrea Liz


Hola Andrea, no se si ya solucionaste tu duda con respecto al N555, en caso de que no; debes saber si usaras flanco de subida y de bajada. Te tengo una propuesta, porque no me das tu correo y yo te envio un pdf donde te explican como usarlo y ademas del circuito a usar, pero me gustaria que me compartieras como usar el teclado sin el pic. He intentando y no he podido.

Si deseas, mi correo es









, me envias un inbox y nos ponemos en contacto, o me pones un mensajito por el mismo foro. Espero tu respuesta.

Por el momento solo te puedo adjuntar esto!!! el peso del articulo me impide subirlo al foro
Imágenes Adjuntas
Tipo de Archivo: png Captura.PNG (141,1 KB (Kilobytes), 76 visitas)
01/06/2011 #196


Hola GABAVAGA

Entonces el que te envié por el otro tema no te sirvió?. El que viene de ejemplo en el CircuitMaker.

Ve si este te sirve.

saludos
a sus ordenes
Imágenes Adjuntas
Tipo de Archivo: jpg Borrame 2.jpg (270,1 KB (Kilobytes), 212 visitas)
01/06/2011 #197

Avatar de Scooter

Se puede con cuatro transistores y ocho resistencias iguales:
Teclado matricial sin escaneo
01/06/2011 #198


to tengo e mismo problema con el pic 18f2550 es el mismo código ejemplo. no hace nada en la simulación y me salen muchas advertencias en el proteus.......

Código:
#include <18f2550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOMCLR
#use delay(clock= 4M)

#include <lcd.c>
#include <kbd.c>

//Configuración requerida para utilizar el bootloader
#define LOADER_END 0x7FF
#define LOADER_SIZE 0x6FF
#build(reset=LOADER_END+1, interrupt=LOADER_END+9)
#org 0, LOADER_END {} // nothing will replace the bootloader memory space
// Fin de la configuración



void main() {
   char k; 
   int  x;
          
   lcd_init(); 
   kbd_init();
   port_b_pullups(TRUE); 

   lcd_putc("\fListo...\n");
                                    
   while (TRUE) {
      k=kbd_getc(); 
      x=k-48;                             //Conversión numérica
      if(k!=0){
        if(k=='*')  
          lcd_putc('\f'); 
        else
           lcd_putc(k);             //Imprime carácter
           delay_ms(500);
           printf(lcd_putc,"\f Car=%c",k); //Imprime carácter
           delay_ms(500);
           printf(lcd_putc,"\f Car=%u",k); //Imprime valor ASCII
           delay_ms(500);
           printf(lcd_putc,"\f Num=%u",x); //Imprime valor numérico
           delay_ms(500);
           lcd_putc("\fListo...\n");
      }
   }
02/06/2011 #199

Avatar de gmua

tavotlokot dijo: Ver Mensaje
YO TENGO UN PROBLEMA,ME COMPILA BIEN EL CODIGO EL CCS PERO EN EL PROTEUS NO HACE NADA EL TECLADO LE PONGO CUANLQUIERDIGITO Y NO SALE NADA. AVER SI PUDIERAN AYUDARME:
Qué versión del CCS C estás usando?

Porque el código que muestras (creo que es el del libro Compilador C CCS y Simulador PROTEUS p.77) me funcionó perfectamente después de agregar la línea #define use_portb_kbd TRUE que tu también agregaste.

Lo que no he podido hacer es que me funcione el LCD con la versión 4.114, por eso te pregunto la versión que usas.

A mi me ha funcionado bien con la 4.106.

Saludos.
02/06/2011 #200

Avatar de gmua

divedwin dijo: Ver Mensaje
to tengo e mismo problema con el pic 18f2550 es el mismo codigo ejemplo. no hace nada en la simulacion y me selen muchas advertencias en el proteus.......
Hola divedwin, tu código solo necesita unas pequeñas modificaciones:

Código:
#include <18F2550.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOUSBDIV,NOVREGEN,NOMCLR,NOPBADEN
#use delay(clock= 1M)

#define LCD_DATA_PORT getenv("SFR:PORTC")
#include <lcd.c>
#define use_portb_kbd TRUE
#include <kbd.c>

//Configuración requerida para utilizar el bootloader
#define LOADER_END 0x7FF
#define LOADER_SIZE 0x6FF
#build(reset=LOADER_END+1, interrupt=LOADER_END+9)
#org 0, LOADER_END {} // nothing will replace the bootloader memory space
// Fin de la configuración

void main()
{
    char k;
    int x;
    
    lcd_init();
    kbd_init();
    //port_b_pullups(TRUE);
    
    lcd_putc("\fListo...\n");
    while(TRUE)
    {
        k=kbd_getc();
        x=k-48; //Conversión numérica
        if(k!=0)
        {
            if(k=='*')
                lcd_putc('\f');
            else
            lcd_putc(k); //Imprime carácter
            delay_ms(500);
            printf(lcd_putc,"\f Car=%c",k); //Imprime carácter
            delay_ms(1000);
            printf(lcd_putc,"\f Car=%u",k); //Imprime valor ASCII
            delay_ms(500);
            printf(lcd_putc,"\f Num=%u",x); //Imprime valor numérico
            delay_ms(500);
            lcd_putc("\fListo...\n");
        }
    }
}
#fuses XT,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOUSBDIV,NOVREGEN ,NOMCLR,NOPBADEN
En esta línea lo mas importante es XT y NOPBADEN, porque estás usando un cristal de 4 MHz y no quieres que estén habilitados las entradas A/D del puerto B.

#use delay(clock= 1M)
Esta línea solo la cambié porque simulándolo a 4 MHz, el Proteus se me alenta mucho porque se sobrecarga el CPU.

#define LCD_DATA_PORT getenv("SFR:PORTC")
Con esta línea defines que el LCD irá conectado en el puerto C.

#define use_portb_kbd TRUE
Con esta línea defines que el Teclado irá conectado en el puerto B.

//port_b_pullups(TRUE);
Esta línea la comenté por que el circuito no me responde bien con las pull-ups internas habilitadas, así que las puse manualmente en el Proteus.

}
Te faltó un bracket

Para simularlo en el ISIS de Proteus puedes conectar el circuito como la imagen que adjunté.

Saludos.

PD: Como lo comenté en mi post anterior, yo no he podido hacer funcionar el LCD en el ISIS de Proteus si compilo el código con el CCS C versión 4.114
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.