Beruflich Dokumente
Kultur Dokumente
El siglo XXI Ser testigo de la invasin de stas diminutas microcomputadoras. Gobernarn la mayor parte de los aparatos que usaremos los humanos.
3
DISPOSITIVO DE ENTRADA
MICROCONTROLADOR PROGRAMA
DISPOSITIVO DE SALIDA
MICROCONTROLADORES PROGRAMA
Qu es un Microcontrolador ? Un circuito integrado de alta escala de integracin que incorpora la mayor parte de los elementos que configuran un controlador.
Dnde encontrarlos?
En nuestro Trabajo, casa y en nuestra vida. Controlando : Telfonos, computadoras, automviles, hornos de microondas, televisores y en dnde menos lo imaginamos, ah se encuentran presentes.
8
Aplicaciones
En la electrnica de Control : pantallas alfanumricas LCD. teclados. Memorias EEPROM seriales. temperatura. robots. para motores.
9
10
Los microcontroladores
De la amplia gama de circuitos integrados disponibles se encuentran los microcontroladores. Un microcontrolador es un integrado que contiene una unidad lgica, una aritmtica y un conjunto de dispositivos indispensables para realizar funciones de clculo y control. Memorias RAM y ROM, circuitos de entrada y salida, convertidores A/D y D/A. Es la razn de que los microcontroladores trabajen en forma similar a una computadora.
11
Microcontroladores
Tienen la capacidad de recibir y procesar informacin a travs de un programa preestablecido, por el usuario. Y con ello hacer visible un resultado.
12
13
Conclusin
La diferencia principal entre un microprocesador y un microcontrolador es bsicamente su estructura. Todos los elementos externos del microprocesador ahora estn dentro de un solo integrado: El Picmicro.
14
Conclusin
El microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador.
Debido a su reducido tamao es posible montar el controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado (embedded controller).
15
Proceso
Salida
Interfaces
Convertidores C (todo en uno )
16
Qu es un P I C ?
Programable Integrated Circuit. Programable , porque se puede planificar la manera como va a funcionar y se adapta a nuestras necesidades. Cuenta con la capacidad de modificar su comportamiento en funcin de una serie de instrucciones que es posible comunicarle.
17
18
19
Memorias
Flash. (solo p almacenar el cdigo instrucciones) Es la memoria para programa. 1 K. Arquitectura Harvard.
20
La La
EEPROM es parte tambin de la memoria para datos. El PIC junta todos los datos y los procesa en un solo ciclo de reloj.
21
Diversos mdulos para el control de perifricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analgico/Digital, CDA: Conversores Digital/Analgico, etc.). Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.
22
24
Los productos que para su regulacin incorporan un microcontrolador disponen de las siguientes ventajas:
Aumento de prestaciones: un mayor control sobre un determinado elemento representa una mejora considerable en el mismo.
Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado nmero de elementos disminuye el riesgo de averas y se precisan menos ajustes.
25
Reduccin del tamao en el producto acabado: La integracin del microcontrolador en un chip disminuye el volumen, la mano de obra y los stocks. Mayor flexibilidad: las caractersticas de control estn programadas por lo que su modificacin slo necesita cambios en el programa de instrucciones
26
Microcontroladores Flash
Ofrecen mayor flexibilidad para la programacin. Cuentan con memoria electricamente borrable (flash). Las instrucciones pueden ser borradas del integrado y vueltas a escribir por medio de equipos de grabacin Para la enseanza aprendizaje ste es el mejor , porque permite grabar y regrabar la informacin varias veces.
27
28
29
EJEMPLO : ELEMENTO DE CONTROL DE UNA COMPUTADORA GENERICA. DETECCION DE LA PRESENCIA DE OBJETOS METALICOS. EL DETECTOR DE METALES PRODUCE UNA SEAL ELECTRICA LA ALARMA UNA SEAL AUDIBLE.
30
FUNDAMENTOS DE PROGRAMACION
DETECTOR DE METALES
COMPUTADORA TIPO PC
PERSONA
ALARMA SONORA
31
LA COMPUTADORA ESTA CONECTADA PERMANENTEMENTE TANTO AL DETECTOR DE METALES COMO AL DISPOSITIVO SONORO
LA INTERFAZ DE ENTRADA SE ENCARGA DE ADAPTAR LA SEAL PROVENIENTE DEL DETECTOR, INTRODUCIENDOLE EN LA MEMORIA DEL COMPUTADOR
32
Computadora esperando
Programa para resolver el problema del detector de metales Introducir un dato proveniente del detector
Hacer una pregunta es un objeto metlico? Si la respuesta es
34
Entender el problema
Escribir las instrucciones
36
Paso 1
Paso 2
Paso 3
Si de la comparacin resulta que el dato almacenado no es 1, el detector no ha percibido la presencia de un metal y debe regresarse al paso 1 para continuar con una nueva lectura
Paso 4
En caso contrario el valor del dato es 1 ( presencia de metal )y debe activarse la alarma sonora
Paso 5
Terminar el proceso
37
Paso
0001 0002 0003
instruccin
Mover Comparar Saltar_si_difertente_a
comentario
Dato_detector,memoria_intern a Memoria _ interna,1 Paso 0001 diferente_a
0004
Activar
Alarma_externa
0005
parar
0003
0004 0005
sdif
Escr fin
0001
Alarma, 1
39
Paso 0001
Paso 0002
Tomar el dato correspondiente al estado del detector y almacenarlo en una posicin de memoria en el interior de la computadora. Comparar el dato almacenado en la memoria con el valor 1 Si de la comparacin resulta que el dato almacenado es diferente al valor 1, debe saltar al paso 0001para continuar en la ejecucin del programa En caso de que el dato almacenado sea igual al valor 1 debe activar la alarma sonora. Detener la ejecucin del programa.
Paso 0003
Paso 0004
Paso 0005
40
41
42
43
Trminos usuales
Registro: Es un deposito de nmeros binarios que permite guardar datos en forma temporal. El nombre del registro sirve para identificarlo y establece el tipo de informacin que almacena. El registro W (Work), se utiliza en la mayora de operaciones que manipulan datos.
44
Trminos usuales Literal: Se refiere a un valor constante, usualmente un nmero escrito en formato hexadecimal . Ejemplos : 3, 12, 3f
45
operandos
Comentarios
inicio
org
46
Etiqueta : Nombre con el cual se identifica una posicin de memoria del microcontrolador, y sirve para marcar puntos especficos dentro del programa Instruccin: hace referencia a una de las operaciones bsicas que puede ejecutar el microcontrolador. Ejemplo : MOVLW carga el registro W con un valor literal. Almacenar un valor literal en el registro W Operando : Es un elemento utilizado por una instruccin Existen instrucciones que requieren el uso de dos operandos, el primero se denomina operando fuente , el segundo operando destino. La informacin fluye del operando fuente al operando destino.
47
Definicin de origen
Instrucciones Final del programa
48
Encabezado
Primer componente del programa. En el se definen algunas directrices de tipo general, conocidas como directivas. Estas modifican el funcionamiento del ensamblador.;ejemplo :MPASM La directiva List indica el Mc. utilizado Directiva obligatoria.
49
50
Constantes
El uso de constantes simplifica la lectura de un programa, ya que , en lugar de referirse a un valor hexadecimal en particular , se puede utilizar el nombre de la constante asociada
51
La mayora de los ensambladores utilizan la palabra equ para definir una constante. Ejemplo : Puerto A equ 05 Le indica al ensamblador que se puede utilizar la palabra puerto A en lugar del numero 05
52
53
etiqueta
Cdigo de instruccin
Operando (s)
; comentarios
54
end
55
PERIFERICO
PUERTO DE ENTRADA
PUERTO DE SALIDA
PERIFERICOS
SEALES DE INTERRUPCION
INTERRUPCION
56
57
59
61
62
El contador de programa
Lo utiliza para saber cual es la siguiente instruccin que debe de ejecutar. El P C apunta a la primera instruccin del programa . Cada vez que ejecuta una instruccin el P C incrementa su valor, de modo que la instruccin que se ejecuta la prxima vez es la siguiente en la memoria del programa.
63
Memoria de programa
E j e c u ci n
p r o g r a m a
d e l
El contador del programa almacena la direccin de LA siguiente instruccin que debe ejecutar
64
65
INTRODUCCION
Una instruccin es un comando, parte del programa, que se le aplica al PIC para que lo interprete y ejecute su cumplimiento.
66
La instruccin se compone de una serie de bits presentada en secciones o posiciones perfectamente delimitadas, que el procesador interpreta para cumplir una orden deseada, quedando establecidas las variables que se modifican.
67
Las instrucciones
Su finalidad es : identificar las funciones que realizan aquellas consideradas como ms importantes.
68
Dicho de otra forma, las instrucciones poseen un formato de acuerdo a un sistema de codificacin. El formato cambia de acuerdo con la operacin que se va a realizar.
69
La codificacin es el formato de la palabra que define la instruccin y que veremos en detalle luego.
70
Note : que para que se complete la instruccin se necesita una sola palabra y un solo ciclo del contador de programas.
71
Perifrico externo
Puerto de entrada
dato
Puerto de salida
dato
Perifrico externo
74
Dato intermedio
Memoria de datos
Dato 2
Dato usado posteriormente Puerto de salida Dato intermedio
Registro interno
75
Instrucciones de transferencia Un conjunto especializado de instrucciones permite acceder a informacin almacenada en la memoria, realizando a continuacin sobre ellas operaciones aritmticas y lgicas. Los resultados pueden ser devueltos a la memoria almacenados en registros temporales, para ser utilizados posteriormente
76
77
78
79
80
81
82
Problema: se debe multiplicar el contenido del registro W con el literal 2, reemplazando el contenido previo del registro con el valor obtenido en la multiplicacin
W * 2 W El registro W contiene el valor 24. La respuesta (48) reemplaza el contenido previo del registro W. (24) 00011000 * 2 Registro W antes (48) 00110000 Registro W despus
83
Si se compara el contenido del registro W antes y despus de la multiplicacin, ver que la diferencia radica en la posicin que ocupa cada bit.
84
Conclusin
85
86
Qu ocurre con el bit que sale del registro, tanto a la izq. Como a la derecha.?
87
El microcontrolador posee un registro especial, denominado registro de estado, para el cual el valor de los bits cambia segn el resultado de las operaciones ejecutadas.
88
Cul es el valor del bit que ingresa por el extremo ms a la izq.del registro en un desplazamiento hacia la derecha ? Usualmente es el valor Cero. Esto se aplica tambin al desplazamiento en sentido contrario , en cuyo caso el bit que ingresa por el extremo ms a la derecha es el digito Cero.
89
Es posible desplazar circularmente el contenido de un registro , de modo que el bit ms a la derecha se inserta como primer bit ms a la izq.( en sentido inverso , segn se desee.)
90
91
En el siguiente programa se encontrar la solucin a un problema de animacin visual sobre un dispositivo ptico.
92
93
94
El registro de estado
Permite verificar condiciones derivadas de procesos internos y externos., as como establecer condiciones especiales de control. Cada bit en el registro de estado tiene un significado particular el cual puede variar segn la marca y familia del microcontrolador.. A continuacin se describen los bits ms importantes.
95
96
C . Control de acarreo
C. Toma el valor 1 cuando se produce un bit de acarreo ( Carry ) en una suma de nmeros binarios. Z. control de cero. Toma el valor 1. cuando el resultado de una operacin es cero.
N . Control de nmero negativo. Toma el valor 1 cuando el resultado de una operacin es negativo.
I. activacin global de interrupciones. Al establecer su valor 1 se activa la deteccin de interrupciones; el microcontrolador puede ser interrumpido en su funcionamiento por elementos externos.
97
98
99
Los elementos
Componentes del Pic 16f84. El registro de trabajo W El registro de estado (Status) La memoria de programa La memoria de datos. Los registros de propsito especial Los registros de propsito general Los registros de pila (stack) El puerto A El puerto B.
100
El registro de trabajo W
7 6 5 4 3 2 1 0
El registro W , de 8 bits , sirve para almacenar un dato, usualmemte de forma temporal , cuyo valor ser utilizado posteriormente para un clculo matemtico en la transferencia entre registros y memoria. Toda la informacin debe pasar por ste registro, siendo de suma importancia en las instrucciones del microcontrolador.
101
102
RP0: SELECCIONA EL BANCO DE MEMORIA QUE SE VA A UTILIZAR . SI RP0 = 0, SE SELECCIONA EL BANCO 1; SI RP0 = 1 SE SELECCIONA EL BANCO 0
104
105
106
107
LOS REGISTROS DE PROPOSITO GENERAL SON 36 Y VAN DE 00H A 2FH ESTAN MAPEADOS SOBRE EL BANCO DE MEMORIA CERO. SIGNIFICA QUE SOLO UNO DE LOS REGISTROS , EL CORRESPONDIENTE AL BANCO CERO ESTARA DISPONIBLE PARA EL PROGRAMADOR
108
109
110
TRISA
TRISB
111
Como sabemos, los PICs 16X84, entre otros, manejan un set reducido de instrucciones (35 instrucciones en lo que se denomina RISC) que presentan una codificacin muy particular llamada formato de la instruccin .
112
113
En los microcontroladores PICs tipo 16X84 cada instruccin tiene una longitud de 14 bits.
Los bits que actuan como datos de la memoria EPROM se reciben en el decodificador de instrucciones, y operan con el contador de programa y el registro de trabajo W, para acceder a lugares especficos del microcontrolador. tales como la ALU, posiciones de memoria, registros, etc.
114
Sintaxis de una instruccin del set. Se trata de la instruccin que suma el contenido del registro de trabajo con el contenido de un registro cuya direccin est determinada por el operador f . Forma en que el programa escribir la instruccin en el lenguaje entendible por el operador (el programa en .asm).
115
116
117
118
Continua instrucciones.
Org. Siempre se escribir al inicio de todo programa y sirve para definir la direccin de memoria en la que deben empezar a colocar las instrucciones. Al Pic hay que explicarle con detalle lo que quieres hacer, pues no presupone nada.
119
Instrucciones
End. Indica el trmino de un programa. EQU. Mediante sta declaracin podremos asignar un nombre etiqueta a una direccin a una expresin completa. Ejemplo: Reles_De_ Salida EQU d6. Es decir, que durante el resto del programa Reles _ De _ Salida ser entendido como d6
120
121
Ejemplo
MOVLW d255 ; decimal
MOVLW 0xFF
; hexadecimal
MOVWF f
123
Ejemplo
Portb equ 0x6 Contador equ 10 Movlw 0x25
Movwf portb
Movwf
contador
;carga el acumulador con ;0x25 ;el registro portb contiene ; 0x25 ;el registro contador ; contiene ; 0x25
124
MOVF f,d
Mueve una copia del registro f al destino d. El destino puede ser: Si d=0 el destino es el acumulador. Si d=1 el destino es el mismo registro f. Nota: en ste ltimo caso, el dato se queda en el mismo lugar.
125
Ejemplo
0 1 10
126
127
Memoria de datos (RAM) procesa la informacin antes de conocer las instrucciones. 24 Reg.especiales (12 Banco 0 y 12 Banco 1) 68 Reg.generales
00 Banco 0 (8 bits) 0B registros especiales 0Ch 1210 Reg. grales 4Fh 7910 Reg. Grales 50h 8010 Vacio. 7Fh 12710 Vacio.
80h 12810 Banco 1 8Bh 13910 Reg.especiales 8Ch 14010 Imagen CFh 20710 D0h 20810 FFh 25510
128
03h = Status
Localidad de Memoria variables
Registro(file)
El direccionamiento de la RAM El ancho de las localidades = 8 Bits. Los Bits de direccionamiento = 8 bits (0 a 25510) (00h a FFh)
8 Bits
W
todo tiene que pasar por W
129
130
Ejemplo: Si quiero pasar de una localidad a otra tiene que pasar por W
Instruccin Movwf Mueve una copia de lo que hay en W a la localidad 13 (7 bits para direccionar A la RAM , que son localidades del Banco 0 Banco 1)
131
132
7 Bits para direccionar a la memoria RAM , el 8/o bit est dentro del registro Status para direccionar a la RAM
Status = File registro de RAM. Es el 5/o Bit de direccionamiento (status bit 5) 8 bits para direccionar a la RAM Los 7 bits estn en la flash (instrucciones). 1 0 0 0 0 0 0 0 7Bits 8/o Bit (localidad 03h y 83h)
0 h
133
Si es 03h estar en el banco 0 como W= 0000 00112 (recordar que en 00h empieza el banco 0 y termina en 7Fh , el 8/o bit determina el banco 0)
Si es 83h estar en el banco 1 como W = 1000 00112 ( el 8/o bit determina el banco 1) Asegurarnos estar 1/o en Banco 0 (status = 0000 00002 ) Si se propone que se mueva una copia de lo que hay en W a la localidad 0Dh, Tendremos que ubicarla en el Banco 0 , porque B0 000 1101 , el 8/o bit determina el Banco 0.( que a la vez es el Status= 5/o Bit ) STATUS,5 ; Pero si es por ejemplo 8Dh, entonces lo ubicaremos en el Banco 1, porque 8Dh = B1 000 1101,el 8/o bit determina el banco 1 (status,5)
134
Aplicacin en el 16F84
Si tenemos que Status = 03h y PortB = 06h ( es un registro ). Es salida si estando en el interior W va a 06h. Es entrada si estando 06h en el exterior va al interior donde est W. Ejemplo si W = 1010 1010 Rb7 Rb6 Rb5 Rb4 Rb3 Rb2 Rb1 Rb0 1 0 1 0 1 0 1 0 in out in out in out in out B1010 1010 = AAh = 17010 (est en el banco 1) El 8/o Bit nos determina que es salida direccionamiento de entrada. NOTA IMPORTANTE: Si se puede escribir en la localidad 06h , es porque el puerto B se direccion como salida. Si se puede leer la localidad 06h es porque el puerto B est direccionado como entrada.
135
136
Aprendiendo a Programar
137