您的位置:首页

1602液晶显示

2017-06-29 20:47 190 查看
液晶有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);

}

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

看懂 时序图
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: