PDF de programación - Microcontroladores PIC

Imágen de pdf Microcontroladores PIC

Microcontroladores PICgráfica de visualizaciones

Publicado el 3 de Julio del 2018
1.305 visualizaciones desde el 3 de Julio del 2018
2,2 MB
78 paginas
Creado hace 17a (28/09/2006)
Microcontroladores PIC

● Procesador RISC.
● Arquitectura Harvard
● Pipeline
● Formato de instrucciones ortogonal
● Arquitectura basada en banco de registros
● Distintos periféricos:

interrupciones, I2C, USB, A/D, etc.

temporizadores, puertos paralelo/serie,

● Capacidades variables de memoria/datos.
● Programación “en el sistema”
● Modo de bajo consumo.
● Pines de alta corriente.
● Encapsulados desde 8 pines.

Procesadores CISC/RISC

● CISC (Complex Instruction Set Computer)

– Muchas instrucciones (hasta 80)
– Instrucciones complejas y potentes
– Cada instrucción necesita muchos ciclos de reloj para ejecutarse.

● RISC(Reduced Instruction Set Computer)

– Pocas instrucciones (en los PIC 35)
– Instrucciones sencillas
– Se ejecutan en un sólo ciclo de reloj
– Favorecen el pipeline

Arquitectura Harvard

Arquitectura Von-Neumann

Arquitectura Harvard

Pipeline

Instrucciones ortogonales

Arquitectura basada en banco de registros

Uso típico de los microcontroladores
Instrumentos portátiles
– Polímetro, medidor ultrasónico de distancias, balanza electrónica.



● Dispositivos periféricos

– Pantallas

Display(OSD).

táctiles,

teclado,

ratón, display LCD, On Screen

– Impresoras, modems, plotters, scanners.

● Dispositivos autónomos

– Fotocopiadoras, teléfonos móviles, cámaras digitales.

● Aplicaciones en automoción

– Inyección electrónica, frenos ABS, tarificación de Taxis, cuadro de

instrumentos, GPS.

PIC16F84

● 35 instrucciones. Códigos de instrucción de 14 bits. Todas las

instrucciones ocupan una palabra

● Todas las instrucciones duran un ciclo excepto las de salto que duran dos.
● Velocidad de funcionamiento 20MHz máximo (instr. 200 ns).

Típicamente a 4MHz (instr. 1us).

● 1024 palabras (14 bits) de memoria de programa FLASH.
● 68 bytes de RAM de datos.
● 64 bytes de EEPROM de datos.
● 15 registros de función específica.
● Pila hardware de 8 niveles.
● Modos de direccionamiento directo, indirecto y relativo.
● Cuatro fuentes de interrupción.
● 13 pines de E/S con control individual de sentido.

Encapsulado

Arquitectura

Memoria de programa

El contador de programa y PCLATH

En uso directo de PC (páginas 256 bytes)

En instrucciones call y goto (páginas 2K)

Memoria de datos

● Toda la memoria RAM se usa como registros

– Registros de propósito general
– Registros especiales (SFR)

● Configuración del microcontrolador
● Acceso a los periféricos (puertos, temporizadores, etc.)

● Memoria “mapeada” en bancos

– No todos los registros son accesibles a la vez.
– Hasta 4 bancos (2 para PIC16F84)
– Se cambia de banco con los bits RP0 y RP1 del registro de

STATUS.

● Acceso indirecto mediante un registro especial

– Registro FSR = registro “puntero” físico
– Registro INDF = registro que indica indirección

Acceso directo e indirecto

Instrucciones con INDF
como operando usan FSR
como puntero a los datos

SFR

Registro STATUS

Registro OPTION

Registro de configuración (en flash)

Ejemplo de programación de la configuración

Puertos de E/S

● Puerto A
– 5 pines
– Entrada y salida TTL
– Registro TRISA -> configuración

● Bit a 1 => pin como entrada
● Bit a 0 => pin como salida

– Registro PORTA -> interfaz de lectura /

escritura con el puerto.

– Corrientes máximas

● I
● I

= 25mA (máximo total 80mA)
= 25 mA (máximo total 50 mA)

OL

OH

Pines 0..3

● PIN 4

– Salida TTL colector abierto
– Entrada trigger-schmidt
– Compartido con entrada de

reloj para TMR0

● Puerto B

– 8 pines (TTL)
– Pull-up débil (configurable por
software) cuando se configuran
como entrada

– Pines 4..7 llevan asociada una
interrupción en cambio de nivel
->

– Registro

TRISB

configuración

– Registro PORTB -> interfaz de

lectura / escritura con el puerto.

– Corrientes máximas

● I

= 25mA (máximo total

OL
150mA)

● I

= 25 mA (máximo total 100

OH
mA)

Pines 4..7

Pines 0..3

Conexión de pulsadores y LED

Temporizador TMR0
● Contador / temporizador de 8 bits leible y escribible
● Reloj interno/externo. Incremento en flanco subida/bajada
● Prescaler de 8 bits asociado

Interrupción en desbordamiento



Programación del TMR0

● Prescaler (OPTION_REG):
– PSA -> 1 WDT, 0 TMR0
– PS2..PS0 -> fija el escalado: 1 a 128 para WDT, 2 a 256 para TMR0
– T0CS -> 0 reloj interno (reloj instrucción), 1 externo (PA4)

● Escritura en registro TMR0 de la cuenta -> cuenta ascendente
● Desbordamiento

– activa T0IF (debe borrarse por software)
– Si está activado T0IE y GIE, se produce una interrupción

● El temporizador está apagado en modo SLEEP.

Configuración del oscilador

RESET

● Vector de RESET = posición 0
● Fuentes de RESET:

– RESET externo (MCLR)

● Pin para RESET. Activo a nivel bajo
● En funcionamiento noormal ejecuta un reset.
● En SLEEP despierta al microcontrolador.

– Power On Reset (POR)

● POR

– Pulso de RESET al detectar que sube la alimentación
– Permite conectar MCLR a Vdd

● Power-Up Timer (PWRT)

– Pulso extra de 72ms añadido a POR. (es un oscilador RC interno)
– Permite a Vdd llegar a un nivel aceptable
– Se activa con el bit PWRTE en la palabra de configuración

● Oscillator Start-Up Timer (OST)

– Pulso extra de reset de 1024 ciclos de reloj, después de PWRT
– Permite al oscilador estabilizarse bien.
– Solo en modos con cristal.

● Brown-Out Reset (BOR)

– Reset cuando se produce una caida de la alimentación
– Se activa con el bit BOR en la palabra de configuración.

● Perro guardián (WDT)

– Temporizador RC interno (periodo nominal 18ms)
– Se le puede asignar el prescaler.
– Funciona incluso en modo SLEEP.
– En desbordamiento

● Modo normal -> RESET
● Modo SLEEP -> despierta al micro.

– Se habilita con el bit WDTE del registro de configuración
– Se borra con la instrucción CLRWDT

POR “normal”

Retraso del POR con fuente lenta

Diagrama de bloques del RESET

T
E
S
E
R

n
u

e
d

s
é
u
p
s
e
d

s
o
r
t
s
i
g
e
r

s
o
l

e
d

s
e
r
o
l
a
V

Interrupciones

Interrupciones no vectorizadas. Vector de interrupción = 04h



● Fuentes de interrupción

– Interrupción externa INT (RB0)
– Desbordamiento TMR0
– Cambio puerto B: pines B4..B7
– Escritura EEPROM
INT y cambio PB despiertan al micro de SLEEP.



● Enmascarables de forma global (GIE) o individual (T0IE, ....)

A tener en cuenta

Interrupción -> asíncrona



● Necesario salvar contexto -> todo lo que se modifica
● Al menos el acumulador y los flags (STATUS)

● “Llamada” a interrupción

– Se desactiva automáticamente GIE -> no hay interrupciones anidadas
– Al finalizar (RETFIE) se vuelve a activar sola

● Pila con sólo 8 niveles ¡¡cuidado con los desbordamientos!!

EEPROM
● 64 bytes de EEPROM (direcciones 0 a 3Fh)
● Accesible mediante los registros EECON1, EECON2, EEDATA, EEADR

Registro EECON1

● Lectura

– Dirección -> EEADR
– Activar bit RD en EECON1
– En el siguiente ciclo de reloj el dato aparece en EEDATA

● Escritura

– Dirección -> EEADR
– Dato -> EEDATA
– 55h -> EECON2
– AAh -> EECON2
– Activar bit WR de EECON1 (se desactiva sólo al terminar escritura
– Escritura muy lenta -> esperar flag EEIF de intcon

Instrucciones

● Q1. Subciclo de decodificación de instrucción
● Q2. Subciclo de lectura de datos
● Q3. Proceso
● Q4. Subciclo de escritura de datos

Sintaxis de las instrucciones

Instrucciones que manejan registros

Instrucciones que manejan bits

Instrucciones de salto

Instrucciones que manejan datos inmediatos

Instrucciones de control y especiales

Instrucciones de movimiento de datos

Instrucciones aritméticas

Instrucciones lógicas

Instrucciones de bit

Instrucciones de “brinco”

Instrucciones de control
  • Links de descarga
http://lwp-l.com/pdf12309

Comentarios de: Microcontroladores PIC (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad