Estou lendo o livro do Wagner Zanco - Tecnicas de Soft. e Hard. para projetos de ckt eletronicos - PIC16F877A e programando em C com o MikroC (seguindo o material da microgenios) e simulando no proteus.
Pesquisei bastante aqui no fórum sobre programação para display 7seg multiplexado, e até entendi um pouco.
O que eu não consigo é programar o timer pra estouro entre 4 ms e 8 ms.
Alguém pode me mostar onde estou errando? O código é esse aqui:
- Código: Selecionar todos
unsigned int disp;
unsigned short i;
unsigned short mask(unsigned short num)
{
switch(num)
{
case 0 : return 0x3f;
break;
case 1 : return 0x06;
break;
case 2 : return 0x5b;
break;
case 3 : return 0x4f;
break;
case 4 : return 0x66;
break;
case 5 : return 0x6d;
break;
case 6 : return 0x7d;
break;
case 7 : return 0x07;
break;
case 8 : return 0x7f;
break;
case 9 : return 0x6f;
break;
}
}
void interrup(void)
{
if(intcon.tmr0if==1)
{
disp ++;
portb=0x01;
TMR0L=250;
intcon.tmr0if=0;
intcon.giel=0;
portb=0x00;
}
}
void main()
{
T0CON=0xc0;
TMR0L=250;
intcon=0x20;
intcon.tmr0if=0;
adcon1=0x00;
intcon=0x00;
portc=0x00;
trisc=0x00;
trisa=0x00;
trisb=0x00;
do
{
for(i=0; i<=9; i++)
{
portc = mask(i);
delay_ms(500);
if(disp==1) porta=0x01;
if(disp==2) porta=0x02;
if(disp==3) porta=0x04;
if(disp==4)
{
porta=0x08;
disp=0;
}
}}while(1);
}
e o ckt do proteus é esse:
http://rapidshare.com/files/281849048/7seg.rar
O programa é um contador de 0 a 9 que deve mostrar a contagem em todos os displays ao mesmo tempo.
Valeu.