看有无高手能解决...

[复制链接]
2883|3
 楼主| tigar03 发表于 2007-8-14 18:08 | 显示全部楼层 |阅读模式
双51单片机直接对接P3.0,3.1进行串行通信...从机始终不能收..程序如下<br />void&nbsp;INIT_SERIAL()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;SCON=0xD0;&nbsp;&nbsp;&nbsp;&nbsp;//工作方式3,9位数据位,波特率9600bit/s,允许接收<br />&nbsp;&nbsp;&nbsp;&nbsp;TMOD&=0x0F;//定时器T1使用工作方式2<br />&nbsp;&nbsp;&nbsp;&nbsp;TMOD|=0x20;<br />&nbsp;&nbsp;&nbsp;&nbsp;PCON=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;TL1=0x0FD;<br />&nbsp;&nbsp;&nbsp;&nbsp;TH1=0x0FD;<br />&nbsp;&nbsp;&nbsp;&nbsp;TR1=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;ET1=0;&nbsp;&nbsp;//定时器1中断禁止<br />&nbsp;&nbsp;&nbsp;&nbsp;SM2=1;&nbsp;//只接收地址信号<br />&nbsp;&nbsp;&nbsp;&nbsp;ES=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;PS=1;<br />}<br />从机<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(RI!=1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RI=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa=SBUF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display_dat(aa);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Delay1ms(1000,123);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SBUF=aa;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(TI!=1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TI=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />主机<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TI=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TB8=1;&nbsp;&nbsp;&nbsp;&nbsp;//发地址信号<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SBUF=addr;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//发从机地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!TI);TI=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(RI!=1);&nbsp;&nbsp;(程序总停在这行...)<br /><br />为什么?高手们请问。..
一级菜鸟 发表于 2007-8-14 19:36 | 显示全部楼层

没贴全,SCON等配置要检查

  
icecut 发表于 2007-8-14 19:37 | 显示全部楼层

这样吧。

while(RI!=1);&nbsp;&nbsp;(程序总停在这行...)<br />你用仿真还是调试知道的?<br /><br />把线接到电脑上,看发送是否成功<br />然后用电脑发51看是否能接受,然后再对接实验
 楼主| tigar03 发表于 2007-8-14 21:30 | 显示全部楼层

问题解决拉

问题解决...原来我SM2位置为1了,&nbsp;所以RI一直不置位&nbsp;谢谢&quot;一级菜鸟&quot;,谢谢icecut&nbsp;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

4

帖子

1

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