有没有老师可以给我讲讲这个程序中的B的代码是怎么定义下来的?
小弟看了16X2的LCD的说明书还是没明白,还望有老师可以给小弟讲讲.
;1602液晶第二行显示一个B
;**************************************************************************
;* Date : 2004.4.20 *
;* Support Mb:0735-2197559 E-mail:c51cn@163.com *
;* Create by :邓德武 www.c51.cn www.china-mcu.cn 更多例程请登陆网站 *
;* 网站单片机学习资料同步更新,敬请新老朋友随时关注 *
;*注意:因ISP下载口与液晶数据口重复,所以用ISP下载时,请先将液晶拨下,烧写好后再插上液晶;
;**************************************************************************
RS BIT P3.0
RW BIT P3.1
E BIT P3.2
DB0_DB7 DATA P0
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,#0C3H ;写入显示地址为第二行第三位.
ACALL Write
MOV A,#42H ;字母B的代码.
ACALL WriteDDR
LOOP: AJMP LOOP
INSE: MOV TL0,#0 ;中断服务子程序.
MOV TH0,#0
DJNZ R5,NO
MOV R5,#50
NO: RETI
INIT:
MOV A,#38H ;使用8Bits汇流排,显示两行,使用5*7的字型.
LCALL Write
MOV A,#0EH ;显示器开,光标开,光标闪烁.
LCALL Write
MOV A,#06H ;字符不动,光标自动右移一格.
LCALL Write
RET
CheckBusy: ;检查忙碌子程序.
PUSH ACC
CB_Loop: CLR RS
SETB RW
CLR E
SETB E
MOV A,DB0_DB7
CLR E
JB ACC.7,CB_Loop
POP ACC
ACALL DELAY
RET
Write: ;写入IR寄存器子程序.
ACALL CheckBusy
CLR E
CLR RS
CLR RW
SETB E
MOV DB0_DB7,ACC
CLR E
RET
WriteDDR: ;写入DR寄存器子程序.
ACALL CheckBusy
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