??
字號:
SCLK EQU P0.3
RST EQU P0.2
SDAT EQU P1.7
DC EQU P0.0
CS EQU P0.1
TMP1 EQU 30H ;TEMP RAM(USED BY SEND)
PAGETMP EQU 31H
PAGEIN EQU 32H
WR_NUM EQU 33H
TMP_DPL EQU 34H
TMP_DPH EQU 35H
CHANGEXY EQU 36H
ORG 0H
LJMP BEGIN
ORG 01BH
SETB F0
RETI
BEGIN: CALL OLEDINIT
CALL OLEDCLS
CALL LOGO
MOV DPTR,#NUM0
MOV CHANGEXY,#030
MOV PAGEIN,#7
CALL C_XY
MOV WR_NUM,#005H
CALL WRDB
MOV DPTR,#NUM0
MOV CHANGEXY,#036
MOV PAGEIN,#7
CALL C_XY
MOV WR_NUM,#005H
CALL WRDB
MOV CHANGEXY,#0 ;輸入X坐標(0-127)
MOV PAGEIN,#5 ;輸入y坐標,以8為單位
CALL DISPFMRES
MOV CHANGEXY,#0 ;輸入X坐標(0-127)
MOV PAGEIN,#2 ;輸入y坐標,以8為單位
CALL C_XY
MOV DPTR,#FMLINE
MOV WR_NUM,#080H
CALL WRDB
TIME:
MOV DPTR,#NUM1
MOV TMP_DPL,DPL
MOV TMP_DPH,DPH
MOV R3,DPL
MOV R4,DPH
MOV R1,#00AH
MOV TMOD,#01010001B
MOV R5,#00AH
REPEAT:
MOV TH0,#0FCH
MOV TL0,#018H
MOV TH1,#0FCH
MOV TL1,#018H
CLR P3.5
MOV IE,#88H
SETB TR1
SETB TR0
LOOP:
JNB TF0,$
CLR TF0
JBC F0,HHH
SETB P3.5
MOV TH0,#0FCH
MOV TL0,#018H
CLR P3.5
SJMP LOOP
HHH:
MOV CHANGEXY,#036
MOV PAGEIN,#7
CALL C_XY
MOV DPL,R3
MOV DPH,R4
MOV WR_NUM,#005H
CALL WRDB
MOV R3,DPL
MOV R4,DPH
DJNZ R1,REPEAT
CALL AD1
MOV DPTR,#NUM1
MOV R1,#00AH
MOV R3,DPL
MOV R4,DPH
LJMP REPEAT
AD1:
MOV CHANGEXY,#030
MOV PAGEIN,#7
CALL C_XY
MOV DPL,TMP_DPL
MOV DPH,TMP_DPH
MOV WR_NUM,#005H
CALL WRDB
MOV TMP_DPL,DPL
MOV TMP_DPH,DPH
DJNZ R5,AD10
MOV DPTR,#NUM1
MOV R5,#00AH
MOV TMP_DPL,DPL
MOV TMP_DPH,DPH
AD10:
RET
DISPFMRES:
CALL C_XY
MOV DPTR,#FMRES ;FMRES ADDRIESS
MOV WR_NUM,#018H
CALL WRDB
DEC PAGEIN
CALL C_XY
MOV WR_NUM,#018H
CALL WRDB
RET
C_XY:
MOV A,PAGEIN
ADD A,#0B0H
CALL COMMAND
MOV A,CHANGEXY
ANL A,#0FH
CALL COMMAND
MOV A,CHANGEXY
SWAP A
ANL A,#0FH
ADD A,#010H
CALL COMMAND
RET
WELCOME:
MOV A,#0B7H
CALL COMMAND
MOV A,#000H /*SET LOWER COLUMN ADDRESS*/
CALL COMMAND
MOV A,#011H /*SET HIGHER COLUMN ADDRESS*/
CALL COMMAND
MOV DPTR,#welcomestring
MOV WR_NUM,#042H
CALL WRDB
RET
WRDB:
MOV R0,WR_NUM
LOOP_WRDB:
CLR A
MOVC A,@A+DPTR
CALL SENDDATA
INC DPTR
DJNZ R0,LOOP_WRDB
RET
OLEDINIT:
CALL RESET
MOV A,#0A4H /*SET ENTIRE DISPLAY ON*/
LCALL COMMAND
MOV A,#40H /*set display start line*/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A0H /*re-map(A0/A1)*/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A6H /*set normal display*/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0D3H /*set display offset*/
LCALL COMMAND
MOV A,#0H /*no offset*/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0D9H /*set vp*/
LCALL COMMAND
MOV A,#22H
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0DAH /*set pin hardware configuration*/
LCALL COMMAND
MOV A,#12H
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#81H /*set contrast control*/
LCALL COMMAND
MOV A,#0FFH
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0A8H /*set multiplex ratio*/
LCALL COMMAND
MOV A,#03FH /**/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0ADH /*set DC-DC*/
LCALL COMMAND
MOV A,#8AH /*8B=ON 8A=OF*/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0AFH /*set display ON/OF AF=ON AE=OF*/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0D5H /*set clock driver*/
LCALL COMMAND
MOV A,#0A0H /*set 100hz*/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0D8H /*set area color on or off*/
LCALL COMMAND
MOV A,#0H /*mono mode*/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0DBH /*set vcomh*/
LCALL COMMAND
MOV A,#25H
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#0C0H /*set com output(C0/C8)*/
LCALL COMMAND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RET
RESET:
SETB CS
SETB SCLK
SETB SDAT
SETB RST
NOP
NOP
NOP
NOP
NOP
CLR RST
NOP
NOP
NOP
NOP
NOP
SETB RST
RET
COMMAND:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -