我的网站

当前位置: 主页 > 电子技术 >

1602液晶显示器工作原理(附)编程、滚动显示程序、背光灯原理

时间:2019-10-30 14:22来源:海猎人
1602LCD 分为带背光和不带背光两种,基控制器大部分为 HD44780,带背光的比不带背光
的厚,是否带背光在应用中并无差别
 
1602LCD 主要技术参数:
显示容量:16×2 个字符
芯片工作电压:4.5—5.5V
工作电流:2.0mA(5.0V)
模块最佳工作电压:5.0V
字符尺寸:2.95×4.35(W×H)mm
引脚功能说明
1602LCD 采用标准的 14脚(无背光)或 16脚(带背光)接口,各引脚接口说明如表 10-13
所示:
编号  符号  引脚说明     编号  符号  引脚说明
1     VSS     电源地       9   D2     数据
2     VDD   电源正极      10   D3    数据
3     VL   液晶显示偏压    11   D4    数据
4     RS   数据/命令选择    12   D5    数据
5     R/W  读/写选择        13   D6    数据
6     E     使能信号        14   D7    数据
7     D0    数据            15   BLA  背光源正极
8     D1    数据            16   BLK  背光源负极
表 10-13:引脚接口说明表
第 1 脚:VSS 为地电源。
第 2 脚:VDD接 5V正电源。
第 3 脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对
比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度。
第 4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第 5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 R/W
共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信
号,当 RS 为高电平 R/W为低电平时可以写入数据。
第 6 脚:E端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。
第 7~14脚:D0~D7为 8 位双向数据线。
第 15脚:背光源正极。
第 16脚:背光源负极。
 
 
 
 
 
 
 
 
 
LCD寄存器的选择
E R/W RS 功能说明
1 0 0 写入命令寄存器
1 0 1 写入数据寄存器
1 1 0 读取忙碌标志及RAM地址
1 1 1 读取RAM数据
0 X   不动作
 
LCD指令表
指令功能 控制线 数据线
RS R/W D7 D6 D5 D4 D3 D2 D1 D0
清除屏幕 0 0 0 0 0 0 0 0 0 1
清除屏幕,并把光标移至左上角
光标回到原点 0 0 0 0 0 0 0 0 1 x
光标移至左上角,显示内容不变
设定进入模式 0 0 0 0 0 0 0 1 I/D S
I/D=1:地址递增,I/D=0:地址递减  S=1:开启显示屏,S=0:关闭显示屏
显示器开关 0 0 0 0 0 0 1 D C B
D=1:开启显示幕  C=1:开启光标  B=1:光标所在位置的字符闪烁
移位方式 0 0 0 0 0 1 S/C R/L x x
S/C=0、R/L=0:光标左移;S/C=0、R/L=1:光标右移  S/C=1、R/L=0:字符和光标左移;S/C=1、R/L=1:字符和光标右移
功能设定 0 0 0 0 1 DL N F x x
DL=1:数据长度为8位,DL=0:数据长度为4位  N=1:双列字,N=0:单列字;F=1:5x10字形,F=0:5x7字形
CG RAM地址设定 0 0 0 1 CG RAM地址
将所要操作的CG RAM地址放入地址计数器
DD RAM地址设定 0 0 1 DD RAM地址
将所要操作的DD RAM地址放入地址计数器
忙碌标志位BF 0 1 BF 地址计数器内容
读取地址计数器,并查询LCM是否忙碌,BF表示LCM忙碌
写入数据 1 0 写入数据
将数据写入CG RAM或DD RAM
读取数据 1 1 读取数据
读取CG RAM或DD RAM的数据
 
 
 
 
 
 
 
1602液晶显示器工作原理(附)编程、滚动显示程序、背光灯原理 - 海猎网-海猎人
图 10-57 1602LCD 内部显示地址
例如第二行第一个字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行
第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位 D7恒定为高电平 1 所以
实际写入的数据应该是 01000000B(40H)+10000000B(80H)=11000000B(C0H)。
在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,
无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。
1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形,
如图 10-58 所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名
等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B (41H),
显示时模块把地址 41H中的点阵字符图形显示出来,我们就能看到字母“A”
1602液晶显示器工作原理(附)编程、滚动显示程序、背光灯原理 - 海猎网-海猎人
 
 
 
 
1602液晶显示器工作原理(附)编程、滚动显示程序、背光灯原理 - 海猎网-海猎人
图表 1写数据流程
 
1602液晶显示器工作原理(附)编程、滚动显示程序、背光灯原理 - 海猎网-海猎人
图表 2写命令流程
 
1602液晶显示器工作原理(附)编程、滚动显示程序、背光灯原理 - 海猎网-海猎人
图表 3判断LCD是否忙碌,忙则返回1
1602液晶显示器工作原理(附)编程、滚动显示程序、背光灯原理 - 海猎网-海猎人
 
 
#include <reg51.h>
#include <intrins.h>
 
sbit rs= P3^5;           //寄存器类型,1表示数据寄存器,2表示指令寄存器
sbit rw = P3^6;   //读写选择,1表示读,0表示写
sbit ep = P3^7;   //读写使能,下降沿使能
 
 
void delay(unsigned char ms)                         //延时n ms
{
        unsigned char i;
        while(ms--)
        {
                 for(i = 0; i<123; i++)   
                 {
                         ;
                 }       
        }
}
 
bit lcd_bz()                                                          //判断LCD是否忙碌,1忙碌
{
        bit result;
        rs = 0;
        rw = 1;
        ep = 1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        result = (bit)(P1 & 0x80);
        ep = 0;
        return result;
}
 
void lcd_wcmd(unsigned char cmd)                              //写指令
{
        while(lcd_bz());//判断 LCD是否忙碌
        rs = 0;
        rw = 0;
        ep = 0;
        _nop_();
        _nop_();
        P1 = cmd;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep = 1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep = 0;
}
 
void lcd_pos(unsigned char pos)                            //显示地址
{
        lcd_wcmd(pos | 0x80);
}
                                                                                                    //写数据
void lcd_wdat(unsigned char dat)
{
        while(lcd_bz());//判断 LCD是否忙碌
        rs = 1;
        rw = 0;
        ep = 0;
        P1 = dat;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep = 1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep = 0;
}
 
void lcd_wstr(const unsigned char *s)                    //写字符串
{
        unsigned char i = 0;
        while(s[i] != '\0')
        {
                 lcd_wdat(s[i]);// 显示字符
                 delay(1000);
                 i++;
        }
}
 
void lcd_init()                                             //LCD初始化
{
        lcd_wcmd(0x38);   //功能设定
        delay(1);
        lcd_wcmd(0x0c);     //显示器开关
        delay(1);
        lcd_wcmd(0x06);   //设定进入模式
        delay(1);
        lcd_wcmd(0x01);   //清除显示屏,把光标移至左上角
        delay(1);
}
 
 
void main(void)
{
        lcd_init();// 初始化 LCD
        delay(10);
        lcd_pos(0x01);//设置显示位置
        //i = 0;
        while(1){
 
                 lcd_wstr("abcdefg");
                 lcd_pos(0x42);
                 lcd_wstr("abcdefg");
 
                 lcd_wcmd(0x01);
                 delay(3);
        }
}

------分隔线----------------------------
众鑫棋牌app下载相关的文章推荐:
众鑫棋牌app下载1602液晶显示器工作原理(附)编程、滚动显

      1602LCD 分为带背光和不带背光两种,基控制器大部分为 HD44780,带背光的比不带背光 的厚,是否带背光在应用中并无差别 1602LCD 主要技术参数: 显示容量:162 个字符 芯片工作电压:4.55.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.954.35(WH)... [详情]


AT89S52中文资料,常用的51单机片AT89C51单

      AT89C51单片机的介绍最常用的51芯片 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程... [详情]


lpc54102的特性简介、接口、传感器、电路图

      lpc54102简介 LPC54102MCU是基于ARMCortex-M4的嵌入式应用微控制器。这些器件包括可选ARMCortex-M0+协处理器、104KB片上SRAM、高达512KB的片上flash、五个通用定时器、一个带PWM功能的状态可配置定时器(SCTImer/PWM)、一个RTC/警报定时器、一个24位多速率... [详情]


adc0809中文资料,引脚及中文说明,附试验

      ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 (1) ADC0809 的内部逻辑结构 由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出... [详情]


at89s52引脚图封装定义,各引脚的功能介绍

      AT89S52单片机的引脚图及各引脚功能说明 T89S52单片机特点及引脚图AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。AT89S52使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序... [详情]


发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
在线客服
凤凰棋牌手机版 凤凰棋牌 凤凰棋牌手机版 众博棋牌 六合宝典 众鑫棋牌游戏 众鑫棋牌游戏 众博棋牌 众鑫棋牌 众博棋牌