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


Conseguir que por RD0, RD1 salgan 5V
hola a todos, tengo un problema y nose como solucionarlo a ver si me podeis echar una mano, estoy usando el puerto D de un 16f877a para controlar la señal de habilitacion de un 74ls244, entonces quiero activar los bit RD0 y RD1 y los demas desactivados, esta funcion es la que estoy usando:
MOVLW b'00000011'
MOVWF PORTD
mi problema es que midiendo con el multimetro las patillas RD0 y RD1 me marcan 2,3V, insuficiente para que el 74LS244 lo reconozca como nivel alto,¿ como lo puedo hacer para que por esas patillas me salgan 5V ?



gracias a todos
30/04/2009 #2

Avatar de felixls

Hola champi, tendrías que verificar si estás configurando bien el TRISD para que funcionen como salida.

saludos.
30/04/2009 #3


Hola, gracias por conttestar tan rapido, el puerto lo tengo inicializado de la siguiente manera:
COMIENZO

BSF STATUS,RP0
MOVLW B'11111111' ; Poner el Puerto C como entrada de datos.
MOVWF TRISC
CLRF TRISB ; Poner el Puerto B como salida de datos.
CLRF TRISD;
BCF STATUS,RP0
uso tambien el puerto C y B pero cn estos no tengo problemas, ¿esta asi bien configurado el puerto D no? o falla ahi?

un saludo
30/04/2009 #4

Avatar de Eduardo

Que valor tenes en TRISE ?
Si tenes activo el bit PSPMODE te queda el puerto D en esclavo.
30/04/2009 #5


el TRISE no lo tengo configurado, y el PSPMODE... esque soy un poco novato, los bit PSP son el RD0 y RD1 no?, por esos bit son por los que quiero conseguir los 5V
30/04/2009 #6

Avatar de felixls

Fijate en la página 39 del datasheet del componente, http://ww1.microchip.com/downloads/e...Doc/30292c.pdf
30/04/2009 #7


okok gracias por la información, creo que el PSPMODE es igual a 0 no? de todos modos este es mi codigo:
list p=16f877a, f=inhx32
;************* Asignación de nombres de Registros de Funciones especiales a direcciones ************
#include <p16f877a.inc> ;
;**************************** Igualdades ************************************************** *********************
;**************************** Registros ************************************************** **********************

PRUEBA EQU 0X20;

;**************************** Sección Código de Reset ************************************************** *****
ORG 0x00 ;Dirección del Vector Reset
GOTO COMIENZO ;Comienzo del Programa
;**************************** Sección de Configuración ************************************************** ****
ORG 0x05 ; Inicio de Programa
;(Una posición detrás del vector de Interrupción)
COMIENZO

BSF STATUS,RP0
MOVLW B'11111111' ; Poner el Puerto C como entrada de datos.
MOVWF TRISC
CLRF TRISB ; Poner el Puerto B como salida de datos.
CLRF TRISD;
BCF STATUS,RP0
;**************************** Principal ************************************************** ************************
SEG1

MOVLW b'00000000'
MOVWF PORTD
MOVF PORTC,0 ; Leer el Puerto C y llevarlo al Acumulador.
MOVWF PRUEBA ;

MOVF PRUEBA,0 ;
MOVWF PORTB ; Transferir el dato del Acumulador al Puerto B
GOTO SEG2

SEG2

MOVLW b'00000000'
MOVWF PORTD
MOVF PORTC,0 ; Leer el Puerto C y llevarlo al Acumulador.
MOVWF PRUEBA ;
MOVF PRUEBA,0 ;
MOVWF PORTB ; Transferir el dato del Acumulador al Puerto B
GOTO SEG1


END
30/04/2009 #8

Avatar de felixls

champi87, en el código dice

MOVLW b'00000000'
MOVWF PORTD

De esa forma nunca vas a tener 5v en los puertos D0 y D1

EDIT.

El valor en POR,BOR y RESET de PSPMODE es 0.
30/04/2009 #9


perdon ha sido una errata es:
MOVLW b'00000011'
MOVWF PORTD
30/04/2009 #10

Avatar de felixls

champi87 dijo:
perdon ha sido una errata es:
MOVLW b'00000011'
MOVWF PORTD
Si así está en los dos lados de tu código debería funcionar, estás midiendo con el multímetro con las patas al aire? o conectado al integrado u otros circuitos?
30/04/2009 #11


esta conectado al integrado, lo acabo d comprobar y me dan 2.3V el RD0 y RD1 y las demas si me da 0V bien
30/04/2009 #12

Avatar de Eduardo

No hay nada mas conectado a RD0 y RD1?
30/04/2009 #13

Avatar de felixls

Creo que sería útil si pudieramos ver el esquemático o parte de él.
30/04/2009 #14


si las salidas RD0 y RD1 las tengo multiplexadas a las 2 señaes d habilitación que tiene el 74LS244.

No tengo un esquematico, esta noche lo realizare, pero vamos es un montaje muy simple, te lo explico por si te puedes hacer una idea, son 2 switch conectados cada uno a un 244 diferente, las salidas de estos switch van al PORTC( estan multiplexadas ls salidas de los 2 switch al puerto C); depues tengo 16 led conectados a dos 244, conectados ambos en el PORTB; y tengo las señales de habilitacion de cada 244( en total 4" 2 para los switch y 2 para los led") conectadas al RDO, RD1, RD2, y RD3; cada bit del puerto D manda las 2 señales a la vez que necesita el 244 para habilitarlo
30/04/2009 #15


ya lo he solucionada, lo que he echo ha sido usar el puerto A en vez del B, gracias a todos por vuestra ayuda
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.