#include #include #include #define Addr 0x27 #define N 12 //海青工商資訊科漆慶福製 海   總長度 #define A_L 8 #define Rc10 10 //右邊第 5 個字 #define Lc5 5 //右邊第 5 個字 #define RA char(0x7E) #define LA char(0x7F) LiquidCrystal_I2C LCD(Addr,16,2); const byte Dmap[N][6][8]={ //海 0x18 , 0x0C , 0x06 , 0x01 , 0x01 , 0x18 , 0x04 , 0x02 , 0x08 , 0x08 , 0x1F , 0x10 , 0x00 , 0x0F , 0x09 , 0x08 , 0x00 , 0x00 , 0x1F , 0x00 , 0x00 , 0x1E , 0x02 , 0x12 , 0x00 , 0x00 , 0x06 , 0x04 , 0x0C , 0x08 , 0x18 , 0x10 , 0x08 , 0x1F , 0x09 , 0x08 , 0x08 , 0x0F , 0x00 , 0x00 , 0x12 , 0x1F , 0x02 , 0x12 , 0x12 , 0x1F , 0x04 , 0x18 , //青 0x00 , 0x0F , 0x00 , 0x07 , 0x00 , 0x0F , 0x00 , 0x07 , 0x04 , 0x1F , 0x04 , 0x1F , 0x04 , 0x1F , 0x00 , 0x1F , 0x00 , 0x1F , 0x00 , 0x1E , 0x00 , 0x1F , 0x00 , 0x1C , 0x04 , 0x07 , 0x04 , 0x07 , 0x04 , 0x08 , 0x10 , 0x00 , 0x00 , 0x1F , 0x00 , 0x1F , 0x00 , 0x00 , 0x00 , 0x00 , 0x04 , 0x1C , 0x04 , 0x1C , 0x04 , 0x04 , 0x1C , 0x00 , //工 0x00 , 0x0F , 0x0F , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x1F , 0x06 , 0x06 , 0x06 , 0x06 , 0x06 , 0x00 , 0x1F , 0x1F , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x1F , 0x06 , 0x06 , 0x06 , 0x06 , 0x06 , 0x06 , 0x1F , 0x1F , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x1F , 0x1F , //商 0x00 , 0x1F , 0x1F , 0x01 , 0x01 , 0x0F , 0x1F , 0x18 , 0x04 , 0x1F , 0x1F , 0x10 , 0x10 , 0x1F , 0x1F , 0x11 , 0x00 , 0x1F , 0x1F , 0x18 , 0x18 , 0x1E , 0x1F , 0x03 , 0x1B , 0x18 , 0x19 , 0x19 , 0x19 , 0x19 , 0x18 , 0x18 , 0x00 , 0x00 , 0x1F , 0x00 , 0x00 , 0x1F , 0x00 , 0x00 , 0x1B , 0x03 , 0x13 , 0x13 , 0x13 , 0x13 , 0x07 , 0x0E , //資 0x00 , 0x1F , 0x00 , 0x00 , 0x1F , 0x00 , 0x07 , 0x04 , 0x06 , 0x07 , 0x0C , 0x19 , 0x02 , 0x0C , 0x1F , 0x00 , 0x00 , 0x1F , 0x09 , 0x12 , 0x1C , 0x07 , 0x1C , 0x04 , 0x07 , 0x04 , 0x07 , 0x04 , 0x07 , 0x00 , 0x03 , 0x1C , 0x1F , 0x00 , 0x1F , 0x00 , 0x1F , 0x19 , 0x00 , 0x00 , 0x1C , 0x04 , 0x1C , 0x04 , 0x1C , 0x10 , 0x0C , 0x07 , //訊 0x04 , 0x04 , 0x1F , 0x00 , 0x0F , 0x00 , 0x00 , 0x0F , 0x0F , 0x02 , 0x12 , 0x02 , 0x02 , 0x02 , 0x0F , 0x02 , 0x1C , 0x04 , 0x04 , 0x04 , 0x04 , 0x04 , 0x14 , 0x04 , 0x00 , 0x1F , 0x10 , 0x10 , 0x10 , 0x10 , 0x1F , 0x10 , 0x02 , 0x12 , 0x12 , 0x12 , 0x12 , 0x12 , 0x12 , 0x02 , 0x04 , 0x04 , 0x04 , 0x04 , 0x04 , 0x06 , 0x03 , 0x02 , //科 0x01 , 0x1F , 0x02 , 0x02 , 0x02 , 0x1F , 0x02 , 0x07 , 0x18 , 0x02 , 0x01 , 0x00 , 0x00 , 0x18 , 0x02 , 0x01 , 0x04 , 0x04 , 0x04 , 0x14 , 0x04 , 0x04 , 0x04 , 0x04 , 0x0A , 0x0A , 0x12 , 0x12 , 0x02 , 0x02 , 0x02 , 0x02 , 0x10 , 0x10 , 0x0B , 0x08 , 0x08 , 0x00 , 0x00 , 0x00 , 0x14 , 0x04 , 0x1F , 0x04 , 0x04 , 0x04 , 0x04 , 0x04 , //漆 0x10 , 0x18 , 0x0C , 0x04 , 0x10 , 0x18 , 0x0C , 0x04 , 0x01 , 0x1F , 0x03 , 0x05 , 0x09 , 0x13 , 0x04 , 0x09 , 0x00 , 0x1E , 0x10 , 0x08 , 0x04 , 0x12 , 0x08 , 0x04 , 0x00 , 0x01 , 0x0C , 0x08 , 0x08 , 0x18 , 0x10 , 0x13 , 0x11 , 0x09 , 0x05 , 0x03 , 0x05 , 0x09 , 0x11 , 0x07 , 0x02 , 0x05 , 0x08 , 0x10 , 0x08 , 0x04 , 0x02 , 0x01 , //慶 0x00 , 0x07 , 0x04 , 0x07 , 0x04 , 0x07 , 0x04 , 0x05 , 0x02 , 0x1F , 0x08 , 0x1F , 0x08 , 0x1F , 0x12 , 0x09 , 0x00 , 0x1F , 0x10 , 0x1E , 0x12 , 0x1F , 0x01 , 0x0A , 0x06 , 0x04 , 0x07 , 0x04 , 0x08 , 0x09 , 0x10 , 0x13 , 0x0F , 0x00 , 0x1F , 0x04 , 0x0F , 0x14 , 0x03 , 0x1C , 0x19 , 0x10 , 0x1F , 0x01 , 0x1C , 0x08 , 0x10 , 0x0F , //福 0x04 , 0x04 , 0x04 , 0x1F , 0x02 , 0x02 , 0x06 , 0x04 , 0x00 , 0x1F , 0x00 , 0x07 , 0x04 , 0x07 , 0x00 , 0x00 , 0x00 , 0x1F , 0x00 , 0x1E , 0x02 , 0x1E , 0x00 , 0x00 , 0x0C , 0x1D , 0x15 , 0x15 , 0x04 , 0x04 , 0x04 , 0x04 , 0x0F , 0x08 , 0x08 , 0x0F , 0x08 , 0x08 , 0x0F , 0x08 , 0x1F , 0x11 , 0x11 , 0x1F , 0x11 , 0x11 , 0x1F , 0x01 , //製 0x04 , 0x0F , 0x10 , 0x0F , 0x00 , 0x0F , 0x08 , 0x08 , 0x10 , 0x1F , 0x10 , 0x1F , 0x10 , 0x1F , 0x11 , 0x11 , 0x01 , 0x01 , 0x05 , 0x05 , 0x05 , 0x01 , 0x01 , 0x07 , 0x00 , 0x00 , 0x0F , 0x00 , 0x00 , 0x07 , 0x18 , 0x00 , 0x10 , 0x02 , 0x1F , 0x0E , 0x19 , 0x10 , 0x10 , 0x1E , 0x00 , 0x00 , 0x1F , 0x00 , 0x11 , 0x16 , 0x0C , 0x07 }; byte aUp[A_L]={0x0,0x4,0x0E,0x1F,0x4,0x4,0x4,0x0};//向上箭頭 byte aDn[A_L]={0x0,0x4,0x4,0x4,0x1F,0x0E,0x4,0x0};//向下箭頭 char CCF2[]= "By HCVS ChingFure http://163.32.98.15/teacher/benme/ By HCVS"; byte ccfL; Timer t1,t2; byte ind1,ind2,iR; int index; void setup() { byte i; Serial.begin(9600); LCD.begin(); t1.every(2000,go); t2.every(500,cv2); LCD.clear(); ind1=ind2=0; prnA(); ccfL=strlen(CCF2)-7; prnB(); go(); } void go(){ byte j; if(index==N-1){ LCD.setCursor(0,0); LCD.print("2018"); LCD.setCursor(0,1); LCD.print("12/09"); LCD.setCursor(12,0); LCD.print("2018"); LCD.setCursor(11,1); LCD.print("12/09"); } else{ for(j=0;j<3;j++){ LCD.createChar(j,Dmap[index][j]); LCD.setCursor(j,0);//每一個中文字橫3格(上) LCD.write(j); LCD.setCursor(13+j,0);//每一個中文字橫3格(上) LCD.write(j); } for(j=3;j<6;j++){ LCD.createChar(j,Dmap[index][j]); LCD.setCursor(j-3,1); LCD.write(j); LCD.setCursor(j+10,1); LCD.write(j); } LCD.setCursor(3,0); LCD.print(" "); LCD.setCursor(3,1); LCD.print(" "); LCD.setCursor(12,0); LCD.print(" "); LCD.setCursor(11,1); LCD.print(" "); } index = (index + 1) % N; } void loop() { t1.update(); t2.update(); } void cv2(){ byte i,t; prnA(); if(ind2%2==1) prnB(); ind2=(ind2+1)%8; t=aUp[0]; for(i=1;i0;i--) aDn[i]=aDn[i-1]; aDn[0]=t; } void prnB(){ byte i; LCD.setCursor(Lc5+1,0); for(i=0;i<4;i++) LCD.print(CCF2[ind1+i]); LCD.setCursor(Lc5+1,1); for(i=0;i<4;i++) LCD.print(CCF2[ind1+7-i]); ind1=(ind1+1)%ccfL; } void prnA(){ static byte i=0; LCD.createChar(6,aDn); LCD.setCursor(Lc5,0); LCD.write(6); LCD.createChar(7,aUp); LCD.setCursor(Rc10,1); LCD.write(7); if(i==0){ LCD.setCursor(Rc10,0);LCD.print(' '); LCD.setCursor(Lc5,1);LCD.print(RA); } else{ LCD.setCursor(Lc5,1);LCD.print(' '); LCD.setCursor(Rc10,0);LCD.print(LA); } i=(i+1)%2; }