Potenciometro + 8051 - ASM

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

Mensagempor mamga » 04 Jan 2007 16:43

Legal Galera, muito obrigado a todos que me ajudaram até agora... vou perder um tempinho agora com o software e logo volto para falar sobre os resultados... ou para tirar novas duvidas ehehe...

vlw mesmo...
mamga
Nibble
 
Mensagens: 74
Registrado em: 28 Dez 2006 13:04

Mensagempor rubenprom » 08 Mar 2007 18:49

Estava acompanhando este topico, mas reparei que foi usada a linguagem assembler na programação. Alguem ja fez em C?

Mais uma duvida, pelo que postou pomboeletronic vi que usa duas portas do 8051, a porta P0 para ler os dados no LCD e a porta P2 para adquirir o dado do ADC0808(ou ADC0809). Haveria problemas (em questao de software e hardware)se o LCD e o ADC0809 estivesem endereçados na mesma porta??como neste link que ja foi citado:
http://www.edaboard.com/ftopic208799.html

Ruben
rubenprom
Byte
 
Mensagens: 222
Registrado em: 16 Out 2006 00:23
Localização: Porto Alegre - RS

Mensagempor brasilma » 08 Mar 2007 20:25

Não há problema nenhum, desde que usem sinais de controle diferentes.

Num projeto, conectei LCD, teclado, AD tudo no mesmo port.
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor rubenprom » 08 Mar 2007 22:05

Valeu Brasilma!!!

tou montando um projetinho com ADC0808, e agora que me deu essa dica, vou tentar implementar um teclado tb, mas isso é pedir demais!
rubenprom
Byte
 
Mensagens: 222
Registrado em: 16 Out 2006 00:23
Localização: Porto Alegre - RS

Mensagempor Wagner de Queiroz » 09 Mar 2007 08:58

Carma Rapaz !

Procura na internet. Ja tem alguns sites com exemplos para interfacear o 8051 com teclado de PC.

http://www.ee.pucrs.br/~stemmer/proc/exercicio3.html
http://www.computersciencelab.com/8051E ... rogram.htm

boa sorte na pescaria.
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor rubenprom » 09 Mar 2007 11:14

Valeu,
Tou achando que colocar AD, LCD Teclado numa mesma porta vai dar "serios probremas"!. Assim que optei apenas por colocar o LCD e o AD.
Valeu pela dica Wagner, ainda tou na empreitada, o datasheet do ADC0808 tou achando meio confuso, minha duvida é, na hora de adquirir o sinal, devo setar o START e colocar em nivel baixo o OE, por 3 milisegundos e depois Desabilitar o STAR e setar o OE?. Isso acontece na borda de descida do clock ne?

Por favor me corrigam se tou muito errado, mas foi o que entendi


Ruben
rubenprom
Byte
 
Mensagens: 222
Registrado em: 16 Out 2006 00:23
Localização: Porto Alegre - RS

Mensagempor pomboeletronic » 12 Mar 2007 09:32

;--------------------------------------INICIO DO PROGRAMA--------------------------------------------------
ORG 0
ljmp principal ; este é o inicio do programa

org 0bh ;Vetor da int do timer0
ljmp clock_AD

principal:
mov p2,#11111111b ;colaca a p2 em 1 pra proteger o AD
clr AD_ALE ;desliga o ALE e o Start
clr AD_CLK ;limpa o clock do AD
SETB AD_OE ;desabilita as saida do AD


mov ie,#10000010B ;TIMER0 (ET0) pode pedir interrupcao.
mov ip,#2 ;TIMER0 max prioridade
mov TMOD,#01h ;programoTMOD,TIMER0,para modo 1
;Isto e',TMOD=0000 0001,ou M1=0,M0=1
;e ainda contagem interna,pois C/T=0
mov TH0,#high(65535-20) ;Ao inves de fazer as contas na
;mao,deixo o compilador fazer
;para mim.
mov TL0,#low(65535-20) ;Nestas duas instrucoes eu carreguei
;a parte alta do numero 45535 em THigh
;e a parte baixa em TLow,criando um
;contador de 16 bits que contara' de
;45535 ate' 65535,dando o total de
;20000 contagens
setb TR0 ;Ligo o timer 0


setb AD_ALE ; start converter (SET both SC and ALE)
lcall delay1ms
lcall delay1ms
lcall delay1ms
clr AD_ALE
START_CLK:

jnb AD_EOC,START_CLK;espera fin de conversao

mov a,conv_port;move o valor da convrsao para o Acc,deve ser convertido para asci para ser enviado para o display...

;utiluzei o tiner para gerar o clock


clock_ad:
clr tr0 ;Desliga timer 0
cpl AD_CLK
mov th0,#high(65535);Inicializa TH0 com parte alta
mov tl0,#low(65535);Inicializa TL0 com parte baixa
setb tr0 ;Liga timer 0
reti
"Nós nos transformamos naquilo que praticamos com frequência.
A perfeição,portanto, não é um ato isolado. É um hábito".
Aristóteles
Avatar do usuário
pomboeletronic
Nibble
 
Mensagens: 67
Registrado em: 04 Dez 2006 14:44

Mensagempor rubenprom » 12 Mar 2007 10:20

Valeu, vou colocar no meu programa esse exemplo posto aqui, eu fiz uns teste apenas colocando LEDs na saida do ADC0808, pelo que teste, aparentemente esta tudo ok. Agora quero que o 8051 leia esses dados,
acho que vai dar certo. Uma duvida mais, deveria colocar tipo um buffer na saida do AD e na entrada da porta do 8051? para garantir a chegada dos dados até a porta???
rubenprom
Byte
 
Mensagens: 222
Registrado em: 16 Out 2006 00:23
Localização: Porto Alegre - RS

Mensagempor rubenprom » 12 Mar 2007 10:38

Tudo bem pomboeletronci

Poderia me explcar melhor como usou essa parte do Timer para ativar o Clock??
rubenprom
Byte
 
Mensagens: 222
Registrado em: 16 Out 2006 00:23
Localização: Porto Alegre - RS

Mensagempor pomboeletronic » 13 Mar 2007 19:44

ORG 0
ljmp principal ; este é o inicio do programa

org 0bh ;Vetor da int do timer0 toda vez que o timer estourar a contagem ele é interrompido e vai para a rotina clock_ad: onde cpl AD_CLK, a cada vez que o timer estoura ele inverte o sinal AD_CLK que é uma porta do uc ligada ao clock do adc0809
ljmp clock_AD


clock_ad:
clr tr0 ;Desliga timer 0
cpl AD_CLK
mov th0,#high(65535);Inicializa TH0 com parte alta
mov tl0,#low(65535);Inicializa TL0 com parte baixa
setb tr0 ;Liga timer 0
reti
"Nós nos transformamos naquilo que praticamos com frequência.
A perfeição,portanto, não é um ato isolado. É um hábito".
Aristóteles
Avatar do usuário
pomboeletronic
Nibble
 
Mensagens: 67
Registrado em: 04 Dez 2006 14:44

Mensagempor rubenprom » 15 Mar 2007 12:57

Valeu Alan, entendi agora!!,

tenho visto outros tutoriais onde para o clock do ADC utilizam um 555 e alguns resistores, e outro onde se utiliza um7404(NOT) onde se utiliza as portas de este para gerar tb o clock.

mas é uma otima ideia controlar com qq pino do uC, ja que assim evita-se o trabalho de implementar mais um CI e componentes na placa!

Ruben
rubenprom
Byte
 
Mensagens: 222
Registrado em: 16 Out 2006 00:23
Localização: Porto Alegre - RS

Anterior

Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x