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

Temas similares

01/03/2015 #1


Problema con PIC16F877A
Hola amigos, estoy realizando un montaje sencillo con el pic 16f877a, el cual es una secuancia de leds por el puerto d y salida a lcd por el puerto b, pasa que em la simulación sale todo bien, pero en la realidad solo funciona cuando conecto el pinB7 a tierra.
Cambie los puertos para la lcd dejando el que tiene por defecto (D) y las salidas por el B pero pasa lo mismo solo cuando D7 esta a tierra funciona lo cual no seria problema si por el lcd saliera la información que quiero, pero como el pin D7 o B7 está a tierra no sale nada
ya probe con los capacitores de 15pF en el cristal y la verdad nos e que pueda ser, agradezco su colaboración.
el programa esta en C++, montaje en proteus y el físico en protoboard ...
02/03/2015 #2
Moderador

Avatar de D@rkbytes

Pues no deberías tener problemas con la pantalla en ninguno de los dos puertos.
Lo que si veo mal en tu programa, es la forma de definir el puerto para la pantalla.
Si requieres que el puerto para la pantalla sea el puerto B, se define de esta forma:
#define LCD_DATA_PORT getenv("SFR:PORTB")
#include <lcd.c>
Primero se define el puerto para la pantalla y a continuación se incluye la librería.

Otros detalles:
El uso de los standard_io (puerto) que usaste, salen sobrando, al igual que los set_tris_x();
Los puertos por defecto son entradas, y con tan solo usar output_d(0); ya tienes todos los bits del puerto D en 0.

Ahora por ejemplo. Si requieres que algunos bits sean entradas y otros salidas, usas: #use fast_io(d)
Y entonces aquí si conviene usar set_tris_x();
Por ejemplo:
set_tris_d(0b11001100);
Aquí los bits 7, 6, 3 y 2 serán entradas y los bits 5, 4, 1 y 0 serán salidas.
Como ya se usó #use fast_io(d), entonces al usar output_d(0); únicamente los bits configurados como salida se pondrán en 0 y los bits configurados como entradas se mantendrán sin cambio.

Prueba definiendo el puerto para la pantalla de la forma que te digo y verás que funciona sin problemas.
Si sigues teniendo problemas, realiza una prueba de los puertos para comprobar que funcionen como salidas.
Respuesta
¿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.