;***************************************************************************** ; The timing is base on 8051(in 12MHz). ; Min instruction time is 1us. ;***************************************************************************** ; Graphic Controller ; SED1520DAA Competiable (External clock) ; A0: Register Select (0: Instruction, 1: Data) ; R_W: Read/Write Select (0: Write, 1: Read) ; CS1,CS2: Data Latch (1->0 Latch in ) ; RES: IC reset & interface select pin ; 0: 80-series MCU , 1:68-series MCU ;***************************************************************************** .SYMBOLS ;***************************************************************************** A0 REG P3.0 R_W REG P3.1 CS1 REG P3.3 ; CS1 = E1 CS2 REG P3.6 ; CS2 = E2 RES REG P3.5 PAGE_ADDRESS EQU 7FH COL_ADDRESS EQU 7EH SET_DATA EQU 7DH ;***************************************************************************** ORG 00H JMP START ORG 0BH CPL P3.7 ;Generates a clock source RETI START: ;program reset start here MOV TMOD,#00000010B ;set timer0:mode2,autoreload MOV IE,#10000010B ;enable timer0 interrupt MOV TH0,#(256-250) ;interrupt period MOV TL0,#(256-250) ; SETB TR0 ;turn timer0 on ;LCD INITIAL SETB RES ;Set 68-series timing MOV A,#E2H ;Software Reset, E2H CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 MOV A,#A0H ;Select ADC, 1010-000? CALL WRITE_COMMAND1 ;Set Left to right CALL WRITE_COMMAND2 MOV A,#A4H ;Driving method, 1010-010? CALL WRITE_COMMAND1 ;Normal drive CALL WRITE_COMMAND2 MOV A,#A9H ;Select Duty, 1010-100? CALL WRITE_COMMAND1 ;1/32 Duty CALL WRITE_COMMAND2 MOV A,#C0H ;Set Start Line,110?-???? CALL WRITE_COMMAND1 ;Display from address 0 CALL WRITE_COMMAND2 ;Range: C0H~DFH MOV A,#B8H ;Set Page Address,1011-10?? CALL WRITE_COMMAND1 ;Display from page 0 CALL WRITE_COMMAND2 ;Range: B8H~BBH MOV A,#00H ;Set Column Address,0???-???? CALL WRITE_COMMAND1 ;Display from Column 0 CALL WRITE_COMMAND2 ;Range: 00H~4FH MOV A,#AFH ;Set Display ON, AFH CALL WRITE_COMMAND1 ;Turn ON display CALL WRITE_COMMAND2 ;***************************************************************************** ; CLEAR SCREEN ;***************************************************************************** CLEAR_S: MOV R0,#0 MOV R1,#0 CSLOOP1: MOV A,R1 ;Set Page Address FROM 00H ORL A,#B8H ;Command B8H~BBH CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 MOV A,#00H ;Set Column Address FROM 00H CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 MOV R0,#0 ;Rest Counter CSLOOP2: ;Write Data To Chip 1 MOV A,#00H CALL WRITE_DATA1 INC R0 CJNE R0,#61,CSLOOP2 CSLOOP3: ;Write Data To Chip 2 MOV A,#00H CALL WRITE_DATA2 INC R0 CJNE R0,#122,CSLOOP3 INC R1 CJNE R1,#4,CSLOOP1 ;***************************************************************************** ; SHOW NEWTEC ;***************************************************************************** SHOW_N: MOV R0,#0 MOV R1,#0 MOV DPTR,#NEWTEC SNLOOP1: MOV A,#B8H ;Set Page Address FROM 00H ADD A,R1 ;Command B8H~BBH CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 MOV A,#00H ;Set Column Address FROM 00H CALL WRITE_COMMAND1 CALL WRITE_COMMAND2 MOV R0,#0 ;Rest Counter SNLOOP2: ;Write Data To Chip 1 XRL A,A MOVC A,@A+DPTR XRL A,#FFH ;Reverse Display data CALL WRITE_DATA1 INC R0 INC DPTR CJNE R0,#61,SNLOOP2 SNLOOP3: ;Write Data To Chip 2 XRL A,A MOVC A,@A+DPTR XRL A,#FFH ;Reverse Display data CALL WRITE_DATA2 INC R0 INC DPTR CJNE R0,#122,SNLOOP3 INC R1 CJNE R1,#4,SNLOOP1 JMP $ ;Main program stop ;***************************************************************************** WRITE_COMMAND1: ;Chip 1 Write Command CLR A0 CLR R_W MOV P1,A CLR CS1 NOP SETB CS1 RET ;***************************************************************************** WRITE_DATA1: ;Chip I Write Data SETB A0 CLR R_W MOV P1,A CLR CS1 NOP SETB CS1 RET ;***************************************************************************** WRITE_COMMAND2: ;Chip 2 Write Command CLR A0 CLR R_W MOV P1,A CLR CS2 NOP SETB CS2 RET ;***************************************************************************** WRITE_DATA2: ;Chip 2 Write Data SETB A0 CLR R_W MOV P1,A CLR CS2 NOP SETB CS2 RET ;***************************************************************************** NEWTEC: DB 000h,000h,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh DB 0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh DB 0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh DB 0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh DB 0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh DB 0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh DB 0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh DB 0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,0FCh,000h,000h DB 000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,003h,003h,003h,007h,01Fh DB 03Fh,0FFh,003h,003h,003h,0FFh,0FFh,0FFh,07Fh,03Fh,01Fh,09Fh,09Fh,09Fh,01Fh,03Fh DB 07Fh,0FFh,0DFh,01Fh,01Fh,03Fh,0FFh,0FFh,01Fh,01Fh,01Fh,0FFh,0FFh,03Fh,01Fh,01Fh DB 0DFh,09Fh,007h,007h,003h,09Fh,09Fh,0FFh,0FFh,07Fh,03Fh,01Fh,09Fh,09Fh,09Fh,01Fh DB 03Fh,07Fh,0FFh,0FFh,07Fh,03Fh,01Fh,01Fh,09Fh,09Fh,01Fh,03Fh,07Fh,0FFh,0FFh,0FFh DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h DB 000h,000h,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0C0h,0C0h,0C0h,0FFh,0FCh DB 0F8h,0E0h,0C0h,0C0h,0C0h,0FFh,0FFh,0FFh,0F0h,0E0h,0C0h,0C4h,0CCh,0CCh,0C4h,0E4h DB 0F4h,0FFh,0FFh,0FEh,0F0h,0C0h,0C3h,0E1h,0F8h,0FEh,0F8h,0E1h,0C3h,0C0h,0F0h,0FEh DB 0FFh,0FFh,0E0h,0C0h,0C0h,0CFh,0CFh,0FFh,0FFh,0F0h,0E0h,0C0h,0C4h,0CCh,0CCh,0C4h DB 0E4h,0F4h,0FFh,0FFh,0F0h,0E0h,0C0h,0C7h,0CFh,0CFh,0C7h,0E7h,0F7h,0FFh,0FFh,0FFh DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,000h,000h DB 000h,000h,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh DB 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh DB 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh DB 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh DB 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh DB 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh DB 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh DB 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,000h,000h END