⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ssd1303.asm

📁 所罗门OLED IC SSD1303的驱动源代码.
💻 ASM
字号:
 ;********************************************************
 ;********************************************************
 ;***    IC:           SSD1303T                       ***
 ;***    DESCRIPTION:  OLED TEST PROGRAM              ***
 ;***    DOT SIZE:     96*64                          ***
 ;***    WRITTEN BY:   BlestPan                       ***
 ;***    DATE:         20040605                       ***
 ;***    STRUCTURE: A)INTERFACE DEFINITION           ***
 ;***                B)MAIN PROGRAM                   ***
 ;***                C)INITIALIZATION MAIN PROGRAM    ***
 ;***                D)DISPLAY MAIN PROGRAM           ***
 ;***                E) WRITE DATA/COMMAND SUBPROGRAM  ***
 ;***                F)DELAY SUB PROGRAM              ***
 ;***                G)DISPLAY DATA                   ***
 ;********************************************************
 ;********************************************************


 ; *******************************
 ;  A)INTERFACE DEFINITION
 ; *******************************
      CS2    EQU    P3.4
      cs1    equ    p3.0
      RS     EQU    P3.2
      WRB    EQU    P3.3
      RDB    EQU    P3.6
      RESET  EQU    P3.1
      PIXEL  EQU    32H
      PAGE1  EQU    33H

 ; *******************************
 ;  B)MAIN PROGEAM
 ; *******************************
         ORG    00H
         JMP    MAIN
MAIN:    LCALL   DELAY2S
         lcall   check
         LCALL  INITIALM1
         LCALL  DELAY2S
MAIN1:
         MOV    DPTR,#PICTURE2
         LCALL  DISPLAYS
         LCALL  DELAY20mS
         LCALL  DELAY20mS
         LCALL  DELAY20mS
         LCALL  DELAY20mS
         JB     P3.5,$
         MOV    PIXEL,#55H
         LCALL  DISPLAYS_MULT
         LCALL  DELAY20mS
         LCALL  DELAY20mS
         LCALL  DELAY20mS
         LCALL  DELAY20mS
         JB     P3.5,$
         JMP    MAIN1


INITIALM:
         CLR  RESET
         LCALL DELAY2S
         setb reset
         LCALL DELAY20mS
         MOV A,#0E2H      ;software reset
         LCALL WRITE_SS
         MOV A,#0EEH
         LCALL WRITE_SS
         MOV A,#0A8H      ;MUX
         LCALL WRITE_SS
         MOV A,#03FH      ;second byte
         LCALL WRITE_SS
         MOV A,#0D0H      ;ICON mode off
         LCALL WRITE_SS
         MOV A,#40H       ;display start line
         LCALL WRITE_SS
         MOV A,#0A1H      ;segment re-map off
         LCALL WRITE_SS
         MOV A,#0C8H      ;COM  re-map
         LCALL WRITE_SS
         MOV A,#0A6H      ;normal display
         LCALL WRITE_SS
         MOV A,#0A4H      ;entire display mode off
         LCALL WRITE_SS
         MOV A,#81H       ;contrast seting
         LCALL WRITE_SS
         MOV A,#05AH      ;for minimun 40 cd/m2 setting
         LCALL WRITE_SS
         MOV A,#0D5H      ;Frame rate setting
         LCALL WRITE_SS
         MOV A,#10H      ;second byte
         LCALL WRITE_SS
         MOV A,#0AFH     ;Display on
         LCALL WRITE_SS
         RET
INITIALM1:
         MOV A,#0E8H     ;set area colour mode on
         LCALL WRITE_SS
         MOV A,#030H
         LCALL WRITE_SS  ;second comane
         MOV A,#091H
         LCALL WRITE_SS
         MOV A,#60
         LCALL WRITE_SS
         MOV A,#16
         LCALL WRITE_SS
         MOV A,#032
         LCALL WRITE_SS
         MOV A,#48
         LCALL WRITE_SS
         MOV A,#92h
         LCALL WRITE_SS
         MOV A,#00h
         LCALL WRITE_SS









 check:     setb   cs2
            clr    cs2
            setb   rs
            clr    rs
            setb   wrb
            clr    wrb
            setb   rdb
            clr    rdb
            setb   reset
            clr    reset
            setb   p1.0
            clr    p1.0
            setb    p1.1
            clr    p1.1
            setb   p1.2
            clr    p1.2
            setb   p1.3
            clr    p1.3
            setb   p1.4
            clr    p1.4
            setb   p1.5
            clr    p1.5
            setb   p1.6
            clr    p1.6
            setb   p1.7
            clr    p1.7
            ret
DISPLAYS:
        MOV     R4,#8

        mov  PAGE1 ,#0B0H
LOOP:   MOV     A ,PAGE1
        LCALL WRITE_SS

        MOV A,#012H         ;high col address
        LCALL WRITE_SS
        MOV A,#04H           ;Low col address
        LCALL WRITE_SS
        MOV     R2,#96
LOOP1:  MOV	A,#00H
        MOVC    A,@A+DPTR
        LCALL   WRITE_sD
        INC     DPTR
        DJNZ    R2,LOOP1
        INC     PAGE1
        DJNZ    R4,LOOP
        RET
DISPLAYS_MULT:
        MOV     R4,#8
        MOV  PAGE1,#0B0H
LOOPM:  MOV  A ,PAGE1
        MOV  R2,#96
        LCALL WRITE_SS
        MOV A,#04H           ;Low col address
        LCALL WRITE_SS
        MOV A,#012H         ;high col address
        LCALL WRITE_SS


LOOPM1:  MOV	A,#00H
        MOV     A,PIXEL
        LCALL   WRITE_SD
        DJNZ    R2,LOOPM1
        INC   PAGE1
        DJNZ    R4,LOOPM
        RET


;*****************************************
;      WRITE DATA/COMMAND SUBPROGRAM
;*****************************************

WRITE_SD:
        setb    cs1
        CLR     CS2
        SETB    RS
        SETB    RDB
        SETB    WRB
        MOV	P1,A  ;8080 SEQUENCE,WR=0,RD=1,WRITE  DATA
        CLR     WRB
	NOP
        SETB    WRB
        SETB    CS2
	RET
;*****************WRITE STATUS******************
WRITE_SS:
        setb    cs1
        CLR     CS2
        CLR	RS
        SETB    RDB
        SETB    WRB
        MOV	P1,A
        CLR     WRB
        NOP
        SETB    WRB
        SETB    CS2
	RET


 ;********************************************
 ;       F)DELAY   SUBPROGRAM
 ;********************************************

 DELAY20mS:
	MOV	R6,#0FFH
	MOV	R7,#00H
DEL2P1:
	DJNZ	R7, DEL2P1
	DJNZ	R6,DEL2P1
	RET
;******************DELAY 60.4ms*****************
DELAY60 :
	MOV	R6,#030;76H
	MOV	R7,#00H
DLP1:
        nop
        nop
        nop
        DJNZ	R7,dlp1 ;$
	DJNZ	R6,DLP1
	RET
;*****************DELAY	2S**********************
DELAY2S:
	MOV	R5,#1
        MOV     R7,#200
        MOV     R6,#200
D3LP1:
 	DJNZ	R7,$
	DJNZ	R6,$-2
	DJNZ	R5,D3LP1
	RET
WAIT:   NOP
DELAY:  MOV       40H,#032H        ;10.05ms
DELAY1: MOV       41H,#030H
DELAY2: DJNZ      41H,DELAY2      ;192us
        DJNZ      40H,DELAY1
        RET
PICTURE2:
 ;--  调入了一幅图像:G:\MY-TEXTPICTUE\SSD1303-1.bmp  --
;--  宽度x高度=96x64  --
DB  0FFH,001H,001H,001H,001H,001H,0C1H,001H,001H,001H,001H,001H,001H,041H,0C1H,041H,
DB  041H,041H,041H,081H,001H,001H,001H,001H,001H,081H,041H,041H,041H,081H,0C1H,001H,
DB  001H,041H,0C1H,041H,041H,041H,081H,001H,001H,001H,001H,041H,0C1H,041H,041H,041H,
DB  041H,0C1H,001H,001H,041H,0C1H,041H,041H,041H,041H,041H,0C1H,001H,001H,001H,001H,
DB  001H,081H,041H,041H,041H,0C1H,001H,001H,041H,0C1H,041H,001H,001H,001H,041H,0C1H,
DB  041H,001H,001H,001H,001H,001H,001H,001H,001H,001H,001H,001H,001H,001H,001H,0FFH,
DB  0FFH,000H,000H,000H,0F0H,04FH,040H,04FH,0F0H,000H,000H,000H,000H,000H,0FFH,008H,
DB  008H,008H,00CH,013H,0E0H,000H,000H,0FEH,001H,000H,000H,000H,000H,000H,081H,000H,
DB  000H,000H,0FFH,000H,000H,000H,000H,083H,07CH,000H,000H,000H,0FFH,008H,008H,008H,
DB  03EH,000H,001H,000H,000H,0FFH,008H,008H,008H,008H,03EH,000H,001H,000H,000H,0FEH,
DB  001H,000H,000H,000H,020H,0E1H,020H,000H,000H,0FFH,010H,010H,010H,010H,010H,0FFH,
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0FFH,
DB  0FFH,000H,004H,007H,004H,000H,000H,000H,004H,007H,004H,000H,000H,004H,007H,004H,
DB  004H,004H,004H,002H,001H,000H,000H,000H,003H,004H,004H,004H,004H,002H,001H,000H,
DB  000H,004H,007H,004H,004H,004H,002H,001H,000H,000H,000H,004H,007H,004H,004H,004H,
DB  004H,006H,001H,000H,004H,007H,004H,000H,000H,000H,000H,000H,000H,000H,000H,000H,
DB  003H,004H,004H,004H,004H,003H,000H,000H,004H,007H,004H,000H,000H,000H,004H,007H,
DB  004H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0FFH,
DB  0FFH,000H,000H,000H,002H,002H,0FEH,002H,002H,000H,000H,000H,000H,000H,000H,000H,
DB  002H,002H,0FEH,002H,002H,000H,002H,0FEH,082H,040H,0E0H,01AH,006H,002H,002H,000H,
DB  000H,002H,0FEH,002H,000H,000H,000H,000H,000H,000H,002H,0FEH,01EH,0E0H,000H,0E0H,
DB  01EH,0FEH,002H,000H,002H,0FEH,006H,038H,0C0H,000H,002H,0FEH,002H,000H,000H,0F0H,
DB  00CH,002H,002H,002H,002H,00CH,0F0H,000H,000H,002H,0FEH,082H,082H,082H,082H,044H,
DB  038H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0FFH,
DB  0FFH,000H,000H,000H,020H,020H,03FH,020H,020H,000H,000H,000H,000H,0C0H,080H,080H,
DB  080H,040H,03FH,000H,000H,000H,020H,03FH,020H,000H,000H,003H,02CH,030H,020H,000H,
DB  000H,020H,03FH,020H,020H,020H,020H,020H,018H,000H,020H,03FH,020H,003H,03EH,003H,
DB  020H,03FH,020H,000H,020H,03FH,020H,000H,000H,003H,00CH,03FH,000H,000H,000H,007H,
DB  018H,020H,020H,020H,020H,018H,007H,000H,000H,020H,03FH,020H,000H,000H,000H,000H,
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0FFH,
DB  0FFH,000H,000H,080H,060H,010H,010H,010H,010H,060H,080H,000H,000H,000H,020H,020H,
DB  0F0H,000H,000H,000H,000H,000H,000H,0E0H,010H,010H,010H,010H,010H,0E0H,000H,000H,
DB  000H,0E0H,010H,010H,010H,010H,0E0H,000H,000H,000H,000H,000H,000H,080H,040H,020H,
DB  0F0H,000H,000H,000H,000H,0F0H,010H,010H,010H,010H,010H,010H,000H,000H,000H,000H,
DB  0C0H,020H,010H,010H,010H,010H,060H,000H,000H,070H,010H,010H,010H,090H,070H,010H,
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0FFH,
DB  0FFH,000H,000H,03FH,0C0H,020H,020H,060H,080H,0C0H,03FH,000H,000H,000H,000H,000H,
DB  0FFH,000H,000H,000H,000H,000H,000H,080H,040H,020H,010H,008H,006H,0C1H,000H,000H,
DB  000H,0E0H,000H,002H,002H,003H,084H,078H,000H,000H,000H,018H,016H,011H,010H,010H,
DB  0FFH,010H,010H,000H,000H,0E7H,004H,002H,002H,002H,084H,078H,000H,000H,000H,07FH,
DB  084H,002H,002H,002H,002H,084H,078H,000H,000H,000H,000H,0F8H,006H,001H,000H,000H,
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0FFH,
DB  0FFH,080H,080H,080H,080H,081H,081H,083H,085H,084H,082H,080H,080H,080H,081H,081H,
DB  081H,081H,081H,080H,080H,080H,080H,081H,081H,081H,081H,081H,081H,081H,080H,080H,
DB  080H,080H,081H,081H,081H,081H,080H,080H,080H,080H,080H,080H,080H,080H,081H,081H,
DB  081H,081H,081H,080H,080H,080H,081H,081H,081H,081H,080H,080H,080H,080H,080H,080H,
DB  080H,081H,081H,081H,081H,080H,080H,080H,080H,080H,080H,081H,080H,080H,080H,080H,
DB  080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,080H,0FFH,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -