CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  硬件/嵌入开发 >  单片机/工控

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

楼主fengxue291080(为分而来。。。。。。)2004-05-03 17: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  
  问题点数: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

相关问题

  • *** 单片机(AT89C51)与PC串口通讯 ****
  • 有多串口的单片机没有?
  • 寻找3个串口的单片机
  • 寻找3个串口的单片机
  • pc→单片机的串口通讯,使用spcomm控件,发送时好时坏,怀疑是pc与单片机不同步,应该怎么调?
  • 关于单片机串口通信的问题
  • 串口通讯—RE232,通过专线MODEM与单片机通讯
  • 请推荐一款双串口,廉价的单片机!
  • 单片机串口通信,收不到第二个数据
  • 单片机与pc串口通讯问题?

关键词

  • 中断
  • ea
  • ri
  • sbuf
  • ajmp
  • setb
  • mov
  • clr
  • 错误
  • serial

得分解答快速导航

  • 帖主:fengxue291080
  • nxy825715
  • ppx22
  • romyks
  • skyge
  • wxf0204
  • ppcust
  • cjyun
  • romyks

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo