Autor Tema: Cambio de configuración al 16F  (Leído 3412 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Egiptoman

  • PIC10
  • *
  • Mensajes: 4
Cambio de configuración al 16F
« en: 01 de Enero de 2010, 23:34:03 »
Quiero pasar del 16F84A al 16F88.

La configuración de puertos del 16F84A es esta:
Código: ASM
  1. ;       bsf             STATUS,RP0                              ; Accede al Banco 1.
  2.         clrf    PORTA                                   ; Puerto A como salidas.
  3.         movlw   b'11111111'                             ; Las 8 líneas del puerto B se configura como entradas.
  4.         movwf   PORTB
  5.         bcf             STATUS,RP0                              ; Accede al Banco 0.
  6.         clrf    PORTA                                   ; Supuestamente la lámpara y Led apagadas.


En la página 53 del Data Sheet 16F88 te lo explica pero no me sale.

Dejar claro que el 16F88 uso el oscilador de 4 MHz XT como el F84 y no uso entradas analógicas, sólo entradas y salidas digitales.

¿Cómo es la solución? Lo he intentado hacer de esta manera y nada de nada.

Código: ASM
  1. BANKSEL PORTA ; select bank of PORTA
  2.         CLRF PORTA ; Initialize PORTA by
  3. ; clearing output
  4. ; data latches
  5.         BANKSEL ANSEL ; Select Bank of ANSEL
  6.         MOVLW 0x00 ; Configure all pins
  7.         MOVWF ANSEL ; as digital inputs
  8.         MOVLW 0xFF ; Value used to
  9. ; initialize data
  10. ; direction
  11.         MOVWF TRISA ; Set RA<7:0> as inputs
  12.         movlw   0xFF
  13.         movwf   TRISB
  14.         BANKSEL PORTB
  15.         movlw   0xFF
  16.         movwf   PORTB
  17.         clrf    PORTA

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Cambio de configuración al 16F
« Respuesta #1 en: 01 de Enero de 2010, 23:57:05 »
Código: ASM
  1. BANKSEL PORTA ; select bank of PORTA
  2.         CLRF PORTA ; Initialize PORTA by
  3. ; clearing output
  4. ; data latches
  5.  
  6. ; ////////////////////////////
  7.         BANKSEL    CMCON
  8.         MOVLW   0X07           ;//Turn off comparator
  9.         MOVWF   CMCON
  10. ;/////////////////////////////////////
  11.  
  12.         BANKSEL ANSEL ; Select Bank of ANSEL
  13.         MOVLW 0x00 ; Configure all pins
  14.         MOVWF ANSEL ; as digital inputs
  15.  
  16.         BANKSEL TRISA
  17.         CLRF       TRISA   ; PORTA = OUTPUT
  18.         MOVLW   0xFF
  19.         MOVWF   TRISB ;  PORTB = INPUT


Con eso debe quedar , tienes todo bien , excepto que por default , los comparadores analogos estan encendidos y los pines configurados como entrada.

Solo agrega
 
Código: [Seleccionar]
MOVLW 0X07
MOVWF CMCON


--------------------------------

Me olvidaba de los bits de configuracion


Código: [Seleccionar]
__CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC
__CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF


Saludos!
« Última modificación: 02 de Enero de 2010, 00:14:21 por AKENAFAB »

Desconectado Egiptoman

  • PIC10
  • *
  • Mensajes: 4
Re: Cambio de configuración al 16F
« Respuesta #2 en: 02 de Enero de 2010, 00:25:49 »
Buenas:


No sabía nada del CMCON, aún así sigo con problemas e intento modificar el código.

PORTA debe ser salida digital.
PORTB debe ser entrada digiral.

Ahora no da error al compilar pero mirando en el simulador del MPLAB v8.43, tanto el PORTA y PORTB están en 0,cuando el PORTB deben estar en b'11111111'.

Código: ASM
  1. ; __CONFIG ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
  2. ;
  3. ; _CP_OFF:            Protección de código DESACTIVADO.
  4. ; _DEBUG_OFF:         Debug en circuito DESACTIVADO.
  5. ; _WRT_PROTECT_OFF:   Protección a escritura en memoria de programa DESACTIVADO.
  6. ; _CPD_OFF:           Protección de código de datos DESACTIVADO.
  7. ; _LVP_OFF:           Programación en baja tensión DESACTIVADO.
  8. ; _BODEN_OFF:         Reset por Brown-out DESACTIVADO.
  9. ; _MCLRE_ON:          Reset por pin externo ACTIVADO.
  10. ; _PWRTE_ON:          Retraso al reset ACTIVADO.
  11. ; _WDT_OFF:           Watchdog DESACTIVADO.
  12. ; _XT_OSC:            Oscilador externo del tipo XT.
  13. ;---------------------------------------------------------------------------------------
  14. ; _IESO_OFF:          Modo de intercambio de externo a interno DESACTIVADO.
  15. ; _FCMEN_OFF:         Monitor de CLK DESACTIVADO.
  16.  
  17. BANKSEL CMCON
  18.         movlw   b'00000111' ; .7
  19.         movwf   CMCON
  20.         BANKSEL ANSEL
  21.         movlw   b'00000000' ; Configura todos los pines
  22.         movwf   ANSEL           ; en entradas digitales.
  23.         movlw   b'00000000' ; Todas las salidas
  24.         movwf   TRISA           ; son digitales.
  25.         movlw   b'11111111' ;
  26.         movwf   TRISB           ; Son entradas digitales.
  27.         BANKSEL PORTB           ; Vuelve al banco 0.
  28.         movlw   b'11111111'
  29.         movwf   PORTB
  30.         clrf    PORTA           ; Se asegura que el puerto A esté en cero.

Al correr el programa, sigue el PORTB en ceros.



Saludo.
« Última modificación: 02 de Enero de 2010, 00:34:55 por Egiptoman »

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Cambio de configuración al 16F
« Respuesta #3 en: 02 de Enero de 2010, 01:28:21 »
Tu estas enviando 11111 al PORTB , pero PORTB es ENTRADA , por eso ves puros 0000000


Código: [Seleccionar]
MOVLW b'11111111'
MOVWF TRISB          ;<--------- CONFIGURAS LOS PINES COMO ENTRADAS

Luego tu haces lo siguiente :

Código: [Seleccionar]
MOVLW b'11111111'
MOVWF PORTB      <---- Envias 11111 al puerto B , pero como esta como entrada ves puros 000's

Si lo hicieras con el PORTA que definiste como salida , ahi i veras el cambio.



http://img36.imageshack.us/img36/4099/configport.jpg

ME parece que lo queires simular????

Si es asi,ve a debugger , stimulus y crea un new WORKBOOK , ahi ve agregndo los pines que tienes como entradas y cambia su estado.

Saludos!

-----------------

xD Me comi unas letras en el dibujo xD


« Última modificación: 02 de Enero de 2010, 01:40:15 por AKENAFAB »

Desconectado Egiptoman

  • PIC10
  • *
  • Mensajes: 4
Re: Cambio de configuración al 16F
« Respuesta #4 en: 02 de Enero de 2010, 02:05:37 »
Gracias por la imagen. Si lo quiero simular.

Por ahora con tu ayuda lo hice así, en estos momentos estoy simulando a ver que tal. Luego te aviso como me salió.

Código: ASM
  1. bsf      STATUS,RP0    ; Cambio al banco 1.
  2.     BANKSEL  CMCON
  3.     movlw    b'00000111'   ; .7
  4.     movwf    CMCON         ; Comparadores apagados.
  5.     clrf     ANSEL         ; Pines digitales.
  6.     clrf     TRISA         ; PORTA como salida.
  7.     movlw    b'11111111'
  8.     movwf    TRISB         ; PORTB como entrada.
  9.     bcf      STATUS,RP0    ; Cambio al banco 0.

Efectivamente me funciona así:

Código: ASM
  1. BANKSEL   CMCON         ; Cambio al banco 1.
  2.         movlw       b'00000111'   ; .7
  3.         movwf      CMCON         ; Comparadores apagados.
  4.         clrf           ANSEL          ; Pines digitales.
  5.         clrf           TRISA          ; PORTA como salida.
  6.         movlw      b'11111111'
  7.         movwf      TRISB          ; PORTB como entrada.
  8.         BANKSEL PORTA              ; Cambio al banco 0.
  9.         clrf    PORTA              ; Supuestamente la lámpara y Led apagadas.

Muchísimas gracias por tu tiempo.
« Última modificación: 02 de Enero de 2010, 02:16:42 por Egiptoman »

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Cambio de configuración al 16F
« Respuesta #5 en: 02 de Enero de 2010, 02:13:53 »
Para el debug , te vas a Debugger , select TOOL -MPLAB SIM

Luego para simular las entradas digitales de forma asincrona.

Vas seleccionando el pin y la accion , estado bajo 0 , estado alto 1 ,y para que tome en cuenta el estado del pin , das click a la flechita dice FIRE.

Te pego una imagen.

Saludos!




http://img200.imageshack.us/img200/825/debugasinc.jpg

Desconectado Egiptoman

  • PIC10
  • *
  • Mensajes: 4
Re: Cambio de configuración al 16F
« Respuesta #6 en: 02 de Enero de 2010, 02:22:25 »
Ya respondí arriba editado:


Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Cambio de configuración al 16F
« Respuesta #7 en: 02 de Enero de 2010, 02:25:12 »


Que bien!  :-/ :-/

Saludos!


 

anything