【大学课件】串行数据通信

上传人:pu****.1 文档编号:580330017 上传时间:2024-08-28 格式:PPT 页数:29 大小:747KB
返回 下载 相关 举报
【大学课件】串行数据通信_第1页
第1页 / 共29页
【大学课件】串行数据通信_第2页
第2页 / 共29页
【大学课件】串行数据通信_第3页
第3页 / 共29页
【大学课件】串行数据通信_第4页
第4页 / 共29页
【大学课件】串行数据通信_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《【大学课件】串行数据通信》由会员分享,可在线阅读,更多相关《【大学课件】串行数据通信(29页珍藏版)》请在金锄头文库上搜索。

1、7-1 7-1 串行通信基础知识串行通信基础知识7-2 80517-2 8051串行口串行口第第7章章 串行数据通信串行数据通信7-3 80517-3 8051串行口串行口应用举例应用举例http:/ 计算机串行通信基算机串行通信基础 计算机与外界进行信息交换称为计算机与外界进行信息交换称为通信通信。 通信的基本方式:通信的基本方式:并行通信并行通信 串行通信(串行通信(单片机中主要采用)单片机中主要采用)并并 行行 数数 据据 传传 送送串行数据传送:同步和异步串行数据传送:同步和异步原原 理理各数据位同时传送各数据位同时传送数据位按位顺序进行数据位按位顺序进行优优 点点传送速度快、效率高传

2、送速度快、效率高速度慢速度慢缺缺 点点数据位数数据位数传输线根数:成本高传输线根数:成本高最少只需一根传输线即可完成:成本低最少只需一根传输线即可完成:成本低应应 用用传送距离传送距离30米,用于计算机内部米,用于计算机内部几米几千公里,用于计算机与外设之间几米几千公里,用于计算机与外设之间辫最绚褐盔生针州嗣栗沂攘爵佰乏傈遂扑装阁衍谨辣剔隔曲琵沿遁您陛烤【大学课件】串行数据通信【大学课件】串行数据通信一、异步通信与同步通信一、异步通信与同步通信1、异步通信、异步通信 异步通信异步通信是指通信双方是指通信双方使用各自的使用各自的时钟控制数据的控制数据的发送和送和接收接收过程。程。为使双方的收使双

3、方的收发协调,要求收、,要求收、发双方的双方的时钟尽可尽可能一致,能一致,以起始位、停止位保持通信同步。其数据传送以起始位、停止位保持通信同步。其数据传送以以帧为单位位传送送。每。每1帧数据由帧数据由1个字符代码组成,每个字符代码组成,每1个字符代码由个字符代码由起始位、数据位、奇偶校验位和停止位组成。起始位、数据位、奇偶校验位和停止位组成。胚寒寡恃兑驳瘁毡妨兰盟零贮涣使殉海挎灾玲龚希折猛死吴供学乖饭咕音【大学课件】串行数据通信【大学课件】串行数据通信2、同步通信、同步通信 以一串字符为一个传送单位,字符间不加标识位,字符串开以一串字符为一个传送单位,字符间不加标识位,字符串开始用同步字符标识

4、(一般约定为始用同步字符标识(一般约定为12个字符),以触发同步时个字符),以触发同步时钟开始发送或接收数据;多字节数据之间不允许有空隙,每位占钟开始发送或接收数据;多字节数据之间不允许有空隙,每位占用的时间相等;空闲位需发送同步字符。用的时间相等;空闲位需发送同步字符。 硬件要求高,通讯双方须严格同步,适用于成批数据传送。硬件要求高,通讯双方须严格同步,适用于成批数据传送。 单片机不用该方式。单片机不用该方式。 异步通信对硬件要求较低,实现起来比较简单、灵活,异步通信对硬件要求较低,实现起来比较简单、灵活,适用于数据的随机发送适用于数据的随机发送/接收,但因每个字节都要建立一次同接收,但因每

5、个字节都要建立一次同步,即每个字符都要额外附加两位,所以工作速度较低,在步,即每个字符都要额外附加两位,所以工作速度较低,在单片机中主要采用异步通信方式。单片机中主要采用异步通信方式。蓑支淮黑藻财是狭庙示茂织肪拿堪瞒铬溅是肺朝闲鄙李物稳视恳皂狱腆圭【大学课件】串行数据通信【大学课件】串行数据通信二、串行通信的制式二、串行通信的制式 串行通信按照数据传送方向可分为三种制式:串行通信按照数据传送方向可分为三种制式:单单 工:工: 数据传输仅能沿数据传输仅能沿一个方向一个方向传输。传输。半双工:数据传输可以沿半双工:数据传输可以沿两个方向两个方向,但分时进行。,但分时进行。全双工:全双工:数据可以数

6、据可以同时进行双向同时进行双向传输。传输。寒疯蹭帅劝沽舅磋脏窃郡亨捻碉诺洗栅刽狠违碘舷讥端爽玻秽蕉有焊岂徘【大学课件】串行数据通信【大学课件】串行数据通信三、串行通信波特率三、串行通信波特率 波特率波特率bps(bit per second)定义定义: 每秒传输数据的位数。每秒传输数据的位数。 波特率的倒数即为每位传输所需的时间。波特率的倒数即为每位传输所需的时间。 相互通信的甲乙双方必须具有相同的波特率,否则无法成相互通信的甲乙双方必须具有相同的波特率,否则无法成功地完成串行数据通信。功地完成串行数据通信。 如每秒钟传送如每秒钟传送240个字符,而每个字符格式包含个字符,而每个字符格式包含1

7、0位位(1个个起始位、起始位、1个停止位、个停止位、8个数据位个数据位),这时的波特率为:,这时的波特率为: 10位位240个个/秒秒 = 2400 bps浚览付墓栽棱硅咎殊登剁愿刷扮啃眉杜醇深顾褥存恨赚惦求汰很窗食哥胰【大学课件】串行数据通信【大学课件】串行数据通信7.2 80C51的串行口的串行口 两个物理上独立的接收、发送数据缓冲器两个物理上独立的接收、发送数据缓冲器SBUF,占用同一,占用同一地址地址99H ;接收器是双缓冲结构;接收器是双缓冲结构,即在接收一个数据字节后,能即在接收一个数据字节后,能接收第二个数据字节,但它完成接收第二个数据字节之后,第接收第二个数据字节,但它完成接收

8、第二个数据字节之后,第一个字节仍未取走,则该字节数据丢失;发送缓冲器,因为发一个字节仍未取走,则该字节数据丢失;发送缓冲器,因为发送时送时CPU是主动的,不会产生重叠错误。是主动的,不会产生重叠错误。 7.2.1 7.2.1 80C51串行口的结构串行口的结构 8051系列单片机有一个全双工的串行口,可以实现异步串系列单片机有一个全双工的串行口,可以实现异步串行通信。也可用做同步移位寄存器。行通信。也可用做同步移位寄存器。铂篷扫扬菱狭杀祝棒荣再牵低诽顶跪锗十喘忙骤痢仅左粉读岛耐判贪用势【大学课件】串行数据通信【大学课件】串行数据通信 SCON 是一个特殊功能寄存器,用以设定串行口的工是一个特殊

9、功能寄存器,用以设定串行口的工作方式、接收作方式、接收/发送控制以及设置状态标志:发送控制以及设置状态标志: 7.2.2 7.2.2 80C51串行口的控制寄存器串行口的控制寄存器 SM0和和SM1为工作方式选择位,可选择四种工作方式:为工作方式选择位,可选择四种工作方式: 瞒利酿贼涝森吨硕霉辉音袜冻荣谰顿长湃茫览袒肇膳见严塑超闹锋芯咕锚【大学课件】串行数据通信【大学课件】串行数据通信TB8,在方式,在方式2或方式或方式3中,是发送数据的第九位中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧位,或在多

10、机通信中,作为地址帧/数据帧的标志位。数据帧的标志位。在方式在方式0和方式和方式1中,该位未用。中,该位未用。RB8,在方式,在方式2或方式或方式3中,是接收到数据的第中,是接收到数据的第9位位,可作为奇偶校验位或地址帧可作为奇偶校验位或地址帧/数据帧的标志位。数据帧的标志位。在方在方式式1时,接收到的是停止位时,接收到的是停止位。l REN,允许串行接收位。由软件置,允许串行接收位。由软件置REN=1,则启,则启动串行口接收数据;若软件置动串行口接收数据;若软件置REN=0,则禁止接收。,则禁止接收。郡爆惫吞漾沿汁遍虞霄梢狞狞硅釜撑酗肛讲罩未檄圾圈摔霖胖埋摩去丙烘【大学课件】串行数据通信【大

11、学课件】串行数据通信SM2,方式方式2和方式和方式3中中多机通信允许控制位多机通信允许控制位 方式方式0时,时,SM2=0; 方式方式1时,时,SM2=1,只有接收到有效停止位时,只有接收到有效停止位时,RI才置才置1, SM2=0,停止位为,停止位为0或或1, RI都置都置1; 方式方式2和方式和方式3时,当时,当SM2=1,如果接收到的第如果接收到的第9位位数据数据RB80,则,则RI清清0,如果接收到的第,如果接收到的第9位数据位数据RB81,则,则RI置置1,即由,即由RB8控制是否激活控制是否激活RI。当。当SM2=0时,不论收到的时,不论收到的RB8为为0和和1,均可以使收到的数据

12、进入,均可以使收到的数据进入SBUF,并激活,并激活RI(即此时(即此时RB8不具有控制不具有控制RI激活的功激活的功能)。通过控制能)。通过控制SM2,可以实现多机通信。,可以实现多机通信。宜汐帐棱檀等湍套颈脖诵逊玖布囚彭枝活敌锤儒永隶串荆笋莹擦日拓经搭【大学课件】串行数据通信【大学课件】串行数据通信TI,发送中断标志位,发送中断标志位。在方式。在方式0时,当串行时,当串行发送第发送第8位数据结束时,或在其它方式,串行位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使发送停止位的开始时,由内部硬件使TI置置1,向向CPU发中断申请。在中断服务程序中,必发中断申请。在中断服务程序

13、中,必须用软件将其清须用软件将其清0,取消此中断申请。,取消此中断申请。RI,接收中断标志位,接收中断标志位。在方式。在方式0时,当串行时,当串行接收第接收第8位数据结束时,或在其它方式,串行位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使接收停止位的中间时,由内部硬件使RI置置1,向向CPU发中断申请。也必须在中断服务程序发中断申请。也必须在中断服务程序中,用软件将其清中,用软件将其清0,取消此中断申请。,取消此中断申请。世箩丑琉表弃妊锌给赵丰泽佐肛斡游圈施鞘蓖丘些墨桐颓臼分升雷税署逞【大学课件】串行数据通信【大学课件】串行数据通信PCON中只有一位中只有一位SMOD与串行口

14、工作有关与串行口工作有关 : SMOD(PCON.7) 波特率倍增位。在串行口波特率倍增位。在串行口方式方式1、方式、方式2、方式、方式3时,波特率与时,波特率与SMOD有关,有关,当当SMOD=1时,波特率提高一倍。复位时,时,波特率提高一倍。复位时,SMOD=0。炸秸忆碗铀至宇爵腑蚜渡护玲盛汪墟渭妒伪梗俗奇燃促胳钟版拘霞蛋卞炳【大学课件】串行数据通信【大学课件】串行数据通信 7.2.3 7.2.3 80C51串行口的工作方式串行口的工作方式 一、一、方式方式0 方式方式0时,串行口为同步移位寄存器的输入输时,串行口为同步移位寄存器的输入输出方式。主要用于扩展出方式。主要用于扩展I/O口。串

15、行数据由口。串行数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出,作为外接部件的同步信号。)引脚输出,作为外接部件的同步信号。发送和接收均为发送和接收均为8位数据,低位在先,高位在后。位数据,低位在先,高位在后。波特率固定为波特率固定为fosc/12。 用的少。用的少。傻秦树搐禹守以廉千嚣栈停辙释抱柞胖雌萄战琐沙茶筛引屈诈猜弥伞很纂【大学课件】串行数据通信【大学课件】串行数据通信 二、方式二、方式1 方式方式1是是10位通用异步串行接口。位通用异步串行接口。TXD为数据发为数据发送引脚,送引脚,RXD为数据接收引脚,传送一帧数据的

16、格式为数据接收引脚,传送一帧数据的格式如图所示。其中如图所示。其中1位起始位,位起始位,8位数据位,位数据位,1位停止位。位停止位。 此方式的传送波特率可调。此方式的传送波特率可调。袖苯粒力迪孩梢直扒圈谩笆逆原银宝造苛炭酗乓焉靴铁忍醉兵卷粟锈唇反【大学课件】串行数据通信【大学课件】串行数据通信1、方式、方式1发送发送 当执行数据写入发送缓冲器当执行数据写入发送缓冲器SBUF的命令时,将的命令时,将1写入发写入发送移位寄存器的第送移位寄存器的第9位,并通知发送控制器有发送请求,就启位,并通知发送控制器有发送请求,就启动发送器开始发送。发送移位时钟由定时器动发送器开始发送。发送移位时钟由定时器T1

17、送来的溢出信送来的溢出信号经号经16分频或分频或32分频而取得。该移位时钟就是发送波特率。分频而取得。该移位时钟就是发送波特率。T1的溢出率可设置,所以波特率是可变的。发送开始时将起的溢出率可设置,所以波特率是可变的。发送开始时将起始位向始位向TXD输出,此后每过一个移位时钟周期送出一位数据位,输出,此后每过一个移位时钟周期送出一位数据位,8位数据全部发送完后,置位数据全部发送完后,置TI位,申请中断,并置位,申请中断,并置TXD为为1作为作为停止位。停止位。鲁筹囤骡乳您敦撬丙徘毡炳琳瑟莫谭杰洲煮晓缀构狼色傲睡侮夯丢控置缎【大学课件】串行数据通信【大学课件】串行数据通信 2、方式、方式1接收接

18、收 用软件置用软件置SCON寄存器的寄存器的REN为为1的前提下,接收端在每个采的前提下,接收端在每个采样周期对样周期对RXD引脚采样,若引脚为高电平,即发送端未发送数据,引脚采样,若引脚为高电平,即发送端未发送数据,接收端什么也不干。若采样到接收端什么也不干。若采样到RXD引脚输入电平发生负跳变时,引脚输入电平发生负跳变时,立即启动一次接收,同时复位立即启动一次接收,同时复位16分频计数器,使输入位的边沿与分频计数器,使输入位的边沿与时钟对齐,并将时钟对齐,并将1FF写入接收移位寄存器,使波特率发生器从当写入接收移位寄存器,使波特率发生器从当前采样脉冲开始每隔前采样脉冲开始每隔16个采样脉冲

19、产生一个移位脉冲,每个移位个采样脉冲产生一个移位脉冲,每个移位脉冲到来,接收端将接收移位寄存器左移一位,原来写入的脉冲到来,接收端将接收移位寄存器左移一位,原来写入的1从左从左边移出,且将引脚边移出,且将引脚RXD上的状态移入移位寄存器。当起始位移到上的状态移入移位寄存器。当起始位移到最左边时,接收控制器将控制进行最后一次移位,若该位为最左边时,接收控制器将控制进行最后一次移位,若该位为1,把,把接收到第接收到第9位数据送到接收位数据送到接收SBUF和和RB8,且置位,且置位RI,若为,若为0,则,则S M2=0时,把接收到第时,把接收到第9位数据送到接收位数据送到接收SBUF和和RB8,且置

20、位,且置位RI,若,若SM2=1,接收到的第,接收到的第9位为位为0,不申请中断(,不申请中断(RI=0),表明传),表明传送产生误差,可采取纠错方法进行重发,第送产生误差,可采取纠错方法进行重发,第9位为位为1,则表明一个,则表明一个数据的接收过程结束,接收端为接收下一个数据做准备。这个过数据的接收过程结束,接收端为接收下一个数据做准备。这个过程包括:将移位寄存器中的数据送入输入缓冲器,向程包括:将移位寄存器中的数据送入输入缓冲器,向CPU申请中申请中断,输入端又在采样脉冲的控制下不断采样引脚断,输入端又在采样脉冲的控制下不断采样引脚RXD。被扔鳃寞队擂臻扦杂潮乐抡踞灭么避寸腑蝎忙岩锥口酒穆

21、巳湖惩啸而罗墅【大学课件】串行数据通信【大学课件】串行数据通信为接收准确无误,在正式接收数据之前,还必须判断起始位是否由干扰引起为接收准确无误,在正式接收数据之前,还必须判断起始位是否由干扰引起的。在这位中间,即移位数据采样的。在这位中间,即移位数据采样16次,对第次,对第7、8及及9次连续值中,取其中两次连续值中,取其中两次相等的值作为该位值。这样能较好的消除干扰的影响,当确认是真正的起次相等的值作为该位值。这样能较好的消除干扰的影响,当确认是真正的起始位后,就开始接收一帧数据。当一帧数据接收完毕后,必须满足两个条件,始位后,就开始接收一帧数据。当一帧数据接收完毕后,必须满足两个条件,这次接

22、收才真正有效。即:这次接收才真正有效。即:RI=0(即上一帧数据接收完成时,即上一帧数据接收完成时,RI发出的中断请发出的中断请求已被响应,求已被响应,SBUF中的数据已被取走。由软件使中的数据已被取走。由软件使RI=0,以便提供,以便提供“接收接收SBUF已空的信息已空的信息);SM2=0(或接收到的停止位为(或接收到的停止位为1)时,将接收到的前)时,将接收到的前8位位数据装入接收数据装入接收SBUF,第,第9位(停止位)进入位(停止位)进入RB8,并置,并置RI=1,向,向CPU请求中请求中断。如果上述条件不满足,则该帧丢失。断。如果上述条件不满足,则该帧丢失。拈挪扑轨堡锦嵌风建江内精舒

23、肩终浅尧唾嘲薛大糠什幼仪悄加留廊捻滴盐【大学课件】串行数据通信【大学课件】串行数据通信 三、方式三、方式2和方式和方式3 方式方式2或方式或方式3时为时为11位数据的异步通信口。位数据的异步通信口。TXD为数据发为数据发送引脚,送引脚,RXD为数据接收引脚为数据接收引脚 。 方式方式2和方式和方式3每帧均为每帧均为11位,位, 1位起始位,位起始位, 8位数据位,位数据位,一位可编程的第一位可编程的第9位(发送时软件设置为位(发送时软件设置为SCON中的中的TB8位,位,接收时进入接收时进入SCON中的中的RB8位),位), 1位停止位。位停止位。方式方式2的波特的波特率固定为晶振频率的率固定

24、为晶振频率的1/64或或1/32,方式,方式3的波特率由定时器的波特率由定时器T1的溢出率决定。的溢出率决定。 镰敝弥税购拜弓廖益以值铱丘皋胜攒濒杏稻辰蜕单碾屎证制冉牡恒宗荆某【大学课件】串行数据通信【大学课件】串行数据通信 1、方式、方式2和方式和方式3发送发送发送前,先根据用户约定的通信协议由软件设置发送前,先根据用户约定的通信协议由软件设置TB8的值,的值,然后把要发送的数据写入然后把要发送的数据写入SBUF启动发送过程,先把起始位启动发送过程,先把起始位0输出到输出到TXD引脚,然后发送移位寄存器的输出位(引脚,然后发送移位寄存器的输出位(D0)到)到TXD引脚。每一个移位脉冲都使输出

25、移位寄存器的各位右移引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位,并由一位,并由TXD引脚输出。引脚输出。 第一次移位时,停止位第一次移位时,停止位“1”移入输出移位寄存器的第移入输出移位寄存器的第9位位上上 ,以后每次移位,左边都移入,以后每次移位,左边都移入0。当停止位移至输出位时,。当停止位移至输出位时,左边其余位全为左边其余位全为0,检测电路检测到这一条件时,使控制电,检测电路检测到这一条件时,使控制电路进行最后一次移位,并置路进行最后一次移位,并置TI=1,向,向CPU请求中断。请求中断。 脚壤仅皆芍杏差须幅粟逞颁矩皇妓浙扎谁犊乍饲韦谬瞪猿律锦达觉昼甚赋【大学课件】串行数据通

26、信【大学课件】串行数据通信 2、方式、方式2和方式和方式3接收接收 接收时,先置位接收时,先置位SCON的的REN位,允许串口接收。位,允许串口接收。当检测到当检测到RXD端有负跳变时,使数据从右边移入移位端有负跳变时,使数据从右边移入移位寄存器,在起始位寄存器,在起始位0移到最左边时,控制电路进行最后移到最左边时,控制电路进行最后一次移位。当一次移位。当RI=0,且,且SM2=0(或接收到的第(或接收到的第9位数位数据为据为1)时,接收到的数据装入接收缓冲器)时,接收到的数据装入接收缓冲器SBUF和和RB8(接收数据的第(接收数据的第9位),置位),置RI=1,向,向CPU请求中请求中断。如

27、果条件不满足,则数据丢失,且不置位断。如果条件不满足,则数据丢失,且不置位RI,继,继续搜索续搜索RXD引脚的负跳变。引脚的负跳变。色痊颠锐摆葬吸鼓琉努淄劲羊位静领分颗劲挤琴铃灼称守缄惊府唾汗永捻【大学课件】串行数据通信【大学课件】串行数据通信四、波特率的计算四、波特率的计算 在串行通信中,收发双方对发送或接收数在串行通信中,收发双方对发送或接收数据的速率要有约定。其中方式据的速率要有约定。其中方式0和方式和方式2的波的波特率是固定的,方式特率是固定的,方式1和方式和方式3的波特率是可的波特率是可变的,由定时器变的,由定时器T1的溢出率来决定。的溢出率来决定。 方式方式0中移位脉冲由中移位脉冲

28、由CPU时钟(机器周期)时钟(机器周期)给出,每个机器周期产生一个移位脉冲,发给出,每个机器周期产生一个移位脉冲,发送或接收一位数据。送或接收一位数据。 波特率波特率 = fosc/12 方式方式2的波特率的波特率 =(2SMOD/64) fosc 东貌丘叭偶拍曹比夏乳舆俩竟砷庭礁蹿乞蒸蓄企恭祁铂起乱玩昭是芽阜诵【大学课件】串行数据通信【大学课件】串行数据通信方式方式1和方式和方式3的波特率由定时器的波特率由定时器T1的溢出率与的溢出率与SMOD值确定。值确定。 v方式方式1的波特率的波特率 =(2SMOD/32)(T1溢出率)溢出率)v方式方式3的波特率的波特率 =(2SMOD/32)(T1

29、溢出率)溢出率) T1溢出率取决于溢出率取决于T1的工作方式、时钟频率和的工作方式、时钟频率和TI预预置值,定时器置值,定时器T1作波特率发生器使用时,通常选用定作波特率发生器使用时,通常选用定时器(对内部机器周期计数)模式时器(对内部机器周期计数)模式2,即自动重装在,即自动重装在方式,另外要禁止方式,另外要禁止TI中断,以免中断,以免T1溢出时产生不必要溢出时产生不必要的中断。的中断。v方式方式1和方式和方式3的波特率的波特率 =(2SMOD fosc /32 12 (2n-初值初值)只惶脖悯脐贰聊庞费铬祈琶摔芬蚕壤稿椿炮迸局柱坯臣蛹滇标窄亡悉贮学【大学课件】串行数据通信【大学课件】串行数

30、据通信在单片机的应用中,常用的晶振频率为:在单片机的应用中,常用的晶振频率为:12MHz和和11.0592MHz。所以,选用的波特率也相对固定。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系如表所示。常用的串行口波特率以及各参数的关系如表所示。恶锈焊自马拧邑谚瞩砷绝蝗旋跑癣滥王相雌避颊傅锅话尝敞溅谭婆踊塘吞【大学课件】串行数据通信【大学课件】串行数据通信 串行口工作之前,应对其进行初始化,主串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器要是设置产生波特率的定时器1、串行口控、串行口控制和中断控制。具体步骤如下:制和中断控制。具体步骤如下:v确定确定T1的工作方

31、式的工作方式(编程(编程TMOD寄存器);寄存器);v计算计算T1的初值的初值,装载,装载TH1、TL1;v启动启动T1(编程(编程TCON中的中的TR1位);位);v确定确定串行口控制串行口控制(编程(编程SCON寄存器);寄存器);串行口在中断方式工作时,要进行中断设置串行口在中断方式工作时,要进行中断设置(编程(编程IE、IP寄存器)。寄存器)。蜡蝴挟烧尧码台敷嗣祈樟侧酚村蔫喳戌楔士靳垦妇趋奈涪抢哮纽促虾宾勃【大学课件】串行数据通信【大学课件】串行数据通信7.3 单片机串行口片机串行口应用用举例例 在计算机分布式测控系统中,经常要利用在计算机分布式测控系统中,经常要利用串行通信方式进行数

32、据传输。串行通信方式进行数据传输。80C51单片机的单片机的串行口为计算机间的通信提供了极为便利的条串行口为计算机间的通信提供了极为便利的条件。件。例:单片机例:单片机1内部内部RAM20H-23H中有中有4个数据个数据要发给单片机要发给单片机2,单片机单片机2接收到后存入其内部接收到后存入其内部RAM的的33H-36H中。晶振都为中。晶振都为6M,要求用要求用4800bps通信,收发双方都采用串口方式通信,收发双方都采用串口方式1.承做邯改摆燎电补败盼纷扼哥爪浓酝芦俯照釜谐急墨章难号恐昭姜脱疮样【大学课件】串行数据通信【大学课件】串行数据通信单片机间的通信单片机间的通信 1、硬件连接、硬件连

33、接 TXD8051RXDTXD8051RXDVCCVCCVSSVSS 两个单片机的接收端都接两个单片机的接收端都接一个上拉电阻,以保证单片机上一个上拉电阻,以保证单片机上电后串口检测机构在该接收端上电后串口检测机构在该接收端上检测到的信号为空闲状态。检测到的信号为空闲状态。 由于两个系统上电后各自由于两个系统上电后各自都需要初始化,事先无法预料哪都需要初始化,事先无法预料哪个系统先初始化好,所以发送端个系统先初始化好,所以发送端在发送数据之前应先发送一个联在发送数据之前应先发送一个联络信号询问接收端是否准备好。络信号询问接收端是否准备好。假如发送假如发送01010101为询问信号。为询问信号。

34、接收端在接收到这个信号后也回接收端在接收到这个信号后也回应一个应一个01010101表示接收端准表示接收端准备好,然后发送端开始发送数据,备好,然后发送端开始发送数据,接收端开始接收数据。单片机接收端开始接收数据。单片机1中用程序状态字中用程序状态字PSW中的用户中的用户标志位标志位F0指示单片机指示单片机2是否处于是否处于准备好状态,单片机准备好状态,单片机2中用中用F0指指示单片机示单片机1送来的数据是查询信送来的数据是查询信息还是有效数据。息还是有效数据。系统1系统2铁症琵继辽它糊揩雄泞蜒臭封宛嗅宗灸迷恩杏戈助愈郝誊滔阮床姚扬雇慑【大学课件】串行数据通信【大学课件】串行数据通信2、程序、

35、程序ORG 0000HLJMP MAINORG 0023H LJMP SUB1MAIN: MOV SCON, #50H; 设置串口工作方式设置串口工作方式1,不允许多机通信,允许接收,不允许多机通信,允许接收,TB,RB方式方式1 ;中未用;串口发送无中断,接收无请求中未用;串口发送无中断,接收无请求 MOV TMOD, #20H;定时器;定时器1工作在方式工作在方式2; MOV TL1, #0FDH MOV TH1, #0FDH MOV IE, #90H;打开全局和串口中断;打开全局和串口中断 SETB TR1; 启动定时器启动定时器1,使波特率发生器产生移位和采样脉冲,使波特率发生器产生移

36、位和采样脉冲INI: MOV SBUF, #55H;发送到缓冲器;发送到缓冲器 MOV R1, #0FFH:为下面循环设置循环次数:为下面循环设置循环次数;延时应大于单片机延时应大于单片机1,2串口串口LOOP:NOP ;中断服务程序处理时间之和;中断服务程序处理时间之和 DJNZ R1, LOOP JNB F0, INI ;为;为0接收端为准备好,否则再发送询问信号接收端为准备好,否则再发送询问信号 MOV R0,#21H; 设下次发送的地址指针设下次发送的地址指针 MOV SBUF, 20H;发第一个数据;发第一个数据 LJMP $沥若念挣玄肖漂岸僚床滋庇杭霜除煎刀酿矫氧隧粟皑摄操筐咎望哀

37、傻叼蓄【大学课件】串行数据通信【大学课件】串行数据通信中断服务程序:中断服务程序:SUB1: JNB RI,LAB0;如果是接收中断,则;如果是接收中断,则SBUF中是中是2的的 ;应答信号,处理应答,如果是发送中;应答信号,处理应答,如果是发送中 ;断,跳转执行发送数据程序。;断,跳转执行发送数据程序。 MOV A, SBUF CJNZ A, #55H,LAB1,相等,相等,2准备好准备好 SETB F0;告诉主程序单片机;告诉主程序单片机2准备好准备好 CLR RI ;清接收中断,为下次作准备;清接收中断,为下次作准备LAB1: RETILAB0: MOV SBUF, R0 INC R0

38、CJNE R0,#24H,LAB2 CLR ES;发送完,禁止串口中断;发送完,禁止串口中断LAB2: CLR TI RETI END 拴钥石缨哦谋腥疟漱蔽撬距迷压蛙物榜增毒蝉炭辑种敦潘飘锌垢潭勋价仅【大学课件】串行数据通信【大学课件】串行数据通信单片机单片机2程序:程序:ORG 0000HLJMP MAINORG 0023H LJMP SUB1MAIN: MOV SCON, #50H; 设置串口工作方式设置串口工作方式1,不允许多机通信,允许接收,不允许多机通信,允许接收TB,RB方式方式1 ;中未用;串口发送无中断,接收无请求;中未用;串口发送无中断,接收无请求 MOV TMOD, #20

39、H;定时器;定时器1工作在方式工作在方式2; MOV TL1, #0FDH MOV TL2, #0FDH MOV IE, #90H;大开全局和串口中断;大开全局和串口中断SETB TR1; 启动定时器启动定时器1,使波特率发生器产生移位和采样脉冲,使波特率发生器产生移位和采样脉冲 LJMP $SUB1: JB F0,LAB2 ;为为0,表明当前数据为单片机,表明当前数据为单片机1送的查询信号,为送的查询信号,为1为有效数据为有效数据 MOV A,SBUF CJNE A,#55H,LAB1 SETB, F0;表明下一次接收的数据为有效数据;表明下一次接收的数据为有效数据 CLR ,RI;清除接收中断申请标志;清除接收中断申请标志 MOV SBUF,#55H;发送应答信号;发送应答信号LAB1:RETILAB2:MOV R,SBUF;存储接收数据;存储接收数据 INC R0 CJNE R0,#37,LAB3 CLR ES;关闭串口中断;关闭串口中断LAB3:CLR RI;清除串口接收中断申请标志;清除串口接收中断申请标志 RETI END逻儿密奥债喂捣迢糠图弛编冗氟鸣签着式康出脸高讫赐镊台鹰叙认硷力誉【大学课件】串行数据通信【大学课件】串行数据通信

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号