双机通信实验报告.doc

合集下载

双机通信实验报告

双机通信实验报告

双机通信实验报告双机通信实验报告引言:双机通信是一种重要的通信方式,它可以实现两台计算机之间的数据传输和信息交流。

在现代信息技术的发展下,双机通信在各个领域得到了广泛的应用,如互联网、电子商务、远程教育等。

本实验旨在通过搭建一个简单的双机通信系统,探究其原理和应用。

一、实验设备与步骤1. 实验设备:本次实验使用了两台计算机,一台作为发送端,另一台作为接收端。

另外,还需要一个网络连接设备,如交换机或路由器。

2. 实验步骤:首先,将两台计算机通过网络连接设备连接起来,确保网络连接正常。

然后,在发送端计算机上打开通信软件,并进行相应的设置。

接下来,在接收端计算机上也打开相同的通信软件,并进行设置。

最后,通过发送端计算机向接收端计算机发送消息,观察消息是否能够成功传输。

二、实验原理1. 双机通信的基本原理:双机通信是通过计算机网络实现的。

计算机网络由多台计算机和网络连接设备组成,通过网络连接设备将这些计算机连接在一起。

在双机通信中,发送端计算机将要传输的数据打包成数据包,并通过网络连接设备发送给接收端计算机。

接收端计算机接收到数据包后,将其解包并还原成原始数据。

这样,发送端计算机和接收端计算机之间就实现了数据的传输和通信。

2. 实验中使用的通信软件:在本次实验中,我们使用了一款常见的通信软件来实现双机通信。

该软件提供了用户界面,可以方便地设置通信参数和进行通信操作。

通过该软件,我们可以设置发送端和接收端的IP地址、端口号等参数,以及发送和接收消息的内容。

三、实验结果与分析在实验中,我们成功地搭建了一个双机通信系统,并进行了通信测试。

通过发送端计算机向接收端计算机发送消息,我们观察到消息能够成功传输,并在接收端计算机上显示出来。

这表明我们的双机通信系统正常工作。

双机通信的应用非常广泛。

在互联网上,双机通信被广泛应用于电子邮件、即时通讯等服务中。

通过双机通信,人们可以迅速方便地与他人进行沟通和交流。

在电子商务领域,双机通信也被用于在线支付、订单处理等环节,保证了交易的安全和顺利进行。

实验六 双机通信

实验六   双机通信
洛阳理工学院实验报告
系别
计算机系
班级
B110507
学号
姓名
课程名称
பைடு நூலகம்单片机原理及其应用
实验日期
2013-10-28
实验名称
双机通信
成绩
实验目的:
掌握串行口通信工作原理。
实验原理:
实验电路原理图如图1所示,图中1#机的发送线与2#机的接收线相连,1#机的接收线与2#机的发送线相连,共阴极BCD数码管BCD_LED1和BCD_LED2分别接各机的P2口,两机共地(默认),晶振为11.0592MHz,波特率为2400bps,串口方式1。(实验电路所用元件见表1)
(3)在uVision3中进行C51串行通信程序的编写、编译及调试;
(4)启动ISIS的仿真运行,并进行联机调试。
仿真结果:
图3仿真结果
1#机发送程序:(查询法)
#include <reg51.h>
#define uchar unsigned char
void delay(unsigned int time) //定义延时函数
if(RI==1)
{
RI=0; //若接收完成,清RI标志位
receiv=SBUF; //取得接收值
SBUF=receiv; //结果返回1#机
P2=receiv; //显示接收值
}
}
实验小结:
经过这次的上机实验,我掌握了串行口通信的工作原理,熟悉C51单片机的编程与调试方法,掌握Proteus ISIS模块的原理图绘图方法及及单片机系统仿真运行方法。同时在实现串行通信功能时提高了程序的编写及调试能力,在1#机中用了查询RI和TI标志位的软件查询结果完成发送程序功能,在2#机中根据RI和TI的中断请求,在中断函数中完成接收程序功能,两种方法结合实现实验要求程序功能,灵活的应用课堂上学到的理论知识。

双机通讯实验报告

双机通讯实验报告

双机通讯实验报告双机通信实验报告一、实验目的通过本次实验,目的在于掌握双机通信的基本原理和实现方法,并学习使用标准通信协议。

二、实验原理1.双机通信的基本原理双机通信是指两台独立工作的计算机之间进行数据传输和交流的过程。

双机通信可以通过物理连接(如串口、并口等)或网络连接(如以太网、局域网等)进行。

2.串口通信原理串口通信是最常见的双机通信方式之一、串口通信是指通过串行接口进行数据传输。

在串口通信中,数据位、波特率、校验位等参数需要进行设置。

通过使用串口线将两台计算机的串口连接,可以实现数据的互传和通信。

三、实验步骤1.准备工作(1)在两台计算机上安装串口驱动程序。

(2)将两台计算机通过串口线连接。

2.设置参数(1)打开计算机的设备管理器,找到串口的端口号。

(2)在串口通信软件上,根据设备管理器上的端口号设置串口的属性,包括波特率、数据位、校验位等。

3.建立连接(1)在发送端的计算机上,打开串口通信软件。

(2)在接收端的计算机上,也打开串口通信软件,并设置与发送端相同的参数。

4.进行通信(1)在发送端的计算机上,输入要发送的数据。

(2)点击发送按钮,数据会通过串口线发送到接收端的计算机。

(3)接收端的计算机会接收到数据,并在串口通信软件中显示。

四、实验数据与结果通过本次实验,我们实现了两台计算机之间的双机通信。

在发送端的计算机上,我们输入了字符串“Hello, World!”并通过串口发送到接收端的计算机。

在接收端的计算机上,我们成功收到了发送的数据,并在串口通信软件中显示出来。

五、实验分析与讨论通过本次实验,我们学会了使用串口通信实现两台计算机之间的双机通信。

串口通信具有轻量级、传输速度快的特点,适用于小型数据的传输和通信。

但是串口通信的距离受限,通信距离较短。

六、实验总结通过本次实验,我们深入了解了双机通信的实现原理和方法,并了解了串口通信的基本原理和设置方法。

通过实际操作,我们掌握了串口通信的步骤和技巧。

双机通信实验报告

双机通信实验报告

项目五单片机间的双机通信班级:学号:姓名:一、任务目的通过单片机之间的双机通信设计,进一步学习定时器的功能和编程应用,理解串行通信与并行通信两种通信方式的异同,掌握串行通信的重要指标:字符帧和波特率,初步了解MCS-51系列单片机串口的使用方法。

二、设计要求本任务是简历一个简单的单片机串行口双机通信测试系统。

系统中,发射与接收各用一套AT89C51单片机电路,称为甲机和乙机。

编制程序,使甲,乙双方能够进行串行通信。

要求将甲机内的多个数据(例如19921009)发送给乙机,并在乙机的8个数码管上显示出来。

三、系统硬件电路设计可分为最小系统、甲机发送、乙机接收显示三个单元电路,要求画出各部分电路图,写出工作原理。

最小系统:甲机发送:乙机接收显示:显示部分的:现实中的接线和显示:四、软件设计甲机的程序:#include <reg51.h>void main() //主函数{unsigned char i;unsigned char send[]={0x01,0x09,0x09,0x02,0x1,0x00,0x00,0x09}; //定义要发送的数据,数据为生日的八位数TMOD=0x20; //定时器1工作于方式2TL1=0xf4; //波特率为2400b/sTH1=0xf4;TR1=1;SCON=0x40; //定义串行口工作方式1for (i=0;i<8;i++){SBUF=send[i]; //发送第i个数据while(TI==0); //查询等待发送是否完成TI=0; //发送完成,TI由软件清零}while(1);}乙机的程序:#include <reg51.h>code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6D,0x7D,0x07,0x7f,0x6f}; //定义0~9显示字码型unsigned char buffer[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //定义接收数据缓冲区void disp(void); //显示函数声明void main() //主函数{unsigned char i;TMOD=0x20; //定时器1工作于方式2TL1=0xf4; //波特率定义TH1=0xf4;TR1=1;SCON=0x40; //定义串行口工作方式1for(i=0;i<8;i++){REN=1; //允许接收while(RI==0); //查询等待接收标志位为1,表示接收到数据buffer[i]=SBUF; //接收数据RI=0; //RI由软件清零}for(;;) disp(); //显示接收数据}void disp(){unsigned char i,j;for(i=0;i<8;i++){ P2=i;P0=(tab[buffer[i]]); //送显示字码型,buffer[i]作为数组分量的下标for(j=100;j>5;j--); //显示延时}}五、系统调试画proteus图,了解单片机最小系统,选用的元件有AT89C51,编写程序。

实验七_双机通信实验

实验七_双机通信实验

实验七、双机通信实验 一、实验目的掌握单片机串行口的工作原理及编程。

二、实验内容用两台单片机进行双机通讯,主控制器识别到按键按下,控制从机显示0-9字符。

三、实验接线图四、实验程序1、程序流程图如图7-1所示。

主机识别到键按下,向从机发送数据块长度、0-9数据及校验和。

从机接收到数据后,显示数据并向主机发应答码00H ,主机根据应答信号,显示通信状态代码。

2、波特率计算选fosc=11.0592MHz, 波特率=2400bps ,通信为方式1,(SMOD)为1,(TMOD)=0x20;( PCON) =0x80; 由波特率计算公式算得 (TH1)≈e8H 。

图7-1 实验接线图[](TH1)-25612T1T1322osc SMOD⨯=⨯=f 溢出率溢出率,波特率3、源程序 1)主机源程序// 识别到按键按下,发送0-9数据给从机,并显示通信状态码 #include<reg51.h> #include<intrins.h>#define uint unsigned int #define uchar unsigned charsbit K=P3^2; //定义按键K ,用于控制U2void SEND(uchar s_data)//发送一个字节数据 {SBUF=s_data; while(TI==0); TI=0;}uchar RCV(void)//接收一个字节数据 {while(RI==0); RI=0; return(SBUF);}void D_1S(void) {uint N=500,i;while(N--) for(i=0;i<100;i++) _nop_();}void DIS(uchar dis)//显示dis 中字形码对应的字符 { P0=dis; D_1S(); P0=~0x00;}void MAIN(void){ uchar data SUM,LEN;// SUM,校验和;LEN ,数据块长度; uchar i,ans; //ans 接收的应答数据图7-2 主机程序流程图 图7-3 从机程序流程图SP=0x5f; P0=~0x00; //数码块消隐TMOD=0x20; //T1:8位自动重装定时器TL1=0xe8;TH1=0xe8;PCON=0x80;TR1=1;//F=11.0592MHz,BPS=2400SCON=0x40; //10位,禁止接收//-------扫描按键-------key0:K=1; if(K!=0) goto key0;//-------发送数据块和校验和-------S_0:SUM=0x00; LEN=10; SEND(LEN);for(i=0;i<LEN;i++){SEND(i); SUM+=i; }SEND(SUM);//-------接收从机发来的响应数据-------REN=1; ans=RCV(); REN=0;if(ans==0x00) //发送正常,显示“0”{ DIS(~0x3f); goto key0;}else //发送异常,显示“1”,并重新发送数据{ DIS(~0x06); goto S_0;}}2)从机源程序// 接收数据0-9,并用数码块显示,之后接收正常向主机发00H,否则发送01H#include<reg51.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuchar data LS0[]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F};void SEND(uchar s_data)//发送一个字节数据{SBUF=s_data; while(TI==0); TI=0;}uchar RCV(void)//接收一个字节数据{while(RI==0); RI=0; return(SBUF);}void D_1S(void){uint i,N=500;while(N--) for(i=0;i<100;i++) _nop_();}void DIS(uchar LEN,uchar r_data[11])//显示0-9{uchar data i;for(i=0;i<LEN;i++) {P0=LS0[r_data[i]]; D_1S(); P0=~0x00;}}void MAIN(void){ uchar data SUM,LEN; //SUM,校验和;LEN,数据块长度;ID,从站地址uchar data i,r_data[10],RSUM;//r_data接收的数据,RSUM接收的校验和SP=0x5f; P0=~0x00; TMOD=0x20;TL1=0xe8;TH1=0xe8;PCON=0x80;TR1=1; SCON=0x40;R_D:REN=1;SUM=0x00;LEN=RCV();for(i=0;i<LEN;i++){r_data[i]=RCV(); SUM+=r_data[i];}RSUM=RCV();if(RSUM==SUM){DIS(10,r_data);SEND(0x00);goto R_D;}else {SEND(0x01);goto R_D;}}五、实验步骤1、按图7-1接线;2、用keil软件编辑、编译源程序,生成两个hex文件。

双机通信设置实验报告

双机通信设置实验报告

双机通信设置实验报告实验报告:双机通信设置实验1. 实验目的本实验的目的是掌握双机通信设置的基本步骤与方法,包括网络连接、IP地址设置、端口设置和通信代码编写等内容。

2. 实验器材- 两台计算机- 网线- 交换机(可选,用于扩展网络数量)3. 实验步骤步骤一:网络连接1. 将两台计算机连接到同一个局域网中,可以通过交换机将多台计算机连接到同一个局域网中。

步骤二:确定IP地址1. 在Windows操作系统下,点击“开始”按钮,选择“控制面板”。

2. 在控制面板中,选择“网络和Internet”。

3. 在“网络和Internet”页面中,选择“网络和共享中心”。

4. 在“网络和共享中心”页面中,选择“更改适配器设置”。

5. 在“更改适配器设置”页面中,找到当前使用的网络连接,右键点击,选择“属性”。

6. 在网络连接属性页面中,选择“Internet协议版本4(TCP/IPv4)”,然后点击“属性”按钮。

7. 在Internet协议版本4(TCP/IPv4)属性页面中,选择“使用下面的IP地址”选项,然后输入IP地址和子网掩码。

8. 重复以上步骤,将第二台计算机的IP地址设置为与第一台计算机相同的子网下的其他IP地址。

步骤三:端口设置1. 在每台计算机上选择一个空闲端口作为通信端口。

2. 确保两台计算机上选择的端口相同。

步骤四:通信代码编写1. 在每台计算机上编写程序,通过选择合适的编程语言和库来实现双机通信。

2. 编写程序时,需要指定对方计算机的IP地址和端口号。

3. 编写程序时,需要指定通信协议,如TCP或UDP等。

4. 实验结果通过以上步骤,成功实现了两台计算机之间的双机通信。

可以在程序中发送和接收数据,实现数据交换和通信功能。

5. 实验总结通过本实验,我们掌握了双机通信设置的基本步骤与方法,包括网络连接、IP 地址设置、端口设置和通信代码的编写等内容。

双机通信是实现计算机之间数据交换和通信的重要手段,掌握这些基本知识对于进行网络通信和应用开发非常有帮助。

双机通信实验实验报告

双机通信实验实验报告

实验七双机通信实验一、实验目的:1.掌握单片机串口通信程序的设计。

2.了接RS232接口通信的特点。

3.双机通信:分别把接收到的对方通过逻辑开关输入的信息在本地数码管上显示,如下图甲机的逻辑开关数据为81H,乙机通过串口接收该数据并数码关管显示,而甲机显示乙机发送的数据88H。

二、PROTEUS电路设计:三、实验仪器和设备PC机、PROTEUS软件或W-A-51综合开发学习板四、源程序设计:1.程序(甲、乙机用相同的程序)ORG 0000HAJMP MAINORG 0030HMAIN:MOV TMOD,#20H ;定时器工作方式2MOV TH1,#0FDH ;设置波特率MOV TL1,#0FDHMOV PCON,#00H ;波特率不乘2SETB TR1MOV SCON,#50H ;串行口工作方式1并启动接收JX:MOV A,P1MOV SBUF,AW1:JNB TI,W1CLR TIW2:JNB RI,W2CLR RIMOV A,SBUFMOV P0,ALJMP JXEND六、总结、心得这是的实验中我遇到了很多的难题,也发现了自己很多的不足。

刚开始的时候在循环比较的时候老是出错,对变量的寻址方式不熟悉,不会使用指针变量使程序简化。

后来经过老师的提醒跟自己的摸索,终于把程序写正确了。

所以是这么简单的一个程序,但是我还是要花很长的一断时间才可以把它完成,这说明了我对知识的掌握运用还是很不熟练,虽然读程序的时候可以读懂,但是到自己写的时候就感觉无从下手。

单片机双机通信实验报告

单片机双机通信实验报告

单片机双机通信实验报告
实验目的:
1. 了解单片机之间的串口通信原理;
2. 掌握单片机之间的双机通信方法;
3. 实现单片机之间的数据互相传输。

实验器材:
1. 单片机开发板(两块);
2. USB转串口模块(两个);
3. 杜邦线若干;
4. 电脑。

实验步骤:
首先,将单片机开发板和USB转串口模块进行连接,具体的连接方法如下:
1. 将USB转串口模块的TXD引脚连接到单片机开发板的RXD引脚上;
2. 将USB转串口模块的RXD引脚连接到单片机开发板的TXD引脚上;
3. 将USB转串口模块的GND引脚连接到单片机开发板的GND引脚上;
4. 将USB转串口模块的VCC引脚连接到单片机开发板的VCC引脚上。

接下来的步骤如下:
1. 打开两台电脑上的串口调试助手软件,并分别将波特率设置为相同的数值(例如9600);
2. 在一台电脑上,发送数据给另一台电脑。

具体的操作是在串口调试助手软件上输入要发送的数据,然后点击发送按钮;
3. 在另一台电脑上,接收来自第一台电脑发送的数据。

具体的操作是在串口调试助手软件上点击接收按钮,然后可以看到接收到的数据。

实验结果:
通过实验可以看到,单片机之间成功地实现了数据的双向传输。

一台单片机发送的数据可以被另一台单片机接收到。

实验总结:
本实验通过串口通信的方式实现了单片机之间的双机通信。

通过这种方式,可以方便地实现单片机之间的数据互相传输,可以用于各种应用场景,如传感器与控制器之间的数据传输等。

同时要注意,串口通信的波特率要设置一致,否则数据将无法正确接收。

双机通信按键实验报告

双机通信按键实验报告

双机通信按键实验报告1. 引言双机通信按键实验是一项基于计算机网络原理的实验,旨在通过编程实现两台计算机之间的通信。

在这个实验中,我们使用了网络套接字(Socket)编程以及键盘输入监听功能实现了双机通信。

本报告将详细介绍实验的设计思路、实施过程和结果分析。

2. 设计思路实验的目标是实现两台计算机之间通过按键进行通信。

为了实现这个目标,我们采用了以下设计思路:- 使用Python编程语言,利用其socket模块进行网络通信。

- 通过在一个计算机上监听键盘输入,并将输入字符发送给另一个计算机。

- 在另一个计算机上接收字符,并进行相应处理,如打印在屏幕上。

3. 实施过程3.1 网络通信首先,在两台计算机上建立起网络连接。

我们选择了TCP/IP协议作为网络通信协议,并使用socket模块提供的函数进行网络套接字的创建、绑定和监听等操作。

具体的网络连接代码如下:pythonimport socket创建套接字sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)绑定套接字sock.bind(('127.0.0.1', 8888))监听连接sock.listen(1)接受连接请求conn, addr = sock.accept()上述代码中,我们使用了IPv4的地址`127.0.0.1`和端口号`8888`作为网络连接的地址。

3.2 键盘输入监听接下来,在一个计算机上监听键盘输入。

我们使用Python的`keyboard`库来实现键盘输入监听,并将输入字符发送给另一个计算机。

具体的键盘监听和发送操作代码如下:pythonimport keyboarddef send_character(character):发送字符到另一台计算机conn.send(character.encode())keyboard.on_press(send_character)上述代码中,我们将`send_character`函数注册为键盘按键按下事件的回调函数。

双机通讯实验报告

双机通讯实验报告

.单片机实验报告(自动化15级)实验名称:串行通讯实验一、实验目的1.掌握单片机串行口工作方式;2.掌握双机通讯的接口电路设计及程序设计。

二、实验设备1. PC机;2.单片机最小系统教学实验模块;3. 数码管显示模块三、实验内容1.双机通信由两套单片机试验装置(两个实验小组)共同完成该实验。

我们U1为甲机,U2为乙机。

甲机发送本机(学生本人)学号后8位给乙机,乙机接收该8位数据,并显示在8位数码管上。

电路如图1所示。

要求串行通信方式为方式1,波特率为2400bit/s,不加倍,单片机外部晶振频率为11.0592M。

图1 双机通信原理示意图附加要求:乙机接收完毕后,将本机(乙机)的学号后8位发送回甲机,甲机显示在数码管上。

2.单片机与PC机通信单片机向PC机发送数据。

单片机向PC机重复发送本机(学生本人)学号,发送波特率为1200,采用方式1,单片机外部晶振频率为11.0592M。

四、实验原理4.1 串行通讯的方式在串行通讯中,有两种基本的通讯方式:异步通讯,同步通讯。

异步串行通讯规定了字符数据的传送格式,既每个数据以相同的帧格式发送。

每个帧信息由起始位、数据位、奇偶校验位和停止位组成。

本实验主要学习异步通讯的实现方法。

在异步通讯中,每一个字符要用起始位和停止位作为字符开始和结束的标志,以至占用了时间。

所以在数据块传送时,为了提高通讯速度,常去掉这些标志,而采用同步通讯。

同步通讯不像异步通讯那样,靠起始位在每个字符数据开始时发送和接受同步。

而是通过同步字符在每个数据块传送开始时使收/发双方同步。

按照通讯方式,又可将数据传输线路分成三种:单工方式、半双工方式、全双工方式。

(1)单工方式在单工方式下,通讯线的一端联接发送器,另一端联接接收器,它们形成单向联接,只允许数据按照一个固定的方向传送。

(2)半双工方式在半双工方式下,系统中的每个通讯设备都由一个发送器和一个接收器组成,通过收发开关接到通讯线路上,如图33-1所示。

双机通信实验报告

双机通信实验报告

实验三双机通信试验一、实验目的UART 串行通信接口技术应用二、实验实现的功能用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。

三、系统硬件设计四、系统软件设计#include<reg51.h>#define uint unsigned int#define uchar unsigned char#define M 20uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; sbit GREEN_A=P2^0;sbit YELLOW_A=P2^1;sbit RED_A=P2^2;sbit GREEN_B=P2^3;sbit YELLOW_B=P2^4;sbit RED_B=P2^5;sbit GREEN_C=P2^6;sbit YELLOW_C=P2^7;sbit RED_C=P3^2;sbit GREEN_D=P3^3;sbit YELLOW_D=P3^4;sbit RED_D=P3^5;sbit W1=P0^0;sbit W2=P0^1;sbit W3=P0^2;sbit W4=P0^3;sbit H1=P3^6;sbit L1=P0^5;sbit H2=P3^7;sbit L2=P0^6;sbit L3=P0^7;sbit D9=P3^2;sbit D10=P3^3;sbit D11=P3^4;sbit D12=P3^5;uchar key,n=M,wei=0,j=0; uchar i=1;void delay(uint i){ uint j,k;for(j=2*i;j>0;j--)for(k=2*i;k>0;k--);}void LED_display_0(uchar i) {W4=0,P1=tab[i];}unsigned char keyscan(){ H1=0;H2=0;L1=1;L2=1;L3=1;if(L1==0||L2==0||L3==0){delay(10);if(L1==0||L2==0||L3==0){H1=0;H2=1;if(L1==0) key=1;else if(L2==0) key=2;else if(L3==0) key=3;H1=1;H2=0;if(L1==0) key=4;else if(L2==0) key=5;else if(L3==0) key=6;H1=0;H2=0;while(L1==0||L2==0||L3==0);}}return key;}void uart_init(){ TMOD=0X20;TH1=0XF4;TL1=0XF4;SCON=0Xd0;PCON=0X00;TR1=1;ES=1;EA=1;}void main(){ uart_init();key=0;while(1){keyscan();if(key!=0) SBUF=key,delay(4),key=0;LED_display_0(i);}}void inttle() interrupt 4{ if(TI) TI=0;if(RI) i=SBUF,delay(4),RI=0;}五、实验过程中遇到的问题及解决方法问题1:如何判断哪个键按下并送出对应数字?解决:利用矩阵式键盘扫描按键;将扫描值写入SBUF中发送数据。

CAN总线的双机通信.doc

CAN总线的双机通信.doc

实验3 CAN总线的双机通信一、实验目的:学习并完成CAN总线的双机通信二、实验设备:EL-8051-III型单片机实验箱三、实验内容:初始化CAN节点,使SJA1000处在准备工作状态。

编写发送和接收程序,一台发送,一台接收,并验证实验程序。

四、实验步骤:1.给试验箱换上CAN控制器;2.编写并编译初始化和发送、接收程序;3.下载程序并调试。

五、实验程序:;本程序适用于带ALE发生器的新板,是两块板的收发程序;将模块1上CS0用跳线帽短接,模块2上CS1用跳线帽短接.;两块模块上的JUMP-4的两个跳线短接在Single侧;用导线分别对应短接两模块上的CANL和CANH.;(也可用带水晶头的专用CAN连接线的两头分别插在两模块的插座中而不用导线连接) ;有且只能有一块模块上的A短接到CANL,B短接到CANH.;接通电源,运行本测试程序,在断点处查看内存单元20H~27H中的值是否与30H~37H 中的值完全对应相等;如果相等表示模块正常,否则用自检程序分别检测收发模块MODE EQU 0DE00H ;模式寄存器CMR EQU 0DE01H ;命令寄存器SR EQU 0DE02H ;状态寄存器IR EQU 0DE03H ;中断寄存器IER EQU 0DE04H ;中断使能寄存器BTR0 EQU 0DE06H ;总线定时寄存器一BTR1 EQU 0DE07H ;总线定时寄存器二OCR EQU 0DE08H ;输出控制寄存器ALC EQU 0DE0BH ;仲裁丢失捕捉寄存器ECC EQU 0DE0CH ;错误代码捕捉寄存器TXERR EQU 0DE0FH ;发送错误计数器ACR0 EQU 0DE10H ;验收代码寄存器0ACR1 EQU 0DE11H ; 1ACR2 EQU 0DE12H ; 2ACR3 EQU 0DE13H ; 3AMR0 EQU 0DE14H ;验收屏蔽寄存器0AMR1 EQU 0DE15H ; 1AMR2 EQU 0DE16H ; 2AMR3 EQU 0DE17H ; 3CANTRXB EQU 0DE10H ;发送/接收帧信息ID1 EQU 0DE11H ;发送/接收缓冲区之标示符一ID2 EQU 0DE12H ;发送/接收缓冲区之标示符二DATA1 EQU 0DE13H ;发送/接收数据首址RBSA EQU 0DE1EH ;接收缓冲器起始地址寄存器CDR EQU 0DE1FH ;时钟分频寄存器ORG4000HJMP CANINIORG4080H;----------------------------------------------------------------;初始化CANINI:MOV DPTR,#MODE ;方式寄存器MOV A,#09H ;进入复位状态MOVX @DPTR,A ;MOV DPTR,#CDR ;时钟分频寄存器MOV A,#88H ;选择PLICAN模式,关闭时钟输出MOVX @DPTR,A ;MOV DPTR,#IER ;中断允许寄存器MOV A,#0DH ;开放发送中断,溢出中断和错误警告中断MOVX @DPTR,A ;MOV DPTR,#AMR0 ;接收屏蔽寄存器MOV A,#00H ;MOVX @DPTR,A ;MOV DPTR,#AMR1 ;MOV A,#00H ;MOVX @DPTR,A ;MOV DPTR,#AMR2 ;MOV A,#00H ;MOVX @DPTR,A ;MOV DPTR,#AMR3 ;MOV A,#0FFH ;MOVX @DPTR,A ;MOV DPTR,#ACR0 ;验收代码寄存器MOV A,#11H ;MOVX @DPTR,A ;MOV DPTR,#ACR1 ;MOV A,#22H ;MOVX @DPTR,A ;MOV DPTR,#ACR2 ;MOV A,#33H ;MOVX @DPTR,A ;MOV DPTR,#ACR3 ;MOV A,#43H ;MOVX @DPTR,A ;MOV DPTR,#BTR0 ;总线定时寄存器MOV A,#03H ;MOVX @DPTR,A ;MOV DPTR,#BTR1 ;MOV A,#0FFH ;MOVX @DPTR,A ;MOV DPTR,#OCR ;输出控制寄存器MOV A,#0AAH ;MOVX @DPTR,A ;MOV DPTR,#RBSA ;复位时候改成00hMOV A,#00H ;MOVX @DPTR,A ;MOV DPTR,#TXERR ;发送错误计数寄存器MOV A,#0 ;MOVX @DPTR,A ;MOV DPTR,#ECC ;错误代码捕捉寄存器????????????MOVX A,@DPTR ;MOV DPTR,#MODE ;MOV A,#08H ;单向验收滤波器(32位长)起作用,成功发送时必须应答信号MOVX @DPTR,A ;NOP;NOP;;*************************************************;发送MOV DPTR,#TRDATA ;把所要发送的数据送入单片机RAM中的20HMOV R2,#00H ;MOV R1,#08H ;MOV R0,#20H ;DD: MOV A,R2 ;MOVC A,@A+DPTRMOV @R0,A ;INC R2 ;INC R0DJNZ R1,DD ;MOV R0,#00H ;MOV R1,#00H ;MOV R2,#00H ;TDAT A:MOV DPTR,#SR ;状态寄存器MOVX A,@DPTR ;从SJA1000读入状态寄存器值JB ACC.4,TDAT A ;判断是否在等待接收,正在接收则等待TS0:MOVX A,@DPTR ;判断上次发送是否完成,为完成则等待JNB ACC.3,TS0TS1:MOVX A,@DPTR ;判断发送缓冲区是否锁定,锁定则等待JNB ACC.2,TS1TS2:MOV DPTR,#CANTRXB ;发送缓冲区首地址MOV A,#88H ;帧信息:扩展格式数据帧,数据长度8字节MOVX @DPTR,AINC DPTRMOV A,#11HMOVX @DPTR,AINC DPTRMOV A,#22HMOVX @DPTR,AINC DPTRMOV A,#33HMOVX @DPTR,AINC DPTRMOV A,#43HMOVX @DPTR,AMOV R0,#20H ;单片机内RAM发送数据首地址,发送的数据为TRDAT A中的数据MTBF: MOV A,@R0INC DPTRMOVX @DPTR,AINC R0CJNE R0,#48H,MTBF ;最后一个数据字节地址的下一个地址MOV DPTR,#CMRMOV A,#01H ;当前报文被发送MOVX @DPTR,ATRDAT A: DB 11H,22H,33H,44H,55H,66H,77H,88H;**************************************************************END;本程序适用于带ALE发生器的新板,是两块板的收发程序;将模块1上CS0用跳线帽短接,模块2上CS1用跳线帽短接.;两块模块上的JUMP-4的两个跳线短接在Single侧;用导线分别对应短接两模块上的CANL和CANH.;(也可用带水晶头的专用CAN连接线的两头分别插在两模块的插座中而不用导线连接);有且只能有一块模块上的A短接到CANL,B短接到CANH.;接通电源,运行本测试程序,在断点处查看内存单元20H~27H中的值是否与30H~37H中的值完全对应相等;如果相等表示模块正常,否则用自检程序分别检测收发模块MODE EQU 0DE00H ;模式寄存器CMR EQU 0DE01H ;命令寄存器SR EQU 0DE02H ;状态寄存器IR EQU 0DE03H ;中断寄存器IER EQU 0DE04H ;中断使能寄存器BTR0 EQU 0DE06H ;总线定时寄存器一BTR1 EQU 0DE07H ;总线定时寄存器二OCR EQU 0DE08H ;输出控制寄存器ALC EQU 0DE0BH ;仲裁丢失捕捉寄存器ECC EQU 0DE0CH ;错误代码捕捉寄存器TXERR EQU 0DE0FH ;发送错误计数器ACR0 EQU 0DE10H ;验收代码寄存器0ACR1 EQU 0DE11H ; 1ACR2 EQU 0DE12H ; 2ACR3 EQU 0DE13H ; 3AMR0 EQU 0DE14H ;验收屏蔽寄存器0AMR1 EQU 0DE15H ; 1AMR2 EQU 0DE16H ; 2AMR3 EQU 0DE17H ; 3CANTRXB EQU 0DE10H ;发送/接收帧信息ID1 EQU 0DE11H ;发送/接收缓冲区之标示符一ID2 EQU 0DE12H ;发送/接收缓冲区之标示符二DATA1 EQU 0DE13H ;发送/接收数据首址RBSA EQU 0DE1EH ;接收缓冲器起始地址寄存器CDR EQU 0DE1FH ;时钟分频寄存器ORG4000HJMP CANINIORG4080H;----------------------------------------------------------------;初始化CANINI:MOV DPTR,#MODE ;方式寄存器MOV A,#09H ;MOVX @DPTR,A ;MOV DPTR,#CDR ;时钟分频寄存器MOV A,#88H ;选择PLICAN模式,关闭时钟输出MOVX @DPTR,A ;MOV DPTR,#IER ;中断允许寄存器MOV A,#0DH ;开放发送中断,溢出中断和错误警告中断MOVX @DPTR,A ;MOV DPTR,#AMR0 ;接收屏蔽寄存器MOV A,#0FFH ;MOVX @DPTR,A ;MOV DPTR,#AMR1 ;MOV A,#0FFH ;MOVX @DPTR,A ;MOV DPTR,#AMR2 ;MOV A,#0FFH ;MOVX @DPTR,A ;MOV DPTR,#AMR3 ;MOV A,#0FFH ;MOVX @DPTR,A ;MOV DPTR,#ACR0 ;验收代码寄存器已被屏蔽MOV A,#11H ;MOVX @DPTR,A ;MOV DPTR,#ACR1 ;MOV A,#22H ;MOVX @DPTR,A ;MOV DPTR,#ACR2 ;MOV A,#33H ;MOVX @DPTR,A ;MOV DPTR,#ACR3 ;MOV A,#43H ;MOVX @DPTR,A ;MOV DPTR,#BTR0 ;总线定时寄存器MOV A,#03H ;MOVX @DPTR,A ;MOV DPTR,#BTR1 ;MOV A,#0FFH ;MOVX @DPTR,A ;MOV DPTR,#OCR ;输出控制寄存器MOV A,#0AAH ;MOVX @DPTR,A ;MOV DPTR,#RBSA ;复位时候改成00hMOV A,#00H ;MOVX @DPTR,A ;MOV DPTR,#TXERR ;发送错误计数寄存器MOV A,#0 ;MOVX @DPTR,A ;MOV DPTR,#ECC ;错误代码捕捉寄存器????????????MOVX A,@DPTR ;MOV DPTR,#MODE ;MOV A,#08H ;单向验收滤波器(32位长)起作用,成功发送时必须应答信号MOVX @DPTR,A ;NOP;NOP;;**************************************************************;接收程序SEARCH:MOV DPTR,#SR ;状态寄存器地址MOVX A,@DPTRANL A,#0C3H ;读取总线关闭位、错误状态位、接收溢出位、有数据等状态位、JNZ PROCJMP SEARCH ;否则的话继续监测PROC:JNB ACC.7,PROCI ;总线不正常BUSERR:MOV DPTR,#IR ;中断寄存器;出现总线关闭MOVX A,@DPTR ;读中断寄存器,清除中断位?????????MOV DPTR,#MODE ;模式寄存器MOV A,#08H ;进入复位模式MOVX @DPTR,A ;将方式寄存器复位请求位清零LCALL ALARM ;调用报警子程序??????????????RETNOPPROCI: MOV DPTR,#IR ;总线正常MOVX A,@DPTR ;读取中断寄存器,清除中断位JNB ACC.3,OTHEROVER:MOV DPTR,#CMR ;数据溢出MOV A,#0CHMOVX @DPTR,A ;在命令寄存器中清除数据溢出和释放接收缓冲区RETNOPOTHER:JB ACC.0,RECE ;IR0=1,接收缓冲区有数据LJMP RECOUT ;否则,退出接收NOPRECE:MOV DPTR,#CANTRXB ;接收缓冲区首地址MOVX A,@DPTR ;读取数据帧信息JNB ACC.6,RDAT A ;RTR=1时为远程请求帧MOV DPTR,#CMRMOV A,#04H ;CMR.2=1,释放接收缓冲区MOVX @DPTR,A ;只有接收了数据才能释放接收缓冲区LCALL TRDAT A ;发送对方请求的数据LJMP RECOUT ;退出接收NOPRDAT A:MOV DPTR,#CANTRXB ;读取并保存接收缓冲区的数据MOV R1,#30H ;数据存储RAM,接收到的数据存储在此MOVX A,@DPTR ;读取数据帧格式字MOV @R1,A ;保存ANL A,#0FH ;截取低四位是数据长度ADD A,#4MOV R6,ARDAT A0: INC DPTRINC R1MOVX A,@DPTRMOV @R1,ADJNZ R6,RDAT A0 ;循环读取与保存MOV DPTR,#CMRMOV A,#04H ;释放接收缓冲区MOVX @DPTR,ARECOUT:MOV DPTR,#ALC ;释放仲裁丢失捕捉寄存器和错误捕捉寄存器MOVX A,@DPTRMOV DPTR,#ECCMOVX A,@DPTRRETALARM:MOV P1,00H ;点灯RET;********************************************************************* END。

双机串行通讯设计实验报告

双机串行通讯设计实验报告

双机串行通讯设计实验报告实验报告:双机串行通讯设计实验一、实验目的本实验的目的是通过双机串行通讯设计,实现两台计算机之间的数据传输和通信,掌握串行通讯的基本原理和应用。

二、实验原理串行通讯是指信息逐位地按顺序传送的通信方式。

串行通讯的优点是只需一对逻辑线路即可完成数据传输,可以减少硬件成本和物理排布空间。

而并行通讯需要多对逻辑线路,更加复杂。

在本实验中,我们使用两台计算机分别作为发送端和接收端。

数据通过串行通讯线路逐位传输,接收端按照发送端发送的顺序恢复数据。

具体步骤如下:1.确定双机串行通讯的物理连接方式,例如通过串口线连接两台计算机的串行端口。

2.在发送端,将待传输的数据进行串行化处理,即将数据逐位拆分成一个个比特,按照一定的传输格式进行编码。

3.将编码后的数据按照一定的速率逐位地通过串行线路发送到接收端。

4.在接收端,根据发送端的传输格式,逐位地接收并解码数据。

5.接收端将解码后的数据进行处理,恢复为原始数据。

三、实验步骤和结果1.硬件连接:使用串口线将两台计算机的串行端口连接起来。

2.软件设置:在两台计算机上分别进行串口的设置,确定串口的参数(波特率、数据位、停止位等)一致。

3.发送端设计:编写发送端的程序,将待传输的数据进行串行化处理,并按照约定的传输格式进行编码。

4.接收端设计:编写接收端的程序,根据发送端的传输格式,逐位接收和解码数据,并进行恢复处理。

5.实验测试:分别在发送端和接收端运行程序,进行数据传输和通信测试。

通过观察接收端接收到的数据是否与发送端发送的数据一致来验证通讯是否成功。

实验结果显示,通过双机串行通讯设计,发送端的数据能够成功传输到接收端,并且接收端能够正确解码和恢复数据,实现了双机之间的数据传输和通信。

四、实验总结本实验通过双机串行通讯的设计,实现了两台计算机之间的数据传输和通信。

实验结果表明串行通讯的设计和实现是可行的。

串行通讯具有硬件成本低、占用空间少等优点,因此在实际应用中被广泛使用。

双机通信实验报告

双机通信实验报告

电子信息工程专业单片机原理及应用课程设计班级1004学号姓名侯振锋指导教师何英昊日期2012.10.14一、设计题目《甲机通过串PC口控制乙机LED》(所有的正文均用小四号字)二、设计内容1、内容本次设计,对于两片89C51,采用RS232进行双机通信。

发送方的数据串行口TXD段输出。

接受方接受后,灯亮。

为提高抗干扰能力,还可以在输入输出端加光耦电阻进行光电隔离。

软件部分,通过通信协议进行发送接收,主机先送AHH给从机,当从机接收到AAH后,向主机回答BBH。

主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。

从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。

从机收到16个正确数据后送到一个数码显示管。

2、元件清单列表三、软件设计1、流程图2、代码(含注释)/* 名称:甲机串口程序说明:甲机向乙机发送控制命令字符,甲机同时接收乙机发送的数字,并显示在数码管上。

*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED1=P1^0;sbit LED2=P1^3;sbit K1=P1^7;uchar Operation_No=0; //操作代码//数码管代码uchar coadDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//延时void DelayMS(uint ms){uchar i;while(ms--) for(i=0;i<120;i++);}//向串口发送字符void Putc_to_SerialPort(uchar c){SBUF=c;while(TI==0);TI=0;}//主程序void main(){LED1=LED2=1;P0=0x00;SCON=0x50; //串口模式1,允许接收TMOD=0x20; //T1 工作模式2PCON=0x00; //波特率不倍增TH1=0xfd;TL1=0xfd;TI=RI=0;TR1=1;IE=0x90; //允许串口中断while(1){DelayMS(100);if(K1==0) //按下K1 时选择操作代码0,1,2,3{while(K1==0);Operation_No=(Operation_No+1)%4;switch(Operation_No) //根据操作代码发送A/B/C 或停止发送{case 0: Putc_to_SerialPort('X');LED1=LED2=1;break;case 1: Putc_to_SerialPort('A');LED1=~LED1;LED2=1;break;case 2: Putc_to_SerialPort('B');LED2=~LED2;LED1=1;break;case 3: Putc_to_SerialPort('C');LED1=~LED1;LED2=LED1;break;}}}}//甲机串口接收中断函数void Serial_INT() interrupt 4{if(RI){RI=0;if(SBUF>=0&&SBUF<=9) P0=DSY_CODE[SBUF];else P0=0x00;}}/* 名称:乙机程序接收甲机发送字符并完成相应动作说明:乙机接收到甲机发送的信号后,根据相应信号控制LED 完成不同闪烁动作。

STC89C52双机通信实验

STC89C52双机通信实验

单片机课程实验报告实验名称:双机通信实验实验学时专业电子信息技术与仪器班级姓名学号指导教师日期实验成绩一、实验目的UART 串行通信接口技术应用二、实验原理图三、实验程序/*妨碍本次实验成果的最大障碍是键盘扫描部分,由于未使用P×口直接赋值形式,而是用H1=0 H2=0的形式为及时关闭H1;导致键盘扫描只能扫描K、K2、K3,解决办法:在条件允许的情况下避免使用H1、H2的检测方式或者以后使用时直接复制,而非自己敲写*/#include <reg52.h>/**/#define uint unsigned int#define uchar unsigned char/*f0为单片机晶振*/#define N 46080 /*N=50000*f0/12,定时50ms*/#define M 20 /* 定时M*0.05s */sbit W1=P0^0;sbit H1=P3^6;sbit H2=P3^7;sbit LED=P2^0;uchar key=0;uchar rxd;uchar code duanxuan[]={0x3f,/*显示0*/0x06,/*显示1*/0x5b,/*显示2*/0x4f,/*显示3*/0x66,/*显示4*/0x6d,/*显示5*/0x7d,/*显示6*/};sfr P1M1=0x91;//和后面的main函数中的sfr P1M0=0x92;//P1M1 P1M0合在一起增加亮度void delay_ms(uint x) //*延时子函数程序{uint i,j;for(i=x;i>0;i--)for(j=250;j>0;j--); //*该层循环延时约1ms*/}/************数码管显示函数ok******************/void displays(uchar key_num2){W1=0;P1=duanxuan[key_num2];}/****************************************************/void send(uchar key_num1){SBUF=key_num1; //sbuf接收串口中的数据,串口发送数据while(!TI);//串口中的数据发送完毕后TI自动由0变为1TI=0; //置零,打开发送中断允许,为下一次发送做准备}/************矩阵键盘扫描,同时可进行数码管各位的+-***********/ void keyscan()//如何确定时间设定时数码管显示的数字是否会自动+1 { /*当两行H1、H2重新赋值时存在冲突,解决办法为:H1=1时H2=0,H2=1时H1=0*/ uchar temp;/***扫描第一行**/H1=0;H2=1;//扫描第一行temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态/***判断哪个键摁下***/if(temp!=0xff)//判断是否有键摁下{delay_ms(10);//延时H1=0;H2=1;//扫描第一行//重新读取temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态if(temp!=0xff)//消抖{switch(temp)//判断哪个键摁下{case 0x7f:key=3;break;case 0xbf:key=2;break;case 0xdf:key=1;break;} //键1 2 3 分别摁下while(temp!=0xff)//按键释放才会跳出循环{H1=0;H2=1;//扫描第一行//重新读取temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态}}} /***扫描第二行**/H2=0;H1=1;//扫描第二行temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态/***判断哪个键摁下***/if(temp!=0xff)//判断是否有键摁下{delay_ms(10);//延时H2=0;H1=1;//扫描第二行//重新读取temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态if(temp!=0xff)//消抖{switch(temp)//判断哪个键摁下{case 0x7f:key=6;break;case 0xbf:key=5;break;case 0xdf:key=4;break;} //键4 5 6 分别摁下while(temp!=0xff)//按键释放才会跳出循环{H2=0;H1=1;//扫描第二行//重新读取temp=P0;temp=temp|0x1f;//读取L1、L2、L3的状态}}}send(key);}/****************************************************/void main(){P1M1=0X00;P1M0=0XFF;EA=1;/*对寄存器进行操作,产生的9600bps,故不打开ET1*/ TMOD=0X20;TH1=0xfd;TL1=0xfd;TR1=1;/*SCON控制寄存器设置*/ES=1;SM0=0; //工作方式SM1=1; //SM0 SM1 10步异位收发器REN=1; //串行接收数据允许位while(1) /*等中断满足的条件*/{keyscan();}}/*在中断1中的while(!TI)中起作用*/ //识别码看时序图void S_serial()interrupt 4 //串口接收数据{ES=0;RI=0;rxd=SBUF;//串口接收一个字节的数据displays(rxd);//ES=1;} 四、调试过程与结果分析1、暂称双机分别为甲乙,甲单片机无按键摁下时,数码管显示0;有按键摁下,将按键编号发送到乙单片机,并由乙显示,但甲单片机数码管不显示按下的数值。

双机通信实验报告

双机通信实验报告

一、实验目的1. 掌握双机通信的基本原理和实现方法。

2. 熟悉串行通信的硬件接口和软件编程。

3. 通过实验,加深对单片机串行通信的理解和应用。

二、实验原理双机通信是指两台计算机或单片机之间的数据交换。

串行通信是双机通信中常用的一种通信方式,它将数据一位一位地按顺序传送,适合于远距离通信。

本实验采用单片机串行通信,通过串行口实现数据传输。

三、实验设备1. 两套单片机实验装置(如AT89S51单片机最小系统)2. 串行通信线(如RS-232线)3. 串口调试工具(如串口助手)4. 连接线和电源四、实验内容1. 硬件连接将两套单片机实验装置通过串行通信线连接起来,确保连接线正确无误。

2. 软件编程(1)单片机编程编写单片机程序,实现数据的发送和接收。

程序主要包括以下部分:- 初始化串行口:设置波特率、数据位、停止位和校验位等。

- 发送数据:将数据写入发送缓冲区,启动发送。

- 接收数据:检测接收缓冲区是否有数据,读取数据。

(2)PC端编程编写PC端程序,实现数据的发送和接收。

程序主要包括以下部分:- 串口配置:设置串口号、波特率、数据位、停止位和校验位等。

- 发送数据:将数据写入串口缓冲区,启动发送。

- 接收数据:从串口缓冲区读取数据,显示或处理。

3. 调试与测试(1)单片机端调试- 使用串口调试工具,发送数据到单片机。

- 检查单片机接收到的数据是否正确。

(2)PC端调试- 使用串口调试工具,发送数据到PC。

- 检查PC接收到的数据是否正确。

五、实验结果与分析1. 硬件连接硬件连接正确,两套单片机实验装置通过串行通信线连接。

2. 软件编程(1)单片机程序```c// 单片机程序示例(AT89S51)#include <reg51.h>#define BAUDRATE 9600sbit TXD = P3^1; // 发送引脚sbit RXD = P3^0; // 接收引脚void Serial_Init() {TMOD = 0x20; // 定时器1工作在模式2TH1 = 0xFD; // 设置波特率TL1 = 0xFD;TR1 = 1; // 启动定时器1SCON = 0x50; // 设置串行口工作在模式1 }void main() {Serial_Init();while (1) {// 发送数据TXD = 1; // 发送起始位while (!TXD); // 等待发送完成// 发送数据字节for (char i = 0; i < 8; i++) {TXD = 1; // 发送数据位while (!TXD);TXD = 0; // 发送停止位while (!TXD);}// 接收数据RXD = 1; // 接收起始位while (!RXD); // 等待接收完成// 接收数据字节for (char i = 0; i < 8; i++) {RXD = 1; // 接收数据位while (!RXD);RXD = 0; // 接收停止位while (!RXD);}}}```(2)PC端程序```c// PC端程序示例(C#)using System;using System.IO.Ports;class Program {static void Main() {SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);serialPort.Open();while (true) {// 发送数据serialPort.WriteLine("Hello, world!");// 接收数据string receivedData = serialPort.ReadLine();Console.WriteLine("Received: " + receivedData);}serialPort.Close();}}```3. 调试与测试通过串口调试工具,发送数据到单片机和PC,检查接收到的数据是否正确。

【报告】双机互联实验报告

【报告】双机互联实验报告

【关键字】报告双机互联实验报告篇一:网络双机互联实验报告计算机技术系网络基础课程实训工作记录单(XX——XX学年第一学期)篇二:计算机网络实验报告_双机互联计算机网络课程实验报告专业:班级:学号:姓名:计算机网络课程实验名称:双机互联实验一、实验目的1. 利用网络设备,掌握在局域网内如何把两台计算机利用对等网方式进行连接。

2. 学会网络连接,了解对等网互联方式。

3. 掌握基本的网络参数的设置,学会使用基本的尝试命令(ping)来检测网络的设置情况。

4. 掌握局域网中的计算机的软、硬件资源共享的设置和使用方法。

二、认识对等网“对等网”也称“工作组网”,在对等网中没有“域”,只有“工作组”。

对等网上各台计算机有相同的功能,无主从之分,网上任意结点计算机既可以作为网络服务器,为其它计算机提供资源,也可以作为工作站,以分享其它服务器的资源。

对等网是利用操作系统中包含的通信协议的功能来实现数据传输,实现网络中的资源共享。

利用集线器的广播技术或者交换机的选择功能来实现点对点的连接方式和通信方式。

三、实验内容及步骤:步骤一:网络规划经过分析,本实验考虑网络性能,成本和实现的难易程度,确定组网方案为:用对等网,达到2台计算机软硬件资源共享,预留适当扩展,费用低,易管理等特点。

拓扑结构确定为星型连接,如下图。

步骤二:硬件要求、连接、安装。

1. 两台安装Windows XP 的计算机。

2. 两个RJ45的网卡,如下图。

网卡是计算机局域网中最重要的连接设备,计算机主要通过网卡连接网络.在网络中,网卡的工作是双重的:一方面它负责接收网络上传过来的数据包,解包后,将数据通过主板上的总线传输给本地计算机;另一方面它将本地计算机上的数据打包后送入网络。

网卡与网络进行连接,必须有一个接口使网线通过它与其它计算机网络设备连接起来,常见的接口主要有以太网的RJ45接口。

如下图。

安装网卡驱动程序,安装方法较为简单,只要按照网卡驱动程序的安装向导,一步一步执行,最后检查网卡和驱动程序是否安装完整,可以在“计算机管理”里面的“设备管理器” 查看,如下图:3. 若干带RJ45接头的5类双绞线,双绞线的两头分别按一定的接线顺序压在RJ45水晶头内,这也就是通常大家说的“网线”。

单片机双机通信实验报告

单片机双机通信实验报告

单片机双机通信实验报告《单片机双机通信实验报告》摘要:本实验通过使用两台单片机,利用串口通信实现双机之间的信息传输。

在实验过程中,先分别对两台单片机进行初始化设置,并分别确定了波特率和通信协议。

随后,通过串口线连接两台单片机,并编写发送和接收程序,实现了双机之间的信息传输。

实验结果表明,双机通信实验成功,信息传输准确可靠。

关键词:单片机、双机通信、串口通信、波特率、信息传输1.引言:单片机是一种集成电路,内包含了处理器、存储器和各种外设,广泛应用于嵌入式系统中。

双机通信是指两个单片机之间通过一定的通信方式实现信息的传递和交换。

利用双机通信,可以实现多个单片机之间的协同工作,提高系统的性能和可靠性。

本实验旨在通过串口通信方式,实现双机之间的信息传输。

2.实验原理:串口通信是一种常用的通信方式,将信息按照一定的协议格式转换成串行的数据,通过串口线传输。

串口通信需要设置波特率和通信协议。

波特率是指每秒钟传输的位数,通信协议是指发送和接收的数据格式和规则。

本实验使用两台单片机,每台单片机通过串口线连接。

其中一台单片机作为发送机,另一台单片机作为接收机。

发送机将要传输的信息按照通信协议和波特率发送出去,接收机按照相同的通信协议和波特率接收信息。

接收机接收到信息后,进行处理。

3.实验步骤:(1)初始化设置:分别对发送机和接收机进行初始化设置,包括引脚的设置和串口通信设置。

设置引脚为串口通信模式,并确定波特率和通信协议。

(2)连接单片机:将两台单片机通过串口线连接,发送机的发送引脚连接到接收机的接收引脚,接收机的接收引脚连接到发送机的发送引脚。

(3)编写发送程序:在发送机上编写发送程序,将要发送的信息按照通信协议和波特率发送出去。

(4)编写接收程序:在接收机上编写接收程序,按照相同的通信协议和波特率接收信息,并进行处理。

(5)测试实验:将发送机和接收机分别接入电源,观察实验现象。

4.实验结果:通过实验测试,发送机成功将信息发送给接收机,并在接收机上进行了处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

双机通信实验报告。

单片机实验报告(自动化15级)实验名称:串行通信实验
1.实验1的目的。

掌握单片机串口的工作模式;
2.掌握双机通信的接口电路设计和程序设计。

2.实验设备1。

个人电脑;
2.单片机最小系统教学实验模块:
3.数码管显示模块
三、实验内容1。

两套单片机测试装置(两个实验组)共同完成了实验。

我们U1是机器A,U2是机器B。

机器A将学生的学号后的8位数字发送到机器B。

机器B接收到这8位数字,并将其显示在8位数字的电子管上。

该电路如图1所示。

串行通信模式要求为模式1,波特率为2400位/秒,不是双倍,单片机外部晶振频率为11.0592米。

图1双机通信原理附加要求示意图:
机器b收到后,该机器(机器b)的学生编号的最后8位数字被送回机器a,并显示在数码管上。

2.单片机与PC机之间的通信单片机向PC机发送数据。

单片机将本机的学生号(学生本人)反复发送到PC机,发送波特率为1200,采用模式1,单片机外部晶振频率为
11.0592米
四、实验原理4.1串行通信模式在串行通信中,有两种基本通信模式:
异步通信。

异步串行通信规定了字符数据的传输格式,即每个数据以相同的帧格式传输。

每个帧信息由起始位、数据位、奇偶校验位和停止位组成。

本实验主要研究异步通信的实现方法。

在异步通信中,每个字符使用一个起始位和一个停止位作为字符开始和结束的符号,因此占用时间。

因此,为了提高传输数据块时的通信速度,这些标记通常被去除,并采用同步通信。

同步通信不像异步通信那样依赖起始位在每个字符数据的开头发送和接收同步。

相反,同步字符用于在每个数据块传输开始时同步发送方和接收方。

根据通信方式,数据传输线可分为三种类型:
单工模式、半双工模式、全双工模式。

(1)单工模式在单工模式中,通信线路的一端连接到发射机,另一端连接到接收机,这形成单向连接,并且仅允许数据在固定方向上传输。

(2)半双工模式在半双工模式下,系统中的每个通信设备由一个发射机和一个接收机组成,它们通过收发器开关连接到通信线路,如图33所示-
1.实验1的目的。

掌握单片机串口的工作模式;
2.掌握双机通信的接口电路设计和程序设计。

2.实验设备1。

个人电脑;
2.单片机最小系统教学实验模块:
3.数码管显示模块
三、实验内容1。

两套单片机测试装置(两个实验组)共同完成
了实验。

我们U1是机器A,U2是机器B。

机器A将学生的学号后的8位数字发送到机器B。

机器B接收到这8位数字,并将其显示在8位数字的电子管上。

该电路如图1所示。

串行通信模式要求为模式1,波特率为2400位/秒,不是双倍,单片机外部晶振频率为11.0592米。

图1双机通信原理附加要求示意图:
机器b收到后,该机器(机器b)的学生编号的最后8位数字被送回机器a,并显示在数码管上。

2.单片机与PC机之间的通信单片机向PC机发送数据。

单片机将本机的学生号(学生本人)反复发送到PC机,发送波特率为1200,采用模式1,单片机外部晶振频率为
11.0592米
四、实验原理4.1串行通信模式在串行通信中,有两种基本通信模式:
异步通信。

指定异步串行通信
本实验主要研究异步通信的实现方法。

在异步通信中,每个字符使用一个起始位和一个停止位作为字符开始和结束的符号,因此占用时间。

因此,为了提高传输数据块时的通信速度,这些标记通常被去除,并采用同步通信。

同步通信不像异步通信那样依赖起始位在每个字符数据的开头发送和接收同步。

相反,同步字符用于在每个数据块传输开始时同步发送方和接收方。

根据通信方式,数据传输线可分为三种类型:
单工模式、半双工模式、全双工模式。

(1)单工模式在单工模式中,通信线路的一端连接到发射机,另一端连接到接收机,这形成单向连接,并且仅允许数据在固定方向上传输。

(2)半双工模式在半双工模式下,系统中的每个通信设备由一个发射机和一个接收机组成,它们通过收发器开关连接到通信线路,如图33所示:所有三种工作模式都用于串行异步通信。

异步串行通信的一个字节传输中必须包含起始位(0)和停止位(1)。

此外,模式1有8位(1字节)数据位(低位优先),模式
除了这8位之外,图2和3还具有可编程的第9位,并且该第9位编程通常被编程-省略部分-0);对于(j=0;j0;(j=0;j125j){;5.从实验中获得的经验。

(必需)。

6.附件是可以解释实验原理的实验照片。

(必填)单词模型文本。

相关文档
最新文档