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; } } }