Translate, Traductor

Mostrando entradas con la etiqueta 16F88. Mostrar todas las entradas
Mostrando entradas con la etiqueta 16F88. Mostrar todas las entradas

miércoles, 19 de octubre de 2016

Hola Mundo con el PIC 16F88

Este es un ejemplo de uso del PIC 16F88, donde usamos una configuración básica para hacer prender y apagar un LED con un intervalo de 1 segundo.


Fritzing


Hacemos uso de información en entradas anteriores donde explicaba sobre los Bits de configuración y una plantilla básica.

El ejemplo se compilo con la versión 3.5 del MPLAB X IDE y se uso un programador PICKIT 3

El código fuente completo lo puedes encontrar en GitHub y el vídeo de como funciona en Youtube.

Clik aqui para el Repositorio en GitHub




Revisemos el programa:

1  Importamos la librería del Microcontrolador:




2  Escribimos los Bits de configuración del micro, esto lo hice con la herramienta del MPLAB que nos facilita la generación de la configuración:



Esta es una vista de la Herramienta de configuración de Bits que esta en la parte inferior de la ventana del MPLA IDE:



3  Asignamos memoria de usuario a las variables, esto lo hacemos a partir de la posición 0x20 que es donde empiezan los GPR (Registro de Propósito General, lo podes consultar en el manual)



4  Iniciamos la configuración de los puertos:



5  Y comenzamos a escribir el programa:


Te invito a Que descargues el código fuente y lo analices: Clik aqui para el Repositorio en GitHub


sábado, 26 de mayo de 2012

Plantilla y fusibles para programar el 16F88


Plantilla para trabajar con el PIC 16F88, esta configurado para trabajar con oscilador interno a 4 MHz

Seria interesante que la comparen con la plantilla de otro microcontrolador para que se den cuenta de las diferencias que hay cunado se cambia de referencia y que no es tan complicado

LIST P=16F88
INCLUDE P16F88.INC

__CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO
__CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF

CBLOCK 0X20

ENDC



ORG 00
GOTO CONFIGURA

;En este espacio podemos colocar los retardos y otras subrrutinas



CONFIGURA  NOP
BANKSEL TRISB
CLRF ANSEL
MOVLW B'01101100'
MOVWF OSCCON
        MOVLW     B'00000000'    ;  1 entrada, 0 salida
        MOVWF     TRISA
        MOVLW     B'00000000'    ;   1 entrada, 0 salida
        MOVWF     TRISB
BANKSEL PORTB
CLRF PORTB

INICIO  
       
       GOTO     INICIO



END

viernes, 13 de agosto de 2010

Fusibles de configuracion "Bit's de configuracion" de los PIC's

Los bit's de configuracion o mas comunmente llamados "fusibles" permiten confugurar ciertas funciones en los microcontroladores PIC, como el tipo de cristal para el oscilador, permiten proteger el codigo en el micro, entre muchas funciones. La cantidad de funciones que se pueden configurar con los fusibles dependen del microcontrolador, si tenemos en el 16F84A  4 funciones, en el 16F88 son alrededor de 13 funciones.

Bueno y para que sirven?
Como lo dije antes son para configurar algunas funciones del micro, como el tipo de oscilador, la proteccion de codigo, habilitar el perro guardian ( por que si no este los muerde), habilitar el reset maestro, habilitar un reset inicial, habilitar reset por bajo voltage en la fuente, y otros que como les dije depende del micro usado.

Ahhh y cuando se usan??
En el momento en que se quiere programar el micro se le deben configurar los fusibles ( esto es usando un software como el WINPIC800,  me parece necesario agradecer a los creadores de este software quienes nos permiten descargarlo y usarlo sin ningun problema, www.winpic800.com,  GRACIAS!!!!!!) y si estamos usando alguno de los programadores de MICROCHIP como el pickit2 o el pickit3 debemos escribir la configuracion de estos fusibles en la cabecera de nuestro fuente antes de compilar.

Como se que fusibles usa  mi pequeño monstruo?
Como siempre digo "pues en el manual del micro", jeje suena obvio, y los podes obtener del fichero que incluimos en la cabecera del fuente,  el  P16F88.INC por ejemplo, que se encuentra en la carpeta "MPASM suite" que esta dentro de la carpeta "microchip" donde instalamos el MPLAB, ojo que el nombre del fichero depende del micro.

De los ficheros antes mencionados obtube lo siguiente:

Para el 16F84A


_CP_ON                       EQU     H'000F'
_CP_OFF                      EQU     H'3FFF'
_PWRTE_ON                    EQU     H'3FF7'
_PWRTE_OFF                   EQU     H'3FFF'
_WDT_ON                      EQU     H'3FFF'
_WDT_OFF                     EQU     H'3FFB'
_LP_OSC                      EQU     H'3FFC'
_XT_OSC                      EQU     H'3FFD'
_HS_OSC                      EQU     H'3FFE'
_RC_OSC                      EQU     H'3FFF'

de donde se arma nuestra palabra de configuracion anteponiendo la directiva  "__CONFIG"

__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &  _XT_OSC

Que es lo que debemos poner en la cabecera del fuente.

Aqui va la del 16F88


_CONFIG1               EQU     H'2007'
_CONFIG2                EQU     H'2008'

;Configuration Byte 1 Options
_CP_ALL                               EQU     H'1FFF'
_CP_OFF                              EQU     H'3FFF'
_CCP1_RB0                              EQU     H'3FFF'
_CCP1_RB3                              EQU     H'2FFF'
_DEBUG_OFF                              EQU     H'3FFF'
_DEBUG_ON                               EQU     H'37FF'
_WRT_PROTECT_OFF               EQU     H'3FFF' ;No program memory write protection
_WRT_PROTECT_256               EQU     H'3DFF' ;First 256 program memory protected
_WRT_PROTECT_2048            EQU     H'3BFF' ;First 2048 program memory protected
_WRT_PROTECT_ALL             EQU     H'39FF' ;All of program memory protected
_CPD_ON                               EQU     H'3EFF'
_CPD_OFF                               EQU     H'3FFF'
_LVP_ON                              EQU     H'3FFF'
_LVP_OFF                              EQU     H'3F7F'
_BODEN_ON                               EQU     H'3FFF'
_BODEN_OFF                              EQU     H'3FBF'
_MCLR_ON                              EQU     H'3FFF'
_MCLR_OFF                              EQU     H'3FDF'
_PWRTE_OFF                              EQU     H'3FFF'
_PWRTE_ON                               EQU     H'3FF7'
_WDT_ON                              EQU     H'3FFF'
_WDT_OFF                              EQU     H'3FFB'
_EXTRC_CLKOUT                 EQU     H'3FFF'
_EXTRC_IO               EQU     H'3FFE'
_INTRC_CLKOUT               EQU     H'3FFD'
_INTRC_IO                              EQU     H'3FFC'
_EXTCLK                               EQU     H'3FEF'
_HS_OSC                              EQU     H'3FEE'
_XT_OSC                                EQU     H'3FED'
_LP_OSC                               EQU     H'3FEC'

;Configuration Byte 2 Options
_IESO_ON                               EQU     H'3FFF'
_IESO_OFF                               EQU     H'3FFD'
_FCMEN_ON                               EQU     H'3FFF'
_FCMEN_OFF                              EQU     H'3FFE'



y la palabra seria algo como esto:

__CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

;Program Configuration Register 2
__CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF


Si necesitan de otro micro la pueden consultar el el fichero del micro como les comente antes, ahhh  bueno pues!!!!  me pueden escribir yo se las pongo aqui.