用 Proteus学习51单片机之1602液晶
2010-05-14 00:47
281 查看
1602液晶,即一行有16个字符,共2行的液晶显示屏,只能显示ASCII码,不能显示汉字。一般1602有16条线,其中8根线是数据操作线,其他8根线是控制线,定义如下:
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微秒左右,而延时一般是纳秒级别,所以有些不用延时(我是为了安全,都延时了一下)
电路图及效果如下:
详细请见源代码(重装了系统,把keil c51更换到9.0版本了,可能大家会打不开了……)。LCD调节对比的似乎不顶用,不知道是不是我弄错了。
点击下载
端口名称 | 说明 |
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微秒左右,而延时一般是纳秒级别,所以有些不用延时(我是为了安全,都延时了一下)
电路图及效果如下:
详细请见源代码(重装了系统,把keil c51更换到9.0版本了,可能大家会打不开了……)。LCD调节对比的似乎不顶用,不知道是不是我弄错了。
点击下载
相关文章推荐
- 用Proteus学习51单片机之串口
- 用Proteus学习51单片机之键盘
- 51 单片机综合学习系统之 1602字符型液晶显示篇
- 用Proteus学习51单片机之数码管
- 51单片机1602液晶显示移动显示
- 用Proteus学习51单片机之I2C(IIC)总线
- 用Proteus学习51单片机之I2C(IIC)总线
- 用Proteus学习51单片机之流水灯
- 51单片机1602液晶程序main.c
- 基于proteus的51单片机仿真实例六十三、字符液晶LCD1602显示单个字符实例
- 基于proteus的51单片机仿真实例六十四、字符液晶LCD1602显示字符串实例
- 用Proteus学习51单片机之中断
- 基于proteus的51单片机仿真实例七十二、并口转串口器件74HC165应用实例(续)
- 基于proteus的51单片机仿真实例七十九、8位数码管驱动芯片max7221应用实例
- 基于proteus的51单片机仿真实例十二、51单片机的C语言程序结构
- 基于proteus的51单片机仿真实例二十二、C51逗号运算符演示实例
- 基于proteus的51单片机仿真实例三十五、C语言的continue语句
- 基于proteus的51单片机仿真实例四十、C语言的文件调用
- 基于proteus的51单片机仿真实例六、运行你的第一个仿真实例
- 基于proteus的51单片机仿真实例六十五、单个I2C器件AT24C02读写实例