简单液晶显示移动程序

发布者:脑洞飞翔最新更新时间:2022-05-07 来源: eefocus关键字:液晶显示  1602LCD 手机看文章 扫描二维码
随时随地手机看文章

第九节、I602液晶显示原理及实现


1、1602LCD最简单液晶工作原理、


1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别


1602字符型液晶也叫1602液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。字符型液晶,能够同时显示16x02(2行,一行16字符)即32个字符。


它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。


1.1、1602LCD主要技术参数:


显示容量:16×2个字符

芯片工作电压:4.5—5.5V

工作电流:2.0mA(5.0V)

模块最佳工作电压:5.0V

字符尺寸:2.95×4.35(W×H)mm

1.2、引脚功能说明


1602LC采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明所示:


第1脚:VSS为地电源。


第2脚:VDD接5V正电源。


第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。对比度调整端,若仅仅接地,对比度会很高,常常接上一个几K的电位器或可变电阻来调节对比度以实现理想的显示效果。


第4脚:RS:寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器


第5脚:RW:读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙(一般对于单纯的LCD显示只用到写操作)。


第6脚:E:使能信号,当E端由高电平变为低电平时,液晶模块执行命令。


第7~14脚:D0-D7:8个数据I/O口(双向数据线)。


第15脚: BG_VCC、背光电源正极


第16脚:BG_GND、是背光电源负极。

image.png

1.3、基本操作时序

1.4、液晶指令设置和初始化


1.4.1、显示模式设置

image.png  

1.4.2、显示开关及光标设置:(初始化)

image.png  

1.4.3、数据指针设置

image.png

数据首地址为80H,


第一行0-27H,


第二行40H-67H(当第一行装不下时,就需要第二行,但是需要设置数据指针0x80+0x40)


1.4.4、其他设置

image.png

1.4.5、显示地址


1602字符液晶显示可分为上下两部分各16位进行显示,处于不同行时的字符显示地址如下

image.png


1.5、液晶储存器结构

2、简单设计程序操作液晶

2.1、程序一


显示:I like mcu!”; 和www.stu.com”;直接显示液晶上


#include


#define  uchar  unsigned  char


#define  uint unsigned  int


sbit  lcden=P3^4;


sbt  lcdrs=P3^5;


sbit  dula=P2^7;


uchar  code  table[]=“I like mcu!”;


uchar  code  table1[]=“www.stu.com”;


uchar num;


void  main()


{


int ()


for(num=0;num<11;num++)//利用循环调用数组显示


{


write_data(table[num]);//显示:I like mcu!


delay(20);


}


write_com(1);//清屏指令,上面的一行会显示出来后立刻消失


write_com(0x80+0x40+0x03);//设置数据指针,显示第二行! +0x03:表示向后移动三字符


for(num=0;num<13;num++)//利用循环调用数组显示


{


write_data(table1[num]);//显示: www.stu.com


delay(20);


}


 


//write_data(‘1’);//显示:1或者输入按照CGROM中对应的码


//delay(20);


//write_data(‘B’);//显示B


 


while(1)


}


void  write_com(ucahr com)//写命令子函数


{


lcdrs=0;


P0=com;


delay(5);


lcden=1;


delay(5);


lcden=0;


}


void  write_data(ucahr data)//写数据子函数


{


lcdrs =1;


P0=data;


delay (5);


lcden =1;


delay (5);


lcden =0;


}


void delay (unit  z)//延迟函数


{


unit x, y;


for (x=z; x>0; x++)


for (y=110; y>0; y++)


}


void init ()//初始化函数


{


dula=0;


wela=0


lcden=0;


write_com(0x38);


write_com(.0x0e);


write_com(.0x06);


write_com(.0x01);


write_com(.0x80);


}


2.2、程序二


显示:从右侧平移到液晶上显示出来。


#include


#define  uchar  unsigned  char


#define  uint unsigned  int


sbit  lcden=P3^4;


sbt  lcdrs=P3^5;


sbit  dula=P2^7;


uchar  code  table[]=“I like mcu!”;


uchar  code  table1[]=“www.stu.com”;


uchar num;


void  main()


{


int ()


for(num=0;num<11;num++)//利用循环调用数组显示


{


write_data(table[num]);//显示:I like mcu!


delay(20);


}


 


write_com(0x80+0x53);//设置数据指针,指定写入位置!!!显示第二行! +0x53:第二行从53那个字符开始写入。


for(num=0;num<13;num++)//利用循环调用数组写入字符


{


write_data(table1[num]);//显示: www.stu.com字符


delay(20);


}


for(num=0;num<16;num++)//左移动循环


{


write_com(0x18);//左移指令0x18   0001 1000


delay(200);


}


 


//write_data(‘1’);//显示:1或者输入按照CGROM中对应的码


//delay(20);


//write_data(‘B’);//显示B


 


while(1)


}


void  write_com(ucahr com)//写命令子函数


{


lcdrs=0;


P0=com;


delay(5);


lcden=1;


delay(5);


lcden=0;


}


void  write_data(ucahr data)//写数据子函数


{


lcdrs =1;


P0=data;


delay (5);


lcden =1;


delay (5);


lcden =0;


}


void delay (unit  z)//延迟函数


{


unit x, y;


for (x=z; x>0; x++)


for (y=110; y>0; y++)


}


void init ()//初始化函数


{


dula=0;


wela=0


lcden=0;


write_com(0x38);


write_com(.0x0e);


write_com(.0x06);


write_com(.0x01);


write_com(.0x80);


}


3、如何开始对一个没有任何概念的芯片开始单片机的操作

1、写命令子函数


2、写数据子函数


3、初始化子函数


4、main第一行,第二行显示,移动

关键字:液晶显示  1602LCD 引用地址:简单液晶显示移动程序

上一篇:单片机基础(七):串行通信概念及其工作原理
下一篇:80c51串行口内部结构介绍

推荐阅读最新更新时间:2024-11-11 12:39

51驱动1602液晶显示器的程序
//1602.h #include reg52.h //数据类型定义 typedef unsigned char uchar; typedef unsigned int uint; //1602指令定义 //屏幕初始化 #define SCREEN_INIT 0x38 //屏幕设置:16*2行,5*7点阵,8位数据接口 //光标及屏幕显示设置 #define SHOW_SCREEN 0x0C //屏幕显示 #define HIDE_SCREEN 0x08 //屏幕不显示 #define SHOW_CURSOR 0x02 //显示光标 #define FLASH_CURSOR 0x01 //光标闪烁 //地址指针及滚动设置
[单片机]
ds1302液晶显示
#include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit rs=P3^3; sbit rw=P3^4; sbit en=P3^5; sbit bflag=P2^7; sbit reset=P3^0; sbit sclk=P3^1; sbit io=P3^2; uchar str1 = date of today is: ; uchar init ={0x00,0x00,0x21,0x21,0x10,0x01,0x04};//秒,分,时,日,月,星期,年 // void delay() { uch
[单片机]
如何区分液晶显示器和液晶电视 ?
电脑发烧友们都知道,液晶显示器比之纯平显示器虽然具有亮度高、无辐射的优点,但是在玩电脑游戏的时候会出现图像移动速度慢的现象、高速图像还会出现“拖尾”。相比之下,液晶电视则不会出现类似现象。 能看电视的液晶显示器与液晶电视的区别? 一般,电视信号由声音、亮度和色彩组成。这三组号码在电视内部被处理后,我们才能欣赏到逼真的画面和声音。即使是采用性能相近的液晶面板,也会在各自的信号优化上有所不同,最明显的地方就是液晶电视会为成像方面投入较大的优化方案,因为大家都有这样的感觉,在液晶显示器上看电视,因为面积较小,我们要在不足一米的距离甚至是半米不到的距离去看,那样的话图像很微小的不清晰都会造成视觉上感觉出的“图像模糊”,所以要获得好的成
[嵌入式]
如何区分<font color='red'>液晶显示</font>器和液晶电视 ?
51单片机入门之1602液晶显示
本部分主要介绍1602液晶显示,显示内容为“Hello,Welcome to my site,my friends.”。 原理图如下: 程序如下: #include #define uchar unsigned char #define uint unsigned int sbit RS=P3^0; //数据/命令选择端(H/L) sbit EN=P3^2; //使能端 sbit RW=P3^1; //读/写选择端(H/L),本文章只写,所以该端口供低电平 sbit wela=P3^3;//锁存器位选信号 uchar table1 = Hello,Welcome to my ;//字符表1 uchar table2 =
[单片机]
51单片机入门之1602<font color='red'>液晶显示</font>
PIC16F877A编程PID+PWM+1602液晶显示
#include string.h #include stdio.h #include pic.h #define uchar unsigned char #define uint unsigned int #include cd1602.h uint adsc ,adjz ,adsr ; //定义3个A/D转换临时变量 uint resultjz,resultsr,resultsc; //PWM为jz2,PID为jz1 double scdy,jzdy,srdy,pidsc,tjkz,jzxs,scxs,srxs,PWMsr,jzzkb; __CONFIG(HS&WDTDIS); typedef struct PID{
[单片机]
成像测井中基于ARM LPC1788显示系统的设计
石油行业中的测井技术是一种井下油气勘探方法,用于发现油气藏,评估油气储量及其产量。从1927年发展至今已经出现第五代测井系统,即成像测井系统。成像测井系统通过成像井下仪传感器阵列扫描或旋转扫描测量,沿井眼纵向、周向或径向采集地层信息,经测井电缆传输到井上成像测井地面系统,使用图象处理技术得到井壁的二维图象或井眼周围某一探测深度以内的三维图象。这比以往测井系统的曲线表示方法更精确、更直观、更方便。 第四代数控测井地面系统以LED指示灯、数码管等作为显示器件,存在显示信息量小,扩展不灵活,电路复杂等诸多缺点。本设计以控制能力突出,外设接口丰富,运算速度快的ARM芯片LPC1788作为控制、数据处理核心,使用了位于AHB总线上能进
[单片机]
成像测井中基于ARM LPC1788显示系统的设计
液晶显示仍然是主流技术 中国OLED进入大规模量产
中国光学光电子行业协会液晶分会、国际半导体设备与材料协会(SEMI)及中国OLED产业联盟共同主办的“第五届中国OLED产业发展论坛”在河北固安落幕。业内专家透露,中国的OLED产业建设已经初具规模,正处于从技术研发和规模化生产进行过渡阶段。下面就随手机便携小编一起来了解一下相关内容吧。 第五届中国OLED产业发展论坛以“拨开迷雾,预见新产业 新生态 新机遇”为主题,吸引了300多位国内外行业专家、显示器件及关键设备和材料配套企业参与。专家认为,2017年将是中国显示产业蓬勃发展的一年,面板世代线的不断量产,以及各个新型显示技术的多元化发展,都将推动着中国显示行业在国际显示产业上获得更多的话语权。OLED显示技术在电视、手机终端
[手机便携]
MSP430G2553、F5529、FR5994+LCD1602八位液晶显示程序
一:MSP430G2553+LCD1602代码 #include msp430g2553.h unsigned char tab ={ 0123456789 }; #define uchar unsigned char #define uint unsigned int #define lcd_dir P1DIR #define lcd_out P1OUT #define OUT_lcd P2DIR |=BIT0+BIT1+BIT2 //P2口设为输出 #define RS_1 P2OUT |=BIT0 //P2.0 #define RS_0 P2OUT &=~BIT0 #define RW_1 P2OUT |=BIT1
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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