SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de
los Timers
Página 1

PROGRAMAS PARA VISUALIZAR COM...
SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de
los Timers
Página 2

; REGISTRO DE CONTROL DEL T/C...
SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de
los Timers
Página 3

Figura Nº1 Inicialización de ...
SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de
los Timers
Página 4
TCNT0=0x1D
Timer0
detenido

TC...
SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de
los Timers
Página 5
TCNT0=0xEC
Arranca Timer0
con ...
Próxima SlideShare
Cargando en…5
×

Funcionamiento del Timer 0

5.349 visualizaciones

Publicado el

Programas para comprobar el funcionamiento del Timer con el Simulador AVR STUDIO

Publicado en: Educación, Tecnología
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
5.349
En SlideShare
0
De insertados
0
Número de insertados
1
Acciones
Compartido
0
Descargas
479
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

Funcionamiento del Timer 0

  1. 1. SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de los Timers Página 1 PROGRAMAS PARA VISUALIZAR COMO CONTADOR NORMAL ASCENDENTE AL TEMPORIZADOR/CONTADOR 0 Los siguientes programas, contenidos en un solo archivo .ASM, permiten comprobar la operación del Timer/Contador 0 mediante la simulación 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 ; INICIALIZACIÓN DE LOS REGISTROS COMPARADORES DEL T/C0 LDI AUX1,0x15 OUT OCR0A,AUX1 LDI AUX1,0x3A OUT OCR0B,AUX1 ; PROGRAMACIÓN DE LOS REGISTROS DE CONTROL DEL T/C0 ; COM0A1:0 = 00 OC0A DESCONECTADA ; COM0B1:0 = 00 OC0B DESCONECTADA ; DOS BITS RESERVADOS = 00 Figura Nº1 ; WGM01:0 = 00 MODO CONTADOR NORMAL LDI AUX1,0B00000000 OUT TCCR0A,AUX1 ; FOC0A = 0 NO OBLIGA A UNA COMPARACIÓN CON OCR0A ; FOC0B = 0 NO OBLIGA A UNA COMPARACIÓN 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 Nº2 SBRS AUX1,OCF0A RJMP LOOP1 ; CONTINÚA AL ENCENDER LA BANDERA DE COMPARACIÓN OCF0A ; REGISTRO DE CONTROL DEL T/C0 PARA DETENER ; CS02:0 = 000 LDI AUX1,0B00000000 Figura Nº3 OUT TCCR0B,AUX1 ; BORRAR LA BANDERA DE COMPARACIÓN 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 Electrónica, Telecomunicaciones y Redes de Información
  2. 2. SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de los Timers Página 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 ; CONTINÚA AL ENCENDER LA BANDERA DE COMPARACIÓN OCF0B ; REGISTRO DE CONTROL DEL T/C0 PARA DETENER ; CS02:0 = 000 LDI AUX1,0B00000000 OUT TCCR0B,AUX1 ; BORRAR LA BANDERA DE COMPARACIÓN OCF0B DEL T/C0 LDI AUX1,0B00000100 OUT TIFR0,AUX1 ; EL T/C0 DETENIDO LDI AUX1,10 STOP2: DEC AUX1 BRNE STOP2 ; REINICIALIZACIÓN 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 ; CONTINÚA 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 Nº4 Figura Nº5 No cambia el Timer Figura Nº6 Figura Nº7 Figura Nº8 No cambia el Timer A continuación 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 Electrónica, Telecomunicaciones y Redes de Información
  3. 3. SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de los Timers Página 3 Figura Nº1 Inicialización de los Registros del Timer 0 TCNT0=0x01 1 ciclo de máquina TCNT0=0x02 1 ciclo de máquina TCNT0=0x04 2 ciclo de máquina TCNT0=0x06 1 ciclo de máquina TCNT0=0x08 2 ciclo de máquina TCNT0=0x09 1 ciclo de máquina TCNT0=0x05 1 ciclo de máquina TCNT0=0x0A 1 ciclo de máquina Figura Nº2 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 Nº3 Encendido OCF0A, detención del contador y borrado de OCF0A Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  4. 4. SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de los Timers Página 4 TCNT0=0x1D Timer0 detenido TCNT0=0x1D Activar ingreso del reloj TCNT0=0x1E 1 ciclo de máquina TCNT0=0x21 2 ciclo de máquina TCNT0=0x22 1 ciclo de máquina TCNT0=0x23 1 ciclo de máquina TCNT0=0x1F 1 ciclo de máquina TCNT0=0x25 2 ciclo de máquina Figura Nº4 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=0x40 Salta fuera del lazo TCNT0=0x41 Se prepara para detener TCNT0=0x42 Timer0 detenido TCNT0=0x3E Siguen dentro del lazo TCNT0=0x42 Bandera OC0B apagada Figura Nº5 Encendido OCF0B, detención del contador y borrado de OCF0B Figura Nº6 Re inicialización de los Registros del Timer 0 Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información
  5. 5. SISTEMAS MICROPROCESADOS: Programas para comprobar el funcionamiento de los Timers Página 5 TCNT0=0xEC Arranca Timer0 con reloj/8 TCNT0=0xED 8 ciclos de máquina TCNT0=0xF8 Emparejando a OCR0B TCNT0=0xF9 Bandera OCF0B encendida TCNT0=0xF0 Emparejando a OCR0A TCNT0=0xFF Valor final del contador TCNT0=0xF1 Bandera OCF0A encendida TCNT0=0x00 Bandera TOV0 encendida Figura Nº7 Arranque del contador y lazo de espera hasta que se encienda TOV0 TCNT0=0x01 Timer0 detenido TCNT0=0x01 Banderas apagadas Figura Nº8 Detención del contador y borrado de las tres banderas OCF0A, OCF0B y TOV0 Ing. Jaime E. Velarde – Departamento de Electrónica, Telecomunicaciones y Redes de Información

×