【正文】
0x3E0x510x490x450x3E 0 0x000x420x7F0x400x00 1 0x620x510x490x490x46 2 0x210x410x490x4D0x33 3 0x180x140x120x7F0x10 4 0x270x450x450x450x39 5 0x3C0x4A0x490x490x31 6 0x010x710x090x050x03 7 0x360x490x490x490x36 8 0x460x490x490x290x1E 9 0x000x360x360x000x00 10 next 0x7F0x040x080x100x7F N11 0x7F0x490x490x490x41 E12 0x630x140x080x140x63 X13 0x010x010x7F0x010x01 T14 speed 0x260x490x490x490x32 S15 0x7F0x090x090x090x06 P16 0x7F0x490x490x490x41 E17 0x7F0x410x410x410x3E D18 score 0x3E0x410x410x410x22 C19 0x3E0x410x410x410x3E O20 0x7F0x090x190x290x46 R21 0x000x000x000x000x00 22 GAME OVER 0x3E0x410x510x510x72 G23 0x7C0x120x110x120x7C A24 0x7F0x020x0C0x020x7F M25 0x1F0x200x400x200x1F V26 TIME 0x000x410x7F0x410x00 I27 void lcdCmd uchar cmd bit ea ea EA EA 0 EN 0 RW 0 RS 0 LCD cmd EN 1 EN 1 EN 0 EA ea void lcdWriteByte uchar ch EN 0 RS 1 RW 0 LCD ch EN 1 EN 1 EN 0 void lcdSetPage uchar page page 0x7 page 0xb8 lcdCmd page void lcdSetColumn uchar column column 0x3f column 0x40 lcdCmd column character fron 58 void lcdPlayChar uchar indexuchar pageuchar colume uchar itemp uint p p 5index for i columei colume5i if i 64 CS1 1 CS2 0 temp i else CS1 0 CS2 1 temp i64 lcdSetPage page lcdSetColumn temp lcdWriteByte asii[p] rectangle 305060 void rectangle void uchar ipage CS1 1 CS2 0 lcdSetPage 0 lcdSetColumn 2 EN 0 RS 1 RW 0 LCD 0xff EN 1 EN 1 EN 0 for i 3i 51i EN 0 RS 1 RW 0 LCD 0x1 EN 1 EN 1 EN 0 EN 0 RS 1 RW 0 LCD 0xff EN 1 EN 1 EN 0 for page 1page 7page lcdSetPage page lcdSetColumn 2 EN 0 RS 1 RW 0 LCD 0xff EN 1 EN 1 EN 0 for i 3i 51i EN 0 RS 1 RW 0 LCD 0x0 EN 1 EN 1 EN 0 EN 0 RS 1 RW 0 LCD 0xff EN 1 EN 1 EN 0 lcdSetPage 7 lcdSetColumn 2 EN 0 RS 1 RW 0 LCD 0x1f EN 1 EN 1 EN 0 for i 3i 51i EN 0 RS 1 RW 0 LCD 0x10 EN 1 EN 1 EN 0 EN 0 RS 1 RW 0 LCD 0x1f EN 1 EN 1 EN 0 x 列 y 行頁(yè) 33 void lcdPutPix uchar x uchar yuchar flag uchar idatbitmasknextbit bit bflagpflagea x xPIX y yPIX bflag 0 pflag 0 i y8 if i 0 bitmask 0x7 else if i 1 bitmask 0xe else if i 2 bitmask 0x1c else if i 3 bitmask 0x38 else if i 4 bitmask 0x70 else if i 5 bitmask 0xe0 else if i 6 bflag 1 bitmask 0xc0 nextbit 1 else if i 7 bflag 1 bitmask 0x80 nextbit 3 if x 62 CS1 1 CS2 0 else if x 63 x 64 CS1 0 CS2 1 else pflag 1 lcdSetPage y8 for i xi xPIXi if pflag if i 62 i 63 CS1 1 CS2 0 lcdSetPage y8 else if pflag i 64 CS1 0 CS2 1 lcdSetPage y8 lcdSetColumn i ea EA EA 0 EN 0 LCD 0xff RS 1 RW 1 EN 1 EN 0 EN 1 dat LCD EN 0 if flag 1 dat bitmask else dat bitmask lcdSetColumn i EN 0 RW 0 RS 1 LCD dat EN 1 EN 1 EN 0 EA ea if bflag lcdSetPage y81 for i xi xPIXi if pflag if i 62 i 63 CS1 1 CS2 0 lcdSetPage y81 else if pflag i 64 CS1 0 CS2 1 lcdSetPage y81 lcdSetColumn i ea EA EA 0 EN 0 LCD 0xff RS 1 RW 1 EN 1 EN 0 EN 1 dat LCD EN 0 if flag 1 dat nextbit else dat nextbit lcdSetColumn i EN 0 RW 0 RS 1 LCD dat EN 1 EN 1 EN 0 EA ea void lcdClear void uchar ipage CS1 1 CS2 0 for page 0page 8page lcdSetPage page lcdSetColumn 0 for i 0i 64i lcdWriteByte 0 CS1 0 CS2 1 for page 0page 8page lcdSetPage page lcdSetColumn 0 for i 0i 64i lcdWriteByte 0 define STAR 53 define WIDE 6 void lcdIni void lcdCmd 0x3f lcdCmd 0xc0 lcdClear rectangle NEXT lcdPlayChar 110STAR lcdPlayChar 120STAR1WIDE lcdPlayChar 130STAR2WIDE lcdPlayChar 140STAR3WIDE SPEED lcdPlayChar 153STAR lcdPlayChar 163STAR1WIDE lcdPlayChar 173STAR2WIDE lcdPlayChar 173STAR3WIDE lcdPlayChar 183STAR4WIDE 01 lcdPlayChar 04STAR2WIDE lcdPlayChar 14STAR3WIDE SCORE lcdPlayChar 155STAR lcdPlayChar 195STAR1WIDE lcdPlayChar 205STAR2WIDE lcdPlayChar 215STAR3WIDE lcdPlayChar 125STAR4WIDE lcdPlayChar 06STAR1WIDE lcdPlayChar 06STAR2WIDE lcdPlayChar 06STAR3WIDE lcdPlayChar 06STAR4WIDE TIME lcdPlayChar 07STAR lcdPlayChar 07STAR1WIDE lcdPlayChar 107STAR2WIDE lcdPlayChar 07STAR3WIDE