高手们...谁帮我看看下面的程序吧(一个点液晶的单片机程序),我不会解决
我找不出为什么编译总出错,哪位大侠能帮帮忙,最好加我qq:241248,谢谢
;RS=P2.0
;R/W=P2.1
;CS1=P2.7
;CS2=P2.6
;CPU=89C52
;FOSC=12MHz
;D0-D7=P0.0-P0.7
;E=/(WR*RD)
;/RSET=/(CPU RSET)
D1 EQU #8101H ;DATA ADDRESS OF CHIP1 (LEFT HAIF SCREEN) A15=1,A8=1
C1 EQU #8000H ;COMMAND ADDRESS OF CHIP1 (LEFT HAIF SCREEN) A15=1,A8=0
D2 EQU #4101H ;DATA ADDRESS OF CHIP2(RIGHT HAIF SCREEN) A14=1,A8=1
C2 EQU #4000H ;COMMAND ADDRESS OF CHIP2(RIGHT HAIF SCREEN) A14=1,A8=0
;D12 EQU #0C101H ;DATA ADDRESS OF CHIP1 AND CHIP2 ONLY LEFT HAIF SCREEN IS
;C12 EQU #0C000H ;COMMAND ADDRESS OF CHIP1 AND CHIP2 THE SAME WITH RIGHT HAIF SCREEN
KEY EQU P3.4
; BMP ROM ADDRESS, BMPS FILE FIRST ADDREES
TJHD EQU #800H
FLAG EQU 20H.0
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV SP,#60H
LCALL INTI
MOV IE,#83H
START1:
MOV A,#055H
LCALL WDOT
LCALL DEL_0.5S
MOV A,#0FFH
LCALL WDOT
LCALL DEL_0.5S
MOV A,#0AAH
LCALL WDOT
LCALL DEL_0.5S
MOV DPTR,TJHD
LCALL BMP_FULL
LCALL DEL_0.5S
AJMP START1
DEL_0.5S:
MOV R7,#20D
DEL2: MOV R6,#200D
DEL1: MOV R5,#200D
DEL0: JB KEY,DEGO
LJMP RKEY
DEGO:
DJNZ R5,DEL0
DJNZ R6,DEL1
DJNZ R7,DEL2
RET
RKEY: LCALL DEL_20MS
JB KEY,DEGO
HERR:
JNB KEY,HERR
LCALL DEL_20MS
JNB KEY,HERR
RET
WDOT:
PUSH ACC
MOV 30H,#0B8H ;PAGE ADDRESS
MOV R3,#08D ;8 PAGE
ANDW:
MOV A,30H
MOV DPTR,C1 ;SET PAGE ADDRESS
MOVX @DPTR,A
MOV A,30H
MOV DPTR,C2 ;SET PAGE ADDRESS
MOVX @DPTR,A
LCALL BUSY
MOV DPTR,C1
MOV A,#40H ;SET SEG ADDRESS
MOVX @DPTR,A
MOV DPTR,C2
MOVX @DPTR,A
LCALL BUSY
MOV DPTR,C1
MOV A,#0C0H ;SET SEG ADDRESS
MOVX @DPTR,A
MOV DPTR,C2
MOVX @DPTR,A
LCALL BUSY
MOV R2,#64D ;64D SEG
APAGEW:
POP ACC
MOV DPTR,D1
MOVX @DPTR,A ;WRITE DISPLAY DATA
LCALL BUSY ;READ BUSY FLAG
CJNE A,#0FFH,NOTP
AJMP NOTW
NOTP:
CPL A
NOTW:
PUSH ACC
DJNZ R2,APAGEW ;DISPLAY A PAGE
MOV R2,#64D ;64D SEG
APAGEW1:
POP ACC
MOV DPTR,D2
MOVX @DPTR,A ;WRITE DISPLAY DATA
LCALL BUSY ;READ BUSY FLAG
CJNE A,#0FFH,NOTP1
AJMP NOTW1
NOTP1:
CPL A
NOTW1:
PUSH ACC
DJNZ R2,APAGEW1 ;DISPLAY A PAGE
INC 30H
DJNZ R3,ANDW ;DISPLAY 8 PAGES
POP ACC
RET
BMP_FULL:
PUSH DPL
PUSH DPH ;BMP FIST ADDRESS
PUSH DPL
PUSH DPH
MOV 30H,#0B8H ;PAGE ADDRESS
MOV R3,#08D ;8 PAGE
NDW:
MOV A,30H
MOV DPTR,C1 ;SET PAGE ADDRESS
MOVX @DPTR,A
MOV A,30H
MOV DPTR,C2 ;SET PAGE ADDRESS
MOVX @DPTR,A
LCALL BUSY
MOV DPTR,C1
MOV A,#40H ;SET SEG ADDRESS
MOVX @DPTR,A
MOV DPTR,C2
MOVX @DPTR,A
LCALL BUSY
MOV DPTR,C1
MOV A,#0C0H ;SET SEG ADDRESS
MOVX @DPTR,A
MOV DPTR,C2
MOVX @DPTR,A
LCALL BUSY
MOV R2,#64D ;64D SEG
PAGEW:
POP DPH
POP DPL
MOV A,#3EH ;READ BMP DATA
MOVC A,@A+DPTR
LCALL BTCH
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
PUSH DPL
PUSH DPH
MOV DPTR,D1
MOVX @DPTR,A ;WRITE DISPLAY DATA
LCALL BUSY ;READ BUSY FLAG
DJNZ R2,PAGEW ;DISPLAY A PAGE
MOV R2,#64D ;64D SEG
PAGEW1:
POP DPH
POP DPL
MOV A,#3EH ;READ BMP DATA
MOVC A,@A+DPTR
LCALL BTCH
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
INC DPTR
PUSH DPL
PUSH DPH
MOV DPTR,D2
MOVX @DPTR,A ;WRITE DISPLAY DATA
LCALL BUSY ;READ BUSY FLAG
DJNZ R2,PAGEW1 ;DISPLAY A PAGE
POP DPH
POP DPL
POP DPH
POP DPL
INC DPTR
PUSH DPL
PUSH DPH
PUSH DPL
PUSH DPH
INC 30H
DJNZ R3,NDW ;DISPLAY 8 PAGES
POP DPH
POP DPL
POP DPH
POP DPL
RET
;*****************************
DKEY: JB KEY,DKEY
LCALL DELAY_20MS
JB KEY,DKEY
WAIT: JNB KEY,WAIT
LCALL DELAY_20MS
JNB KEY,WAIT
RET
INTI:
MOV A,#3FH
MOV DPTR,C1
MOVX @DPTR,A
LCALL BUSY
MOV DPTR,C2
MOVX @DPTR,A
LCALL BUSY
MOV A,#0C0H
MOV DPTR,C1
MOVX @DPTR,A
LCALL BUSY
MOV DPTR,C2
MOVX @DPTR,A
LCALL BUSY
RET
BUSY:
PUSH DPL
PUSH DPH
PUSH ACC
MOV DPTR,#8200H
BUSY1:
MOVX A,@DPTR
JB ACC.7,BUSY1
MOV DPTR,#4200H
BUSY2:
MOVX A,@DPTR
JB ACC.7,BUSY2
POP ACC
POP DPH
POP DPL
RET
DEL_20MS:
DELAY_20MS:
MOV R7,#20D
DD2: MOV R6,#200D
DD1:
NOP
NOP
NOP
DJNZ R6,DD1
DJNZ R7,DD2
RET
BTCH:
MOV C,ACC.7
MOV FLAG,C
MOV C,ACC.0
MOV ACC.7,C
MOV C,FLAG
MOV ACC.0,C
MOV C,ACC.6
MOV FLAG,C
MOV C,ACC.1
MOV ACC.6,C
MOV C,FLAG
MOV ACC.1,C
MOV C,ACC.5
MOV FLAG,C
MOV C,ACC.2
MOV ACC.5,C
MOV C,FLAG
MOV ACC.2,C
MOV C,ACC.4
MOV FLAG,C
MOV C,ACC.3
MOV ACC.4,C
MOV C,FLAG
MOV ACC.3,C
RET
RET
END
发表时间:2003年3月31日22:09:34