世纪电源网社区logo
社区
Datasheet
标题
返回顶部
未解决

两个单片机RS232通讯问题

[复制链接]
查看: 311 |回复: 6
1
chaitao
  • 积分:571
  • |
  • 主题:71
  • |
  • 帖子:79
积分:571
LV6
高级工程师
  • 2023-3-31 16:16:39
10问答币
初学PROTUES,做了个两个单片机通讯的模拟,有些问题,请大帮帮忙,谢谢啊!

//发送程序,通过SBUF口发送 0X56
#include <reg51.h>
main()
{
TMOD= 0x20;
SM0=0;
SM1=1;
REN=1;
PCON=0;
TH1 =0XFD;
TL1 =0XFD;
TR1=1;
SBUF=0X56;
}

//接受程序,P1口接受SBUF数据
#include <reg51.h>
main()
{
TMOD= 0x20;
SM0=0;
SM1=1;
REN=1;
PCON=0;
TH1 =0XFD;
TL1 =0XFD;
TR1=1;
while(1)
{
P1=SBUF;while(!RI);RI=0;
}
}

问题1: 这个程序有没有什么错误啊?为什么接受单片机P1口的值一直在晃动。
问题2: 我看书上写发送还要加一条程序,就在SBUF赋值后面, P1=SBUF;while(!TI);TI=0;但如果加上这条程序就无法显示了。
问题3:SBUF的数据加上,是不是就一直存在了?需要while(1)循环码?
问题4:如果做一个电脑与单片机通讯,应该如何改进呢?图片找不到了,记得就是两个单片机P3.0/RXD与P3.1/TXD相互连接,波特率为9600.晶振11.0592)
z443233785
  • 积分:5343
  • |
  • 主题:117
  • |
  • 帖子:1003
积分:5343
LV8
副总工程师
  • 2023-4-2 19:27:11
  • 倒数6
 
先理解两个知识点(无论是串口RS232,RS485与RS422都是基于串口通信协议(UART)进行传输的,而之所以出现这些通信接口,就是为了解决不同场景下遇到的通信问题)
elefan
  • elefan
  • 离线
  • LV4
  • 初级工程师
  • 积分:379
  • |
  • 主题:6
  • |
  • 帖子:55
积分:379
LV4
初级工程师
  • 2023-4-4 14:31:00
  • 倒数5
 
单片机 P3.0/RXD与P3.1/TXD 直接 相连 的话
A机 RXD 连B机 TXD
A机 TXD 连B机 RXD
Bnkuer
  • Bnkuer
  • 离线
  • LV4
  • 初级工程师
  • 积分:316
  • |
  • 主题:6
  • |
  • 帖子:46
积分:316
LV4
初级工程师
  • 2023-4-6 13:33:30
  • 倒数4
 
首先要分清是硬件问题还是软件的问题,两个单片机物理上相距多远,直接用TTL电平连接的两个串口,还是变成了RS232电平
Itersult
  • 积分:408
  • |
  • 主题:21
  • |
  • 帖子:50
积分:408
LV6
高级工程师
  • 2023-4-10 15:35:07
  • 倒数3
 
发送程序确实需要加上while(1);但原因不是你所的那样,是因为你不加while(1);程序可能从开始又执行起来,这也是导致问题1的可能原因
第九区
  • 积分:530
  • |
  • 主题:35
  • |
  • 帖子:60
积分:530
LV6
高级工程师
  • 2023-4-12 14:20:27
  • 倒数2
 
程序上不需要太大改动,主要是硬件上面,需要加232电平转换电路,芯片是MAX232,连接串口DB9的时候用2.3.5脚,5脚是地,接单片机地;2.3脚是发送接收(具体顺序我忘了,你查一查吧),接单片机的发送接收(交叉连接);或者你看一看MAX232的芯片资料,上面有电路图,你就懂了
Htrper
  • Htrper
  • 离线
  • LV6
  • 高级工程师
  • 积分:527
  • |
  • 主题:17
  • |
  • 帖子:79
积分:527
LV6
高级工程师
最新回复
  • 2023-4-13 15:45:34
  • 倒数1
 
你要想发送多个数据,就必须软件TI清零
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦8层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)82437996 /(138 2356 2357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报 | 网站举报

Copyright 2008-2024 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348号-2   津公网安备 12010402000296号