Sunteți pe pagina 1din 5

SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de los Timers Pgina 1

PROGRAMAS PARA VISUALIZAR COMO CONTADOR NORMAL ASCENDENTE AL TEMPORIZADOR/CONTADOR 0


Los siguientes programas, contenidos en un solo archivo .ASM, permiten comprobar la operacin del Timer/Contador 0 mediante la simulacin en el AVR Studio.
.NOLIST .INCLUDE "m164pdef.inc" .LIST ; .DEF AUX1 = R16 .DEF AUX2 = R17 .DEF AUX3 = R18 ; .CSEG JMP PROGP ; PROGP: ; MODO: CONTADOR NORMAL ; EJEMPLO: TIMER HASTA DETECTAR EL EMPAREJAMIENTO CON OCR0A ; LUEGO HASTA DETECTAR EL EMPAREJAMIENTO CON OCR0B ; Y FINALMENTE HASTA DETECTAR EL DESBORDAMIENTO ; INICIALIZACIN DE LOS REGISTROS COMPARADORES DEL T/C0 LDI AUX1,0x15 OUT OCR0A,AUX1 LDI AUX1,0x3A OUT OCR0B,AUX1 ; PROGRAMACIN DE LOS REGISTROS DE CONTROL DEL T/C0 ; COM0A1:0 = 00 OC0A DESCONECTADA ; COM0B1:0 = 00 OC0B DESCONECTADA ; DOS BITS RESERVADOS = 00 Figura N1 ; WGM01:0 = 00 MODO CONTADOR NORMAL LDI AUX1,0B00000000 OUT TCCR0A,AUX1 ; FOC0A = 0 NO OBLIGA A UNA COMPARACIN CON OCR0A ; FOC0B = 0 NO OBLIGA A UNA COMPARACIN CON OCR0B ; DOS BITS RESERVADOS = 00 ; WGM02 = 0 MODO CONTADOR NORMAL ; CS02:0 = 001 RELOJ IGUAL A Fosc LDI AUX1,0B00000001 OUT TCCR0B,AUX1 ; LAZO DONDE ESPERA EL EMPAREJAMIENTO CON OCR0A LOOP1: IN AUX1,TIFR0 Figura N2 SBRS AUX1,OCF0A RJMP LOOP1 ; CONTINA AL ENCENDER LA BANDERA DE COMPARACIN OCF0A ; REGISTRO DE CONTROL DEL T/C0 PARA DETENER ; CS02:0 = 000 LDI AUX1,0B00000000 Figura N3 OUT TCCR0B,AUX1 ; BORRAR LA BANDERA DE COMPARACIN OCF0A DEL T/C0 LDI AUX1,0B00000010 OUT TIFR0,AUX1 ; EL T/C0 DETENIDO No cambia LDI AUX1,10 STOP1: DEC AUX1 el Timer BRNE STOP1

Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de los Timers Pgina 2

; REGISTRO DE CONTROL DEL T/C0 PARA ARRANCAR ; CON EL RELOJ IGUAL A Fosc ; CS02:0 = 001 LDI AUX1,0B00000001 OUT TCCR0B,AUX1 ; LAZO DONDE ESPERA EL EMPAREJAMIENTO CON OCR0B LOOP2: IN AUX1,TIFR0 SBRS AUX1,OCF0B RJMP LOOP2 ; CONTINA AL ENCENDER LA BANDERA DE COMPARACIN OCF0B ; REGISTRO DE CONTROL DEL T/C0 PARA DETENER ; CS02:0 = 000 LDI AUX1,0B00000000 OUT TCCR0B,AUX1 ; BORRAR LA BANDERA DE COMPARACIN OCF0B DEL T/C0 LDI AUX1,0B00000100 OUT TIFR0,AUX1 ; EL T/C0 DETENIDO LDI AUX1,10 STOP2: DEC AUX1 BRNE STOP2 ; REINICIALIZACIN DE LOS REGISTROS COMPARADORES DEL T/C0 LDI AUX1,0xF0 OUT OCR0A,AUX1 LDI AUX1,0xF8 OUT OCR0B,AUX1 ; VALOR INICIAL DEL REGISTRO CONTADOR T/C0 LDI AUX1,0xEC OUT TCNT0,AUX1 ; REGISTRO DE CONTROL DEL T/C0 PARA ARRANCAR ; CON EL RELOJ IGUAL A Fosc/8 ; CS02:0 = 010 LDI AUX1,0B00000010 OUT TCCR0B,AUX1 ; LAZO DONDE ESPERA EL DESBORDAMIENTO LOOP3: IN AUX1,TIFR0 SBRS AUX1,TOV0 RJMP LOOP3 ; CONTINA CUANDO SE DESBORDA ; REGISTRO DE CONTROL DEL T/C0 PARA DETENER ; CS02:0 = 000 LDI AUX1,0B00000000 OUT TCCR0B,AUX1 ; BORRAR LAS TRES BANDERAS DEL T/C0 LDI AUX1,0B00000111 OUT TIFR0,AUX1 ; EL T/C0 DETENIDO LDI AUX1,10 STOP3: DEC AUX1 BRNE STOP3 ; FINAL: RJMP FINAL .EXIT ; FIN DEL MODULO FUENTE

Figura N4

Figura N5

No cambia el Timer

Figura N6

Figura N7

Figura N8

No cambia el Timer

A continuacin se muestran capturas de pantalla del AVR Studio, detallando los contenidos de los Registros del Timer0, donde se puede apreciar los cambios que se producen en el Registro Contador (TCNT0) y en las Banderas (OCF0A, OCF0B y TOV0) a medida que avanza el programa.

Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de los Timers Pgina 3

Figura N1 Inicializacin de los Registros del Timer 0


TCNT0=0x01 1 ciclo de mquina TCNT0=0x02 1 ciclo de mquina TCNT0=0x04 2 ciclo de mquina TCNT0=0x05 1 ciclo de mquina

TCNT0=0x06 1 ciclo de mquina

TCNT0=0x08 2 ciclo de mquina

TCNT0=0x09 1 ciclo de mquina

TCNT0=0x0A 1 ciclo de mquina

Figura N2 Lazo de espera hasta que se encienda OCF0A


TCNT0=0x15 Emparejando a OCR0A TCNT0=0x16 Bandera OCF0A encendida TCNT0=0x18 Siguen dentro del lazo TCNT0=0x19 Siguen dentro del lazo

TCNT0=0x1B Salta fuera del lazo

TCNT0=0x1C Se prepara para detener

TCNT0=0x1D Timer0 detenido

TCNT0=0x1D Bandera OC0A apagada

Figura N3 Encendido OCF0A, detencin del contador y borrado de OCF0A

Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de los Timers Pgina 4


TCNT0=0x1D Timer0 detenido TCNT0=0x1D Activar ingreso del reloj TCNT0=0x1E 1 ciclo de mquina TCNT0=0x1F 1 ciclo de mquina

TCNT0=0x21 2 ciclo de mquina

TCNT0=0x22 1 ciclo de mquina

TCNT0=0x23 1 ciclo de mquina

TCNT0=0x25 2 ciclo de mquina

Figura N4 Arranque del contador y lazo de espera hasta que se encienda OCF0B
TCNT0=0x3A Emparejando a OCR0B TCNT0=0x3B Bandera OCF0B encendida TCNT0=0x3D Siguen dentro del lazo TCNT0=0x3E Siguen dentro del lazo

TCNT0=0x40 Salta fuera del lazo

TCNT0=0x41 Se prepara para detener

TCNT0=0x42 Timer0 detenido

TCNT0=0x42 Bandera OC0B apagada

Figura N5 Encendido OCF0B, detencin del contador y borrado de OCF0B

Figura N6 Re inicializacin de los Registros del Timer 0


Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de los Timers Pgina 5


TCNT0=0xEC Arranca Timer0 con reloj/8 TCNT0=0xED 8 ciclos de mquina TCNT0=0xF0 Emparejando a OCR0A TCNT0=0xF1 Bandera OCF0A encendida

TCNT0=0xF8 Emparejando a OCR0B

TCNT0=0xF9 Bandera OCF0B encendida

TCNT0=0xFF Valor final del contador

TCNT0=0x00 Bandera TOV0 encendida

Figura N7 Arranque del contador y lazo de espera hasta que se encienda TOV0
TCNT0=0x01 Timer0 detenido TCNT0=0x01 Banderas apagadas

Figura N8 Detencin del contador y borrado de las tres banderas OCF0A, OCF0B y TOV0

Ing. Jaime E. Velarde Departamento de Electrnica, Telecomunicaciones y Redes de Informacin

S-ar putea să vă placă și