Vous êtes sur la page 1sur 3

SOFTWARE

O Software foi implementado em linguagem C para MSP430 com o compilador GCCMSP.


O cdigo inicia-se com incluso das bibliotecas msp430g2553.h, especfica do
micro controlador utilizado e legacymsp430.h, para uso de interrupes, ento atribui-se
nomes de maior abstrao s mscaras dos pinos de entrada e sada.
As funes auxiliares foram utilizadas a fim facilitarem a execuo da funo
principal main e as funes de interrupes.
-A funo main para o watchdog timer, configura o Master clock e o System
Master clocko para a frequncia de um mega Hertz, define os pinos como entrada ou
sada, inicializa os pinos, habilita e configura a interrupo pelo boto, configura o Timer
A0 para gerar interrupo a cada 2,5 milisegundos, habilita as interrupes mascarveis e
possui um lao for infinito definido como o loop principal. O loop principal chama a funo
que escreve nos displays os dgitos correspondentes a centsimos de segundo, dezenas
de segundo, unidades de segundo e dcimo de segundo (definidos como argumento
dessa funo junto com o nmero do display) consecutivamente atravs do decremento
de uma varivel sel e um switch case que testa essa varivel.
Figura - funo main

-A funo MOSTRAR(volatile int numero, volatile int display) escreve o nmero no


display de sete segmentos e habilita o pino de catodo comum do respectivo display.
Recebe como argumento de entrada os valores de centenas, dezenas, unidades e
dcimos de segundo e o pino que habilita o catodo comum correspondente.
Essa funo inicia-se zerando todos os pinos que habilitam o catodo comum,
apagando o display, e ento seta o pino do catodo comum apontado pela varivel display
carregada com o argumento de entrada. Um switch case testa a varivel numero e seta
os pinos correspondentes ao nmero do display de sete segmento.
Funes de interrupes:
-A funo INTERRUPCAO_TIMERA0(void) executada quando o TIMER A0
chega a 2500 contagens de um micro segundo e gera uma interrupo que a chama.
Essa funo incrementa os centsimos de segundo a cada quatro vezes que
executada, atravs de um lao for, ou seja, a cada 4x2,5ms=1 centsimo de segundo
incrementado.
Um conjunto de testes condicionais if controlam as variveis de centena, dezena,
unidade e dcimo de segundo para que as mesmas sejam zeradas e incrementadas na
faixa de 0 a 9 utilizando o centsimo de segundo como base de tempo.
A frequncia na qual os displays so acionados controlada nessa funo
tambm. Por serem quatro displays, o perodo de acionamento de cada em uma
frequncia de um Hertz deve ser de 0,25 segundos, e por isso, um contador que
decrementado cem vezes, uma vez a cada execuo da funo de interrupo,
estabelece tal perodo quando a varivel freq, que altera a frequncia, 1. Quando a
varivel freq 100, ou seja, a frequncia de apresentao dos display deve ser de cem
Hertz, no h contador, pois o perodo de acionamento de cada display o mesmo que o

perodo de chamada da funo de interrupo do TIMER A0, e por isso alterado o


display a ser acionado a cada chamada da funo.
A flag de interrupo do TIMER A zerada e a funo retorna main.
-A funo de interrupo, chamada pelo acionamento do boto BTN,
muda_freq(void) altera a frequncia de acionamento dos displays alterando o valor da
varivel freq. Essa funo verifica o valor da varivel freq e altera pra 1 se for 100 ou pra
100 se for 1.

HARDWARE
MATERIAL:
1 - MSP430 LaunchPad (Micro controlador M430G2553)
2 - Conectores PBC fmeas 10 pinos
1 Display Numrico 5x1 - GYXS-2511CG
4- Transistores TIP 122
7 - Resistores 220 Ohm
4 - Resistor 1k Ohm
O hardware foi implementado utilizando o conector PBC com fios para conexao com a
protoboard.
O boto (push-botton) s2 do LaunchPad, que ligado ao pino P1.3, foi utilizado para
chamar a interrupo que altera a frequncia dos displays. Inicialmente o valor no respectivo pino
de nvel lgico 1, e nvel lgico 0 quando o boto for pressionado. Utilizou-se o resistor de pull-up
interno ao MSP430.
O display numrico 5x1 utilizado tem conexes internas conforme mostrado na figura,
apenas 4 displays foram utilizados.

Como cada pino do MSP430 pode fornecer at 6 mA, um resistor limitador foi conectado
em srie a cada segmento do display adotando o valor de corrente mxima por pino como parmetro
para dimensionamento. Como pela lei de Ohm R= V/I e o valor de queda de tenso Vd do display
2,2 Volts :

=
Por no possuir resistor comercial com esse valor de resistncia, utilizou-se resistores de 220
Ohm 5%.
Para os pinos que acionam o catodo comum dos displays utilizou-se trasistores NPN de
acoplamento Darlington por possuir um alto ganho. Experimentalmente ,definiu-se Rb, que limita a
corrente do pino ligado na base do transistor em 1kOhm, resultando em uma corrente de 1mA.

FREQUNCIA 100Hz

FREQUNCIA 1 Hz