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

[复制链接]
5436|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灯接法要有图才能明白低电平亮还是高电平亮。
userchen 发表于 2013-3-30 22:25 来自手机 | 显示全部楼层
建议楼主在ri里面改变p0口的状态。这样可以知道你的程序运行情况。可以分辨led亮是因为ri置1还是因为程序未运行。
另外建议把问题描述清楚。
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;
                    }
           
                }
}
再试试
 楼主| 凌霄 发表于 2013-3-31 22:18 | 显示全部楼层
xuyaqi 发表于 2013-3-30 22:07
8个LED灯接法要有图才能明白低电平亮还是高电平亮。

我用的是开发板,LED灯是低电平亮,请帮忙看看问题,谢谢
 楼主| 凌霄 发表于 2013-3-31 22:18 | 显示全部楼层
xsw2010 发表于 2013-3-31 18:52
include

void main()

用你修改的程序,问题依旧是这样
xuyaqi 发表于 2013-3-31 22:51 | 显示全部楼层
上图便于大家分析
xsw2010 发表于 2013-4-3 16:41 | 显示全部楼层
建议你看看郭天祥的《十天学会51单片机》第7课里老师调试的时候有类似的现象,看看他是怎么解决的。
xiaoqigai2 发表于 2013-4-3 21:57 | 显示全部楼层
试一试
SM0=1;
SM1=0;
xiaoqigai2 发表于 2013-4-3 22:08 | 显示全部楼层
        SM0=0;
        SM1=1;是8位
        SM0=1;
        SM1=0;是9位
kangzp 发表于 2013-4-4 22:39 | 显示全部楼层
总中断EA没开,可以进行串口中断吗!
kangzp 发表于 2013-4-4 22:42 | 显示全部楼层
你这个P1口点亮是正常的。造成的原因可能是在下载过程造成RI触发。你下载完后,把单片机重新上电看看P1口对于的二极管会不会点亮。
小小一书生 发表于 2013-8-15 22:10 | 显示全部楼层
在中断相关初始化时加(ES=1;EA=1;),一个是串口中断,一个是总中断
joyme 发表于 2013-8-16 09:31 | 显示全部楼层
应该用收到指定字符来控制,启动时电平变化或中途干扰都有可能是RI置位,一旦置位,灯就会亮(也没有灭灯的语句)
限量_个性。 发表于 2013-8-16 09:35 | 显示全部楼层
总中断没有开吧 。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部