📄 1602lcd显示程序汇编.txt
字号:
ORG 0000H;程序从00H执行
RS EQU P2.0;(定义RS为P2.0)
RW EQU P2.1; (定义RW为P2.1)
E EQU P2.2;(定义E为P2.2)
MOV P0,#01H;(送01H到P0)清除屏幕
ACALL ENABLE;(调用ENABLE字程序)
MOV P0,#01H;(送01H到P0口)清除屏幕
ACALL ENABLE;(调用ENABLE子程序)
MOV P0,#38H;(送38H到P0)8位点阵方式
ACALL ENABLE;(调用ENABLE子程序)
MOV P0,#0FH;(往P0送OFH)开显示
ACALL ENABLE (调用ENABLE子程序)
MOV P0,#06H;(送06H到P0)移动光标
ACALL ENABLE;(调用ENABLE子程序)
MOV P0,#80H;(送80H到P0口)显示位置
ACALL ENABLE;(调用ENABLE子程序)
start:
mov dptr,#table3;(DPTR指向TABLE3)在第一行显示welcome
call write1;(调用WRITE1子程序)
mov P0,#0c0h;(送0C0H到P0)第一条的位置
call enable
mov dptr,#table2;第二行显示http://nettv.51.net
call write1
mov P0,#0c2h;第二行位置
call enable
call delay2;延时5秒
MOV P0,#02H;清除屏幕
ACALL ENABLE
mov dptr,#table3;在第一行显示welcome
call write1
mov P0,#0c0h;第一行位置
call enable
mov dptr,#table1;在第二行显示QQ号.
call write1
mov P0,#0c2h;第二行位置
call enable
call delay2
MOV P0,#02H;清除屏幕
ACALL ENABLE
ajmp start
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
ret
write2:
mov P0,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
delay2:
mov r7,#255
d3:mov r6,#255
d4:djnz r6,d2
djnz r7,d1
ret
table3: db 57H,45H,4CH,43H,4FH,4DH,45H,20H,20H,20H,20H,20H,20H,20H,20H,20H,00h
table2: db 4CH,69H,78H,69H,61H,2EH,35H,31H,2EH,6EH,65H,74H,20h,20h,20h,20h,00h
table1: db 51h,51h,3AH,38H,37H,30H,34H,35H,34H,32H,32H,20H,20H,20H,20H,20H,00H
end
;;;;;;;;;;;;;如果把table3: db 后面的数据改为WANGJIN@163.COM.它也能正常显示!
;;;;;;;table3: db "w" "a" "n" "g" "1" "j" "i" "n" "@" "1" "6" "3" "." "c" "o" "m",00h
;;;;;;;;;;;;156872359(Computer-lov) 23:21:30
WELCOME,
56873678(★爱在一起★) 23:27:36
是的,显示的是这个.
56873678(★爱在一起★) 23:28:34
电脑说下.这个LCD的工作过程.
56873678(★爱在一起★) 23:28:54
我想写一个显示.WANGJIN@163.COM的字符出来.
156872359(Computer-lov) 23:23:05
再下边是 Lixi什么什么来的,
156872359(Computer-lov) 23:23:21
1602LCD,你往里边送ascii码,它就会显示了。
56873678(★爱在一起★) 23:29:38
他还有什么清屏呀.什么的.
56873678(★爱在一起★) 23:30:01
我来看看这些字对应的二进制数据.
156872359(Computer-lov) 23:25:04
想显示.WANGJIN@163.COM的字符出来,你把刚刚那个改成下边那样,就OK了,嘿嘿,
table3: db "WANGJIN@163.COM"
156872359(Computer-lov) 23:25:27
那些是指令。
56873678(★爱在一起★) 23:31:43
W= 0101 0111
A= 0100 0001
N= 0100 1110
G= 0100 0111
56873678(★爱在一起★) 23:31:50
我倒.那样改也能工作?
56873678(★爱在一起★) 23:32:06
我来试验下.
156872359(Computer-lov) 23:26:03
那样多麻烦。就照我给你的那样改。简单多了。
56873678(★爱在一起★) 23:32:38
我看看.
56873678(★爱在一起★) 23:33:10
我倒.还真的能工作.
156872359(Computer-lov) 23:27:06
或者这样也行,
table3: db 'W','A','N','G','J',…………………………
56873678(★爱在一起★) 23:33:14
为什么这样?
156872359(Computer-lov) 23:27:14
嘿嘿,能显示吧?
56873678(★爱在一起★) 23:33:26
能显示.
56873678(★爱在一起★) 23:34:05
为什么这样也行给我讲讲.电脑!
156872359(Computer-lov) 23:28:12
这个说起来就麻烦了,
我是用C写程序的,汇编我不会,所以解释起来就麻烦了~~~~~~~~~~~~~~~
56873678(★爱在一起★) 23:35:03
你解释下呀.
56873678(★爱在一起★) 23:35:09
我想了解下.为什么这样也行.
156872359(Computer-lov) 23:29:13
"WANGJIN@163.COM"表示一个字符串。
'W'表示一个字符,它和0x57是等价的。
56873678(★爱在一起★) 23:35:41
那我改成W 那样不就能闪了?
56873678(★爱在一起★) 23:35:45
我这样闪还不能动.
56873678(★爱在一起★) 23:35:47
我试试.
156872359(Computer-lov) 23:30:30
"WANGJIN@163.COM"表示一个字符串,就是一串字符,最后来一个0表示结束。
56873678(★爱在一起★) 23:37:12
我来看看.
56873678(★爱在一起★) 23:37:31
我后面用不用加.00H?
156872359(Computer-lov) 23:31:51
如果你用双引号的,就不用加,如果是单引号,就要加。
156872359(Computer-lov) 23:32:04
单引号只能引一个字符,
56873678(★爱在一起★) 23:38:19
我是双引号.
156872359(Computer-lov) 23:32:18
而双引号可以引多个字符,也就是一个字符串。
56873678(★爱在一起★) 23:38:43
哈哈.还真的能显示.
56873678(★爱在一起★) 23:38:49
电脑强.
56873678(★爱在一起★) 23:39:11
你有没有什么把进制转换的小程序.
156872359(Computer-lov) 23:33:45
没有。我通常用计算器。
用VB写一个很容易的,呵呵。
不过有计算器用了,懒得弄。
56873678(★爱在一起★) 23:40:27
0.0011 0000 30
1.0011 0001 31
2.0011 0010
3.0011 0011
4.0011 0100
5.0011 0101
6.0011 0110
7.0011 0111
8.0011 1000
9.0011 1001 39
wang1jin@163.com
66h,51h,5eh,57h,31h,5ah,59h,5eh,
www.mkdz.cn
www.sanse.com.cn
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -