Está en la página 1de 28

INTRODUCCIÓN A LOS

MICROCONTROLADORES

PARTE 1

Prof.: Andrickson Vicente


¿Qué es un microcontrolador (MCU)?
Es un circuito integrado (IC) programable compuesto por una CPU, memoria
de programa (FLASH), memoria de datos(RAM), pines o puertos I/O
(digitales) y módulos periféricos (A/D, PWM, UART, Temporizadores, entre
otros).
Claves conceptuales
- MCU (Micro-Controller Unit)
- IC (Integrated Circuit)
- CPU (Central Processing Unit)
- I/O (Input/Output)
- RAM (Ramdom Access Memory)
¿Qué es un microprocesador o procesador?

Es un circuito integrado que procesa los datos, ejecuta programas y realiza las
operaciones lógico-matemáticas de un sistema electrónico. Está formado por
un generador de frecuencia de reloj, la ALU, el bloque de decodificación-
control de instrucciones y la unidad de control. Accede a la memoria de datos a
través del bus de datos y a la memoria de programa a través del bus de
programa.
Claves conceptuales
- ALU (Arithmetic-Logic Unit)
¿Cuáles son sus diferencias?
1. El microcontrolador posee todas sus partes integradas internamente mientras que
el procesador se une a ellas externamente.
2. La velocidad de operación de un microprocesador es rápida comparado con un
microcontrolador.
3. Para que un microprocesador funcione necesita conectarse a todos sus elementos
externos, lo que lo hace de mayor tamaño a un microcontrolador.
4. El costo de un microprocesador es muy elevado en comparación con el
microcontrolador.
5. Un microprocesador actual puede alcanzar los millones de transistores mientras
que un microcontrolador posee miles.
Arquitectura de computadoras
Fabricantes de microcontroladores
• Microchip [PIC]
• Atmel (adquirida por Microchip en 2016) [AVR y ARM]
• Freescale Semiconductor (adquirida por NXP Semiconductors en 2015)
• Texas Instruments
Para investigar:
• ZiLOG - Arquitecturas CISC y RISC
• Motorola
• Intel
¿Qué es un sistema embebido?
• Es un sistema electrónico diseñado para realizar funciones dedicadas.
• Ejemplos: Tarjeta de audio, Módulo GPS, Lector de tarjetas RFID, Teclado,
Ratón, Pantalla, etc…
Lenguajes de bajo nivel
• Es aquel donde las instrucciones realizan un control directo y físico sobre los
circuitos electrónicos (hardware). Estos son: Lenguaje máquina y lenguaje
ensamblador.

• Se controlan los estados de los transistores internos del MCU con el máximo
nivel de optimización del código.
Lenguaje máquina (código máquina)

• Es la nomenclatura o sistema de códigos que se utiliza para


controlar circuitos programables. En la actualidad, el código
máquina utilizado en todos los sistemas electrónicos está basado
en el sistema lógico binario (dos estados 0 y 1), es decir, se
controlan eléctricamente mediante compuertas lógicas.
• Sin embargo esto puede cambiar con la incorporación de la
computación cuántica, que dicta, que un bit (llamado quantum-
bit) puede tomar valores superpuestos de cero, uno y cero-uno a
la vez. Dando lugar a operaciones de hasta 8 valores diferentes en
función los estados cuánticos de una partícula subatómica.
Lenguaje ensamblador
• Es aquel que mediante el uso de nmotécnicos
(representan instrucciones elementales o básicas)
realiza la ejecución del código máquina. Básicamente es
el modo más legible para un programador entender los
proceso que ha de realizar un microprocesador o un
procesador.
Notas:
Para dominar el uso del lenguaje ensamblador usted debe:
- Conocer la estructura y forma básica en que funciona un microcontrolador
- Realizar y entender las operaciones básicas con el set de instrucciones
¿Qué es un registro?
• Es un espacio o celda de memoria reducido que sirve para almacenar datos. En la práctica
utilizaremos microcontroladores con registros de 8 bits.
• Un registro tiene tamaños definidos y definen por ejemplo, la arquitectura utilizada en el
microcontrolador o microprocesador: 4, 8 (BYTE), 16(WORD), 32(DWORD) o
64(QWORD).
• Los registros controlador por el usuario pueden ser dos tipos principales: Registros de
función especial (SFR) y Registros de Propósito General (GPR).
• Los registros de instrucción son un tipo de registro especial utilizado por para el manejo de
las instrucciones (órdenes del microprocesador). Una de las partes de estos registros se llama
OPCODE y este representa el código de la operación a realizar.
Registros de función especial
• Son aquellos registros que tienen una conexión directa (de hardware) con
alguno de los módulos periféricos del microcontrolador.
• Algunas son: ANSEL, TRISA, TRISB, PORTA, PORTB, etc…
Lenguajes de alto nivel
• Son aquellos que mediante una sintaxis y juego de palabras en inglés permite
al programador realizar códigos de fácil entendimiento para el ser humano.
• Las funciones y acciones ejecutadas por los lenguajes de alto nivel están
conformadas en su interior por código ensamblador o de bajo nivel.
BASIC (PIC Simulator) Función if en C: Función if en Ensamblador:

C (mikroC) if(x == 1) { y();}


MOVFW x

BASIC (mikroBasic) MOVWF var


MOVLW 1
SUBWF var
BTFSS STATUS,Z
CALL y
LÓGICA DIGITAL

(REPASO)
Operaciones con la ALU
Operaciones lógicas

COMPUERTA COMPUERTA COMPUERTA COMPUERTA


NOT AND OR OR
INCLUSIVA EXCLUSIVA
A B S
E S A B S A B S
0 0 0
0 0 0 0 0 0
0 1 0 1 0
0 1 1 0 1 1
1 0 0 1 0 1 1 0 1
1 0
1 1 1 1 1 1 1 1 0
Repaso de operaciones aritméticas
• Suma de números binarios Para recordar:
• Resta de números binarios (1) Cuando va a realizar una
operación aritmética,
• Complemento a uno siempre debe completar
con ceros a la izquierda
• Complemento a dos hasta que los operandos
• Restar con el complemento a dos tengan la misma
cantidad de bits.
• Multiplicar números binarios (2) Organice en grupos de
cuatro bits el valor hace
• Dividir números binarios
un cálculo limpio (si lo
hace a mano)
Confirme los resultados con la calculadora en modo “programador” al finalizar

Suma en binario
• Ejercicios: Regla de la suma:
• 0+0 = 0
1. 10+101 =
• 0+1 = 1
2. 1101+100101 =
• 1+0 = 1
3. 1011011+1011010 = • 1+1 = 0 (y se acarrea la unidad a la posición de la izquierda)
4. 110111011+100111011 =
5. 10110101+110 =
6. 101010+11101 =
7. 10111011011+1100 =
8. 1110001+1101001 =
Confirme los resultados con la calculadora en modo “programador” al finalizar

Resta en binario
• Ejercicios: Regla de la resta
• 0-0 = 0
1. 111-101 =
• 1-0 = 1
2. 10001-01010 =
• 1-1 = 0
3. 10110110-1011010 = • 0-1 = 1 (y se toma prestado a la posición de la izquierda)
4. 110111011-100111011 =
5. 10110101-110 =
6. 101010-11101 =
7. 10111011011-1100 =
8. 1110001-1101001 =
Confirme los resultados con la calculadora en modo “programador” al finalizar (mire que ocurre en este caso)

Complemento a uno
• Ejercicios: • Regla del complemento a uno

1. 101 = Se aplica una NOT a cada bit del valor binario:


Ejemplo:
2. 100101 =
101011 = 010100
3. 1011010 =
4. 100111011 =
5. 10110101 =
6. 101010 =
7. 10111011011 =
8. 1101001 =
Confirme los resultados con la calculadora en modo “programador” al finalizar

Complemento a dos
• Ejercicios: • Regla del complemento a dos
Se aplica el complemento a uno y se le suma “1” al valor binario:
1. 011 =
Ejemplo:
2. 1110011 = Primero, Aplicamos complemento a uno:
3. 111010101 = 101011 = 010100
Luego, sumamos “1” al complemento a uno:
4. 01101101 =
010100 + 1 = 010101
5. 1110111 =
6. 100101011 =
7. 1001101101101 =
8. 10101101011 =
Confirme los resultados con los ejercicios de “Resta en binario”

Restar con el complemento a dos


• Ejercicios: • Regla para restar con el complemento a dos
Se aplica el complemento a 2 al sustraendo y este se suma al
1. 111-101 = minuendo.
2. 10001-01010 = Ejemplo: 11001- 101011 =
3. 10110110-1011010 = Primero, Aplicamos complemento a uno:
4. 110111011-100111011 = 101011 = 010100

5. 10110101-110 = Segundo, sumamos “1” al complemento a uno:

6. 101010-11101 = 010100 + 1 = 010101


Finalmente, sumamos el complemento a dos al minuendo:
7. 10111011011-1100 =
11001+010101 = 101110 = 1110 1110 (completamos los unos
8. 1110001-1101001 = faltantes para registros de 8 bits)
Confirme los resultados con la calculadora en modo “programador” al finalizar

Multiplicar en binario
• Ejercicios: Regla de la multiplicación

1. 111x101 = • Se realiza una suma del multiplicando consigo mismo tantas


veces indique el multiplicador de la misma forma que en la
2. 10001x0110 = multiplicación con números decimales. (El microcontrolador
no es capaz de multiplicar, lo hace indirectamente mediante
3. 1010x1010 = sumas sucesivas).
4. 11011x1011 = • Realice los ejercicios del 1 al 4 mediante la multiplicación
típica y los ejercicios del 5 al 8 mediante sumas sucesivas.
5. 10101x10 =
6. 1010x101 =
Una curiosidad:
7. 10011x1100 =
Para multiplicar un número binario por 2, basta con desplazar los valores
8. 1101x1101 = hacia la izquierda. Para dividirlo, se desplaza hacia la derecha.
Confirme los resultados con la calculadora en modo “programador” al finalizar

Dividir en binario
• Ejercicios: Regla de la división

1. 111/101 = • Se calcula el cociente del dividendo respecto al divisor. (El


microcontrolador no es capaz de multiplicar, lo hace
2. 10001/0110 = indirectamente mediante restas sucesivas).

3. 1011/1010 =
4. 11011/1011 = • Realice los ejercicios mediante restas sucesivas.

Pregunta curiosa:
¿Cómo el microcontrolador puede
trabajar con cifras decimales? Por ejemplo,
casos como este: 0.1011
Investigar: Punto flotante
Conversiones numéricas
Muy requeridas al programar:
• Binario a hexadecimal
• Hexadecimal a binario
Para practicar de forma personal:
• Decimal a binario
• Binario a decimal
• Decimal a Hexadecimal
• Hexadecimal a decimal
Confirme los resultados con la calculadora en modo “programador” al finalizar

Binario a hexadecimal
• Ejercicios: Para convertir de binario a hexadecimal:
1. 00111101 2 = • Se convierte en bloques de 4 bits el valor correspondiente al
2. 00010110(2) = valor hexadecimal.
3. 10111010(2) =
4. 11011101(2) =
5. 01010111(2) =
6. 01011011(2) =
7. 11100101(2) =
8. 11111010(2) =
Confirme los resultados con la calculadora en modo “programador” al finalizar

Hexadecimal a binario
• Ejercicios: Para convertir de hexadecimal a binario:
1. 0𝑥𝐹𝐴𝐵0(16) = • Se convierte la letra o número hexadecimal al bloque de 4 bits
2. 0𝑥235𝐹(16) = binario.
3. 0𝑥𝐹𝐹01(16) =
4. 11𝐴𝐵ℎ(16) =
5. 402𝐹ℎ(16) =
6. 1011ℎ(16) =
7. 04𝐹𝐷(16) =
8. 0𝑥1100(16) =
Volviendo a la estructura del
microcontrolador…
• ¿Qué es la frecuencia reloj (Fosc)?
• ¿Qué son los ciclos de instrucción? Un ciclo de instrucción es igual a 4 ciclos de reloj.
• Interpretar el Diagrama en bloques del microcontrolador (Datasheet PIC16F88-pág
7)
- Program Memory, instruction register, program counter, RAM, 8 Level Stack,
Address MUX, Direct Adress, Indirect Address, FSR register, STATUS reg, ALU,
MUX (ALU), Work Register, Instruction Decode & Control, Timing Generation,
Data bus.

También podría gustarte