DATABUF EQU 30H ;数据缓冲单元 BLCKCOLO EQU 40H;背景色 FONTCOLO EQU 41H;前景色 LINE EQU 42H ;行地址 NIE EQU 43H NIEH EQU 44H ;列地址 NUM EQU 48H ;显示字个数 DISPDATA EQU 45H ;显示数据 ADL EQU 46H ADH EQU 47H ; 指针单元 PORT EQU P1 RS EQU P2.0 RW EQU P2.1 CS EQU P2.2 ORG 0000H JMP MAIN ORG 0030H MAIN: MOV SP,#60H CALL DELAY400MS CALL CLEARLCD CALL PLAYSTRING JMP $ ;清屏子程序 CLEARLCD: MOV R7,#234 MOV R6,#160 MOV R5,#2 MOV LINE,#0 MOV NIE,#0 MOV NIEH,#0 MOV DISPDATA,#0E0H CALL WRITEADDRINCH ;写地址增加方向 CALL WRITELINE CALL WRITENIE ;写行列地址 LOOP1: CALL WRITEDATA ;写数据00 DJNZ R7,LOOP1 DJNZ R6,LOOP1 DJNZ R5,LOOP1 ;写234*320次 RET PLAYSTRING: MOV DPTR,#WORD1 MOV LINE,#1 MOV NIE,#0 MOV NIEH,#0 CALL RED MOV R6,#0 MOV R7,#16 LOOP3: MOV A,R6 MOVC A,@A+DPTR CALL DATACHULIA INC R6 MOVC A,@A+DPTR CALL DATACHULIB CALL WRITELINE CALL WRITENIE CALL WRITEONELINE ;写一行 INC R6 INC LINE ;指向下一行 DJNZ R7,LOOP3 MOV A,LINE CLR C SUBB A,#16 MOV LINE,A ;修改行地址 RET ;写一行子程序 ;入口30H-3FH WRITEONELINE: MOV R5,#16 MOV R1,#DATABUF ;指向数据通道 LOOP2: MOV DISPDATA,@R1 CALL WRITEDATA ;写数据 INC R1 ;修改指针 DJNZ R5,LOOP2 RET ; 长延时程序,主要用于初始化之前,CPU等待LCM准备好 DELAY400MS: MOV R0,#20 DL4_PA: MOV R1,#100 DL4_PB: MOV R2,#100 DJNZ R2,$ DJNZ R1,DL4_PB DJNZ R0,DL4_PA RET WRITELINE: CLR CS CLR RS CLR RW MOV PORT,#03H SETB RS SETB RW CLR RW MOV PORT,LINE SETB RW SETB CS RET WRITENIE: CLR RS CLR RW NOP MOV PORT,#04H SETB RS SETB RW CLR RW MOV PORT,NIEH SETB RW;写列高位 CLR RS CLR RW MOV PORT,#05H SETB RS SETB RW CLR RW MOV PORT,NIE SETB RW;写列低位 RET WRITEDATA: CLR CS CLR RS CLR RW NOP MOV PORT,#1FH SETB RW SETB RS CLR RW NOP MOV PORT,DISPDATA SETB RW SETB CS RET WRITEADDRINCH: CLR CS CLR RS CLR RW MOV PORT,#10H SETB RS SETB RW CLR RW MOV PORT,#00H SETB RW SETB CS RET WRITEADDRINCL: CLR CS CLR RS CLR RW MOV PORT,#10H SETB RS SETB RW CLR RW MOV PORT,#01H SETB RW SETB CS RET WRITEBANBEN: CLR RS CLR RW MOV PORT,#14H SETB RW SETB RS CLR RW MOV PORT,#01H SETB RW RET BLUE:MOV FONTCOLO,#03H MOV BLCKCOLO,#00H RET ;蓝色 GREEN:MOV FONTCOLO,#1CH MOV BLCKCOLO,#00H RET ;绿色 RED:MOV FONTCOLO,#0E0H MOV BLCKCOLO,#00H RET ;红色 YELLOW:MOV FONTCOLO,#0FCH MOV BLCKCOLO,#00H RET ;黄色 ;数据处理子程序 ;入口ACC中的数据 BLCKCOLO FONTCOLO ;出口30H-3FH单元 DATACHULIA:JB ACC.7,A7 MOV DATABUF,BLCKCOLO JMP B7 A7:MOV DATABUF,FONTCOLO B7:JB ACC.6,A6 MOV DATABUF+1,BLCKCOLO JMP B6 A6:MOV DATABUF+1,FONTCOLO B6: JB ACC.5,A5 MOV DATABUF+2,BLCKCOLO JMP B5 A5:MOV DATABUF+2,FONTCOLO B5:JB ACC.4,A4 MOV DATABUF+3,BLCKCOLO JMP B4 A4:MOV DATABUF+3,FONTCOLO B4:JB ACC.3,A3 MOV DATABUF+4,BLCKCOLO JMP B3 A3:MOV DATABUF+4,FONTCOLO B3:JB ACC.2,A2 MOV DATABUF+5,BLCKCOLO JMP B2 A2:MOV DATABUF+5,FONTCOLO B2:JB ACC.1,A1 MOV DATABUF+6,BLCKCOLO JMP B1 A1:MOV DATABUF+6,FONTCOLO B1:JB ACC.0,A0 MOV DATABUF+7,BLCKCOLO JMP B0 A0:MOV DATABUF+7,FONTCOLO B0:RET DATACHULIB:JB ACC.7,C7 MOV DATABUF+8,BLCKCOLO JMP D7 C7:MOV DATABUF+8,FONTCOLO D7:JB ACC.6,C6 MOV DATABUF+9,BLCKCOLO JMP D6 C6:MOV DATABUF+9,FONTCOLO D6: JB ACC.5,C5 MOV DATABUF+10,BLCKCOLO JMP D5 C5:MOV DATABUF+10,FONTCOLO D5:JB ACC.4,C4 MOV DATABUF+11,BLCKCOLO JMP D4 C4:MOV DATABUF+11,FONTCOLO D4:JB ACC.3,C3 MOV DATABUF+12,BLCKCOLO JMP D3 C3:MOV DATABUF+12,FONTCOLO D3:JB ACC.2,C2 MOV DATABUF+13,BLCKCOLO JMP D2 C2:MOV DATABUF+13,FONTCOLO D2:JB ACC.1,C1 MOV DATABUF+14,BLCKCOLO JMP D1 C1:MOV DATABUF+14,FONTCOLO D1:JB ACC.0,C0 MOV DATABUF+15,BLCKCOLO JMP D0 C0:MOV DATABUF+15,FONTCOLO D0:RET WORD1: DB 00H,00H,06H,40H,06H,40H,06H,40H,06H,44H,3EH,4EH,7EH,78H,06H,60H,06H,40H,06H,40H,06H,40H,0EH,40H,7EH,43H,66H,7EH,06H,3CH,00H,00H END