Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería Biomédica
Microcontroladores
Unidad 2
ELABORADO POR:
FACILITADOR:
Introducción……………………………………………………………………………2
Objetivo
Marco teórico
PIC 16F877A.
Lenguaje ensamblador…………………………………………………………….3
Timer 0……………………………………………………………………5
Timer de 1 segundo
Procedimiento y resultados
Código en ensamblador……………………………………………………………6
Implementación virtual………………………………………………………….…7
Construcción física
Conclusiones………………………………………………………………………………..8
Referencias…………………………………………………………………………………..9
1
1. Introducción
2. Objetivo
3. Marco teórico
2
estudiantes y aficionados por que es sumamente sencillo de programar y se encuentra una
gran cantidad de información sobre él en internet. [1]
El lenguaje ensamblador es un lenguaje de programación de bajo nivel que está muy cerca
del lenguaje de máquina, es decir, el código binario que vimos en la anterior entrada.
A diferencia de los lenguajes de alto nivel como C++ o Java, que son más fáciles de
entender para los humanos, el lenguaje ensamblador está diseñado para ser más fácil de
entender para el procesador. El lenguaje ensamblador es un lenguaje de programación que
3
utiliza mnemónicos para representar las instrucciones que se ejecutarán en el procesador.
Estos mnemónicos son traducidos por el ensamblador a su equivalente en código binario.
[2]
Los temporizadores o Timers son una de las características más importantes para un
programador de sistemas embebidos. Cada aplicación que diseñamos involucra de alguna
manera una aplicación de tiempo, como encender o apagar algún dispositivo después de un
intervalo de tiempo específico.
A diferencia de simplemente usar el delay_ms() del CCS C, los timers son mucho
más versátiles y precisos, dado que con el macro de delay_ms() lo que hacemos es detener
la ejecución del PIC, sin embargo con el timer, podemos continuar nuestra ejecución y
realizar el conteo o temporización en segundo plano. El microcontrolador PIC16F887 tiene
3 temporizadores:
★ Timer 0 (8 bits).
★ Timer 1 (16 bits).
★ Timer 2 (8 bits).
En esta entrada vamos a tratar de entender cómo podemos configurarlos usando el
compilador CCS C PIC C.
4
3.3.1 Timer 0
El Timer0 pic también llamado RTCC se puede cargar con un valor cualquiera entre 0 y
255 y puede ser incrementado a través del Reloj interno y dividido por un valor que se
puede escoger entre los que se indican a continuación. Esto se conoce como el valor del
preescalador (Valor de Preescaler), presentado en Figura
Figura 4.- Ejemplo de preescalador, es decir, velocidad de microcontrolador dividido por algún número de
potencia 2.
Todo microcontrolador requiere un circuito externo que le indique la velocidad a la que
debe trabajar. Este circuito, que se conoce como oscilador o reloj, es muy simple pero de
vital importancia para el buen funcionamiento del sistema. El PIC16F887 puede utilizar
cuatro tipos de osciladores diferentes, siendo estos:
Para generar un retardo de un segundo usando el timer del PIC, con preescaler de 256, se
procede de la siguiente manera:
5
X = Este valor puede ser cualquiera de los indicados al principio, el que se elija será con el
que se seguirá trabajando en la programación. En este caso el RTCC escogido es 256.
El valor anterior, es decir 3906 debe ser igual a la multiplicación entre el valor inicial del
timer 0 y el valor del contador a decrementar.
3906= valor inicial del timer * valor del contador a decrementar. [2]
4. Procedimiento y resultados
6
El código en lenguaje ensamblador configura un microcontrolador PIC16F877A para usar
un oscilador externo, desactivar el watchdog timer, el power-up timer, la protección de
código y el modo de bajo voltaje. Luego, establece el puerto B como salida y lo limpia. Se
configura el registro OPTION_REG para habilitar el Timer0 con una prescaler de 1:2. El
programa luego lee el valor del Timer0 y lo envía al puerto B continuamente.
7
Figura 6.- Construcción física para la aplicación de uso de temporizador 0 del PIC16F877A como contador de
eventos.
Conclusiones
8
detallada de las instrucciones que el procesador ejecuta. Utiliza mnemónicos que son
traducidos a código binario por el ensamblador, permitiendo una programación precisa y
eficiente.
Referencias
[1] Geek Factory, «PIC16F877A Microcontrolador PIC 8 bits Microchip - Geek Factory», Geek Factory, 12
de febrero de 2024.
https://www.geekfactory.mx/tienda/componentes/integrados/pic16f877a-microcontrolador-pic-8-bits-microchi
p/
[2] “Timer PIC”. Control Automatico Educación. Accedido el 18 de abril de 2024. [En línea]. Disponible:
https://controlautomaticoeducacion.com/microcontroladores-pic/timer-pic/