Class library for a Topway LM6029ACW graphics LCD.
Embed:
(wiki syntax)
Show/hide line numbers
LM6029ACW.cpp
00001 #include "LM6029ACW.h" 00002 #include "mbed.h" 00003 00004 00005 /* ***************************************** Public Functions ***************************************** */ 00006 00007 LM6029ACW::LM6029ACW(PinName CS1, PinName RES, PinName RS, PinName WR, PinName RD, PinName DB7, PinName DB6, PinName DB5, PinName DB4, PinName DB3, PinName DB2, PinName DB1, PinName DB0) 00008 : CS1pin(CS1), RESpin(RES), RSpin(RS), WRpin(WR), RDpin(RD), DATApins(DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7) { 00009 character_x = 0; 00010 character_y = 0; 00011 Init(); 00012 } 00013 00014 00015 void LM6029ACW::ClrScr(unsigned char color) 00016 { 00017 unsigned char i, j, x=0; 00018 00019 CS1pin = 0; 00020 for(i=0; i<8; i++) 00021 { 00022 x=0; 00023 SetColumn(0); 00024 SetPage(i); 00025 for(j=0; j<128; j++) 00026 if(color==0) 00027 { 00028 WriteData(0x00); 00029 DisplayRAM[x][i] = 0x00; 00030 x++; 00031 } 00032 else 00033 { 00034 WriteData(0xff); 00035 DisplayRAM[x][i] = 0xff; 00036 x++; 00037 } 00038 } 00039 CS1pin = 1; 00040 } 00041 00042 00043 void LM6029ACW::PowerSave(void) 00044 { 00045 CS1pin = 0; 00046 WriteCommand(0xae); 00047 WriteCommand(0xa5); 00048 CS1pin = 1; 00049 } 00050 00051 00052 void LM6029ACW::PowerActive(void) 00053 { 00054 CS1pin = 0; 00055 WriteCommand(0xa4); 00056 WriteCommand(0xaf); 00057 CS1pin = 1; 00058 } 00059 00060 00061 void LM6029ACW::DrawPixel(unsigned char x, unsigned char y, unsigned char color) 00062 { 00063 unsigned char page, temp1, temp2; 00064 00065 page = y >> 3; 00066 y = y & 0x07; 00067 temp1 = DisplayRAM[x][page]; 00068 temp2 = 1 << y; 00069 switch(color) 00070 { 00071 case 0: temp1 = temp1 & ~temp2; 00072 break; 00073 case 1: temp1 = temp1 | temp2; 00074 break; 00075 case 2: temp1 = temp1 ^ temp2; 00076 break; 00077 } 00078 DisplayRAM[x][page] = temp1; 00079 CS1pin = 0; 00080 SetColumn(x); 00081 SetPage(page); 00082 WriteData((unsigned char)(temp1)); 00083 CS1pin = 1; 00084 } 00085 00086 00087 void LM6029ACW::DrawLine(int x1, int y1, int x2, int y2, unsigned int color) 00088 { 00089 int dy, dx; 00090 signed char addx=1, addy=1; 00091 signed int P, diff; 00092 00093 int i=0; 00094 dx = abs((signed int)(x2 - x1)); 00095 dy = abs((signed int)(y2 - y1)); 00096 00097 if(x1 > x2) 00098 addx = -1; 00099 if(y1 > y2) 00100 addy = -1; 00101 00102 if(dx >= dy) 00103 { 00104 dy *= 2; 00105 P = dy - dx; 00106 diff = P - dx; 00107 00108 for(; i<=dx; ++i) 00109 { 00110 DrawPixel(x1, y1, color); 00111 00112 if(P < 0) 00113 { 00114 P += dy; 00115 x1 += addx; 00116 } 00117 else 00118 { 00119 P += diff; 00120 x1 += addx; 00121 y1 += addy; 00122 } 00123 } 00124 } 00125 else 00126 { 00127 dx *= 2; 00128 P = dx - dy; 00129 diff = P - dy; 00130 00131 for(; i<=dy; ++i) 00132 { 00133 DrawPixel(x1, y1, color); 00134 00135 if(P < 0) 00136 { 00137 P += dx; 00138 y1 += addy; 00139 } 00140 else 00141 { 00142 P += diff; 00143 x1 += addx; 00144 y1 += addy; 00145 } 00146 } 00147 } 00148 } 00149 00150 00151 void LM6029ACW::DrawCircle(unsigned char x, unsigned char y, unsigned char radius, unsigned char fill, unsigned char color) 00152 { 00153 signed char a, b, P; 00154 00155 a = 0; 00156 b = radius; 00157 P = 1 - radius; 00158 00159 do 00160 { 00161 if(fill) 00162 { 00163 DrawLine(x-a, y+b, x+a, y+b, color); 00164 DrawLine(x-a, y-b, x+a, y-b, color); 00165 DrawLine(x-b, y+a, x+b, y+a, color); 00166 DrawLine(x-b, y-a, x+b, y-a, color); 00167 } 00168 else 00169 { 00170 DrawPixel(a+x, b+y, color); 00171 DrawPixel(b+x, a+y, color); 00172 DrawPixel(x-a, b+y, color); 00173 DrawPixel(x-b, a+y, color); 00174 DrawPixel(b+x, y-a, color); 00175 DrawPixel(a+x, y-b, color); 00176 DrawPixel(x-a, y-b, color); 00177 DrawPixel(x-b, y-a, color); 00178 } 00179 00180 if(P < 0) 00181 P += 3 + 2 * a++; 00182 else 00183 P += 5 + 2 * (a++ - b--); 00184 } while(a <= b); 00185 } 00186 00187 00188 void LM6029ACW::GotoXY(unsigned char x, unsigned char y) 00189 { 00190 if(x<=20) 00191 character_x = x; 00192 else 00193 character_x = 0; 00194 00195 if(y<=7) 00196 character_y = y; 00197 else 00198 character_y = 0; 00199 } 00200 00201 00202 void LM6029ACW::PutStr(char *str, unsigned char color) 00203 { 00204 unsigned int i=0; 00205 00206 do 00207 { 00208 PutChar(str[i], color); 00209 i++; 00210 }while(str[i]!='\0'); 00211 } 00212 00213 00214 void LM6029ACW::PutChar(unsigned char c, unsigned char color) 00215 { 00216 unsigned char x, page; 00217 00218 x = character_x * 6 + 1; 00219 page = character_y; 00220 00221 DrawChar(c, x, page, color); 00222 if(character_x == 20) 00223 { 00224 character_x=0; 00225 if(character_y==7) 00226 character_y=0; 00227 else 00228 character_y++; 00229 } 00230 else 00231 character_x++; 00232 } 00233 00234 00235 00236 00237 00238 00239 00240 00241 00242 00243 00244 00245 /* ***************************************** Private Functions ***************************************** */ 00246 00247 void LM6029ACW::Delay(unsigned int del) 00248 { 00249 unsigned int i=0; 00250 00251 while(i<del) 00252 i++; 00253 } 00254 00255 00256 void LM6029ACW::WriteCommand(unsigned char cmd) 00257 { 00258 RSpin = 0; 00259 00260 DATApins = cmd; 00261 wait(lcd_delayx); 00262 WRpin = 0; 00263 wait(lcd_delayx); 00264 WRpin = 1; 00265 } 00266 00267 00268 void LM6029ACW::WriteData(unsigned char dat) 00269 { 00270 RSpin = 1; 00271 00272 DATApins = dat; 00273 wait(lcd_delayx); 00274 WRpin = 0; 00275 wait(lcd_delayx); 00276 WRpin = 1; 00277 } 00278 00279 00280 void LM6029ACW::SetPage(unsigned char Page) 00281 { 00282 Page = Page & 0x0f; 00283 Page = Page | 0xb0; 00284 WriteCommand(Page); 00285 } 00286 00287 00288 void LM6029ACW::SetColumn(unsigned char Col) 00289 { 00290 unsigned char temp; 00291 00292 temp = Col; 00293 Col = Col & 0x0f; 00294 Col = Col | 0x00; 00295 WriteCommand(Col); 00296 temp = temp >> 4; 00297 Col = temp & 0x0f; 00298 Col = Col | 0x10; 00299 WriteCommand(Col); 00300 } 00301 00302 00303 void LM6029ACW::Init(void) 00304 { 00305 unsigned char i,j; 00306 00307 RDpin = 1; 00308 CS1pin = 0; 00309 RESpin = 0; 00310 wait(lcd_init_delay); 00311 RESpin = 1; 00312 00313 WriteCommand(0xa0); //ADC=0 Normal 00314 WriteCommand(0xc8); //SHL=1 flipped in y-direction 00315 WriteCommand(0xa2); //Bias=0; 1/9 Bias 00316 WriteCommand(0x2f); //Power Control VF, VR, VC 00317 WriteCommand(0xae); //Display OFF 00318 WriteCommand(0x81); //Set voltage reference mode 00319 WriteCommand(0x29); //Power Control VF 00320 WriteCommand(0x40); //Set display start line 00321 WriteCommand(0xaf); //Display ON 00322 00323 for(i=0;i<128;i++) 00324 for(j=0;j<8;j++) 00325 DisplayRAM[i][j]=0x00; 00326 00327 CS1pin = 1; 00328 00329 ClrScr(0); 00330 } 00331 00332 00333 void LM6029ACW::WriteCharCol(unsigned char v, unsigned char x, unsigned char page, unsigned char color) 00334 { 00335 if(color==0) 00336 { 00337 WriteData(~v); 00338 DisplayRAM[x][page] = ~v; 00339 } 00340 else 00341 { 00342 WriteData(v); 00343 DisplayRAM[x][page] = v; 00344 } 00345 } 00346 00347 00348 00349 void LM6029ACW::DrawChar(unsigned char c, unsigned char x, unsigned char page, unsigned char color) 00350 { 00351 CS1pin = 0; 00352 SetColumn(x); 00353 SetPage(page); 00354 00355 switch(c) 00356 { 00357 case 32: // 'SPACE' 00358 { 00359 WriteCharCol(0x00, x, page, color); 00360 WriteCharCol(0x00, x+1, page, color); 00361 WriteCharCol(0x00, x+2, page, color); 00362 WriteCharCol(0x00, x+3, page, color); 00363 WriteCharCol(0x00, x+4, page, color); 00364 }break; 00365 00366 case 33: // '!' 00367 { 00368 WriteCharCol(0x00, x, page, color); 00369 WriteCharCol(0x00, x+1, page, color); 00370 WriteCharCol(0x9e, x+2, page, color); 00371 WriteCharCol(0x00, x+3, page, color); 00372 WriteCharCol(0x00, x+4, page, color); 00373 }break; 00374 00375 case 34: // '"' 00376 { 00377 WriteCharCol(0x00, x, page, color); 00378 WriteCharCol(0x0e, x+1, page, color); 00379 WriteCharCol(0x00, x+2, page, color); 00380 WriteCharCol(0x0e, x+3, page, color); 00381 WriteCharCol(0x00, x+4, page, color); 00382 }break; 00383 00384 case 35: // '#' 00385 { 00386 WriteCharCol(0x28, x, page, color); 00387 WriteCharCol(0xfe, x+1, page, color); 00388 WriteCharCol(0x28, x+2, page, color); 00389 WriteCharCol(0xfe, x+3, page, color); 00390 WriteCharCol(0x28, x+4, page, color); 00391 }break; 00392 00393 case 36: // '$' 00394 { 00395 WriteCharCol(0x48, x, page, color); 00396 WriteCharCol(0x54, x+1, page, color); 00397 WriteCharCol(0xfe, x+2, page, color); 00398 WriteCharCol(0x54, x+3, page, color); 00399 WriteCharCol(0x24, x+4, page, color); 00400 }break; 00401 00402 case 37: // '%' 00403 { 00404 WriteCharCol(0x46, x, page, color); 00405 WriteCharCol(0x26, x+1, page, color); 00406 WriteCharCol(0x10, x+2, page, color); 00407 WriteCharCol(0xc8, x+3, page, color); 00408 WriteCharCol(0xc4, x+4, page, color); 00409 }break; 00410 00411 case 38: // '&' 00412 { 00413 WriteCharCol(0x6c, x, page, color); 00414 WriteCharCol(0x92, x+1, page, color); 00415 WriteCharCol(0xaa, x+2, page, color); 00416 WriteCharCol(0x44, x+3, page, color); 00417 WriteCharCol(0xa0, x+4, page, color); 00418 }break; 00419 00420 case 39: // ''' 00421 { 00422 WriteCharCol(0x00, x, page, color); 00423 WriteCharCol(0x0a, x+1, page, color); 00424 WriteCharCol(0x06, x+2, page, color); 00425 WriteCharCol(0x00, x+3, page, color); 00426 WriteCharCol(0x00, x+4, page, color); 00427 }break; 00428 00429 case 40: // '(' 00430 { 00431 WriteCharCol(0x00, x, page, color); 00432 WriteCharCol(0x38, x+1, page, color); 00433 WriteCharCol(0x44, x+2, page, color); 00434 WriteCharCol(0x82, x+3, page, color); 00435 WriteCharCol(0x00, x+4, page, color); 00436 }break; 00437 00438 case 41: // ')' 00439 { 00440 WriteCharCol(0x00, x, page, color); 00441 WriteCharCol(0x82, x+1, page, color); 00442 WriteCharCol(0x44, x+2, page, color); 00443 WriteCharCol(0x38, x+3, page, color); 00444 WriteCharCol(0x00, x+4, page, color); 00445 }break; 00446 00447 case 42: // '*' 00448 { 00449 WriteCharCol(0x28, x, page, color); 00450 WriteCharCol(0x10, x+1, page, color); 00451 WriteCharCol(0x7c, x+2, page, color); 00452 WriteCharCol(0x10, x+3, page, color); 00453 WriteCharCol(0x28, x+4, page, color); 00454 }break; 00455 00456 case 43: // '+' 00457 { 00458 WriteCharCol(0x10, x, page, color); 00459 WriteCharCol(0x10, x+1, page, color); 00460 WriteCharCol(0x7c, x+2, page, color); 00461 WriteCharCol(0x10, x+3, page, color); 00462 WriteCharCol(0x10, x+4, page, color); 00463 }break; 00464 00465 case 44: // ',' 00466 { 00467 WriteCharCol(0x00, x, page, color); 00468 WriteCharCol(0xa0, x+1, page, color); 00469 WriteCharCol(0x60, x+2, page, color); 00470 WriteCharCol(0x00, x+3, page, color); 00471 WriteCharCol(0x00, x+4, page, color); 00472 }break; 00473 00474 case 45: // '-' 00475 { 00476 WriteCharCol(0x10, x, page, color); 00477 WriteCharCol(0x10, x+1, page, color); 00478 WriteCharCol(0x10, x+2, page, color); 00479 WriteCharCol(0x10, x+3, page, color); 00480 WriteCharCol(0x10, x+4, page, color); 00481 }break; 00482 00483 case 46: // '.' 00484 { 00485 WriteCharCol(0x00, x, page, color); 00486 WriteCharCol(0xc0, x+1, page, color); 00487 WriteCharCol(0xc0, x+2, page, color); 00488 WriteCharCol(0x00, x+3, page, color); 00489 WriteCharCol(0x00, x+4, page, color); 00490 }break; 00491 00492 case 47: // '/' 00493 { 00494 WriteCharCol(0x40, x, page, color); 00495 WriteCharCol(0x20, x+1, page, color); 00496 WriteCharCol(0x10, x+2, page, color); 00497 WriteCharCol(0x08, x+3, page, color); 00498 WriteCharCol(0x04, x+4, page, color); 00499 }break; 00500 00501 case 48: // '0' 00502 { 00503 WriteCharCol(0x7c, x, page, color); 00504 WriteCharCol(0xa2, x+1, page, color); 00505 WriteCharCol(0x92, x+2, page, color); 00506 WriteCharCol(0x8a, x+3, page, color); 00507 WriteCharCol(0x7c, x+4, page, color); 00508 }break; 00509 00510 case 49: // '1' 00511 { 00512 WriteCharCol(0x00, x, page, color); 00513 WriteCharCol(0x84, x+1, page, color); 00514 WriteCharCol(0xfe, x+2, page, color); 00515 WriteCharCol(0x80, x+3, page, color); 00516 WriteCharCol(0x00, x+4, page, color); 00517 }break; 00518 00519 case 50: // '2' 00520 { 00521 WriteCharCol(0x84, x, page, color); 00522 WriteCharCol(0xc2, x+1, page, color); 00523 WriteCharCol(0xa2, x+2, page, color); 00524 WriteCharCol(0x92, x+3, page, color); 00525 WriteCharCol(0x8c, x+4, page, color); 00526 }break; 00527 00528 case 51: // '3' 00529 { 00530 WriteCharCol(0x42, x, page, color); 00531 WriteCharCol(0x82, x+1, page, color); 00532 WriteCharCol(0x8a, x+2, page, color); 00533 WriteCharCol(0x96, x+3, page, color); 00534 WriteCharCol(0x62, x+4, page, color); 00535 }break; 00536 00537 case 52: // '4' 00538 { 00539 WriteCharCol(0x30, x, page, color); 00540 WriteCharCol(0x28, x+1, page, color); 00541 WriteCharCol(0x24, x+2, page, color); 00542 WriteCharCol(0xfe, x+3, page, color); 00543 WriteCharCol(0x20, x+4, page, color); 00544 }break; 00545 00546 case 53: // '5' 00547 { 00548 WriteCharCol(0x4e, x, page, color); 00549 WriteCharCol(0x8a, x+1, page, color); 00550 WriteCharCol(0x8a, x+2, page, color); 00551 WriteCharCol(0x8a, x+3, page, color); 00552 WriteCharCol(0x72, x+4, page, color); 00553 }break; 00554 00555 case 54: // '6' 00556 { 00557 WriteCharCol(0x78, x, page, color); 00558 WriteCharCol(0x94, x+1, page, color); 00559 WriteCharCol(0x92, x+2, page, color); 00560 WriteCharCol(0x92, x+3, page, color); 00561 WriteCharCol(0x60, x+4, page, color); 00562 }break; 00563 00564 case 55: // '7' 00565 { 00566 WriteCharCol(0x02, x, page, color); 00567 WriteCharCol(0xe2, x+1, page, color); 00568 WriteCharCol(0x12, x+2, page, color); 00569 WriteCharCol(0x0a, x+3, page, color); 00570 WriteCharCol(0x06, x+4, page, color); 00571 }break; 00572 00573 case 56: // '8' 00574 { 00575 WriteCharCol(0x6c, x, page, color); 00576 WriteCharCol(0x92, x+1, page, color); 00577 WriteCharCol(0x92, x+2, page, color); 00578 WriteCharCol(0x92, x+3, page, color); 00579 WriteCharCol(0x6c, x+4, page, color); 00580 }break; 00581 00582 case 57: // '9' 00583 { 00584 WriteCharCol(0x0c, x, page, color); 00585 WriteCharCol(0x92, x+1, page, color); 00586 WriteCharCol(0x92, x+2, page, color); 00587 WriteCharCol(0x52, x+3, page, color); 00588 WriteCharCol(0x3c, x+4, page, color); 00589 }break; 00590 00591 case 58: // ':' 00592 { 00593 WriteCharCol(0x00, x, page, color); 00594 WriteCharCol(0x6c, x+1, page, color); 00595 WriteCharCol(0x6c, x+2, page, color); 00596 WriteCharCol(0x00, x+3, page, color); 00597 WriteCharCol(0x00, x+4, page, color); 00598 }break; 00599 00600 case 59: // ';' 00601 { 00602 WriteCharCol(0x00, x, page, color); 00603 WriteCharCol(0xac, x+1, page, color); 00604 WriteCharCol(0x6c, x+2, page, color); 00605 WriteCharCol(0x00, x+3, page, color); 00606 WriteCharCol(0x00, x+4, page, color); 00607 }break; 00608 00609 case 60: // '<' 00610 { 00611 WriteCharCol(0x10, x, page, color); 00612 WriteCharCol(0x28, x+1, page, color); 00613 WriteCharCol(0x44, x+2, page, color); 00614 WriteCharCol(0x82, x+3, page, color); 00615 WriteCharCol(0x00, x+4, page, color); 00616 }break; 00617 00618 case 61: // '=' 00619 { 00620 WriteCharCol(0x28, x, page, color); 00621 WriteCharCol(0x28, x+1, page, color); 00622 WriteCharCol(0x28, x+2, page, color); 00623 WriteCharCol(0x28, x+3, page, color); 00624 WriteCharCol(0x28, x+4, page, color); 00625 }break; 00626 00627 case 62: // '>' 00628 { 00629 WriteCharCol(0x00, x, page, color); 00630 WriteCharCol(0x82, x+1, page, color); 00631 WriteCharCol(0x44, x+2, page, color); 00632 WriteCharCol(0x28, x+3, page, color); 00633 WriteCharCol(0x10, x+4, page, color); 00634 }break; 00635 00636 case 63: // '?' 00637 { 00638 WriteCharCol(0x04, x, page, color); 00639 WriteCharCol(0x02, x+1, page, color); 00640 WriteCharCol(0xa2, x+2, page, color); 00641 WriteCharCol(0x12, x+3, page, color); 00642 WriteCharCol(0x0c, x+4, page, color); 00643 }break; 00644 00645 case 64: // '@' 00646 { 00647 WriteCharCol(0x64, x, page, color); 00648 WriteCharCol(0x92, x+1, page, color); 00649 WriteCharCol(0xf2, x+2, page, color); 00650 WriteCharCol(0x82, x+3, page, color); 00651 WriteCharCol(0x7c, x+4, page, color); 00652 }break; 00653 00654 case 65: // 'A' 00655 { 00656 WriteCharCol(0xfc, x, page, color); 00657 WriteCharCol(0x22, x+1, page, color); 00658 WriteCharCol(0x22, x+2, page, color); 00659 WriteCharCol(0x22, x+3, page, color); 00660 WriteCharCol(0xfc, x+4, page, color); 00661 }break; 00662 00663 case 66: // 'B' 00664 { 00665 WriteCharCol(0xfe, x, page, color); 00666 WriteCharCol(0x92, x+1, page, color); 00667 WriteCharCol(0x92, x+2, page, color); 00668 WriteCharCol(0x92, x+3, page, color); 00669 WriteCharCol(0x6c, x+4, page, color); 00670 }break; 00671 00672 case 67: // 'C' 00673 { 00674 WriteCharCol(0x7c, x, page, color); 00675 WriteCharCol(0x82, x+1, page, color); 00676 WriteCharCol(0x82, x+2, page, color); 00677 WriteCharCol(0x82, x+3, page, color); 00678 WriteCharCol(0x44, x+4, page, color); 00679 }break; 00680 00681 case 68: // 'D' 00682 { 00683 WriteCharCol(0xfe, x, page, color); 00684 WriteCharCol(0x82, x+1, page, color); 00685 WriteCharCol(0x82, x+2, page, color); 00686 WriteCharCol(0x44, x+3, page, color); 00687 WriteCharCol(0x38, x+4, page, color); 00688 }break; 00689 00690 case 69: // 'E' 00691 { 00692 WriteCharCol(0xfe, x, page, color); 00693 WriteCharCol(0x92, x+1, page, color); 00694 WriteCharCol(0x92, x+2, page, color); 00695 WriteCharCol(0x92, x+3, page, color); 00696 WriteCharCol(0x82, x+4, page, color); 00697 }break; 00698 00699 case 70: // 'F' 00700 { 00701 WriteCharCol(0xfe, x, page, color); 00702 WriteCharCol(0x12, x+1, page, color); 00703 WriteCharCol(0x12, x+2, page, color); 00704 WriteCharCol(0x12, x+3, page, color); 00705 WriteCharCol(0x02, x+4, page, color); 00706 }break; 00707 00708 case 71: // 'G' 00709 { 00710 WriteCharCol(0x7c, x, page, color); 00711 WriteCharCol(0x82, x+1, page, color); 00712 WriteCharCol(0x92, x+2, page, color); 00713 WriteCharCol(0x92, x+3, page, color); 00714 WriteCharCol(0xf4, x+4, page, color); 00715 }break; 00716 00717 case 72: // 'H' 00718 { 00719 WriteCharCol(0xfe, x, page, color); 00720 WriteCharCol(0x10, x+1, page, color); 00721 WriteCharCol(0x10, x+2, page, color); 00722 WriteCharCol(0x10, x+3, page, color); 00723 WriteCharCol(0xfe, x+4, page, color); 00724 }break; 00725 00726 case 73: // 'I' 00727 { 00728 WriteCharCol(0x00, x, page, color); 00729 WriteCharCol(0x82, x+1, page, color); 00730 WriteCharCol(0xfe, x+2, page, color); 00731 WriteCharCol(0x82, x+3, page, color); 00732 WriteCharCol(0x00, x+4, page, color); 00733 }break; 00734 00735 case 74: // 'J' 00736 { 00737 WriteCharCol(0x40, x, page, color); 00738 WriteCharCol(0x80, x+1, page, color); 00739 WriteCharCol(0x82, x+2, page, color); 00740 WriteCharCol(0x7e, x+3, page, color); 00741 WriteCharCol(0x02, x+4, page, color); 00742 }break; 00743 00744 case 75: // 'K' 00745 { 00746 WriteCharCol(0xfe, x, page, color); 00747 WriteCharCol(0x10, x+1, page, color); 00748 WriteCharCol(0x28, x+2, page, color); 00749 WriteCharCol(0x44, x+3, page, color); 00750 WriteCharCol(0x82, x+4, page, color); 00751 }break; 00752 00753 case 76: // 'L' 00754 { 00755 WriteCharCol(0xfe, x, page, color); 00756 WriteCharCol(0x80, x+1, page, color); 00757 WriteCharCol(0x80, x+2, page, color); 00758 WriteCharCol(0x80, x+3, page, color); 00759 WriteCharCol(0x80, x+4, page, color); 00760 }break; 00761 00762 case 77: // 'M' 00763 { 00764 WriteCharCol(0xfe, x, page, color); 00765 WriteCharCol(0x04, x+1, page, color); 00766 WriteCharCol(0x18, x+2, page, color); 00767 WriteCharCol(0x04, x+3, page, color); 00768 WriteCharCol(0xfe, x+4, page, color); 00769 }break; 00770 00771 case 78: // 'N' 00772 { 00773 WriteCharCol(0xfe, x, page, color); 00774 WriteCharCol(0x08, x+1, page, color); 00775 WriteCharCol(0x10, x+2, page, color); 00776 WriteCharCol(0x20, x+3, page, color); 00777 WriteCharCol(0xfe, x+4, page, color); 00778 }break; 00779 00780 case 79: // 'O' 00781 { 00782 WriteCharCol(0x7c, x, page, color); 00783 WriteCharCol(0x82, x+1, page, color); 00784 WriteCharCol(0x82, x+2, page, color); 00785 WriteCharCol(0x82, x+3, page, color); 00786 WriteCharCol(0x7c, x+4, page, color); 00787 }break; 00788 00789 case 80: // 'P' 00790 { 00791 WriteCharCol(0xfe, x, page, color); 00792 WriteCharCol(0x12, x+1, page, color); 00793 WriteCharCol(0x12, x+2, page, color); 00794 WriteCharCol(0x12, x+3, page, color); 00795 WriteCharCol(0x0c, x+4, page, color); 00796 }break; 00797 00798 case 81: // 'Q' 00799 { 00800 WriteCharCol(0x7c, x, page, color); 00801 WriteCharCol(0x82, x+1, page, color); 00802 WriteCharCol(0xa2, x+2, page, color); 00803 WriteCharCol(0x42, x+3, page, color); 00804 WriteCharCol(0xbc, x+4, page, color); 00805 }break; 00806 00807 case 82: // 'R' 00808 { 00809 WriteCharCol(0xfe, x, page, color); 00810 WriteCharCol(0x12, x+1, page, color); 00811 WriteCharCol(0x32, x+2, page, color); 00812 WriteCharCol(0x52, x+3, page, color); 00813 WriteCharCol(0x8c, x+4, page, color); 00814 }break; 00815 00816 case 83: // 'S' 00817 { 00818 WriteCharCol(0x8c, x, page, color); 00819 WriteCharCol(0x92, x+1, page, color); 00820 WriteCharCol(0x92, x+2, page, color); 00821 WriteCharCol(0x92, x+3, page, color); 00822 WriteCharCol(0x62, x+4, page, color); 00823 }break; 00824 00825 case 84: // 'T' 00826 { 00827 WriteCharCol(0x02, x, page, color); 00828 WriteCharCol(0x02, x+1, page, color); 00829 WriteCharCol(0xfe, x+2, page, color); 00830 WriteCharCol(0x02, x+3, page, color); 00831 WriteCharCol(0x02, x+4, page, color); 00832 }break; 00833 00834 case 85: // 'U' 00835 { 00836 WriteCharCol(0x7e, x, page, color); 00837 WriteCharCol(0x80, x+1, page, color); 00838 WriteCharCol(0x80, x+2, page, color); 00839 WriteCharCol(0x80, x+3, page, color); 00840 WriteCharCol(0x7e, x+4, page, color); 00841 }break; 00842 00843 case 86: // 'V' 00844 { 00845 WriteCharCol(0x3e, x, page, color); 00846 WriteCharCol(0x40, x+1, page, color); 00847 WriteCharCol(0x80, x+2, page, color); 00848 WriteCharCol(0x40, x+3, page, color); 00849 WriteCharCol(0x3e, x+4, page, color); 00850 }break; 00851 00852 case 87: // 'W' 00853 { 00854 WriteCharCol(0x7e, x, page, color); 00855 WriteCharCol(0x80, x+1, page, color); 00856 WriteCharCol(0x70, x+2, page, color); 00857 WriteCharCol(0x80, x+3, page, color); 00858 WriteCharCol(0x7e, x+4, page, color); 00859 }break; 00860 00861 case 88: // 'X' 00862 { 00863 WriteCharCol(0xc6, x, page, color); 00864 WriteCharCol(0x28, x+1, page, color); 00865 WriteCharCol(0x10, x+2, page, color); 00866 WriteCharCol(0x28, x+3, page, color); 00867 WriteCharCol(0xc6, x+4, page, color); 00868 }break; 00869 00870 case 89: // 'Y' 00871 { 00872 WriteCharCol(0x0e, x, page, color); 00873 WriteCharCol(0x10, x+1, page, color); 00874 WriteCharCol(0xe0, x+2, page, color); 00875 WriteCharCol(0x10, x+3, page, color); 00876 WriteCharCol(0x0e, x+4, page, color); 00877 }break; 00878 00879 case 90: // 'Z' 00880 { 00881 WriteCharCol(0xc2, x, page, color); 00882 WriteCharCol(0xa2, x+1, page, color); 00883 WriteCharCol(0x92, x+2, page, color); 00884 WriteCharCol(0x8a, x+3, page, color); 00885 WriteCharCol(0x86, x+4, page, color); 00886 }break; 00887 00888 case 91: // '[' 00889 { 00890 WriteCharCol(0x00, x, page, color); 00891 WriteCharCol(0xfe, x+1, page, color); 00892 WriteCharCol(0x82, x+2, page, color); 00893 WriteCharCol(0x82, x+3, page, color); 00894 WriteCharCol(0x00, x+4, page, color); 00895 }break; 00896 00897 case 92: // '\' 00898 { 00899 WriteCharCol(0x04, x, page, color); 00900 WriteCharCol(0x08, x+1, page, color); 00901 WriteCharCol(0x10, x+2, page, color); 00902 WriteCharCol(0x20, x+3, page, color); 00903 WriteCharCol(0x40, x+4, page, color); 00904 }break; 00905 00906 case 93: // ']' 00907 { 00908 WriteCharCol(0x00, x, page, color); 00909 WriteCharCol(0x82, x+1, page, color); 00910 WriteCharCol(0x82, x+2, page, color); 00911 WriteCharCol(0xfe, x+3, page, color); 00912 WriteCharCol(0x00, x+4, page, color); 00913 }break; 00914 00915 case 94: // '^' 00916 { 00917 WriteCharCol(0x08, x, page, color); 00918 WriteCharCol(0x04, x+1, page, color); 00919 WriteCharCol(0x02, x+2, page, color); 00920 WriteCharCol(0x04, x+3, page, color); 00921 WriteCharCol(0x08, x+4, page, color); 00922 }break; 00923 00924 case 95: // '_' 00925 { 00926 WriteCharCol(0x80, x, page, color); 00927 WriteCharCol(0x80, x+1, page, color); 00928 WriteCharCol(0x80, x+2, page, color); 00929 WriteCharCol(0x80, x+3, page, color); 00930 WriteCharCol(0x80, x+4, page, color); 00931 }break; 00932 00933 case 96: // '`' 00934 { 00935 WriteCharCol(0x00, x, page, color); 00936 WriteCharCol(0x02, x+1, page, color); 00937 WriteCharCol(0x04, x+2, page, color); 00938 WriteCharCol(0x08, x+3, page, color); 00939 WriteCharCol(0x00, x+4, page, color); 00940 }break; 00941 00942 case 97: // 'a' 00943 { 00944 WriteCharCol(0x40, x, page, color); 00945 WriteCharCol(0xa8, x+1, page, color); 00946 WriteCharCol(0xa8, x+2, page, color); 00947 WriteCharCol(0xa8, x+3, page, color); 00948 WriteCharCol(0xf0, x+4, page, color); 00949 }break; 00950 00951 case 98: // 'b' 00952 { 00953 WriteCharCol(0xfe, x, page, color); 00954 WriteCharCol(0x90, x+1, page, color); 00955 WriteCharCol(0x88, x+2, page, color); 00956 WriteCharCol(0x88, x+3, page, color); 00957 WriteCharCol(0x70, x+4, page, color); 00958 }break; 00959 00960 case 99: // 'c' 00961 { 00962 WriteCharCol(0x70, x, page, color); 00963 WriteCharCol(0x88, x+1, page, color); 00964 WriteCharCol(0x88, x+2, page, color); 00965 WriteCharCol(0x88, x+3, page, color); 00966 WriteCharCol(0x40, x+4, page, color); 00967 }break; 00968 00969 case 100: // 'd' 00970 { 00971 WriteCharCol(0x70, x, page, color); 00972 WriteCharCol(0x88, x+1, page, color); 00973 WriteCharCol(0x88, x+2, page, color); 00974 WriteCharCol(0x90, x+3, page, color); 00975 WriteCharCol(0xfe, x+4, page, color); 00976 }break; 00977 00978 case 101: // 'e' 00979 { 00980 WriteCharCol(0x70, x, page, color); 00981 WriteCharCol(0xa8, x+1, page, color); 00982 WriteCharCol(0xa8, x+2, page, color); 00983 WriteCharCol(0xa8, x+3, page, color); 00984 WriteCharCol(0x30, x+4, page, color); 00985 }break; 00986 00987 case 102: // 'f' 00988 { 00989 WriteCharCol(0x10, x, page, color); 00990 WriteCharCol(0xfc, x+1, page, color); 00991 WriteCharCol(0x12, x+2, page, color); 00992 WriteCharCol(0x02, x+3, page, color); 00993 WriteCharCol(0x04, x+4, page, color); 00994 }break; 00995 00996 case 103: // 'g' 00997 { 00998 WriteCharCol(0x18, x, page, color); 00999 WriteCharCol(0xa4, x+1, page, color); 01000 WriteCharCol(0xa4, x+2, page, color); 01001 WriteCharCol(0xa4, x+3, page, color); 01002 WriteCharCol(0x7c, x+4, page, color); 01003 }break; 01004 01005 case 104: // 'h' 01006 { 01007 WriteCharCol(0xfe, x, page, color); 01008 WriteCharCol(0x10, x+1, page, color); 01009 WriteCharCol(0x08, x+2, page, color); 01010 WriteCharCol(0x08, x+3, page, color); 01011 WriteCharCol(0xf0, x+4, page, color); 01012 }break; 01013 01014 case 105: // 'i' 01015 { 01016 WriteCharCol(0x00, x, page, color); 01017 WriteCharCol(0x88, x+1, page, color); 01018 WriteCharCol(0xfa, x+2, page, color); 01019 WriteCharCol(0x80, x+3, page, color); 01020 WriteCharCol(0x00, x+4, page, color); 01021 }break; 01022 01023 case 106: // 'j' 01024 { 01025 WriteCharCol(0x40, x, page, color); 01026 WriteCharCol(0x80, x+1, page, color); 01027 WriteCharCol(0x88, x+2, page, color); 01028 WriteCharCol(0x7a, x+3, page, color); 01029 WriteCharCol(0x00, x+4, page, color); 01030 }break; 01031 01032 case 107: // 'k' 01033 { 01034 WriteCharCol(0xfe, x, page, color); 01035 WriteCharCol(0x20, x+1, page, color); 01036 WriteCharCol(0x50, x+2, page, color); 01037 WriteCharCol(0x88, x+3, page, color); 01038 WriteCharCol(0x00, x+4, page, color); 01039 }break; 01040 01041 case 108: // 'l' 01042 { 01043 WriteCharCol(0x00, x, page, color); 01044 WriteCharCol(0x82, x+1, page, color); 01045 WriteCharCol(0xfe, x+2, page, color); 01046 WriteCharCol(0x80, x+3, page, color); 01047 WriteCharCol(0x00, x+4, page, color); 01048 }break; 01049 01050 case 109: // 'm' 01051 { 01052 WriteCharCol(0xf8, x, page, color); 01053 WriteCharCol(0x08, x+1, page, color); 01054 WriteCharCol(0x30, x+2, page, color); 01055 WriteCharCol(0x08, x+3, page, color); 01056 WriteCharCol(0xf0, x+4, page, color); 01057 }break; 01058 01059 case 110: // 'n' 01060 { 01061 WriteCharCol(0xf8, x, page, color); 01062 WriteCharCol(0x10, x+1, page, color); 01063 WriteCharCol(0x08, x+2, page, color); 01064 WriteCharCol(0x08, x+3, page, color); 01065 WriteCharCol(0xf0, x+4, page, color); 01066 }break; 01067 01068 case 111: // 'o' 01069 { 01070 WriteCharCol(0x70, x, page, color); 01071 WriteCharCol(0x88, x+1, page, color); 01072 WriteCharCol(0x88, x+2, page, color); 01073 WriteCharCol(0x88, x+3, page, color); 01074 WriteCharCol(0x70, x+4, page, color); 01075 }break; 01076 01077 case 112: // 'p' 01078 { 01079 WriteCharCol(0xf8, x, page, color); 01080 WriteCharCol(0x28, x+1, page, color); 01081 WriteCharCol(0x28, x+2, page, color); 01082 WriteCharCol(0x28, x+3, page, color); 01083 WriteCharCol(0x10, x+4, page, color); 01084 }break; 01085 01086 case 113: // 'q' 01087 { 01088 WriteCharCol(0x10, x, page, color); 01089 WriteCharCol(0x28, x+1, page, color); 01090 WriteCharCol(0x28, x+2, page, color); 01091 WriteCharCol(0x30, x+3, page, color); 01092 WriteCharCol(0xf8, x+4, page, color); 01093 }break; 01094 01095 case 114: // 'r' 01096 { 01097 WriteCharCol(0xf8, x, page, color); 01098 WriteCharCol(0x10, x+1, page, color); 01099 WriteCharCol(0x08, x+2, page, color); 01100 WriteCharCol(0x08, x+3, page, color); 01101 WriteCharCol(0x10, x+4, page, color); 01102 }break; 01103 01104 case 115: // 's' 01105 { 01106 WriteCharCol(0x90, x, page, color); 01107 WriteCharCol(0xa8, x+1, page, color); 01108 WriteCharCol(0xa8, x+2, page, color); 01109 WriteCharCol(0xa8, x+3, page, color); 01110 WriteCharCol(0x40, x+4, page, color); 01111 }break; 01112 01113 case 116: // 't' 01114 { 01115 WriteCharCol(0x08, x, page, color); 01116 WriteCharCol(0x7e, x+1, page, color); 01117 WriteCharCol(0x88, x+2, page, color); 01118 WriteCharCol(0x80, x+3, page, color); 01119 WriteCharCol(0x40, x+4, page, color); 01120 }break; 01121 01122 case 117: // 'u' 01123 { 01124 WriteCharCol(0x78, x, page, color); 01125 WriteCharCol(0x80, x+1, page, color); 01126 WriteCharCol(0x80, x+2, page, color); 01127 WriteCharCol(0x40, x+3, page, color); 01128 WriteCharCol(0xf8, x+4, page, color); 01129 }break; 01130 01131 case 118: // 'v' 01132 { 01133 WriteCharCol(0x38, x, page, color); 01134 WriteCharCol(0x40, x+1, page, color); 01135 WriteCharCol(0x80, x+2, page, color); 01136 WriteCharCol(0x40, x+3, page, color); 01137 WriteCharCol(0x38, x+4, page, color); 01138 }break; 01139 01140 case 119: // 'w' 01141 { 01142 WriteCharCol(0x78, x, page, color); 01143 WriteCharCol(0x80, x+1, page, color); 01144 WriteCharCol(0x60, x+2, page, color); 01145 WriteCharCol(0x80, x+3, page, color); 01146 WriteCharCol(0x78, x+4, page, color); 01147 }break; 01148 01149 case 120: // 'x' 01150 { 01151 WriteCharCol(0x88, x, page, color); 01152 WriteCharCol(0x50, x+1, page, color); 01153 WriteCharCol(0x20, x+2, page, color); 01154 WriteCharCol(0x50, x+3, page, color); 01155 WriteCharCol(0x88, x+4, page, color); 01156 }break; 01157 01158 case 121: // 'y' 01159 { 01160 WriteCharCol(0x18, x, page, color); 01161 WriteCharCol(0xa0, x+1, page, color); 01162 WriteCharCol(0xa0, x+2, page, color); 01163 WriteCharCol(0xa0, x+3, page, color); 01164 WriteCharCol(0x78, x+4, page, color); 01165 }break; 01166 01167 case 122: // 'z' 01168 { 01169 WriteCharCol(0x88, x, page, color); 01170 WriteCharCol(0xc8, x+1, page, color); 01171 WriteCharCol(0xa8, x+2, page, color); 01172 WriteCharCol(0x98, x+3, page, color); 01173 WriteCharCol(0x88, x+4, page, color); 01174 }break; 01175 01176 case 123: // '{' 01177 { 01178 WriteCharCol(0x00, x, page, color); 01179 WriteCharCol(0x10, x+1, page, color); 01180 WriteCharCol(0x6c, x+2, page, color); 01181 WriteCharCol(0x82, x+3, page, color); 01182 WriteCharCol(0x00, x+4, page, color); 01183 }break; 01184 01185 case 124: // '|' 01186 { 01187 WriteCharCol(0x00, x, page, color); 01188 WriteCharCol(0x00, x+1, page, color); 01189 WriteCharCol(0xfe, x+2, page, color); 01190 WriteCharCol(0x00, x+3, page, color); 01191 WriteCharCol(0x00, x+4, page, color); 01192 }break; 01193 01194 case 125: // '}' 01195 { 01196 WriteCharCol(0x00, x, page, color); 01197 WriteCharCol(0x82, x+1, page, color); 01198 WriteCharCol(0x6c, x+2, page, color); 01199 WriteCharCol(0x10, x+3, page, color); 01200 WriteCharCol(0x00, x+4, page, color); 01201 }break; 01202 01203 case 126: // '~' 01204 { 01205 WriteCharCol(0x20, x, page, color); 01206 WriteCharCol(0x10, x+1, page, color); 01207 WriteCharCol(0x10, x+2, page, color); 01208 WriteCharCol(0x20, x+3, page, color); 01209 WriteCharCol(0x10, x+4, page, color); 01210 }break; 01211 /* 01212 01213 case : // '' 01214 { 01215 WriteCharCol(0x, x, page, color); 01216 WriteCharCol(0x, x+1, page, color); 01217 WriteCharCol(0x, x+2, page, color); 01218 WriteCharCol(0x, x+3, page, color); 01219 WriteCharCol(0x, x+4, page, color); 01220 }break; 01221 */ 01222 01223 default: // not supported, print box 01224 { 01225 WriteData(0xfe); 01226 WriteData(0xfe); 01227 WriteData(0xfe); 01228 WriteData(0xfe); 01229 WriteData(0xfe); 01230 } 01231 } 01232 WriteCharCol(0x00, x+5, page, color); //default last blank column of 6 x 8 character 01233 01234 CS1pin = 1; 01235 } 01236
Generated on Thu Jul 14 2022 21:57:33 by 1.7.2