#include "img.h" #include "display.h" #include "draw.h" #include #include "block.h" sbit RS = P2 ^ 0; sbit RW = P2 ^ 1; sbit E = P2 ^ 2; sbit CSA = P2 ^ 4; sbit CSB = P2 ^ 5; extern Group piece; void drawNUMBER() { unsigned int j; for(j = 0 ; j < 64; j++) { CSA = 1; CSB = 0; RS = 0; RW = 0; P1 = 0xb8 + 2; write(); P1 = 0X40 + j; write(); //页2列j屏A RS = 1; RW = 0; P1 = NUMBER_PAGE0[j]; write(); RS = 0; RW = 0; P1 = 0xb8 + 3; write(); P1 = 0X40 + j; write(); //页3列j屏A RS = 1; RW = 0; P1 = NUMBER_PAGE1[j]; write(); } for(j = 0 ; j < 16; j++) { CSA = 0; CSB = 1; RS = 0; RW = 0; P1 = 0xb8 + 2; write(); P1 = 0X40 + j; write(); //页2列j屏B RS = 1; RW = 0; P1 = NUMBER_RPAGE0[j]; write(); RS = 0; RW = 0; P1 = 0xb8 + 3; write(); P1 = 0X40 + j; write(); //页3列j屏B RS = 1; RW = 0; P1 = NUMBER_RPAGE1[j]; write(); } } void drawNAME() { unsigned int j; for(j = 0; j < 48; j++) { CSA = 1; CSB = 0; RS = 0; RW = 0; P1 = 0xb8 + 0; write(); P1 = 0X40 + j; write(); //页0列j屏A RS = 1; RW = 0; P1 = NAME_PAGE0[j]; write(); RS = 0; RW = 0; P1 = 0xb8 + 1; write(); P1 = 0X40 + j; write(); //页1列j屏A RS = 1; RW = 0; P1 = NAME_PAGE1[j]; write(); } } void drawMAINMENU(unsigned char i) { unsigned int j; for(j = 0; j < 32; j++) { CSA = 0; CSB = 1; RS = 0; RW = 0; P1 = 0xb8 + 0; write(); P1 = 0X40 + 31 + j; write(); //页0列31+j屏B RS = 1; RW = 0; P1 = MAINMANU_PAGE0[j]; write(); RS = 0; RW = 0; P1 = 0xb8 + 1; write(); P1 = 0X40 + 31 + j; write(); //页1列31+j屏B RS = 1; RW = 0; P1 = MAINMANU_PAGE1[j]; write(); CSA = 1; CSB = 0; RS = 0; RW = 0; P1 = 0xb8 + 2; write(); P1 = 0X40 + j; write(); //页2列j屏A RS = 1; RW = 0; if(i==1) P1 = ~MAINMANU_PAGE2[j]; else P1 = MAINMANU_PAGE2[j]; write(); RS = 0; RW = 0; P1 = 0xb8 + 3; write(); P1 = 0X40 + j; write(); //页3列j屏A RS = 1; RW = 0; if(i==1) P1 = ~MAINMANU_PAGE3[j]; else P1 = MAINMANU_PAGE3[j]; write(); RS = 0; RW = 0; P1 = 0xb8 + 4; write(); P1 = 0X40 + j; write(); //页4列j屏A RS = 1; RW = 0; if(i==2) P1 = ~MAINMANU_PAGE4[j]; else P1 = MAINMANU_PAGE4[j]; write(); RS = 0; RW = 0; P1 = 0xb8 + 5; write(); P1 = 0X40 + j; write(); //页5列j屏A RS = 1; RW = 0; if(i==2) P1 = ~MAINMANU_PAGE5[j]; else P1 = MAINMANU_PAGE5[j]; write(); RS = 0; RW = 0; P1 = 0xb8 + 6; write(); P1 = 0X40 + j; write(); //页6列j屏A RS = 1; RW = 0; if(i==3) P1 = ~MAINMANU_PAGE6[j]; else P1 = MAINMANU_PAGE6[j]; write(); RS = 0; RW = 0; P1 = 0xb8 + 7; write(); P1 = 0X40 + j; write(); //页7列j屏A RS = 1; RW = 0; if(i==3) P1 = ~MAINMANU_PAGE7[j]; else P1 = MAINMANU_PAGE7[j]; write(); } } void placeIMG_BLOCK(unsigned char x,unsigned char y) { char j; for(j = 0 ; j < 8; j++) { CSA = 1; CSB = 0; RS = 0; RW = 0; P1 = 0xb8 + 7 - y; write(); P1 = 0X40 + x*8 + j; write(); //页7-y列x*8+j屏A RS = 1; RW = 0; P1 = IMG_BLOCK[j]; write(); } } void placeVOID_BLOCK(unsigned char x,unsigned char y) { char j; for(j = 0 ; j < 8; j++) { CSA = 1; CSB = 0; RS = 0; RW = 0; P1 = 0xb8 + 7 - y; write(); P1 = 0X40 + x*8 + j; write(); //页7-y列x*8+j屏A RS = 1; RW = 0; P1 = 0x00; write(); } } void drawVerticalDottedLine(char x) { unsigned int j; if(x<0||x>127) return; else if(x<64) { } else { x=x-63; CSA = 0; CSB = 1; } for(j = 0 ; j < 8; j++) { RS = 0; RW = 0; P1 = 0xb8 + j; write(); P1 = 0X40 + x; write(); //页2列j屏A RS = 1; RW = 0; P1 = 0x55; write(); } } void drawBLOCKSCORE() { unsigned int j; for(j = 0; j < 32; j++) { CSA = 0; CSB = 1; RS = 0; RW = 0; P1 = 0xb8 + 0; write(); P1 = 0X40 +5+ j; write(); //页0列5+j屏B RS = 1; RW = 0; P1 = FONT_SCORE0[j]; write(); RS = 0; RW = 0; P1 = 0xb8 + 1; write(); P1 = 0X40 + 5+ j; write(); //页1列5+j屏B RS = 1; RW = 0; P1 = FONT_SCORE1[j]; write(); } }