O BASIC Stamp© possui 8 pinos de l/O que são programáveis tanto para entrada como para saída. No artigo do Mini Terminal (veja artigos anteriores da série) mostramos como podemos utilizar um pino como saída para acionamento do LCD e o mesmo pino como entrada para leitura de uma chave. Com essa técnica conseguimos fazer o BASIC Stamp© ter 7 saídas e 7 entradas. Observe a Fig. 1, o pino de I/O 7 é utilizado para gerar o “clock” do “Latch” do CI 74LS273 e os pinos de l/O de O a 6 são utilizados para dados do “Latch” e para ler as chaves SWO a SW1.

Outra técnica que podemos utilizar para não ficar limitado ao número de entradas ou saídas é a que utiliza “Shift Registers”. Nesse artigo utilizaremos o MM74HC595 e MM74HC597 da National como exemplos de “Shift Reg/stars”, mas nada impede que o leitor escolha outros fabricantes, ou modelos de “Shift Registers”. As informações desses componentes que veremos a seguir foram obtidas através da internet na “Home Page” da National que tem como endereço: www.national.com.

 


 

 

 

Na fig. 2 temos a tabela verdade de cada CI e seu respectivo “pin-out”.

 


 

 

 

Funcionamento do MM74HC595

O MM74HC595 e' um “Shift Register” do tipo “Serial in Parallel out” de 8 bits com “Latch” na saída, ou seja, recebe dados serialmente e os transfere paralelamente.

Basicamente ele funciona recebendo os dados serialmente através do pino SER (1 4) que são armazenados nos “FIip-F/ops” de entrada quando o nível lógico do pino SCK (1 1) muda de BAIXO (zero) para ALTO (um).

Após 8 operações iguais a descrita acima, um Byte (8 bits) é transferido aos 8 “Flip-Flops" de entrada (Ver fig. 3). Quando o nível lógico do pino RCK (12) muda de BAIXO (zero) para ALTO os dados dos 8 “Flip-Flops” de entrada são Armazenados nos 8 “Flip-Flops" de saída em uma única Operação.

O pino SCLR (10) quando em nível lógico BAIXO (zero), limpa todos os “Flip-Flops" de entrada.

O pino G (13) habilita os “Drivers" “Tri- State" da saída (OA a OH).

O pino O'H é utilizado para fazer cascata de mais de um “Shift-Register”, com isso conseguimos aumentar o número de saídas sem mudar os sinais de controle descrito acima. No exemplo que veremos mais adiante, utilizamos dois MM74HC595 para gerar 16 Bits de saída.

 

Funcionamento do MM74HC597

O MM74HC597 é um “Shift Register” do tipo “Parallel in – Serial out' de 8 bits com “Latch” na entrada.

Ele tem o funcionamento reverso do MM74HC595. Na fig. 4 observamos o diagrama lógico do MM74HC597. Quando o nível lógico do Pino RCK (12) muda de BAIXO (zero) para ALTO (um) os dados dos pinos A à H são armazenados nos “Flip-Flops” de entrada. Colocando-se um nível lógico BAIXO (zero) no pino SLOAD (13) os dados dos “Flip-Flops” de entrada são armazenados nos “Flip-Flops" de saída. A cada sinal de “Clock" ( mudança de nível BAIXO (zero) para nível ALTO (um) gerado no pino SCK (11) um dado é transferido para o pino OH (9), após 8 operações, transferimos serialmente o “Byte" (8 bits) da entrada

O pino SLCR (10) limpa as saídas dos “Flip-Flops" da saída quando recebe um sinal de nível BAIXO (zero).

O pino SER (14) é utilizado para fazer cascata de mais de um MM74HC597, como no MM74HC595, sem alterar o número das linhas de controle, podemos aumentar o número de entradas, bastando colocar mais MM74HC597 em cascata.

 

Usando o MM74HC595 e MM74HC597 em conjunto com o BASIC Stamp®

O Esquema simplificado (fig. 5) ilustra uma conexão de dois MM74HC595 e dois MM74HC597 com o BASIC Stamp®. No total são utilizados 5 pinos de I/O para gerar 16 pinos de saída e 16 pinos de entrada. O pino P0 do BASIC Stamp® é a saída de dados seriais e o pino P4 é a entrada de dados seriais. Os demais pinos utilizados são para controle dos “Shif Registers”. O Software abaixo ilustra como é feira a leitura e gravação do pinos de entrada e saída. O programa principal inicialmente zera as saídas e entra em um loop de escrita na saídas dos dados lidos nas entradas.

Observar no esquema que a linha RCK e SCK é a mesma nos dois tipos de “Shift Registers", portanto para não gerar erros nas saídas sempre devemos gerar uma saída antes de fazer uma leitura, se fizermos duas leituras consecutivas iremos introduzir um erro nas saídas porque será feita uma sequência de saída sem que os dados estejam preparados. O leitor poderá modificar o programa para que se faça as duas operações simultâneas, evitanto assim esse inconveniente. A opção de se mostrar as rotinas separadas foi para que o leitor se visualiza mais claramente o funcionamento de cada “Shift Register”.

 

Nota: na época em que o artigo foi escrito o Software estava disponível em site indicado;