Está en la página 1de 31

Programación

de Microcontroladores
Presentado por: Ing. Robinson Jiménez Moreno
Ing. Paula Catalina Useche M.
DIGITALES Y LABORATORIO
Ingeniería en Mecatrónica

MPLAB
Pickit PROTEUS

MPLAB Microcontrolador
Contador
Se pueden manejar bajo el pulso de reloj o por una excitación
externa, en incremento o decremento.

TIPO DE DATO
Registro
Bajo Char = 255
Int = 65536
Registro Puertos de salida = 255
Alto
Contador
Contador en incremento por excitación externa (Botón)
MPLAB

Crear un nuevo
Proyecto
MPLAB
Crear nuevo archivo .c
Contador - MPLAB
Contador - MPLAB
Contador - PROTEUS
Contador - MPLAB

Exportar archivo .hex tanto


para programar como para
simular
Contador - MPLAB

Exportar archivo .hex tanto


para programar como para
simular
Contador - PROTEUS
Contador - PROTEUS
Retardos
MIPS = Millones de Instrucciones por Segundo

Ejecución de instrucciones en Microsegundos

RETARDOS

Por ciclo FOR o WHILE Por ciclo de reloj


Retardos – Ciclo for
Encender y apagar un led

Int = 65536
Retardos – Ciclo for
Encender y apagar un led

Int = 65536
Retardos – Ciclo for

No se puede asegurar un ]empo definido de


retardo Int = 65536
Retardos – Ciclo de Reloj

•  Permite controlar el ]empo de retardo


•  Depende de la frecuencia del cristal u oscilador
•  Cada instrucción requiere mínimo 4 ciclos de reloj para
ejecutarse
•  El ciclo de reloj se calcula a par]r de la frecuencia del
oscilador
Retardos – Ciclo de Reloj
Ciclo de instrucción:

Ciclo de instrucción = 4*Ciclo de reloj


Retardos – Ciclo de Reloj
¿Cuál es el ciclo de instrucción para un
microcontrolador 18F4550 que trabaja con un
oscilador de 4MHz?
Retardos – Ciclo de Reloj
¿Cuál es el ciclo de instrucción para un
microcontrolador 18F4550 que trabaja con un
oscilador de 4MHz?
Retardos – Ciclo de Reloj
#include <delays.h> C18 Compiler
Delay1TCY = 1 TCY
Delay10TCYx(INT) = 10 TCY
Delay100TCYx(INT) = 100 TCY
Delay1KTCYx(INT) = 1 000 TCY
Delay10KTCYx(INT) = 10 000 TCY
Retardos – Ciclo de Reloj
#include <delays.h> Fosc = 4MHz
Delay100TCYx(200) Delay1KTCYx(20)

Delay10KTCYx(2)

¿ ?
Retardos – Ciclo de Reloj
#include <delays.h> Fosc = 4MHz
Delay100TCYx(200) Delay1KTCYx(20)

Delay10KTCYx(2)

100*TCY*INT= 100*1us*200 = 20ms


Retardos – Ciclo de Reloj
#include <delays.h> Fosc = 20MHz
Delay100TCYx(200) Delay1KTCYx(20)

Delay10KTCYx(2)

¿ ?
Retardos – Ciclo de Reloj
#include <delays.h>

Max = 2.56 segundos para Fosc=4MHz


Retardos – Ciclo de Reloj
Contador de 0-9 cada segundo
Retardos – Ciclo de Reloj
Contador de 0-9 cada segundo
Retardos – Ciclo de Reloj
Contador y Retardos
Hacer un contador de 0-60 excitado por una entrada
externa (botón) donde se muestre el resultado en dos
display 7 segmentos. Al oprimir un interruptor, el
contador debe comportarse como un temporizador
empezando desde el valor actual y reduciendo su valor
cada 3.5 segundos. En modo temporizador, el botón no
debe afectar el conteo.
Usar un cristal de 4MHz.
G R A C I A S

También podría gustarte