真找不出哪里有问题
贴部分程序,芯片:P89LPC935,设置
MOV SSTAT,#00H ;双缓冲禁止,中断禁止,采用查询方式发送和接收
MOV SCON,#0F0H ;串口模式3,接收使能
;通讯中断程序
SSIO: PUSH ACC
PUSH PSW
JB TI,RETURN
SETB RS0 ;选择工作寄存器1
CLR RI
MOV A,SBUF
JZ SSN1 ;广播地址,从机都接收
XRL A,45H ;是否为本机地
JNZ RETURN ;不是本机地址返回
SSN1: CLR SM2 ;允许数据接收中断
NOP
CPL P2.1
NOP
JNB RI,$
CLR RI
MOV 51H,SBUF ;存功能码
MOV A,51H
CJNE A,#03H,SSN2
JMP TX
SSN2: CJNE A,#06H,SSN3
JMP RXSIDA
SSN3: CJNE A,#05H,FUN_E
JMP ONOFF
FUN_E: nop
JMP RETURN ;其它为非**能码
CRC_E: nop ;CRC出错处理
RETURN: SETB SM2
CLR P0.6
CLR RS0 ;返回工作寄存器0
CLR TI
CLR RI
POP PSW
POP ACC
RETI
TX: ........
JMP RETURN
RESIDA: ..............
JMP RETURN
ONOF: ........
JMP RETURN
|