Professional Documents
Culture Documents
D.G.I.T
ASIGNATURA:
APLICACIONES DE MICROCONTROLADORES
PRÁCTICA 12:
TIMER Y GENERACIÓN DE SEÑALES CUADRADAS.
PRESENTAN:
Castro Hernández Cesar Gerardo – 07560051.
López López Juan Ramiro - 07560553.
Rosas Villa Esmeralda - 07560419.
EXPLICACIÓN.
La Figura 1se muestra la conexión del microcontrolador con los botones y el LED los cuales
servirán para seleccionar la frecuencia y en el LED se observara.
Este circuito sencillo el cual fue implementado en la práctica, en el cual se encuentran dos
botones (Botón UP y Botón DOWN) conectados en serie a una resistencia de 4.7
Ω ca
K da
uno, los cuales a su vez se encuentran conectados a PTA0 y PTA1 respectivamente. De esta
manera el microcontrolador MC68HC908QB8 tiene configurado el Puerto A como entrada y
PTB 5 como salida conectado a un LED que hace la función inversa.
Se realizar un programa que genere una señal cuadrada de frecuencia variable de 1 Hz, 10
Hz,25 Hz,50 Hz,100 Hz,200 Hz,500 Hz,800 Hz,1 kHz.
Los botones de UP y DOWN seleccionan una frecuencia mayor e inferior respectivamente. La
frecuencia con la que trabaja el microcontrolador está un poco descalibrado, se desarrolló el
calibrado de la frecuencia con la que trabaja el bus del microcontrolador con el registro
llamado OSCTRIM.
+5v
+5v
+5v
4.7 k 4.7 k M LED
330
C
PTA 1 6 PTA 5
8
H
C
PTA 0 9
0
UP 8
DOWN Q
B
8
DESARROLLO.
Configuraremos el registro del timer dependiendo para lo que se vaya a utilizar (en este caso
lo configuramos como generador de señales cuadradas) y así sacar su valor correspondiente
en hexadecimal. Una vez teniendo conocimientos previos, llevar a cabo el calibrado del
microcontrolador con el registro OSCTRIM.Realizaremos un programa que genere señales de
frecuencia variable.
Interfaz del módulo temporizador (TIM): En esta sección se describe la interfaz del módulo
de temporizador (TIM). El módulo TIM es un contador de 4-canales que proporciona una
referencia de la sincronización con la captura de entrada, salida a comparar, y las funciones
de modulación de ancho de pulso. Las cuotas de módulo TIM con sus pines de uso general de
entrada / salida (I / O) pines del puerto.
Los siguientes registros de control y operación de monitoreo del TIM son los siguientes:
Estos bits de lectura / escritura seleccionan una de las siete salidas prescala como la entrada
al contador como lo muestra la Tabla 1.
En esta parte se explicaran todos los pasos que se llevaron a cabo la práctica como desde el
armado del circuito en protoboard, la elaboración del programa a cargar y su comprobación
del buen funcionamiento.
Los botones UP - DOWN: El boton UP esta conectado el PTA 0 este boton realizara el
aumento de frecuencia con los rango ya establecidos el maximo sera 1khz. El boton DOWN
conectado a PTA1 realizara el decremento de la frecuencia asta un minimo de 1hz. Se
muestran en la Figura 3.
LED:El LED servirá como indicador para observar los cambios de frecuencia solo nuestra vista
alcanza a ver una determinada frecuencia y en mayores observaremos que esta prendido
aunque si oscile.
Se declararon las variables que contenían los valores de los TMOD así
como el multiplicador usado. Haciendo notar que se ajusto la frecuencia
a 1 KHz.
void main(void) {
EnableInterrupts;
OSCSC = 0x20;
CONFIG2 = 0x80; Configuración incial del uC, sin perro guardián, y
CONFIG1 = 0x31; con los puertos configurados correctamente.
DDRA_DDRA5 = 1;
cont = 8;
OSCTRIM = 0x8D; Se inicia en cont = 8, ya que en esta posición del
vector se encuentra el multiplicador elegido y el
TSC = mult[cont];
TMOD correcto para la frecuencia de 1KHz. En
TMOD = tiempo[cont];
nuestro caso el uC estaba pasado en 2.6% en
TSC_TSTOP = 0;
frecuencia y se le bajo con 0x8D.
for(;;) {
if(dato == 2){ // si UP
if(cont == 8) Aquí se manda leer el puerto A, si fue un Up
el que presiono, ya no incrementa el
cont = 8;
contador si fue 8, de lo contrario lo
else
aumenta. Y para cambiar correctamente el
cont++; multiplicador en cada frecuencia, detuvimos
el registro, se cargo el multiplicador, el
TSC_TSTOP = 1; TMOD, y lo echamos a andar con su
TSC = mult[cont]; respectivo retardo de pulsado.
TMOD = tiempo[cont];
TSC_TSTOP = 0;
delay(35000);
}
Con la ayuda de la tarjeta Bunker y el puerto serial – USB como se muestra en la Figura 6, se
pudo cargo el programa al MC68HC908QB8.
4. Pruebas:
En el circuito armado se realizaron diferentes pruebas tales como, cada subrutina hecha para
comprobar su buen funcionamiento y así ir avanzando hasta no tener ningún detalle en la
programación y este código funcione como se quiere.
• La primera prueba que se realizo fue la presionar el botón DOWN estando en una
frecuencia de 1 KHz, luego paso a 800Hz y a 500Hz, como se muestra en la Figura 7.
• La siguiente prueba que se realizo fue la presionar el botón UP estando en una frecuencia
de 25Hz, 50 Hz, luego paso a 100 Hz y a 200 Hz, como se muestra en la Figura 8.
CONCLUSIONES