初级会员
- 积分
- 144
- 金钱
- 144
- 注册时间
- 2018-1-18
- 在线时间
- 23 小时
|
3金钱
请问这个语句的功能是什么?0x80是什么意思?
if(temp&0x80)OLED_DrawPoint(x,y,mode);
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size,u8 mode)
{ //当显示第一个字符A时chr=65,也就是A的ASCII值,但是A
//在字符码表中的的位置确在第33行,所以65要减去32或减去' '
//(ASCII值为32),才能准确的确定A在字符码表中的位置
//所以 chr=chr-' '也就好理解了
u8 temp,t,t1;
u8 y0=y;
u8 csize=(size/8+((size%8)?1:0))*(size/2); //得到字体一个字符对应点阵集所占的字节数
//chr=chr-32;//得到偏移后的值
chr=chr-' ';//得到偏移后的值
for(t=0;t<csize;t++)
{
if(size==12)temp=asc2_1206[chr][t]; //调用1206字体
else if(size==16)temp=asc2_1608[chr][t]; //调用1608字体
else if(size==24)temp=asc2_2412[chr][t]; //调用2412字体
else return; //没有的字库
for(t1=0;t1<8;t1++)
{
if(temp&0x80)OLED_DrawPoint(x,y,mode);
else OLED_DrawPoint(x,y,!mode);
temp<<=1;
y++;
if((y-y0)==size)
{
y=y0;
x++;
break;
}
}
}
}
|
|