Escolar Documentos
Profissional Documentos
Cultura Documentos
A solução da prova é individual. Os alunos não devem conversar ou trocar informações entre
si durante o período de resolução da prova.
1) Sobre a prova
A prova tem a duração de até 30 horas. Ela é composta por quatro questões. Dentro deste prazo, cada aluno deve resolver e enviar
a solução de apenas duas questões, de acordo com as regras a seguir.
• Os alunos de matrícula ímpar devem fazer a Questão 1 e escolher uma dentre as Questões 3 e 4.
• Os alunos de matrícula par devem fazer a Questão 2 e escolher uma dentre as Questões 3 e 4.
Todas as questões possuem o mesmo peso.
4) Entrega da resolução
Cada aluno deverá enviar sua solução (um arquivo compactado) usando o Moodle da disciplina. Em caso de problemas, a solução
poderá ser enviada por mensagem o endereço zele@unb.br, antes do término do prazo. O assunto desta mensagem deve ser “B1-
XXXXXXXXX”, onde XXXXXXXXXX representa o número de matrícula (apenas números).
Procure enviar sua solução meia hora antes do término do prazo. Isto vai evitar problemas. Não serão aceitas mensagens que
chegarem após o término do prazo.
1
Prova de Sistemas Microprocessados
Questão 1
A ser feita pelos alunos com número de matrícula ímpar
S1 = A e S2 = A S1 = A e S2 = F
S1 = F e S2 = A S1 = F e S2 = F
(50%) Pedido 2) Usando um cabo, conecte o pino P1.5 (TA0.4) ao pino P2.4 (TA2.1) e use os recursos de
captura de TA2 para medir o período em ms e o ciclo de carga em % do PWM gerado e apresente o
resultado nas variáveis “int periodo” e “int carga” (veja o arquivo B1q1_esq.c). Use o TA2 acionado pelo
SMCLK (1.048.576 Hz) dividido por 16 (ID_3 e TAIDEX_1). A correção, será baseada nos valores
apresentados por essas variáveis. Não se esqueça de habilitar “PxSEL” dos pinos usados.
O uso de interrupção na captura vale 20%!
2
Prova de Sistemas Microprocessados
a b c d e f g h i
1 2 3 4 5 6 7 8 9
Assim temos os parâmetros do PWMs a serem gerados e que estão tabelados abaixo.
Você recebeu um programa executável (B1q1.out) correspondente à solução desta questão usando a
matrícula 123456789. É claro que você não terá como acessar suas variáveis. Com este programa rodando,
você pode conectar o pino P1.5 ao led vermelho para ver que o led pisca como foi pedido. Para não deixar
dúvidas sobre o que se pede, apresenta-se abaixo os valores esperados que foram coletados durante sua
execução deste programa. Note que há uma pequena discrepância nos valores exibidos, devido à imprecisão
dos relógios e porque as contas e o resultado são representados em inteiros.
S1 = A e S2 = A S1 = A e S2 = F
S1 = F e S2 = A S1 = F e S2 = F
3
Prova de Sistemas Microprocessados
Questão 2
A ser feita pelos alunos com número de matrícula par
S1 = A e S2 = A S1 = A e S2 = F
S1 = F e S2 = A S1 = F e S2 = F
(50%) Pedido 2) Usando um cabo, conecte o pino P1.5 (TA0.4) ao pino P2.4 (TA2.1) e use os recursos de
captura de TA2 para medir a frequência em Hz e o ciclo de carga em % do PWM gerado e apresente o
resultado nas variáveis “int frequencia” e “int carga” (veja o arquivo B1q2_esq.c). Use o TA2 acionado
pelo SMCLK (1.048.576 Hz) dividido por 16 (ID_3 e TAIDEX_1). A correção, será baseada nos valores
apresentados por essas variáveis. Não se esqueça de habilitar “PxSEL” dos pinos usados.
O uso de interrupção na captura vale 20%!
4
Prova de Sistemas Microprocessados
a b c d e f g h i
1 2 3 4 5 6 7 8 9
Assim temos os parâmetros do PWMs a serem gerados e que estão tabelados abaixo.
Você recebeu um programa executável (B1q2.out) correspondente à solução desta questão usando a
matrícula 123456789. É claro que você não terá como acessar suas variáveis. Com este programa rodando,
você pode conectar o pino P1.5 ao led vermelho para ver que o led pisca como foi pedido. Para não deixar
dúvidas sobre o que se pede, apresenta-se abaixo os valores esperados que foram coletados durante sua
execução. Note que há uma pequena discrepância nos valores exibidos, devido à imprecisão dos relógios e
porque as contas e o resultado são representados em inteiros. No caso deste exemplo, os valores ficaram
uma unidade abaixo do valore esperado (isto poderia ser corrigido com um arredondamento, mas aqui se
preferiu a solução mais simples)
S1 = A e S2 = A S1 = A e S2 = F
S1 = F e S2 = A S1 = F e S2 = F
5
Prova de Sistemas Microprocessados
Questão 3
No texto abaixo foi usado a seguinte representação:
“AF”: representa a passagem da chave do estado de aberta para o estado de fechada.
“A”: representa a chave no estado de aberta.
“F”: representa a chave no estado de fechada.
Na vida moderna é muito comum o uso de temporizadores, por exemplo, para controlar o tempo de
preparação da pipoca no micro-ondas ou cozimento de ovo. Nesta questão vamos criar um temporizador de
segundos, controlado pelas teclas S1 e S2. A quantidade de segundos é indicada pelos acionamentos (AF)
de S1. O acionamento (AF) de S2 dá partida ao temporizador e o led verde acende para indicar o final do
período especificado (contagem). Durante a contagem, a cada segundo, o led vermelho por acende por 0,2
segundo, para indicar a passagem dos segundos. O programa “B1q3.out” está disponível para esclarecer as
possíveis dúvidas. Além disso, as figuras abaixo ilustram alguns casos.
Controle do temporizador:
S1 quantidade de acionamentos de S1 (AF) indica a quantidade de segundos desejada.
S2 seu acionamento (AF) dá partida à contagem dos segundos.
Led vermelho durante a contagem, indica a passagem dos segundos (0,8 s apagado e 0,2 s aceso).
Led verde indica que se chegou ao final do período desejado.
Atenção: o led vermelho pisca somente durante a contagem. Para que o led vermelho seja acionado por este
timer, use um cabo para conectar P1.5 ao led vermelho (JP8, pino 2)
Detalhes do temporizador:
1) Se já se chegou ao final da contagem, o led verde estará aceso. Neste caso, o primeiro acionamento de S1
(AF) deve apagar o led verde;
2) Após o início da contagem, cada acionamento S1 (AF) soma 1 segundo ao intervalo desejado. Com
isso o intervalo pode ser estendido mesmo com o temporizador já iniciado.
3) Após o início da contagem, S2 funciona como uma pausa, ou seja, a contagem fica em pausa enquanto S2
for mantida pressionada (S2=F). Para facilitar a questão, tolera-se um erro de +/- 1 segundo ao reassumir a
contagem.
4) Mesmo com S2 pressionada (S2=F), ou seja, com a contagem em pausa, o acionamento de S1 (AF)
deve somar 1 segundo ao intervalo desejado.
Restrição:
Somente pode ser usado o timer TA0.4 (P1.5) acionado pelo ACLK (32.768 Hz). Soluções com interrupção
são valorizadas.
6
Prova de Sistemas Microprocessados
Exemplo de de temporização estendida. Com o temporizador parado, S1 foi acionado (AF) 3 vezes para
selecionar o período de 3 segundos. A temporização foi iniciada com o acionamento de S2 (AF). Durante
a contagem de tempo, S1 foi acionada (AF) uma vez, o que estendeu o intervalo para 4 segundos.
Exemplo de temporização pausada. Com o temporizador parado, S1 foi acionado (AF) 3 vezes para
selecionar o período de 3 segundos. A temporização foi iniciada com o acionamento de S2 (AF). Durante
a contagem de tempo, S2 permaneceu acionada (fechada) durante dois segundos (pausa de 2 segundos), o
que resultou no intervalo total de 5 segundos. Mesmo em pausa, led vermelho continuou sinalizando os
segundos. Para simplificar, nos casos de pausa, tolera-se um erro de +/- um segundo.
7
Prova de Sistemas Microprocessados
Questão 4
Nesta questão vamos variar o brilho dos leds vermelho e verde com dois PWMs gerados pelo Timer B, que
para efeitos desta questão, pode ser considerado idêntico ao timer A.
O brilho do led vermelho será controlado pelo PWM gerado por TB0.2, por
isso use um cabo fêmea-fêmea para conectar o pino P7.4 (TB0.2) ao led
vermelho (JP8, pino 2). O brilho do led verde será controlado pelo PWM
gerado por TB0.1 e por isso será necessário fazer o mapeamento de P4.7. As
instruções para esse mapeamento são fornecidas em seguida.
P4DIR |= BIT7; //P4.7 = Saída
P4SEL |= BIT7; //P4.7 saída alternativa
PMAPKEYID = 0X02D52; //Liberar mapeamento
P4MAP7 = PM_TB0CCR1A; //TB0.1 sair por P4.7 (LED2)
Ao lado está a figura que identifica o pino para acionar o led vermelho.
A figura abaixo torna claro todo este esquema.
Timer B usa o SMCLK (1.048.576 Hz), sem divisores, para gerar dois PWM na frequência de 128 Hz. Estes
PWM vão controlar o brilho dos leds. A cada segundo, o brilho (a carga de cada PWM) será variado em
20%. A variação irá alternar entre ascendente e descendente, como mostrado na figura abaixo.
Ilustração do controle do brilho dos leds vermelho e verde. Os números indicam a percentagem (%) do ciclo
de carga. Cada degrau (passo) tem a duração de 1 segundo. Note que o brilho dos dois leds está
sincronizado.
Lembre-se que nosso olho tem pouca sensibilidade quando o brilho é intenso. Por isso, é comum notarmos
pouca diferença de brilho entre carga de 80% e de 100%.
8
Prova de Sistemas Microprocessados
O acionamento de uma das chaves produz uma pausa nos passos do PWM como ilustrado na figura abaixo.
Nesta figura, o brilho dos leds estava em 40% quando a chave S1 foi acionada, por isso, o brilho foi mantido
em 40% até a chave ser liberada. A chave S2 produziria o mesmo efeito.
A combinação das duas chaves permite variar o brilho de um dos leds, mesmo com o sistema em pausa. O
acionamento da primeira chave coloca o sistema em pausa e cada acionamento da segunda chave, avança-se
um passo no brilho de um dos leds.
• Enquanto S1 está pressionada, pulsos em S2 irão variar o brilho do led verde.
• Enquanto S2 está pressionada, pulsos em S1 irão variar o brilho do led vermelho.
Com este recurso, a variação do brilho dos leds deixa de estar em fase. Veja exemplo a abaixo.
Neste caso, S1 foi mantida pressionada e os dois acionamentos de S2 provocaram duas variações de brilho
no led verde.
Interessante: caso uma chave esteja pressionada, 5 acionamentos da outra chave irão colocar o brilho dos
leds em oposição: quando um estiver em 100% o outro estará em 0%.
Restrições: É permitido usar apenas o timer TB0. As soluções com interrupção têm um valor maior.
O programa B1q4.out é disponibilizado para esclarecer as dúvidas.