Sie sind auf Seite 1von 32

Microcontroladores

Prof. Ing. José Pereira

Universidad Tecnológica de Panamá


Facultad de Ingeniería Eléctrica
Centro Regional de Azuero
El Microprocesador
• Un microprocesador puede definirse como un IC
de muy alta escala de integración (VLSI, Very
Large Scale Integration) que realiza operaciones
aritméticas, lógicas y de transferencia de datos
entre otras. También se le puede llamar CPU:
Central Processing Unit.

• Un microprocesador puede ser dividido en dos


partes: el datapath y la unidad de control como
se muestra en la siguiente figura.

Universidad Tecnológica de Panamá 2 Facultad de Ingeniería Eléctrica


El Microprocesador

Partes internas de un microprocesador


Universidad Tecnológica de Panamá 3 Facultad de Ingeniería Eléctrica
El Microprocesador
Componentes de un Datapath
El datapath ejecuta todas las operaciones de
un microprocesador (suma, resta, etc).

Registros de archivo
Acumulador
Unidad Lógica Aritmética (ALU)
Registro de corrimiento (desplazamiento)
Registro de Status (señalizadores)

Universidad Tecnológica de Panamá 4 Facultad de Ingeniería Eléctrica


El Microprocesador
CONTROLPATH (UNIDAD DE CONTROL)

• El controlpath, controla las operaciones del


datapath.

• El controlpath es una máquina de estado finito


(FSM).

• Consta de tres partes: la lógica de estado


siguiente, la memoria de estado, y la lógica de
salida.

Universidad Tecnológica de Panamá 5 Facultad de Ingeniería Eléctrica


El Microprocesador
Componentes del Controlpath
(Unidad de control)
Máquina de estado finito (FSM)
1. Lógica de estado siguiente
2. Memoria de estado
3. Lógica de salida

Contador de Programa (PC)


Memoria de solo lectura (ROM)
Puntero de Pila (SP)
Universidad Tecnológica de Panamá 6 Facultad de Ingeniería Eléctrica
El Microprocesador
Microprocesador vs Microcontrolador
El microprocesador es un chip integrado basado en
silicio con solo una unidad central de procesamiento.
No tiene RAM, ROM, pines de IO, etc. Están
diseñados para aplicaciones de propósito general en
sistemas informáticos.
El microcontrolador es como una mini-computadora
con una CPU junto con RAM, ROM, pines de IO,
etc. Realiza tareas específica como: control remoto
de TV, control de semáforos, en automóviles, etc.
Universidad Tecnológica de Panamá 7 Facultad de Ingeniería Eléctrica
Microcontrolador PIC18F458
PUERTOS DE ENTRADA/SALIDA (E/S): PIC18F458
El PIC18F458 tiene 5 puertos de E/S (I/O) de
propósito general:

PORTA: RA0 – RA6


PORTB: RB0 – RB7
PORTC: RC0 – RC7
PORTD: RD0 – RD7
PORTE: RE0 – RE2

TOTAL: 34 puertos de E/S


Universidad Tecnológica de Panamá 8 Facultad de Ingeniería Eléctrica
Microcontrolador PIC18F458
PUERTOS DE ENTRADA/SALIDA (E/S): PIC18F458

Universidad Tecnológica de Panamá 9 Facultad de Ingeniería Eléctrica


Funciones de I/O (E/S): PIC18F458
output_bit(pin, valor);
Esta función saca el bit dado en valor (0 o
1) por la patilla de I/O especificada en pin.

Ejemplo 1:

output_bit(PIN_B0, 0); //Pone 0 en pin RB0

Universidad Tecnológica de Panamá 10 Facultad de Ingeniería Eléctrica


Funciones de I/O (E/S): PIC18F458

output_low(pin);
Pone a 'cero' el pin indicado.

Ejemplo 2:
output_low(PIN_A0); //Pone 0 en RA0

Universidad Tecnológica de Panamá 11 Facultad de Ingeniería Eléctrica


Funciones de I/O (E/S): PIC18F458

output_high(pin);
Pone a ‘uno' el pin indicado.

Ejemplo 3:
output_high(PIN_C2); //Pone 1 en RC2

Universidad Tecnológica de Panamá 12 Facultad de Ingeniería Eléctrica


Funciones de I/O (E/S): PIC18F458

output_toggle(pin);
Cambia el estado del pin indicado. Es
decir, si el estado del pin es BAJO pasa
a ser ALTO y viceversa.

Ejemplo 4:
output_toggle(PIN_B4);

Universidad Tecnológica de Panamá 13 Facultad de Ingeniería Eléctrica


Funciones de I/O (E/S): PIC18F458

output_x(valor);
Saca el byte indicado en valor por el puerto
correspondiente. x es el puerto
correspondiente.

Ejemplo 5:
output_b(0xf0); //saca 0xF0 por el PORTB
Universidad Tecnológica de Panamá 14 Facultad de Ingeniería Eléctrica
Funciones de I/O (E/S): PIC18F458
input(pin);

Devuelve el estado '0' o '1' de la patilla


indicada en pin.

while ( !input(PIN_B1));
Ejemplo 6:

while(1) {
while(input(PIN_C4)) {
output_bit(PIN_B0,0); }
output_high(PIN_B0); }

Universidad Tecnológica de Panamá 15 Facultad de Ingeniería Eléctrica


Funciones de I/O (E/S): PIC18F458
input_x( );
Entra un byte entero desde un puerto. x
es el puerto.

Ejemplo 7:
int data;
data = input_b();

Universidad Tecnológica de Panamá 16 Facultad de Ingeniería Eléctrica


Funciones de I/O (E/S): PIC18F458
port_b_pullups(flag);
Esta función activa/desactiva las
resistencias pullups en las entradas del
puerto B. Flag puede ser TRUE (activa) o
FALSE (desactiva).

Ejemplo 8:
port_b_pullups(false);

Universidad Tecnológica de Panamá 17 Facultad de Ingeniería Eléctrica


Funciones de Retardo: PIC18F458

DELAY_MS(time);
Esta función realiza retardos de tiempo del valor
especificado en time. Dicho valor de tiempo está expresado
en milisegundos y el rango es 0-65535.

Es preciso utilizar la directiva #use delay(clock=frecuencia)


antes de usar esta función, para que el compilador sepa la
frecuencia de reloj.

Ejemplo 9:

delay_ms( 1000 ); // retardo de 1 segundo

Universidad Tecnológica de Panamá 18 Facultad de Ingeniería Eléctrica


Funciones de Retardo: PIC18F458

DELAY_US(time);
Esta función realiza retardos de tiempo del valor
especificado en time. Dicho valor de tiempo está expresado
en microsegundos y el rango es 0-65535.

Es preciso utilizar la directiva #use delay(clock=frecuencia)


antes de usar esta función, para que el compilador sepa la
frecuencia de reloj.

Ejemplo 10:
int espera = 10; //declara y da valor a variable
delay_us( espera ); // retardo de 10 microsegundo

Universidad Tecnológica de Panamá 19 Facultad de Ingeniería Eléctrica


Código de ejemplo: PIC18F458

Universidad Tecnológica de Panamá 20 Facultad de Ingeniería Eléctrica


Microcontrolador ATMEGA328P: Arduino UNO

PUERTOS DE ENTRADA/SALIDA (E/S): Arduino UNO

Universidad Tecnológica de Panamá 21 Facultad de Ingeniería Eléctrica


Microcontrolador ATMEGA328P: Arduino UNO
PUERTOS DE ENTRADA/SALIDA (E/S): PIC18F458
El Arduino UNO tiene 2 puertos de E/S (I/O) de
propósito general y 1 analógico:

PORTB: PB0 – PB5 (IO8 - IO13)


PORTC: PC0 – PC5 (AD0 – AD5)
PORTD: PD0 – PD7 (IO0 – IO7)

TOTAL: 14 puertos de E/S digitales y 6


analógicos

Universidad Tecnológica de Panamá 22 Facultad de Ingeniería Eléctrica


Funciones de I/O: Arduino UNO

Esta instrucción es utilizada en la parte de


configuración setup() y sirve para configurar el
modo de trabajo de un PIN pudiendo ser INPUT
(entrada) u OUTPUT (salida).

Ejemplo:

Universidad Tecnológica de Panamá 23 Facultad de Ingeniería Eléctrica


Funciones de I/O: Arduino UNO

Lee el valor de un pin dando un resultado HIGH


(alto) o LOW (bajo). El pin se puede especificar ya
sea como una variable o una constante (0-13).

Ejemplo:

Universidad Tecnológica de Panamá 24 Facultad de Ingeniería Eléctrica


Funciones de I/O: Arduino UNO

Envía al ´pin´ definido previamente como OUTPUT


el valor HIGH o LOW (poniendo en 1 o 0 la
salida). El pin se puede especificar ya sea como una
variable o como una constante (0-13).

Ejemplo:

Universidad Tecnológica de Panamá 25 Facultad de Ingeniería Eléctrica


Código de ejemplo Arduino

Universidad Tecnológica de Panamá 26 Facultad de Ingeniería Eléctrica


Código de ejemplo: PIC18F458
Envía un byte al PORTB

Universidad Tecnológica de Panamá 27 Facultad de Ingeniería Eléctrica


Código de ejemplo para Arduino
Envía un byte al PORTD de Arduino UNO

Universidad Tecnológica de Panamá 28 Facultad de Ingeniería Eléctrica


Microcontrolador Arduino
Conexiones del Arduino UNO

Universidad Tecnológica de Panamá 29 Facultad de Ingeniería Eléctrica


Código de ejemplo: PIC18F458
Instrucción de entrada de datos en los PICs

Universidad Tecnológica de Panamá 30 Facultad de Ingeniería Eléctrica


Código de ejemplo para Arduino
Instrucción de entrada de datos

Universidad Tecnológica de Panamá 31 Facultad de Ingeniería Eléctrica


Funciones de I/O y Retardos

MUCHAS GRACIAS

Universidad Tecnológica de Panamá 32 Facultad de Ingeniería Eléctrica

Das könnte Ihnen auch gefallen