Micro Control Adores PICs II-Luis Urdaneta
Micro Control Adores PICs II-Luis Urdaneta
Micro Control Adores PICs II-Luis Urdaneta
µControladores
Diseño
Programación
Simulación
2
Tablas de Consulta
Conversión desde binario a 7-segmentos (Cátodo común)
3
Programa 1
Programa 1
4
Programa 1
5
Programa 1
6
Programa 1
7
Programa 1
8
Programa 1
9
Programa 1
10
Programa 1
Simulación con
PROTEUS
11
PROGRAMA 1
Programa 1
C1 U1
16 17
OSC1/CLKIN RA0
15 18
OSC2/CLKOUT RA1
22pF 1
RA2
X1 4
MCLR RA3
2
4Mhz 3
C2 RA4/T0CKI RN1
6 1 16
RB0/INT
R2 RB1
7 2 15
22pF 8.2k 8 3 14
RB2
9 4 13
RB3
10 5 12
RB4
11 6 11
RB5
12 7 10
RB6
13 8 9
RB7
+5V
PIC16F84A 220 R1 Q1
2N3906
10k
+5V
12
Programa 1
13
Programa 1
14
Programa 1
15
Programa 1
16
Programa 1
17
Programa 1
18
Programa 1
19
Programa 1
20
Rutinas de Retardo
Rutinas de Retardo
Problema:
En un punto del código se requiere un tiempo de espera de Tx
segundos.
Solución:
Escribir un código o rutina de retardo que tenga un tiempo de
ejecución igual a Tx.
Desventaja:
El procesador estará ocupado durante el tiempo Tx.
21
Rutinas de Retardo
TR 1 1 ( N 1) 3 2 Tci
TR 3 N 1 Tci s
Td max 766 s
23
Rutinas de Retardo
Cálculo de N
TR 1
N
3
24
Rutinas de Retardo
TR 1 1 ( N 1) 3 2 1 s
TR 3 N 2 s
25
Rutinas de Retardo
Para generar un pulso en alto de 50 µs en la línea 0 del puerto b:
cont equ 0xc
bsf status,rp0
bcf trisb,0
bcf status,rp0 CICLOS
bcf portb,0 ; Salida a 0 al inicio
movlw n
movwf cont
bsf portb,0 ; Pulso a nivel alto
en1decfsz cont ; Contador – 1 y probar si llegó a 0 1/2
goto en1 ; Contador difiere de cero, esperar 2
bcf portb,0 ; Contador es 0. Fin de pulso 1
TR ( N 1) 3 2 1 s 3 N s
26
Rutinas de Retardo
Cálculo de N
50
N 16.66
3
27
Rutinas de Retardo
Solución:
Usar instrucciones nop para ajustar el retardo:
CICLOS
cont equ 0xc
bsf status,rp0
bcf trisb,0
bcf status,rp0
bcf portb,0
movlw n
movwf cont
bsf portb,0
en1 decfsz cont ; 1/2
goto en1 ; 2
nop ; 1
nop ; 1
bcf portb,0 ; 1
TR ( N 1) 3 2 1 1 1 s (3 16 2) s 50 s
28
Rutinas de Retardo
Retardos de mayor duración
Para retardos de mayor duración debe usarse más de un
contador.
29
Rutinas de Retardo
…
movlw M
movwf cont1
rep1 movlw N
movwf cont2
rep2 decfsz cont2,f
goto rep2
decfsz cont1,f
goto rep1
…
30
Rutinas de Retardo
TR 2 ( M 1) (T 3) T 2 s
T 3N 1
TR (3N 4) M 1 s (1)
TR 1
M , seleccionando N=255
3N 4
TR 1
M TR 770 s (2)
769
TR max 196096 s
31
Rutinas de Retardo
32
Rutinas de Retardo
33
Rutinas de Retardo
34
Rutinas de Retardo
…
movlw L
movwf cont1
rep1 movlw M
movwf cont2
rep2 movlw N
movwf cont3
rep3 decfsz cont3
goto rep3
decfsz cont2
goto rep2
decfsz reg1
goto rep1
…
35
Rutinas de Retardo
TR 2 ( L 1) (T 3) T 2 s
T (3N 4) M
TR 2 ( L 1) ((3N 4) M ) 4) (3 N 4) M 3 s
Seleccionando N = M = 255
TR ( L 1) (196099) 196100 s
TR 1
L TR 196100 s (3)
196099
TR max 50.005 s
36
Rutinas de Retardo
37
La Memoria del PIC16F84A
La Palabra de Configuración
38
La Memoria del PIC16F84A
La Palabra de Configuración
39
La Memoria del PIC16F84A
40
La Memoria del PIC16F84A
La Memoria de Datos
Está dividida en dos áreas:
Área de SRAM:
Contiene 22 Registros de Funciones Especiales (SFR) para el
control del microcontrolador y 68 Registros de Propósito
General (GPR) para almacenamiento temporal de datos.
Área de EEPROM:
64 bytes para datos permanentes
41
La Memoria del PIC16F84A
42
La Memoria del PIC16F84A
43
La Memoria del PIC16F84A
44
La Memoria del PIC16F84A
45
La Memoria del PIC16F84A
46
La Memoria del PIC16F84A
47
La Memoria del PIC16F84A
1
No es un registro físico
48
La Memoria del PIC16F84A
49
La Memoria del PIC16F84A
Lectura de la EEPROM
50
La Memoria del PIC16F84A
51
La Memoria del PIC16F84A
Escritura de la EEPROM
52
La Memoria del PIC16F84A
54
La Memoria del PIC16F84A
55
Consideraciones de
Tiempo e Información de
Nivel bajo
56
Reloj del PIC16F84A
El Generador de Reloj
Los PIC de la serie 16 operan con una señal de reloj de
frecuencia precisa suministrada por un oscilador
realizado con un inversor operando linealmente. Para
usar el generador interno se conecta un cristal, un
resonador o una red RC en los terminales OSC1-OSC2
del dispositivo.
Tipos de Oscilador
Los PIC de la serie 16 pueden operar en 4 modos de
oscilador. Usando los bits FOSC1 y FOSC0 de la palabra
de configuración, puede seleccionarse uno de estos
modos.
MODO BITS: FOSC1-0 FRECUENCIA
LP 00 Baja Potencia: cristales por debajo de 200
KHz. Por ejemplo 32.768 KHz.
XT 01 Para cristales o resonadores de hasta 4 MHz
HS 10 Alta Velocidad: Para cristales y resonadores
sobre 4 MHz
RC 11 Red RC Externa para disminuir costos.
58
Reloj del PIC16F84A
Potencia vs Frecuencia
59
Reloj del PIC16F84A
CRISTAL/RESONADOR RED RC
60
Reloj del PIC16F84A
61
Reloj del PIC16F84A
62
Reloj del PIC16F84A
63
El Ciclo de Instrucción PIC16F84A
El Ciclo de Instrucción
64
El Ciclo de Instrucción PIC16F84A
65
El Ciclo de Instrucción PIC16F84A
El Sistema de Reset
La secuencia de inicio permite llevar al µControlador a un
estado conocido con condiciones de operación apropiadas.
Luego de conectar la energía al PIC, se requiere, que antes de
iniciar la ejecución del programa de aplicación:
69
El Sistema de Reset del PIC16F84A
70
El Sistema de Reset del PIC16F84A
71
El Sistema de Reset del PIC16F84A
72
El Sistema de Reset del PIC16F84A
73
El Sistema de Reset del PIC16F84A
74
El Sistema de Reset del PIC16F84A
75
El Sistema de Reset del PIC16F84A
El Sistema de Reset
76
El Sistema de Reset del PIC16F84A
77
El Sistema de Reset del PIC16F84A
78
El Sistema de Reset del PIC16F84A
79
El Sistema de Reset del PIC16F84A
Secuencia de RESET durante el encendido. RESET externo conectado a VDD. Tiempo de subida lento.
80