Microcontroladores - PIC 16F84A

 
Vista:

PIC 16F84A

Publicado por Daniel (3 intervenciones) el 23/04/2007 16:49:16
Hola a todos/as soy principiante en esto. Estoy intentando leer las entradas configuradas en el Puerto B pero no hay manera. En este codigo estoy intentando leer una entrada y activar una salida del puertoA. Estoy haciendo lago mal?
Gracias adelantadas.


; ZONA DE DATOS **********************************************************************

LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

CBLOCK 0x0C
ENDC

#DEFINE salidahopper PORTA,0 ;

#DEFINE In1 PORTB,0 ; Billete 5€
#DEFINE In2 PORTB,1 ; Billete 10€
#DEFINE In3 PORTB,2 ; Billete 20€
#DEFINE In4 PORTB,3 ; Billete 50€
#DEFINE In5 PORTB,4
#DEFINE In6 PORTB,5
#DEFINE In7 PORTB,6
#DEFINE In8 PORTB,7

; ZONA DE CÓDIGOS ********************************************************************

ORG 0 ; El programa comienza en la dirección 0.
Inicio
bsf STATUS,RP0 ; Acceso al Banco 1.
bsf In1 ; Línea del pulsador configurada como entrada.
bsf In2
bsf In3
bsf In4
bsf In5
bsf In6
bsf In7
bsf In8
bcf OPTION_REG,NOT_RBPU
bcf OPTION_REG,INTEDG
bcf STATUS,RP0
bcf salidahopper
movlw b'10010000
movfw INTCON



Principal
btfss In1 ;Ves si está a cero
goto Es_0 ; Es cero
goto Es_1 ;no Es cero

Es_0
bcf salidahopper
goto Principal

Es_1
bsf salidahopper
goto Principal

;INCLUDE <RETARDOS.INC> ; Subrutinas de retardo.
END
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:PIC 16F84A

Publicado por eci (2 intervenciones) el 24/04/2007 00:48:29
Hola, mira para declarar la puerta B como salida o entrada tienes que modificar el registro TRISB que está en el banco 1. Al igual q si que el puerto A tienes que modificar el registro TRISB. De todas formas tú sólo estás testeando el pin 0 del PORTB,
Con tu código nada más que me quedaría desde la etiqueta Principal hacia abajo. Lo demás revísalo mejor.

bsf STATUS,RP0 ; Pone a 1 el bit 5 del STATUS. Acceso al Banco 1.
clrf TRISA ; Las líneas del Puerto A configuradas como salidas.
movlw b'11111111'; Las 8 líneas del Puerto B configuradas como entradas.
movwf TRISB ; Pone a 0 el bit 7 de STATUS.
bcf STATUS,RP0 Acceso al Banco 0.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PIC 16F84A

Publicado por ISRA (1 intervención) el 02/05/2007 02:08:42
PARA PODER LEER UNA ENTRADA NO TE OLVIDES CONFIGURAR PRIMERO EL TRISA O TRISB ACUERDO AL PUERTO QUE QUIERAS QUE SEA COMO ENRADA HACIENDO TODOS EN 1, Y PARA SALIDA HACIENDO TODOS EN 0 Y SOBRE TODO NO TE OLVIDES DEL REGISTRO STATUS ES MUY IMPOTANTE ANTES QUE TODO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PIC 16F84A

Publicado por edwin (2 intervenciones) el 11/05/2007 21:43:36
hace varios meses intentaba aprender sobre los pics, pero era casi envano, pero ahora mas que nunca me puse las pilas, espero aportar aqui y tambien aprender de los que pueden aportar ehhh, al final saldremos veneficiados los que entremos aqui, bueno muxos saludos...edwin
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PIC 16F84A

Publicado por edwin (2 intervenciones) el 11/05/2007 22:04:22
ok intentas leer las 5 lineas de entraba del puertoA, para enviarlos al puertoB, entonces lo que tendrias que hacer es primero, por si no lo las lineas que estan seguidas del ; como no se toman en cuenta para el progra, son solo comentarios
de las secuencias realizadas.
programa:
;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
LIST P=16F84A
INCLUDE <P16F84A.INC>
ORG 0

inicio bsf STATUS,RP0 ;acceso al bco 1
clrf TRISB ;conf ptoB como salidas
movlw b'00011111' ;las lineas del ptoA se confi como
movwf TRISA ;salidas
bcf STATUS,RP0 ;acceso al bco 0
principal
movf PORTA,W ;carca del dato del ptoA en W
movwf PORTB ;envia el dato del registro W al ptoB goto principal ;se genera un bulcle cerrado infinto
END ;fin del prog.
;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
este es un prgrama que recibe entrabadas por el puerto A y luego los envia al puerto B, espero te sea util, saludos ...edwin
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PIC 16F84A

Publicado por carlos mozo (1 intervención) el 04/08/2007 19:36:06
Cordial saludo.

Lo unico que sè acerca de los pics, es que quiero aprender. las intruciones y recomendaciones al punto seran bienvenidas. por lo pronto quiero un progtrama que reaise la siguiente secuencia.
en una pecera dividida por una compuerta manejada por un motor dc., al subir el nivel del aguna aun punto establecidom le da la orden al motro para que cierre la compuerta,
al decender el agua bajo el nivel prestablecido, la compyerta se abrirà nuevamente.

Sencillo verdad? bueno para mi que estpy en pañales no lo es.
por favor cualquier ayuda sera bienvenida.

att. carlos mozo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar