当前位置: 首页 > ai >正文

51使用LCD1602液晶显示(复习总结)

该知识点来源于B站知弦本章便是对其LCD1602应用的简单总结!!!

一、LCD1602

1、1602概念:每行可以显示16个字符,共2行

2、各个引脚:对比度VEE接地时,显示度最好

3、显示地址:初始地址0x80,

第一行显示地址0x80+0x00开始

第二行显示地址0x80+0x40开始

 4、LCD命令

 

 常用命令:

 5、写操作时序图(读操作一般不用)

初始状态,RW=0,E=0,当E=1时,开始写命令/数据,之后E=0时结束写操作

注意:RS=0为写命令,RS=1为写数据。

 二、仿真

仿真器件搜索:AT89C51、LM016L

三、程序

#include"reg51.h"
sbit RS=P3^0;
sbit RW=P3^1;
sbit E=P3^2;
unsigned char s[]={"hello world!"};
unsigned char s1[]={"test_success"};void delay(unsigned int m)
{unsigned int i=0,j=0;for(i=0;i<m;i++){for(j=0;j<120;j++);}
}void writecom(unsigned char com)
{RS=0;RW=0;E=0	;P2=com; delay(5);E=1;E=0;
}void writedat(unsigned char dat)
{RS=1;RW=0;E=0	;P2=dat; delay(5);E=1;E=0;
}void initlcd()
{writecom(0x38);writecom(0x0c);writecom(0x06);writecom(0x01);
}void display()
{int i=0,j=0;writecom(0x80);delay(5);while(s[i]!='\0'){writedat(s[i]) ;delay(5);i++;}writecom(0x80+0x40);while(s1[j]!='\0'){writedat(s1[j]) ;delay(5);j++;}	 
}void main()
{initlcd();while(1){display();}
}

四、总结

学会根据时序图写程序

注意字符串的结束符号'\0'

http://www.xdnf.cn/news/11368.html

相关文章:

  • window.setInterval的用法与实例
  • Unix时间戳和北京时间的相互转换
  • 网络安全--安全攻防概述
  • VNN简介很好的网络软件工具
  • 【Linux 裸机篇(一)】ARM Cortex-A 架构基础、汇编基础
  • x86-64、amd64、arm、aarch64 都是些什么?
  • 设计模式——Proxy静态代理与动态代理
  • HVS人眼视觉系统(Human Visual System)
  • MATLAB教程四:MATLAB绘图
  • NFS-Ganesha框架学习
  • PHP从零开始--基础篇
  • delphi开发小白盒接口实现扫码控制
  • 前端需要知道的JSON.stringify的正确用法
  • 【转】 ID,ClientID和UniqueID
  • 对一个vbs脚本病毒的病毒原理分析
  • Apche Kafka 的生与死 – failover 机制详解
  • 【51单片机】矩阵键盘
  • 创新管理:臭鼬工厂的故事
  • Directsound和Waveout
  • 什么是卷积?
  • 详解DOM对象中clientWidth、offsetWidth等属性
  • 关于AlertDialog 的一些用法
  • 常用正则表达式合集,这一篇就够了!!(含完整案例,建议收藏)
  • PC硬件——主板
  • 永恒之蓝(ms17-010)简介与复现
  • BNF 介绍
  • 国外有哪些安全论坛或者黑客论坛,或者导航类黑客学习网站?
  • 在win10下的VTK安装 VS2017+VTK+ITK+camke+QT的逐步安装(保姆级教程,逐步教程)
  • 贪心算法(greedy algorithm,又称贪婪算法)详解(附例题)
  • FCFS、SJF、HRRN调度算法