做这实验之前我们需要将相关的实验器材准备好:
1:RT1602C液晶显示模块一个
2:AT89S51芯片一片
3:编程器及相关的编程软件
4:电脑就不用我在这里提了吧。呵呵
现在你可以按下图的LCD驱动电路做个电路板,购买了本站产品的朋可直接将配套的1602插到驱动接口上:VSS为地电源
VDD接5V正电源
VL为液晶显示器对比度调整端:接正电源时对比度最弱,接地电源时对比度最高,对比度过高时
会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
RS为寄存器选择:高电平时选择数据寄存器、低电平时选择指令寄存器。
RW为读写信号线:高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写
入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电
平RW为低电平时可以写入数据。
E端为使能端:当E端由高电平跳变成低电平时,液晶模块执行命令。
DB0~DB7为8位双向数据线
BLK和BLA:是背光灯电源。
在上一课我们已经知道了字母“A”的代码是01000001B了,为什么会是01000001B呢?如果还不明白?请返回上节再巩固一下吧!

其实现在有查询LCD显示内码的软件,点击这里下载,不过大家最好去理解一下。
;*******************************源程序如下*********************************
;单片机自学网
RS BIT P3.0
RW BIT P3.1
E BIT P3.5
DB0_DB7 DATA P1
ORG 00H
AJMP START
ORG 000BH
AJMP INSE
ORG 50H
START:MOV TMOD,#0
MOV TL0,#0
MOV TH0,#0
SETB EA
SETB ET0
SETB TR0
MOV R5,#50
MOV SP,#60H
ACALL INIT
MOV A,#10000000B ;写入显示地址为第一行第一位。
ACALL C51
MOV A,#01000001B ;字母“A”的代码。
ACALL C51DDR
LOOP: AJMP LOOP
INSE: MOV TL0,#0 ;中断服务子程序。
MOV TH0,#0
DJNZ R5,NO
MOV R5,#50
NO: RETI
INIT: MOV A,#00111000B ;使用8Bits汇流排,显示两行,使用5*7的字型。
LCALL C51
MOV A,#00001110B ;显示器开,光标开,光标闪烁。
LCALL C51
MOV A,#00000110B ;字符不动,光标自动右移一格。
LCALL C51
RET
DDW: ;检查忙碌子程序。
PUSH ACC
DDW1:CLR RS
SETB RW
CLR E
SETB E
MOV A,DB0_DB7
CLR E
JB ACC.7,DDW1
POP ACC
ACALL DELAY
RET
C51: ;写入IR寄存器子程序。
ACALL DDW
CLR E
CLR RS
CLR RW
SETB E
MOV DB0_DB7,ACC
CLR E
RET
C51DDR: ;写入DR寄存器子程序。
ACALL DDW
CLR E
SETB RS
CLR RW
SETB E
MOV DB0_DB7,ACC
CLR E
RET
DELAY: ;延时子程序。
MOV R6,#5
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
END
以上程序书写时用二进制目的是为了方便大家去理解。将上面的程序编译好后用编程器将程序写入AT89S51芯片,然后将写好的AT89S51芯片插入本站提供的实验板或自已DIY的实验板上,通电运行,这时在1602液晶显示器上就显示出一个“A”了。
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.

