⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p4.asm

📁 LCD modle AT1602 显示程序,纯用ASM汇编编写
💻 ASM
字号:

	;WRITE By chenhaocheng.
	;2006.9.18
	   
	COUNT	EQU	20H
	TEMP	EQU	25H
	LED	EQU	26H
	RL0	EQU	21H
	RL1	EQU	22H
	RL2	EQU	23H
        D0 DATA 27H
        D1 DATA 28H
        D2 DATA 29H
        dppl equ 30h
        dpph equ 31h
        RS	BIT	P3.7
	RW	BIT	P3.6
	EN	BIT	P3.5
	lcd7 bit p2.7
	lcd6 bit p2.6
	lcd5 bit p2.5
	lcd4 bit p2.4
	ORG	00H
	JMP	BEGIN
	ORG	0BH
	JMP	TIMER0
        org    23h
        jmp    rs232
	ORG	150H
BEGIN:	
        MOV	SP,#50H    
	MOV     TEMP,#120
	MOV	LED,#0feH
	MOV	TMOD,#20h
	mov scon,#50h
	mov pcon,#80h
       	MOV	TH0,#0
	MOV	TL0,#0
	mov th1,#0fdh
	SETB	ET0
	SETB	TR0
        setb    tr1
        setb   es
	setb	EA
       call inilcd
       mov dptr,#cg1
       call display
        setb p3.2
        setb p3.3
        setb p3.4
        setb p1.4
LOOP:	
        JNB	P3.2,bt1
	JNB	P3.3,bt2
	JNB	P3.4,bt3
	jnb p1.4,bt4
	JMP	LOOP
bt1:
    call dll
    JNB	P3.2,bt11
    jmp loop
bt11:
    JNB	P3.2,$
    jmp sw1
    jmp $
bt2:
    call dll
    JNB	P3.3,bt22
    jmp loop
bt22:
    JNB	P3.3,$
    jmp sw2
    jmp $
bt3:
    call dll
    JNB	P3.4,bt33
bt33:
    JNB	P3.4,$
    jmp sw3
    jmp $
bt4:
    call dll
    jnb p1.4,bt88
bt88:
    jnb p1.4,$
    jmp sw4
    jmp $

sw1:
    
    cpl tr0
    mov sbuf,'1'
    mov dptr,#cg2
    call display
    jmp loop
sw2:
    cpl tr0
    mov sbuf,"2"
    mov dptr,#cg3
    call display
    jmp loop
sw3:
    cpl tr0
    mov sbuf,"3"
    mov dptr,#cg4
    call display
    jmp loop
sw4:
    cpl tr0
    mov sbuf,"4"
    mov dptr,#cg5
    call display
    jmp loop

inilcd:
  call wait
  mov a,#28h
  call wc
  mov a,#28h
  call wc
  mov a,#0ch
  call wc
  mov a,#06h
  call wc
  mov a,#01h
  call wc
  ret

wc:
  call wait
  clr en
  clr rs
  clr rw
  jmp comm
wd:
  call wait
  clr en
  setb rs
  clr rw
comm:
  ;mov P2,a
  rlc a
  mov lcd7,c
  rlc a
  mov lcd6,c
  rlc a
  mov lcd5,c
  rlc a
  mov lcd4,c
  setb en
  clr en
  rlc a
  mov lcd7,c
  rlc a
  mov lcd6,c
  rlc a
  mov lcd5,c
  rlc a
  mov lcd4,c
  setb en
  clr en
  ret

wait:
  clr en
  clr rs
  setb rw
  setb lcd7
loop1:
  setb en
  mov c,lcd7
  clr en
  setb en
  clr en
  jc loop1
  ret

display:
  mov count,#16
  mov dpph,dph
  mov dppl,dpl
  mov a,#01h
  call wc
  mov a,#80h
  call wc
loop2:
  clr a
  movc a,@a+dptr
  inc dptr
  call wd
  djnz count,loop2
  mov dpl,dppl
  mov dph,dpph
  mov count,#16
  mov a,#0c0h
  call wc
loop3:
  clr a
  movc a,@a+dptr
  call wd
  inc dptr
  djnz count,loop3
  ret

DELAY:	MOV	D0,#012H
LP1:	MOV	D1,#0FFH
LP2:	MOV	D2,#0FFH
LP3:	DJNZ	D2,LP3
	DJNZ	D1,LP2
	DJNZ	D0,LP1
	RET
  
dll:	
        MOV	RL0,#02
dl1:	MOV	RL1,#50
dl2:	MOV	RL2,#50
dl3:	DJNZ	RL2,dl3
	DJNZ	RL1,dl2
	DJNZ	RL0,dl1
	RET

TIMER0:	CLR	EA
	PUSH	A
        PUSH    B
	MOV	TL0,#0
	MOV	TH0,#0
	DJNZ	TEMP,EXIT
	MOV	TEMP,#120
	MOV	A,LED
	MOV	P0,A
	RL	A
	MOV	LED,A
        ;cpl P0
        ;cpl p3.6
EXIT:	POP	A
        POP     B
	SETB	EA
	RETI

rs232: 
        clr ea
        jnb ti,rxd
        clr ti
rxd:
        jnb ri,jiesu
        mov R6,sbuf
        clr ri
jiesu:
        setb ea
        reti

cg1:   DB "  Chenhaocheng  "
cg2:   db "Wo ai ni Yatou  "
cg3: db"TTTTTTTTTTTTTTTT"
cg4: db"PPPPPPPPPPPPPPPP"
cg5: db"EEEEEEEEEEEEEEEE"
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -