Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacin Assembler de
PIC
Lnea Base
ARG003 - DVD
Aprendiendo PIC
Rango Medio
Aprendiendo PIC
Rango Medio
Clas
es
Inter
activ
TM
ARG003
es
Inter
activ
as
con
audi
o y
anim
i
Comenzando con
PIC
Rango Medio
A i t t S t d I t i
audi
o y
anim
acio
nes.
Ar qui t ec t ur a, Set de I nst r uc c i ones y
Pr ogr amac i n en Assembl er
Clases Interactivas con audio y
animaciones.
mc
Programa
electronics
mc
2005 Microchip Technology Incorporated. All Rights Reserved. Slide 1
mc
certificado por
Microchip
Technology Inc.
electronics
mc
Objetivos de la Clase j
Cuando usted finalice la clase Cuando usted finalice la clase
podr:
Entender lo bsico sobre la
arquitectura de un PIC16 arquitectura de un PIC16
Entender las instrucciones
Entender la organizacin de
Memoria Memoria
Entender como escribir programas
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 2
Entender como escribir programas
simples
Agenda g
G Arquitectura Bsica G Arquitectura Bsica
G Revisin del Set de Instrucciones
G Modos de direccionamiento y
organizacin de la Memoria organizacin de la Memoria
G Caractersticas Especiales G Caractersticas Especiales
G Metiendo las manos en
Ej i i Ejercicios
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 3
Arquitectura q
G El alto rendimiento de los microcontroladores
PIC
i t ll d t ib id l PIC
n
7Bh
7Ch
7Dh
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
FF
disrecciones
del Archivo de
Registros
D
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 26
7Eh
7Fh
FF
FF
FF
FF
FF
FF
Direccionamiento Directo
FF FF
80h INDF
Bank 1
FF FF
Address Bank 0
INDF 00h
Address
Register File
Ejemplo: Inicializar bits 0~3 como
salida en el PORTB
FF FF
FF FF
FF FF
80h : INDF
81h : OPTION
82h : PCL
FF FF
FF FF
FF FF
INDF: 00h
TMR0: 01h
PCL : 02h
F0 F0
Registro W :
38 38
FF FF
FF FF
83h : STATUS
38 38
FF FF
FF FF
84h : FSR
85h TRISA
STATUS: 03h
FSR: 04h
PORTA 05h
00 11 00 00 00 00 00 00 00
9-Bit Direccin Efectiva:
7-bits desde la Instruccin RP0 RP1
FF FF
FF FF
FF FF
FF FF
FF FF
FF FF
85h : TRISA
86h : TRISB
87h : TRISC
PORTA: 05h
PORTB: 06h
PORTC: 07h
bsf STATUS,RP0
bts desde a st ucc 0
FF FF
FF FF
FF FF
FF FF
20h
21h
A0h
A1h
bsf STATUS,RP0
movlw b11110000
movwf TRISB
FF FF
FF FF
FF FF
FF FF
FF FF
FF FF
22h
21h
23h
A2h
A1h
A3h
bcf STATUS,RP0
clrf PORTB
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 27
Bin Dec Hex
Direccionamiento Indirecto
8-bits Desde el FSR
9-bit de Direccin
1-bit dede
STATUS
00
IRP
00 00 0x1FC 0x1FC
FSR
00 00 00 00 00 00
FF
FF
000h
001h
Bank 2,3 Bank 0,1
100h
101h
FF
1C
FF
002h
003h
004h
102h
103h
104h
FF FF
005h
0FAh
FF FF
Bus de
disrecciones
105h
1FAh
0FBh
0FCh
0FDh
FF
FF
FF
FF
FF
FF
disrecciones
del Archivo de
Registros
1FBh
1FCh
1FDh
1FEh
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 28
0FEh
0FFh
FF
FF
FF
FF
1FEh
1FFh
Direccionamiento Indirecto
00
FF
00h : INDF
Register File Address
01h : TMR0
W Register:
Example: Clear all RAM locations from 20h to 7Fh
FF
02h : PCL
03h : STATUS
FF
18
01h : TMR0
0 0 0 0 0 0 0 0 0
9-Bit Effective Address:
20
04h : FSR
20h
80
00
bcf STATUS IRP
0 0 0 0 0 0 0 0 0
FSR IRP
20h
21h
22h
movlw 0x20
movwf FSR
00
00
00
bcf STATUS,IRP
23h
7Dh
LOOP
movwf FSR
clrf INDF
incf FSR,f
00
00
80h
7Fh
7Eh
,
btfss FSR,7
goto LOOP
00
00
00
FF
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 29
80h
g
<next instruction>
FF
Organizacin de la Memoria de
Programa
G Memoria de Programa
Reset Vector 0000h
14-bits
Programa
G Memoria de Programa
se divide en cuatro
pginas de 2k14
Interrupt Vector
Pagina 0
PCH = 00h
0004h
2k
p g
G Requerido para
mantener palabras de
PCH = 00h
Pagina 1
PCH 08h
0800h
2k
mantener palabras de
instrucciones de
ejecucin en un ciclo
PCH = 08h
1000h
j
simple
G El paginado solo se
Pagina 2
PCH = 10h
2k
G El paginado solo se
toma en cuenta en los
CALL y GOTO fuera de
Pagina 3
PCH = 18h
1800h
2k
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 30
y
la pgina
PCH = 18h
1FFFh
Contador de Programa g
0 1 2 3 4 5 6 7 8 9 10 11 12
PCL PCH
P C t
0 0 0 0 0 0 0 0 0 0 0 0 0
Program Counter
G Con un PC de 13-bit de direcciona: 2
13
= 8192 words G Con un PC de 13 bit de direcciona: 2 8192 words
G Contiene la direccin de la siguiente Instruccin
Byte mas bajo accesible en mem de datos como PCL G Byte mas bajo accesible en mem. de datos como PCL
G Byate mas alto accesible via PCLATH
G Funciona libremente dentro de los lmites de la pgina
G Eventos que modifican la secuencia del PC:
Interrupciones
Instrucciones: CALL, GOTO, RETURN, RETLW, RETFIE
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 31
Cualquier instruccin que use al PC como un aperando
Direccionamiento Absoluto
0 1 2 3 4 5 6 7 8 9 10 11 12
Instrucciones CALL and GOTO :
13
Opcode 0 0 0 0 0 0 0 0 0 0 0
PC Direccionamiento Absol to (Program Memor ) G PC Direccionamiento Absoluto (Program Memory)
saltar a otra localizacin de memotia de programa fuera de
lasecuencia del PC lasecuencia del PC
Llamar a una Subrutina
G Usado por las instrucciones CALL y GOTO G Usado por las instrucciones CALL y GOTO
11-bits de los 13 bits requeridos estan codificados en la instruccin
2 bits adicionales son aportados por el registro PCLATH p p g
G Usado cuando se realiza un Salto computado
La direccin del salto es calculada por el programa
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 32
p p g
La direccin computada es escrita directamente dentro del PC
Direccionamiento Absoluto
Instruccin de 14-Bit CALL o GOTO en Memoria de Programa
0 1 2 3 4 5 6 7 8 9 10 11 12
Opcode 0 0 0 0 0
13
0 0 0 0 0 0
R i t PCLATH M i d D t
- - - 0 0 0 0 0
0 1 2 3 4 5 6 7
Registro PCLATH en Memoria de Datos
2 Bits desde el PCLATH
11-Bits desde la
I t i
0 0
11 12 0 1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 0 0 0 0 0 0
2-Bits desde el PCLATH
Instruccin
Contador de Programa de 13-Bit
PCH PCH PCL PCL
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 33
Direccionamiento Absoluto
Example: Jumping to code located in a different program memory page.
0 1 2 3 4 5 6 7
Registro PCLATH Instruccin CALL en Memoria de Programa
- - - 0 0 0 0 0
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 8 9 10 11 12
Opcode 0 0 0 0 0
13
0 0 0 0 0 0
Registro W Contador de Programa - PCH:PCL
- 0 0
FF
Registro W Contador de Programa - PCH:PCL
0 0 0 0 0 0 0 0 0 0 0
0 0020
movlw HIGH MiSubrutina
movwf PCLATH
org 0x0020
call MiSubrotina
0 1250
MiSubrutina
org 0x1250
<aqu comienza la subrutina>
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 34
return
CALL / RETURN Stack
0020
13-bit Program Counter
movlw HIGH MySub1
movwf PCLATH 0021
0020
0020
movwf PCLATH
call MySub1
call MySub4
bsf PORTB 7 0024
0023
0022
0021
0
bsf PORTB,0
call MySub2
bsf PORTB,7
MySub1
1001
1000
0024
1
2
call MySub2
return
bsf PORTB,1
call MySub3
1002
1001
1004
1003 MySub2
3
4
call MySub3
return
bsf PORTB,2
return 1007
1006
1005
1004
MySub3
5
6
13-bit x 8-Level
Return Address Stack
return
bsf PORTB,3
call MySub2
return
1009
1008
1007
100A
MySub4
7
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 35
return 100A
Direccionamiento relativo
Para escribir al
FF FF
W Register
8-bit Data Bus
Para escribir al
PC:
E ibi b t lt
PCLATH
FF FF
Escribir byte alto en
el PCLATH
PCLATH
PCH PCL
FF FF FF FF
Escribir byte bajo en
el PCL
PCH PCL
el PCL
(PCH siempre debe ser
cargado con el PCLATH)
movlw HIGH 0x1250
movwf PCLATH
cargado con el PCLATH)
movlw LOW 0x1250
movwf PCL
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 36
Direccionamiento relativo: Tablas de
Lectura Lectura
Ejemplo: Uso de Tablas de
ORG 0x0020 ;Page 0
movlw HIGH SevenSegDecode
movwf PCLATH
j p
lectura para decodificacin
de BCD a 7-segmentos
para excitar un display a
movwf PCLATH
movlw .5
call SevenSegDecode
movwf PORTB
para excitar un display a
LED
movwf PORTB
M
retlw b 00000110 ;1
retlw b01011011 ;2
retlw b01001111 ;3
retlw b01100110 ;4
M
C
U
;
retlw b01101101 ;5
retlw b01111101 ;6
retlw b00000111 ;7
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 37
retlw b01111111 ;8
retlw b01101111 ;9
Gracias !
Programacin Assembler de
PIC
Lnea Base
ARG003 - DVD
Aprendiendo PIC
Rango Medio
Aprendiendo PIC
Rango Medio
Caractersticas
Especiales Revisin Especiales Revisin
mc
Programa
electronics
mc
2005 Microchip Technology Incorporated. All Rights Reserved. Slide 38
mc
certificado por
Microchip
Technology Inc.
electronics
mc
Palabra de configuracin g
CP - DEBUG WRT1 WRT0 CPD LVP BOREN - - PWRTEN WDTEN FOSC1 FOSC0
bit 0 bit 1
G Localizada en la memoria de Programa fuera del alcance del
Contador de Programa
bit 0 bit 1
G Usada para programar las caractersticas del dispositivo:
Code Protection
Oscillator Mode
Watchdog Timer
P U Ti Power Up Timer
Brown Out Reset
LowVoltage Programming Low Voltage Programming
Flash Program Memory Write
G Solo leible durante el proceso de grabacin en los PIC16
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 39
G Solo leible durante el proceso de grabacin en los PIC16
PIC16 Opciones del
Oscilador Oscilador
XT XT
HS HS
Standard frequency crystal oscillator Standard frequency crystal oscillator
High frequency crystal oscillator High frequency crystal oscillator
100kHz 100kHz -- 4MHz 4MHz
4MHz 4MHz 20MHz 20MHz HS HS
LP LP
RC RC
High frequency crystal oscillator High frequency crystal oscillator
Low frequency crystal oscillator Low frequency crystal oscillator
External RC oscillator External RC oscillator
4MHz 4MHz - - 20MHz 20MHz
5kHz 5kHz -- 200kHz 200kHz
DC DC -- 4MHz 4MHz
Un oscilador seleccionable ofrece mayores
INTRC INTRC Internal RC oscillator Internal RC oscillator 4 or 8 MHz 4 or 8 MHz 2% 2%
G Un oscilador seleccionable ofrece mayores
posibilidades al diseador:
LP Oscilador de baja frecuencia LP Oscilador de baja frecuencia
RC or INTRC provee una solucin de ultra bajo costo
XT optimizado para la mayoria de las frecuencias de oscilador p p y
comunmente usadas
HS optimizado para excitar cristales de alta frecuencia
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 40
G Son pautadas solo las gamas de velocidades
POR, OST, PWRT , ,
G POR: Power On Reset
C MCLR t d V Con MCLR conectado a V
DD
,
es generado un pulso de
Reset cuando es detectada la
subida de Vdd subida de Vdd
G PWRT: Power Up Timer
Maniene al dispositivo p
Reseteado por 72ms
(nominal) (despues del POR)
G OST: Oscillator Start-up G OST: Oscillator Start-up
Timer
Mantiene al dispositivo
R t d 1024 i l Resteado por 1024 ciclos
para permitir al cistral
estabilizar su frecuencia y
amplitud; no activo en modo
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 41
amplitud; no activo en modo
RC ; usado despues del POR
o al despertar del SLEEP
Modo Sleepp
G El procesador puede ser puesto en Modo Bajo
consumo por medio de la ejecucin de una co su o po ed o de a ejecuc de u a
instruccin SLEEP
El oscilador del sistema es detenido
El t d d l d t id (di tti ) El estado del procesador es mantenido (diseo esttico)
Watchdog timer continua funcionando, si esta habilitado
Minima corriente de mantenimiento (0.1 - 2.0A typical)
Eventos que despiertan al procesador del modo SLEEP
MCLR
WDT
Pulso sobre el MCLR (pulled low)
Watchdog Timer lleg a final de cuenta
( yp )
WDT
INT
TMR1
ADC
Watchdog Timer lleg a final de cuenta
INT sobre el pin de iterrupcin
Interrupcin del Timer 1 (or also TMR3 on PIC18)
Interrupcin por final de conversin del A/D
CMP
CCP
PORTB
Interrupcin por cambio de la salida del Comparador
Evento en la entrada de captura
Interrupcin por cambio en el PORTB
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 42
SSP
PSP
Interrupcin en el Synchronous Serial Port (I
2
C Mode) Start / Stop Bit detect
Lectura /Escritura en el PSP
Watchdog Timer g
G Ayuda a recuperarse del mal funcionamiento del software
U f i i il d RC b l hi G Usa par funcionar su propio oscilador RC sobre el chip
G WDT es borrado po la instruccin CLRWDT
G Habilitado el WDT no puede ser desactivarse por software G Habilitado el WDT no puede ser desactivarse por software
G el desborde del WDT resetea al dispositivo
G Perodo del time out esProgramable : 18ms to 3.0s typ
G Opera en modo SLEEP; sobre el time out, despierta la CPU
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 43
BOR Brown Out Reset
G Cuando se produce una variacin p
del voltaje, Resetea al dispositivo
G Previene operaciones errticas o
inesperadas
G Elimina la necesidad de un circuito
BOR externo
2006 Microchip Technology Incorporated. All Rights Reserved. 101 ASP Slide 44
PBOR Programmable
Brown Out Reset Brown Out Reset
G Configuracin opcional (seteado en la g p (
programacin)
No puede ser habilitado/ deshabilitado por software p p
G Cuatro puntos seleccionables BV
DD
:
2 5V MinimumV
DD
for OTP PICmicro
Lnea Base
ARG003 - DVD
Aprendiendo PIC
Rango Medio
Aprendiendo PIC
Rango Medio
Gracias ! Gracias !
Thank You
Traducido por:
Andrs Ral Bruno Saravia
RTC Argentina
mc
Programa
electronics
mc
2005 Microchip Technology Incorporated. All Rights Reserved. Slide 52
mc
certificado por
Microchip
Technology Inc.
electronics
mc