单片机1602液晶显示

songbo   2008-7-29 12:58 楼主
程序清单:
RS EQU P3.0
RW EQU P3.1
E EQU P3.5
mov p3,#0ffh
MOV P1,#01H ;清除屏幕
ACALL ENABLE
MOV P1,#38H ;8位点阵
ACALL ENABLE
MOV P1,#0FH ;开显示
ACALL ENABLE
MOV P1,#06H ;移动光标
ACALL ENABLE
MOV P1,#80H ;显示位置
ACALL ENABLE
l3: mov p1,#01h
acall enable
mov dptr,#table1 ;送第一句话
call write1
call enable
mov p1,#01h
ljmp l1
l4: mov p1,#01h
acall enable
mov dptr,#table2 ;送第二句话
call write1
call enable
mov p1,#01h
ljmp l1
l5: mov p1,#01h
acall enable
mov dptr,#table3 ;送第三句话
call write1
acall enable
mov p1,#01h
ljmp l1
l6:mov p1,#01h
acall enable
mov dptr,#table4 ;送第四句话
call write1
acall enable
mov p1,#01h
ljmp l1
l1: jnb p3.3,l3 ;监测键盘
jnb p3.4,l4
jnb p3.5,l5
JNB P3.2,L6
jmp l1
ENABLE: ;送命令
CLR RS
CLR RW
CLR E
ACALL DELAY
SETB E
RET
write1: ;送字符串
mov r1,#00h
a1:mov a,r1
movc a,@a+dptr
call write2
inc r1
cjne a,#00h,a1 ;以00H做字符串结束标志
ret
write2: ;送单个字符
mov p1,a
setb rs
clr rw
clr e
call delay
setb e
ret
delay: ;延时子程序
mov r7,#255
d1:mov r6,#255
d2:djnz r6,d2
djnz r7,d1
ret
;以下每个表格都是一句话,以00H作为每句话的结尾.
table1: db 20h,57h,57h,57h,2Eh,35h,31h,43h,35h,31h,2Eh,43h,4Fh,4Dh,20h,20h,20h,00h
table2: db 53h,58H,4AH,31H,39H,37H,34H,40H,31H,36H,33H,2EH,43H,4FH,4DH,20H,20h,00H
table3: db 54h,45h,4Ch,30h,37h,35h,35h,20H,32H,37H,35H,32H,39H,30H,36H,35H,20H,00H
Table4: db 49H,20H,4CH,4FH,56H,45H,20H,38H,39H,43H,35H,31H,21H,4FH,4BH,20H,20H,00H

end

回复评论 (5)

Re: [分享] 单片机1602液晶显示

学习,再学习,清早起来就学习
点赞  2008-12-3 22:10

Re: [分享] 单片机1602液晶显示

哈哈,适合我这中菜鸟哦!
点赞  2009-3-14 10:43
这个程序好像不能正常显示呢
点赞  2009-6-9 11:07
积极赚积分 下资料 感谢楼主
点赞  2009-7-26 20:25
有没有C 的也共享一点。。不过还是学习了
点赞  2009-8-9 18:13
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复