Ex.: Rotinas de tempo

Documentos relacionados
UTFPR Departamento Acadêmico de Eletrônica Curso Técnico em Eletrônica Microcontroladores 1 - Prof. Cion nov/2010 (atualizado em jul 2015)

Sistemas Microprocessados

programáveis por software

Microcontroladores. Contadores e Temporizadores. Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão

MICROPROCESSADORES E MICROCONTROLADORES. Prova 1 Resposta Esperada

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - RESPOSTA ESPERADA

Temporizadores e Contadores (Timer/Counter)

Os temporizadores / contadores (T/C) do 80C51

Temporizadores e Contadores

Interrupção

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 Resposta Esperada

Laboratório de Microprocessadores e Microcontroladores

EXERCÍCIOS RESOLVIDOS

Laboratório de Microprocessadores e Microcontroladores

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051) Resposta Esperada

29/03/2017. Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina

Laboratório de Microprocessadores e Microcontroladores

Temporização da CPU SEL-433 APLICAÇÕES DE MICROPROCESSADORES I. Ciclos de Máquina. Ciclos de Máquina. Temporização Interrupções Rotinas de Atraso

Prof. Adilson Gonzaga

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUCAO POSSÍVEL

Temporização Interrupções. Prof: Evandro L. L. Rodrigues. Rotinas de Atraso

Interrupção. Prof. Adilson Gonzaga

Ex.: Rotinas de tempo

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 - Uma Solução Possível

EEC2104 Microprocessadores

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 UMA SOLUÇÃO POSSÍVEL. Obs.: Todas as questões têm valor 2,0. Boa prova e Feliz Natal e Ano Novo!!!!

mov R1,10H ; Carrega o dado do endereço 10H em R1 mov R1,#10H ; Carrega 10H em R1

Laboratório de Microprocessadores e Microcontroladores

Aula 10 Microcontrolador Intel 8051 Parte 2

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

Interrupções do Interrupções Gabriel Kovalhuk. UTFPR DAELN - Tecnologia em Mecatrônica Industrial

Escola de Engenharia Elétrica, Mecânica e de Computação Universidade Federal de Goiás. Experimento 7: Sensores e Transdutores

2.4 Temporização da CPU

Acetatos de apoio às aulas teóricas

17/04/2017. Comunicação Serial. Comunicação Serial. Comunicação de Dados em Microprocessadores. . Comunicação Paralela. Comunicação Serial

Lista de Exercícios 2

Microprocessadores e Microcontroladores. Prova Substitutiva Uma Solução

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO

MICROPROCESSADORES E MICROCONTROLADORES PROVA 2 (Tema: Microcontrolador 8051)

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

TIMER2 no ATMEL AT89S8252 TIMER 2 - CARACTERISTICAS TIMER 2 MODOS

Laboratório de Microprocessadores e Microcontroladores

Lista de Exercícios 1

Laboratório de Microprocessadores e Microcontroladores. Experimento 7:

SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES

Laboratório de Microprocessadores e Microcontroladores

Microprocessadores TIMER/COUNTER I

Laboratório de Microprocessadores e Microcontroladores

Laboratório de Microprocessadores e Microcontroladores

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

EEC2104 Microprocessadores

7. PROGRAMANDO O MICROCONTROLADOR. Microcontroladores - Prof: Demantova

Laboratório de Microprocessadores e Microcontroladores

EEC2104 Microprocessadores

Interrupções por hardware

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ENGENHARIA DE COMPUTAÇÃO. Vinicius Zanetti Tiago Dambros Rodrigo Yoshida Takeda

Interface Serial. Prof. Adilson Gonzaga

Acetatos de apoio às aulas teóricas

1.2 Registradores relacionados as Interrupções. 3. TOSE Sentido da transição da borda do sinal aplicado am TMR0

USJT Universidade São Judas Tadeu ENGENHARIA ELÉTRICA - LAB. INTEGRADO. EXP4 : Interrupções do uc 8051

Microcontrolador 8051

MICROCONTROLADOR 8051

Organização de Memórias

Apontamentos sobre o 8051 Prof. Eng Luiz Antonio Vargas Pinto Versão revista e ampliada em 01/07/2009 Revisada em 28/02/2006 Revisada em 18/11/2007

Interrupções 8051 Porta Serial

Prof. Adilson Gonzaga

DIAGRAMA DE BLOCOS DE UM MICROCONTROLADOR

Interrupções Externas

Aplicações de Microprocessadores I. Prof. Adilson Gonzaga

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

Microcontroladores 8051

Comunicação Serial. Comunicação Serial

Microcontroladores. Interface Serial e RTC. Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão

Prof. Adilson Gonzaga

Microcontroladores. Interrupções no Prof. Guilherme Peron Prof. Heitor S. Lopes Prof. Ronnier Rohrich Prof. Rubão

Aula 6. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura e Ambiente de Desenvolvimento

16/3/2009. Aula 6. Engenharia de Sistemas Embarcados

EXERCÍCIOS 2 Prof. Adilson Gonzaga

MICROCONTROLADOR 8051

Memória de Dados Interna. Memória de Dados Interna

MICROPROCESSADORES E MICROCONTROLADORES Parte 2 Microcontrolador 8051

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

SEL 337 Aplicação de Microprocessadores II

1. Instruções de Desvio

Sistemas Microprocessados. sato<at>utfpr<dot>edu<dot>br

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE

EEL Microprocessadores

208 = D0 h TMOD. MOV TMOD,#20h ;TMOD = Timer 1 no ;Modo 2, controle por software SCON. ;Canal Serial

PRÁTICAS. Microcontroladores: (LT36D) Prof: DaLuz. Práticas - 2º sem Microcontroladores LT36D - 26/04/ :56 1/16

14/3/2016. A escolha do microprocessador mais adequado depende basicamente da aplicação, e deve se levar em conta os seguintes critérios:

Microprocessadores e Microcontroladores. Professor Lucas Araujo do Nascimento

Lista de Exercícios 1

O microcontrolador Quatro partes importantes

Porta série no dscope...

Laboratório de Microprocessadores e Microcontroladores

Aula 8 Microcontrolador 8051

Notas de Aula Prof. André R. Hirakawa Prof. Paulo S. Cugnasca Prof. Carlos E. Cugnasca

Transcrição:

Ex.: Rotinas de tempo ORG 0000h PADRAO EQU 11111110b PORTA EQU P1 VBASE EQU 0800h mov r0,# PADRAO inicio: mov PORTA,r0 ;***********TEMPO DE 1S ************ mov dptr,#vbase ; Tt= 2T espera1: mov r1,#0f2h ; Tt=2T+1T espera: djnz r1,espera ; Tt=2T+1T+2T*R1 djnz dpl,espera1 ; Tt=2T+(1T+2T*R1+2T)*DPL djnz dph,espera1 ;Tt=2T+((1T+2T*R1+2T)*DPL+2T)*DPH ;***********FIM DE 1S ************ mov a,r0 rl a mov r0,a ljmp inicio end ; Para R1=256 e DPL=256 calcula H para 1s. H=7,58 ; Fazendo H=8 e DPL=256 temos: R1=f2H ; Este tempo é aproximado. 1

1. Temporizadores / Contadores Operação independente dos demais componentes do microcontrolador Funcionamento programável por software Aplicações: Contagem de tempo Medição da largura de pulsos Geração de sinais PWM Geração periódica de interrupções 2

2. Estrutura Básica T/C 3

4

3. Registro de Modo TMOD bit 7 bit 0 GATE1 C/T1 M1.1 M0.1 GATE0 C/T0 M1.0 M0.0 A função Timer/Contador é selecionada pelos bits de controle C/T no TMOD. Os dois Timers tem 4 modos de operação, selecionados pelos bits (M1,M0) em TMOD. Os modos 0, 1 e 2 são iguais para ambos Ts/Cs. No modo 3 existe diferença. 5

3. Registro de Modo TMOD bit 7 bit 0 GATE1 C/T1 M1.1 M0.1 GATE0 C/T0 M1.0 M0.0 GateX Quando em 1 o T/CX é habilitado somente enquanto INTX estiver em alto e TRX setado. Quando em 0 dependerá apenas de TRX. 6

4. Registro de Controle TCON bit 7 bit 0 TF1 TR1 TF0 TR0 TFX - Colocado em 1 pelo T/CX quando de um overflow. É zerado pelo hardware quando o processador vai para ISR ou por software através de instrução. TRX Quando setado ou zerado por software faz o T/CX contar ou parar, respectivamente. 7

4. Modo de Operação dos T/C MODO 0 Modo 0 - Temporizador / Contador de eventos de 8 bits com prescaler de 5 bits: A divisão de freqüência é programada nos 5 bits menos significativos de TL0 ou TL1 (2 a 32). A contagem ocorre nos 8 bits de TH0 ou TH1. Ao ocorrer estouro da capacidade de contagem ocorre o pedido da interrupção correspondente, se habilitada. A recarga do valor inicial é feita por software. 8

4. Modo de Operação dos T/C MODO 0 OSC. 12 C/T0=0 Terminal T0 C/T0=1 Controle TL0 (5 bits) TH0 (8 bits) TF0 Interrupção TR0 & GATE0 1 Terminal INT0\ 9

4. Modo de Operação dos T/C MODO 1 Modo 1 - Temporizador / Contador de eventos de 16 bits: A contagem ocorre nos 16 bits de TH0/TL0 ou TH1/TL1 Ao ocorrer estouro da capacidade de contagem ocorre o pedido da interrupção correspondente, se habilitada A recarga do valor inicial é feita por software 10

4. Modo de Operação dos T/C MODO 0 OSC. 12 C/T0=0 Terminal T0 C/T0=1 Controle TH0 (8 bits) TL0 (8 bits) TF0 Interrupção TR0 & GATE0 1 Terminal INT0\ 11

4. Modo de Operação dos T/C MODO 2 Modo 2 - Temporizador / Contador de eventos de 8 bits com recarga automática: A contagem ocorre nos 8 bits de TL0 ou TL1. O valor de recarga do valor inicial ao ocorrer estouro da capacidade de contagem fica armazenado em TH0 ou TH1. O T/C1 operando no Modo 2 serve para gerar a taxa de transmissão da interface serial. 12

4. Modo de Operação dos T/C MODO 2 OSC. 12 C/T0=0 Terminal T0 C/T0=1 Controle TH0 (8 bits) TF0 Interrupção TR0 & Recarga GATE0 Terminal INT0\ 1 TL0 (8 bits) 13

4. Modo de Operação dos T/C MODO 3 Modo 3 - Duplo Temporizador / Contador de 8 bits (apenas T/C0): Contagens de 8 bits independentes ocorrem em TH0 (controlada pelos bits TR1 e TF1) e TL0 (controlada pelos bits TR0 e TF0). Com o T/C0 operando no Modo 3 é possível ter o T/C1 operando no Modo 2 para a geração da taxa de transmissão da interface serial. 14

4. Modo de Operação dos T/C MODO 3 OSC. 12 TH0 (8 bits) TF1 Interrupção TR1 Controle C/T0=0 Terminal T0 C/T0=1 Controle TL0 (8 bits) TF0 Interrupção TR0 & GATE0 1 Terminal INT0\ 15

5. Temporizadores / Contadores - Exemplos 1. Faça um programa que opere como um gerador de pulsos no pino P1.0, com 400 μs de duração o período, duty cycle igual a 50%. Utilize o T/C 0 no modo 2 (contador de 8 bits com recarga automática). Considere Fclock de 12MHz. Rótulo Instrução/Diretiva Comentário ORG 0000H ; reset Inicio: MOV TMOD,#00000010B ; define modo 2 no T/C 0 MOV TL0,#38H ; valor para gerar 200 contagens (256-56=200) MOV TH0,#38H ; valor de recarga de TL0 SETB TR0 ; dispara contagem Loop: JNB TF0, Loop ; testa overflow da contagem em T/C 0 no bit TF0 CLT TR0 ; para a contagem CPL P1.0 ; complementa bit p1.0 CLR TF0 ; limpa flag de overflow da contagem SETB TR0 ; habilita contagem JMP Loop ; retorna ao loop 16

5. Temporizadores / Contadores - Exemplos 2. Faça um programa que opere como temporizador de 65 ms no T/C 1, com emprego de interrupção. Ao final da temporização, o LED 1 comuta seu estado. 17

5. Temporizadores / Contadores - Exemplos Rótulo Instrução/Diretiva Comentário ORG 0000H ; reset JMP Inicio ; salta para o inicio do programa principal ORG 001BH ; vetor interrupção do timer 1 (001BH) JMP IsrCT1 ; entrada da ISR do C/T 1 Inicio: MOV TMOD,#00010000B ; define o modo 1 para o C/T 1 MOV TH1,#02H ; valor de carga do C/T 1 = 536 (0218H = 536) MOV TL1,#18H ; temporização de 65.536 65000 = 536 (65 ms) MOV IE,#10001000B ; EA=1 (habilita int.), ET1=1 (habilita int. do C/T 1) SETB TR1 ; dispara timer Loop: JMP Loop ; programa em loop infinito, aguarda interrupção IsrCT1: CLR TR1 ; parada do temporizador CPL P1.0 ; comuta estado do pino P1.0 (muda estado do LED 1) MOV TH1,#02H ; recarrega C/T 1 com 536 (= 0218H) MOV TL1,#18H SETB TR1 ; dispara temporizador RETI ; retorna da ISR 18

5. Temporizadores / Contadores - Exemplos 3. Faça um programa que faça dois leds ligados em P1.0 e P1.1 piscarem a cada 1 segundo. 19

Rótulo Instrução Comentário ORG 0000H ; reset JMP Inicio ; salta vetor interrupção do C/T 1 ORG 001BH ; endereço do vetor interrupção do C/T 1 JMP IsrCT1 ; entrada da ISR do C/T 1 Inicio: MOV TMOD,#00010000B ; define o modo 1 para o C/T 1 MOV TH1,#HIGH(15536) ; carrega a parte alta em TH1 para 50.000 MOV TL1,#LOW(15536) ; carrega a parte baixa em TL1 MOV R0,#20 ; contador do número de interrupções SETB P1.0 ; desativa LED0 CLR P1.1 ; ativa LED1 MOV IE,#10001000B ; habilita interrupção do timer 1 SETB TR1 ; dispara timer Loop: JMP Loop ; programa em loop, saída por interrupção ; Rotina de Serviço de Interrupção IsrCT1: CLR TR1 ; parada de C/T 1 DEC R0 ; decrementa contador de interrupções CJNE R0,#0FFH,Segue ; se contador <> ffh, não recarrega MOV R0,#20 ; se sim, recarrega contador CPL P1.0 ; complementa pino P1.0 CPL P1.1 ; idem para P1.1 Segue: MOV TH1,#HIGH(15536) ; recarrega a parte alta em TH1 MOV TL1,#LOW(15536) ; recarrega a parte baixa em TL1 SETB TR1 ; dispara C/T1 RETI ; retorna da interrupção 20

5. Temporizadores / Contadores - Exercícios 4. Considere uma CPU que possui 8 leds ligados a porta P1 do 8051. O programa deve acender seqüencialmente por 1s cada um dos leds. Neste exemplo o tempo deverá ser gerado pelo timer e controlado por status. Considere que o led acende com 0 e a freqüência de 12MHz. 21

5. Temporizadores / Contadores - Exercícios ORG 0000h padrao EQU 11111110B porta EQU P1 inicio: mov r0,#padrao Again: mov porta,r0 call tempo mov a,r0 rla mov r0,a ljmp again ;*************** *******************TEMPO DE 1S Tempo: mov r2,#20 ;20*50ms=1s ;********33**************************programa e faz o timer contar 50ms mais50: mov th0,#high(-50000) ; coloca em th0 parte alta de ffffh-50000 mov tl0,#low(-50000) ; coloca em tl0 parte baixa de ffffh-50000 mov tmod,#00000001b ; timer 0, modo 1, disparo por tr0 setb tr0 ; disparo contagem espera: jnb tf0,espera ; enquanto não tiver overflow espera clr tr0 ; paro o timer clr tf0 ; limpo a indicação de estouro djnz ret end r2,mais50 22

6. Temporizadores / Contadores - Exercícios 5. Considere uma CPU que possui 8 leds ligados a porta P1 do 8051. O programa deve acender seqüencialmente por 1s cada um dos leds. Neste exemplo o tempo deverá ser gerado pelo timer e controlado por interrupção. Considere que o led acende com 0 e a freqüência de 12MHz. 23

PADRAO EQU 11111110b PORTA EQU P1 ORG 0000h ljmp inicio ; desvio endereço do tratamento ORG 000Bh ; endereço para o tratamento da interrupção T0 ljmp isrt0 ; salta para a rotina de trat. da int. do T0 inicio: mov sp,#07 setb et0 ; seto bit do tcon que habilita o timer 0. mov r2,#20 ; num. de vezes que a int. do T0 deve acontecer para 1s. mov r0,#padrao mov porta,r0 mov th0,#high(-50000) ; programo o timer para 50ms mov tl0,#low(-50000) ; programo o timer para 50ms mov tmod,#00000001b ; modo 1, timer0, disparo por tr0 setb tr0 ; disparo o timer setb ea ; hab. global das interr. individualmente habilitadas. aguardo: ljmp aguardo ; µc está livre para executar novas funções ;***********INICIO DA INTERRUPT SERVICE ROUTINE isrt0: djnz r2,nao20 ; se não chegou a 1s vai para nao20 mov r2,#20 ; se chegou reinicializo contador de interrupções mov a,r0 ; recupero padrão rl a ; rotaciono mov r0,a ; mov porta,r0 nao20: mov th0,#high(-50000) ; reinicializo o timer mov tl0,#low(-50000) ; reinicializo o timer reti ;*********** FIM DE isrt0 ************ end 24