本帖最后由 捞屎人 于 2014-6-13 00:11 编辑
NXT上只能显示英文,但是显示汉字也不是不可以,即利用LCD电子屏显示原理可实现点阵汉字显示,代码如下:#define N 6
#define M 24
char wo16S[M][32]={
{0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x08,0x20,0x10,0x10,0x20,0x08,0x40,0x04,0x80,0x02/*"人",0*/},
{0x02,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x7F,0xF8,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x00,0x02,0x00,0x04,0x00,0x18,0x00,0x24,0x00,0x43,0xFE,0x00,0x00/*"之",1*/},
{0x20,0x00,0x10,0x00,0x01,0xFC,0xFC,0x44,0x08,0x44,0x10,0x44,0x10,0x44,0x34,0x44,0x58,0x44,0x94,0x44,0x14,0x44,0x10,0x84,0x10,0x84,0x11,0x04,0x12,0x28,0x14,0x10/*"初",2*/},
{0x10,0x20,0x10,0x20,0x11,0x20,0x11,0x20,0x19,0xFC,0x55,0x20,0x52,0x20,0x50,0x20,0x90,0x20,0x11,0xFC,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x13,0xFE,0x10,0x00/*"性",3*/},
{0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFC,0x03,0x80,0x05,0x40,0x05,0x40,0x09,0x20,0x11,0x10,0x21,0x08,0x4F,0xE4,0x81,0x02,0x01,0x00,0x01,0x00,0x01,0x00/*"本",4*/},
{0x08,0x20,0x04,0x40,0x7F,0xFC,0x01,0x00,0x3F,0xF8,0x01,0x00,0xFF,0xFE,0x11,0x10,0x09,0x20,0xFF,0xFE,0x00,0x00,0x3F,0xF8,0x20,0x08,0x20,0x08,0x3F,0xF8,0x20,0x08/*"善",5*/},
{0x10,0x20,0x10,0x20,0x11,0x20,0x11,0x20,0x19,0xFC,0x55,0x20,0x52,0x20,0x50,0x20,0x90,0x20,0x11,0xFC,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x13,0xFE,0x10,0x00/*"性",6*/},
{0x08,0x00,0x08,0xFC,0x08,0x84,0x08,0x84,0xFE,0x84,0x08,0xFC,0x18,0x84,0x1C,0x84,0x2A,0x84,0x2A,0xFC,0x48,0x84,0x88,0x84,0x08,0x84,0x08,0x84,0x08,0xFC,0x08,0x84/*"相",7*/},
{0x00,0x08,0x20,0x1C,0x11,0xE0,0x11,0x00,0x01,0x00,0x01,0xFE,0xF1,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x12,0x10,0x12,0x10,0x14,0x10,0x28,0x00,0x47,0xFE,0x00,0x00/*"近",8*/},
{0x00,0x00,0x7F,0xF8,0x00,0x08,0x00,0x08,0x08,0x08,0x04,0x08,0x02,0x08,0x02,0x08,0x00,0x68,0x01,0x88,0x0E,0x08,0x70,0x08,0x20,0x08,0x00,0x08,0x00,0x50,0x00,0x20/*"习",9*/},
{0x08,0x00,0x08,0xFC,0x08,0x84,0x08,0x84,0xFE,0x84,0x08,0xFC,0x18,0x84,0x1C,0x84,0x2A,0x84,0x2A,0xFC,0x48,0x84,0x88,0x84,0x08,0x84,0x08,0x84,0x08,0xFC,0x08,0x84/*"相",10*/},
{0x00,0x00,0x23,0xF8,0x10,0x00,0x10,0x00,0x00,0x00,0x07,0xFC,0xF1,0x20,0x11,0x20,0x11,0x20,0x11,0x20,0x11,0x24,0x12,0x24,0x12,0x24,0x14,0x1C,0x28,0x00,0x47,0xFE/*"远",11*/},
{0x04,0x40,0x04,0x40,0xFF,0xFE,0x04,0x40,0x10,0x00,0x1F,0xF8,0x20,0x08,0x40,0x08,0x9F,0x88,0x10,0x88,0x10,0x88,0x1F,0x88,0x10,0x88,0x00,0x08,0x00,0x50,0x00,0x20/*"苟",12*/},
{0x00,0x00,0x7F,0xFC,0x00,0x80,0x00,0x80,0x01,0x00,0x01,0x00,0x03,0x40,0x05,0x20,0x09,0x10,0x11,0x08,0x21,0x04,0x41,0x04,0x81,0x00,0x01,0x00,0x01,0x00,0x01,0x00/*"不",13*/},
{0x08,0x20,0x08,0x20,0x7E,0xA0,0x09,0x3E,0x0A,0x44,0xFF,0x44,0x08,0x44,0x7E,0xA4,0x24,0x28,0x48,0x28,0x8F,0x10,0x78,0x10,0x08,0x28,0x08,0x48,0x28,0x84,0x11,0x02/*"教",14*/},
{0x10,0x20,0x10,0x20,0x11,0x20,0x11,0x20,0x19,0xFC,0x55,0x20,0x52,0x20,0x50,0x20,0x90,0x20,0x11,0xFC,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x13,0xFE,0x10,0x00/*"性",15*/},
{0x00,0x00,0x3F,0xF0,0x04,0x10,0x04,0x20,0x04,0x20,0x04,0x40,0x04,0x7C,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x10,0x04,0x10,0x04,0x20,0x04,0x40,0x28,0x80,0x10/*"乃",16*/},
{0x00,0x10,0x20,0x78,0x13,0xC0,0x10,0x40,0x00,0x40,0x00,0x40,0xF7,0xFE,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x28,0x00,0x47,0xFE,0x00,0x00/*"迁",17*/},
{0x08,0x20,0x08,0x20,0x7E,0xA0,0x09,0x3E,0x0A,0x44,0xFF,0x44,0x08,0x44,0x7E,0xA4,0x24,0x28,0x48,0x28,0x8F,0x10,0x78,0x10,0x08,0x28,0x08,0x48,0x28,0x84,0x11,0x02/*"教",18*/},
{0x02,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x7F,0xF8,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x00,0x02,0x00,0x04,0x00,0x18,0x00,0x24,0x00,0x43,0xFE,0x00,0x00/*"之",19*/},
{0x02,0x08,0x21,0x10,0x10,0x00,0x17,0xFC,0x00,0x80,0x03,0xF8,0xF2,0x08,0x13,0xF8,0x12,0x08,0x13,0xF8,0x12,0x08,0x13,0xF8,0x12,0x08,0x28,0x00,0x47,0xFE,0x00,0x00/*"道",20*/},
{0x01,0x00,0x1F,0xF0,0x11,0x10,0x11,0x10,0x1F,0xF0,0x01,0x00,0xFF,0xFE,0x00,0x00,0x1F,0xF0,0x10,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x02,0x60,0x0C,0x18,0x70,0x04/*"贵",21*/},
{0x00,0x10,0x04,0x10,0x22,0x10,0x21,0x10,0x21,0x10,0x20,0x10,0x20,0x10,0x20,0x20,0x20,0x20,0x20,0x20,0x24,0x40,0x28,0x50,0x30,0x88,0x21,0x04,0x02,0x02,0x04,0x02/*"以",22*/},
{0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x02,0x00,0x02,0x00,0xFF,0xFE,0x04,0x00,0x08,0x00,0x0F,0xF0,0x00,0x10,0x00,0x20,0x06,0x40,0x01,0x80,0x00,0x40,0x00,0x20/*"专",23*/}
};
void Ch(int X,int Y,int n)
{
for (int i = 0; i < 16; i++)
{
for (int j = 0; j < 2; j++)
{
char ch = wo16S[n][i * 2 + j];
for (int k = 0; k < 8; k++)
{
int x = j * 8+k+16*X; //X坐标
int y = 63-i-16*Y; //Y坐标
{
nxtSetPixel(x, y); //画点操作函数
}
}
}
}
}
task main()
{
for (int i = 0; i < M; i++)
{
Ch(i%N,i/N,i);
wait1Msec(500);
}
wait10Msec(10000);
}
此次编程利用汉字字模工具生成16*16点阵字模(还未验证fopen是否可用于ROBOTC,所以把字模放在程序里了),然后采用ROBOTC3.61编程完成。入ROBOTC半年了,多数情况是在PC的纯C环境编译成功再移植到ROBOTC,但经常发现数组数据溢出报警,经过这次汉字显示问题发现是因为ROBOTC对指针作为子函数参数不能像在纯C中那么随意自由(具体为什么求高手解答了),所以编程中应尽量避免指针做参数,用全局数组变量绕开指针或数组做参数。
看看效果图:
file:///c:/users/lirentao/appdata/roaming/360se6/USERDA~1/Temp/DKTHQZ~1.GIF
|