O lance é o seguinte, no último post sobre msp430, agente acionou uma sequência de LEDs com o microcontrolador mspg2231. Agora, com poucas modificações no código anterior, vamos contar de 0 a 9, apresentando a contagem em um display de sete seguimentos.
Um display de sete seguimentos, nada mais é do que um conjunto de LEDs.
Este conjunto de LEDs pode estar arranjado de duas formas, ou com o ânodo comum, ou com o cátodo comum, você tem que verificar a forma que os LEDs do seu display está arranjada antes de elaborar o seu circuito.
Para a minha montagem, vou usar um display que meu concunhado me deu ( muito obrigao 😀 ). Olha a foto dele ae.
Como ele tá novinho, bem legível a referência, nem nem fiz nenhum teste, baixei logo o datasheet na internet e constatei que ele é do tipo cátodo comum.
Então olha ae o esquema elétrico da minha ligação como ficou:
Agora vamos ao código:
#include
void Delay(void);
int main(void) {
WDTCTL = WDTPW | WDTHOLD;
char bcd[10] = {0x3f, 0x6, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x7, 0x7f, 0x6f};
volatile int i = 0;
P1DIR = 0xff;
for (;;) {
P1OUT = bcd[i];
i++;
Delay();
Delay();
if(i==10) i=0;
}
}
void Delay(void) {
unsigned int dly = 30000;
while(--dly); {
// Nothing:D
}
}
Podemos reparar que o código é quase o mesmo do post sobre o acionamento de uma sequência de LEDs, temos apenas duas diferênças. Uma que a nossa coleção de caracteres, agora chamada bcd, tem apenas 10 valores e a outra é que na linha 17 usamos o valor 10 em um if para informar o programa que devemos reiniciar a variável i.
Para demonstrar que o código percorre o conjunto de caracteres, e coloca um valor de cada vez na porta, que cada pino dessa porta está ligada de uma forma específica à um ânodo do display de sete seguimentos, fiz um gif animado demonstrando o que acontece quando o código está em execução.
E para finalizar, um vídeo na vida real 😀
Abraços, até a próxima.



Muito bom, vlw!!!