打印

请帮忙看一下串口通讯的问题

[复制链接]
4675|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
凌霄|  楼主 | 2013-3-30 21:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
include<reg52.h>

void main()
{

        TMOD=0x20;//设置定时器1为工作方式2
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
        REN=1;
        SM0=0;
        SM1=1;
    RI=0;
        while(1)
                {
                   if(RI==1)
                        {
                        RI=0;
                        P0=0x00;
                    }
           
                }
}
没有用串口调试助手发送,8个LED灯就一直在亮,复位也是这样,请问为什么?

相关帖子

沙发
xuyaqi| | 2013-3-30 21:29 | 只看该作者
没有情况说明,弄不明白你的问题,8个LED灯怎么连得,串口助手发什么。

使用特权

评论回复
板凳
凌霄|  楼主 | 2013-3-30 21:51 | 只看该作者
我用的是串口的查询法,如果单片机接收到数据,RI会被硬件自动置1,用if查询检测,如果检测到RI=1,我让P0=0x00.

使用特权

评论回复
地板
xuyaqi| | 2013-3-30 22:07 | 只看该作者
8个LED灯接法要有图才能明白低电平亮还是高电平亮。

使用特权

评论回复
5
userchen| | 2013-3-30 22:25 | 只看该作者
建议楼主在ri里面改变p0口的状态。这样可以知道你的程序运行情况。可以分辨led亮是因为ri置1还是因为程序未运行。
另外建议把问题描述清楚。

使用特权

评论回复
6
xsw2010| | 2013-3-31 18:52 | 只看该作者

include<reg52.h>

void main()
{

        TMOD=0x20;//设置定时器1为工作方式2
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
        REN=1;
        SM0=0;
        SM1=1;
        RI=0;
        ES=1;
        while(1)
                {
                   if(RI==1)
                        {
                        ES=0;
                        RI=0;
                        P0=0x00;
                        ES=1;
                    }
           
                }
}
再试试

使用特权

评论回复
7
凌霄|  楼主 | 2013-3-31 22:18 | 只看该作者
xuyaqi 发表于 2013-3-30 22:07
8个LED灯接法要有图才能明白低电平亮还是高电平亮。

我用的是开发板,LED灯是低电平亮,请帮忙看看问题,谢谢

使用特权

评论回复
8
凌霄|  楼主 | 2013-3-31 22:18 | 只看该作者
xsw2010 发表于 2013-3-31 18:52
include

void main()

用你修改的程序,问题依旧是这样

使用特权

评论回复
9
xuyaqi| | 2013-3-31 22:51 | 只看该作者
上图便于大家分析

使用特权

评论回复
10
xsw2010| | 2013-4-3 16:41 | 只看该作者
建议你看看郭天祥的《十天学会51单片机》第7课里老师调试的时候有类似的现象,看看他是怎么解决的。

使用特权

评论回复
11
xiaoqigai2| | 2013-4-3 21:57 | 只看该作者
试一试
SM0=1;
SM1=0;

使用特权

评论回复
12
xiaoqigai2| | 2013-4-3 22:08 | 只看该作者
        SM0=0;
        SM1=1;是8位
        SM0=1;
        SM1=0;是9位

使用特权

评论回复
13
kangzp| | 2013-4-4 22:39 | 只看该作者
总中断EA没开,可以进行串口中断吗!

使用特权

评论回复
14
kangzp| | 2013-4-4 22:42 | 只看该作者
你这个P1口点亮是正常的。造成的原因可能是在下载过程造成RI触发。你下载完后,把单片机重新上电看看P1口对于的二极管会不会点亮。

使用特权

评论回复
15
小小一书生| | 2013-8-15 22:10 | 只看该作者
在中断相关初始化时加(ES=1;EA=1;),一个是串口中断,一个是总中断

使用特权

评论回复
16
joyme| | 2013-8-16 09:31 | 只看该作者
应该用收到指定字符来控制,启动时电平变化或中途干扰都有可能是RI置位,一旦置位,灯就会亮(也没有灭灯的语句)

使用特权

评论回复
17
限量_个性。| | 2013-8-16 09:35 | 只看该作者
总中断没有开吧 。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

1

粉丝