为什么我的单片机串口调不通??请指教!

fengxue291080 2004-05-03 05:29:15
各位高手:
我的代码如下:
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
...全文
222 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
romyks 2004-08-02
  • 打赏
  • 举报
回复
看看你的MAX232有没有问题,测一测它的传输电平是不是正常。这个芯片偶尔坏一下也是正常的。
cjyun 2004-08-01
  • 打赏
  • 举报
回复
一步一步调试,慢慢编,错误太多就不好弄了
ppcust 2004-08-01
  • 打赏
  • 举报
回复
逻辑不对

用调试软件看看

把中断改为查询也行
wxf0204 2004-07-23
  • 打赏
  • 举报
回复
我还是建议你从头再来吧!
skyge 2004-07-20
  • 打赏
  • 举报
回复
同意楼上几位高手说法:)

repeat: mov sbuf,@r0
这条好象也有问题,发送缓冲区的能直接从R0里读数据么?
我觉得应该通过累加器A
mov a,@r0
mov sbuf,a
romyks 2004-07-20
  • 打赏
  • 举报
回复
错误太多了.这个程序也不知道要做什么?怎么能通?
ppx22 2004-07-20
  • 打赏
  • 举报
回复
发送数据后怎么检测起RI位来了?
实际上很多错误都是低级错误,而这些往往最难发觉
nxy825715 2004-07-19
  • 打赏
  • 举报
回复
兄弟:你在serial interrupt 中,进入中断时已经clr ri 后面又jnb ri, $ 这样肯定会陷入死循环的了拉

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧