Programación C de microcontroladores (C515C)
Bibliotecas de funciones
Para los ensayos prácticos se ponen a disposición las siguientes bibliotecas de funciones
(archivos de encabezamiento):
delay.h
intbcd.h
7seg.h
iic.h
lcd.h
rtc.h
lm75.h
dau.h
delay.h
Función
delay
Tabla 9: Función delay
Descripción de la función
La función void delay(unsigned int delaytime) crea un bucle de retardo de tiempo de forma
equivalente a los ejercicios de Ensamblador CMC1 y CMC3. A la función está asociada la
variable de transferencia delaytime del tipo de datos unsigned integer, que está insertada en
la función como variable contadora de 16 bits y que se utiliza para generar el retardo de
tiempo.
Ejemplo para la llamada a la función:
delay (500);
Notas:
La ejecución de la función es realizada con el Ensamblador en línea porque ello permite una
estimación más exacta del retardo de tiempo del software. La variable de transferencia es
dividida por el Compilador en una parte baja de 8 bits y una parte alta de 8 bits. La parte
baja está en el registro dpl, y la parte alta en el registro dph del 8051-Core. Con ello, el valor
transferido se puede utilizar posteriormente en la sección del Ensamblador de la función de
la siguiente manera:
Z00:
DJNZ dpl,Z00
DJNZ dph,Z00
Una estimación del tiempo de ejecución para la sección del Ensamblador puede realizarse
con la siguiente fórmula:
Retardo de tiempo = Valor transferido * 2µs
Puesto que el Compilador inserta comandos adicionales para la ejecución de la función
delay(...);, la estimación del tiempo de ejecución solamente tiene sentido para valores
transferidos en el margen de entre 250 y 65535.
En la siguiente tabla se indican retardos de tiempo típicos:
30
CMC 5
Función para la generación de retardos de tiempo de software
Funciones para convertir una variable del tipo de datos unsigned
int en dígitos de BCD individuales
Funciones para controlar la UNIDAD INDICADORA 1 de 4 dígitos
Funciones para controlar aparatos de I²C por medio del software
Funciones para controlar la UNIDAD de LCD de I
Funciones para controlar el reloj de tiempo real de I²C DS1307
(UNIDAD RTC-Temp. de I
Funciones para controlar el sensor de temperatura de I²C LM75
(UNIDAD RTC-Temp. de I
Generar una frecuencia triangular mediante la UNIDAD DA
Descripción
Generar retardos de tiempo
// Retardo de tiempo 1ms
; decrementa dpl, si no igual a 0 salta a la marca Z00
; decrementa dph, si no igual a 0 salta a la marca Z00
2
C)
2
C)
Transferencia de datos
unsigned int delaytime
2
C
Introducción CMC 5