Você está na página 1de 2

UNIVERSIDADE 

TECNOLÓGICA FEDERAL DO PARANÁ 
DEPARTAMENTO ACADÊMICO DE ELETRÔNICA 
CURSO TÉCNICO DE NÍVEL MÉDIO INTEGRADO – ELETRÔNICA 
DISCIPLINA DE MICROCONTROLADORES 2 (EL08D) 
PROFESSOR GABRIEL KOVALHUK 
 
Lista de exercícios de linguagem C para microcontroladores 
 
Observações:  1.  Para  esta  lista  de  exercícios  não  é permitido o uso das bibliotecas, ou seja não é 
possível usar funções como printf e sprintf. 
2.  Escreva os programa usando a função main apenas para chamar as funções que 
executam o que foi pedido nos exercícios. 
3.  Estes  exercícios  não  valem  nota,  mas  geram  uma  base   de  conhecimento  que  
será   usada  nas  Atividades  Práticas  e  poderão  ser  usadas  no  projeto  final,  que 
valem nota. 
 
1. Escreva  um  programa  em  linguagem  C  para  fazer   a  conversão  de  temperatura  em  graus 
Celsius  para  Farenheit.  A  conversão  deve  ser  feita  em  uma  função  separada,  onde  o  valor 
da  temperatura  em  graus  Celsius  deve  ser   passada  como  parâmetro  e  a  função  retorna  o 
valor da temperatura em Farenheit. 
 
2. Escreva  uma  função  em C que receba como  parâmetro um valor inteiro e  retorne uma string 
representando o valor inteiro. 
 
3. Escreva uma  função  em  C  que  receba  como  parâmetro  um  valor  tipo  float  e  retorne  uma 
string representando o valor tipo float. 
 
4. Escreva  uma  função  em  C  que  receba  como  parâmetro  uma  string  representando um  valor 
inteiro e retorne um valor inteiro. 
 
5. Assumindo   que  o  PORT_1  do  MSP430  está  configurado  como  saída  digital  e  sabendo­se 
que  o valor presente em cada  pino e dado pelo conteúdo do registrador P1OUT, escreva um 
programa  em  linguagem  C que faça com que os pinos do PORT_1 sejam  ativados (em nível 
1) sequencialmente. 
Observação:  no  MSP430  nao  é  possivel  escrever  valores  individuais  no  bits  dos 
registradores.  Para  se  fazer  isto  é  necessário  usar  máscaras.  Por  exemplo:  para  escrever 
um  valor  “1”  no  pino  P1.3,  sem  alterar  o  valor  dos  demais  pinos  usa­se  a  seguinte  linha  de 
código: 
P1OUT |= 0x08;​
 ou ​
P1OUT |= BIT3; 
onde BIT3 é uma constante definida em “io430.h” e em “msp430g2553.h” 
 
6. Assumindo  que  o  PORT_1  do  MSP430  está  configurado  como  entrada  digital,  com   resistor 
de  pull­up  e  sabendo­se  que  o  valor  presente  em  cada  pino  e  lido  através  do  registrador 
P1IN,  escreva  um programa em linguagem C que gere um valor  inteiro entre 0 e 7 indicando 
o  pino ativo de maior valor  (tipo um codificador com prioridade). Assuma que  o pino P1.0  é o 
pino de menor valor e o pino P1.7 e o pino de maior valor. 
 
7. Um conversor AD  de  8  bits  apresenta  valores  entre  0  e  255  para   uma  faixa  de  tensão  de 
entrada  entre  0  e  3,3v.  Um  sistema  deve  gerar  um  sinal  PWM  com  frequência  de  20Hz,  
onde  o  tempo  em  alto  deve  variar  na  faixa  de  10ms  a  35ms  proporcionalmente  ao  valor da 
tensão  de  entrada.  Assim,  quando  a  tensão  de  entrada  for  0v  o  tempo  em  alto  do  PWM 
deverá  ser  de  10ms  e  quando  a   tensão   de  entrada   for  de  3,3v  o  tempo   em  alto   do  PWM 
deverá  ser  de  35ms.  Assumindo  que  o  tempo  em  alto  do   PWM  é  armazenado  em  uma 
variável   com  o  valor  em  ms  (um  tempo  de  10ms  é  simplesmente  10  na  variável),  escreva 
uma função que faça a conversão do valor do ADC para o valor do PWM. 
 
8. O  conversor  AD  obtém  um  valor  entre  0   e  1023  representando  uma  tensão  entre  0  e  3,3v. 
Sabendo­se  que  esta  tensão é obtida de um resistor de 10 ohms,  escreva uma função em C 
para  converter  o  valor  obtido pelo conversor AD em uma string contendo o valor da corrente 
que passa pelo resistor. 
 
 
 
 
Bom trabalho! 

Você também pode gostar