8*8 LED マトリクス




#include <16f876.h>
#fuses HS, NOWDT, NOPROTECT, PUT, NOBROWNOUT, NOLVP, NODEBUG, NOWRT
#device ADC=10
#use delay( CLOCK = 20000000 )
#use fast_io(A)
#use fast_io(B)
//#use fast_io(C)
int matrix[8]={0x81,0x42,0x24,0x18,0x18,0x24,0x42,0x81};//点灯パターンを定義
int col;
int count;
int i,w;
void main()
{
set_tris_b(0x00);
set_tris_a(0x30);
set_tris_c(0xf0);
output_b(0);
output_c(0);
count=0;
while(1){
count++;
for(col=0;col<8;col++){
output_b(matrix[col]);
switch(col){
case 0:
output_low(pin_c0);output_high(pin_a3);break;
case 1:
output_low(pin_a3);output_high(pin_a2);break;
case 2:
output_low(pin_a2);output_high(pin_a1);break;
case 3:
output_low(pin_a1);output_high(pin_a0);break;
case 4:
output_low(pin_a0);output_high(pin_c3);break;
case 5:
output_low(pin_c3);output_high(pin_c2);break;
case 6:
output_low(pin_c2);output_high(pin_c1);break;
case 7:
output_low(pin_c1);output_high(pin_c0);break;
}
delay_ms(3);
}
if(count==5){
w=matrix[0];
for(i=0;i<7;i++){
matrix[i]=matrix[i+1];
}
matrix[7]=w;
count=0;
}
}
}