stc单片机串口调试的小程序,但是在串口调试助手里,显示接收不到数据,希望大虾们帮忙解决下,下面是程序

ORG 0000H
LJMP MAIN
ORG 1000H
MAIN: MOV P1,#0FFH
MOV P2,#0FFH
MOV TMOD,#20H ;设置波特率为9600,串口发送方式为1
MOV TH1,#0FBH
MOV TL1,#0FBH
MOV PCON,#00H
MOV SCON,#58H
SETB TR1
SETB EA ;开中断
SETB ES
SEND: MOV A,#0FFH
MOV SBUF,A
JBC TI,SEND
END

你先看看串口线有没问题:

将串口的2、3脚两根针短接,用键盘在串口调试输入字符,如果串口调试接收区能够显示输入的字符,说明串口工作正常
等我再看看程序

我觉得这儿有问题 JBC TI,SEND
JBC在T1为0的时候,会顺序执行,然后就end了 ,这里我觉得应该改为等待发送结束的指令

JNB T1, $追问

我试试···

追答

完事记得采纳我

追问

还是不对,并且我把单片机上的p3.0和p3.1短接后,发现串口调试助手的发送的数据和收到的数据部一样,而且我发送的是一个数据,为何串口调试助手一直在接收单片发来的数据(数据很多)!并且,当我把板子上的电源关掉后,串口线不短接,串口调试助手发送数据,仍然可以收到数据,电源打开就不行了!求解!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-06
大哥,啥年代啦,还用汇编。我汇编看不太懂,你调用send了吗。你如果要C语言的,我能给你写个
第2个回答  2011-08-08
用十六进制发送追问

这发的就是十六进制呀?