第十三节液晶屏第一大类定律纵向显示八个点SED1520驱动12232屏.docx

上传人:b****5 文档编号:2836236 上传时间:2022-11-15 格式:DOCX 页数:12 大小:19.76KB
下载 相关 举报
第十三节液晶屏第一大类定律纵向显示八个点SED1520驱动12232屏.docx_第1页
第1页 / 共12页
第十三节液晶屏第一大类定律纵向显示八个点SED1520驱动12232屏.docx_第2页
第2页 / 共12页
第十三节液晶屏第一大类定律纵向显示八个点SED1520驱动12232屏.docx_第3页
第3页 / 共12页
第十三节液晶屏第一大类定律纵向显示八个点SED1520驱动12232屏.docx_第4页
第4页 / 共12页
第十三节液晶屏第一大类定律纵向显示八个点SED1520驱动12232屏.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

第十三节液晶屏第一大类定律纵向显示八个点SED1520驱动12232屏.docx

《第十三节液晶屏第一大类定律纵向显示八个点SED1520驱动12232屏.docx》由会员分享,可在线阅读,更多相关《第十三节液晶屏第一大类定律纵向显示八个点SED1520驱动12232屏.docx(12页珍藏版)》请在冰豆网上搜索。

第十三节液晶屏第一大类定律纵向显示八个点SED1520驱动12232屏.docx

第十三节液晶屏第一大类定律纵向显示八个点SED1520驱动12232屏

第十三节:

液晶屏第一大类定律--纵向显示八个点(SED1520驱动12232屏)

        第一大类定律:

纵向显示八个点的类型。

这类液晶屏在纵向上以八个点(一个字节)为基本单位,因此Y坐标数值的最大范围是纵向上的点阵数除以八,然后再减去一(因为从零开始)。

而X坐标数值的最大范围就直接是横向上的点阵数减去一(因为从零开始)。

(1)    开场白:

    这节我以驱动芯片为SED1520的12232液晶屏为例子,来继续深入了解第一大类定律:

纵向显示八个点的类型。

12232液晶屏实际上是由左右两块6132的液晶屏合并在一起的,跟前面提到的驱动芯片为KS0107的12864屏稍微有点不一样,它不是由两根IO口来片选不同的屏,而是通过两根不同的时钟线来区分不同的屏。

因此,我们只要弄懂了一块6132液晶屏的显示方法就够了。

6132屏在横向上是61个点,纵向上是32个点,也就是一个长方形的屏。

因为它属于第一大类的屏,所以X轴坐标数值的最大范围是61-1=60,而纵向坐标数值的最大范围是(32/8)-1=3.正常的操作思路是这样的,先发送Y轴与X轴的位置数据,确定位置后,再发送一个字节(八个点)的显示数据。

这类屏跟之前介绍KS0107驱动12864的屏稍微有点不一样,每发送一次显示数据时,都要先重新设置一下Y与X轴的位置,X地址不会自动加一。

              字节正序与倒序的概念解释:

当我们一次在纵向上显示八个点的基本单位时,实际上等于我们发送了一个字节的显示数据,比如0x01,如果是正序的屏,那么从上到下的八个点中,只有第8个点是显示的,其它的是空白,而如果是倒序的屏,则只有第1个点是显示的,其它是空白的。

12232这个屏是属于倒序的屏。

            取模软件是必须的,读者可以在网上自己下载,资料很多。

(2)功能需求:

      在12232屏上的左屏和右屏分别显示8X16的字符,16X16的汉字,24X24的汉字。

(3)硬件原理:

      这类屏跟之前介绍KS0107驱动12864的屏稍微有点不一样,它没有的VEE这个端口。

20K可调电阻的左边端口直接悬空,VO接可调电阻的中间端口,可调电阻的右边端口接电源负极,此可调电阻在这里用来调节液晶屏的对比度。

模块的复位引脚直接用一个15K的电阻跟一个104电容搭成上电低电平硬件复位电路,省一个IO口,也就是此IO口接一个15K的上拉电阻,然后对地再接一个104电容。

模块与背光的电源线接上5V,其它数据线跟单片机的IO口连接上。

这个大家都懂。

(4)源码适合的单片机:

PIC18f4520,晶振为11.0592MHz。

(5)源代码讲解如下:

#include      //包含芯片相关头文件

//补充说明:

吴坚鸿程序风格是这样的,凡是输出IO后缀都是_dr,凡是输入的//IO后缀都//是_sr,凡是数据总线后缀都是_bus

#defineE1_drLATD4

#defineE2_drLATD5

#defineRW_drLATD6 

#defineRS_drLATD7

#defineLcmDataBusPORTB

voiddelay(unsignedintt);    //时序延时函数声明

voidchk_busy_left();    //左屏忙检测,液晶驱动时序的一部分

voidchk_busy_right();    //左屏忙检测,液晶驱动时序的一部分

voidwrite_com_left(unsignedcharcmdcode);  //往左液晶模块写入指令

voidwrite_com_right(unsignedcharcmdcode);  //往右液晶模块写入指令

voidwrite_data_left(unsignedcharDi_drspdata);  //往左液晶模块写入数据

voidwrite_data_right(unsignedcharDi_drspdata);  //往右液晶模块写入数据

voidscreen_clear();  //清空屏的内容

voidzf_display816_left(unsignedcharcol,unsignedcharpag,constunsignedchar  *zk,unsignedcharopposite_flag);//左显示8X16的字符函数,本节的核心内容

voidzf_display816_right(unsignedcharcol,unsignedcharpag,constunsignedchar  *zk,unsignedcharopposite_flag);//右显示8X16的字符函数,本节的核心内容

voidhz_display1616_left(unsignedcharcol,unsignedcharpag,constunsignedchar  *zk,unsignedcharopposite_flag);//左屏,显示16X16的汉字函数,本节的核心内容

voidhz_display1616_right(unsignedcharcol,unsignedcharpag,constunsignedchar  *zk,unsignedcharopposite_flag);//右屏,显示16X16的汉字函数,本节的核心内容

voidhz_display2424_left(unsignedcharcol,unsignedcharpag,constunsignedchar  *zk,unsignedcharopposite_flag);//左屏,显示24X24的汉字函数,本节的核心内容

voidhz_display2424_right(unsignedcharcol,unsignedcharpag,constunsignedchar  *zk,unsignedcharopposite_flag);//右屏,显示24X24的汉字函数,本节的核心内容

voidinit_lcd();  //初始化液晶模块

//补充说明:

吴坚鸿程序风格是这样的,凡是字库内容,如果是字符,则前缀用zf,然后紧//跟着点阵数,接着下划线,最后紧跟显示的字符。

如果有重复的,则多加一个序列号标////识。

如果是汉字,则前缀用hz,其它的一样。

constunsignedchar  zf816_V[]=//从取模软件中复制的字库,纵向取模,字节倒序

{

/*--  文字:

  V  --*/

/*--  宋体12;  此字体下对应的点阵为:

宽x高=8x16  --*/

0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,

};

constunsignedchar  zf816_5[]=

{

/*--  文字:

  5  --*/

/*--  宋体12;  此字体下对应的点阵为:

宽x高=8x16  --*/

0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,

};

constunsignedchar  hz1616_hong[]=

{

/*--  文字:

  鸿  --*/

/*--  宋体12;  此字体下对应的点阵为:

宽x高=16x16  --*/

0x10,0x61,0x86,0x60,0x08,0xF8,0x08,0x00,0xFC,0x0E,0x35,0x04,0x44,0x7C,0x00,0x00,

0x04,0x7C,0x03,0x04,0x04,0x03,0x0A,0x08,0x09,0x09,0x09,0x09,0x49,0x81,0x7F,0x00,

};

constunsignedchar  hz1616_ge[]=

{

/*--  文字:

  哥  --*/

/*--  宋体12;  此字体下对应的点阵为:

宽x高=16x16  --*/

0x00,0x02,0x02,0x7A,0x2A,0x2A,0x2A,0x2A,0x7A,0x02,0x02,0x7E,0x02,0x82,0x00,0x00,

0x01,0x01,0x01,0x3D,0x15,0x15,0x15,0x15,0x3D,0x41,0x81,0x7F,0x01,0x01,0x01,0x00,

};

constunsignedchar  hz2424_hong[]=

{

/*--  文字:

  鸿  --*/

/*--  宋体18;  此字体下对应的点阵为:

宽x高=24x24  --*/

0x00,0x80,0x00,0x04,0x18,0x90,0x40,0x40,0x40,0xC0,0x40,0x60,0x40,0xE0,0x20,0x30,

0xAC,0x24,0x20,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x03,0x06,0xF8,0x07,0x00,0x00,

0x80,0xFF,0x80,0x40,0x00,0x7F,0x40,0x40,0x41,0x49,0x58,0x4F,0xC0,0xE0,0x00,0x00,

0x00,0x00,0x01,0x7F,0x60,0x00,0x01,0x01,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,

0x24,0x22,0x62,0x64,0x3F,0x03,0x00,0x00,

};

constunsignedchar  hz2424_ge[]=

{

/*--  文字:

  哥  --*/

/*--  宋体18;  此字体下对应的点阵为:

宽x高=24x24  --*/

0x00,0x00,0x00,0x08,0x08,0x08,0xE8,0x48,0x48,0x48,0x48,0x48,0xE8,0x08,0x08,0x08,

0x08,0xF8,0x08,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0xD0,0xD3,0x52,

0x52,0x52,0x52,0x52,0xD3,0x10,0x10,0x10,0x10,0xF7,0x10,0x10,0x08,0x08,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x04,0x04,0x04,0x04,0x04,0x0F,0x00,0x20,0x20,

0x60,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,

};

//主程序

main()

{

  ADCON0=0x00;  

  ADCON1=0x0f;

  ADCON2=0x00;  

  TRISA=0x02;

  TRISE=0x00;

  TRISC=0x7f;

  TRISD=0x0f;

  TRISB=0x00;

  RBPU=0;

  SSPEN=0;  //决定RA5作为IO

  TRISE2=1;

  //补充说明

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1