Академический Документы
Профессиональный Документы
Культура Документы
PIC18F1320
CARACTERSTICAS,
PROGRAMACIN Y SIMULACIN
Autor: Ing. GUILLERMO A. FERNNDEZ
Carrera de Ingeniera Electrnica Facultad de Ingeniera
Universidad Nacional de Misiones
Ober Misiones Argentina
- Ao 2014 -
CARACTERSTICAS
PIC18F1220/1320 Diagrama de pines
Memoria de Programa
Micro
Memoria de Datos
Flash
(bytes)
Palabras
de 16 bits
SRAM
(bytes)
EEPROM
(bytes)
PIC18F1220
4K
2048 (2K)
256
256
PIC18F1320
8K
4096 (4K)
256
256
Perifricos o Mdulos:
ESTRUCTURA INTERNA
MEMORIA DE PROGRAMA
CONTADOR DE PROGRAMA (PC)
Registro puntero de 21 bits que especifica la direccin de la prxima
instruccin a ejecutar por la CPU. El usuario puede acceder al PC a
travs de los registros PCLATU(PC<20:16>), PCLATH(PC<15:8>) y
PCL(PC<7:0>).
PILA (STACK)
4K x 16 bits
16 bits
MEMORIA DE
PROGRAMA, STACK y PC
MEMORIA DE PROGRAMA
SRAM
RAM ESTTICA
Registros de Propsito General (GPR)
Estos registros de memoria SRAM son destinados
al almacenamiento de los datos que sern
utilizados por el programa ejecutado en el
microcontrolador.
GPR
SFR
REGISTRO DE ESTADO
El Registro de Estado o STATUS REGISTER, contiene una serie de bits denominados flags, los cuales
representan el estado de las operaciones realizadas en la ALU del microprocesador. Los flags contenidos en
este registro son:
U-0
U-0
U-0
bit 7
R/W-x
R/W-x
R/W-x
R/W-x
R/W-x
bit 0
Bit 7-5
No implementados: La lectura da 0.
Bit 6
N: Bit Negativo. Este flag indica que el resultado es negativo en una operacin con nmeros con signo
(sist.C2).
1 = Resultado negativo.
0 = Resultado positivo.
Bit 3
OV: Bit de Desbordamiento. Este flag indica que el resultado de una operacin con nmeros con
signo (sist.C2) ha superado el lmite de representacin (de -128 a +127).
1 = Hubo desbordamiento.
0 = No hubo desbordamiento.
Bit 2
Z: Bit Cero. Este flag indica cuando el resultado de una operacin da como resultado cero.
1 = Resultado cero.
0 = Resultado distinto de cero.
Bit 1
DC: Bit Acarreo de Dgito. Este flag indica cuando en el resultado de una operacin existe un acarreo
desde el bit3 al bit4, indicando que en los 4 bits menos significativo se ha superado 9 (mayor nmero
en BCD).
1 = Hay acarreo de dgito.
0 = No hay acarreo de dgito.
Bit 0
C: Bit de Acarreo. Este flag indica cuando el resultado de una operacin excede 255.
1 = Hay acarreo .
0 = No hay acarreo.
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez
PALABRAS DE CONFIGURACIN
Para poner en funcionamiento al microcontrolador, primeramente deben configurarse ciertas caractersticas tales
como: tipo de oscilador utilizado, proteccin de la memoria, utilizacin del Perro Guardin (Watchdog Timer,
WDT), etc. Estas caractersticas deben configurarse quemando unos fusibles ubicados en la denominada
Memoria de Configuracin, indicada a continuacin:
Los fusibles en realidad son bits de memoria flash ubicados en las posiciones indicadas en la tabla anterior. Estos bits
pueden ser quemados cuando el microcontrolador es programado (descarga del programa en su memoria flash).
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez
PALABRAS DE CONFIGURACIN
CONFIG1H: Registro de configuracin 1H (Direccin 300001h)
R/P-1
R/P-1
U-0
U-0
R/P-1
bit 7
R/P-1
R/P-1
R/P-1
bit 0
Bit 7
Bit 6
Bit 5-4
No Implementados: La lectura da 0.
Bit 3-0
FOSC<3:0>: 0100
RA6
RA6
FOSC<3:0>: 11xx
FOSC<3:0>: 0001; 0000; 0010; 0110
10
RA6
RA7
RB6
RB7
Osciladores
Internos
DIAGRAMA EN BLOQUES DE
LOS OSCILADORES
Tambin existe otro oscilador, que es del tipo RC. Este es denominado INTRC y produce una seal de reloj con una frecuencia de 31kHz.
Este oscilador puede utilizarse como fuente principal de reloj. Tambin es utilizado como fuente de reloj para el Perro Guardin
(WDT), como fuente de reloj de inicio y como fuente auxiliar de reloj ante falla del oscilador primario indicado en la figura anterior. El
oscilador secundario, principalmente es utilizado como fuente de reloj para el TIMER1 del microcontrolador.
Los dos osciladores internos (INTOSC y INTRC) permiten el funcionamiento como:
INTIO1 (FOSC<3:0>: 1001 ) = Oscilador interno con salida CLKO por RA6 y funcionamiento de RA7/OSC1 como puerto.
INTIO2 (FOSC<3:0>: 1000 ) = Oscilador interno con funcionamiento de RA6/OSC2 y RA7/OSC1 como puertos.
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez
11
FUENTES
DE RESET
(PIC18F1320)
INTERNAS
- Instruccin RESET.
- Llenado y vaciado de la pila (Stack).
- Reset por Watchdog timer (WDT).
EXTERNAS
- Master Clear Reset (MCLR).
- Power On Reset (POR).
- Brown-out Reset (BOR).
INSTRUCCIN RESET
Cuando el microcontrolador ejecuta la instruccin RESET,
se produce la carga de PC con la direccin del Vector de
Reset y los registros SFR son inicializados.
12
DIAGRAMA EN
BLOQUES, WDT
U-0
U-0
R/P-1
R/P-1
R/P-1
R/P-1
bit 7
R/P-1
bit 0
Programacin
Postscaler
En la palabra anterior cuando WDTEN = 1, el funcionamiento del WDT es habilitado. En caso contrario, el usuario puede habilitar el
funcionamiento del WDT a travs del bit SWDTEN del registro SFR denominado WDTCON.
En funcionamiento normal del micro, la finalizacin del temporizado del WDT produce las mismas acciones que los resets anteriores.
Cuando el micro se encuentra en un estado de bajo consumo (IDLE o SLEEP), la finalizacin del temporizado del WDT hace que el mismo
se despierte (wake-up). El despertar del micro, hace que este comience a ejecutar el programa desde donde haba quedado cuando
entr en el modo bajo consumo.
RA5
13
El circuito de la figura es utilizado cuando la fuente de alimentacin del micro es lenta para alcanzar
el valor de final de operacin. El valor del capacitor debe escogerse de tal forma que la constante de
tiempo de este circuito auxiliar supere varias veces el tiempo que la fuente de alimentacin tarda en
alcanzar el valor VDD(min).
14
U-0
U-0
U-0
R/P-1
R/P-1
R/P-1
bit 7
R/P-1
bit 0
Bit 7-4
No Implementados: La lectura da 0.
Bit 3-2
Bit 1
Bit 0
15
RCON
STKPTR
16
PROGRAMACIN EN EL MPLAB
A continuacin se explica la metodologa para desarrollar y simular un programa correspondiente
al microcontrolador PIC18F1320. Para esto es utilizado un programa de ejemplo, cuyo enunciado
est indicado a continuacin.
PROGRAMA 1
Determinar la posicin del UNO de mayor peso en un dato alojado en la memoria RAM del
microcontrolador PIC18F1320. Las posiciones de los bits pueden ser de 0 a 7.
PASOS:
Paso 1: DIAGRAMA DE FLUJO
Paso 2: PROGRAMAR
Paso 3: SIMULAR
17
PROGRAMACIN EN EL MPLAB
Paso 1: DIAGRAMA DE FLUJO
Leer e interpretar el problema y a partir
de esto confeccionar el diagrama de
flujo que representar la estructura del
programa, cumpliendo con la funcin
requerida. Cuanto ms general es el
programa, es mas fcil de entender lo
que realiza el mismo.
Para un programa puede realizarse un
diagrama de flujo general y tambin
diagramas de flujo para explicar cada
parte del diagrama general (esto es una
buena prctica para realizar).
Para ste ejemplo, el diagrama de flujo
prcticamente describe los pasos que
ejecutar el programa
18
PROGRAMACIN EN EL MPLAB
Paso 2: PROGRAMA EN ASSEMBLER
Para realizar el programa, ser utilizado el Entorno de Desarrollo Integrado MPLAB, el cual es
provisto de forma gratuita por Microchip (puede bajarse de la red). Esta herramienta contiene una
serie de programas que permiten el desarrollo de Sistemas Embebidos (Embedded System).
Algunos de los programas incluidos en MPLAB son:
- MPLAB Editor: Este programa es un editor de texto donde se escribe el cdigo fuente (cdigo en
assembler). El archivo generado con este programa posee un extensin .asm.
- MPASM Assembler: Programa ensamblador que convierte el cdigo fuente en cdigo mquina
(cdigo objeto). Al ensamblar un programa (archivo .asm), se generan varios archivos. Algunos
de ellos son:
- .HEX: Contiene el cdigo mquina que ser cargado en el micro.
- .cof: Es utilizado para hacer el debugging del programa (por ejemplo la simulacin).
- .lst: Es una lista donde aparece de forma ordenada el cdigo mquina de cada
instruccin, junto a la instruccin en assembler.
- MPLAB Linker: Programa que combina diferentes archivos (generados por otros programas del
MPLAB), para generar un solo cdigo mquina (archivo .HEX).
Los programas mencionados, estn incorporados en el MPLAB. El entorno de desarrollo MPLAB,
tambin permite agregar programas compiladores de lenguaje C, por ejemplo: C18 y C30 (de
Microchip), PIC-C (de CCS) o PICC (de HI-TECH). El MPLAB tambin permite programar los micro
controladores a travs de programadores tales como: PICkit2, ICD2, etc. (todos fabricados por
Microchip) .
U.Na.M. Facultad de Ingeniera Tcnicas Digitales 2 Ing. Guillermo A. Fernndez
19
PROGRAMACIN EN EL MPLAB
Para escribir un programa y realizar el debbuging (simulacin), debern realizarse los siguientes pasos luego de abrir el
MPLAB (para mayor informacin ver MPLAB_Guia_rapida.pdf):
PASO A: CREAR UN PROYECTO EN MPLAB
Men Project Project Wizard
Welcome!
Siguiente
Step One
Device: Escoger dispositivo
Siguiente
Step Two
Active Toolsuite: Escoger Microchip MPASM Toolsuite
Siguiente
Step Three
Create New Project File: Browse Escoger ubicacin y nombre del proyecto
(Ej: Prueba) Guardar
Siguiente
Step Four
Siguiente
Summary
Siguiente
PASO B: CREAR PROGRAMA EN EL EDITOR
Men File New Con esto abre ventana del editor, donde puede escribirse el programa.
Men File Save As Escoger nombre para el programa y asignar extensin .asm
(Ej: Prueba.asm)
Guardar
PASO C: ANEXAR PROGRAMA AL PROYECTO
Men View Activar con tilde Project y Output (pueden aparecer con el tilde por
defecto).
Men Window Seleccionar la ventana de proyecto (Ej: Prueba.mcw)
Click derecho sobre carpeta Source Files Add Files Seleccionar el archivo .asm
generado en el paso anterior
(Ej: Prueba.asm ).
PASO D: ESCRIBIR PROGRAMA
Luego de los pasos previos, seleccionando la ventana del editor puede escribirse el
programa. Para esto debern considerarse los siguientes aspectos:
20
PROGRAMACIN EN EL MPLAB
Encabezado
Define micro y sistema de
numeracin por defecto.
Incluye archivo con
etiquetas correspondiente
a registros SFR.
Configura caractersticas de
funcionamiento del micro
(Ej: Tipo de oscilador, perro
guardin, etc.)
21
PROGRAMACIN EN EL MPLAB
Define etiquetas para
direcciones de memoria
RAM. Etiquetado relativo
(0x000 es la primera
direccin de RAM), permite
agregar etiquetas fcilmente
sin re-direccionar.
Define etiquetas para
valores inmediatos.
Etiquetado absoluto, slo
conveniente para valores
numricos.
Comienza el programa
en la memoria FLASH. El
programa estar
almacenado a partir de La
direccin 0x000.
Inicializacin de las
direcciones de RAM.
22
PROGRAMACIN EN EL MPLAB
Resto del programa
Mnemnico
o Directiva
Operandos
;Comentarios
23
SIMULACIN EN EL MPLAB
Paso 3: SIMULACIN DEL PROGRAMA
ENSAMBLADO: Una vez que se ha escrito el programa en el editor, deber ensamblarse a los efectos de generar
los archivos necesarios para la simulacin y el grabado de la memoria de programa del micro. Para realizar el
ensamblado hacer click en el botn Build All de la barra de herramientas.
Build All
Con esto tambin sern guardados todos los cambios efectuados en el proyecto presente. Si el ensamblado ha
sido correcto, en la ventana output aparece BUILD SUCCEEDED. Cerrando la ventana mencionada, puede
continuarse con la simulacin del programa.
Para efectuar la simulacin, debe activarse el programa MPLAB SIM, esto se efecta de la siguiente forma:
Men Debugger Select Tool 4 MPLAB SIM
Con esto aparecern en la barra de herramientas los siguientes botones para la simulacin.
Para agregar un
punto de parada
(Breackpoint)
Ejecucin
continua
Ejecucin
animada
Ejecucin Reset
paso a paso
24
SIMULACIN EN EL MPLAB
Para efectuar la simulacin y comprobar el funcionamiento del programa realizado, adems de la ventana correspondiente al
editor, debern abrirse las ventanas WATCH y STOPWATCH. La primera permite visualizar el contenido de los registros internos
del micro (SFR y GPR), a medida que son ejecutadas las instrucciones del programa. La segunda ventana permite observar el
tiempo que demora la ejecucin del programa, como as tambin la cantidad de ciclos de instruccin ejecutados.
Ventana
WATCH
Ventana
del editor
Ventana
STOPWATCH
Punto de
parada
NOTA: Para que las ventanas aparezcan como en la figura anterior, el usuario
debe ubicarlas.
Ventana Output
Indica si el ensamblado
ha sido correcto
25
SIMULACIN EN EL MPLAB
Para visualizar las ventanas mencionadas, debe procederse de la siguiente forma:
Ventana WATCH: Men View WATCH
Esta ventana, a travs de los botones Add SFR y Add Symbol, pueden agregarse a
la ventana registros SFR y registros de memoria GPR (direcciones de RAM, que
utiliza el programa ensamblado)
Ventana Output: Men View Output
Ventana STOPWATCH: Men Debugger STOPWATCH
Para computar adecuadamente el tiempo, debe ajustarse la frecuencia del
oscilador al valor con que trabajar el microcontrolador (Ej: 4 MHz). Para
esto debe procederse de la siguiente forma:
Men Debugger Settings En la ventana que aparece seleccionar
Osc/Trace y modificar la frecuencia.
Aplicar
Aceptar
NOTA: Para mayor informacin sobre los puntos anteriores, puede consultarse en
MPLAB_Guia_rapida.pdf.
26