当前位置:首页 > 单片机 > 单片机
[导读]12864点阵液晶显示模块(LCM)就是由128*64个液晶显示点组成的一个128列*64行的阵列。每个显示点对应一位二进制数,1表示亮,0表示灭。存储这些点阵信息的RAM称为显示数据存储器。要显示某个图形或汉字就是将相应的点

12864点阵液晶显示模块(LCM)就是由128*64个液晶显示点组成的一个128列*64行的阵列。每个显示点对应一位二进制数,1表示亮,0表示灭。存储这些点阵信息的RAM称为显示数据存储器。要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。图形或汉字的点阵信息当然由自己设计,问题的关键就是显示点在液晶屏上的位置(行和列)与其在存储器中的地址之间的关系。

由于多数液晶显示模块的驱动电路是由一片行驱动器和两片列驱动器构成,所以12864液晶屏实际上是由左右两块独立的64*64液晶屏拼接而成,每半屏有一个512*8 bits显示数据RAM。左右半屏驱动电路及存储器分别由片选信号CS1和CS2选择。(少数厂商为了简化用户设计,在模块中增加译码电路,使得128*64液晶屏就是一个整屏,只需一个片选信号。)

显示点在64*64液晶屏上的位置由行号(line,0~63)与列号(column,0~63)确定。512*8 bits RAM中某个存储单元的地址由页地址(Xpage,0~7)和列地址(Yaddress,0~63)确定。每个存储单元存储8个液晶点的显示信息。

为了使液晶点位置信息与存储地址的对应关系更直观关,将64*64液晶屏从上至下8等分为8个显示块,每块包括8行*64列个点阵。每列中的8行点阵信息构成一个8bits二进制数,存储在一个存储单元中。(需要注意:二进制的高低有效位顺序与行号对应关系因不同商家而不同)存放一个显示块的RAM区称为存储页。即64*64液晶屏的点阵信息存储在8个存储页中,每页64个字节,每个字节存储一列(8行)点阵信息。因此存储单元地址包括页地址(Xpage,0~7)和列地址(Yaddress,0~63)。

例如点亮128*64的屏中(20,30)位置上的液晶点,因列地址30小于64,该点在左半屏第29列,所以CS1有效;行地址20除以8取整得2,取余得4,该点在RAM中页地址为2,在字节中的序号为4;所以将二进制数据00010000(也可能是00001000,高低顺序取决于制造商)写入Xpage=2,Yaddress=29的存储单元中即点亮(20,30)上的液晶点。


/////LCD12864液晶屏测试程序(已通过)//////

////////液晶屏型号:HJ12864M-1//////////

///////////////////////////////////////

#include

#define uchar unsigned char

#define uint unsigned int

//8bit数据接入IO口

#define Part P0 //P0接8位数据线

//控制数据端

sbit LCD_RS=P2^5; //定义12864液晶RS端,寄存器选择信号 H:数据寄存器 L:指令寄存器

sbit LCD_RW=P2^6; //定义12864液晶RW端,读/写信号 H:读 L:写

sbit LCD_EN=P2^7; //定义12864液晶LCDEN端, 片选信号 下降沿触发,锁存数据

//

sbit LCD_PSB=P3^2; //定义12864液晶PSB端, H:并行 L:串行

sbit LCD_RST=P3^4; //定义12864液晶RST端, H:不复位 L:复位

uchar code dis1[]={"床前明月光"};

uchar code dis2[]={"疑是地上霜"};

uchar code dis3[]={"举头望明月"};

uchar code dis4[]={"低头思故乡"};

//=====================================

//毫秒延时函数

void delay(uint xms)

{

uint i,j;

for(j=0;i

for(i=0;i<110;i++);

}

//====================================

//LCD忙检测函数

bit lcd_busy()

{

bit result;

LCD_RS=0;

LCD_RW=1;

LCD_EN= 1;

result=(bit)(Part & 0x80);

LCD_EN=0;

return result;

}

//=====================================

//液晶写命令函数

void lcd_write_cmd(uchar com)

{

while(lcd_busy());

LCD_RS=0; //选择指令寄存器

LCD_RW=0; //写

LCD_EN=0;

Part=com; //指令值赋给P0口

delay(5);

LCD_EN=1;

delay(5);

LCD_EN=0;

}

//=====================================

//液晶写一个字符数据函数

void lcd_write_dat(uchar date)

{

while(lcd_busy());

LCD_RS=1; //选择数据寄存器

LCD_RW=0; //写

LCD_EN=0;

P0=date; //数据值赋给P0口

delay(5);

LCD_EN=1;

delay(5);

LCD_EN=0;

}

//=====================================

//液晶写一个字符串函数

void lcd_write_string(uchar *str)

{

while(*str!='') //未结束

{

lcd_write_dat(*str++);

delay(5);

}

}

//=====================================

//液晶显示位置函数

void lcd_pos(uchar x,uchar y) //从第X行的第Y位置开始显示

{

uchar pos;

if(x==1) //第一行

{ x=0x80;}

else if(x==2) //第二行

{ x=0x90;}

else if(x==3) //第三行

{ x=0x88;}

else if(x==4) //第四行

{ x=0x98;}

pos=x+y-1; //首地址为0X80

lcd_write_cmd(pos);

}

//=====================================

//液晶初始化函数

void lcd_init()

{

LCD_PSB=1; //并行方式

LCD_RST=1; //不复位

lcd_write_cmd(0x30);

delay(5);

lcd_write_cmd(0x0c); //开显示,不显示光标

delay(5);

lcd_write_cmd(0x06); //写一个字符后地址指针自动加1

delay(5);

lcd_write_cmd(0x01); //清屏

delay(5);

}

//=====================================

//主函数函数

void main()

{

// uchar i;

lcd_init();

while(1)

{

lcd_pos(1,1);

// lcd_write_string(dis1);

lcd_write_string("床前明月光");

delay(5);

lcd_pos(2,1);

// lcd_write_string(dis2);

lcd_write_string("疑是地上霜");

delay(5);

lcd_pos(3,1);

// lcd_write_string(dis3);

lcd_write_string("举头望明月");

delay(5);

lcd_pos(4,1);

// lcd_write_string(dis4);

lcd_write_string("低头思故乡");

delay(500);

}

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭