Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ARQUITECTURA HARVARD:
Tradicionalmente los microprocesadores se basan en la estructura de Von Neumann, como la de la
figura siguiente, que se caracteriza por disponer de una nica memoria principal en la que se
almacenan los datos y las instrucciones. A esta memoria se accede a travs de un sistema de buses
nico:
Bus de datos
Bus de direcciones
Bus de control
Microcontroladores PIC
Registros que pueden enviar datos a la ALU. El resultado puede ir a cualquier registro o al registro W
Microcontroladores PIC
CARACTERSTICAS GENERALES
RISC de 35 instrucciones. Cdigos de instruccin de 14 bits. Todas las instrucciones ocupan
una palabra
Todas las instrucciones duran un ciclo de reloj excepto las de salto que duran dos.
Velocidad de funcionamiento 20MHz mximo (instrucciones de 200 ns)
Tpicamente a 4 MHz (instruccin de 1us)
1024 palabras (14bits) de memoria de programa FLASH
68 bytes de RAM de datos
64 bytes de EEPROM de datos.
15 registros de funcin especifica
pila hardware de 8 niveles
modos de direccionamiento directo, indirecto y relativo
cuatro fuentes de interrupcin
13 pines de entrada/salida con control individual de sentido
pines de alta corriente (25mA mximo por pin)
Temporizador/contador TMRO de 8 bits con pre-escala programable
Memoria de programa FLASH borrable/escribible 1000 veces
Memoria de datos EEPROM borrable/escribible 1.000.000 veces
Retencin de datos en EEPROM >40
Programacin serie In Circuit va 2 pines
Power on Reset (POR), Power up Timer (PWRT), oscilador Start-up Timer (OST)
Watch dog Timer(WDT) con su propio oscilador RC integrado
Proteccin de cdigo
Modo de ahorro de energa (SLEEP)
Opcion de oscilacin seleccionables
Consumo tpico < 2mA @5V, 4 MHz
Tensin de alimentacin de 2.0 V a 5.5 V
Diagrama De Pines
Microcontroladores PIC
DIAGRAMA DE BLOQUES
1024 palabras de memoria de programa (14 bits)
memoria de datos RAM de 68 bytes.
Memoria de datos no voltil E2PROM de 64 bytes
13 pines E/S configurables individualmente. Algunos tiene funcionalidades mltiples.
Microcontroladores PIC
ORGANIZACIN DE LA MEMORIA
Memoria de programa
El contador de programa (PC) es de 13 bits.
Puede direccionar 213 = 8k palabras de de 14 bits desde 0000h 1FFFh
En el PIC 16F84A solo esta implementada 1k (0000h-03FFh)
El vector reset esta en 0000h
El vector de interrupcin esta en 0004h
Dispone de una pila hardware de 8 niveles
Memoria RAM de datos
Dividida en:
o Registro de propsito general (GPR)
o Registro de funcin especifica (SFR)
La memoria de datos RAM esta repartida en dos bancos. Se selecciona a travs de unos bits
de control situados en el registro STATUS.
La instruccin MOVWF y MOVFW copian datos desde el registro W(Working Register) a
RAM (Refister File (F)) o viceversa.
5
Microcontroladores PIC
Microcontroladores PIC
Todas las operaciones de escritura son operaciones de lee-modifica-escribe. Esto es, una
escritura en un puerto implica que los pines del puerto se leen, estos valores se modifican y
entonces se escriben en el latch de datos del puerto.
Cada pin del PORTA suministra una corriente mxima de 20 mA y puede absorver hasta 25
mA.
La corriente mxima total que puede absorber el PORTA es de 80 mA y la que puede
suministrar de 50 mA.
PROGRAMACIN EN PIC16F84A
list p=16F84
var1 equ 0x0c
org 0
movlw 0x05
movwf var1
movlw 0x02
addwf var1, 0
end
list p=16f84
org 0
movlw b0111
addlw b1001
end
Sistema de numeracin aceptado por el
compilador:
Tipo
Decimal
Hexadecimal
list p=16f84
num equ 0x0c
org 0
movlw b0001
movwf num
movlw b0010
addwf num, 1
end
Octal
Binario
ASCII
Sintaxis
dcantidad
.cantidad
hcantidad
0xcantidad
cantidad h
ocantidad
bcantidad
acantidad
caracter
Microcontroladores PIC
inicio
movlw b01010011
movwf reg1
movlw b00001111
andwf reg1, 0
end
list p=16f84
val equ 0x0e
org 0
inicio
movlw d5
movwf val
incf val, 1
incf val,1
end
Programa
LIST p=16F84
STATUS equ 03
portb equ 06
bsf
STATUS,5
movlw
0
movwf
portb
bcf
STATUS,5
movlw b'00001111'
movwf portb
end
8
Microcontroladores PIC
Programa
list p=16f84
bsf 0x03, 5
movlw b'11111111'
movwf 0x05
movlw 0
movwf 0x06
bcf 0x03, 5
bucle
movf 0x05, 0
movwf 0x06
goto bucle
end
Microcontroladores PIC
Programa
list p=16f84
status equ 0x03
porta equ 0x05
portb equ 0x06
org 0
bsf status,5
movlw b'11111111'
movwf porta
movlw b'00000000'
movwf portb
bcf status,5
bucle
comf porta,0
movwf portb
goto bucle
end
TEMPORIZACIN
El Timer TMR0 puede configurarse como contador y como temporizador
Para configurar la forma de actuacin se ingresa al registro OPTIONS y se acta sobre el bit TOCS:
Si TOCS = 1 el timer acta como contador
Si TOCS = 0 el timer acta como temporizador
TMR0 como contador.
Se introducen lo impulsos a contar por el pin RA4/TOCK1
10
Microcontroladores PIC
= 1 micro
BIT 6
X
BIT 5
TOCS
BIT 4
TOSE
BIT 3
PSA
BIT 2
PS2
BIT 1
PS1
BIT 0
PS0
Microcontroladores PIC
Programa
list p=16f84
portb equ 0x06
status equ 0x03
timer equ 0x01
org 0
bsf status, 5
movlw b'00000000'
movwf portb
movlw b'11010101'
movwf timer
bcf status, 5
clrf portb
bucle
bsf portb, 0
call tiempo
bcf portb, 0
call tiempo
goto bucle
tiempo
clrf timer
bucle1
btfss timer, 7
goto bucle1
return
end
12
Microcontroladores PIC
call tiempo
call tiempo
btfss portb, 7
goto bucle
bucle2
rrf portb, 1
call tiempo
call tiempo
btfss portb, 0
goto bucle2
goto bucle
bsf status, 5
movlw b'00000000'
movwf portb
movlw b'11010111'
movwf timer
bcf status, 5
clrf portb
bsf portb, 0
call tiempo
call tiempo
tiempo
clrf timer
bucle1
btfss timer, 7
goto bucle1
return
end
bucle
rlf portb, 1
13
Microcontroladores PIC
Programa
list p=16f84
portb equ 0x06
status equ 0x03
timer equ 0x01
org 0
bsf status, 5
movlw b'00000000'
movwf portb
movlw b'11010111'
movwf timer
bcf status, 5
clrf portb
14
Microcontroladores PIC
call tiempo
movlw b'00011001'
movwf portb
call tiempo
call tiempo
movlw b'00010010'
movwf portb
call tiempo
call tiempo
movlw b'00000011'
movwf portb
call tiempo
call tiempo
movlw b'01111000'
movwf portb
call tiempo
call tiempo
movlw b'00000000'
movwf portb
call tiempo
call tiempo
movlw b'00011000'
movwf portb
call tiempo
call tiempo
goto bucle
tiempo
clrf timer
bucle1
btfss timer, 7
goto bucle1
return
end
Referencias
[1]Microchip, PIC16F84A Data Sheet, 18 pin Enhansed FLASH/EEPROM, 8 bit Microcontroler,
2001.
[2]microcontroladores, http://perso.wanadoo.es/pictob/microcr.htm
[3] eric.serra Introduccin a la programacin, Microcontrolador PIC 16F84
15