Autor Tema: Practicas con el PIC18F13K22  (Leído 5385 veces)

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

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Practicas con el PIC18F13K22
« en: 16 de Agosto de 2014, 18:05:43 »
Que tal amigos, se poco de programación y regularmente he realizado pequeños proyectos con los pics clásicos. 16F84,16F877,16F886,16F887,16F628A y algunos otros con PIC18F, igual de los más comunes esta ocasión quiero compartir con ustedes si me lo permiten y al mismo tiempo aprender juntos, a manejar todos los periféricos con este pic de la serie 18FxxK. He leido poco sobre ellos y me parecen interesantes, este en particular tiene un oscilador interno de 16Mhz. Lo cual me parece bien en comparación de los anteriores, espero que sea de su agrado y si es asi seguire posteando un poco más....  :) solo como comentario a veces quisiera que aquellos que no somos famosos en el foro nos dieran un poco mas de ayuda.... Pero fuera de eso me encanta este foro a pesar de que casi no he colaborado quiero comenzar con algo.

Saludos amigos desde Toluca  :-)
****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************PRIMER CÒDIGO Y CONFIGURACIÒN************************************************************

   LIST p=18F13K22
   #INCLUDE <p18f13k22.inc>
   CONFIG   FOSC    = IRC
   CONFIG   PLLEN    = ON   
   CONFIG   BOREN   = OFF
   CONFIG   WDTEN   = OFF
   CONFIG   MCLRE    = OFF
   CONFIG   HFOFST   = OFF
   CONFIG   LVP    = OFF
   CONFIG    CP0    = ON
   CONFIG    CP1    = ON
   CONFIG    CPB    = OFF
   CONFIG    CPD    = OFF
   CONFIG    WRT0    = OFF
   CONFIG    WRT1    = OFF
   CONFIG    WRTB    = OFF
   CONFIG    WRTD    = OFF
   CONFIG    EBTR0    = OFF
   CONFIG    EBTR1    = OFF
   CONFIG    EBTRB    = OFF

   CBLOCK 0x000
   ENDC

   ORG      0x00
   GOTO   INICIO
   ORG      0x008
   RETFIE;ALTA_PRIORIDAD
   ORG      0x018
   ;BAJA_PRIORIDAD
   RETFIE
;**************************************************************
INICIO
   BSF      OSCCON,IRCF2    ;CONFIGURO EL OSCILADOR INTERNO
   BSF      OSCCON,IRCF1    ;A 16MHZ
   BSF      OSCCON,IRCF0
;
   CLRF   SLRCON
   CLRF   ANSEL         ;CONFIGURAMOS TODOS LOS PINES
   CLRF   ANSELH         ;COMO I/O DIGITAL
;
;CONFIGURACION DE LOS PUERTOS
   CLRF   PORTA               ;PONGO TODAS LAS SALIDAS
   CLRF   PORTB               ;EN NIVEL BAJO
   CLRF   PORTC
   CLRF   LATA
   CLRF   LATB
   CLRF   LATC
   CLRF   TRISA               ;CONFGIRO LOS PUERTOS
   CLRF   TRISB               ;COMO SALIDAS
   CLRF   TRISC


PRINCIPAL
   SETF PORTA
   SETF PORTB
   SETF PORTC
   GOTO PRINCIPAL


   END




ANEXO UN PEQUE CIRCUITO DE PROTEUS PARA IR PROBANDO LAS PRACTICAS.............

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Re: Practicas con el PIC18F13K22
« Respuesta #1 en: 16 de Agosto de 2014, 18:08:28 »
proteus....

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Re: Practicas con el PIC18F13K22
« Respuesta #2 en: 16 de Agosto de 2014, 18:44:03 »
Ese programa practicamente fue para echarlo a andar, en proteus me sale un mensaje de que no esta corriendo bien pero físicamente no hay problema alguno....

Bien ahora vamos a realizar algo más....
**************************************************************************************************************************************************

   LIST p=18F13K22
   #INCLUDE <p18f13k22.inc>
   CONFIG   FOSC    = IRC
   CONFIG   PLLEN    = ON   
   CONFIG   BOREN   = OFF
   CONFIG   WDTEN   = OFF
   CONFIG   MCLRE    = OFF
   CONFIG   HFOFST   = OFF
   CONFIG   LVP    = OFF
   CONFIG    CP0    = ON
   CONFIG    CP1    = ON
   CONFIG    CPB    = OFF
   CONFIG    CPD    = OFF
   CONFIG    WRT0    = OFF
   CONFIG    WRT1    = OFF
   CONFIG    WRTB    = OFF
   CONFIG    WRTD    = OFF
   CONFIG    EBTR0    = OFF
   CONFIG    EBTR1    = OFF
   CONFIG    EBTRB    = OFF

   CBLOCK 0x000
   ENDC

   ORG      0x00
   GOTO   INICIO
   ORG      0x008
   RETFIE;ALTA_PRIORIDAD
   ORG      0x018
   ;BAJA_PRIORIDAD
   RETFIE
;**************************************************************
INICIO
   BSF      OSCCON,IRCF2    ;CONFIGURO EL OSCILADOR INTERNO
   BSF      OSCCON,IRCF1    ;A 16MHZ
   BSF      OSCCON,IRCF0
;
   CLRF   SLRCON
   CLRF   ANSEL         ;CONFIGURAMOS TODOS LOS PINES
   CLRF   ANSELH         ;COMO I/O DIGITAL
;
;CONFIGURACION DE LOS PUERTOS
   CLRF   PORTA               ;PONGO TODAS LAS SALIDAS
   CLRF   PORTB               ;EN NIVEL BAJO
   CLRF   PORTC
   CLRF   LATA
   CLRF   LATB
   CLRF   LATC
   CLRF   TRISA               ;CONFGIRO LOS PUERTOS
   CLRF   TRISB               ;COMO SALIDAS
   CLRF   TRISC

   CALL INI_TMR

PRINCIPAL
   SETF PORTA
   SETF PORTB
   SETF PORTC
   MOVLW .1
   CALL RET_X1s
   CLRF PORTA
   CLRF PORTB
   CLRF PORTC
   MOVLW .1
   CALL RET_X1s
   GOTO PRINCIPAL

#INCLUDE<RET.INC>

   END




GENERAMOS UN RETARDO DE 1 SEGUNDO Y EMPEZAMOS A CONSTRUIR LA LIBRERIA DE RETARDOS.....

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Re: Practicas con el PIC18F13K22
« Respuesta #3 en: 16 de Agosto de 2014, 18:45:20 »
LA LIBRERIA ES:



   CBLOCK
   TMR0H_AUX
   TMR0L_AUX
   CONTADOR_RETARDO
   NUMERO_L_AUX
   NUMERO_H_AUX
   ENDC

INI_TMR
;CONFIGURACION DEL TIMER PARA RETARDOS EN ms
   MOVLW   B'00000000'
   MOVWF   T0CON
   RETURN

RET_X1s
   MOVWF   CONTADOR_RETARDO
   BSF      T0CON,T0PS2
   BSF      T0CON,T0PS1
   BSF      T0CON,T0PS0
   MOVLW   0xF6
   MOVWF   TMR0H_AUX
   MOVLW   0x00
   MOVWF   TMR0L_AUX
   ;GOTO   RETARDOS

RETARDOS
   COMF   TMR0H_AUX,W
   MOVWF   TMR0H
   COMF   TMR0L_AUX,W
   MOVWF   TMR0L
   BSF      T0CON,TMR0ON
CICLO_RETARDO
   BTFSS   INTCON,TMR0IF
   GOTO   CICLO_RETARDO
   BCF      INTCON,TMR0IF
   DECFSZ   CONTADOR_RETARDO
   GOTO   RETARDOS
   RETURN

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Re: Practicas con el PIC18F13K22
« Respuesta #4 en: 16 de Agosto de 2014, 18:47:06 »
Si se dan cuenta en la libreria tengo una subrutina que indica que inicie el timer ya que con esto me aseguro que los retardos sean un poco más precisos, con el osciloscopio pudimos ver que el retardo es de 1.01 S lo que nos dice que estan sobrando 10ms entonces tendremos que ajustar el numero del timer....

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Re: Practicas con el PIC18F13K22
« Respuesta #5 en: 17 de Agosto de 2014, 00:37:47 »
Corrigiendo el valor del timer para el segundo exacto es:

   MOVLW   0xF5
   MOVWF   TMR0H_AUX
   MOVLW   0x00
   MOVWF   TMR0L_AUX

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Re: Practicas con el PIC18F13K22
« Respuesta #6 en: 17 de Agosto de 2014, 01:37:20 »
RET_X100ms
   MOVWF   CONTADOR_RETARDO
   BSF      T0CON,T0PS2
   BCF      T0CON,T0PS1
   BSF      T0CON,T0PS0
   MOVLW   0x62
   MOVWF   TMR0H_AUX
   MOVLW   0x00
   MOVWF   TMR0L_AUX
   GOTO   RETARDOS
RET_X10ms
   MOVWF   CONTADOR_RETARDO
   BCF      T0CON,T0PS2
   BCF      T0CON,T0PS1
   BSF      T0CON,T0PS0
   MOVLW   0x9E
   MOVWF   TMR0H_AUX
   MOVLW   0x00
   MOVWF   TMR0L_AUX
   GOTO   RETARDOS
RET_Xms
   MOVWF   CONTADOR_RETARDO
   BCF      T0CON,T0PS2
   BCF      T0CON,T0PS1
   BCF      T0CON,T0PS0
   MOVLW   0x1F
   MOVWF   TMR0H_AUX
   MOVLW   0x50
   MOVWF   TMR0L_AUX
   GOTO    RETARDOS
RET_X100us
   MOVWF   CONTADOR_RETARDO
   BCF      T0CON,T0PS2
   BCF      T0CON,T0PS1
   BCF      T0CON,T0PS0
   MOVLW   0x03
   MOVWF   TMR0H_AUX
   MOVLW   0x0E
   MOVWF   TMR0L_AUX
   GOTO RETARDOS
RET_X10us
   MOVWF   CONTADOR_RETARDO
   BCF      T0CON,T0PS2
   BCF      T0CON,T0PS1
   BCF      T0CON,T0PS0
   MOVLW   0x00
   MOVWF   TMR0H_AUX
   MOVLW   0x3E
   MOVWF   TMR0L_AUX
RETARDOS
   COMF   TMR0H_AUX,W
   MOVWF   TMR0H
   COMF   TMR0L_AUX,W
   MOVWF   TMR0L
   BSF      T0CON,TMR0ON
CICLO_RETARDO
   BTFSS   INTCON,TMR0IF
   GOTO   CICLO_RETARDO
   BCF      INTCON,TMR0IF
   DECFSZ   CONTADOR_RETARDO
   GOTO   RETARDOS
   RETURN

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Re: Practicas con el PIC18F13K22
« Respuesta #7 en: 17 de Agosto de 2014, 01:39:18 »
Las imagenes de proteus dicen que todo esta bien

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Practicas con el PIC18F13K22
« Respuesta #8 en: 17 de Agosto de 2014, 04:53:11 »
Gracias por compartirlo Pinolillo, siempre esta bien tener algunos ejemplos para la serie 18FXXXX.

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Practicas con el PIC18F13K22
« Respuesta #9 en: 17 de Agosto de 2014, 14:30:52 »
Gracias por compartirlo, tiene buenas caracteristicas este micro,oscilador interno hasta 64Mhz con PLL, seria interesante ver en fisico el tema el consumo.
 ;-)
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Re: Practicas con el PIC18F13K22
« Respuesta #10 en: 17 de Agosto de 2014, 20:40:48 »
Cierto jhozate  :D olvide mencionar lo del PLL con esto si anda de maravilla, al menos es uno de los mejores con los que he trabajado

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Re: Practicas con el PIC18F13K22
« Respuesta #11 en: 17 de Agosto de 2014, 20:42:08 »
Bien ahora el siguiente programa es para un canal ADC:

   LIST p=18F13K22
   #INCLUDE <p18f13k22.inc>
   CONFIG   FOSC    = IRC
   CONFIG   PLLEN    = ON   
   CONFIG   BOREN   = OFF
   CONFIG   WDTEN   = OFF
   CONFIG   MCLRE    = OFF
   CONFIG   HFOFST   = OFF
   CONFIG   LVP    = OFF
   CONFIG    CP0    = ON
   CONFIG    CP1    = ON
   CONFIG    CPB    = OFF
   CONFIG    CPD    = OFF
   CONFIG    WRT0    = OFF
   CONFIG    WRT1    = OFF
   CONFIG    WRTB    = OFF
   CONFIG    WRTD    = OFF
   CONFIG    EBTR0    = OFF
   CONFIG    EBTR1    = OFF
   CONFIG    EBTRB    = OFF

   CBLOCK 0x000
   VL
   VH
   ENDC

   ORG      0x00
   GOTO   INICIO
   ORG      0x008
   RETFIE;ALTA_PRIORIDAD
   ORG      0x018
   ;BAJA_PRIORIDAD
   RETFIE
;**************************************************************
INICIO
   BSF      OSCCON,IRCF2    ;CONFIGURO EL OSCILADOR INTERNO
   BSF      OSCCON,IRCF1    ;A 16MHZ
   BSF      OSCCON,IRCF0
;
   CLRF   SLRCON
   CLRF   ANSEL         ;CONFIGURAMOS TODOS LOS PINES
   CLRF   ANSELH         ;COMO I/O DIGITAL
   
;CONFIGURACION DE LOS PUERTOS
   CLRF   PORTA               ;PONGO TODAS LAS SALIDAS
   CLRF   PORTB               ;EN NIVEL BAJO
   CLRF   PORTC
   CLRF   LATA
   CLRF   LATB
   CLRF   LATC
   CLRF   TRISA               ;CONFGIRO LOS PUERTOS
   CLRF   TRISB               ;COMO SALIDAS
   CLRF   TRISC

   CALL CONF_ADC
   CALL INI_TMR
   CLRF VL
   CLRF VH


PRINCIPAL
   CALL CON_CH0
   MOVFF VH,PORTC
   MOVFF VL,PORTB
   GOTO PRINCIPAL
CONF_ADC
   MOVLW   B'00001110'; JUSTIFICADO A LA IZQUIERDA
   MOVWF   ADCON2
   CLRF    ADCON1
   MOVLW    B'00000000'; VAMOS A SELECCIONAR EL ADC 0 Y HABILITAR EL PUERTO DE CONVERSIÓN
   MOVWF    ADCON0
   BSF      TRISA,0
   BSF    ANSEL,ANS0      ;CONFIGURAMOS LA ENTRADA A0 PARA LEERLA
   RETURN
CON_CH0
   BSF    ADCON0,ADON
   BSF    ADCON0,GO
PROCESO
   BTFSC   ADCON0,GO
   BRA      PROCESO
   MOVFF   ADRESH,VH
   MOVFF   ADRESL,VL
   RETURN       

#INCLUDE<RET.INC>

   END

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Re: Practicas con el PIC18F13K22
« Respuesta #12 en: 17 de Agosto de 2014, 20:44:07 »
Como se observa en el ejemplo hice dos tomas una a casi 5V y otra a 2.5 los leds al parecer me indican que todo es correcto  :) espero que les sirva y como les comente, tambien apenas comienzo a conocer un poco mas sobre los pics, asi que si desean que juntos aprendamos algo en especial sobre este micro acepto sugerencias....

Saludos

Desconectado vixctor

  • PIC16
  • ***
  • Mensajes: 109
Re: Practicas con el PIC18F13K22
« Respuesta #13 en: 17 de Agosto de 2014, 22:57:17 »
Como se observa en el ejemplo hice dos tomas una a casi 5V y otra a 2.5 los leds al parecer me indican que todo es correcto  :) espero que les sirva y como les comente, tambien apenas comienzo a conocer un poco mas sobre los pics, asi que si desean que juntos aprendamos algo en especial sobre este micro acepto sugerencias....

Saludos

Yo te sugeriria cambiar los GOTO por BRA, y los CALL por RCALL

BRA hace lo mismo que goto, pero ocupa 1 solo word del PIC (Goto ocupa 2) y eso es porque bra es relativo a + - 128 instrucciones, eso significa que para saltos cortos es preferible usar BRA que goto y lo mismo aplica para RCALL, que hace lo mismo que CALL pero el llamado lo hace a rutinas que estan + - 1024 instrucciones...

Saludos

Desconectado Pinolillo16

  • PIC18
  • ****
  • Mensajes: 324
Re: Practicas con el PIC18F13K22
« Respuesta #14 en: 18 de Agosto de 2014, 00:01:11 »
Gracias Victor por las sugerencias lo tomare mucho en cuenta para los demás codigos  ;-)