- 注册时间
- 2007-4-11
- 最后登录
- 1970-1-1
|
本人抄了一段串口程序,出现如下错误,请兄弟姐妹们帮忙分析,不胜感激!
EMAIL:NICHOLASHUI@163.COM MSN:NICHOLASHUI@163.COM
QQ:35387758文字
*******************
SERIES.ASM(23): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL
SERIES.ASM(50): error A10: ATTEMPT TO DEFINE AN ALREADY DEFINED SYMBOL
SERIES.ASM(104): error A9: SYNTAX ERROR
SERIES.ASM(104): error A9: SYNTAX ERROR
SERIES.ASM(119): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(122): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(123): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(136): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(138): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(145): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(148): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(157): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(176): error A42: PHASE ERROR (PASS-2)
SERIES.ASM(210): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(215): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(228): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(238): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(241): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(340): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(364): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(374): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(383): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(385): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(389): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(391): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(393): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(422): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(426): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(428): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(491): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(493): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(495): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(510): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(511): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(512): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(513): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(515): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(522): error A45: UNDEFINED SYMBOL (PASS-2)
SERIES.ASM(530): error A42: PHASE ERROR (PASS-2)
SERIES.ASM(564): warning A73: TEXT FOUND BEYOND END STATEMENT - IGNORED
*****************************
源程序附下:
****************************
CR EQU 0dh ;carriage return
LF EQU 0ah ;line feed
ACK EQU 6h ;respones to remote system
NAK EQU 15h ;
CAN EQU 18h ;
BAUD_1200 EQU 0e8h ;
BAUD_2400 EQU 0f4h ;
BAUD_9600 EQU 0fdh ;
OK EQU '2' ;
RINGING EQU '5' ;
CONNECT_1200 EQU '10' ;
CONNECT_2400 EQU '13' ;
MTRIES EQU '5' ;
ERASE_1 EQU 0ach ;
ERASE_2 EQU 04h ;
DUMMY EQU 55h ;
WRITE_CODE EQU 02h ;
READ_CODE EQU 01h ;
WRITE_DATA EQU 06h ;
READ_DATA EQU 05h ;
it0_lo EQU r2 ;
it0_hi EQU r3 ;
it1 EQU r4 ;
index EQU r0 ;
chksum EQU r5 ;
temp EQU r6 ;
kount EQU r7 ;
DSR_ BIT p3.3 ;
DTR_ BIT p3.7 ;
RST BIT p1.7 ;
SHUTDN_ BIT p1.6 ;
SCK BIT p1.4 ;
MOSI BIT p1.3 ;
MISO BIT p1.2 ;
DSEG AT 20h
flags DATA 20h ;
LT0F BIT flags.0 ;
LT1F BIT flags.1 ;
ORG 30h
rec_type: DS 1 ;
laddr_io: DS 1 ;
laddr_hi: DS 1 ;
data_len: DS 1 ;
data_buff: DS 32 ;
ORG 60h ;
stack: DS 20h ;
PCON DATA 87h ;
CSEG
ORG 0000h ;
jmp init ;
ORG 0003h ;
reti
ORG 000Bh ;
jmp timer_int ;
ORG 0013h ;
reti
ORG 001Bh ;
reti ;
ORG 0023h ;
jmp serial_int ;
ORG 40h
attn_cmd: DB '+++',0 ;
reset_cmd: DB 'ATZ',CR,0 ;
;
init_cmd: DB 'AT&R1&A0',CR,0
hangup_cmd: DB 'ATH',CR,0
ORG 0080h
USING 0
init:
mov sp,#(stack-1)
call initialize
setb LT0F
setb LT1F
setb T1
setb ET0
call modem_init
clr ET0
jnc m1
clr EA
orl PCON,#1
M1:
jnb TI,$
clr TI
clr RI
setb ES
clr F0
idle:
orl PCON,#1
jnb F0,idle
clr ES
setb TI
clr F0
setb ET0
m2:
call init_longtimer()
m3:
call get_char
jc m8
cjne a,#'.',m8
call get_record
jnc m4
mov a,#NAK
call send_char
jmp m2
m4: cjne a,#0,m6
jb F0,m5
call shutdown
call erase_chip
call erase_pgm
setb F0
m5:
call write_record
call verify_record
jnc m7
mov a,#CAN
call send_char
jmp m9
m6:
call clear_pgm
clr F0
m7:
mov a,#ACK
call send_char
jmp m2
m8:
jnb LTOF,m3
m9:
call hang_up
clr ET0
jmp m1
serial_int:
clr F0
clr TI
jnb RI,si2
mov a,SUBF
jc si1
anl a,#7fh
cjne a,#CONNECT_1200,si
clr RI
mov a,#2
call delay_ms
jnb RI,si2
mov a,SBUF
mov c,p
jc si1
anl a,#7fh
cjne a,#(LOW CONNECT_9600),si1
setb F0
si1:
clr RI
si2:
reti
timer_int:
push psw
setb RS0
jb LT0F,ti2
cjne it0_lo,#0,ti1
dec it0_hi
ti1:
djnz it0_lo,ti2
cjne it0_hi,#0,ti2
setb LT0F
ti2:
jb LT1F,ti3
djnz It1,Ti3
setb LT1F
ti3:
pop psw
reti
initialize:
mov PCON,#0
mov IE,#0
mov SCON,#010000000b
mov TMOD,#001000001b
mov TH1,#BAUD_1200
mov TH1,#BAUD_9600
mov TCON,#01000000b
mov TL0,#0
mov TH0,#0
setb TR0
setb REN
setb EA
setb DTR_
setb SHUTDN_
setb MISO
setb MOSI
clr SCK
clr RST
ret
modem_init:
clr DTR_
mov a,#1
call delay_sec
mov dptr,#attn_cmd
call send_string
mov a,#1
call delay_sec
mov dptr,#reset_cmd
call modem_cmd
jc nn1
mov a,#1
call delay_sec
mov dptr,#init_cmd
call modem_cmd
jnc nn2
nn1:
setb DTR_
nn2:
ret
mov a,#1
call delay_sec
mov dptr,#attn_cmd
call send_string
mov a,#1
call delay_sec
mov dptr,#hangup_cmd
call modem_cmd
jnc hh
setb DTR_
hh:
ret
push b
mov b,#MTRIES
mm1:
call get_char
jc mm3
cjne a,#OK,mm2
call get_char
jc mm3
cjne a,#CR,mm2
clr c
jmp mm4
mm3:
djnz b, mm1
setb c
mm4:
pop b
ret
send_string:
push acc
push dpl
push dph
ss1:
clr a
movc a,@a+dptr
jz ss2
call send_char
inc dptr
jmp ss1
ss2:
pop dph
pop dpl
pop acc
ret
send_char:
jnb TI,$
clr TI
push acc
mov c, p
mov acc.7,c
mov SBUF,a
pop acc
ret
get_char:
jb RI,gc2
call init_longtimer1
gc1:
jb RI,gc2
jnb LT1F,gc1
setb c
jmp gc3
gc2:
mov a,SBUF
mov c,p
anl a,#7fh
clr RI
gc3:
ret
get_byte:
call get_char
jc gb
call ascii2bin
jc gb
swap a
mov b,a
call get_char
jc gb
call ascii2bin
jc gb
orl a,b
gb:
ret
ascii2bin:
mov temp,a
clr c
subb a,#('9'+1)
jnc a1
mov a,temp
clr c
subb a,#'0'
jmp a4
a1:
mov a,temp
subb a,#('F'+1)
cpl c
jc a4
a2:
mov a,temp
subb a,#'A'
jc a4
a3:
add a,#10
a4:
ret
get_record:
mov chksum,#0
call get_byte
jc rr4
mov data_len,a
clr c
subb a,#(16+1)
jnc rr4
call get_byte
jc rr4
call get_byte
mov laddr_hi,a
call get_byte
jc rr4
mov laddr_lo,a
call get_byte
jc rr4
mov rec_type,a
cjne a,#0,rr2
mov index,#data_buff
mov kount,data_len
rr1:
call get_byte
jc rr4
mov @index,a
add a,chksum
mov chksum,a
inc index
djnz kount,rr1
jmp rr3
rr2:
mov a,rec_type
cjne a,#1,rr4
rr3:
call get_byte
jc rr4
add a,chksum
add a,data_len
add a,laddr_lo
add a,laddr_hi
add a,rec_type
jnz rr4
call get_byte
jc rr4
call get_byte
jc rr4
mov a,rec_type
clr c
jmp rr5
rr4:
mov r2,laddr_io
mov r3,laddr_hi
mov a,r3
anl a,#00011111b
rl a
rl a
rl a
orl a,#WRTTE_CODE
mov temp,a
mov index,#data_buf
mov kount,data_len
pp1:
mov a,temp
call shout
mov a,r2
call shout
mov a,@index
call shout
mov a,#3
call delay_ms
mov a,r2
add a,#1
mov r2,a
jnc pp2
mov a,r3
add a,#1
mov r3,a
anl a,#00011111b
rl a
rl a
rl a
orl a,#WRITE_CODE
mov temp,a
pp2:
inc index
djnz kount,pp1
ret
mov r2,laddr_io
mov r3,laddr_hi
mov a,r3
anl a,#00011111b
rl a
rl a
rl a
orl a,#READ_CODE
mov temp,a
mov index,#data_buf
mov kount,data_len
W1:
mov a,temp
call shout
mov a,r2
call shout
call shin
mov b,@index
cjne a,b,w2
jmp w3
W2:
setb c
jmp w5
w3:
mov a,r2
add a,#1
mov r2,a
jnc w4
mov a,r3
add a,#1
mov r3,a
anl a,#00011111b
rl a
rl a
rl a
orl a,#READ_CODE
mov temp,a
W4:
inc index
djnz kount,w1
clr c
W5:
ret
push b
mov b,#8
x42:
rlc a
mov MOSI,c
nop
nop
setb SCK
nop
nop
nop
nop
clr SCK
djnz b,x42
pop b
ret
shin:
push b
mov b,#8
x43:
setb SCK
mov c,MISO
rlc a
nop
nop
clr SCK
nop
nop
djnz b,x43
pop b
ret
erase_chip:
setb RST
mov a,#ERASE_1
call shput
mov a,#ERASE_2
call shout
mov a,#DUMMY
call shout
mov a,#10
call delay_ms
clr RST
ret
shutdown:
clr SHUTDN_
mov a,#5
call delay_ms
setb SHUTDN_
ret
set_pgm:
setb RST
mov a,#1
call delay_ms
mov a,#ENABLE_1
call shout
mov a,#ENABLE-2
call shout
mov a,#DUMMY
call shout
ret
clear_pgm:
clr RST
ret
setb LT0F
setb RS0
mov it1_lo,#0c8h
mov it0_hi,#1
clr RS0
clr LT0F
ret
init_longtimer1:
setb LT1F
setb RS0
mov it1,#17
clr RS0
clr LT1F
ret
delay_ms:
push acc
push b
mov b,#0
dd:
djnz b,$
djnz b,$
djnz acc,dd
pop b
pop acc
ret
delay_sec:
push acc
push b
mov b,a
ddd:
mov a,#250
call delay_ms
call delay_ms
call delay_ms
call delay_ms
djnz b,ddd
pop b
pop acc
ret
END
anl a,#7fh
cjne a,#(HIGH CONNECT_9600),[p:4] |
|