📄 test_tftlcd.asm
字号:
ORG 0000H
LJMP START
LCD_BUSY BIT P3.3 ;"1" 液晶显示器忙
LCD_STB BIT P1.4 ;选择液晶标记位,下降沿有效
ORG 0200H
START:
MOV R5,#200 ;Delay (4000MS) for power to be stable.
CALL DELAY_20M
SETB LCD_BUSY
SETB LCD_STB
MOV A,#1BH
CALL LCD_SEND_BYTE
MOV A,#42H
CALL LCD_SEND_BYTE
MOV A,#44H
CALL LCD_SEND_BYTE
SJMP $
LCD_SEND_BYTE:
JB LCD_BUSY,$ ;液晶忙等待
SETB P1.5
CLR P1.6
SETB P1.7
NOP
NOP
MOVX @DPTR,A ;MODIFIED
NOP
NOP
ANL P4,#11111100B ;电路上是使用P4.1作为地址线A17,P4.0作为A16
CLR P1.5
CLR P1.6
CLR P1.7
CALL DELAY10u
CLR LCD_STB
CALL DELAY20u
SETB LCD_STB
CALL DELAY20u
RET
;***************************************************************************
;ROUTINE: DELAY10u
;PURPOSE: 10u延时程序
;REGISTERS USED: NONE
; MODIFIED
;***************************************************************************
DELAY10u:
PUSH B
MOV B,#9
DJNZ B,$
POP B
RET
;***************************************************************************
;ROUTINE: DELAY20u
;PURPOSE: 20u延时程序
;REGISTERS USED: NONE
; MODIFIED
;***************************************************************************
DELAY20u:
PUSH B
MOV B,#19
DJNZ B,$
POP B
RET
;***************************************************************************
;ROUTINE: DELAY_20M
;PURPOSE: Delay R5 * 20 miliseconds.
;REMARKS: 77E58 指令执行速度比标准8051快
;INPUT: R5 = Multiplier of 20 miliseconds.
;REGISTERS USED: R5, R6, R7.
;***************************************************************************
DELAY_20M: ;Start of DELAY_20M function.
MOV R6,#40
DELAY_20M1:
MOV R7,#249
DJNZ R7,$
MOV R7,#249
DJNZ R7,$
DJNZ R6,DELAY_20M1
DJNZ R5,DELAY_20M
RET ;End of DELAY_20M function.
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -