typedef unsigned char LCDBYTE; //重定义有关LCD 的,也即LCD 当中的数据位宽 typedef unsigned char DOTBYTE; //重定义有关LCD 的,也即LCD 的点阵数量 typedef const unsigned char FLASH; //重定义驱动当中存放到CODE 的数据类型声明 typedef unsigned char BYTE;
void PutChar(unsigned char x,unsigned char y,unsigned int a) { DOTBYTE i,j; //数据暂存 FLASH *p_data; LCDBYTE Temp; BYTE Index = 0; if(Font_type==1) p_data = Char_TAB +(a-32)*Font_Wrod; else p_data = Char_TAB +a*Font_Wrod; //要写字符的首地址 j = 0; while(j < Y_Witch) { if(y > Dis_Y_MAX) break; i = 0; while(i < X_Witch) { if((i&0x07)==0) { Temp = *(p_data+Index); Index++; } if((Temp & 0x80) > 0) Write_Dot_LCD((x+i),y,Char_Color); else if(Font_Cover) Write_Dot_LCD((x+i),y,Char_BackColor); Temp <<= 1; i++; if((x+i) >= Dis_X_MAX) break; } y++; j++; } }
红色的语句就是如题出错的语句,另外还告诉我x、i、Temp不识别,可我明明定义了呀,不知道是哪出错了
这段程序是某LCD使用说明上给出的用C51实现写一个字符的程序 |