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!!!
Pingback: Uso básico de interrupções com MSP430 e mspgcc | Terry Laundos (terryvel)