?? s18-1.asm
字號:
;********89C51引腳定義********
RS BIT P3.3
R_W BIT P3.4
E BIT P3.5
DB0_DB7 EQU P1
;*******程序開始********
ORG 0000H
LJMP MAIN
;*******主程序開始*******
ORG 0030H
MAIN: MOV SP,#70H
;*******LCM初始化*******
MOV A,#00111000B
;-----------判LCM忙碌-----------
PUSH ACC
BUSY_LOOP: CLR E
SETB R_W
CLR RS
SETB E
MOV A, DB0_DB7
CLR E
JB ACC.7,BUSY_LOOP
POP ACC
LCALL DEL
;----------寫指令到LCM---------
CLR E
CLR R_W
CLR RS
SETB E
MOV DB0_DB7,A
CLR E
;***************************
MOV A,#00001110B
;-----------判LCM忙碌-----------
PUSH ACC
BUSY_LOOP1: CLR E
SETB R_W
CLR RS
SETB E
MOV A, DB0_DB7
CLR E
JB ACC.7,BUSY_LOOP1
POP ACC
LCALL DEL
;----------寫指令到LCM------------
CLR E
CLR R_W
CLR RS
SETB E
MOV DB0_DB7,A
CLR E
;***************************
MOV A,#00000110B
;-----------判LCM忙碌------------
PUSH ACC
BUSY_LOOP2: CLR E
SETB R_W
CLR RS
SETB E
MOV A, DB0_DB7
CLR E
JB ACC.7,BUSY_LOOP2
POP ACC
LCALL DEL
;-----------寫指令到LCM-------------
CLR E
CLR R_W
CLR RS
SETB E
MOV DB0_DB7,A
CLR E
;*******LCM初始化結束*******
;****設定顯示地址并寫入LCM****
MOV A,#10000000B
;-----------判LCM忙碌-----------
PUSH ACC
BUSY_LOOP3: CLR E
SETB R_W
CLR RS
SETB E
MOV A, DB0_DB7
CLR E
JB ACC.7,BUSY_LOOP3
POP ACC
LCALL DEL
;-----------寫指令到LCM------------
CLR E
CLR R_W
CLR RS
SETB E
MOV DB0_DB7,A
CLR E
;****將顯示字符的ASCII碼寫入LCM****
MOV A,#41H
;------------判LCM忙碌-------------
PUSH ACC
BUSY_LOOP4: CLR E
SETB R_W
CLR RS
SETB E
MOV A, DB0_DB7
CLR E
JB ACC.7,BUSY_LOOP4
POP ACC
LCALL DEL
;-----------寫數據到LCM------------
CLR E
CLR R_W
SETB RS
SETB E
MOV DB0_DB7,A
CLR E
;*****************************
SJMP $
;*****主程序結束*****
;****延時子程序開始****
DEL: MOV R6,#5
L1: MOV R7,#248
DJNZ R7,$
DJNZ R6,L1
RET
;*******延時子程序結束********
END
;*******程序結束*******
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -