Ventajas y Funciones de Microcontroladores
Ventajas y Funciones de Microcontroladores
1
Introducción CPR Gijón
1
Practicas con Microcontroladores Ponente: Aurelio Cadenas
3
Introducción CPR Gijón
4
Introducción CPR Gijón
2
Practicas con Microcontroladores Ponente: Aurelio Cadenas
5
Introducción CPR Gijón
ARQUITECTURA INTERNA
PIC16F84
6
Introducción CPR Gijón
3
Practicas con Microcontroladores Ponente: Aurelio Cadenas
7
Introducción CPR Gijón
8
Introducción CPR Gijón
4
Practicas con Microcontroladores Ponente: Aurelio Cadenas
MEMORIA DE PROGRAMA
9
Introducción CPR Gijón
MEMORIA DE PROGRAMA
10
Introducción CPR Gijón
5
Practicas con Microcontroladores Ponente: Aurelio Cadenas
11
Introducción CPR Gijón
12
Introducción CPR Gijón
6
Practicas con Microcontroladores Ponente: Aurelio Cadenas
13
Introducción CPR Gijón
14
Introducción CPR Gijón
7
Practicas con Microcontroladores Ponente: Aurelio Cadenas
16
Introducción CPR Gijón
8
Practicas con Microcontroladores Ponente: Aurelio Cadenas
17
Introducción CPR Gijón
18
Introducción CPR Gijón
9
Practicas con Microcontroladores Ponente: Aurelio Cadenas
19
Introducción CPR Gijón
10
Practicas con Microcontroladores Ponente: Aurelio Cadenas
21
Introducción CPR Gijón
22
Introducción CPR Gijón
11
Practicas con Microcontroladores Ponente: Aurelio Cadenas
PROGRAMACION
PIC16F84
23
Introducción CPR Gijón
LENGUAJE ENSAMBLADOR
24
Introducción CPR Gijón
12
Practicas con Microcontroladores Ponente: Aurelio Cadenas
LENGUAJE ENSAMBLADOR
La traducción de los nemónicos a código máquina entendible
por el microcontrolador la lleva a cabo un programa
ensamblador.
25
Introducción CPR Gijón
13
Practicas con Microcontroladores Ponente: Aurelio Cadenas
27
Introducción CPR Gijón
28
Introducción CPR Gijón
14
Practicas con Microcontroladores Ponente: Aurelio Cadenas
29
Introducción CPR Gijón
30
Introducción CPR Gijón
15
Practicas con Microcontroladores Ponente: Aurelio Cadenas
31
Introducción CPR Gijón
32
Introducción CPR Gijón
16
Practicas con Microcontroladores Ponente: Aurelio Cadenas
33
Introducción CPR Gijón
EL JUEGO DE INSTRUCCIONES
17
Practicas con Microcontroladores Ponente: Aurelio Cadenas
MOVF 0x27,0
ADDWF 0x2A,1
– manipulan bits:
BSF STATUS,5
MOVLW 0x3A
GOTO 0x1A3
35
Introducción CPR Gijón
El juego de instrucciones
36
Introducción CPR Gijón
18
Practicas con Microcontroladores Ponente: Aurelio Cadenas
37
Introducción CPR Gijón
38
Introducción CPR Gijón
19
Practicas con Microcontroladores Ponente: Aurelio Cadenas
39
Introducción CPR Gijón
CICLO DE INSTRUCCION
40
Introducción CPR Gijón
20
Practicas con Microcontroladores Ponente: Aurelio Cadenas
Pipelining de Instrucciones
41
Introducción CPR Gijón
Pipelining de Instrucciones
42
Introducción CPR Gijón
21
Practicas con Microcontroladores Ponente: Aurelio Cadenas
Pipelining de Instrucciones
43
Introducción CPR Gijón
Pipelining de Instrucciones
44
Introducción CPR Gijón
22
Practicas con Microcontroladores Ponente: Aurelio Cadenas
Pipelining de Instrucciones
45
Introducción CPR Gijón
Pipelining de Instrucciones
46
Introducción CPR Gijón
23
Practicas con Microcontroladores Ponente: Aurelio Cadenas
Pipelining de Instrucciones
47
Introducción CPR Gijón
Pipelining de Instrucciones
48
Introducción CPR Gijón
24
Practicas con Microcontroladores Ponente: Aurelio Cadenas
bit 7 y 6 NO implementados
bit 2 Z: flag de cero
Se mantienen a 0 1: El resultado de la última operación aritmética
Bit 5 RP0: Register Bank Select bits o lógica es cero
(used for direct addressing)
0: El resultado de la última operación es
01 = Bank 1 (80h - FFh) distinto de 0
00 = Bank 0 (00h - 7Fh)
bit 1 DC: flag de acarreo decimal.
bit 4 TO: flag Timer Out 1: Acarreo en la suma desde el 4º bit
1:Tras conectar VDD o ejecutar 0 : No acarreo en la suma. Desde el 4º bit
CLRWDT o SLEEP
En la resta es lo contrario
0 :Al desbordar el temporizador de WDT
bit 0 C : flag de acarreo en el octavo bit
bit 3 PD: flag Power Down
1: Acarreo en la suma y no en la resta
1: Tras conectar VDD o al ejecutar la
instrucción CLRWDT 0: Acarreo en la resta y no en la suma
0: Al ejecutar la instrucción SLEEP Se utiliza en las instrucciones de rotación
49
Introducción CPR Gijón
EJEMPLOS
DE
PROGRAMAS
APLICACIONES
ARITMETICAS
50
Introducción CPR Gijón
25
Practicas con Microcontroladores Ponente: Aurelio Cadenas
51
Introducción CPR Gijón
52
Introducción CPR Gijón
26
Practicas con Microcontroladores Ponente: Aurelio Cadenas
53
Introducción CPR Gijón
movf DATO1,W
addwf DATO2,W
movwf RESULTADO
PROGRAMA 1
54
Introducción CPR Gijón
27
Practicas con Microcontroladores Ponente: Aurelio Cadenas
55
Introducción CPR Gijón
56
Introducción CPR Gijón
28
Practicas con Microcontroladores Ponente: Aurelio Cadenas
57
Introducción CPR Gijón
clrf RES_ALTO
movf DATO1,W
addwf DATO2,W
btfsc ESTADO,0
incf RES_ALTO
movwf RES_BAJO
PROGRAMA 2
58
Introducción CPR Gijón
29
Practicas con Microcontroladores Ponente: Aurelio Cadenas
59
Introducción CPR Gijón
60
Introducción CPR Gijón
30
Practicas con Microcontroladores Ponente: Aurelio Cadenas
movf SUSTRA,W
subwf MINU,W
movwf RESULTADO
PROGRAMA 3
61
Introducción CPR Gijón
62
Introducción CPR Gijón
31
Practicas con Microcontroladores Ponente: Aurelio Cadenas
63
Introducción CPR Gijón
movf MPDOR,W
btfsc ESTADO,2
goto FIN
movwf PRODUCTO
clrw
decfsz PRODUCTO
goto SIGUE
PROGRAMA 4
64
Introducción CPR Gijón
32
Practicas con Microcontroladores Ponente: Aurelio Cadenas
65
Introducción CPR Gijón
66
Introducción CPR Gijón
33
Practicas con Microcontroladores Ponente: Aurelio Cadenas
clrf COCIENTE
movf DDO,W
movwf RESTO
btfsc ESTADO,2
goto FIN
movf DSOR,W
btfss ESTADO,0
goto TERMI
incf COCIENTE
goto CONTI
TERMI addwf RESTO,f
FIN nop
PROGRAMA 5
67
Introducción CPR Gijón
68
Introducción CPR Gijón
34
Practicas con Microcontroladores Ponente: Aurelio Cadenas
clrf DECENAS
movf HEX,W
movwf UNIDADES
movlw 0x0A
btfss ESTADO,0
goto NEGA
incf DECENAS
goto SIGUE
NEGA addwf UNIDADES,f
PROGRAMA 6
69
Introducción CPR Gijón
70
Introducción CPR Gijón
35
Practicas con Microcontroladores Ponente: Aurelio Cadenas
71
Introducción CPR Gijón
clrf DECENAS
movf HEX,W
movwf BCD
movlw 0x0A
btfss ESTADO,0
goto NEGA
incf DECENAS
goto SIGUE
NEGA addwf BCD,W
swapf DECENAS
addwf DECENAS,w
movwf BCD
PROGRAMA 7
72
Introducción CPR Gijón
36
Practicas con Microcontroladores Ponente: Aurelio Cadenas
73
Introducción CPR Gijón
btfss ESTADO,0
goto NEGA1
incf CENTENAS
goto CENTE
NEGA1 addwf REG,f
movlw 0x0A
btfss ESTADO,0
goto NEGA2
incf DECE_UNI
goto DECE
NEGA2 addwf REG,W
swapf DECE_UNI
addwf DECE_UNI,f
PROGRAMA 8
74
Introducción CPR Gijón
37
Practicas con Microcontroladores Ponente: Aurelio Cadenas
Ej: movlw k
75
Introducción CPR Gijón
movwf 0x4D,1
CODIGO OP INSTRUCCIÓN REGISTRO STATUS
13 7 6 0 7 0
movwf 1 1 0 01101
RP1 RP0
0 0
POSICION BANCO
4D NO USADOS
4F
76
Introducción CPR Gijón
38
Practicas con Microcontroladores Ponente: Aurelio Cadenas
77
Introducción CPR Gijón
DIRECCIONAMIENTO INDIRECTO
MOVWF FSR ;
78
Introducción CPR Gijón
39
Practicas con Microcontroladores Ponente: Aurelio Cadenas
79
Introducción CPR Gijón
clrf MAYOR
movlw 6
movwf CONTA
movlw 0x26
movwf FSR
SIGUE movf INDF,W
subwf MAYOR,W
btfsc ESTADO,0
goto SALTO
movf INDF,W
movwf MAYOR
decfsz CONTA
goto SIGUE
nop PROGRAMA 9
80
Introducción CPR Gijón
40
Practicas con Microcontroladores Ponente: Aurelio Cadenas
ARQUITECTURA INTERNA
PUERTOS DE ENTRADA-SALIDA
PIC16F84
81
Introducción CPR Gijón
82
Introducción CPR Gijón
41
Practicas con Microcontroladores Ponente: Aurelio Cadenas
83
Introducción CPR Gijón
84
Introducción CPR Gijón
42
Practicas con Microcontroladores Ponente: Aurelio Cadenas
El micro está hecho con tecnología CMOS, luego las entradas no pueden quedar
“al aire” ya que el nivel lógico estaría indefinido, son necesarias por tanto
resistencias internas o externas (ejemplo conexión pulsador)
85
Introducción CPR Gijón
86
Introducción CPR Gijón
43
Practicas con Microcontroladores Ponente: Aurelio Cadenas
EJEMPLOS
DE
PROGRAMAS
APLICACIONES
CIRCUITOS LÓGICOS
COMBINACIONALES Y SECUENCIALES
(I)
87
Introducción CPR Gijón
88
Introducción CPR Gijón
44
Practicas con Microcontroladores Ponente: Aurelio Cadenas
89
Introducción CPR Gijón
90
Introducción CPR Gijón
45
Practicas con Microcontroladores Ponente: Aurelio Cadenas
91
Introducción CPR Gijón
92
Introducción CPR Gijón
46
Practicas con Microcontroladores Ponente: Aurelio Cadenas
goto Loop
93
Introducción CPR Gijón
94
Introducción CPR Gijón
47
Practicas con Microcontroladores Ponente: Aurelio Cadenas
goto Loop
PROGRAMA 11 retlw
retlw
b'01111001'
b'01110001'
;Dígito E
;Dígito F
95
Introducción CPR Gijón
ARQUITECTURA INTERNA
TEMPORIZADOR TMR0
PIC16F84
96
Introducción CPR Gijón
48
Practicas con Microcontroladores Ponente: Aurelio Cadenas
TEMPORIZADOR TMR0
97
Introducción CPR Gijón
Temporizador TMR0
98
Introducción CPR Gijón
49
Practicas con Microcontroladores Ponente: Aurelio Cadenas
bit 3 PSA: Asignación del divisor de frecuencia bit 2-0 PS2:PS0: Prescaler Rate Select bits
1: El divisor de frecuencia se asigna al WDT Rango con el que actúa el Divisor de
0: El divisor de frecuencia se asigna al TMR0 frecuencia
bit 4 TOSE: Tipo de flanco en TOCK1
1: Incremento de TMR0 cada flanco descendente
0: Incremento de TMR0 cada flanco ascendente
bit 5 TOCS: Tipo de Reloj para TMR0
1: Pulsos introducidos a través de T0CK1
(Contador)
0: Pulsos de reloj interno Fosc/4 (Temporizador)
bit 6 INTEDG: Flanco activo control de interrup
1: Flanco Ascendente
0: Flanco Descendente
bit 7 BPRU : Resistencia Pull-up Puerto B
1: Desactivadas
0: Activadas
99
Introducción CPR Gijón
TEMPORIZADOR TMR0
100
Introducción CPR Gijón
50
Practicas con Microcontroladores Ponente: Aurelio Cadenas
bit 0 RBIF: flag de estado del Port B bit 4 INTE: Activación de la interrupción externa INT
1:Cuando cambia de estado cualquier línea de PB 1: Interrupción activada
(RB<7:4>). Se borra por software
0: Interrupción desactivada
0:Ninguna entrada de PB ha cambiado
bit 5 T0IE: Activación de la interrupción del TMR0
bit 1 INTF: flag de estado de la interrupción
externa INT 1: Interrupción activada
1:La entrada de la interrupción se ha activado. Se 0: Interrupción desactivada
borra por software bit 6 EEIE: Activación de la interrupción de la
0:No hay interrupción externa memoria EEPROM
bit 2 T0IF: flag (O) de rebosamiento del TMR0 1: Interrupción activada
1: El TMR0 se ha desbordado. Se borra por 0: Interrupción desactivada
software
0: El TMR0 no se ha desbordado bit 7 GIE: Activación Global de Interrupciones
bit 3 RBIE: Activación de la interrupción del 1: Concedido el permiso de interrupciones
Port B 0: No hay posibilidad de interrupciones
1: Interrupción activada
0: Interrupción desactivada
102
Introducción CPR Gijón
51
Practicas con Microcontroladores Ponente: Aurelio Cadenas
103
Introducción CPR Gijón
104
Introducción CPR Gijón
52
Practicas con Microcontroladores Ponente: Aurelio Cadenas
EJEMPLOS
DE
PROGRAMAS
APLICACIONES
CIRCUITOS LÓGICOS
COMBINACIONALES Y SECUENCIALES
(II)
105
Introducción CPR Gijón
106
Introducción CPR Gijón
53
Practicas con Microcontroladores Ponente: Aurelio Cadenas
108
Introducción CPR Gijón
54
Practicas con Microcontroladores Ponente: Aurelio Cadenas
bcf PORTB,0
call Delay_10_ms
movf PORTB,W
xorlw 0x01
movwf PORTB
call Delay_10_ms
goto SALTA_1
109
Introducción CPR Gijón
movlw d'39'
movwf TMR0
return
PROGRAMA 12
110
Introducción CPR Gijón
55
Practicas con Microcontroladores Ponente: Aurelio Cadenas
El LED conectado a RB0 parpadea de modo que está 500ms encendido y otros
500ms apagado. Se controla por medio de un interruptor conectado en RA4. Se
usa el temporizador TMR0 para establecer la temporización.
(Se considera que el oscilador del PIC es de 4MHz).
111
Introducción CPR Gijón
112
Introducción CPR Gijón
56
Practicas con Microcontroladores Ponente: Aurelio Cadenas
btfss PORTA,4
goto apagado
decfsz CONT
goto Principal
movf PORTB,W
xorlw 0x01
movwf PORTB
PROGRAMA 13
goto control
113
Introducción CPR Gijón
114
Introducción CPR Gijón
57
Practicas con Microcontroladores Ponente: Aurelio Cadenas
call Delay
115
Introducción CPR Gijón
movlw .217
movwf TMR0
decfsz Contador,F
goto Delay_0
return PROGRAMA 14
116
Introducción CPR Gijón
58