文字的显示
LED广告,文字是怎么显示的br> 点亮对应的发光二极管,就显示了文字
LCD屏幕文字的显示。
点亮对应的像素点,就显示了文字
我怎么知道哪些像素点需要被点亮呢br> ====》
字模软件:
1.参数设置,其它选项
选为横向取模,把字节倒序和保留去掉
2.输入文字,按ctrl+enter
3.取模方式,选C51方式
4.在字模区生成对应的字模
/*– 文字: 帅 –*/
/*– 宋体12; 此字体下对应的点阵为:宽x高=16×16 –*/
0x08,0x20,0x08,0x20,0x48,0x20,0x48,0x20,0x49,0xFC,0x49,0x24,0x49,0x24,0x49,0x24,
0x49,0x24,0x49,0x24,0x49,0x24,0x09,0x34,0x11,0x28,0x10,0x20,0x20,0x20,0x40,0x20
上面的字节记录了显示一个帅字需要点亮的所有的点。
宽x高=16×16 你要显示的文字的大小,
宽16个像素点,高16个像素点
总共是256个点
32个字节,
====》
每个字节对应8个像素点,一个字节刚好8个位,是不是一个位对应一个像素点呢果是这样的,那么位为1是点亮还是不点亮呢br> ===》
每一个字节对应8个像素点,相应的位为1,则需要点亮对应的像素点
显示:把每一个字节中的每一个位取出来,显示到屏幕上面
怎么把一个字节中的一个位取出来呢br> 假如有一个字节ch=10100011,要取第三个位,怎么办br> 10100011 把其他的位 &0,第三个位&1
00001000
f = ch & br> ch &0x08
ch & (1<<3)
要取第n个位br> f = ch & (1<<n)
===>
for(i=0;i<=7;i++)
{
f = ch & (1<<i);
if(f == 1)
{
lcd_draw_point(x,y,color);
}
}
取一个字节的8个位
for(i=7;i>=0;i–)
{
if(ch & (1<<i))
{
lcd_draw_point(x,y,color);
}
}
for(index = 0;index<32;index++)
{
for(i=7;i>=0;i–)
{
if(word[index] & (1<<i))
{
lcd_draw_point(x,y,color);
}
}
}
====>
接下来我们需要解决的问题就是x和y
假如我现在只考虑第0行,y=0,假如颜色的红色,color = 0x00ff0000.
x = br> for(index = 0;index<32;index++)
{
for(i=7;i>=0;i–)
{
if(word[index] & (1<<i))
{
lcd_draw_point(x,0,0x00ff0000);
}
}
}
x = 7-i 第0个字节,
第一个字节br> x = 15-ibr> =====>
x = 8*n + 7-i;
x = 8*(index%2)+7-i;
====>
x的坐标解决了,y的坐标呢br> y = idnex/2;
for(index = 0;index<32;index++)
{
for(i=7;i>=0;i–)
{
if(word[index] & (1<<i))
{
lcd_draw_point(8*(idnex%2)+7-i,index/2,0x00ff0000);
}
}
}
每一个文字都是一个独立的个体。
实践:在开发板的指定位置显示一个汉字
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!