lcd1602显示流程图

lcd1602显示流程图,第1张

lcd1602显示流程图:

LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。

不同厂家生产的LCD1602芯片可能有所不同,但使用方法都是一样的。为了降低成本,绝大多数制造商都直接将裸片做到板子上。

扩展资料:

LCD1602与单片机的连接有两种方式,一种是直接控制方式,另一种是所谓的间接控制方式。它们的区别只是所用的数据线的数量不同,其他都一样。

1、直接控制方式

LCD1602的8根数据线和3根控制线E,RS和R/W与单片机相连后即可正常工作。一般应用中只须往LCD1602中写入命令和数据,因此,可将LCD1602的R/W读/写选择控制端直接接地,这样可节省1根数据线。

VO引脚是液晶对比度调试端,通常连接一个10kΩ的电位器即可实现对比度的调整;也可采用将一个适当大小的电阻从该引脚接地的方法进行调整,不过电阻的大小应通过调试决定。

2、间接控制方式

间接控制方式也称为四线制工作方式,是利用HD44780所具有的4位数据总线的功能,将电路接口简化的一种方式。为了减少接线数量,只采用引脚DB4~DB7与单片机进行通信,先传数据或命令的高4位,再传低4位。

采用四线并口通信,可以减少对微控制器I/O的需求,当设计产品过程中单片机的I/O资源紧张时,可以考虑使用此方法。

参考资料来源:百度百科-LCD1602

1、首先我们打开Keil μVision编译器,新建一个工程,然后保存在硬盘上的位置,然后选择Atmel-AT89C51单片机为模型,并启动器添加STARTUP.A51文件,然后在当前目录下新建一个C文件,并将其添加入工作路径。

2、导入51单片机的头文件以及LCD1602的头文件。

3、创建一个延时函数,可以传入想要具体延时的时长,其内部实现是由一个二重循环,两个循环的次数相乘积。

4、然后创建写命令的函数,指定RS和E同时为0时,才可以写入命令,设定完成后,将com写入输出端口,规定写命令时,E为正脉冲,然后空 *** 作一个机器周期等待机器反应。

5、然后创建写数据的函数,规定写数据时,E为正脉冲,规定当RS=1和RW=0时才可以写入数据,然后将数据从输出端口输出,最后让E产生正跳变。

6、然后创建初始化LCD1602的函数,指定显示模式位两行显示,5*7,8位数据、整体显示,无光标,无闪烁、写入一个字符后地址指针加1,最后进行清屏 *** 作。

7、最后在主函数中首先执行LCD1602的初始化函数,首先创建一个无限循环,然后添加两个字符串,这里以两行显示百度经验的网址为例,再进行延时以及使用清屏函数进行刷新。

让LCD1602显示字符前要输入字符所在的地址,这也是每显示一个字符地址要加一的原因,在下面的一段代码里你会明白怎么设置地址,怎么让地址自动加一,怎么清屏,怎么显示字符,希望你能看懂哦

sbit LCD_E=P2^0 //lcd1602控制置位

sbit LCD_RW=P2^1 //lcd1602控制置位

sbit LCD_RS=P2^2 //lcd1602控制置位

void LCD_command(unsigned char com)

{

LCD_E=0

LCD_RW=0

LCD_RS=0

P1=com

delay_us(100)

LCD_E=1

delay_us(100)

LCD_E=0

}

void LCD_date(unsigned char dat)

{

LCD_E=0

LCD_RW=0

LCD_RS=1

P1=dat

delay_us(100)

LCD_E=1

delay_us(100)

LCD_E=0

}

LCD_command(0x38) //设置LCD为16*2显示,5*7点阵,8位数据接口

LCD_command(0x0c) //设置LCD显示开,光标显示关

LCD_command(0x06) //写一个数据后地址加1

LCD_command(0x01) //显示清屏

LCD_command(0x80) //数据指针设置为第一行第一位

LCD_date('pi')

LCD_date('l')

LCD_date('e')

LCD_date('a')

LCD_date('s')

LCD_date('e')

LCD_date(' ')

LCD_date('c')

LCD_date('h')

LCD_date('e')

LCD_date('c')

LCD_date('k')

LCD_date(' ')

LCD_date('t')

LCD_date('h')

LCD_date('e')

LCD_command(0x80+0x40) //LCD地址指针指向第二行第一个位置

LCD_date('c')

LCD_date('o')

LCD_date('n')

LCD_date('n')

LCD_date('e')

LCD_date('c')

LCD_date('t')

LCD_date('i')

LCD_date('o')

LCD_date('n')

LCD_date('!')

LCD_date('!')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7751783.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存