📄 lcd_disp.txt
字号:
; 三线式串行接口子程序(B型)
;***************************************************************************
;* Title : Accessing to LCD-CONTROLLER *
;* Date : 2000.4.27 *
;* Support telephone: 0731-4167806,4167808(CHANGSHA SUNMAN) *
;* Support fax :0731-4167807 Support E-mail:www@sunman.cn *
;* Create by :褚建军(chujianjun),朱长春(zhuchangchun) *
;* DESCRIPTION:This subroutine shows how to write data to LCD-CONTROLLER *
;***************************************************************************
CSPIN BIT P1.2 ;用户自定义CS对应引脚
CLKPIN BIT P1.0 ;用户自定义CLK对应引脚
DIPIN BIT P1.1 ;用户自定义DI对应引脚
LCDBUF EQU 10H ;用户自定义LCD缓冲区首地址
LCDBUFEND EQU LCDBUF+(N-1) ;用户自定义LCD缓冲区末地址(N表示几字节
;显示缓冲区)
CMDOFF EQU 0 ;控制器掉电(控制字)
CMDON EQU 1 ;控制器上电(控制字)
CMDLCDOFF EQU 2 ;控制器液晶关闭(控制字)
CMDLCDON EQU 3 ;控制器液晶显示(控制字)
CMDB3C4 EQU 29H ;控制器液晶模式设置(控制字)
ORG 0000H
JMP START
START: MOV SP,#60H
CALL LCDRESET
MAIN: CALL USERCONT
CALL TRANSRAM ;送LCD缓冲区到LCD控制器
JMP $
USERCONT: ;用户在此根据模块地址表填写LCD缓冲区
MOV R0,#LCDBUF ;例:所有显示全显
USC_PA: MOV @R0,#0FFH
INC R0
CJNE R0,#LCDBUFEND,USC_PA
RET
TRANSRAM:
CALL LCDRESET
MOV B,#0
MOV R1,#LCDBUF
TSR_PA: MOV A,@R1
CALL LCDWD
INC B
INC B
INC R1
CJNE R1,#LCDBUFEND+1,TSR_PA
RET
LCDWC: SETB CSPIN ;送控制字子程序
CLR CSPIN ;A: 命令控制字
SETB C
CALL LCDWBIT
CLR C
CALL LCDWBIT
CALL LCDWBIT
MOV R0,#8
LWC_PA: RLC A
CALL LCDWBIT
DJNZ R0,LWC_PA
RLC A
CALL LCDWBIT
SETB DIPIN
SETB CSPIN
RET
LCDWD: SETB CSPIN ;送数子程序
CLR CSPIN ;B:LCDRAM地址
SETB C ;A:数据字节
CALL LCDWBIT
CLR C
CALL LCDWBIT
SETB C
CALL LCDWBIT
XCH A,B
RLC A
RLC A
MOV R0,#6
LWD_PA: RLC A
CALL LCDWBIT
DJNZ R0,LWD_PA
RLC A
XCH A,B
MOV R0,#8
LWD_PB: RRC A
CALL LCDWBIT
DJNZ R0,LWD_PB
RRC A
SETB DIPIN
SETB CSPIN
RET
LCDWBIT:MOV DIPIN,C
NOP
NOP
SETB CLKPIN
NOP
NOP
CLR CLKPIN
NOP
NOP
SETB CLKPIN
RET
LCDRESET:
MOV A,#CMDOFF ;控制器复位子程序
CALL LCDWC
MOV A,#CMDLCDOFF
CALL LCDWC
MOV A,#CMDON
CALL LCDWC
MOV A,#CMDLCDON
CALL LCDWC
MOV A,#CMDB3C4
CALL LCDWC
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -