​8、LCD1602

LCD1602作为最基础的字符型液晶显示屏,能过显示16x02=32个字符。那么时序的操作——读写是最主要的内容,今天就带大家一起读读时序。

在看时序图前,对LCD的引脚功能要了解,才能更好的读懂时序。

这里除了电源(1、2)、背光(15、16)、对比度(3)外,主要是控制信号和数据信号。

RS:数据/命令选择引脚,即=1写入数据,=0写入命令;

RW:读写选择引脚,即=1读数据,=0写数据;

EN:使能引脚;

D0-D8:8位数据位。

所以:当RS=0,RW=0时,写入指令;当RS=1,RW=0时,写入数据;当RS=0,RW=1时,读忙信号;当RS=1,RW=1时,读数据。

这里忙信号主要是D7引脚,即D7=0时,允许读写操作,否则LCD正在忙,禁止读写。

读时序:

如图,RS可为0(读命令)或1(读数据),但RW=1时有效,EN从0到1,保持一段时间后回到0。

具体代码——读取忙等待:

说明:RS=0,RW=1时,读LCD忙位,若=0,则继续执行,否则等待。

写时序:

如图,RS可为0(写命令)或1(写数据),但RW=0时有效,EN从0到1,保持一段时间后回到0。

具体代码——写指令和数据:

 

说明:RS=0,RW=0时,写命令;RS=1,RW=0时,写数据。在此之前都会进行忙等待的读取。

剩下的操作就是对初始化的指令码进行查看,例如:

显示模式——0x38

显示开关光标——0x0C0x06

复位——0x01

如上图主要指令介绍,只需要操作4个指令即可初始化LCD1602。

具体其它指令可参见LCD1602的数据手册。

主函数代码实现功能:LCD1602初始化及显示字符串。

仿真视频

/**
******************************************************************************
*   @file      main.c
*   @author    Alex——小白
*   @version   V1.0
*   @date      2021.1.20
*   @brief     LCD1602 Display
*   @store     Proteus仿真店子——公众号
*   @Link      https://shop484534014.taobao.com/
*   @Email     844545015@qq.com
******************************************************************************
*   @attention  All Rights Reserved
**/
​
#include <main.h>
​
void main(void)
{  LCD.LCD1602_Init();             //LCD初始化    Delay.Delay_ms(1000);while(1){ LCD.LCD1602_WriteStr(1,5,"LCD1602");}
}
​
/********************************************************End Of File
********************************************************/

如需Proteus和IAR安装包以及AVR编程参考手册,请关注公众号:

Proteus仿真店子

可通过查看历史记录,查看源码和仿真工程

(若需Proteus和IAR安装包以及AVR编程参考手册,后台回复:AVR;若需其它设计,后台回复:AVR设计

ATmega16开发板教程(7)——LCD1602相关推荐

  1. ATmega16开发板教程(8)——ADC

    ​9.ADC 在将ADC之前,先聊聊其前因后果--由于计算机在自动控制.检测以及其他领域广泛应用数字电子技术,而大自然的信号全是模拟信号,如果通过计算机保存自然信号呢?那么就需要ADC(模数转换器An ...

  2. ATmega16开发板教程(2)——KEY点灯

    ​3.KEY点灯 KEY引脚的寄存器定义与LED相同,还是3个寄存器:DDRx.PORTx.PINx(具体介绍可参见LED点灯部分). DDRx:1-输出,0-输入.当配置为输入时,PORTx=1,上 ...

  3. ATmega16开发板教程(4)——定时器

    5.定时器 这里主要编写定时器0和1的定时功能,通过数码管显示. 定时器T0 首先T0是一个8位定时器,其主要由TCNT0(初值寄存器).TCCR0(控制寄存器). TCCR0:FOC0,WGM00, ...

  4. ATmega16开发板教程(5)——外部中断

    ​6.外部中断 这里主要编写外部中断0和1的边沿触发,通过LED状态显示. 外部中断0 外部中断我们要知道的是:①如何触发?上升沿.下降沿还是高低电平:②外部中断使能:③中断服务函数的编写. AVR提 ...

  5. ATmega16开发板教程(1)——LED点灯

    ​2.LED点灯 作为通用数字IO使用时,AVR单片机的IO具备读.写.修改功能.每个端口具有3个寄存器:DDRx.PORTx.PINx. DDRx:1-输出,0-输入.当配置为输入时,PORTx=1 ...

  6. ATmega16开发板教程(6)——串口通信

    7.串口通信 串口通信的基本概念就是用一根线收RX和另外一根线发TX数据,那么什么时候发?什么时候开始收呢?例如,古时候的暗号--天王盖地虎.小鸡炖蘑菇,说完就开始交易. 串口通信最重要的参数就是波特 ...

  7. ATmega16开发板仿真教程——前言

    1.基础知识 简单介绍单片机ATmega16的硬件资源,以及IAR软件使用,Proteus8.9仿真软件的基本操作. AVR单片机分类: ATtiny系列:tiny13/15/26属于低档,适合功能相 ...

  8. 厦门理工嵌入式开发LPC1768开发板教程

    LPC1768开发板教程 注意:本文档基于LPC1768.h头文件和EZ1768.h头文件(在文档结尾附出) 文章目录 LPC1768开发板教程 1.GPIO 1.1 设置GPIO 1.2 设置输入输 ...

  9. LIVE MINI ESP32开发板教程系列(三)drv2605L模块+手机常用振动器实现117种震动效果

    LIVE MINI ESP32开发板教程系列(三)drv2605L模块+手机常用振动器实现117种震动效果 LIVE MINI ESP32引脚图 手机振动器介绍 DRV2605L模块 硬件连线图 DR ...

最新文章

  1. 你管这破玩意叫 RDB
  2. Asterisk SIP连通测试(X-Lite eyebeam)
  3. maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
  4. 短视频追剧的末日来了?
  5. QT修改应用程序图标
  6. PyTorch入门(三)损失函数与反向传播
  7. Spark2.1.1中用各种模式运行计算圆周率的官方Demo
  8. js注释过后依然起作用
  9. 从0开始的技术美术之路(十)伽马校正
  10. css 小尖角,CSS3之尖角标签
  11. VBA教程初级(五):复杂数组
  12. Android中屏蔽返回键,HOME键以及模拟HOME键返回效果的方法
  13. 【论文速览】PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection
  14. 网易暴力裁员事件,真的让人寒心
  15. 77.组合 | 40.组合总和II | 39.组合总和 | 784.字母大小写全排列
  16. HADOOP学习详细教程
  17. Linux命令 - head命令
  18. Python中利用moviepy对视频进行剪辑以及拼接
  19. 贵州杰赛s65机顶盒子CPU S905M-B 刷机教程及纯尽版固件
  20. IC验证-浅谈中断验证(一)

热门文章

  1. 使用Reveal查看任意App的技巧
  2. 具象业务需求再抽象分解——系统设计
  3. Dubbo框架整体认知
  4. android摄像头api
  5. 如何评价Sparse R-CNN,目标检测未来会如何发展?
  6. 200人融资3亿元,重新定义移动安全市场,这家公司是谁?
  7. opencv立方体的画法_【清美艺考】不看后悔!最详细的立方体透视变化及画法讲解...
  8. Loading动画的最佳实现方式
  9. 什么是Lambda表达式
  10. Linux之旅 9:正则表达式与文件格式化