#include<16f88.h> #fuses INTRC_IO,NOWDT,NOLVP,NOMCLR,NOBROWNOUT #use delay(clock = 4000000) 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 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, 0b11000001, 0b11011111, 0b11100001, 0b11011111, 0b11100001}; 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; delay_us(200); if(input(PIN_A1)==0){ move++; kind=0; output_bit(PIN_B0,1); //ぜんけし output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); output_bit(PIN_B4,1); output_bit(PIN_B5,1); output_bit(PIN_A0,1); delay_ms(10);//文字が始まるまでの時間 if(check==0b00000001)aisiteru(); else if(check==0b00000010)tasukete(); else{ movelet(timer++); if(timer>49) timer=0; } } else{ kind++; //delay_ms(6); if(kind>12000){ kind=12001; if(check==0b10000000) check=0b00000001; else check=check<<1; output_b(~check); delay_ms(1000); } } } } void aisiteru(){ for(ii=0;ii<7;ii++){//愛 output_bit(PIN_B0,(ai[ii]&0b10000000)>>7); output_bit(PIN_B1,(ai[ii]&0b01000000)>>6); output_bit(PIN_B2,(ai[ii]&0b00100000)>>5); output_bit(PIN_B3,(ai[ii]&0b00010000)>>4); output_bit(PIN_B4,(ai[ii]&0b00001000)>>3); output_bit(PIN_B5,(ai[ii]&0b00000100)>>2); output_bit(PIN_A0,(ai[ii]&0b00000010)>>1); delay_ms(1); } output_bit(PIN_B0,1); //ぜんけし output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); output_bit(PIN_B4,1); output_bit(PIN_B5,1); output_bit(PIN_A0,1); delay_ms(2); for(ii=0;ii<7;ii++){//し output_bit(PIN_B0,(si[ii]&0b10000000)>>7); output_bit(PIN_B1,(si[ii]&0b01000000)>>6); output_bit(PIN_B2,(si[ii]&0b00100000)>>5); output_bit(PIN_B3,(si[ii]&0b00010000)>>4); output_bit(PIN_B4,(si[ii]&0b00001000)>>3); output_bit(PIN_B5,(si[ii]&0b00000100)>>2); output_bit(PIN_A0,(si[ii]&0b00000010)>>1); delay_ms(1); } output_bit(PIN_B0,1); //ぜんけし output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); output_bit(PIN_B4,1); output_bit(PIN_B5,1); output_bit(PIN_A0,1); delay_ms(2); for(ii=0;ii<7;ii++){//て output_bit(PIN_B0,(te[ii]&0b10000000)>>7); output_bit(PIN_B1,(te[ii]&0b01000000)>>6); output_bit(PIN_B2,(te[ii]&0b00100000)>>5); output_bit(PIN_B3,(te[ii]&0b00010000)>>4); output_bit(PIN_B4,(te[ii]&0b00001000)>>3); output_bit(PIN_B5,(te[ii]&0b00000100)>>2); output_bit(PIN_A0,(te[ii]&0b00000010)>>1); delay_ms(1); } output_bit(PIN_B0,1); //ぜんけし output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); output_bit(PIN_B4,1); output_bit(PIN_B5,1); output_bit(PIN_A0,1); delay_ms(2); for(ii=0;ii<7;ii++){//る output_bit(PIN_B0,(ru[ii]&0b10000000)>>7); output_bit(PIN_B1,(ru[ii]&0b01000000)>>6); output_bit(PIN_B2,(ru[ii]&0b00100000)>>5); output_bit(PIN_B3,(ru[ii]&0b00010000)>>4); output_bit(PIN_B4,(ru[ii]&0b00001000)>>3); output_bit(PIN_B5,(ru[ii]&0b00000100)>>2); output_bit(PIN_A0,(ru[ii]&0b00000010)>>1); delay_ms(1); } output_bit(PIN_B0,1); //ぜんけし output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); output_bit(PIN_B4,1); output_bit(PIN_B5,1); output_bit(PIN_A0,1); delay_ms(2); for(ii=0;ii<7;ii++){ output_bit(PIN_B0,(hart[ii]&0b10000000)>>7); output_bit(PIN_B1,(hart[ii]&0b01000000)>>6); output_bit(PIN_B2,(hart[ii]&0b00100000)>>5); output_bit(PIN_B3,(hart[ii]&0b00010000)>>4); output_bit(PIN_B4,(hart[ii]&0b00001000)>>3); output_bit(PIN_B5,(hart[ii]&0b00000100)>>2); output_bit(PIN_A0,(hart[ii]&0b00000010)>>1); delay_ms(1); } output_bit(PIN_B0,1); //ぜんけし output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); output_bit(PIN_B4,1); output_bit(PIN_B5,1); output_bit(PIN_A0,1); delay_ms(2); } void tasukete(){ for(ii=0;ii<7;ii++){//た output_bit(PIN_B0,(ta[ii]&0b10000000)>>7); output_bit(PIN_B1,(ta[ii]&0b01000000)>>6); output_bit(PIN_B2,(ta[ii]&0b00100000)>>5); output_bit(PIN_B3,(ta[ii]&0b00010000)>>4); output_bit(PIN_B4,(ta[ii]&0b00001000)>>3); output_bit(PIN_B5,(ta[ii]&0b00000100)>>2); output_bit(PIN_A0,(ta[ii]&0b00000010)>>1); delay_ms(1); } output_bit(PIN_B0,1); //ぜんけし output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); output_bit(PIN_B4,1); output_bit(PIN_B5,1); output_bit(PIN_A0,1); delay_ms(2); for(ii=0;ii<7;ii++){//す output_bit(PIN_B0,(su[ii]&0b10000000)>>7); output_bit(PIN_B1,(su[ii]&0b01000000)>>6); output_bit(PIN_B2,(su[ii]&0b00100000)>>5); output_bit(PIN_B3,(su[ii]&0b00010000)>>4); output_bit(PIN_B4,(su[ii]&0b00001000)>>3); output_bit(PIN_B5,(su[ii]&0b00000100)>>2); output_bit(PIN_A0,(su[ii]&0b00000010)>>1); delay_ms(1); } output_bit(PIN_B0,1); //ぜんけし output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); output_bit(PIN_B4,1); output_bit(PIN_B5,1); output_bit(PIN_A0,1); delay_ms(2); for(ii=0;ii<7;ii++){//け output_bit(PIN_B0,(ke[ii]&0b10000000)>>7); output_bit(PIN_B1,(ke[ii]&0b01000000)>>6); output_bit(PIN_B2,(ke[ii]&0b00100000)>>5); output_bit(PIN_B3,(ke[ii]&0b00010000)>>4); output_bit(PIN_B4,(ke[ii]&0b00001000)>>3); output_bit(PIN_B5,(ke[ii]&0b00000100)>>2); output_bit(PIN_A0,(ke[ii]&0b00000010)>>1); delay_ms(1); } output_bit(PIN_B0,1); //ぜんけし output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); output_bit(PIN_B4,1); output_bit(PIN_B5,1); output_bit(PIN_A0,1); delay_ms(2); for(ii=0;ii<7;ii++){//て output_bit(PIN_B0,(te[ii]&0b10000000)>>7); output_bit(PIN_B1,(te[ii]&0b01000000)>>6); output_bit(PIN_B2,(te[ii]&0b00100000)>>5); output_bit(PIN_B3,(te[ii]&0b00010000)>>4); output_bit(PIN_B4,(te[ii]&0b00001000)>>3); output_bit(PIN_B5,(te[ii]&0b00000100)>>2); output_bit(PIN_A0,(te[ii]&0b00000010)>>1); delay_ms(1); } output_bit(PIN_B0,1); //ぜんけし output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); output_bit(PIN_B4,1); output_bit(PIN_B5,1); output_bit(PIN_A0,1); delay_ms(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 display[26]=le[timer%7]; for(ii=0;ii<27;ii++){//画面表示 output_bit(PIN_B0,(display[ii]&0b10000000)>>7); output_bit(PIN_B1,(display[ii]&0b01000000)>>6); output_bit(PIN_B2,(display[ii]&0b00100000)>>5); output_bit(PIN_B3,(display[ii]&0b00010000)>>4); output_bit(PIN_B4,(display[ii]&0b00001000)>>3); output_bit(PIN_B5,(display[ii]&0b00000100)>>2); output_bit(PIN_A0,(display[ii]&0b00000010)>>1); delay_ms(1); } output_bit(PIN_B0,1); //ぜんけし output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); output_bit(PIN_B4,1); output_bit(PIN_B5,1); output_bit(PIN_A0,1); delay_ms(2); }