微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > 电子元器件 > 跪求大家帮忙了。。

跪求大家帮忙了。。

时间:10-02 整理:3721RD 点击:
这个函数不懂。
void display_GB2312_string(uchar y,uchar x,uchar *text)
{
uchar i= 0;
uchar addrHigh,addrMid,addrLow ;
uchar fontbuf[32];
while((text[i]>0x00))
{
if(((text[i]>=0xb0) &&(text[i]<=0xf7))&&(text[i+1]>=0xa1))
{
/*?(GB2312)?eee?IC ?:*/
/*Address = ((MSB - 0xB0) * 94 + (LSB - 0xA1)+ 846)*32+ BaseAdd;BaseAdd=0*/
/*?8 ?,?*/
fontaddr = (text[i]- 0xb0)*94;
fontaddr += (text[i+1]-0xa1)+846;
fontaddr = (ulong)(fontaddr*32);
addrHigh = (fontaddr&0xff0000)>>16; /*?8 ?,?24 ?*/
addrMid = (fontaddr&0xff00)>>8; /*?8 ?,?24 ?*/
addrLow = fontaddr&0xff; /*?8 ?,?24 ?*/
get_n_bytes_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,32 );/*?32 ?,?"fontbuf[32]"*/
display_graphic_16x16(y,x,fontbuf);/*?LCD ?,y ?,x ?,fontbuf[]?*/
i+=2;
x+=16;
}
else if((text[i]>=0x20) &&(text[i]<=0x7e))
{
unsigned char fontbuf[16];
fontaddr = (text[i]- 0x20);
fontaddr = (unsigned long)(fontaddr*16);
fontaddr = (unsigned long)(fontaddr+0x3cf80);
addrHigh = (fontaddr&0xff0000)>>16;
addrMid = (fontaddr&0xff00)>>8;
addrLow = fontaddr&0xff;
get_n_bytes_data_from_ROM(addrHigh,addrMid,addrLow,fontbuf,16 );/*?16 ?,?"fontbuf[32]"*/
display_graphic_8x16(y,x,fontbuf);/*?8x16 ?ASCII ?LCD ?,y ?,x ?,fontbuf[]?*/
i+=1;
x+=8;
}
else
i++;
}
}
这是JLX12864显示程序
但是调用时display_GB2312_string(7,1,"?5X7 ?ASCII ?");
总不行不知道为什莫.。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top