Exercícios MSP430.pdf

4
MSP430 1. Defina a função void Atraso ( volatile unsigned int x ); que fornece um atraso de 'x' milissegundos. Utilize o Timer_A para a contagem de tempo, e assuma que o SMCLK já foi configurado para funcionar a 1 MHz. Esta função poderá ser utilizada diretamente nas outras questões desta prova. (2,5 pontos) 2. Desenhe o hardware utilizado para controlar 6 LEDs utilizando charlieplexing. Apresente os pinos utilizados no MSP430 e os LEDs, nomeados L1-L6. (1,25 pontos) 3. Defina a função void main ( void ){} para controlar 6 LEDs de uma árvore de natal usando o hardware da questão anterior. Considere que os LEDs são nomeados L1-L6, e que cada LED Lx deverá acender separadamente por x*300ms. Por exemplo, L1 fica aceso por 300ms, depois L2 por 600ms, L3 por 900ms, e assim por diante. (2,5 pontos) 4. Defina a função void paralelo_para_serial ( void ); que lê o byte de entrada via porta P1 e transmite os bits serialmente via pino P2.0. Comece com um bit em nivel alto, depois os bits na ordem P1.0 - P1.1 - … - P1.7 e termine com um bit em nível baixo. Considere um período de 1 ms entre os bits. (2,5 pontos) 5. Desenhe o hardware necessário para o MSP430 controlar via P1.0 um motor DC de 12V e 4A. Utilize transistores bipolares de junção (TBJ) com Vbe = 0,7 V, beta = 100 e Vce(saturação) = 0,2 V. Além disso, considere que Vcc = 3 V para o MSP430, e que este não pode fornecer mais do que 10 mA por porta digital. (1,25 pontos) 6. Desenhe o hardware necessário para o MSP430 controlar via pino P1.6 um motor DC de 10V e 1,5A. Utilize transistores bipolares de junção (TBJ) com Vbe = 0,7 V e beta = 120. Além disso, considere que Vcc = 3,5 V para o MSP430, e que este não pode fornecer mais do que 10 mA por porta digital. (2,5 pontos) 7. Defina a função void ConfigPWM ( volatile unsigned int freqs, volatile unsigned char ciclo_de_trabalho ); para configurar e ligar o Timer_A em modo de comparação, a fim de controlar o motor DC da questão anterior. Considere que o pino P1.6 já foi anteriormente configurado como saída do canal 1 de comparação do Timer_A, que somente os valores {100, 200, 300, …, 1000} Hz são válidos para a frequência, que somente os valores {0, 25, 50, 75, 100} % são válidos para o ciclo de trabalho, e que o sinal de clock SMCLK do MSP430 está operando a 1 MHz. (1,25 pontos) 8. Desenhe o hardware para controlar dois semáforos utilizando charlieplexing. Apresente os nomes dos pinos do MSP430 e indique os LEDs pelos nomes Vermelho1, Amarelo1, Verde1, Vermelho2, Amarelo2 e Verde2. (1,25 pontos) 9. Defina a função void EscreveDigito ( volatile char dig ); que escreve um dos dígitos 0x0-0xF em um único display de 7 segmentos via porta P1, baseado na figura abaixo. Considere que em outra parte do código os pinos P1.0-P1.6 já foram configurados para corresponderem aos LEDs A-G, e que estes LEDs possuem resistores externos para limitar a corrente. (2,5 pontos) 1

Transcript of Exercícios MSP430.pdf

Page 1: Exercícios MSP430.pdf

MSP4301. Defina a função void Atraso(volatile unsigned int x); que fornece um atraso de 'x' milissegundos. Utilize o Timer_A para a contagem de tempo, e assuma que o SMCLK já foi configurado para funcionar a 1 MHz. Esta função poderá ser utilizada diretamente nas outras questões desta prova. (2,5 pontos)

2. Desenhe o hardware utilizado para controlar 6 LEDs utilizando charlieplexing. Apresente os pinos utilizados no MSP430 e os LEDs, nomeados L1-L6. (1,25 pontos)

3. Defina a função void main(void){} para controlar 6 LEDs de uma árvore de natal usando o hardware da questão anterior. Considere que os LEDs são nomeados L1-L6, e que cada LED Lx deverá acender separadamente por x*300ms. Por exemplo, L1 fica aceso por 300ms, depois L2 por 600ms, L3 por 900ms, e assim por diante. (2,5 pontos)

4. Defina a função void paralelo_para_serial(void); que lê o byte de entrada via porta P1 e transmite os bits serialmente via pino P2.0. Comece com um bit em nivel alto, depois os bits na ordem P1.0 - P1.1 - … - P1.7 e termine com um bit em nível baixo. Considere um período de 1 ms entre os bits. (2,5 pontos)

5. Desenhe o hardware necessário para o MSP430 controlar via P1.0 um motor DC de 12V e 4A. Utilize transistores bipolares de junção (TBJ) com Vbe = 0,7 V, beta = 100 e Vce(saturação) = 0,2 V. Além disso, considere que Vcc = 3 V para o MSP430, e que este não pode fornecer mais do que 10 mA por porta digital. (1,25 pontos)

6. Desenhe o hardware necessário para o MSP430 controlar via pino P1.6 um motor DC de 10V e 1,5A. Utilize transistores bipolares de junção (TBJ) com Vbe = 0,7 V e beta = 120. Além disso, considere que Vcc = 3,5 V para o MSP430, e que este não pode fornecer mais do que 10 mA por porta digital. (2,5 pontos)

7. Defina a função void ConfigPWM(volatile unsigned int freqs, volatile unsigned char ciclo_de_trabalho); para configurar e ligar o Timer_A em modo de comparação, a fim de controlar o motor DC da questão anterior. Considere que o pino P1.6 já foi anteriormente configurado como saída do canal 1 de comparação do Timer_A, que somente os valores {100, 200, 300, …, 1000} Hz são válidos para a frequência, que somente os valores {0, 25, 50, 75, 100} % são válidos para o ciclo de trabalho, e que o sinal de clock SMCLK do MSP430 está operando a 1 MHz. (1,25 pontos)

8. Desenhe o hardware para controlar dois semáforos utilizando charlieplexing. Apresente os nomes dos pinos do MSP430 e indique os LEDs pelos nomes Vermelho1, Amarelo1, Verde1, Vermelho2, Amarelo2 e Verde2. (1,25 pontos)

9. Defina a função void EscreveDigito(volatile char dig); que escreve um dos dígitos 0x0-0xF em um único display de 7 segmentos via porta P1, baseado na figura abaixo. Considere que em outra parte do código os pinos P1.0-P1.6 já foram configurados para corresponderem aos LEDs A-G, e que estes LEDs possuem resistores externos para limitar a corrente. (2,5 pontos)

1

Page 2: Exercícios MSP430.pdf

10. Faça o programa completo que lê um byte de entrada serialmente via pino P2.0 e transmite este byte via porta P1. O sinal serial começa com um bit em nivel alto, depois os bits na ordem 0-7 e termina com um bit em nível baixo. Os pinos P1.0-P1.7 deverão corresponder aos bits 0-7, respectivamente. Considere um período de 1 ms entre os bits. (2,5 pontos)

2

Page 3: Exercícios MSP430.pdf

Registradores do MSP430

Reg. Uso Exemplo

PxDIRDefine se o pino correspondente ao bit será de entrada (bit = 0) ou de

saída (bit = 1).

Se PxDIR = 0xF,os pinos Px.0-Px.3 são definidos como saída,

e Px.4-Px.7 são definidos como entrada.

PxREN Habilita o resistor de pull-up/down correspondente ao bit.

Se PxREN = 0xF, somente os resistores de pull-up/ldown nos pinos Px.0-Px.3 são habilitados.

PxOUT Escreve o valor no pino de saída correspondente ao bit.

Se PxOUT = 0xF, os pinos Px.0-Px.3 são levados para nível alto, e Px.4-Px.7 são levados para nível baixo.

PxOUTDefine se o resistor correspondente ao bit será de pull-up (bit = 1) ou de

pull-down (bit = 0).

Se PxREN = 0xFF e PxOUT = 0xF,os pinos Px.0-Px.3 terão resistores de pull-up,

e Px.4-Px.7 terão resistores de pull-down.

PxIN Reflete o valor do pino de entrada correspondente ao bit.

Se PxIN = 0xF, os pinos Px.0-Px.3 estãoem nível alto, e Px.4-Px.7 estão em nível baixo.

3

Page 4: Exercícios MSP430.pdf

4