#include<16f648a.h> #fuses HS,NOWDT,NOLVP,NOMCLR,NOBROWNOUT #use delay(clock = 20000000) #define T 800 #define D1 PIN_B0 #define D2 PIN_B1 #define D3 PIN_B2 #define D4 PIN_B3 #define D5 PIN_B5 #define D6 PIN_B4 #define D7 PIN_A0 const int ai[7]={ 0b01001101, 0b00010101, 0b01000011, 0b00010101, 0b01001011, 0b00010101, 0b01001101}; const int si[7]={ 0b11111111, 0b00000011, 0b11111101, 0b11111101, 0b11111101, 0b11111011, 0b11111111}; const int te[7]={ 0b10111111, 0b10111111, 0b10100111, 0b01011011, 0b00111101, 0b01111101, 0b11111111}; const int ru[7]={ 0b11110111, 0b01101001, 0b01001001, 0b00101101, 0b01101101, 0b11110011, 0b11111111}; const int ta[7]={ 0b10111101, 0b10100011, 0b00011111, 0b10111011, 0b11010101, 0b11011101, 0b11011101}; const int su[7]={ 0b10111111, 0b10111111, 0b10101111, 0b10010101, 0b00000011, 0b10111111, 0b10111111}; const int ke[7]={ 0b00000011, 0b11111111, 0b11011111, 0b11011101, 0b00000011, 0b11011111, 0b11011111}; const int hart[7]={ 0b10011111, 0b00001111, 0b00000011, 0b10000001, 0b00000011, 0b00001111, 0b10011111}; const int lkuu[7]={ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; const int lW[7]={ 0b10000111, 0b11111001, 0b11100111, 0b10011111, 0b11100111, 0b11111001, 0b00000111}; const int le[7]={ 0b11111111, 0b11111111, 0b11100011, 0b11010101, 0b11010101, 0b11010101, 0b11100111}; const int ll[7]={ 0b11111111, 0b11111111, 0b11111111, 0b00000001, 0b11111111, 0b11111111, 0b11111111}; const int lc[7]={ 0b11111111, 0b11111111, 0b11100011, 0b11011101, 0b11011101, 0b11011101, 0b11101011}; const int lo[7]={ 0b11111111, 0b11111111, 0b11100011, 0b11011101, 0b11011101, 0b11011101, 0b11100011}; const int lm[7]={ 0b11111111, 0b11111111, 0b11100001, 0b11011111, 0b11100001, 0b11011111, 0b11000001}; const int lt[7]={ 0b11111111, 0b11111111, 0b11011111, 0b11011111, 0b10000001, 0b11011101, 0b11011111}; const int li[7]={ 0b11111111, 0b11111111, 0b11111111, 0b10100001, 0b11111111, 0b11111111, 0b11111111}; const int lk[7]={ 0b11111111, 0b11111111, 0b11111111, 0b00000001, 0b11110111, 0b111010011, 0b11111111}; const int la[7]={ 0b11111111, 0b11111111, 0b11111111, 0b10110011, 0b10101101, 0b110000011, 0b11111101}; const int lb[7]={ 0b11111111, 0b11111111, 0b11111111, 0b10000001, 0b11101101, 0b11110011, 0b11111111}; const int lz[7]={ 0b11111111, 0b11111111, 0b11111111, 0b11011001, 0b11010101, 0b11001101, 0b11011101}; int display[27]={ 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111}; int ii,jj,timer2; int check; long timer,move,kind; void aisiteru(); void tasukete(); void movelet(long timer); void main(){ timer=0;timer2=0; move=0;kind=0;check=0b00000001; while(1){ move=0; while(input(PIN_A1)==0); movelet(timer++); if(timer>140) timer=0; } } void aisiteru(){ for(ii=0;ii<7;ii++){//愛 output_bit(D1,(ai[ii]&0b10000000)>>7); output_bit(D2,(ai[ii]&0b01000000)>>6); output_bit(D3,(ai[ii]&0b00100000)>>5); output_bit(D4,(ai[ii]&0b00010000)>>4); output_bit(D5,(ai[ii]&0b00001000)>>3); output_bit(D6,(ai[ii]&0b00000100)>>2); output_bit(D7,(ai[ii]&0b00000010)>>1); delay_us(T); } output_bit(D1,1); //ぜんけし output_bit(D2,1); output_bit(D3,1); output_bit(D4,1); output_bit(D5,1); output_bit(D6,1); output_bit(D7,1); delay_us(T*2); for(ii=0;ii<7;ii++){//し output_bit(D1,(si[ii]&0b10000000)>>7); output_bit(D2,(si[ii]&0b01000000)>>6); output_bit(D3,(si[ii]&0b00100000)>>5); output_bit(D4,(si[ii]&0b00010000)>>4); output_bit(D5,(si[ii]&0b00001000)>>3); output_bit(D6,(si[ii]&0b00000100)>>2); output_bit(D7,(si[ii]&0b00000010)>>1); delay_us(T); } output_bit(D1,1); //ぜんけし output_bit(D2,1); output_bit(D3,1); output_bit(D4,1); output_bit(D5,1); output_bit(D6,1); output_bit(D7,1); delay_us(T*2); for(ii=0;ii<7;ii++){//て output_bit(D1,(te[ii]&0b10000000)>>7); output_bit(D2,(te[ii]&0b01000000)>>6); output_bit(D3,(te[ii]&0b00100000)>>5); output_bit(D4,(te[ii]&0b00010000)>>4); output_bit(D5,(te[ii]&0b00001000)>>3); output_bit(D6,(te[ii]&0b00000100)>>2); output_bit(D7,(te[ii]&0b00000010)>>1); delay_us(T); } output_bit(D1,1); //ぜんけし output_bit(D2,1); output_bit(D3,1); output_bit(D4,1); output_bit(D5,1); output_bit(D6,1); output_bit(D7,1); delay_us(T*2); for(ii=0;ii<7;ii++){//る output_bit(D1,(ru[ii]&0b10000000)>>7); output_bit(D2,(ru[ii]&0b01000000)>>6); output_bit(D3,(ru[ii]&0b00100000)>>5); output_bit(D4,(ru[ii]&0b00010000)>>4); output_bit(D5,(ru[ii]&0b00001000)>>3); output_bit(D6,(ru[ii]&0b00000100)>>2); output_bit(D7,(ru[ii]&0b00000010)>>1); delay_us(T); } output_bit(D1,1); //ぜんけし output_bit(D2,1); output_bit(D3,1); output_bit(D4,1); output_bit(D5,1); output_bit(D6,1); output_bit(D7,1); delay_us(T*2); for(ii=0;ii<7;ii++){ output_bit(D1,(hart[ii]&0b10000000)>>7); output_bit(D2,(hart[ii]&0b01000000)>>6); output_bit(D3,(hart[ii]&0b00100000)>>5); output_bit(D4,(hart[ii]&0b00010000)>>4); output_bit(D5,(hart[ii]&0b00001000)>>3); output_bit(D6,(hart[ii]&0b00000100)>>2); output_bit(D7,(hart[ii]&0b00000010)>>1); delay_us(T); } output_bit(D1,1); //ぜんけし output_bit(D2,1); output_bit(D3,1); output_bit(D4,1); output_bit(D5,1); output_bit(D6,1); output_bit(D7,1); delay_us(T*2); } void tasukete(){ for(ii=0;ii<7;ii++){//た output_bit(D1,(ta[ii]&0b10000000)>>7); output_bit(D2,(ta[ii]&0b01000000)>>6); output_bit(D3,(ta[ii]&0b00100000)>>5); output_bit(D4,(ta[ii]&0b00010000)>>4); output_bit(D5,(ta[ii]&0b00001000)>>3); output_bit(D6,(ta[ii]&0b00000100)>>2); output_bit(D7,(ta[ii]&0b00000010)>>1); delay_us(T); } output_bit(D1,1); //ぜんけし output_bit(D2,1); output_bit(D3,1); output_bit(D4,1); output_bit(D5,1); output_bit(D6,1); output_bit(D7,1); delay_us(T*2); for(ii=0;ii<7;ii++){//す output_bit(D1,(su[ii]&0b10000000)>>7); output_bit(D2,(su[ii]&0b01000000)>>6); output_bit(D3,(su[ii]&0b00100000)>>5); output_bit(D4,(su[ii]&0b00010000)>>4); output_bit(D5,(su[ii]&0b00001000)>>3); output_bit(D6,(su[ii]&0b00000100)>>2); output_bit(D7,(su[ii]&0b00000010)>>1); delay_us(T); } output_bit(D1,1); //ぜんけし output_bit(D2,1); output_bit(D3,1); output_bit(D4,1); output_bit(D5,1); output_bit(D6,1); output_bit(D7,1); delay_us(T*2); for(ii=0;ii<7;ii++){//け output_bit(D1,(ke[ii]&0b10000000)>>7); output_bit(D2,(ke[ii]&0b01000000)>>6); output_bit(D3,(ke[ii]&0b00100000)>>5); output_bit(D4,(ke[ii]&0b00010000)>>4); output_bit(D5,(ke[ii]&0b00001000)>>3); output_bit(D6,(ke[ii]&0b00000100)>>2); output_bit(D7,(ke[ii]&0b00000010)>>1); delay_us(T); } output_bit(D1,1); //ぜんけし output_bit(D2,1); output_bit(D3,1); output_bit(D4,1); output_bit(D5,1); output_bit(D6,1); output_bit(D7,1); delay_us(T*2); for(ii=0;ii<7;ii++){//て output_bit(D1,(te[ii]&0b10000000)>>7); output_bit(D2,(te[ii]&0b01000000)>>6); output_bit(D3,(te[ii]&0b00100000)>>5); output_bit(D4,(te[ii]&0b00010000)>>4); output_bit(D5,(te[ii]&0b00001000)>>3); output_bit(D6,(te[ii]&0b00000100)>>2); output_bit(D7,(te[ii]&0b00000010)>>1); delay_us(T); } output_bit(D1,1); //ぜんけし output_bit(D2,1); output_bit(D3,1); output_bit(D4,1); output_bit(D5,1); output_bit(D6,1); output_bit(D7,1); delay_us(T*2); } void movelet(long timer){ for(ii=0;ii<26;ii++) display[ii]=display[ii+1]; if(timer<7) display[26]=lW[timer%7]; else if(timer<14) display[26]=le[timer%7]; else if(timer<21) display[26]=ll[timer%7]; else if(timer<28) display[26]=lc[timer%7]; else if(timer<35) display[26]=lo[timer%7]; else if(timer<42) display[26]=lm[timer%7]; else if(timer<49)display[26]=le[timer%7]; else if(timer<56)display[26]=lkuu[timer%7]; else if(timer<63)display[26]=lt[timer%7]; else if(timer<70)display[26]=lo[timer%7]; else if(timer<77)display[26]=lkuu[timer%7]; else if(timer<84)display[26]=li[timer%7]; else if(timer<91)display[26]=lt[timer%7]; else if(timer<98)display[26]=lo[timer%7]; else if(timer<105)display[26]=lkuu[timer%7]; else if(timer<112)display[26]=ll[timer%7]; else if(timer<119)display[26]=la[timer%7]; else if(timer<126)display[26]=lb[timer%7]; else if(timer<133)display[26]=lo[timer%7]; else display[26]=lkuu[timer%7]; for(ii=0;ii<27;ii++){//画面表示 output_bit(D1,(display[ii]&0b10000000)>>7); output_bit(D2,(display[ii]&0b01000000)>>6); output_bit(D3,(display[ii]&0b00100000)>>5); output_bit(D4,(display[ii]&0b00010000)>>4); output_bit(D5,(display[ii]&0b00001000)>>3); output_bit(D6,(display[ii]&0b00000100)>>2); output_bit(D7,(display[ii]&0b00000010)>>1); delay_us(T); } output_bit(D1,1); //ぜんけし output_bit(D2,1); output_bit(D3,1); output_bit(D4,1); output_bit(D5,1); output_bit(D6,1); output_bit(D7,1); delay_us(T*2); }