;****************************************************************************** ; SED 1520 ;****************************************************************************** .SYMBOLS ;****************************************************************************** A0 REG P3.0 CL REG P3.3 E REG P3.4 ; E = RES CS1 REG P3.1 ; CS1 = E1 CS2 REG P3.5 ; CS2 = E2 CS3 REG P3.3 ; CS3 = E3 R_W REG P3.7 RES REG P3.2 STP REG P2.0 S_S REG P2.1 BCD EQU 01H PAGE_ADDRESS EQU 7FH COL_ADDRESS EQU 7EH SET_DATA EQU 7DH ;****************************************************************************** ORG 0H LJMP START ORG 50H START: ;program reset start here ;INITIAL SETTING INITIAL: SETB RES ;Reset MOV A,#11100010B ;Software RESET CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 CALL WRITE_COMMAND3 MOV A,#10100000B ;Select ADC=0 CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 CALL WRITE_COMMAND3 MOV A,#10100100B ;Satic Drive OFF CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 CALL WRITE_COMMAND3 MOV A,#10101001B ;Select Duty=1/32 CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 CALL WRITE_COMMAND3 MOV A,#11000000B ;Set Start Line 0(C0H)~31(DFH) CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 CALL WRITE_COMMAND3 MOV A,#10111000B ;Set Page Address 0(B8H)~3(BBH) CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 CALL WRITE_COMMAND3 MOV A,#10000000B ;Set Column Address 0(00H)~(4FH) CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 CALL WRITE_COMMAND3 MOV A,#10101111B ;Set Display ON CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 CALL WRITE_COMMAND3 ;****************************************************************************** ; SHOW PAGE1 ;****************************************************************************** SHOW_P1: MOV R0,#0 MOV R1,#0 MOV DPTR,#SHOW_WG SP1LP1: MOV A,#B8H ;Set Page Address FROM 00H ADD A,R1 ;Command B8H~BBH CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 CALL WRITE_COMMAND3 MOV A,#00H ;Set Column Address FROM 00H CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 CALL WRITE_COMMAND3 MOV R0,#0 ;Rest Counter SP1LP2: ;Write Data To Chip I XRL A,A MOVC A,@A+DPTR CALL WRITE_DATA1 INC R0 INC DPTR CJNE R0,#61,SP1LP2 SP1LP3: ;Write Data To Chip II XRL A,A MOVC A,@A+DPTR CALL WRITE_DATA2 INC R0 INC DPTR CJNE R0,#141,SP1LP3 SP1LP4: ;Write Data To Chip III XRL A,A MOVC A,@A+DPTR CALL WRITE_DATA3 INC R0 INC DPTR CJNE R0,#202,SP1LP4 INC R1 CJNE R1,#4,SP1LP1 MOV R4,#20 CALL DELAY1 LJMP START ;****************************************************************************** WRITE_COMMAND1: CLR A0 CLR R_W MOV P1,A SETB CS1 NOP CLR CS1 RET ;****************************************************************************** WRITE_DATA1: SETB A0 CLR R_W MOV P1,A SETB CS1 NOP CLR CS1 RET ;****************************************************************************** WRITE_COMMAND2: CLR A0 CLR R_W MOV P1,A SETB CS2 NOP CLR CS2 RET ;****************************************************************************** WRITE_DATA2: SETB A0 CLR R_W MOV P1,A SETB CS2 NOP CLR CS2 RET ;****************************************************************************** WRITE_COMMAND3: CLR A0 CLR R_W MOV P1,A SETB CS3 NOP CLR CS3 RET ;****************************************************************************** WRITE_DATA3: SETB A0 CLR R_W MOV P1,A SETB CS3 NOP CLR CS3 RET ;****************************************************************************** DELAY1: LOPC1: MOV R5,#3FH LOPB1: MOV R6,#0FFH LOPA1: DJNZ R6,LOPA1 DJNZ R5,LOPB1 DJNZ R4,LOPC1 RET ;****************************************************************************** SHOW_WG: DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,060h,030h,030h,030h,030h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,070h,070h,030h,038h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,040h,040h,07Ch DB 03Ch,038h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,0C0h,0E0h DB 0E0h,0E0h,0E0h,0E0h,0C0h,0C0h,0C0h,000h,000h,000h DB 000h,000h,000h,0E0h,0E0h,000h,000h,000h,004h,0FEh DB 0FEh,000h,000h,080h,0E0h,067h,0E7h,0E6h,0C0h,080h DB 000h,000h,000h,000h,000h,000h,03Eh,0FFh,0F8h,000h DB 0BCh,0FFh,0F0h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,007h,006h,0C2h,0E7h,0E7h,0E2h,080h,000h DB 000h,0FEh,0FFh,000h,000h,000h,0E0h,0F3h,09Bh,0FBh DB 0E0h,000h,000h,0FEh,0FFh,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,007h,067h,0F2h,0D8h,0F8h,0F0h DB 0C0h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 003h,007h,0C6h,0E7h,0E7h,0E2h,0C0h,000h,000h,000h DB 03Eh,0FFh,0F4h,000h,000h,0C0h,060h,060h,060h,0C0h DB 0C0h,080h,000h,000h,000h,000h,002h,007h,006h,0E2h DB 0E0h,080h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,0F8h,0FEh,083h,031h DB 071h,072h,00Fh,00Eh,00Eh,00Eh,00Eh,00Eh,00Eh,00Eh DB 00Eh,00Fh,00Fh,00Fh,00Eh,00Eh,00Eh,00Fh,00Fh,00Eh DB 00Eh,00Eh,00Eh,00Eh,00Eh,00Eh,00Fh,00Fh,00Fh,00Fh DB 00Eh,00Eh,00Eh,00Eh,00Eh,00Fh,00Fh,000h,000h,00Fh DB 007h,000h,000h,000h,000h,000h,078h,0FEh,0C0h,080h DB 080h,086h,08Fh,0CEh,0CEh,0EFh,07Fh,000h,000h,007h DB 00Fh,00Eh,00Eh,00Eh,00Eh,00Fh,00Fh,00Fh,00Fh,001h DB 000h,00Fh,00Fh,000h,000h,000h,000h,000h,000h,07Fh DB 0E1h,0C0h,0C0h,0C0h,0CDh,0FFh,07Eh,07Fh,019h,000h DB 000h,000h,000h,000h,030h,0FEh,0C0h,080h,080h,083h DB 08Fh,0CEh,0CEh,0EFh,07Fh,00Eh,00Eh,00Eh,00Eh,00Fh DB 00Fh,00Eh,00Eh,00Eh,00Eh,00Eh,00Ch,00Eh,00Fh,00Fh DB 00Fh,00Eh,00Eh,00Eh,00Eh,00Eh,00Eh,00Fh,00Fh,00Fh DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,003h,007h,007h,007h,007h DB 007h,007h,003h,003h,001h,001h,003h,003h,001h,003h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,001h,001h,003h,003h,003h DB 003h,001h,001h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,001h DB 005h,006h,004h,006h,006h,004h,000h,000h,000h,000h DB 000h,000h,000h,001h,001h,003h,003h,003h,003h,001h DB 001h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h END