单片机第十章串行口优秀PPT.ppt
单片机第十章串行口1第1页,本讲稿共36页二串行通讯的字符格式:二串行通讯的字符格式:1.异步通讯:异步通讯:传送方向传送方向.1数据数据0.1数据数据0.1数据数据0停止位停止位起始位起始位停止位停止位起始位起始位停止位停止位起始位起始位若干空闲位若干空闲位数据中信息的两种状态分别以数据中信息的两种状态分别以mark和和space标志标志,其中:其中:mark译为译为”标号标号”,对应逻辑,对应逻辑1的状态。的状态。Space译为译为”空格空格”,对应逻辑,对应逻辑0的状态。的状态。2第2页,本讲稿共36页每每一一幀幀数数据据均均以以0开开始始,以以1终终止止,中中间间传传送送的的数数据据位位可可以以是是5位位,7位位,8位位均均可可,中间有若干空闲位中间有若干空闲位,空闲时一般处于空闲时一般处于1的状态。的状态。异步通讯比较灵活,实现起来比较简单异步通讯比较灵活,实现起来比较简单2.同步通讯:同步通讯:选用一个同步字符,例如选用一个同步字符,例如0010010发送过去,约定同时开始同步传送。发送过去,约定同时开始同步传送。传送方向传送方向数据数据数据数据数据数据数据数据同步字符同步字符数据之间没有间隔,可连续发送数据之间没有间隔,可连续发送。3第3页,本讲稿共36页比较:比较:同同步步传传送送效效率率比比异异步步高高。如如果果传传送送200个个字字节节加加一一各各同同步步字字符符,则则辅辅助助数数据据只只佔佔0.5若若用用异异步步传传送送到到200个个字字节节则则至至少少有有400位位辅辅助助数数据据,其其数数量量可可观。观。三三.异步串行通讯的信号格式:异步串行通讯的信号格式:1近程通讯近程通讯RS232 TXD甲机甲机RXD GND1488148914891488RXD乙机乙机TXDGNDTTLTTLTTLTTLRS2324第4页,本讲稿共36页近程通讯采用数字信号直接传送方式:近程通讯采用数字信号直接传送方式:计计算算机机内内部部的的数数据据信信号号是是TTL电电平平标标准准,而而通通信信线线上上的的数数据据信信号号是是RS-232电电平平标标准准。尽尽管管电电平平标标准准不不同同,但但数数据据信信号号的的波波形形和和频频率率并并没没有有改改变变,近近程程串行通讯只需用传输线把两端接口电路直接连接起来即可实现。串行通讯只需用传输线把两端接口电路直接连接起来即可实现。RS-232和和TTL电平标准的逻辑值规定为:电平标准的逻辑值规定为:RS-232标准标准TTL标准标准逻辑逻辑1(mark)-3-25V25V(高电平额定值高电平额定值3V)逻辑逻辑0(space)+3+25V00.8V(低电平额定值低电平额定值0.2V)5第5页,本讲稿共36页2远程通讯远程通讯在在远远程程通通讯讯中中,应应使使用用专专用用通通信信电电缆缆,出出于于经经济济的的考考虑虑,通通常常使使用用电电话话线作为传输线,如图:线作为传输线,如图:计算机计算机MODEMMODEM计算机计算机数字信号数字信号数字信号数字信号RS-232标准标准RS-232标准标准模拟信号模拟信号电话线电话线地地地地6第6页,本讲稿共36页远远距距离离直直接接传传送送数数字字信信号号,信信号号会会发发生生畸畸变变,为为此此要要把把数数字字信信号号转转变变为为模模拟拟信信号号再再进进行行传传送送,通通常常使使用用频频率率调调制制法法,即即以以不不同同频频率率的的载载波波信信号号代代表表数数字字信信号号的的两两种种不不同同电电平平状状态态,这这种种数数据据传传送送方方式式称称为为频频带带传传送送方方式。通常为:式。通常为:mark:1270HZ或或2225HZspace:1070HZ或或2025HZ在在串串行行通通信信发发送送端端有有调调制制器器,用用以以把把电电平平信信号号调调制制为为频频率率信信号号,而而在在接接收收端端有有解解调调器器,用用以以把把频频率率信信号号解解调调为为电电平平信信号号。通通常常串串行行通通信信两两端端均均具具有有发发送送接接收收功功能能,因因此此均均应应设设置置调调制制器器和和解解调调器器,二二者者合合二二为为一一为为调调制制解解调调器器,即即MODEM。7第7页,本讲稿共36页四四.串行通讯的数据通路形式:串行通讯的数据通路形式:1.单工形式单工形式数据单向传送,只需一条传输线。数据单向传送,只需一条传输线。2.半双工形式半双工形式数据传送是双向,但不可同时进行。数据传送是双向,但不可同时进行。传输线可用一条,也可用两条。传输线可用一条,也可用两条。3.全双工形式全双工形式数数据据传传送送是是双双向向,且且可可同同时时发发送送接接收。需两条传输线。收。需两条传输线。ABABAB8第8页,本讲稿共36页五五.串行通讯的传送速率:串行通讯的传送速率:用每秒传送数据的位数衡量,称波特率用每秒传送数据的位数衡量,称波特率(baudrate)以波特为单位以波特为单位1波特波特=1bit/s(位位/秒秒)例如电传打字机传送速率为每秒例如电传打字机传送速率为每秒10个字符,每个字符个字符,每个字符11位,位,则波特率为:则波特率为:11位位/字符字符10字符字符/秒秒=110位位/秒秒即即110波特波特传送一位需时间:传送一位需时间:1/110秒秒9.1msMCS-51系系列列单单片片机机具具有有一一个个全全双双工工的的串串行行口口,它它在在不不同同的的工工作作方方式式中中可同步或异步发送或接收数据。可同步或异步发送或接收数据。其波特率范围:以其波特率范围:以6MHZ晶振为例、为晶振为例、为0.24波特波特31250波特波特9第9页,本讲稿共36页第二节第二节8031单片机串行口的控制及工作方式单片机串行口的控制及工作方式串行口的接收端为串行口的接收端为P3.0(10脚脚)称称RXD,发送端为,发送端为P3.1(11脚脚)称称TXD。一一.8031串行口的控制寄存器:串行口的控制寄存器:1.串行口控制寄存器串行口控制寄存器SCON字节地址字节地址98H可位寻址。可位寻址。SM0SM1SM2RENTB8RB8TIRI00:方式:方式0接收中断标志接收中断标志01:方式:方式1发送中断标志发送中断标志10:方式:方式21:允许接收:允许接收接收到的第接收到的第9位位11:方式:方式30:禁止接收:禁止接收待发送的第待发送的第9位位10第10页,本讲稿共36页例:使串行口方式例:使串行口方式1发送发送MOVSCON,#40H01000000方式方式1禁止接收禁止接收2.PCON字节地址字节地址87HD7SMOD只只有有最最高高位位D7位位有有定定义义,SMOD称称波波特特率率选选择择位位。SMOD为为1时时比比为为0时波特率高一倍。时波特率高一倍。3.串行通道数据寄存器串行通道数据寄存器SBUF它它是是两两个个9位位移移位位寄寄存存器器,一一个个是是发发送送缓缓冲冲器器,只只写写不不读读,另另一一个个是是接接收缓冲器,只读不写,它们共用一个地址收缓冲器,只读不写,它们共用一个地址99H11第11页,本讲稿共36页二串行口的四种工作方式:二串行口的四种工作方式:1方式方式0移移位位寄寄存存器器输输入入输输出出方方式式,同同步步发发送送接接收收8位位数数据据,每每个个机机器器周周期期移移一一位位。如图如图:DSADSBCP74LS164Q0Q7 RXDTXD8031 RXDTXD8031Q7CP74LS165D0D7 输出方式输出方式输入方式输入方式12第12页,本讲稿共36页方式方式0输出的基本指令:输出的基本指令:MOVSCON,#00H;SM0=SM1=0,选方式,选方式0MOVA,#nnH;取待输出数据取待输出数据nnHCLRTI;清发送中断标志清发送中断标志MOVSBUF,A;对对SBUF写入即启动发送,写入即启动发送,TXD端每个机器周端每个机器周期发出一个移位脉冲,数据即从期发出一个移位脉冲,数据即从RXD端端输出一位,输出一位,74LS164的的CP端每接收端每接收TXD端端一个移位脉冲,一个移位脉冲,数据右移一次,输出时数据右移一次,输出时以并行方式出现。以并行方式出现。WAIT:JNBTI,WAIT;发送一个字节后发送一个字节后TI=1标志一帧数据发送完毕标志一帧数据发送完毕CLRTI;清发送中断标志,清发送中断标志,准准备发送下一字节备发送下一字节13第13页,本讲稿共36页方式方式0输入:输入:当当REN=1,接接收收中中断断标标志志RI=0,则则启启动动接接收收,移移位位脉脉冲冲仍仍从从TXD端端输输出出,数数据据从从RXD端端输输入入,当当一一个个字字节节数数据据输输入入完完毕毕时时,置置1接接收收中中断断标志标志RI。2.方式方式1异步通讯。发送或接收一帧数据为异步通讯。发送或接收一帧数据为10位,其格式是:位,其格式是:18位位数数据据0SCON中中SM0,SM1为为01则选方式则选方式114第14页,本讲稿共36页发送过程:发送过程:启动发送:执行一条访问启动发送:执行一条访问SBUF的指令即启动发送,的指令即启动发送,且同时且同时1装装入第入第9位。位。发送一位的时间:由选定的波特率决定。发送一位的时间:由选定的波特率决定。发送过程:首先起始位发送过程:首先起始位0从从TXD脚发出,且第脚发出,且第9位写入位写入1,然后每个移位脉冲将然后每个移位脉冲将SBUF中数据右移一位,中数据右移一位,从从TXD输出,空位由输出,空位由0填充。填充。发送结束后,置位发送中断标志发送结束后,置位发送中断标志TI,申请中断。,申请中断。15第15页,本讲稿共36页接收过程:接收过程:当当REN=1,且接收中断标志,且接收中断标志RI=0时,允许接收。时,允许接收。判判断断起起始始位位:以以选选定定波波特特率率的的16倍倍速速率率采采样样RXD端端,当当连连续续三三次次采采样中有两次是样中有两次是0时,则确认为起始位时,则确认为起始位0,此时开始一帧数据的接收。,此时开始一帧数据的接收。开开始始接接收收:1FFH写写入入移移位位寄寄存存器器,每每个个位位移移脉脉冲冲左左移移一一位位,一一帧帧数数据据接收完后置接收完后置1接收中断标志,申请中断。移位脉冲的频率由选定波特率决定。接收中断标志,申请中断。移位脉冲的频率由选定波特率决定。判断保留数据的条件判断保留数据的条件保保留留数数据据的的条条件件是是:RI=0、SM2=0或或者者RI=0、停停止止位位为为1,符符合合两两组组条条件其中之一则将数据保留在件其中之一则将数据保留在SBUF中,并置位接收中断标志中,并置位接收中断标志RI。若不符合保留数据的条件,则将收到的数据丢弃,重新检测若不符合保留数据的条件,则将收到的数据丢弃,重新检测RXD端以备下端以备下次接收。次接收。16第16页,本讲稿共36页3.方式方式2.异步发送或接收一帧数据为异步发送或接收一帧数据为11位,其格式为:位,其格式为:1第第9位位8位位数数据据0发送与接收操作同方式发送与接收操作同方式1,注意,注意保留数据的两组条件保留数据的两组条件为:为:RI=0、SM2=0或者或者RI=0、第、第9位数据为位数据为14.方式方式3与方式与方式2相同的是异步接收发送一帧数据是相同的是异步接收发送一帧数据是11位,但波特率与方式位,但波特率与方式2不同。不同。注:所有方式当发送或接收一帧数据置注:所有方式当发送或接收一帧数据置1TI和和RI中断标志后,必须软件清中断标志后,必须软件清0,以备下一帧数据的发送或接收。,以备下一帧数据的发送或接收。17第17页,本讲稿共36页三三.SCON中的中的TB8、RB8第第9位数据的用法举例位数据的用法举例在在数数据据通通讯讯中中,由由于于传传输输距距离离较较远远,数数据据信信号号在在传传输输过过程程中中可可能能发发生生畸畸变变,从从而而引引起起误误码码,为为了了保保证证传传输输质质量量,除除了了硬硬件件上上采采取取措措施施之之外外,软软件件可可采采取取排排错错措措施施,例例如如可可用用第第9位位数数据据作作为奇偶检验。例:为奇偶检验。例:发送端发送一个字节数据及奇偶位:发送端发送一个字节数据及奇偶位:MOVSCON,#80H;选串行口方式选串行口方式2,传送,传送11位数据位数据MOVA,#DATA;待发送待发送8位数据送位数据送A,注意此时,注意此时A的的内容将影响内容将影响PSW中的奇偶标志中的奇偶标志P,即即PSW.0MOVC,PSW.0;奇偶标志送奇偶标志送C,奇为,奇为1、偶为、偶为0MOVTB8,C;奇偶标志送奇偶标志送TB8,待发送的第,待发送的第9位位MOVSBUF,A;启动一次发送共启动一次发送共11位数据位数据LOOP:JBCTI,NEXT;TI=1时,一帧数据发完,清时,一帧数据发完,清TI转下转下SJMPLOOP.NEXT:18第18页,本讲稿共36页接收端将收到的数据用奇偶校验位进行核对排错:接收端将收到的数据用奇偶校验位进行核对排错:MOVSCON,#90H;选方式选方式2,10010000,REN=1,允许接收,允许接收LOOP:JBCRI,RIV;等待接收完毕等待接收完毕SJMPLOOPRIV:MOVA,SBUF;接收完一帧数据取出送接收完一帧数据取出送A此时收到的数据将影响此时收到的数据将影响PSW中奇偶位中奇偶位PSW.0JBPSW.0,ONE;为奇跳下为奇跳下JBRB8,ERR;接收到的数据为偶,而第接收到的数据为偶,而第9位为位为1,出错,出错SJMPLD;接收正确接收正确ONE:JNBRB8,ERR;接收到的第接收到的第9位不为位不为1,出错,出错LD:;接收正确接收正确ERR:.;接收出错处理,可通知对方重发接收出错处理,可通知对方重发19第19页,本讲稿共36页四四.用用SCON中的中的SM2实现多机通讯实现多机通讯在在方方式式2和和方方式式3中中,当当接接收收到到一一帧帧数数据据时时,只只有有符符合合下下列列条条件件之之一一数数据据才才会会被保留,否则将被丢弃:被保留,否则将被丢弃:RI=0RI=0SM2=0第九位数据为第九位数据为11.多多机机通通讯讯时时约约定定主主机机发发出出地地址址信信息息时时第第9位位为为1,而而数数据据信信息息第第9位位为为0,且初始化时使且初始化时使SM2=12.主主机机先先向向各各从从机机发发出出地地址址信信息息,此此时时由由于于地地址址信信息息第第9位位为为1,各各从从机机接接收收到到的的信信息息均均符符合合第第组组条条件件而而被被接接收收保保存存,各各从从机机即即将将收收到到的的地地址址信信息息与与自己的地址相比较,如果与本机地址相符则使自己的地址相比较,如果与本机地址相符则使SM2=020第20页,本讲稿共36页3.随后主机向各从机发出数据,第随后主机向各从机发出数据,第9位为位为0,各从机收到后均不符合条件,各从机收到后均不符合条件,只有地址相符的从机由于,只有地址相符的从机由于SM2=0符合条件符合条件而保存接收到的数据信息,而保存接收到的数据信息,其余各从机均将数据信息丢弃,这就实现了点对点的多机通讯。其余各从机均将数据信息丢弃,这就实现了点对点的多机通讯。第三节第三节波特率的制定方法波特率的制定方法一一.方式方式0:以下以以下以B代表波特率,以代表波特率,以f代表晶振频率代表晶振频率方式方式0的波特率固定为晶振频率的的波特率固定为晶振频率的1/12例如例如6M晶振,则晶振,则B=6M/12=0.5M位位/秒秒=0.5106波特波特传送一位所需时间是:传送一位所需时间是:2微秒微秒注:方式注:方式0波特率只与晶振频率波特率只与晶振频率f有关,有关,f愈大传送速度愈快。愈大传送速度愈快。21第21页,本讲稿共36页二二.方式方式2:B=f2SMOD/64其中其中SMOD是是PCON的最高位,可为的最高位,可为0或或1,以,以f=6M为例:为例:当当SMOD=0B=6M20/64=93750波特波特当当SMOD=1B=6M21/64=187500波特波特注:方式注:方式2波特率与晶振频率和波特率与晶振频率和SMOD有关,一经选定晶振频率,波特率只有关,一经选定晶振频率,波特率只有两种可选择。有两种可选择。22第22页,本讲稿共36页三三.方式方式1和方式和方式3:B=T1溢出率溢出率2SMOD/32什什么么是是溢溢出出率率?溢溢出出率率即即定定时时器器每每秒秒溢溢出出的的次次数数。由由于于定定时时器器工工作作于于不不同同的的工工作作方方式式时时,具具有有不不同同的的计计数数器器位位数数,(13位位、16位位、8位位),装装入入不不同同的的初初始始常常数数,因此溢出率也不同。因此溢出率也不同。下面从溢出周期下面从溢出周期(隔多长时间溢出一次隔多长时间溢出一次)来推出溢出率:来推出溢出率:23第23页,本讲稿共36页溢出周期:溢出周期:T=TC+TI式中:式中:TC为定时器的定时间隔为定时器的定时间隔TC=(2N-Z)机器周期机器周期其中其中Z是定时器的初始常数是定时器的初始常数N当定时器选择方式当定时器选择方式0、1、2时分别为时分别为13、16、8机器周期为机器周期为12/f 24第24页,本讲稿共36页TI为本次定时结束到下次启动定时的时间,它包括:为本次定时结束到下次启动定时的时间,它包括:a:转入中断入口的硬件子程序所需的:转入中断入口的硬件子程序所需的3个机器周期个机器周期b:中断服务程序中重装时间常数又返回所需时间,:中断服务程序中重装时间常数又返回所需时间,一般为一般为6个机器周期个机器周期TI=912/f所以,溢出周期为:所以,溢出周期为:T=TC+TI=(2N-Z)12/f+912/f=(2N-Z+9)12/ff溢出率溢出率=1/T=(2N-Z+9)1225第25页,本讲稿共36页 需需要要说说明明的的是是上上述述公公式式是是对对定定时时器器方方式式0和和1而而言言,对对于于定定时时器器方方式式2则则由由于于可可自自动动重重装装时时间间常常数数而而省省去去了了转转入入中中断断服服务务重重装装时时间间常常数数所所需需的的9个个机机器周期,即器周期,即TI=0因此定时器方式因此定时器方式2时溢出率为:时溢出率为:f溢出率溢出率=(2N-Z)1226第26页,本讲稿共36页综上分析,串行口方式综上分析,串行口方式1和方式和方式3的波特率计算公式为:的波特率计算公式为:T1工作于方式工作于方式0和方式和方式1时时B=f2SMODN=13或或16(2N-Z+9)1232T1工作于方式工作于方式2时时B=f2SMODN=8(2NZ)123227第27页,本讲稿共36页由由式式以以f=6M为例为例T1方式方式0:当:当SMOD=0、Z=0时获得最小波特率:时获得最小波特率:B=1.9052波特波特当当SMOD=1、Z=1FFFH时获得最大波特率:时获得最大波特率:B=3125波特波特T1方式方式1:波特率范围为:波特率范围为0.243125波特波特由由式,式,T1方式方式2:波特率范围为波特率范围为6131250波特波特28第28页,本讲稿共36页例例编编一一程程序序,设设置置8031串串行行口口可可发发送送接接收收一一帧帧数数据据为为11位位,其其波波特特率率选选定定125波特。设晶振频率为波特。设晶振频率为6MHZ分析:分析:1.方式方式2和方式和方式3可发送接收可发送接收11位数据。位数据。若选方式若选方式2B=f2SMOD/64=61062SMOD/64当当SMOD=0时时B=93750波特波特当当SMOD=1时时B=187500波特波特均不可满足均不可满足125波特,因此只能选方式波特,因此只能选方式3SCON:11010000方式方式3允许接收允许接收D0H29第29页,本讲稿共36页2.设置计算波特率:设置计算波特率:选选T1方式方式2,其波特率范围为,其波特率范围为6131250波特可满足波特可满足125波特。波特。T1工作于方式工作于方式2时时B=f2SMOD选选SMOD=1(2NZ)1232则:则:B=610621=125解之得解之得Z=6(28Z)123230第30页,本讲稿共36页程序如下:程序如下:ORG0000HAJMPMAINORG0023HAJMPPPT0MAIN:MOVSP,#60HMOVSCON,#0D0H;串行口方式串行口方式3,允许接收,允许接收MOVPCON,#80H;SMOD=1MOVTMOD,#00100000B;T1方式方式2定时定时MOVTL1,#06H;设置波特率设置波特率125波特波特MOVTH1,#06HSETBEA;允许允许CPU中断中断SETBES;允许串行口中断允许串行口中断SETBTR1;启动启动T1发出波特率发出波特率.PPT0:略略31第31页,本讲稿共36页 本章要点:本章要点:1.第一节中的有关串行口的基本概念:第一节中的有关串行口的基本概念:如如并行通讯与串行通讯并行通讯与串行通讯串行通讯的字符格式串行通讯的字符格式异步串行通讯的信号格式异步串行通讯的信号格式RS-232和和TTL电平标准电平标准频率调制法频率调制法MODEM串行通讯的数据通路形式:单工串行通讯的数据通路形式:单工半双工半双工全双工全双工波特率波特率2.串行口的控制寄存器:串行口的控制寄存器:SCON中各位的意义中各位的意义PCON中的中的SMOD位位SBUF32第32页,本讲稿共36页3.串行口的四种工作方式:串行口的四种工作方式:方式方式0:移位寄存器输入输出方式,移位寄存器输入输出方式,同步同步发送接收发送接收8位数据位数据方式方式1:异步通讯。发送或接收一帧数据为异步通讯。发送或接收一帧数据为10位,其格式是位,其格式是.方式方式2和方式和方式3异步发送或接收一帧数据为异步发送或接收一帧数据为11位,其格式位,其格式33第33页,本讲稿共36页4.波特率的制定方法波特率的制定方法方式方式0波特率固定为晶振频率的波特率固定为晶振频率的1/12方式方式2:B=f2SMOD/6434第34页,本讲稿共36页方式方式1和方式和方式3的波特率计算公式为:的波特率计算公式为:T1工作于方式工作于方式0和方式和方式1时时B=f2SMODN=13或或16(2N-Z+9)1232T1工作于方式工作于方式2时时B=f2SMODN=8(2NZ)1232注意区分串行口的工作方式和注意区分串行口的工作方式和T1的工作方式。的工作方式。35第35页,本讲稿共36页5.根据以上基本知识,要求能对串行口进行正确的初始化编程。根据以上基本知识,要求能对串行口进行正确的初始化编程。36第36页,本讲稿共36页