Tecnológico Nacional de México
Instituto Tecnológico Superior de Las Choapas
Antología de la Materia
“Sistemas programables”
“SCC-1023”
Desarrollada por:
Ing. José Luis Pérez Reséndiz
Las Choapas, Ver., febrero de 2021.
AUTORIDADES
Elaboró: Ing. Jose Luis Perez Resendiz.
Revisión por la
[Link] Antonio Toledo.
Academia
Autorizo Mtro. Diego Alberto Zetina García
Director Académico
CONTENIDO
INTRODUCCIÓN 3
UNIDAD I. Sensores 4
UIDAD II. Actuadores 13
UNIDAD III. Microcontroladores 22
UNIDAD IV. Programación de Microcontroladores 30
UNIDAD V. Buses y Puertos de Comunicación
para microcontroladores 34
UNIDAD VI. Interfaz 39
Bibliografía 43
Página | 2
INTRODUCCIÓN
La presente Guía Técnica para el Desarrollo de Competencias, está dirigida a
estudiantes de la carrera de Ingeniería en Sistemas Computacionales del Sistema
Nacional de Educación Superior Tecnológica, que cursan la materia de Sistemas
Programables. En ella se proponen una serie de prácticas y actividades que cubren
todos los temas del programa de la materia, de tal manera que se complementan
de manera integral los aspectos teóricos con las actividades en el laboratorio.
Los continuos avances de la electrónica han permitido la ampliación de su campo
de aplicaciones, por lo que se hace necesario proporcionar a los alumnos
experiencias bajo ambientes controlados, que recreen diferentes contextos de
aplicación de los sistemas de cómputo, incluyendo señales analógicas y digitales,
con dispositivos de potencia y frecuencias altas o bajas, haciéndolas adecuadas
en aplicaciones de tiempo real.
Por ello, en la Primera Práctica se tratan los temas de Sensores y Transductores,
definiendo cada uno de ellos, pero poniendo atención en aquellos que por su amplio
campo de aplicaciones, disponibilidad y costo, puedan adquirirse fácilmente en el
mercado nacional, lo que eventualmente permitirá a los estudiantes su adquisición
para la realización de las prácticas correspondientes. Permitiendo la incorporación
de habilidades que se integrarán a su formación, lo que le facilitará instalar,
mantener o desarrollar sistemas digitales basados en equipos de cómputo, que
incluyan este tipo de dispositivos.
En la Segunda Práctica se trata el tema de los Actuadores, poniendo especial
atención en los dispositivos eléctricos y electrónicos, que por sus características
pueden utilizarse en acciones de control a partir de un sistema de cómputo.
En la Tercera Práctica, se desarrollan habilidades utilizando los puertos paralelo de
los microcontroladores, incluyendo programación en lenguaje ensamblador,
estimulando la creatividad de los estudiantes e integrando conocimientos previos
adquiridos en materias cursadas anteriormente, como Arquitectura de
Computadoras y Lenguajes de de Interfaz.
Finalmente, en la Cuarta Práctica se utiliza un microcontrolador de la familia PIC de
Microchip, lo que permite el uso de una arquitectura tipo RISC, que es idealpara
el desarrollo de interfaces de aplicación específica, ya que se elaboran programas
en lenguaje ensamblador optimizando el uso de los puertos de entrada-salida.
Página | 3
UNIDAD 1.- SENSORES
1.1. SENSOR
El término sensor se refiere a un elemento que produce en su salida una señal,
relacionada con la cantidad que se está midiendo, independientemente del tipo de
variable de que se trate.
Figura 1.1 Sensores y variables físicas
Página | 4
Figura 1.2 Ejemplos de Sensores
TIPOS DE SENSORES
• Ópticos
• Velocidad y movimiento
• Fuerza
• Presión de líquidos
• Flujo de líquidos
• Nivel de líquidos
• Temperatura
• Desplazamiento, posición y proximidad
Página | 5
TRANSDUCTOR
Es un dispositivo que convierte una variable física en una variable eléctrica.
Las fotoceldas, los termistores y los tacómetros son ejemplos de algunos
transductores.
La salida eléctrica de un transductor es una corriente o voltaje proporcional a la
variable física que recibe.
TIPOS DE TRANSDUCTORES ELECTRÓNICOS
• Fotodiodo y Fototransistor
• Optoaislador/ Optoacoplador
• Optointerruptor
• OptoSCR
• OptoTRIAC
• Charge Coupled Device (CCD)
Figura 1.3 Transductores
Página | 6
FOTODIODO
El fotodiodo es un dispositivo semiconductor de unión-pn cuya región de operación
se limita a la región de polarización inversa. Un incremento en la intensidad luminosa
ocasiona un incremento proporcional en la corriente inversa.
Se utiliza en aplicaciones de conteo o de conmutación, con luz láser o infrarroja.
Figura 1.4 Símbolo del Fotodiodo
FOTOTRANSISTOR
El fototransistor posee una unión-pn colector-base fotosensible. De tal manera que
la corriente inducida por los efectos fotoeléctricos será la corriente de base del
transistor. Si se asigna la notación Iλ para la corriente de base fotoinducida, la
corriente de colector resultante será:
IC≈hFE Iλ
Las curvas de respuesta de un fototransistor son muy similares a las de un transistor
común y en ellas se aprecia que IC depende de Iλ.
Las aplicaciones del fototransistor en instrumentación y control incluyen lectores
ópticos, circuitos lógicos, control de iluminación, indicadores de nivel, sistemas de
control remoto y sistemas de conteo.
Página | 7
Figura 1.5 Ejemplo de Fototransistor
OPTOACOPLADOR
También llamado Optoaislador, es un dispositivo que contiene tanto un diodo emisor
de luz (LED) infrarrojo, como un fotodetector, con una salida que puede ser un
fototransistor, un par Darlington, un SCR, o un TRIAC.
Estos dispositivos se utilizan para aislar eléctricamente etapas digitales de etapas
analógicas, para transmisión de datos, o para acoplamiento entre etapas, entre otras
aplicaciones.
OPTOCOUPLER_VIRTUAL
Figura 1.6 Símbolo del Optoacoplador
Página | 8
Figura 1.7 Ejemplo de Optointerruptor
SENSOR DE PROXIMIDAD
Este tipo de sensor se puede implementar de varias maneras:
• Infrarrojo
• Ultrasonido
• Electromagnético
• Capacitivo
La elección de cada sensor dependerá de la aplicación de que se trate.
Por ejemplo, si existe mucho ruido de alta frecuencia, como el que se presenta en
ambientes industriales, no se recomienda el sensor de ultrasonido.
Por el contrario, si existen campos electromagnéticos intensos, estos pueden
afectar al sensor electromagnético.
Página | 9
Sin embargo, en robótica se utilizan ampliamente los sensores de ultrasonido
gracias a su excelente direccionalidad, lo que los hace adecuados para servir de
guía a robots móviles.
Mientras que los sensores electromagnéticos se recomiendan en espacios abiertos,
por ejemplo para controlar la apertura y cierre automático de puertas.
En todos los casos se recomienda utilizar señales codificadas, para garantizar que
los sistemas no sean afectados por el ruido circundante, que eventualmente puede
afectar su funcionamiento.
Movimiento
Figura 1.8 Ejemplo de Sensor de proximidad
Página | 10
ACTIVIDADES:
DIAGRAMAS:
CIRCUITO #1.- Detector de paso. El LED visible conmuta a la misma frecuencia del
astable y se apaga cuando el objeto bloquea el paso de la luz infrarroja.
LED infrarrojo Fototransistor LED visible
Astable Amplificador
Objeto en movimiento
CIRCUITO #2.- Detector de proximidad. El LED visible permanece apagado hasta que el
objeto está lo bastante cerca para reflejar la luz infrarroja, en ese momento conmuta a la
misma frecuencia del astable.
LED infrarrojo
Objeto en movimiento
Astable
Luz infrarroja
Amplificador
LED visible Fototransistor
Página | 11
CIRCUITO #3.- Detector de paso. El LED visible permanece apagado hasta que el objeto
impide el paso de la luz infrarroja, en ese momento se activa el monostable, el LED
permanece encendido durante 5 segundos y se vuelve a apagar.
LED infrarrojo Fototransistor LED visible
Fuente
continua Amplificador Monostable
Objeto en movimiento
CIRCUITO #4.- Detector de proximidad. El LED visible permanece apagado hasta que el
objeto está lo bastante cerca para reflejar la luz infrarroja, en ese momento el LED
permanece encendido durante 10 segundos y se vuelve a apagar.
LED infrarrojo
Fuente
Objeto en movimiento
continua
Monostable Amplificado Luz infrarroja
r
10 segundos Operacion
al
LED visible Fototransistor
Página | 12
UNIDAD 2.- ACTUADORES
2.1 ACTUADORES
Los actuadores son los elementos de los sistemas de control que transforman la
salida de un microprocesador, microcontrolador o controlador en una acción de
control para una máquina o dispositivo.
Por ejemplo, puede ser necesario transformar una salida eléctrica del controlador
en un movimiento lineal que desplaza una carga.
Otro ejemplo sería cuando la salida eléctrica del controlador debe transformarse
en una acción que controle la cantidad de líquido que pasa por una tubería.
TIPOS DE ACTUADORES
• Neumáticos e Hidráulicos
• Eléctricos
• Electrónicos
• Mecánicos
ACTUADORES NEUMÁTICOS
Con frecuencia las señales neumáticas se utilizan para manejar elementos finales
de control, incluso cuando el sistema de control es eléctrico. Esto se debe a que con
esas señales es posible accionar válvulas grandes y otros dispositivos y otros
dispositivos de control que requieren mucha potencia para mover cargas
considerables.
La principal desventaja de los sistemas neumáticos es la compresibilidad del aire.
Las señales hidráulicas se usan en dispositivos de control de mucho mayor
potencia, pero son más costosas que los sistemas neumáticos y hay riesgos
asociados con fugas de aceite que no ocurren con fugas de aire.
ACTUADORES ELÉCTRICOS
Dispositivos de conmutación de potencia, como relevadores, interruptores
mecánicos e interruptores de estado sólido (diodos, tiristores y transistores), en los
que la señal de control enciende o apaga un dispositivo eléctrico, que podrá ser un
calentador o un motor.
Página | 13
Dispositivos tipo solenoide, en los cuales una corriente que pasa por un solenoide
acciona un núcleo de hierro dulce, por ejemplo una válvula hidráulica operada por
solenoide, donde la corriente de control que pasa por el solenoide se utiliza para
regular un flujo hidráulico o neumático.
Sistemas motrices, por ejemplo, motores de corriente directa (cd), motores de
corriente alterna (ca) o motores de pasos, en los cuales la corriente que pasa por
los devanados del motor produce un movimiento de rotación.
RELEVADOR
Son dispositivos actuadores eléctricos cuya acción consiste en abrir o cerrar
interruptores para habilitar o inhabilitar otros dispositivos, otros actuadores u otros
sistemas.
Figura 2.1 Ejemplo de relevador
ACTUADORES ELECTRÓNICOS
Los actuadores electrónicos son dispositivos o circuitos electrónicos que se
conectan a la salida de un sistema digital, computadora o microcontrolador; a través
de los cuales se realiza alguna acción sobre una carga, habilitándola o
inhabilitándola al proporcionarle, o quitarle, el voltaje o la corriente adecuados para
su operación.
Como ejemplos se pueden mencionar a los transistores, SCR y TRIAC’s, entre otros
OPTOSCR Y OPTOTRIAC
Estos dispositivos tienen características muy similares a las del fototransistor, ya
que su operación depende de la incidencia de luz en la compuerta (Gate), lo que
elimina la necesidad de circuitos de disparo, simplificando su aplicación y
permitiendo su uso en circuitos digitales para controlar directamente cargas
analógicas.
Página | 14
Los actuadores ópticos tienen la ventaja de acoplar y aislar eléctricamente las
etapas digitales de las analógicas. Evitando la interacción entre circuitos de baja
potencia y los de alta potencia.
Figura 2.2 Símbolos del OptoSCR y OptoTRIAC
ACTUADORES MECÁNICOS
Son dispositivos que se pueden considerar convertidores de movimiento, dado
que transforman el movimiento de una forma a otra. Por ejemplo, con un actuador
mecánico, un movimiento lineal se puede convertir en un movimiento rotacional;
un movimiento en una dirección convertirse en uno con otra dirección en ángulo
recto respecto al primero.
También es posible transformar un movimiento lineal alterno en uno rotacional,
como en el caso del motor de combustión interna, donde el movimiento alterno de
los pistones se convierte en el del cigüeñal y este lo transfiere el eje de la
transmisión.
Entre los elementos mecánicos están los mecanismos de barras articuladas, levas,
engranes, cremalleras, cadenas y correas de transmisión, entre otras.
Por ejemplo, el arreglo engrane-cremallera convierte el movimiento rotacional en
uno lineal.
Los engranes cónicos transmiten movimiento rotacional en un ángulo de 90º.
Las levas y los mecanismos son útiles para obtener movimientos que varíen en la
forma que se desea.
Muchos de los efectos que antes se obtenían con el uso de mecanismos en la
actualidad se logran mediante sistemas de microcontroladores.
Página | 15
Antes en las lavadoras domésticas se utilizaban levas montadas en un eje rotacional
para lograr una secuencia de acciones sincronizadas como abrir una válvula para
dejar pasar agua al tambor, cerrar el suministro de agua, encender un calentador,
entre otras acciones; en las lavadoras modernas se programa unmicrocontrolador o
sistema embebido para que produzca las salidas deseadas en la secuencia
requerida.
Si bien la electrónica hoy día se utiliza en forma generalizada para desempeñar
diversas funciones que antes se realizaban con actuadores mecánicos, éstos
todavía son útiles para llevar a cabo funciones como las que se mencionan a
continuación.
TIPOS DE ACTUADORES MECÁNICOS
• Amplificación de fuerzas: palancas
• Cambio de velocidad: engranes
• Transferencia de rotación de un eje a otro: banda síncrona
• Transformación del movimiento: levas
ACTIVIDADES
DIAGRAMAS:
CIRCUITO DETECTOR #1.- Detector de paso. El LED visible permanece apagado
hasta que el objeto impide el paso de la luz infrarroja, en ese momento se activa el
monostable, el ACTUADOR permanece activo durante 5 segundos y se vuelve a
apagar.
LED infrarrojo Fototransistor ACTUADOR
Fuente Acondicionador Monostable
continua de señal
5 segundos
Objeto en movimiento
Página | 16
CIRCUITO ACTUADOR #1.- Su entrada se conecta a la salida del MONOSTABLE
del detector de paso, el transistor inversor activa el relevador de 12VCD, el FOCO
se conecta a la línea de CORRIENTE ALTERNA y permanece encendido durante el
retardo del MONOSTABLE.
Página | 17
CIRCUITO ACTUADOR #2.- Su entrada se conecta a la salida del MONOSTABLE
del detector de paso, el OPTOTRIAC dispara al TRIAC y el FOCO se conecta a la
línea de CORRIENTE ALTERNA, permanece encendido durante el retardo del
MONOSTABLE.
CIRCUITO DETECTOR #2.- Detector de proximidad. El LED visible permanece
apagado hasta que el objeto está lo bastante cerca para reflejar la luz infrarroja, en
ese momento el ACTUADOR permanece activo durante 10 segundos y se vuelve a
apagar.
LED infrarrojo
Fuente
continu Objeto en movimiento
a
ACTUADOR
Monostable Acondicionador
de señal Luz infrarroja
10 segundos
Fototransistor
Página | 18
CIRCUITO ACTUADOR #3.- Su entrada se conecta a la salida del MONOSTABLE
del detector de proximidad, el transistor inversor activa el relevador de 12VCD, el
BUZZER se conecta a la fuente de 12VCD y permanece zumbando durante el
retardo del MONOSTABLE.
CIRCUITO ACTUADOR #4.- Su entrada se conecta a la salida del MONOSTABLE
del detector de proximidad, el transistor inversor activa el relevador de 12VCD, el
MOTOR DE CORRIENTE DIRECTA se conecta a lafuente de 12VCD y permanece
girando durante el retardo del MONOSTABLE.
Página | 19
CIRCUITO ACTUADOR #5.- Durante el día el FOTOTRANSISTOR está saturado,
por lo que la salida del COMPARADOR está en alto, por lo que se produce una
corriente en la base del TRANSISTOR y se satura, produciendo una corriente de
colector que provoca que el RELEVADOR se active, manteniendo apagada la
lámpara. Si hay oscuridad, en el emisor del fototransistor se encuentra un voltaje
menor que el establecido en el preset del comparador, por lo que la salida de éste
está en bajo, provocando que el RELEVADOR quede inactivo, encendiendo la
lámpara.
Página | 20
Fototransistor
con filtro de luz
de día
Relevador 2P2T 12 VCD
RHL-2-12D-10H
OptoTRIAC
MOC3031
BUZZER PULSO
RÁPIDO
BGD35CIR
TRIAC 8ª
Ventilador de 4 pulgadas
BTA08-600B
12VCD
VN4-012P
Página | 21
UNIDAD III. MICROCONTROLADORES
ANTECEDENTES
Los microcontroladores se han desarrollado para cubrir las más diversas aplicaciones.
Se utilizan en la industria automotriz, en equipos de comunicaciones y de telefonía,
en instrumentos electrónicos, en equipos médicos e industriales de todo tipo, en
electrodomésticos y juguetes, entre muchas otras aplicaciones. En esencia se trata
de microcomputadoras en un sólo circuito integrado, con todas sus unidades
funcionales, como: CPU, memoria RAM, memoria ROM, puertos de entrada-salida, y
temporizadores; así como otras unidades especializadas, incluyendo contadores,
convertidores Analógico-digital y moduladores por anchode pulso, entre muchas
otras.
Estos dispositivos están concebidos fundamentalmente para ser utilizados en
aplicaciones puntuales, es decir, aplicaciones donde el microcontrolador debe
realizar un pequeño número de tareas, al menor costo posible.
En estas aplicaciones, el microcontrolador ejecuta programa almacenado
permanentemente en su memoria, el cual trabaja con algunos datos almacenados
temporalmente e interactúa con el exterior a través de las líneas de entrada-salidade
que dispone. De esta manera, el microcontrolador es parte de la aplicación, poreso
también se le denomina controlador incrustado o embebido en la aplicación Algunas
de las características deseables en un microcontrolador, son las siguientes:
Recursos suficientes de entrada-salida, sólo la capacidad de procesonecesaria,
seguridad en el funcionamiento, bajo consumo de energía y proteccióncontra lectura
no autorizada de su programa, entre otras.
Los microcontroladores PIC, con Arquitectura Harvard y tipo RISC, son fabricadosy
comercializados por la compañía Microchip, son dispositivos de bajo costo y sus
características cubren prácticamente todas las necesidades, para cualquier tipo de
aplicación. Se dividen en tres grandes grupos, dependiendo de sus características:
gama baja, gama media y gama alta. Entre todos, un dispositivo muy popular es el
PIC16F84A.
Página | 22
Figura 3.1 Terminales del microcontrolador PIC16F84A
CARACTERÍSTICAS DEL MICROCONTROLADOR
• Conjunto de sólo 35 instrucciones
• Las instrucciones se ejecutan en un ciclo de reloj, excepto las de
saltos, que se ejecutan en dos ciclos de reloj.
• La velocidad de operación está en función de la entrada de reloj, de
hasta 20 MHz., para un ciclo de instrucción de 200 ŋs.
• Cuenta con memoria de programa de 1024 palabras.
• Memoria RAM de datos de 68 bytes.
• Memoria EEPROM de datos de 64 bytes.
• Ancho de instrucciones de 14-bits
• 15 registros de hardware para funciones especiales
• Stack de hardware con 8-niveles de profundidad
• Modos de direccionamiento directo, indirecto y relativo
• Cuatro fuentes de interrupción:
▪ Externa, a través de la terminal RB0/INT
▪ Sobreflujo del temporizador TMR0
▪ Detección de interrupción en el Puerto B <7:4>
▪ Escritura de datos terminada en la EEPROM de datos
Página | 23
Figura 3.2 Diagrama a bloques del microcontrolador PIC16F84A
CARACTERÍSTICAS PARA MANEJO DE PERIFÉRICOS
• 13 Terminales de entrada/salida con control individual de dirección
de datos.
• Capacidad de corriente para manejar directamente cargas de diodos
emisores de luz. (LED).
• Temporizador/contador TMR0 de 8-bits, con pre-escalador
programable de 8-bits.
Página | 24
Figura 3.3 Conjunto de instrucciones del microcontrolador PIC16F84A
Página | 25
EJEMPLOS DE PROGRAMAS UTILIZANDO EL LENGUAJE ENSAMBLADOR
DEL MICROCONTROLADOR PIC16F84A
ACTIVIDAD: Documentar los programas utilizando la columna de comentarios,
explicando la acción de cada instrucción; elaborar el diagrama de flujo y probarlo
utilizando el entorno de programación MPLAB IDE (ver Guía de aprendizaje en el
apéndice).
PROGRAMA # 1
Programa que muestra el uso de los puertos A y B, así como el temporizador/contador
TMR0.
OPCION equ 0x01
TMR0 equ 0x01
ESTADO equ 0x03
PUERTOA equ 0x05
PUERTOB equ 0x06
CONTADOR equ 0x10
Inicio org 0
bsf ESTADO,5
movlw b'11010110'
movwf OPCION
movlw 0xff
movwf PUERTOA
movlw 0x00
movwf PUERTOB
bcf ESTADO,5
clrf PUERTOB
Lee movf PUERTOA,0
movwf PUERTOB
call Retardo
call Retardo
goto Lee
Retardo movlw d'2'
movwf CONTADOR
Retardo1 clrf TMR0
Explora btfss TMR0,0
goto Explora
decfsz CONTADOR,1
goto Retardo1
return
End
Página | 26
Figura 3.1 Diagrama eléctrico para el Programa # 1. El estado de los interruptores
conectados al Puerto A se refleja en los LEDS’s conectados al Puerto B.
Página | 27
PROGRAMA # 2
Programa que muestra el uso del microcontrolador PIC16F84A como conmutador,
utilizando los puertos A y B, así como el temporizador/contador TMR0.
OPCION equ 0x01
TMR0 equ 0x01
ESTADO equ 0x03
PUERTOB equ 0x06
CONTADOR equ 0x10
Inicio org 0
bsf ESTADO,5
movlw b'11010110'
movwf OPCION
movlw 0x00
movwf PUERTOB
bcf ESTADO,5
clrf PUERTOB
Conmuta bsf PUERTOB,3
bcf PUERTOB,4
call Retardo
bcf PUERTOB,3
bsf PUERTOB,4
call Retardo
goto Conmuta
Retardo movlw d'2'
movwf CONTADOR
Retardo1 clrf TMR0
Explora btfss TMR0,0
goto Explora
decfsz CONTADOR,1
goto Retardo1
return
End
Página | 28
Figura 3.2 Diagrama eléctrico para el Programa # 2. Los LED’s conectados a los bits 3 y
4 del Puerto B conmutan continuamente.
Página | 29
UNIDAD IV. PROGRAMACION DE MICROCONTROLADORES
El microcontrolador ejecuta el programa cargado en la memoria Flash. Esto se
denomina el código ejecutable y está compuesto por una serie de ceros y unos,
aparentemente sin significado. Dependiendo de la arquitectura del microcontrolador, el
código binario está compuesto por palabras de 12, 14 o 16 bits de anchura. Cada
palabra se interpreta por la CPU como una instrucción a ser ejecutada durante el
funcionamiento del microcontrolador. Todas las instrucciones que el microcontrolador
puede reconocer y ejecutar se les denominan colectivamente Conjunto de
instrucciones. Como es más fácil trabajar con el sistema de numeración hexadecimal,
el código ejecutable se representa con frecuencia como una serie de los números
hexadecimales denominada código Hex. En los microcontroladores PIC con las
palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35
instrucciones diferentes.
4.1 Modelo de programación
Funciones de un programa de control de procesos:
Adquisición y acondicionamiento de datos
Control digital directo
Supervisión del sistema
Control de secuencias
Modelos a estudiar
Organigramas (diagramas de flujo)
Maquinas de estado finita (Finite State Machine--FSM)
Organigramas
Suelen utilizarse en aplicaciones sencillas o en la planificación de rutinas en
las que se divide una aplicación más compleja.
Máquina de estados finita (FSM)
▪ Estados: Son las diferentes situaciones en las que puede encontrarse el sistema.
▪Entradas (señales de transición de estados): Constituyen los acontecimientos que
producen los cambios de estado.
Página | 30
Salidas: Respuesta del sistema ante los cambios en las entradas.
Funciones de transición de estado: Descripción detallada, para cada estado, de cuál es
el siguiente estado y la salida del sistema, cuando se producen las distintas entradas.
La forma en que los representan son:
▪ Diagrama de grafo de estado
▪ Tabla de transiciones
4.2 Estructura de los registros del CPU
Los programas de los microcontroladores suelen dividirse en dos grandes grupos:
La estructura de interrupciones, formada por las rutinas de servicio a las mismas.
El programa principal, que consta de dos partes: La rutina de inicialización del sistema
y
Un lazo de ejecución perpetua, en donde n perpetua, en donde se ejecutan todas se
ejecutan todas aquellas tareas que no estén ligadas a la estructura de n ligadas a la
estructura de interrupciones: máquina de estados principal, rutinas no quina de estados
principal, rutinas no críticas, inicialización del circuito de vigilancia
4.3 Modos de direccionamiento
• Modos de direccionamiento 8051
Dir
En el direccionamiento directo, se indica la dirección a operar de forma absoluta.
Para la familia de microcontroladores 8051 se dispone de 256 direcciones directas,
correspondientes a (Ram interna + Registros SFR).
El OpCode va seguido de un byte que representa la dirección.
MOV A,30H ; A<-(30H), El contenido de la dirección 30H se mueve al acumulador ADD
A,31H ; A<-(A)+(31H), Se suma el contenido de acumulador con el de la dirección 31H;
el resultado se deposita en el acumulador.
Página | 31
Por registro (Rn)
Rn. Para el direccionamiento por registro el código de la instrucción (OpCode) contiene
la información del registro a operar, del banco de registros seleccionado.
MOV R1,A ; R1<-(A), El contenido del acumulador se mueve al registro R1 OpCode de
(MOV Rn,A) es F8H, en binario:
Los tres últimos bits identifican el registro sobre el cual se opera.
Indirecto (@)
@. Se especifica un registro que contiene la dirección del dato a operar.
R0, R1 cuando se accede a la memoria interna de direccionamiento indirecto 256 Bytes.
DPTR para el acceso a la memoria externa 64K Bytes.
1 1 1 1 1 0 0 1
MOV R0,#30H ; RO<-30H, mover al registro 0 el dato inmediato 30H (constante) MOV
A,@R0 ; A<-((R0)), mueve el contenido de la posición de memoria indicada en R0 al Acc.
Implícito
La instrucción indica implícitamente el registro sobre el que se ha de operar. INC A ; A<-
(A)+1, incrementar el acumulador
CPL A ; A<-(Ã), complementa el acumulador
Inmediato (#)
#. El OpCode está seguido de una constante que representa el valor con el que se operará.
MOV A,#0 ; A<-0, poner cero en el Acc
MOV R1,#123 ; R1<-123, poner el valor 123 (decimal) en el registro uno
Indexado
Se utilizan dos registros para apuntar a la dirección que contiene el dato. La suma del
contenido del DPTR más el acumulador determina la dirección a operar.
Página | 32
Este direccionamiento esta limitado a dos únicas instrucciones que mueven datos de la
ROM al acumulador.
MOVC A,@A+DPTR ; A<-((DPTR+A)), el contenido de la posición que apunta el
DPTR+A se deposita en el Acc
4.4 Conjunto de instrucciones
Un conjunto de instrucciones o repertorio de instrucciones, juego de instrucciones o ISA
(del inglés Instruction Set Architecture, Arquitectura del Conjunto de Instrucciones) es
una especificación que detalla las instrucciones que una CPU de un ordenador puede
entender y ejecutar, o el conjunto de todos los comandos implementados por un diseño
particular de una CPU. El término describe los aspectos del procesador generalmente
visibles a un programador, incluyendo los tipos de datos nativos, las instrucciones, los
registros, la arquitectura de memoria y las interrupciones, entre otros aspectos.
4.5 Lenguajes ensambladores
Ventajas:
• Permite desarrollar programas muy eficientes:
• Uso eficiente de recursos
• Código compacto
• Control total sobre el tiempo de ejecución de las instrucciones
especialmente importante en aplicaciones en tiempo real
Desventajas:
Programación costosa y difícil de modificar
4.6 Codificación
A menudo gastamos una gran cantidad de energía diseñando un circuito elegante, bien
diseñado y robusto. Hoy día, el cerebro de muchos de estos circuitos es un
microcontrolador que necesita un software para funcionar. ¿No es razonable entonces
esperar un programa bien diseñado y escrito adecuadamente que se complemente con
la calidad del trabajo del circuito? Aparentemente así es. Hablemos de la cualidad del
[Link] un hecho muy bien conocido: los errores matan a gente y los errores de
programación no son una excepción. Todos los
años muere gente debido a errores de programas. Algunos accidentes fatales de avión,
helicóptero y coches pueden ser atribuidos a problemas en el software. El mal
funcionamiento del ‘firmware’ interno de los dispositivos médicos crea víctimas de
manera regular. Los edificios se convierten en humo debido a errores de programa, y
algunas personas son asesinadas a machetazos. El software erróneo puede incluso
hundir barcos. Creedme, he visto que eso sucede.
Página | 33
UNIDAD V. BUSES Y PUERTOS DE COMUNICACIÓN
PARA MICROCONTROLADORES
OPERACIÓN DE ESCRITURA EN LOS PUERTOS DEL MICROCONTROLADOR 8051.
La operación de escritura, utilizando los puertos puede ser realizada por cualquiera de
ellos, no obstante, el puerto PO es el que presenta una mayor cargabilidad, permitiendo
comandar ocho cargas TTL - LS, mientras que los otros tres permiten cuatro cargas TTL
– LS.
Para comandar cargas de mayor consumo energético, como relés, se recomienda
utilizar, entre el puerto y la carga drivers no inversores. Para la operación de
ESCRITURA en el puerto, la instrucción más habitual es la siguiente:
MOV PX , <dato> ; PX<- dato.
X toma valores 0, 1, 2 y 3 según el puerto.
Admitiendo <dato> todos los tipos de direccionamiento.
Si se necesita activar o desactivar un bit de un puerto ( se puede hacer extensivo a todos
los registros direccionales bit a bit del SFR), puede hacerlo utilizando las instrucciones
booleanas.
5.1 Tipos de puertos
PUERTOS DE ENTRADA / SALIDA EN UN MICROCONTROLADOR
Cualquier aplicación de un sistema digital basado en un microprocesador o
microcontrolador requiere la transferencia de datos entre circuitos externos al
microprocesador y él mismo. Estas transferencias constituyen las operaciones llamadas
ENTRADA y SALIDA, (input /output ) o ES ( I/O).
Los puertos de entrada/salida son básicamente registros externos o internos. Algunos
microprocesadores proporcionan señales de control que permiten que los registros
externos que forman los puertos de E/S ocupen un espacio de direcciones separada, es
decir, distinto del espacio de direcciones de los registros externos que componen la
memoria. Cuando los puertos tienen asignado un espacio de direcciones separado, se
dice que están en modo de ENTRADA/SALIDA AISLADA o E/S ESTÁNDAR. Por el
contrario, cuando se ubican dentro del mismo espacio que la memoria, se dice que están
en modo de ENTRADA/SALIDA MAPEADA A MEMORIA o PROYECTADA EN
MEMORIA.
Página | 34
ENTRADA/SALIDA AISLADA.- Para que un microprocesador pueda implementar el
modo E/S aislada (isolated I/O) son indispensables las siguientes condiciones:
1.- El microprocesador debe proporcionar señales de control que permitan distinguir
entre una operación con un puerto y una referencia a memoria.
2.- El código de instrucciones debe tener instrucciones especiales con las que se pueda
leer (entrada) o escribir (salida) en los puertos.
ENTRADA/SALIDA MAPEADA.- El modo de E/S mapeada a memoria (Memory mapped
I/O) se basa en que tanto las localidades de memoria como los puertos de E/S se
consideran como registros externos desde el punto de vista del microprocesador.
Entonces, las instrucciones que hacen referencia a la memoria también pueden transferir
datos entre un dispositivo periférico y el microprocesador, siempre y cuando el puerto de
E/S que los interconecta se encuentre dentro del espacio de direccionamiento de
memoria, es decir, controlado por las señales de control para memoria. De esta forma, el
registro asociado con el puerto de E/S es tratado simplemente como una localidad de
memoria más.
PUERTOS DEL MICROCONTROLADOR 8051
La operación de escritura, utilizando los puertos puede ser realizada por cualquiera de
ellos, no obstante, el puerto PO es el que presenta una mayor cargabilidad, permitiendo
comandar ocho cargas TTL - LS, mientras que los otros tres permiten cuatro cargas TTL
– LS. Para comandar cargas de mayor consumo energético, como relés, se recomienda
utilizar, entre el puerto y la carga drivers no inversores. Para la operación de
ESCRITURA en el puerto, la instrucción más habitual es la siguiente: MOV PX , <dato> ;
PX<- dato.
5.2 Programación de puertos
• • Programación por puerto serial
• • Programación por puerto paralelo
MPLAB DE MICROCHIP
Se integra de forma automática, al instalar el compilador PCW. En versiones
anteriores ejecutando el comando: Cscs + setup.
5.3 Aplicaciones de puertos
OPERACIÓN DE LECTURA EN LOS PUERTOS DEL MICROCONTROLADOR 8051.
La operación de lectura o de adquisición de datos no representa ningún tipo de problema;
solamente se deberá cambiar el orden de los operandos en la instrucción respecto a la
de escritura.
Página | 35
Para la operación de lectura, el formato de la instrucción más habitual es el siguiente:
MOV <dato>,PX ; dato <- PX
Los siguientes diagramas muestran cómo se puede introducir un dato a los puertos para
que sirvan de interface.
5.4 Estándares de buses
PC/104 se lanzó en 1992, acercando la tecnología PC a las aplicaciones de control
industrial. El estándar PC/104 usa el bus ISA como un bus portador en el sistema, sobre
el que las unidades se interconectan, semejante al estándar plug-in o las tarjetas de
expansión de la época. En 1994 el estándar se amplió para incluir el bus PCI y especificó
el PC/104 Plus como el estándar. En el estándar PC/104 Plus, tanto el bus ISA como el
bus PCI se declaran como buses portadores en el sistema y, por lo tanto, disponibles para
la expansión del sistema. Ambos sistemas de conectores ocupan alrededor del 30% del
área de la tarjeta.
La creciente complejidad de las tarjetas y el énfasis en el bus PCI condujo en el año 2004
a que el uso de PC/104 con bus ISA comenzara a utilizarse en menor medida frente al uso
del estándar PC/104 Plus. Para aplicaciones en las que el bus ISA es necesario, están
disponibles las tarjetas que hacen de puente entre PCI e ISA y por tanto permite el uso de
expansiones o tarjetas ISA en soluciones PCI- 104. Existen numerosos desarrollos en el
mercado, dentro de áreas tan diferentes como máquinas herramientas, control de sistemas
de riego o aplicaciones militares. Por este motivo, el estándar PC/104 sigue manteniendo,
gracias a su robustez, una parte alta del mercado embedded.
Más de 100 fabricantes de tarjetas respaldan actualmente el estándar PC/104 y ofrecen
una solución para casi cada aplicación. En comparación con otras soluciones, el estándar
PC/104 es un estándar real y de ese modo permite el intercambio seguro de tarjetas de
diferentes fabricantes, asegurando una disponibilidad a largo tiempo.
Página | 36
5.5 Manejo del bus
Selección del Bus
Con el objetivo de solucionar los problemas antes mencionados y de poder reusar nuestros
diseños así como también usar diseños realizados por otros grupos adoptamos el estándar
de interconexión Wishbone.
Bus de expansión
En una primera aproximación creamos un bus de expansión específicamente creado para
el microcontrolador. Esto tiene importantes desventajas, entre ellas:
− Para conectar periféricos creados por otros grupos de trabajo es necesario adaptarlos a
la señalización del bus en cuestión.
− Periféricos diseñados para ese bus no servían para ser usados en otros diseños con
buses de otro tamaño. Por ejemplo: no servían para un bus de 16 o 32 bits sin ser
adaptados.
5.6 Aplicaciones de buses
Bus de Direcciones: Este es un bus unidireccional debido a que la información fluye es
una sola dirección, de la CPU a la memoria ó a los elementos de entrada y salida. La CPU
sola puede colocar niveles lógicos en las n líneas de dirección, con la cual se genera 2n
posibles direcciones diferentes. Cada una de estas direcciones corresponde a una
localidad de la memoria ó dispositivo de E / S. Los microprocesadores 8086 y 8088 usados
en los primeros computadores
personales (PC) podían direccionar hasta 1 megabyte de memoria (1.048.576 bytes). Es
necesario contar con 20 líneas de dirección. Para poder manejar más de 1 megabyte de
memoria , en los computadores AT (con procesadores 80286) se utilizó un bus de
direcciones de 24 bits, permitiendo así direccionar hasta 16 MB de memoria RAM
(16.777.216 bytes). En la actualidad los procesadores 80386DX pueden direccionar
directamente 4 gigabytes de memoria principal y el procesador 80486DX hasta 64 GB.
Bus de Datos: Este es un bus bidireccional, pues los datos pueden fluir hacia ó desde la
CPU. Los m terminales de la CPU, de D0 - Dm-1 , pueden ser entradas ó salidas, según
la operación que se esté realizando ( lectura ó escritura ) . en todos los casos, las palabras
de datos transmitidas tiene m bits de longitud debido a que la CPU maneja palabras de
datos de m bits; del número de bits del bus de datos, depende la clasificación del
microprocesador.
Página | 37
En algunos microprocesadores, el bus de datos se usa para transmitir otra información
además de los datos ( por ejemplo, bits de dirección ó información de condiciones ). Es
decir, el bus de datos es compartido en el tiempo ó multiplexado. En general se adoptó
8 bits como ancho estándar para el bus de datos de los primeros computadores PC y XT.
Usualmente el computador transmite un caracter por cada pulsación de reloj que controla
el bus (bus clock), el cual deriva sus pulsaciones del reloj del sistema (system clock).
Algunos computadores lentos necesitan hasta dos pulsaciones de reloj para transmitir un
caracter. Los computadores con procesador 80286 usan un bus de datos de 16 bits de
ancho, lo cual permite la comunicación de dos caracteres o bytes a la vez por cada
pulsación de reloj en el bus. Los procesadores 80386 y 80486 usan buses de 32 bits. El
PENTIUM de Intel utiliza bus externo de datos de 64 bits, y uno de 32 bits interno en el
microprocesador.
Bus de Control: Este conjunto de señales se usa para sincronizar las actividades y
transacciones con los periféricos del sistema. Algunas de estas señales, como R / W ,
son señales que la CPU envía para indicar que tipo de operación se espera
en ese momento. Los periféricos también pueden remitir señales de control a la CPU,
como son INT, RESET, BUS RQ.
Las señales más importantes en el bus de control son las señales de cronómetro, que
generan los intervalos de tiempo durante los cuales se realizan las operaciones. Este tipo
de señales depende directamente del tipo del microprocesador.
5.7 Comunicación
Un conversor ADC puede convertir un voltaje en un numero binario digital. Los
conversores A/D son utilizados en cualquier lugar donde sea necesario procesar una
señal, almacenarla o transportarla en forma digital.
La resolución del conversor indica el número de valores discretos que se pueden obtener
dependiendo del rango del voltaje de entrada. Usualmente es expresado en bits. Los
microcontroladores típicamente traen incorporador conversores de 8, 10, 12 o 16 bits.
Por ejemplo un ADC que codifica una señal análoga de 256 valores discretos (0..255)
tiene una resolución de 8 bits, ya que 2^8 = 256.
La resolución también puede ser definida en términos eléctricos, y expresada en volts.
La resolución de un ADC es igual al mayor voltaje que se pueda medir dividido por el
número de valores discretos, por ejemplo:
Para un rango de medida entre 0 y 10 volts
Resolución del ADC = 12 bits: 2^12 = 4096 niveles de cuantización resolución del ADC
en volts: (10-0)/4096 = 0.00244 volts = 2.44 mV.
Página | 38
UNIDAD 6. INTERFACES
6.1 Conceptos básicos y clasificación.
• Interfaz: dispositivo electrónico que se conecta entre el PC y los elementos a ser
controlados (actuadores, interruptores, pulsadores, relés, circuitos, motores, etc.). Su
misión es garantizar el correcto aislamiento eléctrico entre los puertos del PC y los
dispositivos externos.
• Bus: Normalmente se refiere al conjunto de señales con las que se comunica el
microprocesador con el entorno: memoria o periféricos (a través de las interfaces).
Las funciones más importantes de un interfaz son: Interpretar las órdenes que recibe de
la CPU y transmitirlas al periférico. Controlar las transferencias de datos entre la CPU y
el periférico (convertir formatos, adaptar velocidades,..). Informar a la CPU del estado del
periférico. Detección de errores (defectos mecánicos o eléctricos en el funcionamiento
del dispositivo. Ejemplos: atasco de papel, cambio de un bit, etc.). Los interfaces también
se denominan controladores, interfaces o tarjetas de E/S.
6.2 Módulos de adquisición de datos.
La adquisición de datos o adquisición de señales, consiste en la toma de muestras del
mundo real (sistema analógico) para generar datos que puedan ser manipulados por un
ordenador u otras electrónicas (sistema digital).
Consiste, en tomar un conjunto de señales físicas, convertirlas en tensiones eléctricas y
digitalizarlas de manera que se puedan procesar en una computadora o PAC. Se requiere
una etapa de acondicionamiento, que adecua la señal a niveles compatibles con el
elemento que hace la transformación a señal digital. El elemento que hace dicha
transformación es el módulo de digitalización o tarjeta de Adquisición de Datos (DAQ).
Página | 39
6.3. Diseño y aplicación de interfaces
En general se utiliza este tipo de lenguaje para programar controladores (drivers).
Ventajas: Mayor adaptación al equipo. Posibilidad de obtener la máxima velocidad con
mínimo uso de memoria. Inconvenientes:
Imposibilidad de escribir código independiente de la máquina.
Mayor dificultad en la programación y en la comprensión de los programas.
El programador debe conocer más de un centenar de instrucciones. Es necesario
conocer en detalle la arquitectura de la máquina.
Aplicación: Actualmente la tecnología y el trabajo humano está íntimamente relacionada
con las computadoras; como lo es el diseño gráfico, la redacción, el control de
instrumentos y maquinaria, las comunicaciones, etc. Dependiendo de la aplicación dada
a una computadora son las interfaces que se le instalan. Como en diseño gráfico, los
periféricos necesarios son la cámara digital, impresora, mouse, tableta digitalizadora;
entre otros.
El desarrollo de la computadora va ligado al de sus periféricos. Para toda aplicación de
la computadora, el dispositivo en común es el mouse. El mouse se ha utilizado
comercialmente desde principios de los años80 como una herramienta de trabajo auxiliar
con la computadora.
6.3.1 Hombre-máquina.
En términos generales, una interfaz es el punto, el área, o la superficie a lo largo de la
cual dos cosas de naturaleza distinta convergen. Por extensión, se denomina interfaz a
cualquier medio que permita la interjección de dos procesos diferenciados con un único
propósito común. En software, una interfaz de usuario es la parte del programa
Página | 40
informático que permite el flujo de información entre varias aplicaciones o entre el propio
programa y el usuario.
Metafóricamente se entiende la Interfaz como conversación entre el usuario y el sistema
(o entre el usuario y el diseñador): durante muchos años se vio a la interacción como un
diálogo hombre-máquina (para trabajar con una interfaz alfanumérica era necesario
conocer el "lenguaje" de la máquina). Desde una perspectiva semítica, los usuarios no
dialogan con el sistema sino con su creador por medio de un complejo juego de
estrategias (del diseñador y del usuario).
En sentido amplio, puede definirse interfaz como el conjunto de comando y métodos que
permiten la intercomunicación del programa con cualquier otro programa o elemento
interno o externo. De hecho, los periféricos son controlados por interfaces. Para un mejor
entendimiento de esta acepción pongamos un ejemplo. Si extrapoláramos este concepto
a la vida real, podríamos decir que el teclado de un teléfono sería una interfaz de usuario,
mientras que la clavija sería la interfaz que permite al teléfono comunicarse con la central
telefónica.
En software también se habla de interfaz gráfica de usuario, que es un método para
facilitar la interacción del usuario con el ordenador o la computadora a través de la
utilización de un conjunto de imágenes y objetos pictóricos (iconos, ventanas..) además
de texto. Interfaz gráfica de usuario: En el contexto del proceso de interacción persona-
computadora, la interfaz gráfica de usuario, es el artefacto tecnológico de un sistema
interactivo que posibilita, a través del uso y la representación del lenguaje visual, una
interacción amigable con un sistema informático. La interfaz gráfica de usuario (en inglés
Graphical User Interface, GUI) es un tipo de interfaz de usuario que utiliza un conjunto
de imágenes y objetos gráficos para representar la información y acciones disponibles
en la interfaz.
6.3.2 Máquina-Máquina
M2M (Machine to Machine o Máquina a Máquina) es un concepto genérico que se refiere
al intercambio de información ocomunicación en formato de datos entre dos máquinas
remotas.
Página | 41
Elementos fundamentales Los elementos fundamentales que aparecen en todos los
entornos M2M son los siguientes:
• Máquinas que gestionar: Gestión de flotas, Alarmas domésticas, TPV(Terminal Punto
de Venta), Contadores de agua/gas/ electricidad, paneles informativos en carreteras,
máquinas vending, telemantenimiento de ascensores, estaciones meteorológicas.
• Dispositivo M2M: módulo conectado a una máquina remota y que provee de
comunicación con el servidor. Usualmente, el dispositivo M2M también consta de
capacidad de proceso donde se ejecuta la aplicación de negocio. Por una parte
implementa el protocolo para poder comunicarse con la máquina y por otra parte
implementa el protocolo de comunicación para el envío de información.
• Servidor: Ordenador que gestiona el envío y recepción de información de las máquinas
que gestiona. Habitualmente está integrado además con el core business de la empresa
(ERP, Mapas GIS de trazabilidad de flotas de camiones, Sistema de pedidos, Centrales
receptoras de alarmas, Helpdesk) de modo que la información recibida por el Servidor
pasa a ser parte crítica del negocio.
Página | 42
BIBLIOGRAFÍA
1. Microchip (2009). MPLAB® IDE User’s Guide with MPLAB Editor and
MPLAB SIMSimulator. Microchip Technology Inc. USA.
2. Palacios Enrique, Remiro Fernando, López Lucas (2009). Microcontrolador
PIC16F84. Desarrollo de Proyectos. Editorial Alfaomega-RaMa. México.
3. Usategui, José M. (1999). Microcontroladores PIC. Diseño práctico
deaplicaciones. Editorial McGraw-Hill. España.
4. Valdés Fernando, Pallás Ramón (2007). Microcontroladores.
Fundamentos yaplicaciones con PIC. Editorial Alfaomega-Marcombo.
México.
ENLACES
1. [Link]
2. [Link]
3. [Link]
4. [Link]
5. [Link]
6. [Link]
7. [Link]
Página | 43