por Leomatias » 25 Ago 2010 11:18
Bom dia pessoal!
Estou fazendo um cronômetro simples porém estou com dificuldades de elaborar a escrita nos displays. Estou usando dois displays apenas simulando no Proteus. O programa funciona, conta até 99 mas os dois displays ficam piscando, tentei algumas artimanhas mas sem sucesso. Como não trabalho hÁ muito tempo com PIC, gostaria de pedir se possível um auxílio nesta questão, como fazer os displays contarem sem ficar piscando. o programa segue a seguir... usei interrupção de timer 1 para incrementar as variáveis:
sub procedure interrupt
if testbit(pir1,tmr1if)=1 then
dec(valor)
if valor=0 then
valor=400
end if
if contagem<=9 then
inc(contagem)
end if
if contagem=10 then
contagem=0
inc(contagem2)
end if
if contagem2=10 then
contagem2=0
end if
end if
TMR1H=$0B
TMR1L=$DC
clearbit(pir1,tmr1if)
end sub
main:
TRISA=0
TRISB=0
adcon1=%01111111
valor=400
contagem=0
contagem2=0
TMR1H=$0B
TMR1L=$DC
T1CON=%00110001
INTCON=%11000000
pie1=%00000001
PORTA=0
while (1)
PORTB=converte_7seg(contagem2)
setbit(PORTA,1)
delay_ms(100)
clearbit(PORTA,1)
PORTB=converte_7seg(contagem)
setbit(PORTA,0)
delay_ms(200)
clearbit(Porta,0)
wend
end.
Criei uma função que converte nos caracteres para o display, não coloquei aqui para não ficar muito longo. EStou trabalhando com o pic 18f1320, cristal de 4 Mhz e usando o MikroBasic
Desde já valeu pela atenção!!!