Ir ao conteúdo
  • Cadastre-se

Programar microcontrolador ligando display 7 seg


DU NEGAO

Posts recomendados

eu sou professor em uam escola do senai e sou estudante na universidade federal de lavras.

eu e meus aluno gostariamos de montar um circuito na sala de aula , vamos colocar um botao pulsador em cada uma das 20 cadeiras e quando for acionado vai aparecer no display 7 segmentos o numro do aluno.

montei em sala de aula com dois diplay e dois ci 4511 , conecatava as entradas ABCD do ci no positivo e tihna o munero no display , ate ai tudo bem. tenho aqui um microcontrolador atmel 89 de 40 pinos. com ele eu consigo fazer dessa forma com 20 botões? dêem uma dica pra gente

Link para o comentário
Compartilhar em outros sites

Salve, DU NEGAO.

Sim. Com o 8051 você consegue fazer o que deseja.

Usando os seus 20 botões com entradas, ainda te sobram mais 12 pinos para a lógica dos displays.

Para identificar as chaves, cada pino das chaves deverá ter um resistor de pull-up de 10k, e as chaves comutam as entradas do 8051 para a terra.

[]'s

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
eu sou professor em uam escola do senai e sou estudante na universidade federal de lavras.

eu e meus aluno gostariamos de montar um circuito na sala de aula , vamos colocar um botao pulsador em cada uma das 20 cadeiras e quando for acionado vai aparecer no display 7 segmentos o numro do aluno.

montei em sala de aula com dois diplay e dois ci 4511 , conecatava as entradas ABCD do ci no positivo e tihna o munero no display , ate ai tudo bem. tenho aqui um microcontrolador atmel 89 de 40 pinos. com ele eu consigo fazer dessa forma com 20 botões? dêem uma dica pra gente

Bom, recebi seu e-mail e indiquei este forum. Esse não é o tópico mais adequado para responder sobre o 8051 já que estão tratando de outro assunto e com PIC. Quanto aos 'botões' pode usar 20 entradas como citou o maurício. Quanto ao display, tem duas opções, já que restaram 12 pinos.

1 - Multiplexado - Usar 7 saídas com um ULN2003 para os segmentos dos dois displays, chaveando com mais 2 pinos a dezena e a unidade.

A vantagem aqui é que pode formar qualquer caractere possível nos 7 segmentos.

2 - Usar os dois 4511 , que já tem disponível. neste caso nem precisaria usar os drivers ULN2003. Aqui você leva a vantagem de sair com o número no formato BCD que o 4511 já codifica direto para 7 segmentos.

Ainda sobram outros pinos para se quiser adicionar um 'beep' quando pressionarem um botão.

Para não misturar os assumtos (veja que já ficou confuso), eu pediria que você abrisse um tópico para este fim, daí veremos como fica o programa.

Sugestão em blocos:

8051-DISPLAY-BLOCO.gif

Link para o comentário
Compartilhar em outros sites

Gente... boa tarde...

então muito obrigado pela dica eu tenho aqui um atmel AT89S52 , E TENHO UM GRAVADOR DA BIT 9 DO KIT M8031. VOU TENTAR FAZER EM ASSEMBLY APESAR DE NAO DOMINAR MUITO(CASO EU TENHA DUVIDA POSSO PEDIR SOCORRO AQUI?) vou usar o software RIDE.

quanto a montagem do circuito eu acredito que a solucao 2 proposta pelo colega SOS CHIP e viavel pra mim, pois ja temos aqui na escola os cis,4511 e tambem os meninos ja montaram com esse ci.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Este programa é bem simples em assembly.

Deixa eu te dar só um exemplo de como seria na forma mais simples com os 4511 e o circuito proposto acima.

display equ p3

push_botton1: jb p2.0,push_botton2 ;se botão 1 não pressionado, salta.

....................mov display,#01h ;coloca 01 no display

...................;aqui você coloca mais algo que deve ser feito se push-botton pressionado.

push_botton2: jb p2.1,push_botton3

....................mov display,#02h ;coloca 02 no display

....................;

push_botton3: jb p2.2,push_bottonX

.....................mov display,#03h ;coloca 03 no display

.

.

push_bottonX: jb px.x,push_botton20,fim

fimvarredura: ljmp push_botton1

_____________________________________________

Os pontos nos inicios das linhas é só para preecher os espaços em branco.

É só a ideia principal, mas tem outras formas com menos códigos porém mais difíceis de entender para principiantes em assembly.

Precisando de dica, é só pedir...

Link para o comentário
Compartilhar em outros sites

ola como vai amigo?

então , muito obrigado pelas dicas, como nao sou experiente em assembly, eu havia feito esse programa antes de ler sua resposta , mas , esta dando errado quanto aperto os botões , somente o 5 funciona de uma olhada :

PRINCIPAL:

MOV P3,A

INICIO:

JB P0.1,L2

MOV A,#01H

L2: JB P0.2,L3

MOV A,#02H

L3: JB P0.3,L4

MOV A,#03H

L4: JB P0.4,L5

MOV A,#04H

L5: JB P0.5,PRINCIPAL

MOV A,#05H

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Experimenta isto:

PRINCIPAL:

;eu sempre coloco os ports em 1 para leitura para evitar que o programa leia o ;registro ao invés da porta, quando este registro já está em 0.

mov p0,#255 ; seta todos os bits de entrada.

mov p1,#255

mov p2,#255

INICIO:

VARREDURA:

L1: JB P0.1,L2

MOV A,#01H

ljmp apresenta

L2: JB P0.2,L3

MOV A,#02H

ljmp apresenta

L3: JB P0.3,L4

MOV A,#03H

ljmp apresenta

L4: JB P0.4,L5

MOV A,#04H

ljmp apresenta

L5: JB P0.5,fim_varredura ;

MOV A,#05H

ljmp apresenta

fim_varredura: ljmp PRINCIPAL

apresenta:

mov p3,a

; aqui você lê as portas esperando até que nenhuma chave esteja pressionada.

loop:

mov p0,255

mov a,p0

cjne a,#255,loop

mov p1,255

mov a,p1

cjne a,#255,loop

mov p2,255

mov a,p2

cjne a,#255,loop

ljmp principal

Link para o comentário
Compartilhar em outros sites

Bom dia !!!!!!!

Rapaz funcionou sim , mas eu vou fazer essa modificacao hoje. os menino terao prova e terei tempo defazer aqui no laboratorio logo te dou um retorno.

mas ta ficando legal, agente ja comecou a montar o circuito, no dia da formatura eles trarao os pais para conhecer a escola e por isso estão empolgados.

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Boa noite DU NEGAO, incrivelmente tenho o mesmo problema que você, é o seguinte, posso fazer ao toque de chaves aleatórias aparecer números em um display de 7 segmentos ??

Explicando melhor, se tenho 15 alunos com carteiras numeradas de 01 a 15 e se eles forem terminando provas ou trabalhos acionam o botão referente a sua carteira e em um monitor com o display em minha mesa conseguiria saber quem me chamou sem atrapalhar a concentração dos outros alunos ??

Pode me ajudar é difícil para quem não entende de eletrônica ??

meu email [email protected]

Desde já obrigado no que puder me ajudar e se estou no lugar errado me oriente como proceder, obrigado, Carlos

Link para o comentário
Compartilhar em outros sites

amigo vou ajudar você . aguarde q logo entro em contato

Boa noite DU NEGAO, incrivelmente tenho o mesmo problema que você, é o seguinte, posso fazer ao toque de chaves aleatórias aparecer números em um display de 7 segmentos ??

Explicando melhor, se tenho 15 alunos com carteiras numeradas de 01 a 15 e se eles forem terminando provas ou trabalhos acionam o botão referente a sua carteira e em um monitor com o display em minha mesa conseguiria saber quem me chamou sem atrapalhar a concentração dos outros alunos ??

Pode me ajudar é difícil para quem não entende de eletrônica ??

meu email [email protected]

Desde já obrigado no que puder me ajudar e se estou no lugar errado me oriente como proceder, obrigado, Carlos

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!