为什么我的单片机串口调不通??请指教!
各位高手:
我的代码如下:
address data 76h
org 0000h
ajmp main
org 0023h
ajmp serial
org 0100h
main:
mov sp,#60h
mov tmod,#20h
mov th1,#0fdh
mov tl1,#0fdh ;9600
mov scon,#50h ;方式1
mov pcon,#00h ;smod=0
setb ea
setb es
clr et1
setb tr1
mov r0,#40h
mov r1,#10
here: ajmp here
;========中断=======
serial: clr ea
clr ri
push acc
push psw
mov a,sbuf
xrl a,#address
;jnz comend
repeat: mov sbuf,@r0
jnb ri,$
clr ri
inc r0
djnz r1,repeat
comend: mov r0,#40h
mov r1,#10h
setb ea
pop psw
pop acc
reti
end
接口是MAX232PE
请各位指教
QQ:58917153
问题点数:100、回复次数:8Top
1 楼nxy825715(DSP_MCU)回复于 2004-07-19 15:41:24 得分 10
兄弟:你在serial interrupt 中,进入中断时已经clr ri 后面又jnb ri, $ 这样肯定会陷入死循环的了拉Top
2 楼ppx22(阿三)回复于 2004-07-20 13:30:50 得分 10
发送数据后怎么检测起RI位来了?
实际上很多错误都是低级错误,而这些往往最难发觉Top
3 楼romyks(小强)回复于 2004-07-20 14:31:43 得分 10
错误太多了.这个程序也不知道要做什么?怎么能通?Top
4 楼skyge(挨踢人生)回复于 2004-07-20 19:02:57 得分 10
同意楼上几位高手说法:)
repeat: mov sbuf,@r0
这条好象也有问题,发送缓冲区的能直接从R0里读数据么?
我觉得应该通过累加器A
mov a,@r0
mov sbuf,aTop
5 楼wxf0204(网泥www.xmlenz.cn)回复于 2004-07-23 14:53:31 得分 10
我还是建议你从头再来吧!Top
6 楼ppcust(@小猪&毛毛虫@)回复于 2004-08-01 13:50:07 得分 20
逻辑不对
用调试软件看看
把中断改为查询也行Top
7 楼cjyun(疯云)回复于 2004-08-01 23:53:43 得分 10
一步一步调试,慢慢编,错误太多就不好弄了Top
8 楼romyks(小强)回复于 2004-08-02 08:49:13 得分 20
看看你的MAX232有没有问题,测一测它的传输电平是不是正常。这个芯片偶尔坏一下也是正常的。Top




