TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: martos_iii en 27 de Noviembre de 2004, 12:33:00
-
hola, estoy iniciandome con la programación de pics, y estoy haciendo un programa muy sencillo que consiste en recoger los datos de unos pulsadores conectados al puerto A, y encender unos leds conectados al puertoB de un 16f876A. Cuando intento configurar los puertos como entrada y como salida, se actualiza bien el trisB pero no se actualiza el tirsA y hago lo mismo exactamente que con el B, y no se de que peude ser. Bueno pongo el programa a ver si me podeis echar una mano. Supongo que sera un fallo muy tonto pq aun no tengo mucha idea, muchas gracias de antemano
List p=16f876a ; Se usa el PIC16f876
include "p16F876a.inc" ;archivo con los registros definidos.
; COMIENZO DEL PROGRAMA -----------------------------------------------------------------
org 0 ; El programa comienza en la direcci¢n 0 (Vector Reset)
goto inicio ; Se salta a la etiqueta “inicio”
org 5 ; Se asigna la direcci¢n 5 a la siguiente instrucci¢n
inicio
bsf STATUS,5
movlw 0x00
movwf TRISB
movlw 0xFF
movwf TRISA
bcf STATUS,5
bucle
movf PORTA,w ;llevamos a W las pulsaciones introducidas
movwf PORTB ;llevamos de W al puertob
goto bucle ; Se crea un bucle cerrado e infinito
end ; Fin del programa
-
Hola Martos:
Creo que lo que te falta es que para configurar la puerta A como IO digital tienes que programar el registro ADCON1 con el valor =00000110.
Esto lo tienes que incluir antes de configurar la puerta A. El programa te quedaria asi:
movlw b"00000110"
movwf ADCON1 ;Puerta A E/S digitales
movlw b"00000000" ;Puerta B se configura como salida
movlw b"00011111"
movwf TRISA ;Puerta A se configura como entrada
bcf STATUS,RP0 ;Selecciona banco 0
bucle
........
ESpero que te sirva
Fermin
-
muchas gracias fer_taca, era eso (a parte de otro fallo que tenia al programar el trisa), ya me va bien
. Gracias por todo