📄 p1lcd.asm
字号:
D_PORT EQU P0
RS EQU P1.6
RW EQU P1.7
E EQU P3.5
BF EQU ACC.7
_RD EQU P3.7
_WR EQU P3.6
LKEY EQU P1.3
MKEY EQU P1.4
RKEY EQU P1.5
Y0 EQU P2.5
org 0000h
ljmp 0100h
org 0100h
START:
MOV SP,#30h
lcall init_lcm
mov r7,#10000000b
mov dptr,#string1
lcall put_string
ww:
JNB LKEY,SCREEN1
ljmp ww
SCREEN1:
lcall SCREEN2
string1:
DB "2006/12/31/08:30 湘潭大学研制 集成警务系统 密码门",0
string2:
DB "2003/12/30 08:33 系统密码: 确认 选择 移动",0
put_string:
mov a,r7
orl a,#80h
mov r7,a
lcall write_command
disp_str_loop:
mov a,#0
movc a,@a+dptr
cjne a,#0,cont_str_disp
ret
cont_str_disp:
mov r7,a
lcall write_data
inc dptr
sjmp disp_str_loop
init_lcm:
mov r6,#0
mov r7,#43
lcall delay_ms
mov r7,#00110000b
lcall write1_command
mov r6,#0
mov r7,#1
lcall delay_us
mov r7,#00110000b
lcall write1_command
mov r6,#0
mov r7,#1
lcall delay_us
mov r7,#00001111b
lcall write_command
mov r6,#0
mov r7,#1
lcall delay_us
mov r7,#00000001b
lcall write_command
mov r6,#0
mov r7,#12
lcall delay_ms
mov r7,#00000110b
lcall write_command
ret
wait_free:
push acc
mov P0,#0FFH
clr RS
setb RW
loop_busy:
setb E
mov a,P0
clr E
jb BF,loop_busy
clr RS
clr RW
pop acc
ret
write_command:
lcall wait_free
write1_command:
clr RS
clr RW
setb E
mov D_PORT,r7
clr E
ret
write_data:
lcall wait_free
setb RS
clr RW
setb E
mov D_PORT,r7
clr E
ret
SCREEN2:
MOV R7,#00000001B
LCALL write_command
mov dptr,#string2
lcall put_string
CLR Y0
mov r7,#10010110b
lcall write_command
mov r7,#00110000b
MOV R1,#28H
mov r6,#00110000b
lcall write_data
mov r7,#00011000b
lcall write_command
SC1:
jnb MKEY,SELNUM
JNB RKEY,NEXT
JNB LKEY,ENTER
JMP SC1
SELNUM:
INC r6
mov a,r6
MOV r7,a
LCALL write_data
mov r7,#0001110b
lcall write_command
RET
NEXT:
mov a,r6
MOV @r1,a
INC r1
MOV r7,#00011100B
LCALL write_command
MOV r6,#00110000B
mov r7,#00110000b
lcall write_data
mov r7,#00011100b
lcall write_command
ret
ENTER:
ljmp $
delay_ms:
nop
delay:
mov acc,#125
del:
nop
nop
djnz acc,del
djnz r7,delay
mov a,r6
jz exit
djnz r6,delay
exit:
ret
delay_us:
nop
delayus:
mov acc,#13
delus:
nop
nop
djnz acc,delus
djnz r7,delayus
mov a,r6
jz exitus
djnz r6,delayus
exitus:
ret
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -