单片机串口通信_第1页
单片机串口通信_第2页
单片机串口通信_第3页
单片机串口通信_第4页
单片机串口通信_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

单片机串口通信第一页,共三十二页,2022年,8月28日2.同步方式同步方式仅在开始用若干字符作为同步号令,然后连续发送数据,如图所示。由于没有在每一个字符中,配置起始、停止位,所以结构紧凑,传输效率高、速度快,其组成如下图所示:

同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。例如IIC通信,SPI通信等第二页,共三十二页,2022年,8月28日三串行通信的数据通路形式:

1.单工方式:指通信双方,一方只能发送,另一方只能接收,传送方向是单一的。

2.半双工方式:通信双方只有一根传输线(共地),但任何一方都可以发送,当一方发送时,另一方只能接收。

3.全双工方式:需要通信双方连接两条传输线(共地),一条是将数据从甲方送到乙方,另一条是从乙方送到甲方。允许双向同时发送。第三页,共三十二页,2022年,8月28日MCS-51串行通信接口单片机串口的特点:全双工、异步、串口单片机串口由RXD和TXD构成。MCS-51单片机是

位CPU;串行通信接口中,数据是一位一位按顺序向外传送的。单片机是如何将数据进行串-并以及并-串的转换?

第四页,共三十二页,2022年,8月28日

7.2.1通用的异步接收/发送器UART

在串行通信中,数据是一位一位按顺序进行传送的,而计算机内部的数据是并行传输的。因此当计算机向外发送数据时,必须先将并行数据转换为串行数据,然后再发送;反之,当计算机接收数据时,又必须先将串行数据转换为并行数据,然后再输入计算机内部。

MCS-51单片机串口有一个核心部件——通用的异步接收/发送器,简称UART(UniversalAsynohronousReceiver/Transmitter),就是完成并→串或串→并变换的硬件电路,其结构如图7-6所示。第五页,共三十二页,2022年,8月28日图7-6硬件UART结构图第六页,共三十二页,2022年,8月28日工作原理:接收数据时,串行数据由RXD端(ReceiveData)经接收门进入移位寄存器,再经移位寄存器输出并行数据到接收缓冲器SBUF,最后通过数据总线送到CPU,是一个双缓冲结构,以避免接收过程中出现帧重叠错误。发送信息时,CPU将数据经过数据总线送给发送缓冲器SBUF后,直接由控制器控制SBUF移位,经发送门输出至TXD,为单缓冲结构,由于(CPU主动)不会发生帧重叠错误,发送缓冲器与接收缓冲器在物理上是相互独立的,但在逻辑上只有一个,共用地址单元99H。对发送缓冲器只存在写操作,对接收缓冲器只能读操作。接收和发送数据的速度由控制器发出的移位脉冲所控制,其可由内部定时器T1产生的时钟获得,此时定时器T1作为波特率发生器使用。第七页,共三十二页,2022年,8月28日二、串行通信的传送速度串行通信的数据传送是按位进行的,每秒所传送的位数称为波特率,如果数据传送的速度为每秒120帧,每个帧包含10位,则每秒传送1200位,即波特率为1200。

10☓120=l200bit/s=1200baut

每位传送的时间T等于波特率的倒数,如上例波特率为1200则每位传送时间为

T=0.833ms

国际上规定的标准波特率系列为300、600、1200、1800、2400、4800、9600和19200bit/s。第八页,共三十二页,2022年,8月28日波特率的计算例:某异步通讯接口的波特率为120,则该接口每秒种传送

数据。例:某串口异步通信接口,其字符帧格式为1个起始位,1个校验位,8个数据位和一个停止位,当通信接口每分钟传送1200位数据时,其传送波特率为。A.4800位B.20位C.600位 D.30位第九页,共三十二页,2022年,8月28日

四、串行通信的校验方式,

奇校验:根据数据中1的个数,决定校验位是否置1。以使1的个数总和为奇数。

偶校验,根据数据中1的个数,决定校验位是否置1,以使1的个数总和为偶数。2.一组数据的校验方法在一组数据之后发送数据代数和或在一组数据之后加发数据异或值。

1.异步通信中单个字符的校验方法通常是在单个字符末位后面,附加一个校验位。第十页,共三十二页,2022年,8月28日一、数据缓冲器SBUF

发送数据 通过指令MOVSBUF,A将数据写入SBUF,然后串口自动将数据按事先设置的方式及速率从TXD(P3.1)端口输出,数据发送完毕,串口向CPU申请中断,且通过硬件将TI置1,表示发送已经结束,等待写入第二帧数据。

接收数据 当有数据送给单片机串口时,串口按事先设置的方式及速率自动从端口TXD(P3.1)接收数据,数据校验正确后送SBUF,一帧数据接收完毕RI=1,串口向CPU请求中断且表示接收已经结束。单片机只要通过执行:MOVA,SBUF第十一页,共三十二页,2022年,8月28日串行口的控制寄存器

MCS-51的串行口有四种工作方式,用户可以通过对串行控制寄存器SCON编程来设定。此外,还有波特率控制寄存器PCON,必须详细了解这些特殊功能寄存器,才能正确应用串行通信接口。

1.串行口控制寄存器SCON

特殊功能寄存器SCON的地址为98H,具有位地址,可位寻址,复位时为00H,其格式如下:SM0、SM1:串行口的方式选择位,见表7-1。

第十二页,共三十二页,2022年,8月28日SM2:方式2和方式3的多机通信控制位;REN:允许串行接收位。TB8:在方式2和方式3中,发送的第9位数据,需要时由软件置位或复位。RB8:在方式2和方式3中,接收到的第9位数据;在方式1时,RB8是接收到的停止位;在方式0,不使用RB8。TI:发送中断标志。TI必须由软件清“0”RI:接收中断标志,RI必须由软件清“0”。

第十三页,共三十二页,2022年,8月28日

2.特殊功能寄存器PCON

特殊功能寄存器PCON的地址为87H,没有位地址。其格式如下:PCON的最高位是串行口波特率系数控制位SMOD,当SMOD为“1”时,方式2,3中使波特率加倍。PCON的其他位为掉电方式控制位,详见2.4节。第十四页,共三十二页,2022年,8月28日单片机串行接口的工作方式一、串行口工作方式0:串口扩展为并口1)波特率固定为发送—位数据等于一个机器周期。2)不论是发送还是接收,数据都是从RXD(P3.0)端出入。TXD端而作为同步移位脉冲输出端。3)工作于方式0时,可将串行接口扩展为并行接口,第十五页,共三十二页,2022年,8月28日7.2.3串行接口的工作方式

串行通信接口有4种工作方式,它们由SCON中的SM0、SM1决定。下面从应用的角度,重点讨论各种工作方式的功能特性和工作原理。

1.方式0——移位寄存器方式方式0通过外接一个移位寄存器扩展一个并行的输入/输出口。

(1)发送方式0发送时,串行口上外接74LS164移位寄存器。其接口如图7-7所示。

(2)接收方式0接收时,串行口上外接并行输入串行输出移位寄存器74LS166,其接口如图7-8所示。图7-7方式0发送接口图图7-8方式0接收接口图

DATA第十六页,共三十二页,2022年,8月28日必须注意:在接收时,除了设置SCON控制字为方式0外,还应设置允许接收控制位REN为“1”,清除RI中断标志,才能启动接收器工作。方式0工作时,必须使SCON控制字的SM2位(多机通信控制位)为“0”,从而不影响TB8和RB8位。由于波特率固定,故无需用定时器提供。但以中断方式传输数据时,CPU响应中断不会自动清除TI、RI标志,所以在中断服务程序中,必须由指令将TI、RI清“0”。

方式1:方式1为8位异步通信接口,1帧信息为10位,即1位起始位(0)、8位数据(低位在前)及1位停止位(1),如图7-9所示。TXD为发送端,RXD为接收端,波特率由定时器T1的溢出率来决定。图7-9方式1数据格式第十七页,共三十二页,2022年,8月28日(1)发送:

CPU向发送缓冲器SBUF写入一个数据后,便启动串行口在TXD端输出帧信息,先发送起始位“0”,接着从低位开始依次输出8位数据,最后输出停止位。发送完一帧信息后,发送中断标志TI置“1”,向CPU请求中断。(2)接收:当允许接收位REN置“1”后,接收器便采样RXD端电平,当采样到“1”到“0”的跳变时,启动接收器接收。计数器的16个状态把1位时间等分成16份,并在第7、8、9个计数状态时,采样RXD电平。因此,每一位的数值采样三次,取其中至少有两次相同的值为确认值。启动后,如果三次采样的确认值不是“0”,则起始位无效,复位接收电路重新检测。如果确认值为“0”,起始位有效,则开始按从低位到高位的顺序接收一帧的数据信息。

必须注意,在方式1接收中设置有数据辨识功能:只有同时满足以下两个条件时,接收到的数据才有效,才会将数据装入SBUF,并置RI为“1”,向CPU请求中断;否则,所接收的数据帧无效。当SM2=1时,接收到的停止位“1”装入RB8中。①RI=0。②接收到停止位为“1”。第十八页,共三十二页,2022年,8月28日

方式1的特点:

1)波特率可变串口波特率由定时器T1产生,T1工作于方式2,并决定于T1定时时间,而T1的定时时间决定于装入的时间常数N,因此可根据时间常数N推出波特率,即 2)传送数据为8位,连同一位起始位、一位停止位组成一帧,即一帧为10位,发送由TXD输出,接收由RXD输入,可构成全双工的串行通信端口。

例:设计波特率为4800b/s,晶振频率为11.0592MHz,定时器T1工作在方式2,SMOD=0,则计数器初值为

。第十九页,共三十二页,2022年,8月28日

3.方式2、方式3

串行口工作在方式2、方式3时,为9位异步通信口,1帧信息由11位组成,即1位起始位、8位数据D0~D7(低位在前)、1位可编程的第9位D8(发送时,第9位为SCON中的TB8;接收时,第9位为SCON中的RB8)及1位停止位,如图7-10所示。图7-10方式2、方式3数据格式(1)发送:当CPU向发送缓冲器SBUF写入一个数据后,便立即启动发送器发送。先发送起始位“0”,接着从低位开始依次输出8位数据,再发送SCON中的TB8,最后输出停止位。发送完一帧信息后,发送中断标志TI置“1”,向CPU请求中断。(2)接收:使用与方式1类似的方法识别起始位。必须注意,方式2、方式3接收中也设置有数据辨识功能:只有同时满足以下两个条件时,接收到的数据才有效,才能将接收到的数据装入SBUF和RB8,并置RI为“1”;否则,所接收的数据帧无效。①RI=0。②接收到的停止位为“1”。

方式2、方式3的区别:方式2的波特率为fosc/32或fosc/64,而方式3的波特率可变。

第二十页,共三十二页,2022年,8月28日三、串口工作方式2、3

方式2、3的工作性能

1)方式2波特率固定,并等于。

方式3波特率计算方法同方式1,即等于。

2)一帧数据为11位,包括1位起始位、8位数据位、1位可编程位、1位停止位。数据位低位在前高位在后,第9位可编程位发送时从SCON中的TB8取出,接收时第9位存SCON中的RB8。返回本章首页第二十一页,共三十二页,2022年,8月28日第四节串口初始化编程一、计算波特率串口方式0

串口方式1和串口方式3

串口方式2

第二十二页,共三十二页,2022年,8月28日二、对SCON、PCON、TMOD初始化 以设计一8051单片机控制系统为例,设主振频率为12MHz,要求串口发送数据为8位、波特率为1200bps.则初始化步骤为:

1.先按波特率要求,计算T1的时间常数N,设SMOD=1。 已知主振频率为12MHz,波特率为1200bps.,串口工作于方式1,按式7-4可求得

N=203.92≈0CCH 2.写出初始化程序

MOVSCON,#50H;串行口工作于方式1 MOVPCON,#80H;SMOD=1,

MOVTMOD,#20H;T1工作方式2定时方式

MOVTHl,#0CCH;设置时间常间为N MOVTLl,#0CCH;自动装入时间常数

SETBTR1 ;启动T1返回本章首页第二十三页,共三十二页,2022年,8月28日单片机双机通信实验1号单片机键盘上输入的数字可以在2号单片机的显示器LED上显示出来。第二十四页,共三十二页,2022年,8月28日第二十五页,共三十二页,2022年,8月28日第二十六页,共三十二页,2022年,8月28日1.甲乙两机点到点通信

设甲、乙二机为相距很近(1m之内)的MCS-51应用系统,则可将它们的串行口直接相连,以实现全双工的双机通信,如图7-19所示。当需要增加通信距离时,可以采用RS-232或RS-422标准进行双机通信。为了减少线路干扰,在收、发的数据端还可以采用光电隔离器(见图7-16)。图7-19双机通信第二十七页,共三十二页,2022年,8月28日【例】设有甲、乙两台单片机fosc=11.059MHz,用调用子程序的方法编程序。1#机(发送机):从内部RAM单元20H~25H中取出6个ASCII码数据,在最高位加上奇偶校验位后由串行口发送。采用8位异步通信,波特率为1200b/s。2#机(接收机):接收器把接收到的6个ASCII码数据,先进行奇偶校验。若传送正确,则将数据依次存放在内部RAM区20H~25H单元中。若奇偶出错,则将“0FFH”存入相应的单元中。解:图7-20为甲机发送、乙机接收程序流程图。第二十八页,共三十二页,2022年,8月28日图7-20单工通信流程图第二十九页,共三十二页,2022年,8月28日(1)1#机,主程序:ORG0000H AJMPMAINTORG0030H;主程序入口地址MAINT:MOVSP,#60HMOVTMOD,#20H ;置定时器T1为工作方式2MOVTH1,#0E8H ;置波特率1200b/s的计数初值MOVTL1,#0E8H MOVSCON,#40H ;串行口工作方式1SETB TR1 ;启动定时器T1工作MOVR0,#20H ;数据首地址→R0MOVR7,#06H ;传送字节数→R7LOOP:MOVA,@R0 ;取一个待传送的数据字节LCALLOUT1 ;调用串行口发送子程序INCR0 ;修改地址指针DJNZR7,LOOP ;若未全部发送完,则转LOOP继续SJMP$

第三十页,共三十二页,2022年,8月28日发送子程序OUT1:OUT1:MOVC,P ;设置奇偶校验位(补奇)

CPLCMOVACC.7,C MOVSBUF,A ;启动串行口发送数据

JNBTI,$ ;等待数据字节发送完毕

CLRTI ;清发送标志TI为下一数据串行发送做准备

RET ;子程序返回(2)乙机,主程序:

ORG0000H AJMPMAINDORG0030H ;主程序入口地址MAIND:

温馨提示

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

评论

0/150

提交评论