|
这儿有个T6963的程序,和T6963差不多。
http://eda51.blog.hexun.com/8658091_d.html
这个程序中有段代码有点问题。
- /********************************************************************************
- 函数名:Void ShowHZ16x16(unsigned char column,unsigned char lin,unsigned int hzcode)
- 函数功能:显示一个汉字(16*16点阵)
- column:汉字起始列(0-30) (240/8=30)
- lin: 汉字起始行(0-7) (128/16=8)
- hzcode: 汉字代码(自定义的)
- 注:超出范围的将直接写到RAM中,可以实现卷屏效果
- ********************************************************************************/
- void ShowHZ16x16(unsigned char column,unsigned char lin,unsigned int hzcode)
- {
- unsigned char temp1,temp2;
- unsigned int StartAddr;
- unsigned char i=0;
- unsigned int * temp;
- [color=#FF0000]temp=&HZK16x16[hzcode][0];
- StartAddr=16*lin*LineChar+ column; //定位起始行
- for(i=0;i<16;i++)
- {
- WriteCmd3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), AddrSet);
- temp1=HZK16x16[hzcode][i*2+*temp];
- WriteCmd2(temp1, DataWAddrI); // 左半部 地址加一
- temp2=HZK16x16[hzcode][i*2+1+*temp]; [/color]
- WriteCmd2(temp2, DataWAddrNV); // 右半部 显示地址不变
- StartAddr=StartAddr + LineChar; // 换到下一行
- }
- } [code]
- 其中的红字部分有点问题,我改后的代码如下:
- [code]
- void ShowHZ16x16(unsigned char column,unsigned char lin,unsigned int hzcode)
- {
- unsigned char temp1,temp2;
- unsigned int StartAddr;
- unsigned char i=0;
- unsigned char * temp;
- unsigned char test1;
- unsigned char test2;
- temp=&HZK16x16[hzcode][0];
- StartAddr=16*lin*LineChar + column; //定位起始行
- for(i=0;i<16;i++)
- {
- test1 = (unsigned char)(StartAddr);
- test2 = (unsigned char)(StartAddr>>8);
- WriteCmd3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), AddrSet);
- temp1=HZK16x16[hzcode][i];
- WriteCmd2(temp1, DataWAddrI); // 左半部 地址加一
- temp2=HZK16x16[hzcode][i+1];
- WriteCmd2(temp2, DataWAddrNV); // 右半部 显示地址不变
- StartAddr=StartAddr + LineChar; // 换到下一行
- }
- }
复制代码
经调试的代码可用。 |
|