基于RS232的双机通信实验程序和电路图

合集下载

基于RS232的双机通信实验程序和电路图.doc

基于RS232的双机通信实验程序和电路图.doc
图1 单片机之间通信的原理图
五、实验过程
单片机1的程序:
#include<reg52.h>
#define uchar unsigned char//宏定义
#define unit unsigned int//宏定义
sbit anjian=P1^0;//定义按键的位
ucharnum;
uchar codetable[]={0xff,0xc0,0xf9,0xa4,0xb0,0x9
SBUF=table[num]; //发送值
}
TI=0;//清除发送中断标志位
}
}
单片机2的程序:
#include<reg52.h>
#define uchar unsigned char//宏定义
#define unit unsigned int //宏定义
unsigned char rec_c;
void main()
{
TMOD=0x20; //定时器1工作方式2
TH1=0xFD; //11.0592Mhz 9600bps
TL1=0xFD;
TR1=1;//启动定时器1
SCON=0x5; //模式1:8位数据可变波特率,允许接收
EA=1; //打开总中断
ES=1;//打开串口1中断
}
//中断接收函数
voidrec() interrupt 4
1、 使用串口实现单片机1与单片机2的数据通信 ,实现互相控制。要求按下单片机1系统板上的按键 ,单片机2系统板上LED点亮。
三、实验环境
1、编程软件keil
2、仿真软件proteus
四、实验原理
MAX232芯片用于电平转换 ,实现RS232电平与TTL电平(单片机)的互相转换。本次实验单片机之间通信不使用握手信号 ,只需3根信号线:TXD(发送线) ,RXD(接收线) ,GND(地线)。单片机之间通信的原理图如图1所示 ,当单片机1(主机)查询外接控制开关S3按下时 ,单片机1发送一个自定义信号给单片机2(从机) ,单片机2收到信号后点亮指示灯LED4。

RS232串口通信实验

RS232串口通信实验

RS232串口通信实验一、认识RS232单片机的串行口是非常有用的,通过他我们可以把单片机系统的数据传回电脑处理或者接受电脑传过来的数据而进行相应的动作,在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。

RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口. 它是在1970年由美国电子工业协会(EIA)联合贝尔系统,调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准.它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个25个脚的DB-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定.后来IBM的PC机将RS232简化成了DB-9连接器,从而成为事实标准.而工业控制的RS-232口一般只使用RXD,TXD,GND三条线.在讨论RS-232C接口标准的内容之前,先说明两点:首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。

因此这个标准的制定,并未考虑计算机系统的应用要求。

但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。

显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。

有了对这种背景的了解,我们对RS-232C标准与计算机不兼容的地方就不难理解了。

其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。

由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。

(1)RS232(DB9)的接口说明1 DCD 载波检测2 RXD 接收数据3 TXD 发送数据4 DTR 数据终端准备好5 SG 信号地6 DSR 数据准备好7 RTS 请求发送8 CTS 允许发送9 RI 振铃提示(2)接口的电气特性在RS-232-C中任何一条信号线的电压均为负逻辑关系。

计算机网络实验RS232串口通信程序的编写

计算机网络实验RS232串口通信程序的编写

计算机网络实验RS232串口通信程序的编写RS232是一种常见的串行通信接口,用于在计算机和其他外部设备之间传输数据。

它广泛应用于各种设备和应用程序,如串口调试工具、点阵打印机等。

本文将介绍如何编写一个基本的RS232串口通信程序。

我们将使用C 语言和Linux操作系统来演示。

在开始编写程序之前,我们需要了解一些RS232串口的基本概念和通信协议。

RS232串口由发送线(TX)、接收线(RX)、控制线(如RTS、CTS、DTR和DSR)等组成。

通信时,发送方将数据从TX线发送到接收方的RX线,然后接收方通过RX线接收数据。

以下是一个简单的RS232串口通信程序示例:```c#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <termios.h>#include <unistd.h>int maiint fd = open("/dev/ttyS0", O_RDWR , O_NOCTTY); // 打开串口设备if (fd == -1)perror("打开串口失败");exit(1);}struct termios options;tcgetattr(fd, &options); // 获取当前串口设置//设置波特率为9600cfsetispeed(&options, B9600);cfsetospeed(&options, B9600);//设置数据位为8位,无奇偶校验,停止位为1位options.c_cflag &= ~PARENB;options.c_cflag &= ~CSTOPB;options.c_cflag &= ~CSIZE;options.c_cflag ,= CS8;//更新串口设置tcsetattr(fd, TCSANOW, &options);char buffer[255];while (1)ssize_t len = read(fd, buffer, sizeof(buffer)); // 从串口读取数据if (len == -1)perror("读取串口失败");exit(1);}printf("接收到数据:%.*s\n", len, buffer);ssize_t nwrite = write(fd, buffer, len); // 向串口写入数据if (nwrite == -1)perror("写入串口失败");exit(1);}}close(fd);return 0;```该程序首先打开串口设备`/dev/ttyS0`,如果打开失败则会输出错误信息并退出。

RS232串口多机通信

RS232串口多机通信

RS232串口多机通信一基本原理1、主从多机通信拓扑图2、主从多机通信的具体过程1)使所有的从机的SM2位置1,以便接收主机发来的地址;2)主机发出一帧地址信息,其中包括8位需要与之通信的从机地址,第9位为1;3)所有从机接收到地址帧后,各自将所接收到的地址与本机地址比较,对于地址相同的从机,使SM2位清零以接收主机随后发来的所有信息。

对于地址不符合的从机,仍保持SM2=1的状态,对主机随后发来的数据不予理睬,直至发送新的地址帧;4)主机给已被寻址的从机发送控制命令和数据(数据帧的第9位为0);5)本次通信结束后,从机重置SM2=1,主机可再寻址其它从机。

二主从模式首先要设定工作方式3:(主从模式+波特率可变)SCON位定义:SCON串口功能寄存器:SM0=1;SM1=1(工作方式3)注:主机和从机都要为工作方式3。

1、工作方式2 (SM0 SM1 :1 0):串行口为11位异步通信接口。

发送或接收一帧信息包括1位起始位“0”、8位数据位、1位可编程位、1位停止位“1”。

发送数据:发送前,先根据通信协议由软件设置TB8为“奇偶校验位”或“数据标识位”,然后将要发送的数据写入SBUF,即能启动发送器。

发送过程是由执行任何一条以SBUF为目的寄存器的指令而启动的,把8位数据装入SBUF,同时还把TB8装到发送移位寄存器的第9位上,然后从TXD(P3.1)端口输出一帧数据。

接收数据:先置REN=1,使串行口为允许接收状态,同时还要将RI清“0”。

然后再根据SM2的状态和所接收到的RB8的状态决定此串行口在信息到来后是否置R1=1,并申请中断,通知CPU接收数据。

当SM2=0时,不管RB8为“0”还是为“1”,都置RI=1,此串行口将接收发送来的信息。

当SM2=1时,且RB8=1,表示在多机通信情况下,接收的信息为“地址帧”, 此时置RI=1,串行口将接收发来的地址。

当SM2=1时,且RB8=0,表示在多机通信情况下,接收的信息为“数据帧”, 但不是发给本从机的,此时RI不置为“1”,因而SBUF中接收的数据帧将丢失。

基于停等式协议的RS232双机通信系统设计报告

基于停等式协议的RS232双机通信系统设计报告

基于停等式协议的RS232双机通信系统设计报告摘要:串行通信是单片机的一个重要应用。

本次综合开发实验就是要利用单片机来完成一个系统,实现双片单片机串行通信。

通信的结果实用数码管进行显示,为便于观察理解停等式ARQ协议,分别在主从机设置了一个确认按键和从发按键。

两个单片机之间采用RS232进行双机通信。

在通信过程中,使用停等式ARQ通信协议进行通信。

关键字:通信单片机停等式ARQ RS232 串行通信一、总体设计 (3)1.设计思想 (3)2.设计方案 (3)3.停等式ARQ协议原理 (3)二、硬件设计 (7)1.51单片机串行通信功能 (7)2.MAX232芯片 (9)3.数码管的选择 (10)4.电源模块 (12)5.RS232串行线 (12)6.整体电路设计 (13)三、软件设计 (14)1.串行通信软件实现 (14)2.奇偶校验的软件实现 (15)3.程序流程图 (17)发送端程序流程图 (17)接收方程序流程图 (18)4.程序设计算法: (18)5.C51程序 (19)四、加电调试 (30)五、改进与不足 (33)六、元件清单 (34)一、总体设计1.设计思想:两片单片机之间进行串行通信,发送端通过按键将1~8发送到接收端,并在接收端显示。

同时在发端进行定时,黄灯亮,等待确认信息,5秒后重发,蜂鸣器响。

收端收到后进行奇偶校验并点亮相应的灯(正确的绿灯、错误的红灯)。

收端通过确认按键将确认信息发送到发端,发端点亮相应的灯,若传输出错,则发端通过重发按键重发。

2.设计方案:本次设计,对于两片89C51,采用RS232进行双机通信。

发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。

接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。

接受方接收后,在数码管上显示接收的信息。

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

通讯接口RS232接线图

通讯接口RS232接线图
打开PLC编程工具,点击通讯,然后双击网卡设置
双击PLC802(PPI),进行设置
设置波特率,与系统设置相同的值
设定正确的COM端口,点击确定
远程地址设为2,然后双击刷新
用网线联机的同步图
通讯接口RS232接线图
首先在系统主菜单,选择PLC
在STEP7连接菜单中,选择合适的波特率(必须和RCS 802中的波特率保持一致),然后点击激活连接
打开RCS 802软件选择正确的联机方式:
选择RS232方式:
点击联机,更改配置,首先选择正确的COM端口
波特率设置要同系统上面的一致
点击OK,联机成功后,在RCS 82中便能进行数控系统内部的数据备份等ቤተ መጻሕፍቲ ባይዱ作
点击联机更改配置首先选择正确的com端口波特率设置要同系统上面的一致点击ok联机成功后在rcs82中便能进行数控系统内部的数据备份等操作打开plc编程工具点击通讯然后双击网卡设置双击plc802ppi进行设置设置波特率与系统设置相同的值设定正确的com端口点击确定远程地址设为2然后双击刷新用网线联机的同步图

RS232串口通信实验

RS232串口通信实验

RS232串口通信实验一.实验目的利用单片机的TXD、RXD 口,使用户学会单片机串行口的使用。

二.实验设备及器件IBM PC 机一台DP-51PROC 单片机综合仿真实验仪一台(本实验不需要导线)三.实验内容1.编写一段程序,利用单片机的串行口向PC 机发送0X55。

2.编写一段程序,接收PC 机串行口发送的0X55(ASCII 码为字母U),在单片机接收到0X55 的时候返回一个0X41(ASCII 码为字母A)。

在PC 机一端,以接收到0X41(ASCII 码为字母A)为完成。

四.实验要求深刻理解MAX232芯片的作用,学会使用单片机的的串行口,如果有时间用户可以做一下单片机之间的串行通讯。

五.实验步骤1.用串口线连接PC 机和DP-51PROC 单片机综合仿真实验仪。

图3.18RS232 串行口电路图2.编写一段程序,利用单片机的串行口发送0X55,波特率为9600 Bps。

(该程序不能在DP-51PROC 上进行仿真,所以只能下载,下载的操作可以参考本书的2.6 节)3.程序下载运行后可以在PC 的接收软件上看见接收到“UUUUUUU…”。

4.编写一段程序,在单片机接收到0X55(…U‟)的时候返回一个0X41(…A‟)。

在PC 机一端,以接收到0X41(…A‟)为完成,波特率为9600 Bps。

(该程序不能在DP-51PROC 上进行仿真,所以只能下载,下载的操作可以参考本书的2.6 节)。

5.下载程序运行后,先从PC 机发送一个0X55(…A‟),这时可以在PC 的接收软件看见接收到“A”。

六.实验预习要求阅读本书的2.6 节内容,理解硬件结构,还可以先把程序编好,然后在Keil C51环境下进行软件仿真。

还要学会PC 机上的的串口调试软件的使用(DPFLASH 也内嵌七.实验参考程序程序1:ORG 0000HLJMP MainORG 00F0HMain:MOV SP,#60H ;给堆栈指针赋初值MOV TMOD,#20H ;设置T1 为方式2 MOV TH1,#0FDH ;设置波特率为9600 MOV TL1,#0FDHMOV SCON,#50H ;设置串口位方式1 MOV PCON,#00HSETB TR1 ;定时器1 开始计数Mainloop:MOV SBUF,#55H ;开始发送SENDWT:JBC TI,MainloopAJMP SENDWT;End程序2:ORG 0000HLJMP MainORG 00F0HMain:MOV SP,#60H ;给堆栈指针赋初值MOV TMOD,#20H ;设置T1 为方式2 MOV TH1,#0FDH ;设置波特率为9600 MOV TL1,#0FDHMOV SCON,#50H ;设置串口位方式1 MOV PCON,#00HSETB TR1 ;定时器1 开始计数REC:JBC RI,SENDWTAJMP RECSENDWT:MOV A,SBUFCLR RICJNE A,#55H,RECMOV SBUF,#41H ;开始发送AJMP $;End(1)请用户思考一下,如果是单片机与单片机之间进行串行口通讯应如何进行。

RS232组网通信实验

RS232组网通信实验

实验一RS-232组网通‎信实验(一)PC及其兼容‎工控机的异步‎通讯接口PC及其兼容‎工控机都有两‎个异步通讯接‎口:COM1和C‎O M2,其关键部件是‎通用异步收发‎器(UART)INS825‎0。

INS825‎0的内部有1‎0个寄存器,分别用于通讯‎参数的设置、线路及MOD‎E M的控制与‎状态查询、数据收发及中‎断管理等。

要在中断方式‎下收发数据,必须对INS‎8250的寄‎存器直接操作‎,各寄存器名称‎及其相应的端‎口地址列于表‎1。

由表1可知:THR、RBR和DL‎L占用同一个‎端口地址3F‎8H(2F8H),IER和DL‎M也占用同一‎个端口地址3‎F9H(2F9H),对它们进行访‎问时,如果设置LC‎R的最高位为‎1,访问的是除数‎寄存器;如果设置LC‎R的最高位为‎0,则访问的是T‎H R、RBR和IE‎R。

而THR是只‎写寄存器,RBR是只读‎寄存器,在LCR的最‎高位设置为0‎时,对端口地址3‎F8H(2F8H)的写入操作访‎问的是THR‎,读出操作访问‎的是RBR。

硬件连接方式‎:将2台PC机‎的COM1/COM2串行‎通信口通过9‎针D型接口3‎线连接。

(二)INS825‎0有关寄存器‎的设置串行口的初始‎化主要是对I‎N S8250‎的有关寄存器‎进行设置,以确定通讯的‎数据格式、波特率、中断的触发方‎式等。

①确定数据格式数据格式是‎通过设置线路‎控制寄存器(LCR)来确定的,LCR的定义‎如下:其中:WSL1、WSL0用于‎选择每个发送‎或接收的串行‎字符的位数,分别设置这两‎位为00、01、10、11时,对应的字长依‎次是5位、6位、7位、8位;STB用于确‎定停止位的位‎数,STB =0时使用1位‎停止位,STB=1时,如果WSL1‎、WSL0设置‎为00,使用1.5位停止位,其它情况下使‎用2位停止位‎;PEN用于选‎择是否允许奇‎偶校验,PEN=0时,不进行奇偶校‎验,PEN=1时有奇偶校‎验;此时,EPS选择校‎验方式,EPS=0时是奇校验‎,EPS=1时是偶校验‎;SP用于选择‎是否在奇偶校‎验位和停止位‎之间插入奇偶‎标志位,SP=0时不插入,SP=1时插入1位‎奇偶标志位,偶校验时插一‎个0,奇校验时插入‎一个1;SB是设置间‎断控制位,SB=1时输出数据‎强迫为0,SB=0时可进行正‎常的数据收发‎;DLAB是除‎数寄存器访问‎位,DLAB =1时访问除数‎寄存器,DLAB=0时访问TH‎R、RBR和IE‎R。

RS232串口通信实验

RS232串口通信实验

R S232串口通信实验(总7页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--实验名称:RS-232串口通信实验实验目的:利用单片机的TXD、RXD口,学会单片机串行口的使用。

实验原理:1、51单片机内置全双工异步串行口,共有4种工作方式,电原理图如下:2、串行通信的编程:(1)串行口控制寄存器SCON(2)SM0、SM1—串行口工作方式选择位SM0 SM1 方式功能说明0 0 0 同步移位寄存器方式(用于扩展I/O口)0 1 1 8位异步收发,波特率可变(由定时器控制)1 02 9位异步收发,波特率为fosc/64或fosc/321 1 3 9位异步收发,波特率可变(由定时器控制)(3)REN—允许串行接收位该控制为由软件置“1”或清“0”。

REN=1 允许串行口接收数据。

REN=0 禁止串行口接收数据。

(4)TB8—发送的第9位数据方式2和3时,TB8是要发送的第9位数据,可作为奇偶校验位使用,也可作为其他标志。

(例:在多机通讯中,可以标注传输内容为地址或数据) RB8—接收到的第9位数据方式2和3时,RB8存放接收到的第9位数据。

在方式1,如果SM2=0,RB8是接收到的停止位。

在方式0,不使用RB8。

(5)TI——发送中断标志位方式0时,串行发送第8位数据结束时由硬件置“1”,其它工作方式,串行口发送停止位的开始时置“1”。

TI=1,表示一帧数据发送结束,可供软件查询,也可申请中断。

CPU响应中断后, 向SBUF写入要发送的下一帧数据。

TI必须由软件清0。

RI——接收中断标志位方式0时,接收完第8位数据时,RI由硬件置1。

其它工作方式,串行接收到停止位时,该位置“1”。

RI=1,表示一帧数据接收完毕,并申请中断, CPU从接收SBUF取走数据。

该位状态也可软件查询。

RI必须由软件清“0”。

(6)特殊功能寄存器PCONSMOD:波特率倍增位方式0,波特率=fosc/12方式2,波特率= fosc*2SMOD/64方式1、3,波特率=定时器T1的溢出频率*2SMOD/643、多机通讯:主机传输的信息包括地址+数据,每个从机根据自己的地址来判断是否参与通讯SM2 —多机通信控制位用于方式2或方式3中的多机通信控制。

基于RS-232C的单片机双机通讯系统设计(二)

基于RS-232C的单片机双机通讯系统设计(二)

目录0. 前言 (1)1. 总体方案设计 (2)2. 硬件电路的设计 (2)2.1 单片机系统 (2)2.2 MAX232芯片 (5)2.3 整体电路设计 (6)3 软件设计 (6)4.联合调试 (8)5. 课设小结及进一步设想 (9)参考文献 (10)附录I 元件清单 (11)附录II 整体电路图 (12)附录III 源程序清单 (13)基于RS-232C的单片机双机通信系统设计(二)秦月沈阳航空航天大学自动化学院摘要:本文主要设计了一个基于RS-232C单片机双机通讯系统,利用TDN86/51二合一教学实验系统中的51单片机实现两个单片机之间的通讯。

通信的结果用数码管进行显示,数码管采用查表方式显示。

两个单片机之间采用New-Roman进行双机通信。

在通信过程中,使用通信协议进行通信。

关键字:RS-232C;数据发送;数据接收;LED显示;双机串行通信。

0.前言计算机的发展对通信起了巨大的推动作用,计算机和通信紧密结合构成了灵活多样的通信控制系统,也可以构成强有力的信息处理系统,这样对社会的发展产生了深远的影响。

随着电子技术和计算机技术的发展,特别是单片机的发展,使传统的测量仪器在原理、功能、精度及自动化水平等方面发生了巨大的变化,形成了一种完全突破传统概念的新一代测试仪器——智能仪器。

智能仪器是以微处理器为核心的电子仪器,它不仅要求设计者熟悉电子仪器的工作原理,而且还要求其掌握微型计算机硬件和软件的原理。

目前,有很多的传统电子仪器已有相应的替代产品,而且还出现不少全新的仪器类型和测试系统体系。

在科学技术高速发展的今天,如何用简单便宜、性能良好的元器件制造出对人类生活有用的产品,已经成为人们研究的主要趋势。

在自动化技术中,无论是过程控制技术还是数据采集技术还是测控技术,都离不开单片机,在工业自动化的领域中,机电一体化技术发挥越来越重要的作用,在通信方面,单片机得到了广泛运用。

在实现计算机与计算机、计算机与外设的串行通讯时,通常采用标准的通讯接口。

RS-232串行通信电路图

RS-232串行通信电路图

RS-232串行通信电路图
AVR系列单片机都带有异步串行接口,而我们现在学习的ATmega64更是有两个串口。

我们知道单片机的电平一般都是TTL电平(关于TTL电平与 CMOS电平等其他电平的区别,我们以后单独详解),而计算机的串口是RS-232电平,这两种电平不能互相匹配,所以如果将这两种电平互联,需要一个电平转换电路,本实例中使用常用的MAX232芯片,它实现RS-232电平和TTL电平的互换。

在MAX232的数据手册中,有这个芯片的典型连接电路,我们直接采用这种电路即可。

关于MAX232的连接电路,其实非常简单,我们只要记住4电容(或 5电容)就可以了。

这里的4电容指的是电路中只需要连接4个电容就可以;至于5电容,多出来的那个电容是连接VCC和GND之间的电容,这个电容可以不接,但是从考虑电源的稳定性上来说,建议接上。

至于电路中电容大小的选择可以参考数据手册,需要注意的是这里要用无极性电容(不区分正负极)。

电容值一般有三种选择0.1uF、1uF、10uF.电容值的大小会影响到端口的驱动能力,电容大,驱动能力强,电容小,驱动能力弱。

通常使用1uF的电容就足够了。

RS-232串行通信电路图如下所示:。

基于RS232modbus协议的双机串行通信

基于RS232modbus协议的双机串行通信

目录一、Modbus 协议分析 (1)1.1两种传输方式 (2)1.2 Modbus消息帧 (3)1.3错误检测方法 (5)二、程序设计思想 (6)2.1总体设计 (6)2.2 硬件设计 (7)2.2.1单片机串行通信功能 (7)2.2.2 MAX232芯片 (8)2.2.3 整体电路设计 (9)2.3 软件设计 (10)2.3.1主机系统软件设计 (10)2.3.2 从机系统软件设计 (12)三、程序代码 (15)基于51单片机的双机串行通信设计一、Modbus 协议分析Modbus 协议是应用于电子控制器上的一种通用语言。

通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。

它已经成为一通用工业标准。

有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。

它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。

它制定了消息域格局和内容的公共格式。

当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。

如果需要回应,控制器将生成反馈信息并用Modbus协议发出。

在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。

这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。

1) 在Modbus网络上转输标准的Modbus口是使用一RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。

控制器能直接或经由Modem组网。

控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。

其它设备(从设备)根据主设备查询提供的数据作出相应反应。

典型的主设备:主机和可编程仪表。

典型的从设备:可编程控制器。

主设备可单独和从设备通信,也能以广播方式和所有从设备通信。

实验一 RS232与modem通信编程

实验一 RS232与modem通信编程

DB-9针连接头 ------------\12345/ \6789/ ------从计算机连出的线的截面。
1.2 RS-232接口物理层规范
RS-232针脚的功能: 数据: TXD(pin 3):串口数据输出 RXD(pin 2):串口数据输入 握手: RTS(pin 7):发送数据请求 CTS(pin 8):清除发送 DSR(pin 6):数据发送就绪 DCD(pin 1):数据载波检测 DTR(pin 4):数据终端就绪
(4 ) 在线传送数据 两个 Modem连接好后,就可以通过电话线 传送数据。双方都可以接收和发送。 如果通信配置成全双工的(full—duplex),则 两个用户都可以同时发送和接收信息。如果通 信连接是半双工的(half—duplex),则只能有 一个用户发送,一个用户接收。 通信时,可能由于线路噪声,设备出问题 或用户操作错误而中止连接,这时Modem会指 示丢失了载波,返回NO CARRIER结果码。 为了重新建立连接,必须重新拨号。
2)串口属性的设置
3)发送和接收数据
Modem通信程序设计

Modem的工作状态

AT指令集
Modem通信编程

1. Modem的工作状态
(1)状态转换
连接建立 离线命令状态 载波丢失 ATH命令 ATO命令 换码序列+++
在线状态
在线命令状态
(1)状态转换
命令状态和在线状态可以进行相互转 换。 离线命令状态到在线状态:当建立连 接后,Modem由离线命令状态转为在线状 态。 在线状态到在线命令状态:在通信过程中, 如果DTE向Modem发送换码序列+++,在 发送前后均有1秒钟的保护时间(即 Modem空闲),Modem将由在线状态转为 在线命令状态。

RS232串口通信

RS232串口通信

一.实验目的及要求(1)实验目的1.了解串行通信口的基本知识。

2.了解RS-232标准以及通信方法。

(2)实验要求1.通过三线制制作一条串口通信线(PC-PC)。

2.编程实现两台PC间通过RS-232进行实时的字符通信。

二.实验步骤(1)实验准备Pc版本:window10企业版编程语言及工具:Python和serial包。

材料:RS-232缆线(2)实验步骤1.使用Python语言的serial包实现两台PC机进行实时的字符通信。

(1)利用Python中的tkinter包编写出串口通信的GUI页面,包括6个组件,分别是:字符显示框,端口选择框,波特率选择框,打开串口框,信息输入框,信息发送框,并且建立一个响应事件,监测是否有发送信息或有信息发送过来。

(2)串口设置:为方便,这里只设置一个参数:波特率,初始参数设为9600,可选参数为4800,9600,19200。

(3)打开串口:首先输入两个串口COM1和COM2,启动一个辅助线程,处理串口事件,若按钮点击打开串口,若检测到串口未打开,则打开串口,并显示串口打开成功;若已经打开,则显示打开串口错误。

(4)发送字符:从输入框中读取字符并将其编码,通过线程将编码后的字符发送。

(5)接收字符:用read函数读取发送过来的字符,将其显示在字符显示框中。

2.用虚拟串口在本机上虚拟两台机之间的通信。

(1)打开Configure Virtual Serial Port Driver软件。

(2)运行程序,打开COM1端口,再次运行程序,打开COM2端口。

(3)在COM1端口的GUI上发送字符,在COM2端口的GUI上发送字符,即可实现两台机之间虚拟的串口通信。

三. 实验结果及验证(1)串口通信GUI页面如图1;图1(2)打开串口:打开COM1,结果显示true,即打开成功,如图2;打开COM2;结果显示true,即打开成功,如图3;图2图3(3)在COM1端口发送字符串“hello”,COM2接收字符串并显示,如图4;在COM2口发送字符串“hi,COM1收字符串并显示,如图5;图4图5(4)在Configure Virtual Serial Port Driver软件上虚拟的通信记录,如图6;可见,COM1端口发送5个字符,即“hello”,COM2接收5个字符,COM2端口发送2个字符,即“hi”,因此成功实现虚拟串口之间的通信。

RS232串口通信实验

RS232串口通信实验

实验名称:RS-232串口通信实验实验目的:利用单片机的TXD、RXD口,学会单片机串行口的使用。

实验原理:1、51单片机内置全双工异步串行口,共有4种工作方式,电原理图如下:2、串行通信的编程:(1)串行口控制寄存器SCON(2)SM0、SM1—串行口工作方式选择位SM0 SM1 方式功能说明0 0 0 同步移位寄存器方式(用于扩展I/O口)0 1 1 8位异步收发,波特率可变(由定时器控制)1 02 9位异步收发,波特率为fosc/64或fosc/321 1 3 9位异步收发,波特率可变(由定时器控制)(3)REN—允许串行接收位该控制为由软件置“1”或清“0”。

REN=1 允许串行口接收数据。

REN=0 禁止串行口接收数据。

(4)TB8—发送的第9位数据方式2和3时,TB8是要发送的第9位数据,可作为奇偶校验位使用,也可作为其他标志。

(例:在多机通讯中,可以标注传输内容为地址或数据)RB8—接收到的第9位数据方式2和3时,RB8存放接收到的第9位数据。

在方式1,如果SM2=0,RB8是接收到的停止位。

在方式0,不使用RB8。

(5)TI——发送中断标志位方式0时,串行发送第8位数据结束时由硬件置“1”,其它工作方式,串行口发送停止位的开始时置“1”。

TI=1,表示一帧数据发送结束,可供软件查询,也可申请中断。

CPU响应中断后, 向SBUF写入要发送的下一帧数据。

TI必须由软件清0。

RI——接收中断标志位方式0时,接收完第8位数据时,RI由硬件置1。

其它工作方式,串行接收到停止位时,该位置“1”。

RI=1,表示一帧数据接收完毕,并申请中断, CPU从接收SBUF取走数据。

该位状态也可软件查询。

RI必须由软件清“0”。

(6)特殊功能寄存器PCONSMOD:波特率倍增位方式0,波特率=fosc/12方式2,波特率= fosc*2SMOD/64方式1、3,波特率=定时器T1的溢出频率*2SMOD/643、多机通讯:主机传输的信息包括地址+数据,每个从机根据自己的地址来判断是否参与通讯SM2 —多机通信控制位用于方式2或方式3中的多机通信控制。

rs232串口接线图

rs232串口接线图

rs232 串口接线图rs-232 是现在主流的串行通信接口之一,是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries AssociaTIon,EIA)所制定的异步传输标准接口。

通常rs-232 接口以9 个引脚(DB-9)或是25 个引脚(DB-25)的型态出现,一般个人计算机上会有两组rs-232 接口,分别称为COM1 和COM2。

rs232 缺陷由于rs232 接口标准出现较早,难免有不足之处,主要有以下四点:(1)接口的信号电平值较高,易损坏接口电路的芯片。

rs232 接口任何一条信号线的电压均为负逻辑关系。

即:逻辑1 为-3 -15V;逻辑0:+3 +15V ,噪声容限为2V。

即要求接收器能识别高于+3V 的信号作为逻辑0,低于-3V 的信号作为逻辑1,TTL 电平为5V 为逻辑正,0 为逻辑负。

与TTL 电平不兼容故需使用电平转换电路方能与TTL 电路连接。

(2)传输速率较低,在异步传输时,比特率为20Kbps;因此在51CPLD 开发板中,综合程序波特率只能采用19200,也是这个原因。

(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。

(4)传输距离有限,最大传输距离标准值为50 英尺,实际上也只能用在15 米左右。

rs232 串口接线图目前较为常用的串口有9 针串口(DB9)和25 针串口(DB25),通信距离较近时(《12m),可以用电缆线直接连接标准rs232 端口(rs422,rs485 较远),若距离较远,需附加调制解调器(MODEM)。

最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用rs232 相连。

rs232 串口通信接线方法(三线制)首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连1、同一个串口的接收脚和发送脚直接用线相连对9 针串口和25 针串口,均是2 与3 直接相连;2、两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS 数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接。

RS232通信电路

RS232通信电路

RS232通信接口定义DB9左上角为1,右下角为91 DCD 载波检测2 RXD 接收数据3 TXD 发送数据4 DTR 数据终端准备好5 SG信号地6 DSR数据准备好7 RTS 请求发送8 CTS 允许发送9 RI 振铃提示DB251 屏蔽地线2 TXD 发送数据3 RXD 接收数据4 RTS 请求发送5 CTS 允许发送6 DSR 数据准备好7 SG 信号地8 DCD 载波检测9 发送返回(+)10 未定义11 数据发送(-)12~17 未定义18 数据接收(+)19 未定义20 数据终端准备好 DTR21 未定义22 振铃 RI23~24 未定义25 接收返回(-)标准的细节DB25转DB925芯接口9芯接口2 33 24 75 86 67 58 120 422 9这里显示的是相接的引脚。

单片机与MAX232、RS232连接图单片机的发送数据端(TXD)接MAX232或MAX202的发送输入端(T1IN或T2IN),MAX232或MAX202的发送输出端(T1OUT或T2OUT)接RS232的2脚(接收数据端RXD)。

单片机的接收数据端(RXD)MAX232或MAX202的接收输出端(R1OUT或R2OUT),MAX232或MAX202的接收输入端(R1IN或R2IN)接RS232的发送数据端(TXD)。

RS232典型应用电路下图中的TTL或RS232标识会有助于我们的理解。

图中电容全是0.1UF。

实验二 RS232串口通信实验

实验二 RS232串口通信实验

实验二RS-232串口通信实验
一实验目的
(1)熟悉RS-232接口电路的作用与电路组成;
(2)掌握计算机间利用串口进行通信的连接方法;
(3)掌握串口通信软件的使用方法。

二实验所需材料
本实验要求使用:
◆UTP类电缆
◆两个RJ-45连接器
◆两个DB-9串口改RJ-45口连接器
◆两台计算机
◆一把网络压线钳
◆一把电缆剥线钳
◆一台电缆测试仪
三实验步骤
1、每两人一组,在老师指导下,根据下面的线序关系排列线序对;
一端:
2
3、使用压线钳将两端压紧。

4、使用测试仪测试连通性。

5、将两个DB-9连接器分别固定在两台计算机的串口(COM1)上。

6、将做好的线缆两端分别接入固定好的两个DB-9连接器的RJ-45端口上。

7、使用串口通讯软件测试,验证能否通讯。

四、实验总结
1.制作网线,选定一节双绞线,用剥线钳剥去两端的皮,按线序关系排列线序对,将两端分别插入水晶头中,用压线钳压好。

2.用测试仪测试网线的连通性。

3.将两个DB-9串口改RJ-45口连接器分别插入两台PC机的DB—9串口种,再用网线插入连接器的RJ-45口中,连接两台电脑。

4.用软件测试连接的状况。

一开始显示的界面
5.选择发送的文件,点击“打开”即可接收到。

6.接收文件的一端,显示文件内容。

构建一简单系统,该系统通过RS232与计算机连接通讯

构建一简单系统,该系统通过RS232与计算机连接通讯

一、实验目的构建一简单系统,该系统通过RS232与计算机连接通讯。

二、实验内容利用微控制器STC89C52构建一个简单系统,通过RS232实现系统与计算机的串口通讯、利用LCD或数码管显示时分秒等时间显示、利用按键实现系统时间的设置、以及LED流水灯等功能。

三、实验要求1.系统硬件要求:微控制器,LCD1602或8个LED数码管,RS232模块,DB9接口一个(用于串口通讯),4个独立按键,4个LED灯。

2.系统功能要求:(1)电子时钟功能。

可通过按键设置(同第一次作业要求)。

系统上电后,默认功能为电子时钟。

LED数码管(或LCD1602)显示时间。

4个led灯全灭。

串口终端输出:embedded system Demo。

(2)与PC通讯功能。

每个系统都有自己的地址,范围00~99(十进制),可自行设定。

PC机通过串口发布命令#A可查询系统地址,系统返回ADDR:XX,其中XX 表示系统的地址。

PC机还可以通过串口发布其他相应命令,可控制系统中LED灯的亮灭,设置电子时钟的时间值,获取时间值等。

比如发布命令#80SL11,可点亮第一个led灯,发布命令#80SL10,关灭第一个led灯。

关于命令的格式,说明如下:(起始定界符)(地址)(动作)(对象)(命令值)起始定界符:#地址:系统地址,两位,比如80,90,12等动作:分设置和获取,设置用大写字母S(取SET头字母)表示;获取用大写字母G(取GET头字母)表示对象:系统中的对象,4个led灯,分别用L1,L2,L3,L4表示。

系统中的电子时钟用T表示。

命令值:对于控制led灯的亮灭,用1表示点亮,0表示关灭结束定界符:*如命令#80SL20*,其中#为起始定界符,80为系统地址,S为动作(设置),L2为对象(第二个led灯),0为设置值,表示关灭。

举例1:命令#80SL11*表示控制地址为80的系统中的第一个led灯点亮。

举例2:命令#76SL30*表示控制地址为76的系统中的第3个led灯关灭。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SCON=0x5; //模式1:8位数据可变波特率,允许接收
EA=1; //打开总中断
ES=1;//打开串口1中断
while(1)
{
if(anjian==0)//判断按键
{
delay(5);
if(anjian==1)//按键消抖动
{
num=num+1;
}
if(num==11)
{
num=0;
}
P0=table[num];//读数组中的值
实训成绩
批阅教师
日期
实验报告
课程名称现场总线技术及其应用
专业班级电信1012
学号2010118504150
学生姓名朱胜强
指导教师范玉刚
实训地点德行楼
2013年5月10日
基于RS232的双机通信实验
一、实验目的
1、理解串行通信的基本概念和51系列单片机的串行通信接口结构。
2、 理解现场仪表的通讯过程
二、实验内容
1、 使用串口实现单片机1与单片机2的数据通信,实现互相控制。要求按下单片机1系统板上的按键,单片机2系统板上LED点亮。
三、实验环境
1、编程软件keil
2、仿真软件proteus
四、实验原理
MAX232芯片用于电平转换,实现RS232电平与TTL电平(单片机)的互相转换。本次实验单片机之间通信不使用握手信号,只需3根信号线:TXD(发送线),RXD(接收线),GND(地线)。单片机之间通信的原理图如图1所示,当单片机1(主机)查询外接控制开关S3按下时,单片机1发送一个自定义信号给单片机2(从机),单片机2收到信号后点亮指示灯LED4。
{
TMOD=0x20; //定时器1工作方式2
TH1=0xFD; //11.0592Mhz 9600bps
TL1=0xFD;
TR1=1;//启动定时器1
SCON=0x5; //模式1:8位数据可变波特率,允许接收
EA=1; //打开总中断
ES=1;//打开串口1中断
}
//中断接收函数
voidrec() interrupt 4
//延时函数
void delay(unit z)
{
unitx,y;
for(x=z;x>0;x--);
for(y=110;y>0;y--);
}
//主函数
void main()
{
TMOD=0x20; //定时器1工作方式2
TH1=0xFD; //11.0592Mhz 9600bps
TL1=0xFD;
TR1=1;//启动定时器1
图1 单片机之间通信的原理图
五、实验过程
单片机1的程序:
#include<reg52.h>
#define uchar unsigned char//宏定义
#deห้องสมุดไป่ตู้ine unit unsigned int//宏定义
sbit anjian=P1^0;//定义按键的位
ucharnum;
uchar codetable[]={0xff,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管显示数
SBUF=table[num]; //发送值
}
TI=0;//清除发送中断标志位
}
}
单片机2的程序:
#include<reg52.h>
#define uchar unsigned char//宏定义
#define unit unsigned int //宏定义
unsigned char rec_c;
void main()
{
RI=0;//清除串口中断接收标志位
rec_c=SBUF;//读串口缓冲区值
P1=rec_c;//数码管显示
}
六、实验结论
在单片机跟单片机之间通过MAX232通信的时候最重要的就是要设置好两个单片机的串口通信的初始化,只有确保了初始化的正确,后面的工作才能顺利的进行。在硬件的连接上,两片MAX232之间的连接要将TXD和RXD相连,这样才能实现两个单片机之间的通信。
相关文档
最新文档