初级会员

- 积分
- 74
- 金钱
- 74
- 注册时间
- 2016-7-11
- 在线时间
- 21 小时
|
3金钱
买了一块OLED屏用的是M47SP1322驱动的
提供的程序只能显示一串特定的字符串,函数如下:
void Asc12_24(unsigned char x,unsigned char y,unsigned char ch[])
{
unsigned char x1,c=0, i=0,j;
while (ch!='\0')
{
x1=x/4;
c =ch-32;
i++; //ÏÂÒ»¸ö×Ö·û
if(x1>59)
{x=0;
x1=x/4;
y=y+24;
} //»»ÐÐ
if (y <=48) //63-15
{
Set_Column_Address(Shift+x1,Shift+x1+3,CS1); //设置列坐标,shift为偏移量由1322决定。1位8/4-1.
Set_Row_Address(y,y+23,CS1); //
Set_Write_RAM(CS1); //写显存
for(j=0;j<48;j++)
{
Con_4_byte(ASC12X24[c*48+j],CS1); //数据转换
}
}
else
if (y >=64 )
{
Set_Column_Address(Shift+x1,Shift+x1+3,CS2); // 设置列坐标,shift为偏移量由1322决定。1位8/4-1
Set_Row_Address((y-63),(y-63+23),CS2); //
Set_Write_RAM(CS2); // 写显存
for(j=0;j<48;j++)
{
Con_4_byte(ASC12X24[c*48+j],CS2); //数据转换
}
}
else //×ÖÔÚÖмäλÖÃ
{ //×ÖÔÚÉϰëÆÁ²¿·Ö
Set_Column_Address(Shift+x1,Shift+x1+3,CS1);
Set_Row_Address(y,63,CS1); //
Set_Write_RAM(CS1); //
for(j=0;j<(64-y)*2;j++)
{
Con_4_byte(ASC12X24[c*48+j],CS1);
}
//×ÖÔÚϰëÆÁ²¿·Ö
Set_Column_Address(Shift+x1,Shift+x1+3,CS2); //
Set_Row_Address(0,(y+23-64),CS2); //
Set_Write_RAM(CS2); //
for(j=(64-y)*2;j<48;j++)
{
Con_4_byte(ASC12X24[c*48+j],CS2); //
}
}
x=x+16; //下个字符x坐标
}
}
现在我想显示一个变量,做到实时显示,请问大神们有木有好的办法。写一个新的函数?
望不吝赐教
|
|