澳门永利国际老品牌值得信赖

欢迎访问澳门永利国际老品牌值得信赖单色液晶屏网站! 设为澳门永利国际老品牌值得信赖 | 收藏澳门永利国际老品牌值得信赖| 网站地图
全国统一服务热线
0571-86109620
?

技术常识

您只需一个电话大家将推荐性价比高的黑白液晶产品选型,让您花合理的价格,达到预期的效果

全国统一服务热线
0571-86109620

企业动态

全国统一服务热线:

0571-86109620

客服QQ:3234659108

手机:18806775143

地址:浙江省杭州市古墩路12号10幢103室

当前位置: 主页 > 资讯中心 > 技术常识 > >

12864液晶屏是如何显示出图片的

文章出处:未知 人气:发表时间:2016-12-15

12864液晶屏显示图片的主要要点是在于:1.取模 2.要利用扩展的指令设置lcd液晶 3.清楚lcd液晶地址的一个概念
1、取模:   取模App使用的是“字模221”,下面这幅图就是他的参数设置
字模221
 
这里对里面的参数设置先说明一下,所谓的横向取模就是:一张图片从图片最左上角的第8位开始取模,从左向右的方向,每次取8位二进制数据转化成为16进制保存,在第一排取完之后,接着到第二排最左边的8位开始取模,以此类推。大家为什么要这样取模呢?因为LCD12864液晶屏的横纵坐标就是按照这个取模顺序的,这点在之后还会详细的提到。
2lcd液晶屏的设置:   液晶显示图片必须要使用扩充指令集,初始化和显示字符的初始化是不一样的。
大家使用的初始化函数如下:
void init_picture() //显示图片的初始化函数
{    
    //lcd_wcmd(0x34);//写指令函数,扩充指令集,绘图关
    //lcd_wcmd(0x36);//8位数据传输,扩展指令操作,绘图开           
    lcd_wcmd(0x3E);//8位数据传输,扩展指令操作,绘图开             
    lcd_wcmd(0x01);//清屏 
    Light = 0;//打开背光
}
3、将取出的字模写进相应地址:  首先应该知道地址究竟是怎样的,结合下图讲清楚。lcd12864液晶分为上半屏和下半屏。当你想要点亮某个地方时,必须先写这个地方的垂直地址紧接着写入它的水平地址,水平地址液晶可以自动加1,而垂直地址不会。图中水平坐标从0x80+00到0x80+0F,一共16个,其中0x80+00到0x80+07是上半屏的坐标,其中0x80+08到0x80+0F是下半屏的坐标。水平坐标每个两字节,先写入的数据填充在高字节。垂直坐标只有0x80+00到0x80+1F,图中上半截0x80+00到0x80+1F是上半屏的垂直地址,另外的那部分一样的是下半屏垂直地址。
   每个垂直地址只确定一排,所以水平和垂直地址不能确定某个点的位置,只能确定某个两字节的位置,通过写进2字节数据确定点亮某个点或几个点。
比如大家写入   [垂直地址]:  lcd_wcmd(0x80+1);    [水平地址]:  lcd_wcmd(0x80);  这就是说大家将在图中水平坐标00,垂直坐标01的位置(红圈处)输入数据。
 
128*64点
 
知道地址的常识之后就明白为什么要横向取模了,接下来只要将取模的数据一个个按取模生成的顺序写进12864液晶就行了。下面是我用的代码,其中 uchar=unsigned char,uint=unsigned int。
void show_Pic(uchar* address)//显示图片函数
{                                         //address是是指向数组的指针,用法:show_Pic(XY)当中XY为数组名
    uchar i,j;
    for(i=0;i<32;i++)      //上半屏的32排依次先写满
    {
        lcd_wcmd(0x80+i); //先送垂直地址
        lcd_wcmd(0x80);   //再送水平地址,水平地址可自加1
        for(j=0;j<16;j++) //每排128个点,所以一共要16个两位16进制数(也就是8位二进制数)才能全部控制
        {
            lcd_wdat(*address);
                 address++;
        }
    }
    for(i=0;i<32;i++)     //下半屏的32排操作原理和上半屏一样
    { 
        lcd_wcmd(0x80+i);
        lcd_wcmd(0x88);
        for(j=0;j<16;j++)
        {
            lcd_wdat(*address);
                 address++;
        }
 

?
XML 地图 | Sitemap 地图