




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章80C51的串行口,6.1计算机串行通信基础6.280C51的串行口6.3单片机串行口应用举例,6.1计算机串行通信基础,计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。通信有并行通信和串行通信两种方式。在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。并行通信是将数据字节的各位用多条数据线同时进行传送。,并行通信控制简单、传输速度快,但不宜远距离传输。,6.1计算机串行通信基础,串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。,串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。,6.1.1
2、串行通信的基本原理,1、异步(串行)通信与同步(串行)通信异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求各自的时钟尽可能一致。,异步通信是以字符(构成的帧)为单位进行传输;字符与字符之间的时间间隔任意(字符之间异步);每个字符中的各位以固定的时间传送的(同一字符内的各位是同步的);,6.1.1串行通信的基本原理,异步通信的数据格式:,异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要加23位附加位,各帧之间还有间隔,因此传输效率不高。,6.1.1串行通信的基本原理,同步通信同步通信时要建立发送方时钟对接收方时钟的
3、直接控制,使双方达到完全同步;传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系;发送方对接收方的同步可以通过两种方法实现:,外同步自同步,同步通信的特点传输效率较高,但实现的硬件设备比较复杂。,6.1.1串行通信的基本原理,2、串行通信的传输方向单工是指数据传输仅能沿一个方向,不能实现反向传输。半双工是指数据传输可以沿两个方向,但需要分时进行。全双工是指数据可以同时进行双向传输。,单工半双工全双工,6.1.1串行通信的基本原理,3、信号的调制与解调数字信号不能直接在电话网上传输,必须将其转换成适合在电话网上传输的模拟信号;用调制器把数
4、字信号转换成模拟信号后送到通信线路上去,再由解调器把从通信线路上收到的模拟信号转换成数字信号;将调制器和解调器合并在一个装置中,这就是调制解调器(MODEM)。,6.1.1串行通信的基本原理,4、串行通信的错误校验奇偶校验在发送数据时,在数据位末尾增加1位奇偶校验位;奇校验数据位和校验位中“1”的个数之和应为奇数;偶校验数据位和校验位中“1”的个数之和应为偶数;接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。只能发现错误,不能校正错误。,6.1.1串行通信的基本原理,代码和校验发送方将所发数据块求和,产生一个字节的校验和附加到数据块末尾,供接收方校验接收是否出
5、错。只能发现错误,不能校正错误。循环冗余校验通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验。这种校验方法有较强的纠错能力。,6.1.1串行通信的基本原理,5、传输速率与传输距离传输速率比特率是每秒钟传输二进制代码的位数,单位是:位/秒(bps)。如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位、1个停止位、8个数据位),这时的比特率为:10位240个/秒=2400bps波特率表示每秒钟调制信号变化的次数,单位是:波特(Baud)。波特率和比特率不总是相同的,对于将数字信号1或0直接用两种不同电压表示的所谓基带传输,比特率和波特率是相
6、同的。,6.1.1串行通信的基本原理,传输距离与传输速率的关系串行接口或终端直接传送串行信息位流的最大距离与传输速率及传输线的电气特性有关。提高传输速率的措施缩短传输距离采用平衡传输(RS-422、RS-485),6.1.2串行通信接口标准,1、RS-232C接口是EIA(美国电子工业协会)1969年修订RS-232C标准。RS-232C定义了数据终端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。机械特性25针及9针连接器(阳头),6.1.2串行通信接口标准,功能特性,6.1.2串行通信接口标准,电气特性采用负逻辑逻辑1DC-3V-15V逻辑0DC+3V+15VRS-232C电平与
7、TTL及CMOS电平不兼容MC1488TTLRS-232C电平转换MC1489RS-232CTTL电平转换MAX232RS-232CTTL电平转换芯片,6.1.2串行通信接口标准,过程特性过程特性规定了信号之间的时序关系,以便正确地接收和发送数据。远程通信RS-232C总线连接方法:,6.1.2串行通信接口标准,远程通信RS-232C总线连接方式:,6.1.2串行通信接口标准,近程通信RS-232C总线连接方式:,方式一方式二,6.1.2串行通信接口标准,RS-232C电平与TTL电平转换驱动电路MC1488需12V电源MAX232只需5V电源,内置电子泵,将5V转换成12V,片内含两套发送/
8、接收器。,6.1.2串行通信接口标准,采用RS-232C接口存在的问题传输距离短,速率低小于100m,低于20kbps。有电平偏移会在传输线上产生较大的电压降抗干扰能力差,6.1.2串行通信接口标准,2、RS-422A接口平衡型电压数字接口,因采用差分方式可使干扰和噪声相互抵消,因此,RS-422接口的传输距离远,传输速率高。,6.1.2串行通信接口标准,3、RS-485接口RS-485是RS-422A的变型:RS-422A用于全双工RS-485用于半双工RS-485是一种多发送器标准,在通信线路上最多可以使用32对差分驱动器/接收器。如果在一个网络中连接的设备超过32个,还可以使用中继器;R
9、S-485的信号传输采用两线间的电压来表示逻辑1和逻辑0。传输线采用差动信道,干扰抑制性极好;阻抗低,无接地问题,传输距离可达1200米,传输速率可达1Mbps。,6.1.2串行通信接口标准,RS-485是一点对多点的通信接口(总线结构),一般采用双绞线的结构。普通的PC机一般不带RS485接口,因此要使用RS-232C/RS-485转换器。单片机可通过芯片MAX485完成TTL/RS-485的电平转换。在计算机和单片机组成的RS-485通信系统中,下位机由单片机系统组成,上位机为PC机,负责监视下位机的运行状态,并对其状态信息进行集中处理,以图文方式显示下位机的工作状态以及工业现场被控设备的
10、工作状况。系统中各节点(包括上位机)的识别是通过设置不同的地址来实现的。,6.280C51的串行口,6.2.180C51串行口的结构,有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H;接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。,6.2.280C51串行口的控制寄存器,SCON是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志:SM0和SM1为工作方式选择位,可选择四种工作方式:,6.2.280C51串行口的控制寄存器,SM2多机通信控制位,主要用于方式2和方式3。在方式0时,SM2必须是0在方式1时,若SM2=1,
11、则只有接收到有效停止位时,RI才置1REN允许串行接收位REN=1,启动串行口接收数据REN=0,禁止接收TB8在方式2或方式3中,是发送数据的第九位可以用软件规定其作用:可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。在方式0和方式1中,该位未用。,6.2.280C51串行口的控制寄存器,TI发送中断标志位。当发送完一字节数据时,由内部硬件使TI置1,向CPU发中断申请;在发送中断服务程序中,必须用软件将其清0;查询发送时,必须等待TI=1后,将其清0,再向SBUF写入新数据。RI接收中断标志位。当接收到一字节数据时,由内部硬件将RI置1,向CPU发中断申请。在中断或查
12、询方式接收程序中,从SBUF中读取数据后,必须用软件将其清0。,6.2.280C51串行口的控制寄存器,PCON中只有一位SMOD与串行口工作有关:,SMOD波特率倍增位。在串行口方式1、2、3时,波特率与SMOD有关:SMOD=1,波特率提高一倍。,6.2.380C51串行口的工作方式,方式0同步移位寄存器的输入输出方式同步移位脉冲由TXD(P3.1)脚输出数据由RXD(P3.0)脚输入或输出均为8位数据,低位在先,高位在后波特率固定为fosc/12,与SMOD位无关方式0接收和发送电路,6.2.380C51串行口的工作方式,方式110位数据的异步串行通信方式TXD为数据发送引脚RXD为数据
13、接收引脚1位起始位,8位数据位,低位在先,高位在后,6.2.380C51串行口的工作方式,方式1输出:用指令将TI清0将数据写入SBUF,启动发送过程一帧数据发送完毕,中断标志IT被置1方式1的波特率由定时器T1的溢出率决定voidsend(unsignedcharc)/发送一字节数据SBUF=c;while(TI=0);/等待发送完毕TI=0;,6.2.380C51串行口的工作方式,方式1输入用软件置REN为1,允许接收器接收数据;接收到的数据自动装入接收SBUF,并置RI=1,向CPU请求中断;软件从SBUF中读取数据后,必须将RI清0。if(RI=1)/查询方式输入c=SBUF;RI=0
14、;方式2、方式3(略),6.2.380C51串行口的工作方式,波特率的计算在串行通信中,收发双方对通信的波特率要有约定方式0的波特率固定为fosc/12方式2的波特率有两种fosc/64(SMOD=0)或fosc/32(SMOD=1)方式1和方式3的波特率是可变的,由定时器T1的溢出率和SMOD共同决定:SMOD=0时波特率=T1溢出率/32SMOD=1时波特率=T1溢出率/16,6.2.380C51串行口的工作方式,当T1作为波特率发生器时,应使T1工作在自动再装入的8位定时器方式(即方式2,且TR1=1,以启动定时器)。此时溢出率取决于TH1中的计数值。T1溢出率=fosc/12(256T
15、H1)比如,若单片机的晶振频率为11.0592MHz,TH1=0 xFD,SMOD=0,此时T1溢出率=11.0592106/12(256253)=307200Hz波特率=T1溢出率/32=307200/32=9600bps,6.2.380C51串行口的工作方式,串行口工作之前,应对其进行初始化,具体步骤如下:确定T1的工作方式(编程TMOD寄存器);计算T1的初值,同时装入TH1和TL1;启动T1(将TCON中的TR1位置1);确定串行口控制(编程SCON寄存器);若采用中断方式工作,还要进行中断设置(编程中断允许寄存器IE、中断优先级寄存器IP)。,时常数计算,T1方式二T2波特率方式,6
16、.2.380C51串行口的工作方式,voidmain(void)TMOD=0 x21;/T0方式1,T1方式2(作波特率发生器用)PCON=0;/波特率不倍增SCON=0 x50;/串口工作方式1,REN=1(允许接收)TH1=0 xFD;/(11.0592MHz晶振,9600B/S)TL1=0 xFD;TR1=1;/启动T1ET1=0;/禁止定时器1中断,6.3单片机串行口应用举例,在计算机分布式测控系统中,经常要利用串行通信方式进行数据传输。80C51单片机的串行口为计算机间的通信提供了极为便利的条件。利用单片机的串行口还可以方便地扩展键盘和显示器,对于简单的应用非常便利。,6.3.1单片
17、机与单片机的通信,一、点对点的通信1、硬件连接近距离(几米以内)中距离(百米以内),6.3.2单片机与PC机的通信,在工控系统(尤其是多点现场工控系统)设计实践中,单片机与PC机组合构成分布式控制系统是一个重要的发展方向。分布式系统主从管理,层层控制。主控计算机监督管理各子系统分机的运行状况。子系统与子系统可以平等信息交换,也可以有主从关系。分布式系统最明显的特点是可靠性高,某个子系统的故障不会影响其它子系统的正常工作。,6.3.2单片机与PC机的通信,PC机与单个80C51单片机的串行通信硬件连接,6.3.2单片机与PC机的通信,PC端的程序设计(VB)MSComm控件有许多属性,主要的几个
18、如下:CommPort:设置并返回通信端口号;Settings:以字符串的方式设置并返回波特率、奇偶校验、数据位、停止位;PortOpen:设置并返回端口的状态,也可以打开和关闭端口;Input:从缓冲区读取字符(接收);Output:向缓冲区写入字符(发送)。,PC端的程序设计(VB程序1),PrivateSubCmdOpen_Click()初始化及打开串口MSComm1.Settings=“9600,n,8,1MSComm1.CommPort=1串口1MSComm1.InputMode=0以文本方式读取数据MSComm1.RThreshold=1每收到一个字符都产生OnComm事件。MSC
19、omm1.PortOpen=True打开串口1EndSubPrivateSubCmdSend_Click()发送文本框Text2中的数据MSComm1.Output=Text2.TextEndSubPrivateSubMSComm1_OnComm()接收数据并在文本框1中显示Text1.Text=Text1.Textwhile(TI=0);/等待发送完毕TI=0;voidmain(void)unsignedcharc;EA=1;/允许中断TMOD=0 x20;/定时器1方式2(作波特率发生器用)PCON=0;/波特率不倍增SCON=0 x50;/串口工作方式1,REN=1(允许接收)TH1=0
20、 xFD;/(11.0592MHz晶振,9600bps)TL1=0 xFD;TR1=1;ET1=0;/禁止定时器1中断while(1)if(RI=1)c=SBUF;RI=0;send(c+1);,单片机端程序设计(中断方式接收),#includeunsignedcharbuff16;unsignedcharf_point,e_point;voidsend(unsignedcharc)SBUF=c;while(TI=0);/等待发送完毕TI=0;voidmain(void)EA=1;/允许中断TMOD=0 x20;/定时器1方式2PCON=0;/波特率不倍增SCON=0 x50;TH1=0 xF
21、D;/9600bpsTL1=0 xFD;TR1=1;ES=1;/允许串口中断ET1=0;/禁止定时器1中断,f_point=0;e_point=0;while(1)if(e_point!=f_point)send(bufff_point+1);f_point+;if(f_point15)f_point=0;voidComm(void)interrupt4if(RI=1)buffe_point=SBUF;RI=0;e_point+;if(e_point15)e_point=0;,6.3.2单片机与PC机的通信,PC机与多个80C51单片机的通信(分布式系统)采用RS485总线多用主从方式,每个单
22、片机有唯一的地址(编号)PC机要和某个单片机通信,先向总线发送该单片机的地址和命令,然后再进行通信单片机与单片机之间不直接通信,实验七单片机与PC机的串行通信,与实验有关的硬件,实验七单片机与PC机的串行通信,#include#defineU8unsignedchar#definekey_portP1codeU8tab=0 xa0,0 xbb,0 x62,0 x2a,0 x39,0 x2c,0 x24,0 xba,0 x20,0 x28,0 xff;U8buf4=10,10,10,0;/显示缓冲区,开机先显示0U8cnt=0;/扫描计数U8scn=0 x7F;/送P2口控制LED显示位,最左边
23、LED先亮U8rc;voiddelay_ms(U8ms)U8i,j;for(i=0;i100;i+)for(j=0;jms;j+);,实验七单片机与PC机的串行通信,codeU8kcode=0 xb7,0 xbe,0 xde,0 xee,0 xbd,0 xdd,0 xed,0 xbb,0 xdb,0 xeb,0 xd7,0 xe7;/反转码对应键值0123456789ABU8key(void)U8a,r;delay_ms(20);/延时20毫秒,消除按键抖动if(key_port=0 xf0)gotorn;a=key_port;key_port=a|0 x0f;delay_ms(20);a=key_port;for(r=0;r11)r=0 xff;/0 xff表示无效rn:key_port=0 xf0;returnr;,实验七单片机与PC机的串行通信,voidsend(unsignedcharc)/发送一字节数据SBUF=c;while(TI=0);/等待发送完毕TI=0;voidmain(void)EA=1;/允许中断TMOD=0 x21;/定时器0方式1,定时器1方式2(作波特率
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年6月校园无土栽培区营养液循环维护合同
- 2025上海市房屋建筑修缮及装修工程施工合同(版)甲种本
- 2024年2月盲文标识凸点高度精确度验收规范
- 二零二五家装纯设计合同
- 物业转供电协议合同书模板二零二五年
- 二零二五版钢结构厂房购销合同
- 书柜书桌定制合同标准文本
- 二零二五白瑾的离婚协议书
- 国际贸易独家代理协议
- 2025【长沙兼职劳动合同书】合同样本
- 通用版校企合作协议书
- 物业车位申请表
- 2023中学各年级劳动教育清单
- 愚公移山英文 -中国故事英文版课件
- 9端午粽 一等奖创新教学设计(第二课时)
- 研发项目立项申请书模板
- 人行道改造工程设计说明
- 四川省中小流域暴雨洪水计算表格(尾矿库洪水计算)
- 夫妻通用离婚协议书电子版(四篇)
- 施工安全监督方案实用文档
- 施工现场危险源告知书
评论
0/150
提交评论