用 Proteus学习51单片机之1602液晶

1602液晶,即一行有16个字符,共2行的液晶显示屏,只能显示ASCII码,不能显示汉字。一般1602有16条线,其中8根线是数据操作线,其他8根线是控制线,定义如下:

端口名称说明
VSS电源地
VDD电源正极
VO液晶对比度调节端
RS数据/命令选择端(H为数据,L为命令)
R/W读写控制(H/L)
E使能
D0-D7数据库端
BLA背光电源正极
BLK背光电源负极

 

1602在Proteus中对应的元件是LM016L,但是它并没有上表中列的那么多线,主要是没有BLA和BLK,其他差不多。

1602分两行,每行显示16个字,但是其内部是有80B的RAM缓冲区的,其起始地址是0x80,其中第一行的地址是相对起始地偏移0x00~0x0F,第二行的地址是相对起始地址偏移0x40~0x67,在往里面写数据的时候,比如要在第一行第二个位置显示字符A,则先要把指针设置到0x80+0x01的位置,然后往里面写A的代码。

1602的指令分为两种,一种是设置液晶的状态,比如是否显示光标,清屏,光标移动等,另一种为数据命令,即在屏幕上显示什么数据,两者都是通过D0-D7来设置的,只不过当RS设置为高电平时,设置的是数据,低电平的时候设置的是命令。具体的命令,可以查Datasheet。

 

试着在1602上写一些数据,写时序图如下。以前对时序图非常的看不懂,最近看多了,似乎有点感觉了,说白了就是,先把RS位置高或低电平(根据你是要写数据还是写命令),然后把R/W位置低电平,然后置使能端E为高电平,然后写入数据就可以了。可以看到,设置电平后,需要一定的延时,由于单片机一次指令一般需要1微秒左右,而延时一般是纳秒级别,所以有些不用延时(我是为了安全,都延时了一下)

image

电路图及效果如下:

image

 

详细请见源代码(重装了系统,把keil c51更换到9.0版本了,可能大家会打不开了……)。LCD调节对比的似乎不顶用,不知道是不是我弄错了。

点击下载

转载于:https://www.cnblogs.com/varlxj/archive/2010/05/14/1735047.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值