📄 6264_.asm
字号:
D_PORT EQU P1
RS EQU P3.0
RW EQU P3.1
E EQU P3.2
BF EQU ACC.7
;PROG SEGMENT CODE
;STACK SEGMENT IDATA
;RSEG STACK
;DS 10H ; 16 Bytes Stack
;CSEG AT 0
;USING 0 ; Register-Bank 0
;JMP START
;RSEG PROG
;MOV SP,#STACK
START:LCALL INIT_LCM ;???????
MOV R7,#10000000B
MOV DPTR,#STRING1
LCALL PUT_STRING
LJMP $
STRING1:
DB "北京",0
;*****************************************************************
PUT_STRING:
MOV A,R7
ORL A,#80H
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
;***************************************
;????A
;MOV R7,#10000000B;??????
;LCALL WRITE_COMMAND
;MOV R6,#0
;MOV R7,#40
;LCALL DELAY_US
;MOV R7,#01000001B;????A
;LCALL WRITE_DATA
;MOV R6,#0
;MOV R7,#40
;LCALL DELAY_US
;***************************************
;MOV R7,#11000000B;??????
;LCALL WRITE_COMMAND
;MOV R6,#0
;MOV R7,#1
;LCALL DELAY_US
;MOV R7,#01000001B;????A
;LCALL WRITE_DATA
;MOV R6,#0
;MOV R7,#1
;LCALL DELAY_US
;;**************************************************
;;?????
;MOV R7,#80H
;LCALL WRITE_COMMAND
;MOV R6,#0
;MOV R7,#10
;LCALL DELAY_US
;MOV DPTR,#TAB
;MOV R2,#12
;MOV R3,#01H
;WRIN: MOV A,R3
;MOVC A,@A+DPTR
;MOV R7,A
;LCALL WRITE_DATA
;MOV R6,#0
;MOV R7,#10
;LCALL DELAY_US
;INC R3
;DJNZ R2,WRIN
;SJMP $
;TAB:DB 43H,75H,72H,73H,6FH,72H,20H
;DB 57H,72H,69H,74H,65H
;;***************************************************
;;??????
;CG_WRITE:
;MOV R7,#40H
;LCALL WRITE_COMMAND
;MOV R6,#0
;MOV R7,#40
;LCALL DELAY_MS
;MOV R2,#64
;MOV R3,#01H
;MOV DPTR,#CGTAB
;CG1: MOV A,R3
;MOVC A,@A+DPTR
;MOV R7,A
;LCALL WRITE_DATA
;MOV R6,#0
;MOV R7,#40
;LCALL DELAY_MS
;INC R3
;DJNZ R2,CG1
;RET
;CGTAB:DB 08H,0FH,12H,0FH,0AH,1FH,02H,02H ;"?"??=00H
;DB 0FH,09H,0FH,09H,0FH,09H,11H,00H ;"?"??=01H
;DB 1FH,11H,11H,1FH,11H,11H,1FH,00H ;"?"??=02H
;DB 11H,0AH,04H,1FH,04H,1FH,04H,00H ;"$"??=03H
;DB 0EH,00H,1FH,0AH,0AH,0AH,13H,00H ;"?"??=04H
;DB 18H,18H,07H,08H,08H,08H,07H,00H ;"C"??=05H
;DB 04H,0AH,15H,04H,04H,04H,04H,00H ;"^"??=06H
;DB 17H,15H,15H,15H,15H,15H,17H,00H ;"10"??=07H
;;***************************************************
;;?????????
;LCALL CG_WRITE
;MOV R7,#80H
;LCALL WRITE_COMMAND
;MOV R6,#0
;MOV R7,#40
;LCALL DELAY_MS
;MOV DPTR,#TABDY
;MOV R2,#18
;MOV R3,#00H
;LOOP1:MOV A,R3
;MOVC A,@A+DPTR
;MOV R7,A
;LCALL WRITE_DATA
;MOV R6,#0
;MOV R7,#40
;LCALL DELAY_MS
;INC R3
;DJNZ R2,LOOP1
;JMP $
;MOV R7,#0C0H
;LCALL WRITE_COMMAND
;MOV R6,#0
;MOV R7,#40
;LCALL DELAY_MS
;MOV R2,#18
;LOOP2:MOV A,R3
;MOVC A,@A+DPTR
;MOV R7,A
;LCALL WRITE_DATA
;MOV R6,#0
;MOV R7,#1
;LCALL DELAY_MS
;INC R3
;DJNZ R2,LOOP2
;SJMP $
;TABDY:DB 08H,0FH,12H,0FH,0AH,1FH,02H,02H ;"?"??=00H
;DB 0FH,09H,0FH,09H,0FH,09H,11H,00H ;"?"??=01H
;DB 1FH,11H,11H,1FH,11H,11H,1FH,00H ;"?"??=02H
;DB 11H,0AH,04H,1FH,04H,1FH,04H,00H ;"$"??=03H
;;***************************************************
;;??????
;;***************************************************
INIT_LCM:
MOV R6,#0
MOV R7,#40
LCALL DELAY_MS
MOV R7,#00110000B;;???? 8???,????,???5*7?? ;
LCALL WRITE_COMMAND
MOV R6,#0
MOV R7,#1
LCALL DELAY_US
;************************************
MOV R7,#00001100B;;?????? ???,?????,???
LCALL WRITE_COMMAND
MOV R6,#0
MOV R7,#1
LCALL DELAY_US
;**********************************
MOV R7,#00000001B;;??
LCALL WRITE_COMMAND
MOV R6,#0
MOV R7,#40
LCALL DELAY_MS
;*********************************
MOV R7,#00000110B ;;??????
LCALL WRITE_COMMAND
MOV R6,#0
MOV R7,#1
LCALL DELAY_US
RET
;;***************************************************
;;?????
;;***************************************************
;;ms???
DELAY_MS:
NOP
DELAY:MOV ACC,#250
DEL:NOP
NOP
DJNZ ACC,DEL
DJNZ R7,DELAY
MOV A,R6
JZ EXIT
DJNZ R6,DELAY
EXIT:
RET
;;**************************************************
;;us???
DELAY_US:
NOP
DELAYUS:
MOV ACC,#25
DELUS:
NOP
NOP
DJNZ ACC,DELUS
DJNZ R7,DELAYUS
MOV A,R6
JZ EXITUS
DJNZ R6,DELAYUS
EXITUS:
RET
;;***************************************************
;;??BF???
;;***************************************************
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
END
;;*****************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -