第八章串行通讯_第1页
第八章串行通讯_第2页
第八章串行通讯_第3页
第八章串行通讯_第4页
第八章串行通讯_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、1第八章第八章 MCS-51单片机串行通信单片机串行通信1、串行通信的基础知识。、串行通信的基础知识。2、串行通信接口的结构和工作方式,串行通、串行通信接口的结构和工作方式,串行通信接口的应用和编程。信接口的应用和编程。单片机原理及应用单片机原理及应用8.2 MCS-51的串行接口的串行接口8.1 串行通信的基础知识串行通信的基础知识2掌握单片机串行口的结构和工作方式。了解串行通信的通信方式。掌握串行口初始化程序及串行通信程序的编写。3并并 行行 数数 据据 传传 送送串串 行行 数数 据据 传传 送送原原 理理各数据位同时传送各数据位同时传送数据位按位顺序进行数据位按位顺序进行优优 点点传送

2、速度快、效率高传送速度快、效率高最少只需一根传输线即可完成:成本低最少只需一根传输线即可完成:成本低缺缺 点点数据位数数据位数传输线根数:成本高传输线根数:成本高速度慢速度慢应应 用用传送距离传送距离30米,用于计算机内部米,用于计算机内部几米几千公里,用于计算机与外设之间几米几千公里,用于计算机与外设之间一、串行通信基本原理一、串行通信基本原理 并行并行数据传送数据传送 同步同步 串行串行 异步(用于单片机中)异步(用于单片机中)41 1、同步通信、同步通信 以一串字符为一个传送单位,字符间不加标识以一串字符为一个传送单位,字符间不加标识 位,在一串字符开始位,在一串字符开始 用用同步字符同

3、步字符标识,硬件要求高,标识,硬件要求高,通讯双方须通讯双方须严格同步。严格同步。二、串行通信的基本方式二、串行通信的基本方式 2、异步通信、异步通信 以字符为传送单位用以字符为传送单位用起始位起始位和和停止位停止位标识每个字符标识每个字符的开始和结束字符,间隔不固定,只需字符传送时同的开始和结束字符,间隔不固定,只需字符传送时同步即可步即可。异步通信字符帧格式异步通信字符帧格式D0D1D2D3D4D5D6D7停止位停止位起始位起始位52.波特率的规定波特率的规定1.字符格式字符格式异步通信的双方需要两项约定:异步通信的双方需要两项约定:例:例:要求每秒传送要求每秒传送120个字符,每帧为个字

4、符,每帧为10位。位。解:波特率解:波特率=12010=1200位位/秒,每位秒,每位0.83ms 数据位数据位传送输率传送输率=1208=960位位/秒秒 一帧字符位数的规定:数据位,校验位,起始一帧字符位数的规定:数据位,校验位,起始位和停止位。位和停止位。波特率:每秒钟传送二进制数的位数波特率:每秒钟传送二进制数的位数6三、串行接口功能三、串行接口功能(1)发送器:并)发送器:并串数据格式转换,串数据格式转换,添加标识位和校验位,一帧发送结束,添加标识位和校验位,一帧发送结束,设置结束标志,申请中断。设置结束标志,申请中断。(2)接收器:串)接收器:串并数据格式转换,检查错误,去掉并数据

5、格式转换,检查错误,去掉标识位,保存有效数据,设置接收结束标志,申请中断。标识位,保存有效数据,设置接收结束标志,申请中断。(3)控制器:接收编程命令和控制参数,)控制器:接收编程命令和控制参数,设置工作方式:同步设置工作方式:同步/异步、字符格式、异步、字符格式、波特率、校验方式、数据位与同步时钟波特率、校验方式、数据位与同步时钟比例等。比例等。73、全双工通讯:全双工通讯:可可同时同时进行进行发送和接收。发送和接收。(1条或条或2条数据线,双向)条数据线,双向)发送器发送器接收器接收器地线地线数据线数据线发送接发送接收器收器接收发接收发送器送器地线地线数据线数据线四、串行数据传送方向四、串

6、行数据传送方向1、单工通讯:单工通讯:数据单向传送。数据单向传送。(1条数据线,单向)条数据线,单向)2、半双工通讯:半双工通讯:数据可数据可分时分时双向传送。双向传送。(1条数据线,双向)条数据线,双向)发送接发送接收器收器接收发接收发送器送器地线地线数据线数据线返返 回回81 1个全双工串行口,可同时发送和接收数据个全双工串行口,可同时发送和接收数据有有4 4种工作方式种工作方式波特率由软件设置,通过片内定时波特率由软件设置,通过片内定时/ /计数器产生计数器产生接收、发送均可工作在查询方式或中断方式接收、发送均可工作在查询方式或中断方式一、串行口的功能结构一、串行口的功能结构9MCS-5

7、1串行口结构串行口结构RITI 门门SBUF 发送控制器发送控制器波特率发生器波特率发生器 A 接收控制器接收控制器 或门或门串行口串行口中断中断 移位寄存器移位寄存器SBUFRXDTXD110二、串行接口控制寄存器二、串行接口控制寄存器1.数据缓冲器数据缓冲器SBUF2.节电控制寄存器节电控制寄存器PCON SMOD(PCON.7):):波特率加倍控制位。波特率加倍控制位。 SMOD=1,波特率加倍;,波特率加倍; SMOD=0,则不加倍。,则不加倍。发送发送SBUF和接收和接收SBUF共用一个地址共用一个地址99H。 1)发送)发送SBUF存放待发送的存放待发送的8位数据,写入位数据,写入

8、SBUF将同时启动发送。发送指令:将同时启动发送。发送指令:2)接收)接收SBUF存放已接收成功的存放已接收成功的8位数据,供位数据,供CPU读取。读取。读取串行口接收数据指令:读取串行口接收数据指令:MOV SBUF,AMOV A,SBUF11SM0、SM1:选择串行口选择串行口4种工作方式。种工作方式。SM2:多机控制位,用于多机通讯。多机控制位,用于多机通讯。REN:允许接收控制位,允许接收控制位,REN=1,允许接收;,允许接收; REN=0,禁止接收。,禁止接收。TB8:发送的第发送的第9位数据位,可用作校验位和地址位数据位,可用作校验位和地址/数据标识位。数据标识位。RB8:接收的

9、第接收的第9位数据位或停止位。位数据位或停止位。TI :发送中断标志,发送一帧结束,发送中断标志,发送一帧结束,TI=1,必须,必须软件清零软件清零;RI :接收中断标志,接收一帧结束,接收中断标志,接收一帧结束,RI=1,必须,必须软件清零软件清零。3.串行口控制串行口控制/状态寄存器状态寄存器SCON(98H)12(1)方式)方式0(SM0 SM1=00)-同步移位寄存器方式同步移位寄存器方式 用于扩展并行用于扩展并行I/O接口接口 1. 一帧一帧8位,无起始位和停止位。位,无起始位和停止位。 2. RXD:数据输入:数据输入/输出端。输出端。 TXD:同步脉冲输出端,每个脉冲对应一个数据

10、位。:同步脉冲输出端,每个脉冲对应一个数据位。 3. 波特率波特率Bfosc/12 如:如:fosc12MHz,B1MHz,每位数据占,每位数据占1 s。 4.发送过程:写入发送过程:写入SBUF,启动发送,启动发送,MOV SBUF,A 一帧发送结束,一帧发送结束,TI1。 接收过程:接收过程:REN=1且且RI=0,启动接收,启动接收,MOV A,SBUF 一帧接收完毕,一帧接收完毕,RI1。13(a)发送时序发送时序写入写入SBUFRXD输出输出TXDTID0D1D2D3D4D5D6D7 接收时序接收时序(b)写写REN=1RI=0RXD输入输入RI14(2) (2) 方式方式1(SM0

11、SM1=01)-1(SM0SM1=01)-8 8位数据异步通信方式位数据异步通信方式1. 1. 一帧一帧1010位:位:8 8位数据位,位数据位,1 1个起始位个起始位(0)(0),1 1个停止位个停止位(1)(1)。 2. RXD2. RXD:接收数据端:接收数据端 TXDTXD:发送数据端。:发送数据端。3.3.波特率:用波特率:用T T1 1作为波特率发生器,作为波特率发生器, B=(2B=(2SMODSMOD/32)/32)T T1 1溢出率。溢出率。4.4.发送:写入发送:写入SBUFSBUF,同时启动发送,一帧发送结束,同时启动发送,一帧发送结束,TI=1TI=1。 接收:接收:R

12、EN=1REN=1,允许接收。允许接收。 接收完一帧,若接收完一帧,若RI=0RI=0且且停止位为停止位为1 1 ( (或或SM2=0)SM2=0),将接,将接 收数据装入收数据装入SBUFSBUF,停止位装入,停止位装入RB8RB8,并使,并使RI=1RI=1; 否则丢弃接收数据,不置位否则丢弃接收数据,不置位RIRI。15写入写入SBUFTXD数据输出数据输出(a) 发送时序图发送时序图TID0D1D2D3D4D5D6D7停止位停止位起始位起始位采样采样检测检测负跳变负跳变RXD输入数据输入数据(b) 接收时序图接收时序图D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI当当RE

13、N=1,CPU开始采样开始采样RXD引脚负跳变信号,引脚负跳变信号,若出现负跳变,才进入数据接收状态,先检测若出现负跳变,才进入数据接收状态,先检测起始位,若第一位为起始位,若第一位为0,继续接收其余位;否则,继续接收其余位;否则,停止接收,重新采样负跳变。停止接收,重新采样负跳变。数据采样速率为波特率数据采样速率为波特率1616倍频,在数据位中间,用倍频,在数据位中间,用第第7 7、8 8、9 9个脉冲采样个脉冲采样3 3次次数据位,并数据位,并3 3中取中取2 2保留采保留采样值。样值。16(3) (3) 方式方式2 2、3(SM0SM1=10 OR 11)3(SM0SM1=10 OR 1

14、1) 9 9位数据异步通讯方式位数据异步通讯方式1.一帧为一帧为11位:位:9位数据位,位数据位,1个起始位个起始位(0),1个停止位个停止位(1)。第。第9位数据位在位数据位在 TB8/RB8中,常用作校验位和多机通讯标识位。中,常用作校验位和多机通讯标识位。2. RXD:接收数据端:接收数据端 TXD:发送数据端。:发送数据端。3.波特率:方式波特率:方式2:B=(2SMOD/64)fosc 。 方式方式3:B=(2SMOD/32)T1溢出率溢出率 。4.发送:先装入发送:先装入TB8,写入,写入SBUF并启动发送,发送结束,并启动发送,发送结束,TI=1 接收:接收:REN=1,允许接收

15、。,允许接收。 接收完一帧,若接收完一帧,若RI=0且且第第9位为位为1 (或或 SM2=0),将接收数据装入接收,将接收数据装入接收SBUF,第,第9位装入位装入RB8,使,使 RI=1;否则丢弃接收数据,不置位;否则丢弃接收数据,不置位RI。17(a) 发送时序图发送时序图写入写入SBUFTXD输出输出TIRXD输入输入(b) 接收时序图接收时序图RID0D1D2D3D4D5D6TB8停止位停止位起始位起始位D7D0D1D2D3D4D5D6RB8停止位停止位起始位起始位D7检测检测负跳变负跳变184种方式比较种方式比较方方式式波波 特特 率率传传 送送 位位 数数发送发送端端接收接收端端用

16、用 途途01/12 fosc(固定不变)(固定不变)8(数据)(数据)RXDRXD接移位寄存器,接移位寄存器,扩充并口扩充并口12SMOD/32 T1溢出率溢出率10(起始位、(起始位、8位数据位、位数据位、 停止位)停止位)TXDRXD单机通讯单机通讯22SMOD/64 fosc11(第(第9位为位为1:地址;:地址; 为为0:数据):数据)TXDRXD多机通讯多机通讯32SMOD/32 T1溢出率溢出率11位位(同方式(同方式2)TXDRXD多机通讯多机通讯19SIO: MOV SCON,#控制状态字控制状态字 ;写方式字且;写方式字且TI=RI=0 ( MOV PCON,#80H ) ;

17、波特率加倍;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率发生器作波特率发生器 ( MOV TH1,#X ) ;选定波特率;选定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;开串行口中断;开串行口中断 ( SETB ES)1、串行口初始化编程格式、串行口初始化编程格式202、串行口在方式、串行口在方式0的应用的应用串行口通过接口串行口通过接口74LS164实现:串行实现:串行并行的数据转换并行的数据转换(显示器接口显示器接口); 通过接口通过接口74LS165实现:并行实现:并行串行的数据转换。串行的数据转换。 8 80 0C C5 51

18、 1R RX XD DT TX XD D7 74 4L LS S1 16 64 4. . . .波波特特率率为为f fo os sc c/ /1 12 2的的同同步步移移位位脉脉冲冲+ +5 5V V共共阳阳极极Q Q7 7Q Q1 1Q Q0 0D D(0 0)7 74 4L LS S1 16 64 4. . . .Q Q7 7Q Q1 1Q Q0 0D D(1 1)7 74 4L LS S1 16 64 4. . . .Q Q7 7Q Q1 1Q Q0 0D D(7 7)(7 7)(0 0)(1 1). . . . . . . . . .数数 据据低低高高串串入入并并出出8 80 0C C

19、5 51 1R RX XD DT TX XD D7 74 4L LS S1 16 65 5. . . .Q QH HS S/ /L LC CL LK K( 2 2)数数 据据低低高高并并 入入 串串 出出P P1 1. .0 0S SI IN N7 74 4L LS S1 16 65 5. . . .Q QH HS S/ /L LC CL LK K( 1 1) 用于接移位寄存器扩充并口。用于接移位寄存器扩充并口。213、串行口在方式、串行口在方式1、2、3的应用的应用共同点:均用于异步通信共同点:均用于异步通信不同点:不同点:1)字符帧格式)字符帧格式方式方式1:10位异步通信,不可以用于多机

20、通信位异步通信,不可以用于多机通信方式方式2、3:11位异步通信,可以用于多机通信位异步通信,可以用于多机通信2)波特率)波特率方式方式1、3:有:有MCS-51内部定时计数器决定内部定时计数器决定方式方式2:由主脉冲频率决定:由主脉冲频率决定22 串行口按全双工方式收发串行口按全双工方式收发ASCII码字符,最码字符,最高高1位用来作奇偶校验位,采用奇校验方式,要位用来作奇偶校验位,采用奇校验方式,要求传送的波特率为求传送的波特率为1200波特。假设发送缓冲区首波特。假设发送缓冲区首址为址为20H,接收缓冲区首址为,接收缓冲区首址为40H,时钟频率,时钟频率fosc=6MHZ,试编写有关的通

21、信程序,试编写有关的通信程序。23分分析析 7位位ASCII码加码加1位奇校验共位奇校验共8位数据,采用位数据,采用串行口工作方式串行口工作方式1; 奇偶校验位奇偶校验位P值取反后放入值取反后放入ASCII码的最高码的最高位,即是要求的奇校验;位,即是要求的奇校验;24 CPUCPU只需把数据从接收缓冲器读出和把数据写只需把数据从接收缓冲器读出和把数据写入发送缓冲器,数据传送用中断方式进行;入发送缓冲器,数据传送用中断方式进行; 响应中断以后,通过检测是响应中断以后,通过检测是TITI置位还是置位还是RIRI置位置位来决定来决定CPUCPU是进行发送操作还是接收操作;是进行发送操作还是接收操作

22、; 定时器定时器T1T1采用工作方式采用工作方式2 2,避免重装定时初值。,避免重装定时初值。25取取SMOD=0,T1的初值的初值C:SMOD0688osc226 10222433384384 1200fCF H 波特率TH1=TL1=F3HTMOD=00100000B=20H 26SM0、SM1=01(方式(方式1););SM2=0;REN=1(允许接收数据允许接收数据);其余各位均取;其余各位均取0则则 SCON=01010000B=50HSMOD=0,则,则PCON=00H272829设有如图甲、乙两台单片机,以工作方式设有如图甲、乙两台单片机,以工作方式2 2、全双工、全双工串行通信

23、、每帧为串行通信、每帧为1111位、可程控的第位、可程控的第9 9位数据位用于位数据位用于奇偶校验的补偶位。奇偶校验的补偶位。编出能实现如下功能的程序:编出能实现如下功能的程序:3031 甲机中断服务程序甲机中断服务程序INTSE1:JB RI,LOOP1 CLR TI SJMP ENDT1 LOOP1: CLR RI MOV A,SBUF CJNE A,0,LOOP2 ;接收数据不为;接收数据不为0,重发,重发 INC DPTR MOVX A,DPTR MOV C,P MOV TB8,C MOV SUBF,A DJNZ R0,ENDT1 CLR ES ENDT1: RETI LOOP2: MOVX A,DPTR MOV C,P MOV TB8,C MOV SBUF,A SJMP ENDT1 甲机甲机主程序主程序 ORG 0000H LJMP MAIN ORG 0023H LJMP INTSE1 ORG 0030H MAIN: MOV PCON,#80H ;SMOD=1 ,波特率加倍,波特率加倍

温馨提示

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

评论

0/150

提交评论