总结资料1602显示方法Word格式.docx

上传人:b****5 文档编号:19230732 上传时间:2023-01-04 格式:DOCX 页数:14 大小:110.96KB
下载 相关 举报
总结资料1602显示方法Word格式.docx_第1页
第1页 / 共14页
总结资料1602显示方法Word格式.docx_第2页
第2页 / 共14页
总结资料1602显示方法Word格式.docx_第3页
第3页 / 共14页
总结资料1602显示方法Word格式.docx_第4页
第4页 / 共14页
总结资料1602显示方法Word格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

总结资料1602显示方法Word格式.docx

《总结资料1602显示方法Word格式.docx》由会员分享,可在线阅读,更多相关《总结资料1602显示方法Word格式.docx(14页珍藏版)》请在冰豆网上搜索。

总结资料1602显示方法Word格式.docx

/*程序中没有用到忙检测,而是用的是延时函数来替代忙检测*/

#defineucharunsignedchar

#defineuintunsignedint

ucharcodetable[]="

LCD1602A"

;

//要显示的内容1放入table

ucharcodetable1[]="

zhengzhibin"

//要显示的内容放入table1

sbitrs=P0^7;

//数据、指令选择控制线

sbitrw=P0^6;

//读写信号控制线

sbiten=P0^5;

//使能信号端

voiddelay(uinta)//延时函数

{

ucharb;

while(a--)

{

for(b=5000;

b>

0;

b--);

}

}

voidlcd_wcom(ucharcom)//写指令函数

rs=0;

//选择指令寄存器

rw=0;

//选择写操作

P2=com;

//把指令送入P2口

delay(100);

//延时一小会,让1602准备接受数据

en=1;

//使用端电平变化,把指令送入1602

en=0;

voidlcd_wdat(uchardat)//写数据函数

rs=1;

//选择数据寄存器

P2=dat;

//把要显示的数据送入P2口

//使用端电平变化,把数据送入1602

voidlcd_init()//1602初始化

lcd_wcom(0x38);

//选择8位数据总线,双列显示,5*7字形

lcd_wcom(0x0c);

//开启显示屏,关光标,光标不闪烁

lcd_wcom(0x06);

//显示地址递增,即写一个数据后,显示位置右移一位

lcd_wcom(0x01);

//清屏

voidmain()//主函数

ucharn,m;

lcd_init();

//初始化

lcd_wcom(0x80+0x04);

//显示地址设为84H,上排第4位

for(n=0;

n<

9;

n++)//将table[]中的数据依次写入1602显示

lcd_wdat(table[n]);

delay(100);

lcd_wcom(0x80+0x42);

//重新设定显示地址为0xc4,即下排第3位

for(m=0;

m<

12;

m++)//将table1[]中的数据依次写入1602显示

lcd_wdat(table1[m]);

while

(1);

二.滚动的显示方法:

之前设定步骤一样,只是在某些指令做更改,如果要使字符向右或向左滚动的话,在初始化中的第三指令(进入模式设置指令)要根据实际情况做更改调整。

然后在完整的程序后添加一个指令函数,就是添加(设定显示屏或光标移动方向指令)使产生滚动效果。

添加指令为:

设定显示屏或光标移动方向指令

1.如果要显现显示屏整体右移就是滚动效果,如果没把初始化函数中的第三条(进入模式设置指令)指令做更改调整,显示效果会变成开始没滚动效果,等所有字符都显示出来后,才整体的向右移,产生滚动效果。

就是把第三指令改为(写入新数据后显示屏整体右移1个字)。

然后在完整的程序中主函数中最后面添加一个(设定显示屏或光标移动方向指令)指令,就可以显示向右滚动的效果了。

2.如果要显示向左滚动的效果,在之前初始化函数中的第三条(进入模式设置指令)指令中选择(写入新数据后显示屏不移动)指令,然后在完整的程序中主函数中最后面添加一个(设定显示屏或光标移动方向指令)指令,就可以显示向右滚动的效果了。

向右滚动程序:

ucharb,c;

b--)

for(c=5000;

c>

c--);

delay

(1);

lcd_wcom(0x07);

//光标右移,显示屏整体右移

ucharn,m,d;

while

(1)

lcd_wcom(0x80);

delay

(1);

lcd_wcom(0x80+0x40);

}

for(d=0;

d<

37;

d++)(添加滚动的指令)

lcd_wcom(0x1c);

//显示器上字符全部右移一格,但光标不动

delay(50);

向左滚动的程序:

lcd_wcom(0x04);

//光标左移,显示屏不移动

lcd_wcom(0x80+0x0f);

lcd_wcom(0x80+0x4f);

d++)(添加滚动的指令)

lcd_wcom(0x18);

//显示器上字符全部左移一格,但光标不动

三.任意字符显示:

1602中内部有个存储器CGROM;

CGRAM中有一个可以供用户自义定的CGRAM,我们从CGROM表上可以看到,在表的最左边是一列可以允许用户自定义的CGRAM,从上往下看着是16个,实际只有8个字节可用。

它的字符码是00000000-00000111这8个地址,表的下面还有8个字节,但因为这个CGRAM的字符码规定0-2位为地址,3位无效,4-7全为零。

因此CGRAM的字符码只有最后三位能用也就是8个字节了。

等效为0000X111,X为无效位,最后三位为000-111共8个。

就可以显示这8个用户自定义的字符了。

可以显示任意字符图案。

(其实1602每个显示格是由5*7或5*10的点阵显示的,所以可以自己定义什么图案或者字符,然后依次写出显示图案或字符的代码,就可以显示了)。

具体方法就是在程序主函数中初始化LCD后写个写个设定CGRAM的地址的指令,然后利用(CGRAM或DDRAM读出数据的指令)指令在将代码写入CGRAM中,在设定显示位置,然后显示,就可以了。

指令:

显示任意字符程序:

(在0x4f的地方显示字母C)

从这个指令可以看出指令数据的高2位已固定是01,只有后面的6位是地址数据,而这6位中的高3位就表示这八个自定义字符,最后的3位就是字模数据的八个地址了。

例如第一个自定义字符的字模地址为01000000-01000111八个地址。

我们向这8个字节写入字模数据,让它能显示出“℃”

ucharcodetable[]=

0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00//字符C字

};

for(b=500;

for(c=500;

lcd_wcom(0x40);

//设定CGRAM地址(地址从指令表中看出(CGRAM或DDRAM读出数据的指令))

8;

n++)//将C字代码写入CGRAM中

//设置C字的位置

1;

m++)

lcd_wdat(m);

多个自定义字符的写法:

利用CGRAM内置8个寄存器

CGRAM地址:

 

01000000 0x40 

首地址,代表字模数据从第一行开放入

    

01000001 0x41 从第二行开始,上一行空出来   

01000010 0x42    

   

01000011 

0x43      

01000100 0x44     

01000101 

0x45  

 01000110 0x4601000111 0x47     

  lcd_wcom(0x80);

//设置字符显示位置 

第一行第一个位置 

③设置显示地址,然后发送数据

lcd_wdat(0x00);

//给1602发送字符数据 

显示℃

lcd_wcom(0x81);

lcd_wdat(0x01);

// 

显示"

一"

lcd_wcom(0x82);

lcd_wdat(0x02);

//显示"

二"

四.显示CGROM寄存器中的字符:

CGROM寄存器表中的每个字符都有着自己的地址

显示出字符的方法就是在程序里主函数里,LCD初始化后,写显示位置指令,然后直接在数据函数中写字符地址就可以了。

显示CGROM寄存器中的字符程序:

ucharn;

n++)

lcd_wdat(0x41);

//在CGROM寄存器中41H是A的代码

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

当前位置:首页 > PPT模板 > 自然景观

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

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