Beruflich Dokumente
Kultur Dokumente
4 Microcontroladores pic
Book: Microcontroladores PIC – Programación en C con
ejemplos
Table of Contents
Los microcontroladores PIC desarrollados por Microchip
Technology son probablemente la mejor opción si es principiante. Hay
varias razones por lo que esto es verdadero... El nombre verdadero
de este microcontrolador es PICmicro (Peripheral Interface
Controller), conocido bajo el nombre PIC. Su primer antecesor fue
creado en 1975 por la compañía General Instruments. Este chip
denominado PIC1650 fue diseñado para propósitos completamente
diferentes. Diez años más tarde, al añadir una memoria EEPROM,
este circuito se convirtió en un verdadero microcontrolador PIC. Hace
unos pocos años la compañía Microchip Technology fabricó la 5
billonésima muestra. Si está interesado en aprender más sobre eso,
siga leyendo. If you are interested in learning more about it, just
keep on reading. La idea principal de este libro es proporcionar la
información necesaria al usuario para que sea capaz de utilizar los
microcontroladores en la práctica después de leerlo. Para evitar
explicaciones pesadas y las historias infinitas sobre las características
útiles de los microcontroladores diferentes, este libro describe el
funcionamiento de un modelo particular que pertenece a la “clase
media alta”. Es PIC16F887 - bastante poderoso para ser digno de
atención y bastante simple para poder ser utilizado por cualquiera.
Así, los siguientes capítulos describen este microcontrolador en
detalle y también se refieren a la familia PIC entera.
Frec Reso
R uen lució Temp Sa
RO Ent
A cia n orizad Com lid
M Pi rad Comp
Famili M de del ores unica as Otr
[K n as arado
a [b relo conv de ción P os
byt es A/ res
yt j. ertid 8/16 serial W
es] D
es] [M or bits M
Hz] A/D
0.3
75 16 6
PIC10 0-
- - - 4-8 8 0-1 1x8 - - -
FXXX 2
0.7 24 8
5
0.7 25 EE
PIC12 0-
5- - 8 4-8 8 0-1 1x8 - - PR
FXXX 3
1.5 38 OM
1
25
0.7 4 EE
PIC16 - 0-
5- - 20 8 0-2 1x8 - - PR
FXXX 13 3
3 4 OM
4
4
1
Vd
PIC16 8
d=
HVX 1.5 25 - 20 - - - 1x8 - -
15
XX 2
V
0
64
1.7 1-2x EE
PIC12 - 0- 0-
5- 8 20 10 1 81x - PR
FXXX 12 4 1
3.5 16 OM
8
PIC12 1-2x
1.7 0- 0-
HVX 64 8 20 10 1 81x - -
5 4 1
XX 16
1
64 USA
1.7 4 1-2x
PIC16 - 0- 8 or RT 0-
5- - 20 0-2 81x -
FXXX 36 13 10 I2C 3
14 6 16
8 SPI
4
1
64 USA
PIC16 1.7 4
- 0- 2x81 RT
HVX 5- - 20 10 2 - -
12 12 x 16 I2C
XX 3.5 2
8 SPI
0
USB2
.0
1
25 CAN
8 10 0-2x
PIC18 4- 6- 32 - 4- 2.0 0-
- or 0-3 82-3 -
FXXX 128 39 48 16 USA 5
8 12 x 16
36 RT
0
I2C
SPI
2 USB2
10
8 .0
PIC18 24 0-2x
8- - 40 - 10 - USA 2-
FXXJ - 10 2 82-3 -
128 1 48 16 RT 5
XX 39 x 16
0 Ether
36
0 net
I2C
SPI
2
76 USA
PIC18 8
8- 8- 10 - 1x83 RT
FXXK - 64 10 2 2 -
64 39 13 x 16 I2C
XX 4
36 SPI
4
JUEGO DE INSTRUCCIONES
El juego de instrucciones para los microcontroladores 16F8XX incluye
35 instrucciones en total. La razón para un número tan reducido de
instrucciones yace en la arquietectura RISC. Esto quiere decir que las
instrucciones son bien optimizadas desde el aspecto de la velocidad
operativa, la sencillez de la arquitectura y la compacidad del código.
Lo malo de la arquitectura RISC es que se espera del programador
que haga frente a estas instrucciones. Por supuesto, esto es
relevante sólo si se utiliza el lenguaje ensamblador para la
programación. Este libro se refiere a la programación en el lenguaje
de alto nivel C, lo que significa que la mayor parte del trabajo ya fue
hecho por alguien más. Así, sólo se tienen que utilizar instrucciones
relativamente simples.
Mover el
MOVWF f W -> f 1
contenido de W a f
Mover el 1,
MOVF f,d f -> d Z 1
contenido de f a d 2
Borrar el
CLRW 0 -> W Z 1
contenido de W
Borrar el
CLRF f 0 -> f Z 1 2
contenido de f
Sumar el
1,
ADDWF f,d contenido de W y W+f -> d C, DC ,Z 1
2
f
1,
SUBWF f,d Restar W de f f-W -> d C, DC, Z 1
2
1,
ANDWF f,d AND W con f W AND f -> d Z 1
2
OR inclusivo de
IORLW k W OR k -> W Z 1
W con literal
OR inclusivo de 1,
IORWF f,d W OR f -> d Z 1
W con f 2
OR exclusivo de 1,
XORWF f,d W XOR k -> W Z 1
W con literal 2
OR exclusivo de
XORLW k W XOR f -> d Z 1
W con f
1,
INCF f,d Sumar 1 a f f+1 -> f Z 1
2
1,
DECF f,d Restar 1 a f f-1 -> f Z 1
2
Rotar F a la
1,
RLF f,d izquierda a través C 1
2
del bit de Acarreo
Rotar F a la
1,
RRF f,d derecha a través C 1
2
del bit de Acarreo
1,
COMF f,d Complementar f f -> d Z 1
2
Poner a 0 el bit b 1,
BCF f,b 0 -> f(b) 1
del registro f 2
Poner a 1 el bit b 1,
BSF f,b 1 -> f(b) 1
del registro f 2
Saltar si bit b de
BTFSC f,b Skip if f(b) = 0 1 (2) 3
registro f es 0
Saltar si bit b de
BTFSS f,b Skip if f(b) = 1 1 (2) 3
reg. f es 1
Disminuir f en 1. 1,
f-1 -> d skip if Z
DECFSZ f,d Saltar si el 1 (2) 2,
=1
resultado es 0 3
Incrementar f en 1. 1,
f+1 -> d skip if
INCFSZ f,d Saltar si el 1 (2) 2,
Z=0
resultado es 1 3
Saltar a una
GOTO k k -> PC 2
dirección
Llamar a una PC -> TOS, k ->
CALL k 2
subrutina PC
Retornar de una
RETURN TOS -> PC 2
subrutina
Otras instrucciones
Reiniciar el
0 -> WDT, 1 ->
CLRWDT temporizador TO, PD 1
TO, 1 -> PD
perro guardián