Pic16f877A per cubo led
salve mi chiamo Danilo e studio elettronica in un istituto tecnico industriale.
Io voglio programmare un PIC 16f877a per fare dei giochi di luce con un cubo fatto di led.
Il programma e stato fatto in c con MicroC Pro, nella compilazione nn mi dava errori ma quando l'ho collegato al programmatore non eseguiva il programma.
Se mi potete dire dove c'è l'errore lo modifico subito^^
Portb e Portd sono collegati alle colonne del cubo invece Portc e collegata a 4 transistor che comandano i piani del cubo.
Io voglio programmare un PIC 16f877a per fare dei giochi di luce con un cubo fatto di led.
Il programma e stato fatto in c con MicroC Pro, nella compilazione nn mi dava errori ma quando l'ho collegato al programmatore non eseguiva il programma.
Se mi potete dire dove c'è l'errore lo modifico subito^^
- Codice: Seleziona tutto
char z_fila;
char gioco;
void acc_Colonna(){
z_fila=1;
portb=0x01;
for (z_fila>0;z_fila<5;z_fila++){
if(z_fila=4){
portb<<1;}
if(portb=0x80){
portb=0x00, portd=0x01, portd<<1;}
if(portd=0x80){
portb=0xff,portd=0xff;}
}delay_ms(200);
}
void acc_RigheOriz(){
z_fila=1;
portb=0xff;
portd=0xff;
for (z_fila>0;z_fila<5;){
z_fila++;
if (z_fila=4)
--z_fila;
if (z_fila=1);
return;}delay_ms(250);
}
void acc_RigheVert(){
portb=0x11,portd=0x11;
if(portb=0x11,portd=0x11){
portb<<1,portd<<1;}
if(portb=0x88,portd=0x88){
portb>>1,portd>>1;}
return;
delay_ms(250);
}
void acc_Completa(){
portb=0xff,portd=0xff;
if(portb=0xff,portd=0xff)
portb=~portb,portd=~portd;
return ;
delay_ms(100);
}
void Effet_Matrix(){
z_fila=rand()% 3+1;
for (z_fila>0;z_fila<5;z_fila--){
portb=rand()% 255+1,portd=rand()% 255+1;}
delay_ms(100);
return;}
void acc_Casuale(){
z_fila=rand()%3+1;
portb=rand()% 255+1;portd=rand()% 255+1;
return;
delay_ms(50);}
void main() {
portb=0;
trisb=0;
portc=0;
trisc=0;
portd=0;
trisd=0;
switch(z_fila){
case 1:
portc=0x01;
break;
case 2:
portc=0x02;
break;
case 3:
portc=0x04;
break;
case 4:
portc=0x08;
break;
}
switch(gioco){
case 1:
acc_Colonna();
break;
case 2:
acc_RigheOriz();
break;
case 3:
acc_RigheVert();
break;
case 4:
acc_Completa;
break;
case 5:
Effet_Matrix();
break;
case 6:
acc_Casuale();
break;
}
while(1){
for(gioco<7;gioco>0;){
gioco++;}
delay_ms(2000);
}
}
Portb e Portd sono collegati alle colonne del cubo invece Portc e collegata a 4 transistor che comandano i piani del cubo.

.