Práctica 5
Práctica 5
Práctica 5
PRÁCTICA 5:
“MICROCONTROLADORES PROGRAMABLES”
Alumnos:
• Cruz Martínez Erick Emmanuel.
• Huerta Osorio Raúl Alejandro.
• Utrilla Rincón José.
• Velazco Rangel Ary Olaf.
Grupo: 6AV2.
1
Desarrollo. ..................................................................................................................... 26
Conclusiones. ................................................................................................................ 29
Bibliografía. ................................................................................................................... 29
2
Objetivo.
En esta práctica se busca conocer los fundamentos teóricos de los microcontroladores,
como lo son: definición, características, arquitectura, etc. También es importante
diferenciar los microcontroladores de los microprocesadores y dar una breve introducción
a los microcontroladores PIC (circuito integrado programable).
Conociendo estos fundamentos, se busca realizar algunos ejercicios especificados
con microcontroladores mediante el uso de programación en C y el software Proteus para
la visualización de los circuitos desarrollados.
Marco teórico.
Definición de microcontrolador.
Un microcontrolador, también conocido como microcomputadora, es un circuito integrado
programable que contiene todos los componentes de un computador. Se emplea para
controlar el funcionamiento de una tarea determinada y, debido a su reducido tamaño,
suele ir incorporado en el propio dispositivo al que gobierna.
3
Un microprocesador es un sistema abierto con el que puede construirse un
computador con las características que se desee, acoplándole los módulos necesarios.
En la ilustración 1 podemos observar que la disponibilidad de buses en el exterior permite
que se configure el microprocesador a la medida de la aplicación.
4
Arquitectura interna.
Dentro de los microcontroladores existen dos arquitecturas básicas de hardware, las
cuales sirven para definir la estructura del funcionamiento del microcontrolador, éstas
son: la arquitectura Von Neumann y la arquitectura Harvard.
Arquitectura Von Neumann.
Se caracteriza por tener una memoria única para los datos y las instrucciones del
programa. A dicha memoria se accede a través de un sistema de buses único (control,
direcciones y datos).
Arquitectura Harvard.
Este modelo tiene la unidad central de proceso (CPU) conectada a dos memorias, una
con las instrucciones y otra con los datos, por medio de dos buses diferentes. Una de las
memorias contiene solamente las instrucciones del programa (Memoria de Programa), y
la otra sólo almacena datos (Memoria de Datos).
5
Partes principales.
Independientemente del tipo de arquitectura que tenga el microcontrolador, éste
posee todos los componentes de un computador, pero con unas características fijas
que no pueden alterarse. Las partes principales de un microcontrolador son:
1) Procesador.
2) Memoria no volátil para contener el programa.
3) Memoria de lectura y escritura para guardar datos.
4) Líneas de Entrada y Salida para controladores periféricos:
a) Comunicación en paralelo.
b) Comunicación en serie.
c) Diversas puertas de comunicación.
5) Recursos auxiliares:
a) Circuito de reloj.
b) Temporizadores.
c) Perro Guardián (watchdog).
d) Conversores AD y DA.
e) Comparadores analógicos.
f) Protección ante fallos de la alimentación.
g) Estado de reposo o de bajo consumo.
Procesador.
Es el elemento más importante del microcontrolador y determina sus principales
características, tanto a nivel hardware como software. Se encarga de direccionar la
memoria de instrucciones, recibir el código OP de la instrucción en curso, su
decodificación y la ejecución de la operación que implica la instrucción, así como la
búsqueda de los operandos y el almacenamiento del resultado.
La necesidad de conseguir elevados rendimientos en el procesamiento de las
instrucciones ha desembocado en el empleo generalizado de procesadores de
arquitectura Harvard frente a los tradicionales que seguían la arquitectura de von
Neumann.
En la arquitectura Harvard son independientes la memoria de instrucciones y la
memoria de datos, de igual forma, cada una dispone de su propio sistema de buses para
el acceso. Esta dualidad, además de propiciar el paralelismo, permite la adecuación del
tamaño de las palabras y los buses a los requerimientos específicos de las instrucciones
y de los datos.
6
Memoria de programa.
El microcontrolador está diseñado para que en su memoria de programa se almacenen
todas las instrucciones del programa de control. Como el programa a ejecutar siempre
es el mismo, debe estar grabado de forma permanente. Los tipos de memoria adecuados
para soportar esta función admiten cinco versiones diferentes:
1) ROM con máscara. En este tipo de memoria el programa se graba en el chip durante
el proceso de su fabricación mediante el uso de «máscaras».
2) EPROM. La grabación de esta memoria se realiza mediante un dispositivo físico
gobernado desde un computador personal, que recibe el nombre de grabador. En la
superficie de la cápsula del microcontrolador existe una ventana de cristal por la que
se puede someter al chip de la memoria a rayos ultravioletas para producir su borrado
y emplearla nuevamente.
3) OTP (Programable una vez). Este modelo de memoria sólo se puede grabar una
vez por parte del usuario, utilizando el mismo procedimiento que con la memoria
EPROM.
4) EEPROM. La grabación es similar a las memorias OTP y EPROM, pero el borrado es
mucho más sencillo al poderse efectuar de la misma forma que el grabado, o sea,
eléctricamente
5) FLASH. Se trata de una memoria no volátil, de bajo consumo, que se puede escribir
y borrar en circuito al igual que las EEPROM, pero suelen disponer de mayor
capacidad que estas últimas. El borrado sólo es posible con bloques completos y no
se puede realizar sobre posiciones concretas.
Memoria de datos.
Los datos que manejan los programas varían continuamente, y esto exige que la
memoria que les contiene debe ser de lectura y escritura, por lo que la memoria RAM
estática (SRAM) es la más adecuada, aunque sea volátil.
Hay microcontroladores que también disponen como memoria de datos una de lectura
y escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro de la
alimentación no ocasiona la pérdida de la información, que está disponible al reiniciarse
el programa.
Líneas de E/S para los controladores periféricos.
Las líneas de Entrada y Salida (E/S) permiten comunicar al procesador con el mundo
exterior, a través de interfaces, o con otros dispositivos mediante puertos. Estos puertos
son la principal utilidad de las patas o pines de un microprocesador. Las líneas de E/S
que se adaptan con los periféricos manejan información en paralelo y se agrupan en
conjuntos de ocho, que reciben el nombre de Puertas.
7
Recursos auxiliares.
Según las aplicaciones a las que orienta el fabricante cada modelo de microcontrolador,
incorpora una diversidad de complementos que refuerzan la potencia y la flexibilidad del
dispositivo. Entre los recursos más comunes, se encuentran los siguientes:
a) Circuito de reloj. Es el encargado de generar los impulsos que sincronizan el
funcionamiento de todo el sistema.
b) Temporizadores. Se emplean para controlar periodos de tiempo
(temporizadores) y para llevar la cuenta de acontecimientos que suceden en el
exterior (contadores).
c) Perro Guardián (watchdog). Recurso destinado a provocar un reinicio cuando el
programa queda bloqueado.
d) Conversores AD y DA. Convertidores encargados de transformar las señales
analógicas a digitales y viceversa para el manejo de los datos procesados.
e) Comparadores analógicos. Amplificador Operacional que actúa como
comparador entre una señal fija de referencia y otra variable que se aplica por una
de las patitas de la cápsula.
f) Protección ante fallos de la alimentación.
g) Estado de reposo o de bajo consumo. Estado en el cual el sistema queda
“congelado” y el consumo de energía se reduce al mínimo.
Microcontroladores PIC
Los microcontroladores PIC de Microchip han tenido un gran éxito en los últimos años
debido a:
8
• Memoria. Poseen una memoria de datos volátil (RAM) de pequeña capacidad
comprendida entre 25 y 3840 octetos y direccionada por la memoria no volátil
que contiene el programa.
• Programación. Su programación se realiza mediante un canal de comunicación
serie denominado ICSP (In-Circuit Serial Programming).
Clasificación.
Los microcontroladores PIC se clasifican en cuatro gamas, las cuales se diferencian en
el número de bits de sus instrucciones:
9
Investigación de microcontroladores.
DSPIC30f4013
10
• Soporta 100,000 ciclos de borrado/escritura en memoria EEPROM para el rango
de temperatura industrial
• Protección de código y datos programable
• Encapsulado DIP de 40 pines
PIC18F67J60
• Fabricante: Microchip
• Categoría de producto: Microcontroladores de 8 bits - MCU
• RoHS: Detalles
• Estilo de montaje: SMD/SMT
• Paquete / Cubierta: TQFP-64
• Núcleo: PIC
• Ancho de bus de datos: 8 bit
• Frecuencia de reloj máxima: 41.667 MHz
• Tamaño de memoria del programa:128 kB
• Tamaño de RAM de datos: 12 kB
• Resolución del conversor de señal analógica a digital (ADC): 10 bit
• Número de entradas / salidas: 39 I/O
• Voltaje de alimentación operativo: 2 V to 2.7 V
• Temperatura de trabajo mínima: - 40 C
• Temperatura de trabajo máxima: + 100 C
• Altura: 1 mm
• Longitud: 10 mm
• Producto: MCU
• Tipo de memoria de programa: Flash
• Ancho:10 mm
• Marca: Microchip Technology
• Tipo de Ram de datos: RAM
• Tipo de interfaz: Display Driver, EUSART, Ethernet, I2C, MSSP, SPI
• Sensibles a la humedad: Yes
• Cantidad de canales del conversor de señal analógica a digital (ADC): 11 Channel
• Cantidad de temporizadores/contadores: 5 Timer
• Serie de procesadores: PIC18
• Tipo de producto: 8-bit Microcontrollers - MCU
• Subcategoría: Microcontrollers - MCU
• Voltaje de alimentación - Máx.: 2.7 V, 3.6 V, 3.9 V
• Voltaje de alimentación - Mín.: 1.7 V, 2 V
• Peso de la unidad: 360.600 mg
11
12
PIC16F877A
•
256 bytes de memoria EEPROM
• Los datos se pueden grabar más de 1.000.000 veces
• 368 bytes de memoria RAM
• Convertidor A/D:
• 14 canales
• resolución de 10 bits
• 3 temporizadores/contadores independientes
• Temporizador perro guardián
• Módulo comparador analógico con
• Dos comparadores analógicos
• Referencia de voltaje fija (0.6V)
• Referencia de voltaje programable en el chip
• Módulo PWM incorporado
• Módulo USART mejorado
• Soporta las comunicaciones seriales RS-485, RS-232 y LIN2.0
• Auto detección de baudios
• Puerto Serie Síncrono Maestro (MSSP)
Soporta los modos SPI e I2C.
13
14
TIVA TM4C123G
La TM4C Series TM4C123G LaunchPad es una mejora de la TI de la Stellaris LaunchPad
añadiendo opciones de soporte de PWMs para control de movimiento y con soporte de
USB Host.
15
16
MSP-EXP430FR5739
17
23K640
18
Nombre Función
CS Chip Select Selección de chip
Input
SO Serial Data Salida de datos
Output
Vss Ground Tierra
SI Serial Data Entrada de datos
Input
SCK Serial Clock Reloj
Input
HOLD Hold Input Botón hold
Vcc Supply Voltage Voltaje de
alimentación
dsPIC30F4011
Es un controlador de señales
digitales de 16 bits de alto
rendimiento con arquitectura
Harvard modificada y optimizado
para bloques de instrucciones en
C.
Características:
19
Nombre Función
AN0-AN8 Analog inputs
AVdd Positive supply for analog module
AVss Ground for analog module
CLK1 External clock source input
CLKO Oscillator crystal output.
CN0-CN7
Input change notification inputs
CN17-CN18
C1RX CAN1 bus receive pin.
C1TX CAN1 bus transmit pin.
EMUD
EMUC
EMUD1
EMUC1
ICD Communication Channel data input/output pins
EMUD2
EMUC2
EMUD3
EMUC3
IC1, IC2, IC7,
Capture inputs
IC8
INDX Quadrature Encoder Index Pulse input
QEA Quadrature Encoder Phase A input in QEI mode
QEB Quadrature Encoder Phase B input in QEI mode
INT0
INT1 External interrupts
INT2
MCLR Master Clear (Reset) input or programming voltage input.
20
OCFA
Compare Fault A input
OC1-OC4
OSC1 Oscillator crystal input
OSC2 Oscillator crystal input/output
PGD In-Circuit Serial Programming data input/output pin.
PGC In-Circuit Serial Programming clock input pin.
RB0-RB8
RC13-RC15
RD0-RD3
Bidirectional I/O ports
RE0-RE5,
RE8
RF0-RF6
SCK1 Synchronous serial clock input/output for SPI1
SDI1 SPI1 data in
SDO1 SPI1 data out
SS1 SPI1 slave synchronization
SCL Synchronous serial clock input/output
SDA Synchronous serial data input/output for
SOSCO 32 kHz low-power oscillator crystal output
SOSCI 32 kHz low-power oscillator crystal input
T1CK
External clock inputs
T2CK
U1RX
U1TX
U1ARX (UxRx)UART receive
U1ATX (UxTx)UART transmit
U2RX
U2TX
VDD Positive supply for logic and I/O pins
VSS Ground reference for logic and I/O pins
VREF+ Analog voltage reference (high) input
VREF- Analog voltage reference (low) input
21
dsPIC30F4013
Características:
22
Nombre Función
AN0-AN12 Analog inputs
AVdd Positive supply for analog module
AVss Ground for analog module
CLK1 External clock source input
CLKO Oscillator crystal output.
CN0-CN7
Input change notification inputs
CN17-CN18
C1RX CAN1 bus receive pin.
C1TX CAN1 bus transmit pin.
COFS Data Converter Interface Frame Synchronization pin
CSCK Data Converter Interface Serial Clock input/output pin
CSDI Data Converter Interface Serial data input pin
CSDO Data Converter Interface Serial data output pin
EMUD
EMUC
EMUD1
EMUC1
ICD Communication Channel data input/output pins
EMUD2
EMUC2
EMUD3
EMUC3
IC1, IC2, IC7,
Capture inputs
IC8
INDX Quadrature Encoder Index Pulse input
QEA Quadrature Encoder Phase A input in QEI mode
QEB Quadrature Encoder Phase B input in QEI mode
INT0
INT1 External interrupts
INT2
LVDIN Low-Voltage Detect Reference Voltage Input pin
MCLR Master Clear (Reset) input or programming voltage input.
OCFA
Compare Fault A input
OC1-OC4
OSC1 Oscillator crystal input
OSC2 Oscillator crystal input/output
PGD In-Circuit Serial Programming data input/output pin.
PGC In-Circuit Serial Programming clock input pin.
RA11
RB0-RB12
RC13-RC15 Bidirectional I/O ports
RD0-RD3
RD8, RD9
23
RF0-RF5
SCK1 Synchronous serial clock input/output for SPI1
SDI1 SPI1 data in
SDO1 SPI1 data out
SS1 SPI1 slave synchronization
SCL Synchronous serial clock input/output
SDA Synchronous serial data input/output for
SOSCO 32 kHz low-power oscillator crystal output
SOSCI 32 kHz low-power oscillator crystal input
T1CK
External clock inputs
T2CK
U1RX
U1TX (UxRx)UART receive
U1ARX (UxTx)UART transmit
U1ATX
VDD Positive supply for logic and I/O pins
VSS Ground reference for logic and I/O pins
VREF+ Analog voltage reference (high) input
VREF- Analog voltage reference (low) input
PIC16F877A/ PIC16LF877A
24
Nombre Función
MCLR/Vpp Master clear (input)/Programming voltage(output)
RX0-RX7 Digital I/O
AN0-AN7 Analog input
Vref+ A/D reference (high) voltage output
Vref- A/D reference (low) voltage input
CVref Comparator Vref output
TXCKI Timer external cock input
C1OUT- Comparator output
C2OUT
Vdd Positive supply for logic and I/O pins
Vss Ground reference for logic and I/O pins
OSC1/CLKI Oscillator crystal/Externa clock input
OSC2/CLKO Oscillator crystal/Externa clock output
SS SPI slave select input
INT External interrupt
PGM Low-voltage ICSP programming enable pin
PGC In-circuit debugger and ICSP programming clock
PGD In-circuit debugger and ICSP programming data
T1OSO/T1OSI Timer1 external clock output
CCPX Capture X input, Compare X output
DT USART synchronous data
RX USART asynchronous receive
SCL Synchronous serial clock input/output for I2C mode
SCK Synchronous serial clock input/output for SPI mode
SDI I2C data I/O
SDO SPI data out
TX USART asynchronous transmit
CK USART1 synchronous clock
25
Desarrollo.
La primera parte de la práctica consistía en revisar los archivos del entrenador UNO, y
modificarlos para que se lograran ejecutar las condiciones del ejercicio 1.
Ejercicio 1. Escribe el código fuente de un programa escrito en lenguaje C, el cual
gobierne un micro controlador (PIC16F84), este programa debe configurar las líneas de
la PUERTAA como entradas y las líneas de la PUERTAB como salidas, dicho programa
debe enviar el siguiente tren de información hacia la PUERTAB del PIC: 1, 2, 4 ,8,
16,32,64 y 128, cada dato debe enviarse a dicho puerto por un periodo de tiempo igual
a 3 milisegundos , es decir se envía un 1 por tres milisegundos y enseguida se envía un
2 por el mismo lapso de tiempo, del mismo modo con los 8 valores solicitados. Una vez
que hallas escrito tu programa compílalo y pruébalo con ayuda del isis..
El problema pide que se muestren potencias de 2, algo que se consigue con un ciclo.
Es cierto que las potencias no son muchas, y se podría escribir manualmente cada valor,
pero esa respuesta es poco elegante. Entonces, se hace uso de un ciclo for, el cual ya
estaba en el código original. Simplemente se modifica la variable ciclos para que llegue
hasta 7. Y se utiliza una variable auxiliar, para obtener las potencias indirectamente. A
continuación se muestra el ciclo for modificado (el resto del código no se modifica,
además, se anexa también).
Cabe aclarar que el delay se aumentó, pues con 3 milisegundos como afirma el
enunciado, los resultados son imposibles de ver. Se ejecuta demasiado rápida la
simulación.
26
La segunda parte consistía en resolver los ejercicios 2 y 3 del PDF. Ambos resultan
muy similares y parten del entrenador básico DOS. Los enunciados son:
Ejercicio 2: Edita el código fuente del programa llamado “DOS.c” escrito en lenguaje C,
el cual gobierne un micro controlador (PIC16F84), este programa configurara las líneas
de la PUERTAA como entradas y las líneas de la PUERTAB como salidas, dicho
programa debe enviar activar un display de 7 segmentos de cátodo común, es decir la
terminal común para los diodos que forman el display debe conectarse a tierra. Debe
visualizarse un conteo ascendente en el display de 0 a 9, cada número se visualizara por
dos segundos, una vez concluido el conteo debe detenerse y apagarse el display. Una
vez que hallas escrito tu programa compílalo y pruébalo con ayuda del isis..
Ejercicio 3: Una vez que hallas concluido el ejercicio número 2, realiza lo siguiente: Edita
el código fuente que realizaste en el ejercicio anterior, el programa debe permitir que el
usuario accione los cinco interruptores conectados a la PUERTAA del micro controlador
(el usuario puede accionar uno o varios interruptores a la vez), dependiendo del estado
del o los interruptores accionados (abierto o cerrado), en el display de debe visualizarse
el número correspondiente. Recuerda que con 5 bits puedes tener hasta 31 valores
diferentes. Pero con un dysplay de 7 segmentos únicamente puedes visualizar del
numero 0 al numero 9.
Para este ejercicio, lo primero fue buscar a que segmento correspondía cada entrada.
27
La figura muestra que:
Segmento Salida en binario
A 1
B 10
C 100
D 1000
E 10000
F 100000
G 1000000
Y así para todos los dígitos del sistema hexadecimal. Para la parte final, la de los
interruptores; se usó un if para controlar la entrada de los 5 interruptores. Solo se
consideró que hubiera un switch a la vez, en caso de más, no se muestra nada. Entonces,
el control de los interruptores queda:
28
La salida fue propuesta por el equipo, para que muestre los números del 0 al 4, según
el interruptor encendido. Las entradas de voltaje siempre son potencias de 2, y estas son
las condiciones del if, en las cuales se le asigna el valor a x que corresponde con la salida
del dígito a mostrar.
Conclusiones.
La práctica resultó una introducción al entorno de Proteus así como de PIC C. Se
recordaron los conocimientos vistos en los cursos de programación de semestres
pasados, haciendo uso de condicionales, ciclos, apuntadores, etc. Se puso en práctica
la conversión de sistemas de numeración, al interpretar las salidas mostradas en binario
a sistema decimal para las variables int32. Se aprendieron nuevas funciones y librerías
de programación para las simulaciones de circuitos. Se jugó con los códigos ya
proporcionados para que, con un mismo proyecto de Proteus, se realicen acciones
distintas.
Bibliografía.
• Angulo, I. & Angulo, J. (2003). Microcontroladores PIC. Diseño práctico de
aplicaciones (pp. 1-9). España: McGraw-Hill. Recuperado de:
https://electrichead.files.wordpress.com/2008/08/electronica-pic-diseno-practico-
aplicaciones.pdf
• Anónimo. El microcontrolador. Ciudad de México: UNAM. Recuperado de:
http://www.ptolomeo.unam.mx:8080/jspui/bitstream/132.248.52.100/760/4/A4.pdf
• Benchimol, D. (2011). Microcontroladores: funcionamiento, programación y
aplicaciones prácticas (pp. 92, 102-106). Users. Colección: desde cero. Buenos
Aires: Fox Andina.
• Mandado, E. (2007). Microcontroladores PIC: sistema integrado para el
autoaprendizaje (pp. 47-49). Barcelona: Marcombo. Recuperado de:
https://books.google.com.mx/books?id=86uGLMp4vgAC&printsec=frontcover&so
urce=gbs_ge_summary_r&cad=0#v=onepage&q&f=false
29