ATmega16开发板教程(7)——LCD1602
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:
显示开关光标——0x0C、0x06:
复位——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相关推荐
- ATmega16开发板教程(8)——ADC
9.ADC 在将ADC之前,先聊聊其前因后果--由于计算机在自动控制.检测以及其他领域广泛应用数字电子技术,而大自然的信号全是模拟信号,如果通过计算机保存自然信号呢?那么就需要ADC(模数转换器An ...
- ATmega16开发板教程(2)——KEY点灯
3.KEY点灯 KEY引脚的寄存器定义与LED相同,还是3个寄存器:DDRx.PORTx.PINx(具体介绍可参见LED点灯部分). DDRx:1-输出,0-输入.当配置为输入时,PORTx=1,上 ...
- ATmega16开发板教程(4)——定时器
5.定时器 这里主要编写定时器0和1的定时功能,通过数码管显示. 定时器T0 首先T0是一个8位定时器,其主要由TCNT0(初值寄存器).TCCR0(控制寄存器). TCCR0:FOC0,WGM00, ...
- ATmega16开发板教程(5)——外部中断
6.外部中断 这里主要编写外部中断0和1的边沿触发,通过LED状态显示. 外部中断0 外部中断我们要知道的是:①如何触发?上升沿.下降沿还是高低电平:②外部中断使能:③中断服务函数的编写. AVR提 ...
- ATmega16开发板教程(1)——LED点灯
2.LED点灯 作为通用数字IO使用时,AVR单片机的IO具备读.写.修改功能.每个端口具有3个寄存器:DDRx.PORTx.PINx. DDRx:1-输出,0-输入.当配置为输入时,PORTx=1 ...
- ATmega16开发板教程(6)——串口通信
7.串口通信 串口通信的基本概念就是用一根线收RX和另外一根线发TX数据,那么什么时候发?什么时候开始收呢?例如,古时候的暗号--天王盖地虎.小鸡炖蘑菇,说完就开始交易. 串口通信最重要的参数就是波特 ...
- ATmega16开发板仿真教程——前言
1.基础知识 简单介绍单片机ATmega16的硬件资源,以及IAR软件使用,Proteus8.9仿真软件的基本操作. AVR单片机分类: ATtiny系列:tiny13/15/26属于低档,适合功能相 ...
- 厦门理工嵌入式开发LPC1768开发板教程
LPC1768开发板教程 注意:本文档基于LPC1768.h头文件和EZ1768.h头文件(在文档结尾附出) 文章目录 LPC1768开发板教程 1.GPIO 1.1 设置GPIO 1.2 设置输入输 ...
- LIVE MINI ESP32开发板教程系列(三)drv2605L模块+手机常用振动器实现117种震动效果
LIVE MINI ESP32开发板教程系列(三)drv2605L模块+手机常用振动器实现117种震动效果 LIVE MINI ESP32引脚图 手机振动器介绍 DRV2605L模块 硬件连线图 DR ...
最新文章
- 你管这破玩意叫 RDB
- Asterisk SIP连通测试(X-Lite eyebeam)
- maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
- 短视频追剧的末日来了?
- QT修改应用程序图标
- PyTorch入门(三)损失函数与反向传播
- Spark2.1.1中用各种模式运行计算圆周率的官方Demo
- js注释过后依然起作用
- 从0开始的技术美术之路(十)伽马校正
- css 小尖角,CSS3之尖角标签
- VBA教程初级(五):复杂数组
- Android中屏蔽返回键,HOME键以及模拟HOME键返回效果的方法
- 【论文速览】PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection
- 网易暴力裁员事件,真的让人寒心
- 77.组合 | 40.组合总和II | 39.组合总和 | 784.字母大小写全排列
- HADOOP学习详细教程
- Linux命令 - head命令
- Python中利用moviepy对视频进行剪辑以及拼接
- 贵州杰赛s65机顶盒子CPU S905M-B 刷机教程及纯尽版固件
- IC验证-浅谈中断验证(一)