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

Temas similares

30/12/2009 #1

Avatar de Meta

Configurar un pedazo de PIC
Hola:

Estoy intentando pasar la configuración del PIC16F84A al 16F88, ambos usan el oscilador externo a 4 MHz. La idea del PIC16F88 es que los puertos A y B son digitales, PORTA como salida digital y PORTB como entrada digital, no se usa para nada entradas analógicas.

Este código del 16F84 quiero convertirlo al 16F88.
Código:
    bsf        STATUS,RP0                ; Accede al Banco 1.
    clrf    PORTA                    ; Puerto A como salidas.
    movlw    b'11111111'                ; Las 8 líneas del puerto B se configura como entradas.
    movwf    PORTB
    bcf        STATUS,RP0                ; Accede al Banco 0.
    clrf    PORTA                    ; Supuestamente la lámpara y Led apagadas.
Por ahora estoy liado y no logro poner el PORTB como entradas. De momento he hecho esto.

Código:
    bcf        STATUS,RP1                ; Accede al banco 1.
    bsf        STATUS,RP0
    movlw    b'00000000'
    movwf    ANSEL                    ; Configura como I/O digitales.
    clrf    TRISA                    ; Poner TRISA para salida o PORTA en salid digital.
    movlw    b'11111111'    
    movwf    TRISB                    ; Entrada digital.
    bcf        STATUS,RP1                ; Accede al banco 0.
    bcf        STATUS,RP0
    clrf    PORTA                    ; Salida digital del PORTA.
    movlw    b'11111111'
    movwf    PORTB                    ; Entrada digital del PORTB
Se que no está bien porque no logro poner el PORTB en entrada digital y no se como hacerlo.

Un cordial saludo.



EDITO:

Me respondo a mi mismo.

Código:
    bcf        STATUS,RP1                ; Accede al banco 1.
    bsf        STATUS,RP0
    movlw    b'00000000'
    movwf    ANSEL                    ; Configura como I/O digitales.
    movlw    b'00000000'
    movwf    TRISA                    ; Poner TRISA para salida o PORTA en salid digital.
    movlw    b'11111111'    
    movwf    TRISB                    ; Entrada digital.
    bcf        STATUS,RP1                ; Accede al banco 0.
    bcf        STATUS,RP0
    clrf    PORTA                    ; Supuestamente la lámpara y Led apagadas.

Para cambiar de bancos debo usar dos instrucciones siempre:
Código:
   bcf        STATUS,RP1                ; Accede al banco 1.
    bsf        STATUS,RP0
He comprobado que usando una directiva te ahorra una línea de códigos. Si el proyecto es largo en ensamblador.

Código:
BANKSEL    ANSEL
    movlw    b'00000000'
    movwf    ANSEL                    ; Configura como I/O digitales.
    movlw    b'00000000'
    movwf    TRISA                    ; Poner TRISA para salida o PORTA en salid digital.
    movlw    b'11111111'    
    movwf    TRISB                    ; Entrada digital.
    BANKSEL    PORTA
Las directivas las puedes ver en la ayuda del MPLAB o en Web por ahí como este:
http://www.terra.es/personal/fremiro/directivas.htm

Saludo.
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.