帮帮忙看下这个串口程序出什么问题了……
ORG 0000H
JMP START
ORG 23H ;串口中断入口地址
JMP SIO_INT
ORG 0100H
START: CLR EA ;关所有中断
T1_SET: MOV TMOD,#20H ;设定T1定时器,方式2定时
MOV TL1,#0D0H
MOV TH1,#0D0H
SIO_SET: MOV PCON,#80H ;波特率加倍 1200
MOV SCON,#0D0H ;设定串口工作在多机模式3,允许接收
SETB TR1 ;启动定时器1
SETB ES ;------------
SETB EA ;串口中断允许
BEGIN1: MOV A,#0BFH ;没有中断是发送BF
MOV SBUF,A
WAIT1: JNB TI,WAIT1
CLR TI
CALL DELAY
JMP BEGIN1
SIO_INT: CLR EA ;串口中断地址入口
CLR ES
CLR RI
MOV A,SBUF
CJNE A,#0H,QUIT
MOV SBUF,A
MOV R3,#30
CALL DELAY
CJNE A,#0FFH,QUIT
BEGIN: MOV A,#0AFH ;收到FF后发送AF
MOV SBUF,A
WAIT3: JNB TI,WAIT3
CLR TI
CALL DELAY
JMP BEGIN
DELAY:
MOV R1,#0
DL2: MOV R2,#0
DL1: DJNZ R2,DL1
DJNZ R1,DL2
RET
QUIT: RETI
END
不知道怎么回事,程序一运行就进入中断了,串口助手显示收到一个00触发了中断,而我真正给它发数据请求中断时它又不理,怎么回事啊??
发表时间:2006年8月22日19:28:32