#include #include #include #define Addr 0x27 #define N 12 //海青工商資訊科漆慶福製海   總長度 #define N8 8 //LCD 5 X 8 之 8 列 #define N16 16 #define N20 20 //1字20Bytes #define N3 3 //LCD 用 6 字組成一中文字 #define BA 3 //前三個 byte 被占用 #define BB 15 #define ST "HCVS" LiquidCrystal_I2C LCD(Addr,16,2); const byte Dmap[N][N3][N20]={ //-- 海 --- 0x18 , 0x0C , 0x06 , 0x01 , 0x01 , 0x18 , 0x04 , 0x02 , 0x00 , 0x00 , 0x06 , 0x04 , 0x0C , 0x08 , 0x18 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x08 , 0x08 , 0x1F , 0x10 , 0x00 , 0x0F , 0x09 , 0x08 , 0x08 , 0x1F , 0x09 , 0x08 , 0x08 , 0x0F , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x00 , 0x00 , 0x1E , 0x02 , 0x12 , 0x12 , 0x1F , 0x02 , 0x12 , 0x12 , 0x1F , 0x04 , 0x18 , 0x00 , 0x00 , 0x00 , 0x00 , //-- 青 --- 0x00 , 0x0F , 0x00 , 0x07 , 0x00 , 0x0F , 0x00 , 0x07 , 0x04 , 0x07 , 0x04 , 0x07 , 0x04 , 0x08 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x04 , 0x1F , 0x04 , 0x1F , 0x04 , 0x1F , 0x00 , 0x1F , 0x00 , 0x1F , 0x00 , 0x1F , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x00 , 0x1E , 0x00 , 0x1F , 0x00 , 0x1C , 0x04 , 0x1C , 0x04 , 0x1C , 0x04 , 0x04 , 0x1C , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , //-- 工 --- 0x00 , 0x0F , 0x0F , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x1F , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x1F , 0x06 , 0x06 , 0x06 , 0x06 , 0x06 , 0x06 , 0x06 , 0x06 , 0x06 , 0x06 , 0x06 , 0x1F , 0x1F , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x1F , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x1F , 0x00 , 0x00 , 0x00 , 0x00 , //-- 商 --- 0x00 , 0x1F , 0x1F , 0x01 , 0x01 , 0x0F , 0x1F , 0x18 , 0x1B , 0x18 , 0x19 , 0x19 , 0x19 , 0x19 , 0x18 , 0x18 , 0x00 , 0x00 , 0x00 , 0x00 , 0x04 , 0x1F , 0x1F , 0x10 , 0x10 , 0x1F , 0x1F , 0x11 , 0x00 , 0x00 , 0x1F , 0x00 , 0x00 , 0x1F , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x1F , 0x18 , 0x18 , 0x1E , 0x1F , 0x03 , 0x1B , 0x03 , 0x13 , 0x13 , 0x13 , 0x13 , 0x07 , 0x0E , 0x00 , 0x00 , 0x00 , 0x00 , //-- 資 --- 0x00 , 0x1F , 0x00 , 0x00 , 0x1F , 0x00 , 0x07 , 0x04 , 0x07 , 0x04 , 0x07 , 0x04 , 0x07 , 0x00 , 0x03 , 0x1C , 0x00 , 0x00 , 0x00 , 0x00 , 0x06 , 0x07 , 0x0C , 0x19 , 0x02 , 0x0C , 0x1F , 0x00 , 0x1F , 0x00 , 0x1F , 0x00 , 0x1F , 0x19 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x09 , 0x12 , 0x1C , 0x07 , 0x1C , 0x04 , 0x1C , 0x04 , 0x1C , 0x04 , 0x1C , 0x10 , 0x0C , 0x07 , 0x00 , 0x00 , 0x00 , 0x00 , //-- 訊 --- 0x04 , 0x04 , 0x1F , 0x00 , 0x0F , 0x00 , 0x00 , 0x0F , 0x00 , 0x1F , 0x10 , 0x10 , 0x10 , 0x10 , 0x1F , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0x02 , 0x12 , 0x02 , 0x02 , 0x02 , 0x0F , 0x02 , 0x02 , 0x12 , 0x12 , 0x12 , 0x12 , 0x12 , 0x12 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1C , 0x04 , 0x04 , 0x04 , 0x04 , 0x04 , 0x14 , 0x04 , 0x04 , 0x04 , 0x04 , 0x04 , 0x04 , 0x06 , 0x03 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , //-- 科 --- 0x01 , 0x1F , 0x02 , 0x02 , 0x02 , 0x1F , 0x02 , 0x07 , 0x0A , 0x0A , 0x12 , 0x12 , 0x02 , 0x02 , 0x02 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x18 , 0x02 , 0x01 , 0x00 , 0x00 , 0x18 , 0x02 , 0x01 , 0x10 , 0x10 , 0x0B , 0x08 , 0x08 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x04 , 0x04 , 0x04 , 0x14 , 0x04 , 0x04 , 0x04 , 0x04 , 0x14 , 0x04 , 0x1F , 0x04 , 0x04 , 0x04 , 0x04 , 0x04 , 0x00 , 0x00 , 0x00 , 0x00 , //-- 漆 --- 0x10 , 0x18 , 0x0C , 0x04 , 0x10 , 0x18 , 0x0C , 0x04 , 0x00 , 0x01 , 0x0C , 0x08 , 0x08 , 0x18 , 0x10 , 0x13 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x1F , 0x03 , 0x05 , 0x09 , 0x13 , 0x04 , 0x09 , 0x11 , 0x09 , 0x05 , 0x03 , 0x05 , 0x09 , 0x11 , 0x07 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1E , 0x10 , 0x08 , 0x04 , 0x12 , 0x08 , 0x04 , 0x02 , 0x05 , 0x08 , 0x10 , 0x08 , 0x04 , 0x02 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , //-- 慶 --- 0x00 , 0x07 , 0x04 , 0x07 , 0x04 , 0x07 , 0x04 , 0x05 , 0x06 , 0x04 , 0x07 , 0x04 , 0x08 , 0x09 , 0x10 , 0x13 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x1F , 0x08 , 0x1F , 0x08 , 0x1F , 0x12 , 0x09 , 0x0F , 0x00 , 0x1F , 0x04 , 0x0F , 0x14 , 0x03 , 0x1C , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x10 , 0x1E , 0x12 , 0x1F , 0x01 , 0x0A , 0x19 , 0x10 , 0x1F , 0x01 , 0x1C , 0x08 , 0x10 , 0x0F , 0x00 , 0x00 , 0x00 , 0x00 , //-- 福 --- 0x04 , 0x04 , 0x04 , 0x1F , 0x02 , 0x02 , 0x06 , 0x04 , 0x0C , 0x1D , 0x15 , 0x15 , 0x04 , 0x04 , 0x04 , 0x04 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x00 , 0x07 , 0x04 , 0x07 , 0x00 , 0x00 , 0x0F , 0x08 , 0x08 , 0x0F , 0x08 , 0x08 , 0x0F , 0x08 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x00 , 0x1E , 0x02 , 0x1E , 0x00 , 0x00 , 0x1F , 0x11 , 0x11 , 0x1F , 0x11 , 0x11 , 0x1F , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , //-- 製 --- 0x04 , 0x0F , 0x10 , 0x0F , 0x00 , 0x0F , 0x08 , 0x08 , 0x00 , 0x00 , 0x0F , 0x00 , 0x00 , 0x07 , 0x18 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x10 , 0x1F , 0x10 , 0x1F , 0x10 , 0x1F , 0x11 , 0x11 , 0x10 , 0x02 , 0x1F , 0x0E , 0x19 , 0x10 , 0x10 , 0x1E , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x01 , 0x05 , 0x05 , 0x05 , 0x01 , 0x01 , 0x07 , 0x00 , 0x00 , 0x1F , 0x00 , 0x11 , 0x16 , 0x0C , 0x07 , 0x00 , 0x00 , 0x00 , 0x00 , //-- 海 --- 0x18 , 0x0C , 0x06 , 0x01 , 0x01 , 0x18 , 0x04 , 0x02 , 0x00 , 0x00 , 0x06 , 0x04 , 0x0C , 0x08 , 0x18 , 0x10 , 0x00 , 0x00 , 0x00 , 0x00 , 0x08 , 0x08 , 0x1F , 0x10 , 0x00 , 0x0F , 0x09 , 0x08 , 0x08 , 0x1F , 0x09 , 0x08 , 0x08 , 0x0F , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x00 , 0x00 , 0x1E , 0x02 , 0x12 , 0x12 , 0x1F , 0x02 , 0x12 , 0x12 , 0x1F , 0x04 , 0x18 , 0x00 , 0x00 , 0x00 , 0x00 }; char x,dx,bb,xL,cx,cdx,bx,y2,y3,tcx,tx,t6x,i3,i31,i32; char HCVS[]="HCVS"; char CCF[]="By ChingFure "; const int N60=N3*N20; Timer t1,t2,t3; int index,Di; byte Dbuf[6][N8]; void setup() { int i,j; LCD.begin(); LCD.clear(); t1.every(300,go1); LCD.setCursor(4,0); index=Di=0; for(i=0;i=N16) break; Dbuf[i+(k/N8)*3][k%N8]=Dmap[m][i][j]; } if(k=N16) break; Dbuf[i+(k/N8)*3][k%N8]=Dmap[m+1][i][j]; } } if((index+1)%N20==0) index+=N60-N20+1; else index++; index=index%((N-1)*N60); } void a2(){ if(t6x==0){ lcdprint(x,0,HCVS); y2=1; bx=x; if(x>BA) lcdprint(x-1,0,' '); if(x=bb+1){ dx=-1; x=bb-1; } else if(x<=BA-1){ dx=1; x=BA+1; } } else{ if(y2==0){ lcdprint(bx,0,HCVS); y2=1; } else{ lcdprint(bx+cx,0,' '); y2=0; incCx(cdx); } } t6x=(t6x+1)%6; } void a3(){ if(y3==0){ lcdprint(BA,1,CCF); y3=1; } else{ if(i31!=6) lcdprint(i3+i31,1,byte(0xFF)); if(i31!=4) lcdprint(i3-i31,1,byte(0xFF)); y3=0; i31=(i31+1)%i32; } } void lcdprint(char x,char y,char c){ Serial.print(" bx=");Serial.print((int)x);Serial.print(" , cx=");Serial.print((int)cx);Serial.print(" , cdx=");Serial.println((int)cdx); LCD.setCursor(x,y);LCD.print(c); } void lcdprint(char x,char y,char *p){ Serial.print(" bx=");Serial.print((int)x);Serial.print(" , cx=");Serial.print((int)cx);Serial.print(" , cdx=");Serial.println((int)cdx); LCD.setCursor(x,y);LCD.print(p); } void incCx(char i){ cx+=i; if(cx>=xL){ cdx=-1; cx=xL-1; } else{ if(cx<=-1){ cdx=1; cx=0; } } }