单片机双机通信

目录

1、概述

2、分析(含代码)

(1)结果

(2)分析


1、概述

(1)熟悉单片机串口的应用。

(2)利用单片机串行口,实现两个单片机的串行通讯。其中一个作为发送方,另一侧为接收方。

(3)实现单片机与单片机通信,掌握单片机波特率的设置方法,且设置波特率为9600。

(4)掌握单片机串口与串口通信程序的设计方法。

2、分析(含代码)

(1)结果

甲机读入P1口的八个开关的状态数据后,通过串行口发送到乙机,乙机将接收到的甲机的八个开关的状态数据送入自身的P1口,由乙机P1口的8只发光二极管显示了甲机P1口的八个开关状态。

//甲机串行发送
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
 
void main()
{
  uchar temp=0;
  TMOD=0x20;
  TH1=0xfd;
  TL1=0xfd;
  SCON=0x40;
  PCON=0x00;
  TR1=1;
  P1=0xff;
  while(1)
  {
   temp=P1;
   SBUF=temp;
   while(TI==0);
   TI=0;
   }
}


//乙机串口接收
#include <reg51.h>	 

#define uchar unsigned char

#define uint unsigned int


void main()
{ 
   uchar temp=0;
   TMOD=0x20;
   TH1=0xfd;
   TL1=0xfd;
   SCON=0x50;
   PCON=0x00;
   TR1=1;
   while(1)
   {
     while(RI==0);
	 RI=0;
	 temp=SBUF;
	 P1=temp;
	}
}

(2)分析

    A、双机的REX和TXD相互连接,RXE为接收数据引脚,TXD为发送数据引脚,且把甲机设置为只能发送而不能接收的单工方式,乙机串口为方式1接收,通过乙机二极管就可以判断甲机P1口开关状态。

   B、甲机发送方式为查询方式,CPU将一个字节的数据写入串行口的发送缓冲器SBUF时,就启动一帧串行数据的发送,每发送一帧串行数据后,硬件使TI自动置1。

   C、乙机接收方式为中断方式,在串行口接收完一个串行数据帧,硬件自动将RI中断请求置1。

   D、单片机里面有两个SBUF,但名字都一样,一个只读,一个只写;两个SBUF就是靠读写指令区分,当发送SBUF里面有数据串口就会把数据串行送出,当串口接收数据时,就会把串行数据转换成并行数据存在SBUF里面。

 

  • 15
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值