lcd开机流程图_LCD1602程序代码及显示流程图.doc[通俗易懂]

lcd开机流程图_LCD1602程序代码及显示流程图.doc[通俗易懂]LCD1602程序代码及显示流程图LCD1602程序代码及显示流程图lcd1602显示程序代码前些天弄了最小系统板后就想着学习1602的显示程序,可惜坛子里的或网上的,都没有简单的1602显示程序,无柰在网上下载了一段经过反复修改测试,终于有了下面一段代码://———————————-…

大家好,又见面了,我是你们的朋友全栈君。

LCD1602程序代码及显示流程图

LCD1602程序代码及显示流程图

lcd1602显示程序代码

前些天弄了最小系统板后就想着学习1602的显示程序,可惜坛子里的或网上的,都没有简单的1602显示程序,无柰在网上下载了一段经过反复修改测试,终于有了下面一段代码:

// – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

// – – 初始化接口

# define LCD_DB P0 // – – P0 = DB0~DB7

sbit LCD_RS=P2 ; // – – p2.0 = RS

sbit LCD_RW=P2; // – – p2.1 = RW

sbit LCD_E=P2; // – – p2.2 = E

// – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

// – – 定义函数

# define uchar unsigned char

# define uint unsigned int

// – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

// – – 定义子程序函数

void LCD_init(void); // – – 初始化LCD1602函数

void LCD_write_command(uchar command); // – – 向LCD1602写指令函数

void LCD_write_data(uchar dat); // – – 向LCD1602写数据函数

void LCD_set_xy(uchar x,uchar y); // – – 设置LCD1602显示位置 X(0-16),y(1-2)

void LCD_disp_char(uchar x,uchar y,uchar dat); // – – 在LCD1602上显示一个字符

void LCD_disp_string(uchar X,uchar Y,uchar *s); // – – 在LCD1602上显示一个字符串

//void LCD_check_busy(void);//检查忙函数。我没用到此函数,因为通过率极低。

void LCD_delay_10us(uint n); // – – 10微秒的延时子程序

void LCD_delay_50us(uint n); // – – 50微秒的延时子程序

// – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

// – – 初始化LCD1602

void LCD_init(void)

{

LCD_delay_10us(20);

LCD_write_command(0x38); // – – 设置8位格式,2行,5×7

LCD_delay_10us(5);

LCD_write_command(0x0c); // – – 整体显示,关光标,不闪烁

LCD_delay_10us(5);

LCD_write_command(0x06); // – – 设定输入方式,增量不移位

LCD_delay_10us(5);

LCD_write_command(0x01); // – – 清除屏幕显示

LCD_delay_50us(40);

}

//********************************

// – – 向LCD1602写指令

void LCD_write_command(uchar dat)

{

LCD_delay_10us(5);

LCD_RS=0; // – – 指令

LCD_RW=0; // – – 写入

LCD_DB=dat;

LCD_delay_10us(5);

LCD_E=1; // – – 允许

LCD_delay_10us(5);

LCD_E=0;

}

// – – 向LCD1602写数据

void LCD_write_data(uchar dat)

{

LCD_delay_10us(5);

LCD_RS=1;// – –

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160134.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HDU 1026 Ignatius and the Princess I 迷宫范围内的搜索剪枝问题

    HDU 1026 Ignatius and the Princess I 迷宫范围内的搜索剪枝问题

    2022年1月10日
    23
  • 【运维】使用Serv-U搭建FTP服务器[通俗易懂]

    【运维】使用Serv-U搭建FTP服务器[通俗易懂]1、先安装好Serv-U,并作为系统服务安装2、打开Serv-U,新建一个域3、添加用户4、解决阿里云专有网络的一个问题遇到一个情景:需要使用Serv-U进行FTP更新软件,其中使用PASV的连接方式,这种方式客户要求连接FTP的时候,Serv-U会随机产生一个端口发送给客户端,告诉客户端通过这个端口来发送文件;而阿里云专有网…

    2025年7月26日
    3
  • RTP协议头详解

    RTP协议头详解1.RTP协议RTP:即可心跑在TCP也可以跑在UDP上,实时流协议,所以通常是跑在UDP上。前12个字节出现在每个RTP包中,仅仅在被混合器插入时,才出现CSRC识别符列表。各个域的含义如下所示:(1)版本(V):2比特,此域定义了RTP的版本。此协议定义的版本是2。(值1被RTP草案版本使用,值0用在最初”vat”语音工具使用的协议中。)(2)填充(P):1比特,若填料比特被设置,则此包包含一到多个附加在末端的填充比特,填充比特不算作负载的一部分。填

    2022年6月28日
    52
  • 离散系统的变换域

    离散系统的变换域

    2022年1月4日
    75
  • SpringBoot自动装配原理「建议收藏」

    SpringBoot自动装配原理「建议收藏」SpringBoot项目无需各种配置文件,一个main方法,就能把项目启动起来。那么我们看看SpringBoot是如何进行自动配置和启动的。SpringBoot通过main方法启动SpringApplication类的静态方法run()来启动项目。根据注释的意思,run方法从一个使用了默认配置的指定资源启动一个SpringApplication并返回ApplicationContext对象,这个默认配置如何指定呢?这个默认配置来源于@SpringBootApplication注解,这个注解是个复

    2022年8月20日
    4
  • 解决verycd上不能下载资源的问题

    解决verycd上不能下载资源的问题以下内容为转载:当时在verycd上搜索资料,但是下载不了,忽然看到这一篇文章,试了以下,果然可以下载。顺便记下以便后续使用。唉,我真的挺喜欢verycd的,好多好好的资源哟,尤其是杂志啊、设计素材

    2022年7月2日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号