1602液晶显示

摘要:
液晶有1,2端为电源。为防止直接加5V电压烧坏背光灯,在15脚串接一个10欧的电阻用于限流。通过一个10k欧电位器接地来调节液晶显示的对照度。液晶6端为使能信号,是操作时必需的信号,接单片机的P3.4口。写命令包含使液晶的光标显示/不显示、光标闪烁/不闪烁、需/不须要移屏、在液晶的什么位置显示,等等读/写控制端的设置为写模式。

1602液晶显示第1张

液晶有1,2端为电源。15、16为背光源。为防止直接加5V电压烧坏背光灯,在15脚串接一个10欧的电阻用于限流。

液晶3端为液晶对照度调节端。通过一个10k欧电位器接地来调节液晶显示的对照度。

液晶的4端为液晶控制器写数据/读数据选择端,接P3.5口

液晶5端为读/写选择端。由于我们不从液晶读取不论什么数据,仅仅向其写入命令和数据,因此此端始终选择为写状态。即始终接地。

液晶 6端为使能信号,是操作时必需的信号,接单片机的P3.4口。

写 操作时序

(1)通过RS确定是写数据还是写命令。写命令包含使液晶的光标显示/不显示、光标闪烁/不闪烁、需/不须要移屏、在液晶的什么位置显示,等等

(2)读/写控制端的设置为写模式。即低电平

(3)将数据或命令送达数据线上

(4)给E一个高脉冲将数据送入液晶控制器,完毕写操作

一下是我写的一个程序

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="GOOD GOOD STUDY!";
uchar code table1[]="DAY DAY UP ^_^!";
sbit lcden=P3^4;
sbit rs=P3^5;
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
void delay(unsigned char i)
{
unsigned char j,k;
for(j=i;j>0;j--)
for(k=90;k>0;k--);
}
void write_com(uchar com)
{
rs=0;//选择写指令
P0=com; //将要写的命令送到数据总线上
delay(5);
lcden=1; //使能端给一高脉冲。由于初始化函数中已将lcd置为0
delay(5);
lcden=0; //完毕高脉冲
}
void write_data(uchar date)
{
rs=1;//写数据
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
dula=0;
wela=0;
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void main()
{
init();
write_com(0x80);
for(num=0;num<16;num++)
{
write_data(table[num]);
delay(5);
}
write_com(0x80+0x40);
for(num=0;num<15;num++)
{
write_data(table1[num]);
delay(5);
}
while(1);
}

通过 这个能够写一些简单的时序了

看懂 时序图

免责声明:文章转载自《1602液晶显示》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ACM输入输出之pythonvue element-ui 使用 el-scrollbar监听滚动条滚动事件,处理el-tabs滚动到顶部header吸顶效果下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C++获取时间函数

https://github.com/yangzijianGit/Time #include <Windows.h> #include <time.h> #include <winbase.h> unsigned long long GetCurrentTimeMsec() { #ifdef _WIN32 st...

一种高效快速的内存池实现(附源码)

此算法灵感来自于apache内存池实现原理,不过读者如果没有看过apache内存池实现也无关系,因为本算法相对apache内存池算法更为简单而且易懂,个人认为某些场合也更为高效,或许真正到了apache服务器上性能不如,但是这套设计思想应该还是可以借鉴到更多场合的。 我们在调用malloc函数时,操作系统内部会查找一个所谓的空闲链表,当找到足够大的空闲空间...

linux-2.6.32在mini2440开发板上移植之DM9000网卡移植

                                                            移植DM9000 网卡驱动1 设备资源初始化      Linux-2..6.32.2 已经自带了完善的DM9000 网卡驱动驱动(源代码位置:linux-2.6.32.2/drivers/net/dm9000.c),它也是一个平台设备,...

[Linux内核]软中断与硬中断

转自:http://blog.csdn.net/zhangskd/article/details/21992933 本文主要内容:硬中断 / 软中断的原理和实现 内核版本:2.6.37 Author:zhangskd @ csdn blog 概述 从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。...

rootkit:实现隐藏进程

实现隐藏进程一般有两个方法: 1,把要隐藏的进程PID设置为0,因为系统默认是不显示PID为0的进程。 2,修改系统调用sys_getdents()。 Linux系统中用来查询文件信息的系统调用是sys_getdents,这一点可以通过strace来观察到,例如strace ls 将列出命令ls用到的系统调用,从中可以发现ls是通过getdents系统调用...

clang: error: linker command failed with exit code 1

之前在 macOS 10.13 上参照官方文档 build 了 LLVM 和 Clang,而在使用 clang++ 编译时有时会遇到如题的问题,具体报错信息如下: Undefined symbols for architecture x86_64: "std::string::compare(char const*) const", reference...