基于51单片机多机串口通信仿真( proteus仿真+程序+设计报告+讲解视频)

基于51单片机多机串口通信仿真( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0074

1. 主要功能:

基于51单片机的多机串行通信仿真设计

1.实现主单片机分别与3个从单片机的串行通信;

2.通过分别按下按键从机1,从机2,从机3来选择主机与对应的从机进行串行通信;

3.当从机黄色LED点亮,表示主机与相应的从机连接成功;该从机的8个绿色LED闪亮,表示主机与从机在进行串行数据通信;

4.如果断开按键,则主机与相应从机的串行通信中断。

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

以下为本设计资料展示图:

2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解。

基于51单片机多机串口通信仿真proteus仿真+程序+设计报告+讲解视频

3. 仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。
图片演示

按下主机的从机1按键,从机1接收到数据灯光闪烁,其他从机灯光熄灭。

img

按下主机的从机2按键,从机2接收到数据灯光闪烁,其他从机灯光熄灭。

img

按下主机的从机3按键,从机3接收到数据灯光闪烁,其他从机灯光熄灭。

img

4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。

主机代码:

#include <reg51.h>
#include <math.h>
sbit switch1=P0^0;
sbit switch2=P0^1;
sbit switch3=P0^2;

void delay_ms(unsigned int i)
{
unsigned char j;
for(;i>0;i--)			
	for(j=0;j<125;j++)		
	;
}

void main()
{
	EA=1;		//总中断打开
	TMOD=0x20;	//定时器1 工作方式2 自动装载 用于串口设置波特率
	TL1=0xfd;	
	TH1=0xfd;	//波特率设为9600
	PCON=0x00;	//不加倍  0x80 为加倍
	SCON=0xd0;	//SM2设为0, TB8设为0
	TR1=1;		//定时器1 打开
	ES=1;
	SBUF=0xff;
	while(TI==0);
	TI=0;
 	while(1)
	{	
		delay_ms(100);
		if(switch1==1)
		{
			TB8=1;//将发送寄存器的第九数据位(TB8)设置为1。这在9位UART通信模式中使用。
			SBUF=0x01;//将串行缓冲寄存器(SBUF)加载值0x01(二进制00000001),一旦开始传输,这个字节将作为串行数据发出。
			while(TI==0);
			//在循环中等待,直至发送中断标志(TI)置位。当SBUF中的整个数据字节被完全发送出去后,硬件会自动置位TI。
			TI=0;//清除发送中断标志(TI),准备下一次的数据发送。
			TB8=0;//重置第九数据位(TB8)为0,以便发送下一个字节。
			SBUF=0x00;//向SBUF加载下一个数据字节,在本例中是0x00(二进制00000000)。
			while(TI==0);//再次等待前一个字节的传输完成,并清除TI标志以准备后续的传输操作。
			TI=0;
			//led=1;

		}
		if(switch2==1)
		{
			TB8=1;//将发送寄存器的第九数据位(TB8)设置为1。这在9位UART通信模式中使用。
			SBUF=0x02;//将串行缓冲寄存器(SBUF)加载值0x02(二进制00000010),一旦开始传输,这个字节将作为串行数据发出。
			while(TI==0);
			//在循环中等待,直至发送中断标志(TI)置位。当SBUF中的整个数据字节被完全发送出去后,硬件会自动置位TI。
			TI=0;//清除发送中断标志(TI),准备下一次的数据发送。
			TB8=0;//重置第九数据位(TB8)为0,以便发送下一个字节。
			SBUF=0x00;//向SBUF加载下一个数据字节,在本例中是0x00(二进制00000000)。
			while(TI==0);//再次等待前一个字节的传输完成,并清除TI标志以准备后续的传输操作。
			TI=0;
			//led=1;

		}
		if(switch3==1)
		{
			TB8=1;//将发送寄存器的第九数据位(TB8)设置为1。这在9位UART通信模式中使用。
			SBUF=0x03;//将串行缓冲寄存器(SBUF)加载值0x03(二进制00000011),一旦开始传输,这个字节将作为串行数据发出。
			while(TI==0);
			//在循环中等待,直至发送中断标志(TI)置位。当SBUF中的整个数据字节被完全发送出去后,硬件会自动置位TI。
			TI=0;//清除发送中断标志(TI),准备下一次的数据发送。
			TB8=0;//重置第九数据位(TB8)为0,以便发送下一个字节。
			SBUF=0x00;//向SBUF加载下一个数据字节,在本例中是0x00(二进制00000000)。
			while(TI==0);//再次等待前一个字节的传输完成,并清除TI标志以准备后续的传输操作。
			TI=0;
			//led=1;

		}
	}
}

5. 设计报告

5229字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

img

在现代工业生产线上,单片机被广泛应用到各种控制器中,通过精确调控设备运行参数,确保生产线高效稳定运作;在智能家居场景中,单片机集成于家电产品内部,使得家居设备能够实现远程操控、联动协同等功能,极大提升了生活便利性与舒适度;而在物联网领域,无数搭载单片机的智能终端形成庞大的信息交互网络,实现了对环境状态、设备性能等海量数据的实时采集与传输。

多机之间的串行通信则是连接这些智能化单元的核心纽带之一,它为分散的单片机设备提供了高效便捷的信息交换途径。这种通信方式允许多个设备通过一条共享的数据通道进行有序的数据传递,有效节约了物理接口资源,简化了系统布线,降低了设计复杂度,并且保证了数据传输的可靠性。

6. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、程序

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

img

资料下载链接:

https://docs.qq.com/doc/DS2REbFJkWlZvc0dR

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-07 18:50:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-07 18:50:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-07 18:50:02       87 阅读
  4. Python语言-面向对象

    2024-04-07 18:50:02       96 阅读

热门阅读

  1. Docker

    Docker

    2024-04-07 18:50:02      26 阅读
  2. C 练习实例98-汉诺塔(完结撒花)

    2024-04-07 18:50:02       34 阅读
  3. MySQL中innodb_status_output_locks含义和用法

    2024-04-07 18:50:02       31 阅读
  4. 机器学习模型调优简介

    2024-04-07 18:50:02       26 阅读
  5. 一些有用的Enterprise UX Design 地址

    2024-04-07 18:50:02       40 阅读
  6. spring rest

    2024-04-07 18:50:02       36 阅读
  7. Redis之缓存穿透、击穿、雪崩

    2024-04-07 18:50:02       32 阅读
  8. 程序员35岁会失业吗?

    2024-04-07 18:50:02       46 阅读
  9. 4款免费可用的数据集成平台亮点

    2024-04-07 18:50:02       53 阅读
  10. Redis之缓存穿透、击穿、雪崩

    2024-04-07 18:50:02       43 阅读
  11. 在CentOS 7上安装MySQL 8.0的详细步骤讲解

    2024-04-07 18:50:02       45 阅读