常用液晶屏LCD1602的使用

发布者:boyatang最新更新时间:2012-08-15 来源: 51hei关键字:液晶屏  LCD1602  存储器  字符 手机看文章 扫描二维码
随时随地手机看文章

     LCD_1602,   学过单片机的朋友们都知道它了吧,可以说是用的最广,最简单,也是学液晶入门级别的一块液晶了。LCD1602顾名思义就是两行显示的液晶,每行最多显示16个字符(里面总共有160个字符),其中包括阿拉伯数字、英文字母的大小写,常用符号,及日文的假名!每个字符对应一个ASCII码,我们通过向液晶送相应符号的ASCII码来显示这个字符。

    总的来说这个用起来很简单的,到网上下载1602的数据手册,自己写写程序估计也就差不多了,我在这里主要是说说自己的对一些常见问题的经验,和LCD1602自定义字符的显示方法。
 
    要显示我们自定义的字符,就要用到LCD中的CGRAM存储器(character generate RAM),而我们之前用的显示自带的字符用到的是DDRAM,两个是不同的。看液晶手册我们知道,CGRAM的容量是64个字节,而一个字符是8个字节,所以一共能显示8个自定义的字符。内部常用字符的显示是从0x20开始的,0x00 ~ 0x0F是专门留给自定义字符显示用的,0x00~0x07和0x80~0x0F显示的内容是一样的,也就是说0x00=0x08,0x01=0x09,以此类推。CGRAM共128个位,地址是0x40~0x7F,128/8=16正好对应的是0x00~0x0F共16个。
 
    下面说说如何显示自定义字符吧。
 
    首先我们要清楚LCD1602显示字符的点阵大小,眼力好的可以看出来,LCD1602一个显示字符的位置是5*8的点阵,也就是说它所能显示的点阵图形的大小是5*8的!要显示一个自定义的字符,首先我们要知道所显示自定义字符的点阵数据,也就是在一个5*8的点阵上那个点是黑的(将该点点黑,就是高电平 ----1),哪个点是白的(该点不显示,为低电平----0),但是我们送入到LCD中的是ASCII码,它是8位的数据,而一个显示字符的点阵大小只是5*8的,显然不够,显示的办法是8*8点阵的前三列不用,也就是不显示,我们只用后面的5列来显示。看过数据手册我们知道,第一行第一个位置的地址是 0x80,第二行一个位置的地址是0xC0。最后就是要显示我们定义的第几个字符其对应CGRAM地址的关系式是:
 
0x00:第一个(0x40)                       0x01:第二个(0x48)   
 

0x02:第三个(0x50)                       0x03:第四个(0x58)

0x04:第五个(0x60)                       0x05:第六个(0x68)    

0x06:第七个(0x70)                       0x07:第八个(0x78)

    具体的流程是这样的:“显示字符的数组数据”--->"定义第几个自定义字符"--->“像地址中发送数组数据”--->“规定显示位置”--->“显示第几个自定义字符”--->OK!
 

    自己想显示什么字符或图像可以自己计算一下对应的数组数据,最好自己弄一个取模软件比较好,我一开始都是自己算的,感觉好麻烦。
 

/***** 下面我写一个用51驱动LCD1602的程序 *****/

    接口方面根据自己的实际电路决定。程序的完整版本下载: http://www.51hei.com/f/1602cc.rar

/* 这里是我自己的经验:在数据手册中说下降沿写入命令,但是我用上升沿写入也是好使的,这里我还是用下降沿吧;下面这条是重点,自习看下你板子上的晶振大小,最好是在下程序的时候看下具体大小事多少,如果你的晶振>11.5M的话最好在下面我标注的地方加延时,不然很可能什么都不显示,而且找不到错误。 */[page]

#include

sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;//LCD的三个控制端
unsigned char table[]={0x15,0x0A,0x15,0x0A,0x15,0x0A,0x15,0x0A};

void delay(unsigned int i)
{
    while(--i);
}
void Read_busy()    
//忙检测,DB7为1则busy,不能进行读写操作 ;每次读写前应"读忙"检测
{
    P0=0x00;
    RS=0;
    RW=1;
    EN=1;
    while(P0 & 0x80);
    EN=0;
}

void write_LCD_command(unsigned char value)//写命令函数
{
    Read_busy();
    RS=0;
    RW=0; 

    EN=1;
    P0=value;
    delay(100);
    EN=0;
}

void write_LCD_data(unsigned char value)//写命令函数
{
    Read_busy();
    RS=1;
    RW=0; 
    EN=1;
    P0=value;
    delay(100);
    EN=0;
}

void init_LCD()
{
    write_LCD_command(0x38);

//在这里加延时

    delay(5);

    write_LCD_command(0x0c);//开显示,不显示光标,且不闪烁

//在这里加延时

    delay(5); 
    write_LCD_command(0x06);//每次写入数据后地址指针加1 

//在这里加延时

    delay(5);
    write_LCD_command(0x01);//清屏

}
void main()
{
    unsigned char num;
    init_LCD();
    write_LCD_command(0x40);   
 //对CGRAM第一个自定义字符操作,若是第二个则为0x48,其次类推(上面有对顶的关系)
    for(num=0;num<8;num++)
    {
        write_LCD_data(table[num]);
    }
    write_LCD_command(0x80);    //规定显示在第一行第一个位置
    write_LCD_data(0x00);         //显示第一个自定义字符 (0x40对应第一个:0x00)
    while(1);
}


/*到这里程序结束了,第一次写可能说的不够清晰,有不懂的可以留言给我^_^*/
关键字:液晶屏  LCD1602  存储器  字符 引用地址:常用液晶屏LCD1602的使用

上一篇:arduino+STC89C52RC+nRF24L01制作远程测温系统
下一篇:感觉比较好的矩阵键盘扫描程序

推荐阅读最新更新时间:2024-03-16 13:05

Intel、三星与美光的次世代存储器即将问市
不论是DRAM或NAND Flash,现有的存储器解决方案都面临着制程持续微缩的物理极限,这意味着要持续提升性能与降低成本都将更加困难。 为了在有限甚至不改变现有平台架构的前提下找到新的解决方案,Intel Optane等次世代存储器近年来广受讨论。 TrendForce旗下的半导体研究中心(DRAMeXchange)认为,次世代存储器与现有解决方案各有优劣,最关键的机会点仍是在于价格。TrendForce还表示,目前包含Intel、三星与美光等存储器厂商皆已投入次世代存储器解决方案,如MRAM、PRAM和RRAM等。 以Intel为例,Optane是以3DxPoint为设计基础的服务器类产品,由于现在已经推出与
[嵌入式]
Intel、三星与美光的次世代<font color='red'>存储器</font>即将问市
利用FPGA实现模式可变的卫星数据存储器纠错系统
摘要:比较讨论了航天器数据存储器中汉明码和TMR两种典型纠错系统的原理、实现以及数据可靠性的估计,在此基础上提出了一种集成这两种系统模式并可在实际应用中根据需要切换模式的纠错系统设计方案,探讨了该系统的特点和优势,介绍了利用FPGA实现该系统的过程和经验。 关键词:单粒子翻转 汉明码 数据存储器 纠错编码 微小卫星 空间飞器在太空环境中面临的主要问题之一就是辐射。太空中的各种高能粒子(包括高能质子、中子、α粒子、得离子等)具有很高的动能,通过时可能会影响半导体电路的逻辑状态,甚至对半导体材料造成永久损害。单个高能粒子对电子器件功能产生的影响称之为单粒子效应。其中,导致存储内容在"0"、"1"之间发生变化的单粒子翻转(SEU)问题特别
[半导体设计/制造]
索尼将放弃化学业务 停产液晶屏光学薄膜
        据日本产经新闻报道,索尼将放弃化学业务,接手方为日本政策投资银行(Development Bank of Japan)。该银行将以300-400亿日元的价格接管索尼化学业务大部分业务。消息称,在索尼出售化学业务之后,它会停产液晶显示屏所使用的光学薄膜。   最早在今年秋天,索尼便会将索尼化学与信息设备公司(Sony Chemical & Information Device Corp)出售给日本政策投资银行,价格300(3.59亿美元)-400亿美元。   周四时,双方可能会签署备忘录,交易于6月设定。尽管出售业务,索尼还是会保留一些与核心业务相关的业务,如光盘、非接触智能卡业务,企业的3000名员工仍
[手机便携]
关于S3C2410的存储器
s3c2410的存储控制器的的主要特性如下: 1.可通过软件设置大端/小端模式. 2.分为8个bank,每个bank为128M,总共为1G. 3.每个bank的数据宽度都可以设为8/16/32bit方式(bank0除外,因为bank0要用作系统引导) 4.bank0-5支持ROM SRAM等,bank6-7支持ROM SRAM,SDRAM等等. 5.bank0-6的起始地址空间固定,bank7可变. 6.bank6-7的空间大小可以调整 7.可编程所有bank的访问时序. 8.可用外部等待模式延长访问周期. 9支持SDRAM的自刷新模式和power down模试. 其空间分配情况如下: 当从nor flash引导时,空间0
[单片机]
关于S3C2410的<font color='red'>存储器</font>
s3c2440液晶屏驱动 (非内核自带) linux-4.1.24
对于,不想逐一检查内核自带驱动,想自己编写驱动。 1,make menuconfig 去掉 编译到内核,改为 M 编译为 模块(因为要用到里面的3个.ko 驱动) Device Drivers --- Graphics support --- Support for frame buffer devices --- M S3C2410 LCD framebuffer support 2,make uImage && make modules 生成新内核 和 模块文件 烧写新内核或使用 nfs bootm 使用编译为 M 模块的内核启动。 复制 3个 ko 文件到 文件系统,这里用的是 NFS 网络文件
[单片机]
三星巩固存储器 调涨服务器及标准DRAM价格
全球存储器芯片龙头三星为巩固存储器事业获利,近期与服务器龙头惠普(HP)等大厂敲定第4季DRAM合约价上涨3%协议,化解市场担心三星启动新一波价格战的疑虑,华亚科、南亚科等业者可望松一口气。 先前市场忧心,三星将砸巨资盖新厂,恐锁定DRAM扩产,不利DRAM后市。 三星芯片事业总裁金奇南(Kinam Kim)先前便表态,三星新厂不会导致产业产能过剩,如今三星以实际涨价行动为DRAM事业护盘,印证不会让市场崩盘的决心。 通路商透露,三星此波主要调涨服务器及标准型DRAM价格。 由于先前市场预期近期DRAM合约价将走跌,三星反向涨价,让大家跌破眼镜,预料将激励通路商及电子代工大厂展开回补行动,推升近
[手机便携]
三星巩固<font color='red'>存储器</font> 调涨服务器及标准DRAM价格
UCODE标签存储器扩展对供应链及工业物联网的影响
每年有数百亿个RAIN RFID标签穿梭于价值链,识别跟踪各类物品。在大多数情况下,只需少量的存储空间便可以存储产品和标签ID,从而区分各个物品,并报告物品在系统中的位置和/或状态。 那么,为什么某些RAIN RFID标签提供额外的存储空间呢?因为在某些情况下,特别是在供应链和工业物联网中(IoT),即使一点点额外的存储空间也会带来很大的影响。除了产品和标签ID外,扩展存储器标签可以存储其他信息,有助于提升效率、提高自动化水平并降低运营成本。 什么是扩展存储器标签? 提供扩展存储器的RAIN RFID标签与其他RAIN RFID标签基本相同,它们遵循相同的协议,并与更广泛的RAIN RFID生态系统完全可互操作,区别
[嵌入式]
UCODE标签<font color='red'>存储器</font>扩展对供应链及工业物联网的影响
如何实现IIC驱动封装以及AT24CXX存储器的封装
简述 IIC(Inter-Integrated Circuit)其实是IICBus简称,它是一种串行通信总线,使用多主从架构,在STM32开发中经常见到。 关于IIC可以参考之前发的一篇文章:《通信协议 IIC 与 SPI 最全对比》来了解。 使用面向对象的编程思想封装IIC驱动,将IIC的属性和操作封装成一个库,在需要创建一个IIC设备时只需要实例化一个IIC对象即可,本文是基于STM32和HAL库做进一步封装的。 底层驱动方法不重要,封装的思想很重要。在完成对IIC驱动的封装之后借助继承特性实现AT24C64存储器的驱动开发,仍使用面向对象的思想封装AT24C64驱动。 IIC驱动面向对象封装 iic.h
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved