打印

看有无高手能解决...

[复制链接]
2166|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tigar03|  楼主 | 2007-8-14 18:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
双51单片机直接对接P3.0,3.1进行串行通信...从机始终不能收..程序如下
void INIT_SERIAL()
{
    SCON=0xD0;    //工作方式3,9位数据位,波特率9600bit/s,允许接收
    TMOD&=0x0F;//定时器T1使用工作方式2
    TMOD|=0x20;
    PCON=0x00;
    TL1=0x0FD;
    TH1=0x0FD;
    TR1=1;
    ET1=0;  //定时器1中断禁止
    SM2=1; //只接收地址信号
    ES=1;
    PS=1;
}
从机
    while(1)
    {        
        while(RI!=1);
        RI=0;
        aa=SBUF;
        Display_dat(aa);
        Delay1ms(1000,123);
        aa++;
        SBUF=aa;
        while(TI!=1);
        TI=0;
    }
    
主机
        TI=0;
        TB8=1;    //发地址信号
        SBUF=addr;        //发从机地址
        while(!TI);TI=0;
            while(RI!=1);  (程序总停在这行...)

为什么?高手们请问。..

相关帖子

沙发
一级菜鸟| | 2007-8-14 19:36 | 只看该作者

没贴全,SCON等配置要检查

使用特权

评论回复
板凳
icecut| | 2007-8-14 19:37 | 只看该作者

这样吧。

while(RI!=1);  (程序总停在这行...)
你用仿真还是调试知道的?

把线接到电脑上,看发送是否成功
然后用电脑发51看是否能接受,然后再对接实验

使用特权

评论回复
地板
tigar03|  楼主 | 2007-8-14 21:30 | 只看该作者

问题解决拉

问题解决...原来我SM2位置为1了, 所以RI一直不置位 谢谢"一级菜鸟",谢谢icecut 

使用特权

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

本版积分规则

3

主题

4

帖子

1

粉丝