S3C2440 LCD字符显示
时间:11-21
来源:互联网
点击:
- }
- /**************************************************************
- 在LCD屏幕上指定坐标点写汉字
- **************************************************************/
- voidLcd_PutHZ(unsignedintx,unsignedinty,unsignedshortintQW,unsignedintc,unsignedintbk_c,unsignedintst)
- {
- unsignedshortinti,j;
- unsignedchar*pZK,mask,buf;
- pZK=&__CHS[(((QW>>8)-1)*94+(QW&0x00FF)-1)*32];
- for(i=0;i<16;i++)
- {
- //左
- mask=0x80;
- buf=pZK[i*2];
- for(j=0;j<8;j++)
- {
- if(buf&mask)
- {
- PutPixel(x+j,y+i,c);
- }
- else
- {
- if(!st)
- {
- PutPixel(x+j,y+i,bk_c);
- }
- }
- mask=mask>>1;
- }
- //右
- mask=0x80;
- buf=pZK[i*2+1];
- for(j=0;j<8;j++)
- {
- if(buf&mask)
- {
- PutPixel(x+j+8,y+i,c);
- }
- else
- {
- if(!st)
- {
- PutPixel(x+j+8,y+i,bk_c);
- }
- }
- mask=mask>>1;
- }
- }
- }
- //----------------------
- voidLcd_printf(unsignedintx,unsignedinty,unsignedintc,unsignedintbk_c,unsignedintst,char*fmt,...)
- {
- char__LCD_Printf_Buf[256];//可以显示128个汉字或字符
- va_listap;
- unsignedchar*pStr=(unsignedchar*)__LCD_Printf_Buf;
- unsignedinti=0;
- va_start(ap,fmt);
- vsprintf(__LCD_Printf_Buf,fmt,ap);
- va_end(ap);
- while(*pStr!=0)
- {
- switch(*pStr)
- {
- case\n:
- {
- break;
- }
- default:
- {
- if(*pStr>0xA0&*(pStr+1)>0xA0)//中文输出
- {
- Lcd_PutHZ(x,y,(*pStr-0xA0)*0x0100+*(pStr+1)-0xA0,c,bk_c,st);
- pStr++;
- i++;
- x+=16;
- }
- else//英文输出
- {
- Lcd_PutASCII(x,y,*pStr,c,bk_c,st);
- x+=8;
- }
- break;
- }
- }
- pStr++;
- i++;
- if(i>256)break;
- }
- }
S3C2440LCD字符显 相关文章:
- s3c2440的LCD字符显示(11-19)
- s3c2440之LCD字符显示(11-11)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)