ATS单片机的串行口课件

上传人:文**** 文档编号:240744278 上传时间:2024-05-04 格式:PPT 页数:94 大小:1.06MB
返回 下载 相关 举报
ATS单片机的串行口课件_第1页
第1页 / 共94页
ATS单片机的串行口课件_第2页
第2页 / 共94页
ATS单片机的串行口课件_第3页
第3页 / 共94页
点击查看更多>>
资源描述
第第7章章 串行通信及其接口串行通信及其接口7.1概述概述7.2AT89S51的串行口的串行口7.3波特率的制定方法波特率的制定方法7.4多机通信多机通信7.5串行口的编程和应用串行口的编程和应用7.1概述概述串串行行通通信信是是将将数数据据的的各各位位一一位位一一位位地地依依次次传传送送。适适合合于于计计算算机机之之间间、计计算算机机与与外外部部设设备备之之间间的的远远距离通信。距离通信。串行通信从传输方式分为:串行通信从传输方式分为:单工方式、半双工方式、全双工方式。单工方式、半双工方式、全双工方式。串行通信从接收方式有两种方式:串行通信从接收方式有两种方式:异步通信方式、同步通信方式。异步通信方式、同步通信方式。返回本章首页接收器图7-1单工方式示意图发送器接收器接收器发送器发送器数据流图7-2半双工方式示意图接收和发送不能同接收和发送不能同时进行,只能分时时进行,只能分时发送和接收发送和接收发送器接收器数据流接收器发送器图7-3全双工方式示意图数据的发送和数据的发送和接收可以同时接收可以同时进行进行总结:总结:不管哪种形式的串行通信,在两机不管哪种形式的串行通信,在两机之间均应有共地线。之间均应有共地线。异步通信异步通信ASYNC在异步通信方式中,接收器和发送器有各自的在异步通信方式中,接收器和发送器有各自的时钟,它们的工作是时钟,它们的工作是非同步非同步的。的。在异步通信中数据或字符是以帧形式传送的。在异步通信中数据或字符是以帧形式传送的。最常见的帧格式一般是先用一位起始位最常见的帧格式一般是先用一位起始位“0”表示表示字符的开始;然后是字符的开始;然后是58位数据,位数据,低位在前,高位低位在前,高位在后在后;其后是校验位,此位用于判别字符传送的;其后是校验位,此位用于判别字符传送的正确性;最后是停止位,用以表示字符的结束,正确性;最后是停止位,用以表示字符的结束,停止位可以是停止位可以是12个停止位。个停止位。图7-4异步串行通信数据格式从起始位开始到停止从起始位开始到停止位结束就构成了完整位结束就构成了完整的一帧。的一帧。异步通信时可能会出现帧格式错、超时错等传输错误。异步通信时可能会出现帧格式错、超时错等传输错误。在具有串行口的单片机的开发中,应考虑在通信过程在具有串行口的单片机的开发中,应考虑在通信过程中对数据差错进行校验,因为差错校验是保证准确无中对数据差错进行校验,因为差错校验是保证准确无误通信的关键。误通信的关键。1)奇偶校验)奇偶校验2)和校验)和校验 3)循环冗余码校验)循环冗余码校验同步通信同步通信SYNC在同步通信中,发送器和接收器由同一个时在同步通信中,发送器和接收器由同一个时钟源控制。钟源控制。数据或字符开始处是用一同步字符来数据或字符开始处是用一同步字符来指示,以实现发送端和接收端同步,一旦检测到指示,以实现发送端和接收端同步,一旦检测到约定同步字符,就连续按顺序接收数据。约定同步字符,就连续按顺序接收数据。图7-5同步通信方式及数据格式思考题:思考题:同步通信和异步通信来传送数据块,一般来同步通信和异步通信来传送数据块,一般来说哪个速度快,为什么?说哪个速度快,为什么?同步通信数据块传送时去掉了字符开始和结同步通信数据块传送时去掉了字符开始和结束的标志,所以其速度高于异步传送,但这种方束的标志,所以其速度高于异步传送,但这种方式对硬件结构要求较高。式对硬件结构要求较高。7.2AT89S51单片机的串行口单片机的串行口7.2.1串行口的结构串行口的结构7.2.2串行口的工作方式串行口的工作方式返回本章首页7.2.1串行口的结构串行口的结构AT89S51单片机内部的串行口,有两个物理单片机内部的串行口,有两个物理上独立地接收、发送缓冲器上独立地接收、发送缓冲器SBUF,可同时接收、可同时接收、发送数据,发送缓冲器只能写入不能读出,接收发送数据,发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。缓冲器只能读出不能写入。结构图结构图这两个缓冲器共用一个字节地址这两个缓冲器共用一个字节地址99H.例例:判断使用的是发送判断使用的是发送SBUF还是接收还是接收SBUF?MOVA,SBUFMOVSBUF,A接收SBUF发送SBUF1串行口控制寄存器串行口控制寄存器SCON该该寄寄存存器器的的字字节节地地址址为为98H,可可位位寻寻址址。SCON格格式如图式如图7-6所示。所示。图7-6SCON格式1)SCON.7和和SCON.6SM0和和SM1串行方式选择位。串行方式选择位。2)SCON.5SM2在方式在方式2和方式和方式3中主要用于多中主要用于多机通信控制。机通信控制。v方式方式2和方式和方式3i)若若SM2=1,且接收到第且接收到第9位位RB8=“0”时,时,RI不置不置“1”,不接收主机发来的数据;不接收主机发来的数据;ii)SM2=1,RB8=1,RI置置“1”。产生中断请求,。产生中断请求,将接将接收到的收到的8位数据送入位数据送入SBUF.iii)SM2=0,不论不论RB8为为“0”还是为还是为“1”,都将接收,都将接收到的到的8位数据送入位数据送入SBUF中,置中,置RI=1并中断。并中断。v方式方式0,SM2应置应置“0”。v方式方式1,接收时,若,接收时,若SM2=1,则只有收到有效的则只有收到有效的停止位时,停止位时,RI才置才置“1”3)SCON.4REN允许串行接收位。允许串行接收位。由软件置位或清除。由软件置位或清除。允许接收允许接收禁止接收禁止接收4)SCON.3TB8发送数据的第发送数据的第9位。位。双机通信时可作奇偶校验位。双机通信时可作奇偶校验位。多机通信时可作区别地址帧或数据帧的标识位。多机通信时可作区别地址帧或数据帧的标识位。约定:约定:地址帧时地址帧时TB8为为“1”,数据帧时为数据帧时为“0”5)SCON.2RB8接收数据的第接收数据的第9位。位。方式方式2和和3,RB8存放接收到第存放接收到第9位数据位数据,方式方式1,如如SM2=0,RB8接收到停止位接收到停止位,方式方式0,不使用不使用RB8.6)SCON.1TI发送中断标志位发送中断标志位v方式,发送完位数据后,硬件置方式,发送完位数据后,硬件置“”v其它方式,在发送停止位之初由硬件置位其它方式,在发送停止位之初由硬件置位=,可申请中断,也可供软件查询用,可申请中断,也可供软件查询用但任何方式都必须由软件清除但任何方式都必须由软件清除7)SCON.0RI接收中断标志位接收中断标志位v方式,接收完位数据后,硬件置位方式,接收完位数据后,硬件置位v其它方式,在接收停止位时,由硬件置位。表其它方式,在接收停止位时,由硬件置位。表示一帧数据接收完毕,此时可要求示一帧数据接收完毕,此时可要求CPU从接收从接收SBUF取走数据。取走数据。,可申请中断,也可供软件查询用,可申请中断,也可供软件查询用但任何方式都必须由软件清除但任何方式都必须由软件清除2特殊功能寄存器特殊功能寄存器PCON其其字字节节地地址址为为87H,没没有有位位寻寻址址功功能能。PCON的的格格式式如如图图7-7所所示示,其其中中与与串串行行接接口口有有关关的的只只有有D7位位。SMOD是是串串行行口口波波特特率率倍倍增增位位。其其他他各各位位的的功功能能已已在在第第2章章的的节节电电工工作方式一节中作过介绍。作方式一节中作过介绍。图7-7PCON格式返回本节方式方式1波特率波特率=定时器T1的溢出率7.2.2串行口的工作方式串行口的工作方式表7-1串行口工作方式返回1方式方式0该方式并该方式并不用于两个不用于两个AT89S51单片机之间的异步串行通单片机之间的异步串行通信信,而是而是用于串行口外接移位寄存器,扩展并行扩展并行I/O口。口。此方式下,串行口作同步移位寄存器用,以此方式下,串行口作同步移位寄存器用,以8位数据为位数据为一帧,先发送或接收最低位,每个机器周期发送或接收一一帧,先发送或接收最低位,每个机器周期发送或接收一位,故其波特率是固定的。位,故其波特率是固定的。这种方式常用于扩展这种方式常用于扩展I/O口口.举例举例proteus程序程序串行数据由串行数据由RXD(P3.0)输入或输出输入或输出同步移位脉冲由同步移位脉冲由TXD(P3.1)输出输出方式0发送时序.机器周期写SBUFRXD(数据)D6D0D2D5D4D3D7D1TXD(移位脉冲)TI方式0发送时序.机器周期写SBUFRXD(数据)D0D1D2D3D4D5D6D7TXD(移位脉冲)TI方式0接收时序.机器周期写SCONRXD(数据)D6D0D2D5D4D3D7D1TXD(移位脉冲)RI方式0接收时序.机器周期写SCONRXD(数据)D0D1D2D3D4D5D6D7TXD(移位脉冲)RI2方式方式1方式方式1为双机串行通信方式,如为双机串行通信方式,如图7-9所示。所示。串行口为串行口为8位通用异步接口。发送或接收一帧数据,位通用异步接口。发送或接收一帧数据,包括一位起始位包括一位起始位“0”、8位数据位和位数据位和1位停止位位停止位“1”,其传送波特率可调。,其传送波特率可调。方式方式1的的帧格式:格式:D1D2D3D4D5D6D7TXDD0起始停止方方式式1波波特特率率=定定时器器T1的的溢溢出出率率发送时,数据从发送时,数据从TXD端输出,当数据写入发送端输出,当数据写入发送缓冲器缓冲器SBUF时,就启动发送器发送。发送完一时,就启动发送器发送。发送完一帧数据后,帧数据后,TI置置“1”,申请中断,通知,申请中断,通知CPU可以发送下一个数据。可以发送下一个数据。方式1发送时序(TX时钟的频率就是发送的波特率的频率就是发送的波特率).写SBUFTXDTITX时钟D1D2D3D4D5D6D7D0起始停止SEND有效方式1发送时序.写SBUFD1D2D3D4D5D6D7TXDTITX时钟D0SEND起始停止接收时,数据从接收时,数据从RXD(P3.1)引脚输入。使)引脚输入。使REN置置“1”允许接收,串行口采样引脚允许接收,串行口采样引脚RXD.当当采样到采样到1至至0的跳变时,确认是起始位的跳变时,确认是起始位“0”,就开始接收一帧数据。当停止位到来之后把停止就开始接收一帧数据。当停止位到来之后把停止位送入位送入RB8位,则置位中断标志位,则置位中断标志RI,并申请中断,并申请中断,通知通知CPU从从SBUF取走接收到的一个数据。取走接收到的一个数据。接收时,定时控制信号有两种,一种是接收移位时钟(RX时钟),它的频率和传送的波特率相同,另一种是位检测器采样脉冲,频率是RX时钟的16倍。以波特率的16倍速率采样RXD脚状态。当采样到RXD端从1到0的负跳变时就启动检测器,接收的值是3次连续采样(第7、8、9个脉冲时采样)取两次相同的值,以确认起始位(负跳变)的开始,较好地消除干扰引起的影响。当一帧数据接收完毕后,同时当一帧数据接收完毕后,同时满足以下两条件,满足以下两条件,最后一次移位脉冲才能将前最后一次移位脉冲才能将前8位数据装入位数据装入SBUF和和RB8,并置位,并置位RI=1。(1)RI=0,即上一帧数据接收完成时,即上一帧数据接收完成时,RI=1发发出的中断请求已被响应,出的中断请求已被响应,SBUF中的数据已被取走中的数据已被取走,说明说明“接收接收SBUF”已空已空。(2)SM2=0或接收到的第或接收到的第9位数据为位数据为1若两条不同时满足,则接收到的数据全部丢失,若两条不同时满足,则接收到的数据全部丢失,且不置位且不置位RI。方式1接收时序.RIRX时钟D1D2D3D4D5D6D7TXDD0起始停止位检测采样3方式方式2串行口为串行口为9位异步通信接口。发送或接收一帧位异步通信接口。发送或接收一帧信息包括信息包括1位起始位位起始位“0”、8位数据位、位数据位、1位可编位可编程位和程位和1位停止位位停止位“1”。其信息传送波特率与。其信息传送波特率与SMOD有关。有关。发送前,先根据通信协议由软件设置发送前,先根据通信协议由软件设置TB8,然然后将要发送的数据写入后将要发送的数据写入SBUF即能启动发送器。即能启动发送器。方式方式2,方式方式3的帧的帧格式格式TXDD4D5D6D7D0D1D2D3起始停止D8方式2波特率=(2SMOD/64)fosc方式2,方式3发送时序.写SBUFSENDTXDD4D5D6D7D0D1D2D3起始停止D8TX时钟TI下面为发送中断服务程序,在双机通信中下面为发送中断服务程序,在双机通信中,以以TB8为为奇偶校验位,处理方法为数据写入奇偶校验位,处理方法为数据写入SBUF之之前,先将数据的奇偶校验位写入前,先将数据的奇偶校验位写入TB8(设工作寄存设工作寄存器区器区2的的R0作为发送数据区地址指针作为发送数据区地址指针).偶检验偶检验例例7.1方式方式2发送在双机通信中的应用发送在双机通信中的应用PIPT1:PUSHPSWPUSHAccSETBRS1CLRRS0CLRTIMOVA,R0MOVC,PMOVTB8,CMOVSBUF,AINCR0POPAccPOPPSWRETI方式方式2和方式和方式3的接收:的接收:数据由数据由RXD端输入,端输入,REN=1时接收器开始采样时接收器开始采样RXD的电平,检测到的电平,检测到RXD由高到低的负跳变时,启由高到低的负跳变时,启动接收器接收。动接收器接收。若满足以下两条件,最后一次移位脉冲才能将前若满足以下两条件,最后一次移位脉冲才能将前8位数据装入位数据装入SBUF和和RB8,并置位并置位RI=1。(1)RI=0(2)SM2=0或接收到的第或接收到的第9位数据为位数据为1若两条不同时满足,则接收到的数据全部丢失,且若两条不同时满足,则接收到的数据全部丢失,且不置位不置位RI。方式2,方式3接收时序.RXDD4D5D6D7D0D1D2D3起始停止RB8TX时钟RI位检测采样例例7.2方式方式2接收在双机通信中的应用接收在双机通信中的应用若附加的第若附加的第9位数据为校验位位数据为校验位,在接收程序中作在接收程序中作偶校验处理偶校验处理,可采用如下程序可采用如下程序(设设3组寄存器区的组寄存器区的R0为数据缓冲器指针为数据缓冲器指针).PITI:PUSHPSWPUSHAccSETBRS0SETBRS1CLR RIMOVA,SBUFMOV C,PJNCL1JNBRB8,ERPAJMPL2L1:JBRB8,ERPL2:MOVR0,A;数据数据数据缓冲器数据缓冲器INCR0POPAccPOPPSWERP:;出错处理程序段入口出错处理程序段入口RETI4方式方式3当当SM0SM1=11时时,串串行行口口工工作作在在方方式式3。方方式式3为为波波特特率率可可变变的的9位位异异步步通通信信方方式式,除除了了波波特特率率外外,方式方式3和方式和方式2相同。相同。方式方式3的波特率由下式确定:的波特率由下式确定:方式方式3波特率波特率=(2SMOD/32)定时器定时器T1的溢出率的溢出率返回本节7.波特率的制定方法波特率的制定方法波特率的定义:串行口每秒钟发送(或接收)的位数。波特率的定义:串行口每秒钟发送(或接收)的位数。数据传送速率的单位返回本章首页例:数据传送速率个字符每秒,每个字符由例:数据传送速率个字符每秒,每个字符由个起始位、个数据位和个停止位组成,问波个起始位、个数据位和个停止位组成,问波特率为多少?特率为多少?120(1+8+1)=1200b/s=1200波特波特每一位的传送时间为波特率的倒数:每一位的传送时间为波特率的倒数:t=1/1200=0.833ms异步通信的传送速度一般为异步通信的传送速度一般为509600波特。波特。1)方式方式0,每个机器周期发送或接收一位数据,每个机器周期发送或接收一位数据,因此波特率固定为时钟频率的因此波特率固定为时钟频率的1/12。2)方式方式2,波特率取决于,波特率取决于SMOD.方式方式2的波特率的波特率=fosc1.方式和方式方式和方式2的波特率的波特率2SMOD642.方式方式1和方式和方式3的波特率的波特率串行口方式串行口方式1和方式和方式3的波特率由定时器的波特率由定时器T1的溢的溢出率与出率与SMOD的值决定。的值决定。方式方式1和方式和方式3的波特率的波特率=T1溢出率溢出率2SMOD32T1溢出率取决于计数速率和定时器的预置值溢出率取决于计数速率和定时器的预置值计数速率与计数速率与C/T(TMOD)的状态有关的状态有关C/T=0,计数速率计数速率=fosc/12C/T=1,C/T=1,计数速度取决于外部输入时钟频率计数速度取决于外部输入时钟频率2SMOD32当定时器当定时器T1作波特率发生器使用时,通常是作波特率发生器使用时,通常是选用自动重装载方式。在方式选用自动重装载方式。在方式2中,中,TL1作计数用,作计数用,而自动重装载的值放在而自动重装载的值放在TH1内。内。设计数初值为设计数初值为X,那么每过那么每过“256X”个机器个机器周期,周期,T1产生一次溢出。产生一次溢出。溢出周期溢出周期=(256-X)溢出率为溢出周期的倒数溢出率为溢出周期的倒数foscfosc12fosc波特率波特率=则定时器则定时器T1方式方式2的初始值为:的初始值为:X=256-2SMOD32fosc12(256-X)384波特率波特率fosc(SMOD+1)例:例:已知已知AT89S51单片机时钟振荡频率为单片机时钟振荡频率为11.0592MHZ,选用选用T1工作方式工作方式2作波特率发生器,作波特率发生器,波特率为波特率为2400b/s,求初值。求初值。解:解:设设SMOD=0X=256-=244=F4HTH1=TL1=F4H384240011.0592106(0+1)表7-2 波特率计算公式表7-3常用的波特率及计算器初值返回本节波波特特率率foscSMOD位位方式方式初初值X62.5kbit/s12MHz12FFH19.2kbit/s11.0592MHz12FDH9.6kbit/s11.0592MHz02FDH4.8kbit/s11.0592MHz02FAH2.4kbit/s11.0592MHz02F4H1.2kbit/s11.0592MHz02E8H对对表表7-4有两点需要注意:有两点需要注意:(1)在使用的时钟振荡频率)在使用的时钟振荡频率fosc为为12MHz或或6MHz时,将初值时,将初值X和和fosc带入计算出的波特率带入计算出的波特率有一定误差有一定误差。消除误差可采用。消除误差可采用时钟时钟频率频率11.0592MHz。(2)如果选用)如果选用很低的波特率很低的波特率,可将定时器,可将定时器T1设置为方式设置为方式1定时。定时。但在这种情况下,但在这种情况下,T1溢出时,需在中断服务程序中重新装入初溢出时,需在中断服务程序中重新装入初值。中断响应时间和执行指令时间会使波特率产生一定的误差,值。中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的方法加以调整。可用改变初值的方法加以调整。7.3多机通信多机通信7.3.1主从机间的通信主从机间的通信7.3.2多机通信接口多机通信接口返回本章首页7.3.1主从机间的通信主从机间的通信1双机串行异步通信双机串行异步通信l l单单片片机机与与单单片片机机间间的的串串行行异异步步通通信信接接口口设设计计l l单单片片机机与与PC系系列列微微机机间间的的异异步步串串行行通通信信接接口口设计设计返回本节单片机与单片机间的串行异步通信接口设计单片机与单片机间的串行异步通信接口设计AT89S51串行口的输入、输出均为串行口的输入、输出均为TTL电平。抗干扰性差,传输距离短,传输速率低。为提高串行通信的可靠性,为提高串行通信的可靠性,增大增大串行通信的距离和提高传输速率,都采用,都采用标准串行接口,如,如RS-232、RS-422A、RS-485等。等。根据通信距离和抗干扰性要求,可选择根据通信距离和抗干扰性要求,可选择TTL电平传输、电平传输、RS-232C、RS-422A、RS-485串口串口进行串行数据传输。进行串行数据传输。TTL电平通信接口如果两个单片机如果两个单片机相距在1.5m之内,它们的串行口可之内,它们的串行口可直接相连,接口如,接口如所示。甲机。甲机RXD与乙机与乙机TXD端相连,乙机端相连,乙机RXD与甲机与甲机TXD端相连。端相连。RS-232C双机通信接口如果双机通信如果双机通信距离在1.515m之间时,可用之间时,可用RS-232C标准接口实现点对点的双机通信,接口如实现点对点的双机通信,接口如图所示。图图中中MAX232A是美国是美国MAXIM(美信)公司生产的(美信)公司生产的RS-232C双双工发送器工发送器/接收器电路芯片。接收器电路芯片。RS-232C有有明显缺点明显缺点:传输速率低、通信距离短、接传输速率低、通信距离短、接口处信号容易产生串扰口处信号容易产生串扰等。等。RS-422A与与RS-232C的的主要区别是,是,收发双方的信号地不再共地,RS-422A采用了采用了平衡驱动和差分接收的方法。用于数的方法。用于数据传输的是据传输的是两条平衡导线,这相当于两个单端驱动器。,这相当于两个单端驱动器。两条线上传输的信号电平,当一个表示逻辑两条线上传输的信号电平,当一个表示逻辑“1”时,另一条一定为逻辑时,另一条一定为逻辑“0”。若。若传输中,传输中,信号中混入干扰和噪声(共模形式),由于差分接收器的作用,就能识别有用由于差分接收器的作用,就能识别有用信号并正确接收传输的信息,并使干扰和噪声相互抵消。信号并正确接收传输的信息,并使干扰和噪声相互抵消。RS-422A能在能在长距离、高速率长距离、高速率下传输数据。它的下传输数据。它的最大最大传输率为传输率为10Mbit/s,电缆允许,电缆允许长度为长度为12m,如果,如果采用较低采用较低传输速率时传输速率时,最大传输距离最大传输距离可达可达1219m。为了增加通信距离,可采用光电隔离,利用为了增加通信距离,可采用光电隔离,利用RS-422A标准进行双机通信的接口电路标准进行双机通信的接口电路RS-485双机通信接口RS-422A双机通信双机通信需四芯传输线需四芯传输线,这对长距离通信很,这对长距离通信很不经济,故在工业现场,通常采用不经济,故在工业现场,通常采用双绞线传输的双绞线传输的RS-485串串行通信接口行通信接口,很容易实现多机通信。,很容易实现多机通信。RS-485是是RS-422A的变型,它的变型,它与与RS-422A的区别的区别:RS-422A为全双工为全双工,采用两对平衡差分信号线;,采用两对平衡差分信号线;RS-485为半双为半双工工,采用,采用一对平衡差分信号线一对平衡差分信号线。RS-485对于多站互连是十分方便的对于多站互连是十分方便的,很容易实现多机,很容易实现多机通信。通信。RS-485允许最多允许最多并联并联32台驱动器和台驱动器和32台接收器台接收器。图图7-19为为RS-485通信接口电路。与通信接口电路。与RS-422A一样,最大传输一样,最大传输距离约为距离约为1219m,最大传输速率为最大传输速率为10Mbit/s。7.3.2多机通信接口多机通信接口1多机通信原理多机通信原理串串行行口口控控制制寄寄存存器器SCON中中的的SM2为为多多机机通通信信接接口口控控制制位位.串串行行口口以以方方式式2或或3接接收收时时,若若SM2=1,表示置多机通信功能位表示置多机通信功能位,这时出现两种可能情况这时出现两种可能情况.(1)接接收收到到的的第第9位位数数据据RB8为为1时时,数数据据才才装装入入SBUF,并置位并置位RI=1,向,向CPU发中断请求;发中断请求;(2)接接收收到到的的第第9位位数数据据RB8为为0时时,则则不不产产生生中中断断,信息抛弃信息抛弃.若若SM2=0时时,则则接接收收到到第第9位位数数据据RB8无无论论是是0还还是是1,都都将将数数据据装装入入接接收收缓缓冲冲器器SBUF并并置置位位中中断断标标志志RI,请求请求CPU处理。处理。应用应用51单片机串行口的这个功能单片机串行口的这个功能,便可实现便可实现AT89S51的多机通信。的多机通信。多机通信系统示意图多机通信系统示意图SM2=0,RB8=0或或1,RI=1,发中断申请发中断申请SM2=1RB8=1,RI=1,发中断申请发中断申请RB8=0,RI=0,不发中断申请不发中断申请多机通信系统示意图多机通信系统示意图TXDTXDTXD RXDRXDRXDTXDRXD主机从机1从机2从机3返回多机通信系统示意图多机通信系统示意图TXDTXDTXD RXDRXDRXDTXDRXD主机从机1从机2从机3从机地址从机地址:01H02H03H1)各从机初始化各从机初始化:MOV SCON,#0B0H;或或#0F0HTXDRXD主机TXD RXD从机1TXD RXD从机2TXD RXD从机32)主机发送信息主机发送信息:其中其中地址地址:TB8=1,数据数据:TB8=0,例如例如:主机发送地址主机发送地址:02HSBUFRB81)各从机初始化各从机初始化:MOVSCON,#0B0H;或或#0F0HTXDRXD主机TXD RXD从机1TXD RXD从机2TXD RXD从机32)主机发送信息主机发送信息:其中地址其中地址:TB8=1,数据数据:TB8=00SBUF10000001RB81)各从机初始化各从机初始化:MOVSCON,#0B0H;或或#0F0HTXDRXD主机TXD RXD从机1TXD RXD从机2TXD RXD从机32)主机发送信息主机发送信息:其中地址其中地址:TB8=1,数据数据:TB8=0SBUFRB8102H1)各从机初始化各从机初始化:MOV SCON,#0B0H;或或#0F0HTXDRXD主机TXD RXD从机1TXD RXD从机2TXD RXD从机32)主机发送信息主机发送信息:其中地址其中地址:TB8=1,数据数据:TB8=03)各从机响应中断各从机响应中断,在中断程序中判断接收到地在中断程序中判断接收到地址与本机相符址与本机相符?相符相符,SM2=0,不符不符,保持保持SM2=14)发送的数据帧发送的数据帧,因因RB8=0,只有只有SM2=0的从机可的从机可接收接收,进入中断处理进入中断处理.SBUFRB8102HSM2=1SM2=1SM2=0串行通信设计需要考虑的问题串行通信设计需要考虑的问题单片机的串行通信接口设计时,单片机的串行通信接口设计时,需考虑如下问题需考虑如下问题。(1 1)首先确定通信双方的)首先确定通信双方的数据传输速率数据传输速率。(2 2)由数据传输速率)由数据传输速率确定采用的串行通信接口确定采用的串行通信接口标标准。准。(3)在通信接口标准允许的范围内)在通信接口标准允许的范围内确定通信的波确定通信的波特率特率。为减小波特率的误差,通常。为减小波特率的误差,通常选用选用11.0592MHz的晶振频率。的晶振频率。(4)根据任务需要,确定收发双方使用的)根据任务需要,确定收发双方使用的通信协通信协议议。(5)通信线的选择通信线的选择,这是要考虑的一个很重要的,这是要考虑的一个很重要的因素。通信线一般因素。通信线一般选用选用双绞线双绞线较好较好,并根据传输,并根据传输的距离选择纤芯的直径。如果空间的干扰较多,的距离选择纤芯的直径。如果空间的干扰较多,还要选择带有屏蔽层的双绞线。还要选择带有屏蔽层的双绞线。(6)通信协议确定后,进行通信)通信协议确定后,进行通信软件编程软件编程,请见,请见下面介绍。下面介绍。7.5串行口编程和应用串行口编程和应用例例7.3串行口方式串行口方式1应用编程(双机通讯)应用编程(双机通讯)串行口发送串行口发送/接收共接收共10位信息(方式位信息(方式1),第),第0位起始位,位起始位,18是数据位,最后是停止位是数据位,最后是停止位。甲机:把以甲机:把以78H,77H内容为首地址,以内容为首地址,以76H,75H中内容中内容减减1为末地址的数据块内容,通过串行口向乙机发送。为末地址的数据块内容,通过串行口向乙机发送。设设8031内部内部RAM中中78H:20首地址为首地址为2000H77H:0076H:20末地址为末地址为2020H75H:20解解:下面的程序把下面的程序把2000H201FH中内容输出到串行口中,中内容输出到串行口中,甲机甲机fosc=6MHZ,波特率波特率2400b/s,T1的工作方式为的工作方式为1.甲机发送清单:甲机发送清单:ORG0000H RESET:LJMP MAIN ORG 001BH LJMP TINT ORG 0023H LJMP SINT ORG0100HMAIN:MOVSP,#60H MOV78H,#20H MOV77H,#00H MOV76H,#20H MOV75H,#20H ACALL TRANSHERE:AJMPHERE RETTRANS:ANL TMOD,#0FH;T1为方式为方式1 ORL TMOD,#10H MOV TL1,#0FAH MOV TH1,#0FFH MOV PCON,#80H;SMOD=1 SETB EA;允许总中断允许总中断 CLR ES;关串行口中断关串行口中断 SETB ET1 SETB PT1 ;T1中断高于串行口中断高于串行口中断中断 CLR PS SETB TR1 ;启动启动T1重计数重计数 CLR TI CLR F0 MOV SCON,#40H;置串行口为方式置串行口为方式1 MOV SBUF,78H ;输出高位地址输出高位地址WAIT1:JNB TI,WAIT1 CLR TI MOV SBUF,77H WAIT2:JNB TI,WAIT2 CLR TI MOV SBUF,76H;输出末位地输出末位地址址WAIT3:JNB TI,WAIT3 CLR TI MOV SBUF,75H SETB ES ;允许串行口允许串行口中断中断WAIT4:JNB F0,WAIT4 CLRTI RET T1INT:CLR TR1 MOV TL1,#0FAH MOV TH1,#0FFH SETB TR1 RETISINT:PUSH DPL PUSH DPH PUSH A MOV DPH,78H MOV DPL,77H MOVX A,DPTR CLR TI MOV SBUF,A MOV A,DPH CJNE A,76H,END1;结束否结束否?是末地址吗是末地址吗?MOV A,DPL CJNE A,75H,END1 CLRES CLRRT1 CLRTR1 POPA POPDPH POPDPLRETIEND1:INC 77HMOVA,77HJNZ END2INC 78HEND2:SJMPESCOM串行口方式串行口方式3应用编程应用编程(双机通信双机通信)【例例7.4】下面程序中下面程序中,T1作为波特率发生器作为波特率发生器,选选择为方式择为方式2.串行口选择工作方式串行口选择工作方式3进行发送和接收进行发送和接收.甲机用查询方式发地址甲机用查询方式发地址,中断方式发数据中断方式发数据.已机接已机接收采用中断方式收采用中断方式.甲机使用晶振为甲机使用晶振为6MHZ,波特率波特率2400b/s.甲机发送程序甲机发送程序:甲机首先发送地址甲机首先发送地址,该地址高位存放在该地址高位存放在78H中中,低位低位存放在存放在77H中中,然后发送然后发送00H,01H,02H,FEH,共共255个数据个数据,最后最后结束束.ORG0000H LJMPTRANS ORG0023H LJMPSINT ORG0100HTRANS:MOV A,#20H MOVTMOD,A MOVTL1,#F3H MOVTH1,#F3H MOVPCON,#80H SETBEA CLRES CLRET1 SETBTR1 MOVSCON,#0E0H SETBTB8 MOVSBUF,78HWAIT1:JNBTI,WAIT1 CLRTI MOVSBUF,#77H MOV IE,#90H CLR TB8 MOV A,#00H WAIT2:CJNE A,#0FFH,WAIT2 CLRESWAIT:AJMP WAITSINT:CLRTI MOV SBUF,A INCA RETI乙机接收程序乙机接收程序乙机把接收的头乙机把接收的头2B作为首地址作为首地址,再把接收的再把接收的256B的数放入以首地址开始的单元中的数放入以首地址开始的单元中.乙机晶振频率为乙机晶振频率为11.0592MHz,波特率为波特率为2400b/s.程序清单程序清单:ORG0000H LJMPMAIN ORG0023H LJMPRE ORG0100HMAIN:MOV SP,#60H ACALL RECEIVE SJMP$RESEIVE:MOVA,#20H MOVTMOD,A MOVTL1,#0E8H MOVTH1,#0E8H MOVPCON,#80H SETBEA CLRET1SETBESSETBTR1MOVSCON,#0F0HMOVR0,#0FEHSETBF0WAIT:MOVC,F0JCWAITRETRE:MOVC,RB8JNCPD2INCR0MOV A,R0JZPDMOVDPH,SBUFAJMP PD1PD:MOVDPL,SBUFCLRSM2PD1:CLRRIRETIPD2:MOVA,SBUFMOVXDPTR,AINCDPTRCLRRICJNEA,#0FEH,RETURNSETBSM2CLRF0RETURN:RETI本章到此结束,本章到此结束,结束放映返回本章首页
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!