单片机原理第10章MCS51系统的串行接口教学_第1页
单片机原理第10章MCS51系统的串行接口教学_第2页
单片机原理第10章MCS51系统的串行接口教学_第3页
单片机原理第10章MCS51系统的串行接口教学_第4页
单片机原理第10章MCS51系统的串行接口教学_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十章

MCS-51单片机的串行接口110.1串行通信基础知识通信的基本方式并行通信:各位数据同时传送。串行通信:数据一位位按顺序传送。210.1.1串行通信的两种基本方式

1.异步传送方式收发双方有各自的时钟源控制字符发送和接收,数据以一个字(字符)为传送单位,它们在线路上传送不连续。异步传送时,发送方能采用两种方式传送,即各个字符连续传送和字符间断传送。3异步传送方式异步通信按帧传送数据,利用每帧的起、止信号来建立发送方与接收方之间的同步,每帧内部各位均采用固定的时间间隔,但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束标志。MCS-51单片机串行通信采用异步通信方式。4异步传送方式异步通信的字符格式帧组成:起始位、数据位、奇偶校验位和停止位。5异步通信的字符格式起始位:“0”信号,占用1位,通知接收设备一个新字符开始;数据线不传送字符时保持“1”。接收端不断检测线路的状态,如果连续收到“1”以后又检测到“0”,表明新字符开始;6异步通信的字符格式数据位:可以选择5位、6位、7位或8位,发送时,先传送最低位,后传送高位;奇偶校验位:占用1位,也可以不用;停止位:可以选择1位、1.5位或2位。7波特率(bandRate)波特率定义:每秒钟传送二进制数码的位数,单位是位/秒(bps)。例,传送速率为120字符/秒,而每个字符又包含10位(1位起始位、7位数据位、1位奇偶校验位和1位停止位),则波特率为:120字符/秒×10位/字符=1200位/秒=1200波特异步通信波特率范围:50~56,000bps8波特率在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。时钟频率比波特率高若干倍。时钟频率高,则波特率高,通信速度就快;反之,时钟频率低,波特率就低,通信速度就慢。9异步传送方式异步传送方式设备简单、实现方便。但由于需要在传送数据中插入起始位和停止位,降低了有效数据位的传送速率。10串行通信的基础知识2.同步传送方式同步方式将一大批数据分成几个数据块,数据块之间用同步字符(SYN,16H)隔开,传输的各位二进制码之间没有间隔。11同步传送方式同步传送方式必须严格保持发送和接收时钟同步。为了保证接收正确,发送方需要传送数据和时钟信号。硬件要求高,通讯双方须严格同步。1210.1.2串行通信中数据的传送方式单工通讯(Simplex)半双工通讯(Half-duplex)全双工通讯(Full-duplex)MCS-51单片机采用全双工通讯方式13串行通信中数据的传送方式单工通讯:数据单向传送。发送器接收器A站B站14串行通信中数据的传送方式半双工通讯:数据分时双向传送。特点:①每端需有一个收/发切换电子开关②切换会产生时间延迟应用:打印机串口等发送器接收器发送器接收器A站B站1574LS245逻辑图

(八同相三态收发器)16串行通信中数据的传送方式全双工通讯:可同时进行发送和接收。特点:①每一端都有发送器和接收器②有二条传送线应用:交互式应用,远程监测控制发送器接收器接收器发送器A站B站17协议与接口标准串行通信的格式及约定(如同步方式、通讯速率、数据块格式、信号电平等)不同,形成多种串行通信协议与接口标准。☞

通用异步收发器(UART)-MCS-51串口等☞通用串行总线(USB)18协议与接口标准☞

I2C总线:Inter-IntegratedCircuitPhilips公司研制的一种简单、双向二线制同步串行总线。I2C串行总线一般有两根信号线:双向数据线SDA、时钟线SCL。一般微控制器与各种传感器的通信通过I2C总线。19协议与接口标准☞

RS-485:RS-485采用平衡发送和差分接收,具有抑制共模干扰的能力。用于多点互连时非常方便,可以省掉许多信号线。应用RS-485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。采用半双工方式,通信距离为几十米到上千米。20

RS-485的主要特点差分信号拥有更好的噪声抗干扰性能;差分信号可抑制外部噪声(A和B);共模偏移量(地偏移)也可抵消;2122协议与接口标准☞

SPI总线:SerialPeripheralBus总线是Motorola公司提出的一种同步串行外设接口,容许CPU与各种外围接口器件以串行方式进行通信、交换信息。23协议与接口标准☞

RS-232C:美国电子工业协会EIA(ElectronicIndustryAssociation)制定的一种串行物理接口标准。逻辑1(MARK)=-3V~-15V

逻辑0(SPACE)=+3~+15V24MCS-51串行口寄存器结构2510.2MCS-51单片机的串行接口串行接口电路为用户提供了两个串行口缓冲寄存器(SBUF),发送缓存器:接收片内总线送来的数据,只能写不能读。数据通过TXD引脚向外传送;接收缓冲器:向片内总线发送数据,只能读不能写。通过RXD引脚接收数据。

发送缓冲器与接收缓冲器共用一个地址99H。2610.2.1MCS-51单片机的串行接口串行口工作状态受控于:SCON:串行口控制寄存器,用来控制串行口的工作方式等。PCON:电源控制寄存器。27串行口控制/状态寄存器SCON(98H)D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI位序SCONSM0SM1方式说明波特率000同步移位寄存器主振频率fosc/12

01110位异步接收和发送定时器控制

10211位异步接收和发送fosc/32,fosc/6411311位异步接收和发送定时器控制28串行口控制/状态寄存器SCON(98H)SM2:多机通信控制位,主要用于工作方式2和工作方式3。在这二个方式下:SM2=1,当接收到第9位数据(RB8)为0时,不置位接收中断标志RI,并且将接收到的前8位数据丢弃;RB8为“1”时,将接收的前8位数据送SBUF,并置位RI产生中断请求。SM2=0时,不论RB8为“0”和“1”,都将前8位数据装入SBUF中,并产生中断。在方式0时,SM2必须为“0”。29串行口控制/状态寄存器SCONREN:允许接收控制位。REN=1,允许串口接收数据;REN=0,禁止串口接收数据;TB8:发送数据的第9位。在方式2、3中,准备发送的第9位数据存放在TB8位,可用作校验位和地址/数据标识位。此位由软件置位和复位。RB8:接收数据的第9位。在方式2、3中,存放接收数据的第9位。在方式1下,若SM2=0,则RB8存放收到的停止位方式,对接收数据进行某种控制;方式0下,不使用RB8位。30串行口控制/状态寄存器SCONTI:发送中断标志,指示发送的一帧是否结束。在方式0下,发送完第8位数据时,TI置位;其它方式,发送停止位时,TI置位。必须由软件清零。RI:接收中断标志,指示接收的一帧是否结束。在方式1下,接收到第8位数据时,RI置位;其它方式,接收到停止位时,RI置位。必须由软件清零。31电源控制寄存器PCON在方式1、2、3时,与串行通信有关的是D7位(SMOD),该位为波特率选择位。///SMOD位符号D0D1D2D3D4D5D6D7位序当SMOD=1时,串行口波特率×2;当SMOD=0时,串行口波特率为设定值。

MCS-51复位后,SMOD=0。PCON单元地址87H,不可位寻址。3210.2.2MCS-51串行口的工作方式1.方式0:移位寄存器输入/输出方式串行口相当于一个并入串出(发送)或串入并出(接收)的移位寄存器。在此方式下,MCS-51一般要外接移位寄存器。主要用途是与外接的移位寄存器结合构成并行I/O口扩展。低位在前。33串行口方式0的时序34方式0:移位寄存器输入/输出方式(1)数据输出(发送)

数据写入SBUF后,数据在移位脉冲(TXD)控制下,由RXD端逐位移入74LS164。当8位数据全部移出后,TI由硬件置位,发生中断请求。若CPU响应中断,则从0023H单元开始执行串行口中断服务程序,数据由74LS164并行输出。35方式0:移位寄存器输入/输出方式(2)数据输入(接收)REN=1时,数据在移位脉冲控制下,从RXD端输入。当接收到8位数据时,置位RI,发生中断请求。通过外接74LS165,串行口实现数据的并行输入。36方式1:10(8)位异步接收/发送方式

10位为一帧的异步串行通信方式。其帧格式为1个起始位、8个数据位和1个停止位。(1)数据输出(发送)

数据写入SBUF开始发送,此时由硬件加入起始位和停止位,构成一帧数据,由TXD串行输出。输出一帧数据后,TXD保持在高电平状态下,并将TI置位,通知CPU可进行下一个字符发送。37方式1:10(8)位异步接收/发送方式2.数据输入(接收)

当REN=1、SM0=0、SM1=1,并检测到起始位后,由移位脉冲控制接收数据。当满足条件:RI=0;收到停止位为“1”或SM2=0时,8位数据送入SBUF,停止位进入RB8,置位中断标志RI。如果两个条件不满足,数据将丢失。38串行口方式1的时序39方式2:11(9)位异步发送/接收方式方式2为11位为一帧的异步串行通信方式。帧格式为1个起始位、9个数据位和1个停止位。方式2下,字符还是8个数据位,增加了第9位数据位(D8),即TB8,其功能由用户确定,是一个可编程位。发送数据前,用指令将SCON的TB8位中数据准备好:

SETBTB8;TB8位置“1”CLRTB8;TB8位置“0”40方式2:11(9)位异步接收/发送方式

MOVSCON,#80HMOVPCON,#80HMOVR0,#40HMOVR2,#16LOOP:MOVA,@R0

;取数据

MOVC,P;

MOVTB8,C

MOVSBUF,A;数据送发送缓冲器

;启动发送WAIT:JNBTI,WAITCLRTI;清除发送中断标志TIINCR0DJNZR2,LOOP

TB8可作为多机通信中的地址或数据的标志位,也可为奇偶校验位。例,以TB8作为奇偶校验位,发送程序。41方式2:11(9)位异步发送/接收方式

REN=1、SM0=1、SM1=0时,串口以方式2接收数据。当满足条件:RI=0,SM2=0;或收到的第9位数据为“1”。

8位数据送入SBUF,第9位数据进入RB8,置位RI。如果条件不满足,数据将丢失。42[例]若附加第9位数据为奇偶校验位,接收处理程序:

MOVSCON,#90HLOOP:JNBRI,LOOP

CLRRI;清除接收中断标志RI

MOVA,SBUF;前8位数据

MOVC,PJBPSW.0,ONE;P=1则判断RB8是否为1?

JBRB8,ERR;A的奇偶位为0,RB8为1,出错

SJMPOKONE:JNBRB8,ERROK:MOV@R0,A…..ERR:…..

;出错处理程序入口,如丢弃数据、要求重发等43串行口方式2、3的时序44方式3:11位异步发送/接收方式当SM0、SM1=11时,串口工作于方式3,帧数据格式同方式2,但波特率可变,由T1确定。45MCS-51波特率计算-方式0波特率固定:fosc为主机主频46MCS-51波特率计算-方式1、3波特率由T1的溢出率确定,计算公式为:其中,SMOD为寄存器PCON的最高位。T1的溢出率与其采用的工作方式有关:47MCS-51波特率计算-方式2有两种固定波特率,即:fosc/32和fosc/64常用波特率和定时器T1初值关系表48波特率(方式1、3)fosc=6Mfosc=12Mfosc=11.059MSMODT1方式初值SMODT1方式初值SMODT1方式初值62.5k

12FFH

19.2k

12FDH9.6k

02FDH4.8k

12F3H02FAH2.4k12F3H12F3H02F4H1.2k12E6H02E6H02E8H60012CCH02CCH02D0H30002CCH0298H02A0H137.5121DH021DH022EH1100272H01FEEBH01FEFFH4910.3.2串行口方式0用作并行I/O口【例10.2】74LS164并行输出端接8支发光二极管,利用其串入并出功能,将发光二极管从左到右依次点亮,反复循环。假定发光二极管为共阴极接法。50编程实现方法

ORG0023H AJMPSBR ORG2000H MAIN:MOVSCON,#00H;串行口工作在方式0 MOVA,#80H;最左一位点亮

CLRP1.0;关闭并行输出

MOVSBUF,A;开始串行输出LOOP:SJMP$SBR:SETBP1.0 ;启动输出

ACALLDELAY;调用延时子程序

CLRTI ;清发送中断标志

RR A ;发光右移

CLRP1.0;关闭并行输出

MOVSBUF,A;再次串行输出

RETI5110.3.3串口方式1、3时的发送和接收【例】利用串行口进行双机通信。52甲机发送(采用查询方式)

MOVSCON,#80H;设置工作方式2MOVPCON,#00;置SMOD=0,波特率不加倍

MOVR0,#40H;数据区地址指针

MOVR2,#10H;数据长度LOOP:MOVA,@R0;取发送数据

MOVC,P;奇偶位送TB8MOVTB8,CMOVSBUF,A;送串口并开始发送数据WAIT:JBCTI,NEXT;

检测是否发送结束,并清除TISJMPWAITNEXT:INCR0;修改发送数据地址指针

DJNZR2,LOOPRET53乙机接收(查询方式)

MOVSCON,#90H;方式2,并允许接收MOVPCON,#00H;置SMOD=0MOVR0,#60H;置数据区地址指针MOVR2,#10H;等待接收数据长度LOOP:JBCRI,READ;等待接收数据,并清RISJMPLOOPREAD:MOVA,SBUF;读一帧数据

MOVC,PJNCLP0;C不为1转LP0JNBRB8,ERR;RB8=0,即RB8不为P转ERRAJMPLP1LP0:JBRB8,ERR;RB8=1,即RB8不为P,转ERRLP1:MOV@R0,A;RB8=P,接收一帧数据

INCR0DJNZR2,LOOPRETERR:…

;出错处理程序5410.3.3串口方式1、3时的发送和接收例10.38031按双工方式收发ASCII字符,最高位用作奇校验位。要求传送波特率为1200bps。编程思想:7位ASCII码加1位奇校验位共8位数据位,采用串口方式1。将P值取反后放入ASCII码最高位,实现奇校验。设fosc为6MHz,发送数据区的首地址为20H,接收数据区的首地址为40H。55串口方式1、3时的发送和接收MOVTMOD,#20HMOVTL1,#0F4HMOVTH1,#0F4HSETBEASETBTR1MOVSCON,#50HMOVR0,#20HMOVR1,#40HACALLSOUTLOOP:SJMP$主程序56串口方式1、3时的发送和接收ORG0023HAJMPSBR1SBR1:JNBRI,SENDACALLSINSJMPNEXTSEND:ACALLSOUTNEXT:RETI串口中断服务程序57串口方式1、3时的发送和接收SOUT:MOVA,@R0MOVC,PCPLCMOVACC.7,C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论