Sunteți pe pagina 1din 4

CONTROLE PARA DISPLAY

DE 7 DÍGITOS
Alfonso Pérez

os valores (dados) que vão aparecer


Em algumas aplicações eletrônicas, tais como instrumentos de em cada um. Para o controle da con-
rádiofrequência digitais, contadores industriais, cronômetros, etc é tagem ascendente nos displays é uti-
lizada a linha INC e para a contagem
preciso mostrar vários dígitos numéricos. Este tipo de circuito faz descendente é usada a linha DEC. A
uso da multiplexação para obter um conjunto de integrados e pi- linha CLEAR zera todos os dígitos.
nos no microcontrolador que faz a varredura sobre o display. Nes- A contagem ascendente/descen-
dente é realizada com as bordas ne-
te artigo mostraremos como implementar um controle para um
gativas do sinal que entra pela linha
display de 7 dígitos. INC ou DEC. Para colocar todos os
dígitos em zero, deve ser produzida
A maioria dos circuitos que preci- Para mostrar como se implementa uma borda negativa sobre a linha
sa controlar um display de vários dígi- este tipo de circuitos na prática toma- CLEAR. Ao ligar o circuito, todos os
tos utiliza a varredura e a multiple- remos como exemplo um contador as- dígitos aparecem como zero.
xação de modo a diminuir os custos e cendente/descendente de 7 dígitos A porta F está configurada como
a quantidade de componentes empre- manuseados por um microcontrolador. entrada por programa para poder re-
gados na placa de circuito impresso. ceber os sinais de controle do display.
Apesar de existirem circuitos dedica- O pino F0 recebe a linha CLEAR, o
dos para realizar essa tarefa, pode-se FUNCIONAMENTO pino F1 recebe a linha DEC e o pino
obter um benefício maior com a utili- F2 recebe a linha INC.
zação de um microcontrolador para No caso deste circuito contador O pino F3 pode ser usado da mes-
realizar a multiplexação. ascendente/descendente é necessá- ma maneira que o pino 2, ou seja,
A multiplexação originou muitos rio controlar 7 displays multiplexando pode incrementar os contadores. Os
algorítmos de programação para o
controle de sinais, alguns dos quais
já estão padronizados, principalmen-
te na área de comunicações.
Ela se baseia no fato de se poder
controlar vários componentes ou dis-
positivos eletrônicos utilizando os
mesmos condutores físicos para a
comunicação.
Isso significa que somente um
componente pode estar conectado em
um determinado instante, enquanto
que os demais devem permanecer
desligados.
Para selecionar o componente que
vai receber os sinais são utilizadas var-
reduras sincronizadas que, na maio-
ria dos casos, são de alta velocidade.

36 SABER ELETRÔNICA Nº 332/SETEMBRO/2000


sinais para ativar estas linhas (CLEAR/ e,f,g) estão unidos nos 7 displays. Os manter essa informação por um curto
DEC/INC) podem vir de algum sensor, catodos dos displays são controlados intervalo de tempo.
interruptor ou circuito lógico TTL ou pela porta D devido ao fato de que ela Terminada a temporização, é se-
CMOS, e o programa se encarrega de entrega 15 mA no modo sink. lecionado o dígito 2 através de Q2 e
eliminar as fontes de ruído que pos- Essa porta no microcontrolador é colocado seu valor na porta D, ativan-
sam vir com estes sinais. dedicada unicamente como saída e do novamente a temporização.
por esse motivo não precisa ser confi- Assim, continua o mesmo proces-
gurada no programa. so com os sete dígitos.
CIRCUITO Os anodos dos displays são Quando o dígito 7 é ativado atra-
multiplexados pela porta L através dos vés de Q7 a varredura é completada.
Os 7 displays são controlados e transistores Q1 a Q7. A porta L pode É necessário repetir o processo ante-
multiplexados por um microcontro- ser configurada como entrada/saída, rior (varredura) várias vezes por se-
lador COP8SGR740 em conjunto com e por isso é preciso fazer isso por pro- gundo para obter uma visualização
um cristal de 10 MHz para maior pre- grama. correta no display.
cisão de varredura. O manuseio eletrônico da informa- Para que a retina não perceba
Os displays usados são de anodo ção (números) que aparece em cada tremulações, é necessário que a var-
comum e podem ser utilizados dígito é controlado pelo programa, redura seja de pelo menos umas 30
módulos que já estão conectados in- mantendo-se um sincronismo entre os vezes por segundo.
ternamente para permitir a multiple- dados colocados na porta D e o tran-
xação. No caso deste circuito, usa- sistor que habilita a porta L. Os dados
mos um módulo de 4 displays e mais colocados na por ta D estão PROGRAMA
um módulo de 3 displays de modo a decodificados internamente por pro-
termos 7 displays. grama para controlar diretamente os Uma das partes mais interessan-
Podem ser configurados também displays de 7 segmentos. tes deste tipo de circuito é o progra-
os 7 displays com módulos indepen- A multiplexação começa selecio- ma, pois é a partir dele que se geram
dentes de um só dígito, mas neste nando o dígito 1 (primeiro dígito da todos os sinais de controle e tempo-
caso devem ser interligados todos os direita) por meio do transistor Q1 e rização para a varredura e multiple-
pinos, exceto os que controlam os colocando o dado numérico para o xação dos displays.
anodos. Para simplificar o diagrama display na porta D. Os dados numéricos que apare-
eletrônico assumimos que todos os Depois, é ativada uma temporiza- cem nos displays estão armazenados
catodos de cada segmento (a, b, c, d, ção de uns poucos milissegundos para na RAM do microcontrolador a partir

Figura 2

SABER ELETRÔNICA Nº 332/SETEMBRO/2000 37


CÓDIGO FONTE
do endereço 10H, ocupando 7 posi-
ções de memória.
O programa se encarrega de de- ;*************************************************************************
signar para cada dígito do display uma .incld COP8SGR.inc
posição da RAM. O dado contido no BLOQUEIO = 3
endereço de RAM 10H é mostrado no
.sect registro,reg
dígito 1. O dado em 11H é mostrado PONTEIRO_RAM: .dsb 1
no dígito 2, e assim sucessivamente. REGISTRO: .dsb 1
Os valores contidos nestes endereços CONTROLE: .dsb 1
vão de 0 até 9. FLANG: .dsb 1
Antes de um número poder ser RETARDO: .dsb 1
mostrado no display, é necessário fa- .endsect
.sectcode,rom
zer sua decodificação para 7 segmen-
;*************************************************************************
tos. INICIO:
As sete posições da memória RAM LDPORTGC,#0x10 ;Configura a porta G como entrada exceto
usadas para armazenar os dados for- LDPORTGD,#0x3F ;o pino G4.
mam o contador de 7 dígitos, e são LDPORTFC,#0x00 ;Configura a porta F como entrada.
controladas por um algorítmo simples. LDPORTFD,#0xFF
Para uma melhor explicação tomare- LDPORTLC,#0xFF ;Configura a porta L como saída.
LDPORTLD,#0xFF
mos como exemplo o incremento dos LDPONTEIRO_RAM,#0x10H ;Inicializa variáveis.
contadores (posições 10H até 16H). LDCONTROLE,#01H
Quando o microcontrolador de- JSR RUT_CLEAR
tecta uma borda de descida na linha
de entrada INC, é dada passagem ao RE_INICIO:
bloco do programa que gera os incre- RBIT BLOQUEIO,FLANG ;Libera o bloqueio nos pulsadores.
LDRETARDO,#0xFF ;Prepara-se para evitar o ruído.
mentos.
;================================================================
A primeira coisa que se faz é en- MULTIPLEXAR:
dereçar a posição de RAM 10H para DRSZ REGISTRO ;Temporiza a multiplexação.
incrementá-la. JMP RETAR_1
Depois, o programa testa se o va- REPETIR: LDA,PONTEIRO_RAM ;O endereço do dígito a decodificar
lor é maior que 9. X A,B ;é armazenado no ponteiro B.
Se for, ele coloca um zero nesta LDA,PONTEIRO_RAM ;É incrementado o endereço para
INC A ;o próximo dígito.
posição e o ponteiro passa para o en-
XA,PONTEIRO_RAM
dereço seguinte da RAM (11H) e IFNE A,#0x16H ;Compara se chegou ao último dígito.
incrementa esta posição. Se o valor JMP DECODIFICAR
contido ali é maior que 9, repete o pro- LDPUNTEIRO_RAM,#0x10H ;Inicializa variável da nova varredura.
cedimento anterior. Se o valor é me- LDCONTROLE,#01H
nor que 9 em qualquer das 7 posições JMP REPETIR
da RAM, então sai deste bloco de pro- DECODIFICAR:
LDPORTD,#0xFF ;Apaga o display durante uns
grama. ;microssegundos.
O procedimento para decrementar LDA,[B] ;Decodifica o valor encontrado no
é idêntico, exceto pelo fato de que os ADD A,#L(TABLA) ;acumulador.
valores contidos nestas posições de LAID
RAM são testados quando são meno- X A,PORTD
res que zero e, se for assim, este va- LDA,CONTROLE ;Controla os transistores na porta L.
X A,PORTLD
lor é mudado para 9 e decrementa-se
LDA,CONTROLE ;Realiza a multiplexação.
a posição seguinte. RC
Os algorítmos anteriores tiram van- RLC A
tagem do fato de poder endereçar a X A,CONTROLE
memória RAM de maneira indireta ;================================================================
permitindo reduzir o tamanho do có- RETAR_1: DRSZ RETARDO ;Evita ruído nos pulsadores.
digo gerado nos programas. JMP MULTIPLEXAR
No caso deste microcontrolador
LDRETARDO,#0x40
existem dois registros que podem ser IFEQ PORTFP,#0xFF ;Detecta se algum pulsador foi ativado.
endereçados indiretamente à memó- JMP RE_INICIO
ria RAM, denominados registros X e IFBITBLOQUEIO,FLANG ;Bloqueia o acesso aos pulsadores.
B. Para apontar para uma posição de JMP MULTIPLEXAR
RAM é necessário carregar o valor do SBIT BLOQUEIO,FLANG
endereço em um destes registros e ;================================================================
PULSOS:IFBIT3,PORTFP ;Detecta os pulsos no pino F3.
depois executar as instruções que JMP INCRE
permitam o direcionamento indireto. É

38 SABER ELETRÔNICA Nº 332/SETEMBRO/2000


CÓDIGO FONTE importante notar que algumas instru-
ções permitem especificar um pós-in-
cremento ou pós-decremento para au-
JMP INCREMENT ;Incrementa o display. tomaticamente incrementar ou
;================================================================
INCRE: IFBIT2,PORTFP decrementar o ponteiro para a posi-
JMP DECRE ção seguinte da RAM.
Os números armazenados nas
INCREMENT: posições 10H até 16H estão em for-
LDB,#0x10 ;Este bloco faz a contagem ascendente. mato decimal, ou seja, entre 0 e 9,
por tanto é necessário fazer sua
OUTRO_1:LDA,[B] ;Incrementa as posições de memória RAM,
decodificação para o formato de 7 seg-
INCA ;associadas aos displays.
X A,[B] mentos.
IFNE A,#0x09 Para fazer isso é gerada uma ta-
JMP DECRE bela na memória de programa que
LD[B+],#0x00 contenha os valores para os 7 seg-
mentos, correspondentes a cada nú-
JMP OUTRO_1 mero decimal.
;================================================================
DECRE: IFBIT1,PORTFP
Depois, esta tabela é acessada
JMP CLEAR através da instrução LAID e o número
LDB,#0x10 ;Este bloco faz a contagem descendente. que necessita ser decodificado como
OUTRO_2:LDA,[B] ;Decrementa os endereços associados ao display. índice.
DEC A O resultado é armazenado no acu-
X A,[B] mulador e pode ser enviado para a
porta D.
IFNE A,#0x00
JMP CLEAR Estes programas de contagem
também podem usar os timers do
LD[B+],#0x09 microcontrolador, mas é preciso usar
JMP OUTRO_2 algorítmos para converter dados biná-
;================================================================ rios em decimal e detectar as inter-
CLEAR: IFBIT0,PORTFP ;Detecta se a tecla CLEAR foi pulsada. rupções geradas para incrementar/
JMP TEST
decrementar posições de memória,
JSR RUT_CLEAR analogamente ao procedimento mos-
trado neste programa.
TEST: JMP MULTIPLEXAR ;Continua com a multiplexação. Ao controlar o microcontrolador,
;=============================================================== habilite o oscilador a cristal com a re-
;=============================================================== sistência interna, reset ao ligar, porta
RUT_CLEAR: F e desabilite as demais.
LD0x10,#0 ;Zera o display.
LD0x11,#0
LD0x12,#0
LD0x13,#0 LISTA DE MATERIAIS
LD0x14,#0
LD0x15,#0 SEMICONDUTORES:
LD0x16,#0 CI1 - Microcontrolador COP8SGR740
Q1 a Q7 - Transistor 2N2222 ou
RET equivalente.
;================================================================ DY1 a DY7 - Display de anodo
TABELA: comum.
.BYTE0xC0H ;0 ;Tabela de dados que contém os valores para
.BYTE0xF9H ;1 ;excitar o display de LEDs de 7 segmentos. RESISTORES (1/8 W, 5%):
.BYTE0xA4H ;2 R1 a R7 - 180 Ω
.BYTE0xB0H ;3 R8 a R14- 1 kΩ
.BYTE0x99H ;4
.BYTE0x92H ;5 CAPACITORES:
.BYTE0x82H ;6 C1 e C2 - 33 pF - cerâmico.
.BYTE0xF8H ;7 C3 - 100 nF - cerâmico.
.BYTE0x80H ;8 C4 - 10 µF - eletrolítico.
.BYTE0x90H ;9
.BYTE0xFFH ;A
DIVERSOS:
.BYTE0x86H ;E
.endsect X1 - Cristal de10 MHz.
;================================================================ Matriz de contatos, fios, etc.
.end INICIO

SABER ELETRÔNICA Nº 332/SETEMBRO/2000 39

S-ar putea să vă placă și