- 打卡等级:常住居民I
- 打卡总天数:74
- 最近打卡:2025-11-06 19:22:32
高级会员
- 积分
- 508
|
char S[10]; //显示缓存
u8 bmq,bmq1,S1;
if(bmq1!=bmq)
{
bmq1=bmq;
sprintf(S,"%4d",bmq);
LCD_A24(100,30,S,15,0,4); //显示12*24字符串
}
/*===================================================================================================
** 在单色LCD液晶显示屏显示24*16点阵数字串函数
** 调用参数: X列Y行坐标, * str串指针, Fcolor字前景色,Bcolor字背景色,约定:色号80为透明,Len指定长度
=====================================================================================================*/
void LCD_A24(u16 X,u16 Y, char *str,u8 Fcolor,u8 Bcolor,u8 Len)
{ /* X(0-319) Y(0-479) */
unsigned char n,C;
unsigned int i,j,L,Lw=0,ZM;
L=Len; //strlen(str);
for(j=0;j<L;j++)
{ C=str[j]; /* 逐个显示字符串 */
for(i=0;i<24;i++)
{ /* 写24行 */
ZM=ASC24[C-32][i*2]; /* 取字模码1 */
ZM=ZM*256+ASC24[C-32][i*2+1]; /* 取字模码2 */
LCD_MoveTo(X+Lw,Y+i); /* 定位左上角 */
for(n=0;n<12;n++)
{ if((ZM&0x8000)==0x8000)LCD_DATA(COLOR[Fcolor]);/* 字模点为1显示前景色 */
else /* 字模点为0显示原底色或背景色 */
{ if(Bcolor==80) { LCD_MoveTo(X+Lw+n,Y+i); } /* 透明显示模式: 仅地址+1定位 */
else LCD_DATA(COLOR[Bcolor]); /* 正常显示模式:背景色 */
}
ZM = ZM << 1;
} /* 水平16点显示完毕 */
} Lw=Lw+12; /* 水平坐标位移 */
} /* 一位数字显示完毕 */
}
LCD_A24这个函数最后的数字3既显示三位时,显示出来是“空格+百位+十位”个位就显示不出来 |
|