功能
LCD显示字汉字,字符和图片
说明
汉字,字符和图片需要用相应的取模软件得到相应的c文件,然后包含到工程中
主要代码
1)绘制背景
void Brush_ U32 c)
{
int x,y ;
for( y = 0 ; y < LCD_HEIGHT ; y++ )
{
for( x = 0 ; x < LCD_WIDTH ; x++ )
{
LCD_BUFFER[y][x] = c ;
}
}
}
2)文字绘制
void Draw_Text16(U32 x,U32 y,U32 color,const unsigned char ch[])
{
unsigned short int i,j;
unsigned char mask,buffer;
for(i=0;i<16;i++)
{
mask=0x80; //掩码
buffer=ch[i*2]; //提取一行的第一个字节
for(j=0;j<8;j++)
{
if(buffer&mask)
{
PutPixel(x+j,y+i,color); //为笔画上色
}
mask=mask>>1;
}
mask=0x80; //掩码
buffer=ch[i*2+1]; //提取一行的第二个字节
for(j=0;j<8;j++)
{
if(buffer&mask)
{
PutPixel(x+j+8,y+i,color); //为笔画上色
}
mask=mask>>1;
}
}
}
3)字符绘制
void Draw_ASCII(U32 x,U32 y,U32 color,const unsigned char ch[])
{
unsigned short int i,j;
unsigned char mask,buffer;
for(i=0;i<16;i++)
{
mask=0x80;
buffer=ch[i];
for(j=0;j<8;j++)
{
if(buffer&mask)
{
PutPixel(x+j,y+i,color);
}
mask=mask>>1;
}
}
}
4)图片绘制
<注意>用取模软件对图片进行取模后得到的c源文件中,需要自己进行define WIN32,否则图片颜色是反过来的
void Paint_Bmp(int x0,int y0,int h,int l,const unsigned char bmp[])
{
int x,y;
U32 c;
int p = 0;
for( y = y0 ; y < l ; y++ )
{
for( x = x0 ; x < h ; x++ )
{
c = bmp[p+1] | (bmp[p]<<8) ;
if ( ( (x0+x) < LCD_WIDTH) && ( (y0+y) < LCD_HEIGHT) )
LCD_BUFFER[y0+y][x0+x] = c ;
p = p + 2 ;
}
}
}
效果
上一篇:【ARM】led·fs2410流水灯
下一篇:【ARM】s3c2440之gpio按键控制
推荐阅读最新更新时间:2024-10-12 11:26
设计资源 培训 开发板 精华推荐
- CC2530 精简底板+OLED验证成功
- SI2434URT-EVB,带有 UART 接口的 SI2434 ISOmodem 芯片评估板
- 使用 ON Semiconductor 的 LM78M05 的参考设计
- EVAL-AD7799EBZ,AD7799 评估板,24 位,470SPS,用于应变计的 3CH ADC
- MIKROE-3452,用于 LTR-329ALS-01 的具有 I2C 接口的高精度环境光传感器 (ALS) 的环境 8 Click 板
- 一种用于手电筒的 LED 闪光灯 LED 驱动器
- 【涂鸦智能】涂鸦智能温湿度计+1083640A
- LT6656BCS6-4.096、4.096V 升压输出电流电压基准的典型应用
- LT6656BCS6-3、3V 低功率 ADC 电压基准的典型应用
- 【已验证】PCM2900C usb 录音声卡