;********************************** ; WG20232c ;********************************** RS REG P3.0 E REG P3.4 R_W REG P3.7 STP REG P2.0 S_S REG P2.1 BCD EQU 7FH CHAR_ADD EQU 7EH DPTRH EQU 7DH DPTRL EQU 7CH DT1 EQU 7BH DT2 EQU 7AH DT3 EQU 79H ;********************************** ORG 0H JMP START START: INITIAL: CLR E MOV A,#00111000B CALL WCOM MOV A,#00001100B ;Display ON/OFF = 00001DCB CALL WCOM ;Display ON,Cursor&Blink OFF MOV A,#00000110B ;Entry Mode Set = 000001IS CALL WCOM ;Increment & Shift OFF MOV A,#00000010B ;Return Home CALL WCOM MOV A,#00000001B ;Clear Display CALL WCOM ;Write 20H to DDRAM ;****************************************************** SHOW: MOV R6,#0FFH CALL CSHOW JMP $ CALL F_C LCALL DELAY LCALL STP_SC MOV R6,#0AAH CALL F_C LCALL DELAY LCALL STP_SC CALL ROW CALL GSHOW MOV R6,#00H CALL F_C CALL SQUARE CALL CSHOW MOV A,#01H CALL WCOM JMP SHOW ;****************************************************** CSHOW: CLR E MOV A,#00111000B CALL WCOM MOV A,#10000000B CALL WCOM MOV R3,#20 MOV A,#03H LOP1: CALL WDATA INC A DJNZ R3,LOP1 SJMP $ MOV DPTR,#S1 MOV R1,#23 CLOOP1: MOV A,#00H MOVC A,@A+DPTR CALL WDATA INC DPTR DJNZ R1,CLOOP1 MOV A,#10000010B CALL WCOM MOV DPTR,#S2 MOV R1,#6 CLOOP2: MOV A,#00H MOVC A,@A+DPTR CALL WDATA INC DPTR DJNZ R1,CLOOP2 MOV A,#10000111B CALL WCOM MOV DPTR,#S3 MOV R1,#6 CLOOP3: MOV A,#00H MOVC A,@A+DPTR CALL WDATA INC DPTR DJNZ R1,CLOOP3 LCALL DELAY LCALL STP_SC RET ;****************************************************** GSHOW: MOV A,#00111110B CALL WCOM MOV R5,#02H MOV R4,#00H MOV DPTR,#G1 MOV R2,#0 GLOOP1: MOV A,#80H ADD A,R2 CALL WCOM MOV A,#80H CALL WCOM GLOOP2: MOV R3,#24 GLOOP3: MOV A,#00H MOVC A,@A+DPTR CALL WDATA INC DPTR DJNZ R3,GLOOP3 MOV R5,#02H INC R2 CJNE R2,#32,GLOOP1 LCALL DELAY LCALL STP_SC RET ;******************************************************* 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 ;****************************************************** WCOM: CALL CHK_BUSY CLR RS CLR R_W SETB E MOV P1,A CLR E RET ;******************************************************* WDATA: CALL CHK_BUSY SETB RS CLR R_W SETB E MOV P1,A CLR E RET ;******************************************************** F_C: MOV A,#00111110B CALL WCOM MOV R2,#0 FLOOP1: MOV A,#80H ADD A,R2 CALL WCOM MOV A,#80H CALL WCOM MOV R3,#32 FLOOP2: MOV A,R6 CALL WDATA DJNZ R3,FLOOP2 INC R2 CJNE R2,#32,FLOOP1 RET ;********************************************************** ROW: MOV A,#00111110B CALL WCOM MOV R4,#0FFH MOV R2,#0 RLOOP1: MOV A,#80H ADD A,R2 CALL WCOM MOV A,#80H CALL WCOM MOV R3,#32 RLOOP2: MOV A,R4 CALL WDATA DJNZ R3,RLOOP2 CPL A MOV R4,A INC R2 CJNE R2,#32,RLOOP1 LCALL DELAY LCALL STP_SC RET ;********************************************************** SQUARE: MOV R1,#32 MOV R2,#80H SLOOP4: MOV R3,#80H SLOOP5: MOV A,R2 CALL WCOM MOV A,R3 CALL WCOM MOV A,#80H CALL WDATA MOV A,R3 ADD A,#8 MOV R3,A ;******************** MOV R3,#8BH SLOOP6: MOV A,R2 CALL WCOM MOV A,R3 CALL WCOM MOV A,#00H CALL WDATA MOV A,#01H CALL WDATA MOV A,R3 ADD A,#8 MOV R3,A INC R2 DJNZ R1,SLOOP4 ;****************************************** MOV A,#00111110B CALL WCOM MOV A,#80H CALL WCOM MOV A,#80H CALL WCOM MOV R3,#24 SLOOP1: MOV A,#0FFH CALL WDATA DJNZ R3,SLOOP1 ;****************************************** MOV A,#9FH CALL WCOM MOV A,#80H CALL WCOM SLOOP2: MOV R3,#24 SLOOP3: MOV A,#FFH CALL WDATA DJNZ R3,SLOOP3 MOV A,#9FH CALL WCOM MOV A,#80H CALL WCOM MOV A,#FFH CALL WDATA RET ;***************************************************************************** DELAY: CALL CBCD MOV R4,BCD D1: MOV R5,#100 D2: MOV R6,#200 D3: DJNZ R6,D3 DJNZ R5,D2 DJNZ R4,D1 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 LOPH: DJNZ R6,LOPH DJNZ R5,LOPE JNB S_S,LOUT JNC STEP LOUT: RET ;***************************************************************************** ; BCD DELAY TIME SELECT ;***************************************************************************** CBCD: PUSH A MOV A,P0 ANL A,#0FH RL A RL A MOV BCD,A POP A RET ;********************************************************** S1: DB 'ABCDEFGHIJKLMNOPQRSTUVW' S2: DB C1H,63H,C5H,E9H,AAH,A9H S3: DB BCH,F2H,CCH,E5H,B0H,E6H G1: DB 008h,042h,010h,084h,021h,008h,042h,010h DB 084h,021h,008h,042h,010h,084h,021h,008h DB 042h,010h,084h,021h,008h,042h,010h,084h DB 008h,042h,010h,084h,021h,008h,042h,010h DB 084h,021h,008h,042h,010h,084h,021h,008h DB 042h,010h,084h,021h,008h,042h,010h,084h DB 000h,040h,010h,004h,001h,000h,040h,010h DB 004h,001h,000h,040h,010h,004h,001h,000h DB 040h,010h,004h,001h,000h,040h,010h,084h DB 000h,040h,010h,004h,001h,000h,040h,010h DB 004h,001h,000h,040h,010h,004h,001h,000h DB 040h,010h,004h,001h,000h,040h,010h,004h DB 0C0h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h DB 000h,000h,000h,000h,000h,000h,000h,000h DB 002h,0AAh,0AAh,0AAh,0AAh,0A0h,000h,0AAh DB 0AAh,0AAh,0AAh,0A8h,000h,00Ah,0AAh,0AAh DB 0AAh,0AAh,000h,002h,0AAh,0AAh,0AAh,0AAh DB 001h,055h,055h,055h,055h,043h,0B8h,055h DB 055h,055h,055h,050h,0BBh,085h,055h,055h DB 055h,054h,02Eh,0E1h,055h,055h,055h,055h DB 002h,0AAh,0AAh,0AAh,0AAh,0A2h,028h,0AAh DB 0AAh,0AAh,0AAh,0A8h,0AAh,08Ah,0AAh,0AAh DB 0AAh,0AAh,028h,0A2h,0AAh,0AAh,0AAh,0AAh DB 0F1h,055h,055h,055h,055h,043h,0A8h,055h DB 055h,055h,055h,050h,0AAh,085h,055h,055h DB 055h,054h,02Eh,0A1h,055h,055h,055h,055h DB 002h,0AAh,0AAh,0AAh,0AAh,0A0h,0A8h,0AAh DB 0AAh,0AAh,0AAh,0A8h,0AAh,08Ah,0AAh,0AAh DB 0AAh,0AAh,022h,0A2h,0AAh,0AAh,0AAh,0AAh DB 001h,055h,055h,055h,055h,043h,0B8h,055h DB 055h,055h,055h,050h,0BBh,085h,055h,055h DB 055h,054h,02Eh,0E1h,055h,055h,055h,055h DB 002h,0AAh,0AAh,0AAh,0AAh,0A0h,000h,0AAh DB 0AAh,0AAh,0AAh,0A8h,000h,00Ah,0AAh,0AAh DB 0AAh,0AAh,000h,002h,0AAh,0AAh,0AAh,0AAh DB 001h,055h,055h,055h,055h,040h,000h,055h DB 055h,055h,055h,050h,000h,005h,055h,055h DB 055h,054h,000h,001h,055h,055h,055h,055h DB 0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 001h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 002h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 001h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 002h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0F1h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 002h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 001h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 002h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 001h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 001h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 002h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 001h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 002h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0F1h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 002h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh DB 001h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h DB 055h,055h,055h,055h,055h,055h,055h,055h END