Professional Documents
Culture Documents
1913873
DISPLAY:
MOV R0,#0
CLR A
CHECK: JB P1.0, $
ACALL DELAY100MS
JNB P1.0, NEXT
SJMP CHECK
NEXT:MOV DPTR,#TABLE
LOOP: MOVC A,@A+DPTR
JZ EXIT
ACALL OUTCHR
INC R0
MOV A,R0
SJMP LOOP
EXIT: RET
DELAY100MS:
MOV R7,#200
LP: MOV R6,#250
DJNZ R6, $
DJNZ R7, LP
RET
OUTCHR: JNB TI,$
CLR TI
MOV SBUF,A
RET
TABLE: DB "Hello World!",0
END
TN4
LCD_E BIT P3.4
LCD_RS BIT P3.5
LCDADDR EQU 6000H
ORG 2000H
ACALL INIT_LCD
MOV A, PCON
SETB ACC.7
MOV PCON, A
MOV TMOD, #20H
MOV TH1, #-3
SETB TR1
MOV SCON, #50H
MAIN:
ACALL INCHAR
CJNE A, #0DH, NEXT1
ACALL XUONGHANG
SJMP MAIN
NEXT1: CJNE A, #1B, NEXT2
ACALL CLEAR
SJMP MAIN
NEXT2: CJNE A, #08H, NEXT3
ACALL XOA
SJMP MAIN
NEXT3: CJNE A, #41H,$+3
JC MAIN
CJNE A, #5BH,$+3
JNC NEXT4
ACALL WRITETEXT
SJMP MAIN
NEXT4: CJNE A, #61H, $+3
JC MAIN
CJNE A, #7BH, $+3
JNC MAIN
ACALL WRITETEXT
SJMP MAIN
INIT_LCD:
MOV A, #38H
ACALL WRITECOM
MOV A, #0CH
ACALL WRITECOM
MOV A, #06H
ACALL WRITECOM
RET
WRITECOM:
MOV DPTR, #LCDADDR
SETB LCD_E
CLR LCD_RS
MOVX @DPTR, A
CLR LCD_E
ACALL WAIT_LCD
RET
WRITETEXT:
MOV DPTR, #LCDADDR
SETB LCD_E
SETB LCD_RS
MOVX @DPTR, A
CLR LCD_E
ACALL WAIT_LCD
RET
WAIT_LCD:
MOV R6,#10
DL1:MOV R7, #250
DJNZ R7, $
DJNZ R6,DL1
RET
CLEAR:
MOV A, #01H
ACALL WRITECOM
RET
XUONGHANG:
MOV A, #0C0H
ACALL WRITECOM
RET
XOA:
MOV A, #10H
ACALL WRITECOM
MOV A, #20H
ACALL WRITETEXT
MOV A, #10H
ACALL WRITECOM
RET
INCHAR:
JNB RI, $
CLR RI
MOV A, SBUF
RET
END