;********************************** ; WG14432A ;********************************** RS REG P3.0 E REG P3.4 R_W REG P3.7 CLK REG P3.1 T1 REG P3.6 T2 REG P3.2 STP REG P2.0 S_S REG P2.1 BCD EQU 01H CHAR_ADD EQU 7FH DPTRH EQU 01H DPTRL EQU 00H DT1 EQU 02H DT2 EQU 03H DT3 EQU 04H HI EQU 05H LO EQU 06H NUM EQU 07H ;********************************** ORG 0H JMP START START: INITIAL: CLR E MOV A,#00111000B CALL WRITE_COMMAND MOV A,#00001100B ;Display ON/OFF = 00001DCB CALL WRITE_COMMAND ;Display ON,Cursor&Blink OFF MOV A,#00000110B ;Entry Mode Set = 000001IS CALL WRITE_COMMAND ;Increment & Shift OFF MOV A,#00000010B ;Return Home CALL WRITE_COMMAND MOV A,#00000001B ;Clear Display CALL WRITE_COMMAND ;Write 20H to DDRAM ;****************************************************** SHOW: MOV R6,#00H CALL F_C MOV R6,#0FFH CALL F_C CALL DELAY CALL STP_SC MOV R6,#0AAH CALL F_C CALL DELAY CALL STP_SC ; ; MOV R6,#55H ; CALL F_C ; CALL DELAY ; CALL STP_SC ; CALL ROW CALL DELAY CALL STP_SC ; ;CALL SKIP ;CALL DELAY ;CALL STP_SC ; ;MOV R6,#00H ;CALL F_C ;CALL A_SQUARE ;CALL DELAY ;CALL STP_SC ; MOV R6,#00H CALL F_C CALL GSHOW CALL DELAY CALL STP_SC MOV R6,#00H CALL F_C CALL CSHOW CALL DELAY CALL STP_SC CALL NSHOW CALL DELAY CALL STP_SC CALL MSHOW CALL DELAY CALL STP_SC MOV A,#01H CALL WRITE_COMMAND JMP SHOW JT: MOV R0,#6 MOV DPH,#A1H MOV DPL,#A0H A1: CALL ACSHOW CALL DELAY CALL STP_SC DJNZ R0,A1 MOV R0,#5 MOV DPH,#A2H MOV DPL,#B0H A2: CALL ACSHOW CALL DELAY CALL STP_SC DJNZ R0,A2 MOV R0,#6 MOV DPH,#A3H MOV DPL,#A0H A3: CALL ACSHOW CALL DELAY CALL STP_SC DJNZ R0,A3 MOV R0,#5 MOV DPH,#A4H MOV DPL,#A0H A4: CALL ACSHOW CALL DELAY CALL STP_SC DJNZ R0,A4 MOV R0,#5 MOV DPH,#A5H MOV DPL,#A0H A5: CALL ACSHOW CALL DELAY CALL STP_SC DJNZ R0,A5 MOV R0,#4 MOV DPH,#A6H MOV DPL,#A0H A6: CALL ACSHOW CALL DELAY CALL STP_SC DJNZ R0,A6 MOV R0,#5 MOV DPH,#A7H MOV DPL,#A0H A7: CALL ACSHOW CALL DELAY CALL STP_SC DJNZ R0,A7 MOV R0,#5 MOV DPH,#A8H MOV DPL,#A0H A8: CALL ACSHOW CALL DELAY CALL STP_SC DJNZ R0,A8 MOV R0,#5 MOV DPH,#A9H MOV DPL,#A0H A9: CALL ACSHOW CALL DELAY CALL STP_SC DJNZ R0,A9 MOV A,#01H CALL WRITE_COMMAND JMP $ ;****************************************************** CSHOW: CLR E MOV A,#00111000B CALL WRITE_COMMAND MOV A,#10000000B CALL WRITE_COMMAND MOV DPTR,#S2 MOV R1,#18 CLOOP1: MOV A,#00H MOVC A,@A+DPTR CALL WRITE_DATA INC DPTR DJNZ R1,CLOOP1 ; MOV A,#10010000B CALL WRITE_COMMAND MOV DPTR,#S3 MOV R1,#18 CLOOP2: MOV A,#00H MOVC A,@A+DPTR CALL WRITE_DATA INC DPTR DJNZ R1,CLOOP2 ; ;MOV DPTR,#S1 ;MOV R1,#8 ;CLOOP3: ;MOV A,#00H ;MOVC A,@A+DPTR ;CALL WRITE_DATA ;INC DPTR ;DJNZ R1,CLOOP3 RET ;********************************************************* NSHOW: CLR E MOV A,#00111000B CALL WRITE_COMMAND MOV A,#10000000B CALL WRITE_COMMAND MOV DPTR,#S4 MOV R1,#18 NCLOOP1: MOV A,#00H MOVC A,@A+DPTR CALL WRITE_DATA INC DPTR DJNZ R1,NCLOOP1 ; MOV A,#10010000B CALL WRITE_COMMAND MOV DPTR,#S5 MOV R1,#18 NCLOOP2: MOV A,#00H MOVC A,@A+DPTR CALL WRITE_DATA INC DPTR DJNZ R1,NCLOOP2 RET ;******************************************************** MSHOW: CLR E MOV A,#00111000B CALL WRITE_COMMAND MOV A,#10000000B CALL WRITE_COMMAND MOV DPTR,#S6 MOV R1,#18 MCLOOP1: MOV A,#00H MOVC A,@A+DPTR CALL WRITE_DATA INC DPTR DJNZ R1,MCLOOP1 ; MOV A,#10010000B CALL WRITE_COMMAND MOV DPTR,#S7 MOV R1,#18 MCLOOP2: MOV A,#00H MOVC A,@A+DPTR CALL WRITE_DATA INC DPTR DJNZ R1,MCLOOP2 RET ;******************************************************** ACSHOW: CLR E MOV A,#00111000B CALL WRITE_COMMAND MOV A,#10000000B CALL WRITE_COMMAND MOV R1,#9 ACLOOP1: MOV A,DPH CALL WRITE_DATA MOV A,DPL CALL WRITE_DATA INC DPTR DJNZ R1,ACLOOP1 MOV A,#10010000B CALL WRITE_COMMAND MOV R1,#9 ACLOOP2: MOV A,DPH CALL WRITE_DATA MOV A,DPL CALL WRITE_DATA INC DPTR DJNZ R1,ACLOOP2 RET ;****************************************************** GSHOW: MOV A,#00111110B CALL WRITE_COMMAND MOV DPTR,#G1 MOV R2,#00H GLOOP1: MOV A,#80H ADD A,R2 CALL WRITE_COMMAND MOV A,#80H CALL WRITE_COMMAND GLOOP2: MOV R3,#18 GLOOP3: MOV A,#00H MOVC A,@A+DPTR CALL WRITE_DATA INC DPTR DJNZ R3,GLOOP3 INC R2 CJNE R2,#32,GLOOP1 RET ;******************************************************* DPTRADJ: CLR C CJNE R4,#00H,SUBER ADDER: MOV DPTRH,DPH MOV DPTRL,DPL MOV A,DPL ADD A,#240 JC CARRY ALOOP: MOV DPL,A INC DPH INC R4 RET SUBER: MOV DPH,DPTRH MOV DPL,DPTRL DEC R4 RET CARRY: INC DPH JMP ALOOP ;******************************************************* CHK_BUSY: MOV P1,#0FFH ;SET PORT1=INPUT CLR RS ;SET IR MODE RS=0 SETB R_W ;SET READ MODE R/W=1 SETB E ;ENABLE LCM MOV C,P1.7 ;CHECK BUSY FLAGE(BIT7) CLR E JC CHK_BUSY RET ;****************************************************** WRITE_COMMAND: CALL CHK_BUSY CLR RS CLR R_W SETB E MOV P1,A CLR E RET ;******************************************************* WRITE_DATA: CALL CHK_BUSY SETB RS CLR R_W SETB E MOV P1,A CLR E RET ;******************************************************** F_C: MOV A,#00111110B CALL WRITE_COMMAND MOV R2,#0 FLOOP1: MOV A,#80H ADD A,R2 CALL WRITE_COMMAND MOV A,#80H CALL WRITE_COMMAND MOV R3,#32 FLOOP2: MOV A,R6 CALL WRITE_DATA DJNZ R3,FLOOP2 INC R2 CJNE R2,#32,FLOOP1 RET ;********************************************************** ROW: MOV A,#00111110B CALL WRITE_COMMAND MOV R4,#0FFH MOV R2,#0 RLOOP1: MOV A,#80H ADD A,R2 CALL WRITE_COMMAND MOV A,#80H CALL WRITE_COMMAND MOV R3,#36 RLOOP2: MOV A,R4 CALL WRITE_DATA DJNZ R3,RLOOP2 CPL A MOV R4,A INC R2 CJNE R2,#32,RLOOP1 RET ;********************************************************** ; SKIP: MOV A,#00111110B CALL WRITE_COMMAND MOV R4,#0AAH MOV R2,#0 $LOOP1: MOV A,#80H ADD A,R2 CALL WRITE_COMMAND MOV A,#80H CALL WRITE_COMMAND MOV R3,#36 $LOOP2: MOV A,R4 CALL WRITE_DATA DJNZ R3,$LOOP2 ; INC R2 MOV A,R2 JNB A.0,$COLUMN MOV A,#55H MOV R4,A CJNE R2,#32,$LOOP1 RET ; $COLUMN: MOV A,#AAH MOV R4,A CJNE R2,#32,$LOOP1 RET ;********************************************************** ;SQUARE: ; MOV R4,#02 ; MOV R1,#36 ; MOV R2,#80H ;r2 == vertical address ;SLOOP4: MOV R3,#80H ;r3 == horizontal address ; ;SLOOP5: MOV A,R2 ; ; CALL WRITE_COMMAND ;set vertical address ; MOV A,R3 ; ; CALL WRITE_COMMAND ;set horizontal address ; ; ; MOV A,#80H ; ; CALL WRITE_DATA ; ; ; ; MOV A,R3 ; ; ADD A,#8 ; ; MOV R3,A ; ; ; ; DJNZ R4,SLOOP5 ; ; ret ; ;******************** ; MOV R3,#88H ; MOV R4,#2 ; ;SLOOP6: MOV A,R2 ; CALL WRITE_COMMAND ; MOV A,R3 ; CALL WRITE_COMMAND ; ; MOV A,#00H ; CALL WRITE_DATA ; MOV A,#01H ; CALL WRITE_DATA ; ; MOV A,R3 ; ADD A,#9 ; MOV R3,A ; ; DJNZ R4,SLOOP6 ; ;******************* ; INC R2 ; MOV R4,#02 ; DJNZ R1,SLOOP4 ; ;;****************************************** ;; top line ;; ; MOV A,#00111110B ; CALL WRITE_COMMAND ; ; MOV A,#80H ; CALL WRITE_COMMAND ; MOV A,#80H ; CALL WRITE_COMMAND ; MOV R3,#18 ;SLOOP1: ; MOV A,#0FFH ; CALL WRITE_DATA ; DJNZ R3,SLOOP1 ;****************************************** ; MOV R2,#00H ; MOV R4,#2 ; ; MOV A,#9FH ; CALL WRITE_COMMAND ; MOV A,#80H ; CALL WRITE_COMMAND ;SLOOP2: MOV R3,#18 ;SLOOP3: ; MOV A,R2 ; CALL WRITE_DATA ; DJNZ R3,SLOOP3 ; MOV R2,#0FFH ; DJNZ R4,SLOOP2 ;; ; MOV A,#9FH ; CALL WRITE_COMMAND ; MOV A,#80H ; CALL WRITE_COMMAND ; MOV A,#80H ; CALL WRITE_DATA ;; ; MOV A,#9FH ; CALL WRITE_COMMAND ; MOV A,#88H ; CALL WRITE_COMMAND ;; ; MOV A,#00H ; CALL WRITE_DATA ; MOV A,#01H ; CALL WRITE_DATA ; ; RET ; ; ;******************************************************************************* ; top line ; A_SQUARE: MOV A,#00111110B ;EXPANDTION INSTRUCTION CALL WRITE_COMMAND ; ; MOV A,#80H ;V ADDRESS CALL WRITE_COMMAND ; MOV A,#80H ;H ADDRESS CALL WRITE_COMMAND ; MOV R3,#18 ; SLOOP1: ; MOV A,#0FFH ; CALL WRITE_DATA ; DJNZ R3,SLOOP1 ; ; ; MOV A,#9FH CALL WRITE_COMMAND MOV A,#80H CALL WRITE_COMMAND MOV R3,#18 SLOOP2: MOV A,#FFH CALL WRITE_DATA DJNZ R3,SLOOP2 ;---- MOV R2,#81H MOV R3,#80H MOV R4,#30 ; ; SLOOP3: MOV A,R2 ;V ADDRESS CALL WRITE_COMMAND ; MOV A,R3 ;H ADDRESS CALL WRITE_COMMAND ; ; ; MOV A,#80H ; CALL WRITE_DATA ; INC R2 DJNZ R4,SLOOP3 ; ;---- ; MOV R2,#81H ; MOV R3,#88H ; MOV R4,#30 ; ; ; SLOOP5: ; MOV A,R2 ;V ADDRESS CALL WRITE_COMMAND ; MOV A,R3 ;H ADDRESS CALL WRITE_COMMAND ; ; ; MOV A,#00H ; CALL WRITE_DATA ; MOV A,#01H ; CALL WRITE_DATA ; INC R2 ; DJNZ R4,SLOOP5 ; RET ; ;****************************************** ; Procedure of step by step and scan ;******************************************************************************* STP_SC: MOV C,S_S JC STEP RET STEP: MOV C,STP MOV R5,#0FH LOPE: MOV R6,#0FFH LOPD: DJNZ R6,LOPD DJNZ R5,LOPE JNB S_S,LOUT JNC STEP LOUT: RET ;********************************************************** DELAY: MOV DT1,R1 MOV DT2,R2 MOV DT3,R3 MOV R1,#0AH D1: MOV R2,#0FFH D2: MOV R3,#0FFH D3: DJNZ R3,D3 DJNZ R2,D2 DJNZ R1,D1 MOV R3,DT3 MOV R2,DT2 MOV R1,DT1 RET ;********************************************************** S2: DB A1H,69H,'ÁcÅé',A1H,6AH DB A1H,BEH,0BCH,0F2H,0CCH,0E5H,A1H,BFH,' ' ;²Åé GB½X S3: DB A1H,79H,BDH,D3H,BFH,68H,BEH,EDH,BEH,BCH,CFH,60H,A1H,7AH,'good' ;Ác²²V¦Xª© S4: DB A3H,B0H,A3H,B1H,A3H,B2H,A3H,B3H,A3H,B4H,A3H,B5H,A3H,B6H,A3H,B7H,A3H,B8H S5: DB A3H,B9H,A3H,C1H,A3H,C2H,A3H,C3H,A3H,C4H,A3H,C5H,A3H,C6H,A3H,C7H,A3H,C8H S6: DB 'ABCDEFGHIJKLMNOPQR' S7: DB 'STUVWXYZ1234567890' S8: DB A3H,B1H,A3H,B1H,A3H,B1H,A3H,B1H,A3H,B1H,A3H,B1H,A3H,B1H,A3H,B1H,A3H,B1H S9: DB A3H,B8H,A3H,B8H,A3H,B8H,A3H,B8H,A3H,B8H,A3H,B8H,A3H,B8H,A3H,B8H,A3H,B8H S10: DB A3H,B9H,A3H,B9H,A3H,B9H,A3H,B9H,A3H,B9H,A3H,B9H,A3H,B9H,A3H,B9H,A3H,B9H S11: DB A3H,C1H,A3H,C1H,A3H,C1H,A3H,C1H,A3H,C1H,A3H,C1H,A3H,C1H,A3H,C1H,A3H,C1H G1: DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh DB 0FFh,088h,042h,010h,084h,021h,008h,042h,010h,084h,021h,008h,042h,010h,084h,021h,008h DB 042h,011h,080h,040h,010h,004h,001h,000h,040h,010h,004h,001h,000h,040h,010h,004h,001h DB 000h,040h,011h,080h,040h,010h,004h,001h,000h,040h,010h,004h,001h,000h,040h,010h,004h DB 001h,000h,040h,011h,0C0h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,001h,080h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,001h,082h,0AAh,0AAh,0AAh,0AAh,0A0h,000h,0AAh,0AAh,0AAh,0AAh DB 0A8h,000h,00Ah,0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h,055h,043h,0B8h,055h,055h,055h DB 055h,050h,0BBh,085h,055h,055h,055h,055h,082h,0AAh,0AAh,0AAh,0AAh,0A2h,028h,0AAh,0AAh DB 0AAh,0AAh,0A8h,0AAh,08Ah,0AAh,0AAh,0AAh,0ABh,0F1h,055h,055h,055h,055h,043h,0A8h,055h DB 055h,055h,055h,050h,0AAh,085h,055h,055h,055h,055h,082h,0AAh,0AAh,0AAh,0AAh,0A0h,0A8h DB 0AAh,0AAh,0AAh,0AAh,0A8h,0AAh,08Ah,0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h,055h,043h DB 0B8h,055h,055h,055h,055h,050h,0BBh,085h,055h,055h,055h,055h,082h,0AAh,0AAh,0AAh,0AAh DB 0A0h,000h,0AAh,0AAh,0AAh,0AAh,0A8h,000h,00Ah,0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h DB 055h,040h,000h,055h,055h,055h,055h,050h,000h,005h,055h,055h,055h,055h,0C2h,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0ABh,081h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,082h DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0ABh DB 081h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h DB 055h,082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0ABh,0F1h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h,055h,082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,082h,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0ABh,0F1h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,055h,082h,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0ABh,0FFh,0FFh,0FFh DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh END