你是否需要这样的程序吗
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
ACALL DELAY
JMP BEGIN1
SIO_INT: ;串口中断地址入口
JB TI,QUIT ;如发送产生中断跳出中断处理程序
CLR EA
CLR ES
CLR RI
MOV A,SBUF
JZ QUIT_ON ;如接收数据为"0"则退出中断程序
MOV SBUF,A ;将接收的数据再发送回去
MOV R3,#30
WAIT2:
JNB TI,WAIT2 ;等待发送完成
CJNE A,#0FFH,QUIT_ON
BEGIN:
CLR TI
MOV A,#0AFH ;收到FF后发送AF
MOV SBUF,A
WAIT3:
JNB TI,WAIT3
CLR TI
ACALL DELAY
QUIT_ON:
SETB EA
SETB ES
QUIT:
RETI
DELAY:
MOV R1,#0
DL2:
MOV R2,#0
DL1:
DJNZ R2,DL1
DJNZ R1,DL2
RET
END
你是否需要这样的程序吗?根据你的描述及所写的程序很难看清你想要完成的动作。
如需帮助可以将要求发给我。
Kallor168@yahoo.com.cn
发表时间:2006年8月23日10:42:13