C51编程21-应用篇(LCD1602显示-2)

发布者:fnfeecjknquc最新更新时间:2022-06-24 来源: eefocus关键字:C51  编程  LCD1602显示 手机看文章 扫描二维码
随时随地手机看文章

LCD的写模式操作


LCD1602,具有四种基本的操作,读命令,写命令,读数据,写数据。由于主要是让LCD1602显示数据,我们只需要用到写命令与写数据即可。


写数据和写命令为称之为写模式


在LCD1602中,


RS引脚的高低电平 控制是数据或者命令,高电平为数据,低电平为命令。


R/W引脚的高低电平控制是读模式或者写模式,高电平为读,低电平为写;


E引脚控制数据与命令使能,使操作生效,高电平写入数据,低电平生效。


下面时序图为写模式的时序图

由于单片机运行的机器周期最快速度为1us,超过400ns,因此执行指令时可以不需要额外的延时。


写命令可以这样操作。


RS = 0;

R/W =0;

EN  =1;

Pn = Data;

EN =0;

注:


(1)Pn指的 Data0~7连接的单片机接口,如果连接到P0则,Pn=P0;  


(2)实际在测试中,由于写数据与EN =0时间太短,导致数据显示不出来,最好在添加5ms的延时;


RS = 0;

R/W =0;

EN  =1;

Pn = Data;

delay(5);

EN =0;

写数据操作为


 LCD_CD = 1;

 LCD_WR = 0;

 LCD_EN = 1; 

  Pn = ldata;

  delay(5); 

  LCD_EN = 0;

 

LCD的初始化指令


在对LCD可以进行写命令之后,就可以对LCD进行初始化了。初始化目的是为了LC处于某种工作状态。LCD初始化只需要对LCD写入某些命令即可。


初始化一般有以下几条指令


(1)开启显示模式设置0x38;


(2)清屏指令设置0x01;


(3)设置光标移动0x06;


(4)设置光标设置0x0c;


LCD显示数据


初始化完毕后,则可以将数据写进入LCD,由于LCD1602有两行,每行长度为32位,前16位可以直接显示,后16位用于做移动显示用;第一行开始地址为0x80;第二行开始地址为0xc0;


注:左移指令为0x18,右移指令为0x1c


链接地址为LCD显示实现例子


链接:https://pan.baidu.com/s/1yDEWG6XzMCim0EdBXb_QfQ


提取码:afe0 

关键字:C51  编程  LCD1602显示 引用地址:C51编程21-应用篇(LCD1602显示-2)

上一篇:C51编程20-应用篇(LCD1602显示-1)
下一篇:按键及矩阵键盘程序------/* 自己实验确认并总结 */

推荐阅读最新更新时间:2024-11-09 23:14

如何在C51文件和汇编语言文件中相互调用?
如何在C51文件和汇编语言文件中相互调用对方文件中的函数? 答:汇编语言文件中对于函数的调用方法,与调用汇编语言中的函数一样,如: LCALL DISPLAY 在C语言文件中调用汇编语言中的函数,必须先声明再调用。声明格式如下: extern 返回值类型 函数名(参数表); 例如: extern unsigned char right_shift ( char, char );
[单片机]
#C51按键处理(外部中断的应用)
前言 了解外部中断触发方式及响应处理 样例:外部中断INT0 && INT1处理按键事件 提示:以下是本篇文章正文内容,下面案例可供参考 一、场景 样例功能:INT0按下计数+1,INT1按下计数-1,显示范围0~9999 二、编程实现 1.主函数: 开机界面显示默认初值1234,3s后进入按键检测,默认0000 变量PowerOnTimeCnt 在T0定时中断服务函数中执行++ void main() { INIT(); EA = 1; while(PowerOnTimeCnt 3000) //开机画面1234后开始显示0000,按键处理 { P1 = 0Xfe; //t
[单片机]
#<font color='red'>C51</font>按键处理(外部中断的应用)
C51脉冲宽度检测程序
/********************************************** 315无线模块 PT2262 1.5M 270KHz 可以测出脉冲宽度 起始时间 5000us 高电平时间 490us 低 电平 时间 160us HH=1 LL=0 LH=F ***********************************************/ #include reg51.h typedef unsigned int uint; long plu; void delay(uint); main() { TMOD=0x09; //0x0000 1001b ET0=1;
[单片机]
单片机编程如何快速入门?
单片机是一门实践性很强的课程(是半软半硬的东西),所以必须是理论联系实践。 一、什么是单片机呢? 单片机 1、和我们的计算机(电脑)差不多,大家都知道,我们的计算机(电脑)里面有 (1)CPU (2)硬盘 (3)内存 (4)主板 (5)等等。 这些东西是装在一个叫主机的里面的。好大!一个CPU大概要400块,硬盘也要500左右,内存200左右,主板500左右,这些东西加在一起大概要1600块左右。如果配上其他的,一台电脑要3000到4000左右吧。 视图2、但是把这些东西(CPU,硬盘,内存,主板等等)用集成块做好后,如下图所视: 就成了我们要学习的“单片机”
[单片机]
关于DSP编程的几个关键问题
1 McBSP(Multichannel Buffered Serial Port)串口利用DMA中的多帧(Multi-Frame)方式通信的中断处理 在实际通信应用中,一个突发之后,程序必须为下一个突发作准备。因此一般采用串口的DMA多帧方式进行发送,在中断处理程序中或停止发送或加载数据。但在串口以DMA方式传输数据时却有一些问题要讨论。首先DMA的传输同步事件应设为McBSP的传输事件即XEVT,这样一字节传输后会自动准备另一字节(McBSP的READY上升沿触发DMA传输)。中断发生时意味着一个块已传完,这时DMA 的使能自动关闭,McBSP的READY将一直保持高状态。但是在下一次突发传输直接使能DMA时却启动不了传输(
[嵌入式]
2440裸机编程之三 通用I/O口
S3C2440A 具有130 个多功能输入/输出脚,分别包含在如下9 组端口中。 ●1 个25 位输出端口(端口A)。 ●1 个11 位输出端口(端口B)。 ●4 个16 位输入/输出端口(端口C、D、E、G)。 ●1 个8 位输入/输出端口(端口F)。 ●1 个9 位输入/输出端口(端口H)。 ●1 个13 位输入/输出端口(端口J)。 基本上,每个端口有三个寄存器: GPnCON:端口配置寄存器,多数端口有多种功能,所以需要这个寄存器来使某个端口确定某一功能。 GPnDAT:端口数据寄存器,当端口为输出功能时:写这个寄存器就是使端口引脚输出相应电平;当端口为输入功能时:读这个寄存器就是读端口引脚上的相应电平; GPnUP:端
[单片机]
2440裸机<font color='red'>编程</font>之三 通用I/O口
#pragma vector语句在IAR for MSP430中断程序编程过程中的使用
在使用keil对STC89C52单片机程序开发过程中使用 void Name_Function interrupt n 来作为中断服务函数程序的入口,但是在IAR for MSP430程序开发过程中则使用#pragma vector提供中断函数入口地址,并使用 _interrupt void _Name_Function来定义中断函数名称,示例如下: #pragma vector = 0xFFF4; //WDT_VECTOR = 0xFFF4 是看门狗定时器中断地址 __interrupt void Watchdog_Timer(void) { /****/ } 1、上面的入口地址也可写成#pragma vector
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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