Haz una pregunta
  Foros de Electrónica » Diseño digital » Interfaces y Programación
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

02/03/2014 #1


Configuración ADCON1
Tengo el siguiente circuito montado, estoy empezando con la parte de un LCD y teclado matricial,
pero no hace nada el proteus, solo me manda muchos mensajes de "whilst busy"
Dí con el problema y aparentemente es porque no he configurado el ADCON que tiene que ver con indicarle al puerto A que será usado cómo salidas digitales.

El código arreglado es este, pero aún así sigo teniendo el mismo error.
Código:
ADCON1=%00000110
TRISA =  %00000000 
TRISB =  %00000000 
TRISD =  %01111000 
VAR1 VAR Byte 
var1 = 0 
Pause 200 
Lcdout $fe, 1 
Lcdout $fe, 2
Lcdout "* Pantalla LCD *"
Lcdout $fe,$C0, "* Teclado Mat. *"
PAUSE 3000 
Inicio:
Call Teclado
Lcdout $fe, 2 
Lcdout "Tecla Pulsada: "
Lcdout $fe,$C0, "--> ",#var1," "
GoTo Inicio
Teclado:
PORTD.0 = 0 
PORTD.1 = 1 
PORTD.2 = 1 
If PORTD.3 = 0 Then VAR1 = 1 
If PORTD.4 = 0 Then VAR1 = 4 
If PORTD.5 = 0 Then VAR1 = 7 
If PORTD.6 = 0 Then VAR1 = 10 
PORTD.0 = 1 
PORTD.1 = 0 
PORTD.2 = 1 
If PORTD.3 = 0 Then VAR1 = 2 
If PORTD.4 = 0 Then VAR1 = 5 
If PORTD.5 = 0 Then VAR1 = 8 
If PORTD.6 = 0 Then VAR1 = 11 
PORTD.0 = 1 
PORTD.1 = 1 
PORTD.2 = 0 
If PORTD.3 = 0 Then VAR1 = 3 
If PORTD.4 = 0 Then VAR1 = 6 
If PORTD.5 = 0 Then VAR1 = 9 
If PORTD.6 = 0 Then VAR1 = 12 
Return 
End
02/03/2014 #2

Avatar de papirrin

podrias subir los archivos en un zip.

faltan datos como que compilador usas, que pic usas, porque no pones antirrebote en el teclado, estas poniendo resistencia en el MCLR?, porque no desplegas en el LCD solo cuando pulses?, etc, etc.
02/03/2014 #3

Avatar de ByAxel

Sip, falta el PIC y parece Basic... Sobre el aviso en proteus es porque el PIC está enviando datos al LCD demasiado rápido y éste se encuentra ocupado... ¿A que frecuencia trabajas? configura la misma frecuencia en el compilador y proteus....
02/03/2014 #4


ok, acá te pongo un esquema que tengo montado, te presento la conexion que tuve que hacer para que funcione (en otro puerto donde NO hay que modificar el adcon1)
Efectivamente es Basic, estoy usando el MicrocodeStudio
Imágenes Adjuntas
Tipo de Archivo: jpg tecladofunc.JPG (142,7 KB (Kilobytes), 9 visitas)
02/03/2014 #5

Avatar de papirrin

pues es todo lo que te mencione:

los antirrebotes, el lcd, y el MCLR sin resistencia... quizas hasta tienes mal definido el oscilador.
02/03/2014 #6


se que a la simulación le hace faltan ciertos dispositivos para que sea mas real a la hora de realizar el montaje, de momento las prácticas que he hecho las he realizado de esta manera. claro que cuando lo monte en vida real si debo tomar en cuenta todo lo que me estas diciendo, pero esto lo estoy haciendo de manera digamos didáctica para aprender mas que todo el manejar el lenguaje, la cuestión en si es que a medida que he realizado las prácticas no me habia topado con este problema porque nunca use el puerto A, como te dije anteriormente cambie de lugar el LCD y me funciona perfectamente tal como lo establece el código fuente sin problemas
02/03/2014 #7

Avatar de papirrin

como te menciono le falta la resistencia mclr en la simulacion y si dices que asi estas bien entonces para que preguntas?
02/03/2014 #8


La esencia del tema en si es que tengo un problema al configurar el ADCON1, tengo entendido que este registro como anexe en la imagen tiene que ser configurado para indicar que el puertoA sea usado como E/S Digitales, realice esa configuración pero se me presenta el problema que coloque al inicio del hilo del tema; lo que hice fue que cambiando el LCD de puerto fino se arregla, con esto reincido en que mi problema es la configuración de mi ADCON1, la idea es saber que tengo mal para así en un futuro usar el puerto cuando se me antoje no simplemente cambiarlo a otro puerto.
02/03/2014 #9

Avatar de ByAxel

Más bien es raro por que el pin MCLR si necesita conectarlo a (+), lo que no es necesario es el cristal oscilador ya que el mismo no simula.

Si usas el PORTA con el LCD, hay un detalle con el PIN RA4... éste es open-drain, solo pone a cero lógico como pin de salida, por lo que es necesrio colocar una resistencai pull-up (+) para conseguir 1 lógico.
02/03/2014 #10


Ah correcto, ese era el detalle compañero.. Ya lo probe colocanco la resistencia de pull-up y funciona según lo especificado.. Gracias por la corrección y las sugerencias serán bienvenidas.. acá coloco rápidamente el circuito corregido !
Archivos Adjuntos
Tipo de Archivo: rar Teclado Matricial.rar (27,6 KB (Kilobytes), 4 visitas)
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Interfaces y Programación

Lenguajes de programación, gestión y manejo de puertos

Cerrar
Foros de Electrónica » Diseño digital » Interfaces y Programación

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