COMM3: CLR C
RLC A
MOV SID,C
CLR CLK
SETB CLK
DJNZ R0,COMM3
CLR CS
RET
WRITE_DAT:
LCALL DELAY1
SETB CS
PUSH ACC
MOV R0,#8
MOV A,#11111010B
DATA1: CLR C
RLC A
MOV SID,C
CLR CLK
SETB CLK
DJNZ R0,DATA1
POP ACC
MOV R5,A
ANL A,#0F0H
MOV R0,#8
DATA2: CLR C
RLC A
MOV SID,C
CLR CLK
SETB CLK
DJNZ R0,DATA2
MOV A,R5
SWAP A
ANL A,#0F0H
MOV R0,#8
DATA3: CLR C
RLC A
MOV SID,C
CLR CLK
SETB CLK
DJNZ R0,DATA3
CLR CS
RET
DELAY1:
MOV R7,#010H
D11:
MOV R6,#010H
DJNZ R6,$
DJNZ R7,D11
RET
DELAY:
MOV R1,#00H
D2:
MOV R2,#00H
DJNZ R2,$
DJNZ R1,D2
RET
DEF_CHAR: ;WRITE TO CGRAM
MOV A,#01000000B ;SET CGRAM ADDRESS
LCALL WRITE_COM
MOV R3,#8
DEF1:
MOV A,#000H
LCALL WRITE_DAT
LCALL WRITE_DAT
MOV A,#0FFH
LCALL WRITE_DAT
LCALL WRITE_DAT
DJNZ R3,DEF1
MOV R3,#8
DEF2:
MOV A,#0AAH
LCALL WRITE_DAT
LCALL WRITE_DAT
MOV A,#0AAH
LCALL WRITE_DAT
LCALL WRITE_DAT
DJNZ R3,DEF2
MOV R3,#8
DEF3:
MOV A,#055H
LCALL WRITE_DAT
LCALL WRITE_DAT
MOV A,#0AAH
LCALL WRITE_DAT
LCALL WRITE_DAT
DJNZ R3,DEF3
MOV R3,#8
DEF4:
MOV A,#0FFH
LCALL WRITE_DAT
LCALL WRITE_DAT
LCALL WRITE_DAT
LCALL WRITE_DAT
DJNZ R3,DEF4
RET
WRITE_ASCII:
MOV R4,#16
DDDD: CLR A
MOV C A,@A+DPTR
LCALL WRITE_DAT
INC DPTR
DJNZ R4,DDDD
RET
WRITE_HZ: ;WRITE 8 CHINESE TO LCD
MOV R4,#8
DD:
CLR A
MOV C A,@A+DPTR
INC DPTR
LCALL WRITE_DAT
CLR A
MOV C A,@A+DPTR
INC DPTR
LCALL WRITE_DAT
DJNZ R4,DD
RET
WRITE_CGRAM: ;CGRAM TESTING
CLR A
MOV C A,@A+DPTR
LCALL WRITE_DAT
INC DPTR
CLR A
MOV C A,@A+DPTR
LCALL WRITE_DAT
RET
TABLE1:
DB 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37
DB 0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F
;“这里是16*8 点阵的字符代码”
CGRAM1: DB 00H,00H ;这里是自造字符地址表
CGRAM2: DB 00H,02H
CGRAM3: DB 00H,04H
CGRAM4: DB 00H,06H
CHINESE:
DB 0B3H,0A7H,0B3H,0A8H,0B3H,0A9H,0B3H,0AAH,0B3H,0ABH,0B3H,0ACH
;“这里是16*16 点阵的汉字代码表”
END
上一页 [1] [2]
本文关键字:显示屏 子程序 51单片机,单片机-工控设备 - 51单片机