第5章-单片机的定时计数器与串行接口_第1页
第5章-单片机的定时计数器与串行接口_第2页
第5章-单片机的定时计数器与串行接口_第3页
第5章-单片机的定时计数器与串行接口_第4页
第5章-单片机的定时计数器与串行接口_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

1、彭周华15.1 5.1 定时定时/ /计数器计数器T0T0、T1T15.1.1 5.1.1 定时定时/ /计数器的结构和工作原理计数器的结构和工作原理5.1.2 5.1.2 定时定时/ /计数器的寄存器计数器的寄存器5.1.3 5.1.3 定时器的四种工作方式定时器的四种工作方式5.1.4 5.1.4 定时计数器的应用程序设计定时计数器的应用程序设计5.1.5 5.1.5 小小 结结5.2 5.2 串行接口串行接口2n测量控制系统,常常要求有一些测量控制系统,常常要求有一些定时器定时器, ,以实现定时以实现定时控制、定时测量或延时动作,同时要求有控制、定时测量或延时动作,同时要求有计数器计数器

2、能对能对外部事件计数。外部事件计数。n实现定时计数的实现定时计数的方法方法有有3 3种种(1 1)软件定时)软件定时- -占用占用CPUCPU时间,减低时间,减低CPUCPU的利用率的利用率(2 2)硬件定时)硬件定时- -延时时间固定,修改不方便。延时时间固定,修改不方便。(3 3)可编程定时)可编程定时/ /计数器(硬件定时,软件设置)计数器(硬件定时,软件设置)3n5151系列单片机有系列单片机有2 2个个1616位定时位定时/ /计数器:计数器:T0T0和和T1T1 ;n2 2个定时器都有定时或事件计数的功能,可用于定个定时器都有定时或事件计数的功能,可用于定时控制、延时、对外部事件计

3、数和检测等场合;时控制、延时、对外部事件计数和检测等场合;n定时定时/ /计数器实际上是计数器实际上是1616位加位加1 1计数器。计数器。 T0 T0由由2 2个个8 8位持殊功能寄存器位持殊功能寄存器TH0TH0和和TL0TL0构成,构成, T1 T1由由2 2个个8 8位持殊功能寄存器位持殊功能寄存器TH1TH1和和TL1TL1构成。构成。nT0T0和和T1T1都可由软件设置为都可由软件设置为定时或计数定时或计数工作方式;工作方式;nT0T0和和T1T1受受2 2个特殊功能寄存器个特殊功能寄存器TMODTMOD和和TCONTCON控制。控制。 4振荡源 12T0引脚SKC/ T=0C/

4、T=1TH0 TL0 中断TF0TR0GATEINT0&11S打向上,定时; S打向下,计数:计数满,标志置位,产生中断。TR0=1,GATE=0时,定时/计数器直接启动工作; TR0=1,GATE=1时,启动受INT0控制。5定时工作方式时,定时器脉冲由单片机内部振荡器经12分频后产生的。每经过一个机器周期定时器(T0或T1)的数值加1,直至计数满产生溢出。例如:当8051采用12MHz晶体时,每个机器周期为1s,计5 个计数周期即为5s,即定时5s 。6计数工作方式时,计数脉冲信号来自计数工作方式时,计数脉冲信号来自T T0 0(P3.4)(P3.4)和和T T1 1(P3.5)(

5、P3.5)引脚。引脚。当输入脉冲信号产生由当输入脉冲信号产生由1 1至至0 0的下降沿时,定时器的值加的下降沿时,定时器的值加1 1;在每个机器周期在每个机器周期CPUCPU采样采样T T0 0和和T T1 1的输入电平。若前一个的输入电平。若前一个机器周期采样值为高,下一个采样周期值为低,则计数器机器周期采样值为高,下一个采样周期值为低,则计数器加加 1 1。检测跳变需要检测跳变需要2 2个机器周期,故最高计数频率个机器周期,故最高计数频率f=f=foscfosc/24/24。为了确保某个电平在变化之前至少被采样一次,要求电平为了确保某个电平在变化之前至少被采样一次,要求电平保持时间至少是一

6、个完整的机器周期。保持时间至少是一个完整的机器周期。TcyTcyTcy: 机器周期机器周期7n工作模式寄存器工作模式寄存器TMODTMOD(89H),(89H),控制寄存器控制寄存器TCONTCON(88H)88H)1. 1. TMOD TMOD用于控制用于控制T0T0和和T1T1的工作方式。其各位的定义如下:的工作方式。其各位的定义如下:定时器T0 定时器T1M0M1GATEM0M1GATED0D1D2 D3D4D5D6 D7C/ TC/ T8GATEGATEC/TC/TM1M1 M0M0GATEGATEC/ TM1M1M0M0GATE=0,TRx=1时,即可启动定时器工作;GATE=1,I

7、NTx=1且TRx=1时,才可启动定时器工作。C/TC/T=1,为计数器方式;C/T=0C/T=0,为定时器方式。nM1M0M1M0:M1M0=00:工作方式0(13位方式)。M1M0=01:工作方式1(16位方式)。M1M0=10:工作方式2(8位自动再装入方式)。M1M0=11:工作方式3(T0为2个8位方式)。9INT0方式下沿/低电平 INT0请求有/无 INT1方式下沿/ 低电平 INT1 请求有/无 T0 工作启/停 T0 请求有/无 T1工作启/停 T1 请求有/无 IT0 IE0IT1IE1TR0 TF0 TR1 TF1T1T0外部中断2.2.控制寄存器控制寄存器TCON(88

8、H) TCON(88H) 10nTF1TF1:T1溢出中断请求标志。TF1=1,T1有溢出中断请求。TF1=0,T1无溢出中断请求。nTR1TR1:T1运行控制位。TR1=1,启动T1工作。TR1=0,停止T1工作n TF0TF0:T0溢出中断请求标志。TF0=1,T0有溢出中断请求。TF0=0,T0无溢出中断请求。n TR0TR0:T0运行控制位。TR0=1,启动T0工作。TR0=0,停止T0工作。11n 对TMOD寄存器的M1、M0位的设置,可选择工作方式0-3;以下用THX、TLX(X=0或1)表示TH1、TL1、TH0、TL0。T0(或T1)工作于13位定时计数方式。16位寄存器(TH

9、X+TLX)只用13位,TLX的高3位未用。振荡源 12Tx引脚SKC/ T=0C/ T=1THx TLx 中断TFxTRxGATEINTx&118位低5位12n当TLX的低5位溢出时,向THX进位;而THX溢出时,硬件置位TFX。n定时/计数溢出与否,可查询TFx进行判断;如果开中断则产生溢出中断。n 方式0 最大计数值为 213 8192个脉冲;用于定时工作时,定时时间为:t(213一Tx初值) 机器周期13n16位定时计数方式,寄存器THx和TLx以16位参与操作。n最大计数 21665536(个脉冲) 定时工作方式时,定时时间为: t(216一Tx初值) 机器周期14n8位的可

10、自动重装载的定时/计数方式。16位的计数器被拆成两个8位,其中TLx用作8位计数器, THx用以保持计数初值。当TLx计数溢出,置位TFx,THx中的初值自动装入TLx继续计数,循环重复计数。振荡源 12Tx引脚SKC/ T=0C/ T=1 TLx 中断TFxTRxGATEINTx&11 THx15最大计数值为:最大计数值为:2828256(256(个脉冲个脉冲) )。 定时工作方式时,定时时间为:定时工作方式时,定时时间为: t t(256(256一一TxTx初值初值) ) 机器周期机器周期n这种工作方式可省去用户重载常数的操作,并可产生这种工作方式可省去用户重载常数的操作,并可产生

11、精确的定时时间。精确的定时时间。16仅适用于T0TL0和TH0被分成为两个互相独立的8位计数器。TL0可作为定时或计数方式。占用定时器0的各控制位、引脚和中断源。即、GATE、TR0、TF0控制位以及引脚T0和INT0引脚。TH0只能用作定时功能,占用定时器1的控制位TR1和中断标志位TF1,其启动和关闭仅受TRl的控制。这种情况下,T1仍可工作于方式0、1、2,但不能使用中断方式。实际中只有将T1用做串行口的波特率发生器时,T0才工作在方式3,以便增加一个定时器。 17n定时/计数器0(方式3):2个8位计数器。振荡源 12T0引脚SC/ T=0C/ T=1TR0GATEINT0&1

12、1K TL0 中断TF01/12foscK TH0 中断TF11/12foscTR1181、定时/计数器初值的计算和载入定时器/计数器不同工作方式,其最大计数值(模值)不同,由于采用加1计数,因此计数初值应为负值,计算机中负数是采用补码表示。n初值的求法:定时方式:初值 = -t / MC补 =模t / MC采用12MHZ晶振时,MC=1us;6MHZ晶振, MC=2us。定时时间机器周期=12/foscn计数方式:初值 =模要计数的值X。19例: 计算T0 计数100个脉冲的初值00111111TH0高8位00111XXXTL0低5位初值=2000H64H=1F9CH1F9CH0001 11

13、11 1001 1100 B 用指令装入初值:MOVMOV TH0,#0FCH;MOVMOV TL0,#1CH;(xxx用0填入)初值=10000H-64H=FF9CH用指令装入计数初值:MOVMOV TH0,#0FFHMOVMOV TL0,#9CH20方式方式2 2(8 8位自动再装入方式)位自动再装入方式): :初值=100H64H=9CH初值既要装入TH0,也要装入TL0:MOV TH0,#9CH MOV TL0,#9CH21n定时/计数器是可编程部件,使用前应先对其内部寄存器进行设置-这称为初始化。定时计数器的初始化步骤:1)根据定时时间要求,计算计数器初值;2)设置工作方式控制字,送

14、TMOD寄存器;3)设置初值,送到THX和TLX寄存器中;4)启动定时(或计数),即置位TRX。n如果工作于中断方式,需要置位EA(中断总开关)及ETX(允许定时/计数器中断),并编中断服务程序。22例:利用T1完成100ms的定时,当P1输出1时,发光二极管亮, 晶振6MHz,要求每隔100ms,1左移一次循环点亮。采用方式1定时,先计算计数初值:6MHz晶体,机器周期MC=2s n计数值: 100ms/2s=50000=C350Hn定时器初值:(C350H)补 =10000H-C350H=3CB0HM0M0M1M1GATEGATEM0M0M1M1GATEGATEC/ TC/ TT1 方式1

15、 :TMOD=10H23ORG 00HMOV TMOD,#10H ;T1工作于定时方式1MOV A,#01H ;置初值,第一个LED亮NEXT:MOV P1,AMOV TH1,#3CHMOV TL1,#0B0H ;定时100ms SETB TR1 AGAI: JBC TF1,SHI ;100ms到转SHI,并清TF1SJMP AGAISHI: RL ASJMP NEXT24ORG 0000H AJMP MAIN ;单片机复位后从0000H开始执行ORG 001BH ;T1中断入口AJMP TIME1 ;转到T1 中断服务程序ORG 0050H ;主程序MAIN:MOV A,#01H MOV P

16、1,A ;置初值,第一个LED亮MOV TMOD,#10H ;T1工作于定时方式1MOV TH1,#3CHMOV TL1,#0B0H ;定时100msSETB EA ;中断总允许SETB TR1 ;启动T1工作SETB ET1 ;允许T1中断WAIT:SJMP WAIT ;等待中断25TIME1:RL A ;左移一位 MOV P1,A ;下一个发光二极管亮MOV TH1,#3CHMOV TL1,#0B0H ;重装计数值RETI ;中断返回以上程序执行结果,八个LED一直循环轮流点亮。26例:在P1.7端接一个发光二极管LED,要求利用定时控制使LED亮一秒灭一秒,周而复始,设fosc=6MHZ

17、。89C51P1.7+5VLED分析:16位定时最大 65536*2us=131.072ms,显然不能满足要求,可用以下两种方法解决。P1.0T11s27n采用T0产生周期为200ms脉冲,即P1.0每100ms取反一次作为T1的计数脉冲,T1对下降沿计数,因此T1计5个脉冲正好1s。nT0定时、采用方式1:初值 X0= 65536100*103/2 得:X=3CB0 H;nT1计数、采用方式2:计数初值X1 =2565=FBH TMOD=61H;TH0=3CH;TL0=0B0H;TH1=TL1=0FBH。n两个定时/计数器均采用查询方式: 285-29P1.7=0,P1.0=1T0:定时方式

18、1T1:计数方式2P1.7求反装T1初值,TR1=1装T0初值,TR0=1100ms到? P1.0求反计满5次? YNYNLED灭高电平脉冲脉冲取反LED取反ORGORG 0000H 0000HMAINMAIN:CLRCLR P1.7 P1.7SETB SETB P1.0P1.0MOVMOV TMOD TMOD,#61H#61HMOVMOV TH1 TH1,#0FBH#0FBHMOVMOV TL1 TL1,#0FBH#0FBHSETBSETB TR1 TR1LOOP1LOOP1:CPL CPL P1.7P1.7 LOOP2 LOOP2:MOVMOV TH0 TH0,#3CH#3CHMOVMOV

19、 TL0 TL0,#0B0H#0B0HSETBSETB TR0 TR0 LOOP3LOOP3:JBCJBC TF0TF0,LOOP4LOOP4SJMPSJMP LOOP3 LOOP3 LOOP4 LOOP4:CPLCPL P1.0 P1.0JBCJBC TF1 TF1,LOOP1LOOP1AJMPAJMP LOOP2LOOP2ENDEND程序中用JBC指令对定时/计数溢出标志位进行检测,当标志位为1时跳转并清标志。30T0T0每隔每隔100ms100ms中断一次,利用软件对中断一次,利用软件对T0T0的中断次数进行计的中断次数进行计数,中断数,中断1010次次即实现了即实现了1 1秒的定时。秒

20、的定时。ORG 0000HORG 0000HAJMPAJMP MAIN MAIN ;主程序;主程序ORG 000BH ORG 000BH ;T0T0中断服务程序入口中断服务程序入口 AJMPAJMP TIMER0 TIMER0ORG 0030H ORG 0030H ;主程序开始;主程序开始 MAINMAIN:CLRCLR P1.7 P1.7MOVMOV TMOD TMOD,#01H#01HMOVMOV TH0 TH0,#3CH #3CH ;T0T0定时定时100ms100msMOVMOV TL0 TL0,#0B0H#0B0HSETBSETB ET0 ET0SETBSETB EA EA 3132

21、MOVMOV R4 R4,#0AH #0AH ;中断;中断1010次计数器次计数器SETBSETB TR0 TR0SJMPSJMP ;等待中断;等待中断TIMER0TIMER0:DJNZDJNZ R4 R4,RET0RET0MOVMOV R4 R4,#0AH #0AH ;重置;重置1010次计数值次计数值CPLCPL P1.7 P1.7 ;LEDLED取反取反RET0RET0:MOVMOV TH0 TH0,#3CH #3CH ;定时初值重装载;定时初值重装载MOVMOV TL0 TL0,#0B0H#0B0HSETBSETB TR0 TR0RETIRETI n定时定时/ /计数器计数器应用应用非

22、常非常广泛广泛,如定时采样、时间测量、,如定时采样、时间测量、产生音响、作脉冲源、制作日历时钟、测量波形的频产生音响、作脉冲源、制作日历时钟、测量波形的频率和占空比、检测电机转速等,因此应很好掌握。率和占空比、检测电机转速等,因此应很好掌握。n5151系列单片机有两个系列单片机有两个1616位的定时位的定时/ /计数器,有四种不计数器,有四种不同的工作方式,归纳于表中同的工作方式,归纳于表中(P105) (P105) 。n使用定时使用定时/ /计数器前要先计数器前要先初始化初始化;设置方式;设置方式控制字控制字TMODTMOD,计数初值,计数初值THxTHx,TLxTLx;启动工作启动工作TR

23、xTRx;中断;中断方式,还需方式,还需开中断开中断(EAEA和和ETxETx)。)。n定时定时/ /计数器是加计数器是加1 1计数,初值为负数,用补码表示。计数,初值为负数,用补码表示。n计数产生溢出(计数初值寄存器回零),置位计数产生溢出(计数初值寄存器回零),置位TFxTFx , , 可以通过程序查询;如果允许中断,会产生中断。可以通过程序查询;如果允许中断,会产生中断。3334n串行通讯串行通讯是是CPUCPU跟外界进行信息交换的一种基本方式。跟外界进行信息交换的一种基本方式。n单片机用于数据采集或工业控制时,往往作为数据采单片机用于数据采集或工业控制时,往往作为数据采集和工业控制的前

24、端设备远离主机,现场数据采用集和工业控制的前端设备远离主机,现场数据采用串串行通讯行通讯的方式发往中央控制主机进行处理,以降低通的方式发往中央控制主机进行处理,以降低通讯成本,提高通讯可靠性。讯成本,提高通讯可靠性。35n 计算机与外界的信息交换称为计算机与外界的信息交换称为通讯通讯。数据通信方式。数据通信方式有两种:有两种:并行通信并行通信与与串行通信串行通信;并行通信:并行通信:所传送数据的各位同时发送或接收。所传送数据的各位同时发送或接收。 特点:特点: 速度快速度快, ,适合近距离传输适合近距离传输, ,传输线多。如计算机并口,传输线多。如计算机并口,打印机。打印机。 计算机计算机或外

25、设D0D1D2D3D4D5D7D6GNDD0D1D2D3D4D5D7D6GND36串行通信:串行通信:所传送数据的各位按顺序所传送数据的各位按顺序一位一位一位一位地发送或接收。地发送或接收。如:如:只需只需2 2根数据,根数据,1 1根地线,共根地线,共3 3根即可实现双向通信。根即可实现双向通信。 特点:特点:成本低,硬件方便,适合远距离通信,传输速度低成本低,硬件方便,适合远距离通信,传输速度低如:如:RS-232C,RS-485.RS-232C,RS-485.计算机计算机或外设GNDTXDRXDGNDRXDTXD1001011037n通信协议:通信协议:通信双方的通信约定,什么时候开始发

26、送,什么通信双方的通信约定,什么时候开始发送,什么时候发送完毕,同步方式,纠错方式;时候发送完毕,同步方式,纠错方式;n帧:帧:串行通信完成一次完整通信的过程。串行通信完成一次完整通信的过程。从开始到结束的数从开始到结束的数据称据称一帧数据一帧数据。串行通讯串行通讯分类分类:n按按帧信息的格式帧信息的格式串行通信分为串行通信分为同步通信同步通信和和异步通信。异步通信。38n异步通讯的一帧异步通讯的一帧数据格式数据格式 一个起始位一个起始位00表示字符的开始,然后是表示字符的开始,然后是5 58 8位数据即该字符的代码,规定低位在前,高位在位数据即该字符的代码,规定低位在前,高位在后,接下来是奇

27、偶校验位后,接下来是奇偶校验位( (可省略可省略) ),最后以停止,最后以停止位位11表示字符的结束。表示字符的结束。39D0D1D2 D3 D4 D5 D6 D7P10起始位数据位(58位)校验位停止位优点:优点:硬件结构简单。硬件结构简单。缺点:缺点:传输速度慢。传输速度慢。P1第n帧字符n-1帧n+1帧0D0D0 D1 D2 D3 D4 D5 D6 D7P10起始位数据位(58位)校验位停止位n在在同步通信同步通信中,发送方在数据开始之处就用同步字符中,发送方在数据开始之处就用同步字符( (常常约定约定1 12 2个字节个字节) )指示指示一帧的开始一帧的开始 ,由时钟来实现发送端,由时

28、钟来实现发送端和接收端同步。接收方一旦检测到与规定相同的同步字符,和接收端同步。接收方一旦检测到与规定相同的同步字符,就连续按顺序接受若干个数据,最后发校验字节。就连续按顺序接受若干个数据,最后发校验字节。SYN字符2数据1数据2.数据n连续传送n 个数据校验SYN字符1同步通信的数据帧格式同步通信的数据帧格式特点:特点:n数据传送效率高。没有起始、结束标志,一次传送多个数据。数据传送效率高。没有起始、结束标志,一次传送多个数据。n对硬件对硬件( (时钟严格同步时钟严格同步) )要求较高。要求较高。41n按按通信方向通信方向分类分类:单工、半双工、全双工通信方式单工、半双工、全双工通信方式 单

29、工方式单工方式: : 只能发送只能发送/ /接收,这种单向传送方式称单工接收,这种单向传送方式称单工方式。方式。如:如:通信的一端只有发送器,或只有接收器。通信的一端只有发送器,或只有接收器。 发送器甲机接收器乙机42发送器甲机接收器发送器乙机接收器半双工方式:半双工方式:能双向传送的通信方式称双工方式。能双向传送的通信方式称双工方式。 数据可以双向传送,但不能同时发送和接收,只能分时接数据可以双向传送,但不能同时发送和接收,只能分时接收或发送的通信方式,称为半(准)双工收或发送的通信方式,称为半(准)双工 。如:如:每端口有一个发送器和一个接收器,因使用同一根数据每端口有一个发送器和一个接收

30、器,因使用同一根数据线,要通过换向器转换方向。线,要通过换向器转换方向。43全双工方式全双工方式 能同时发送和接收数据的通信方式称全双工。能同时发送和接收数据的通信方式称全双工。如:如:通信双方用两个独立的收通信双方用两个独立的收/ /发器单独连接。发器单独连接。发送器甲机接收器发送器乙机接收器44 因为因为CPUCPU处理的是并行数据,在发送端,串行接口将处理的是并行数据,在发送端,串行接口将CPUCPU送出的并行数据送出的并行数据串行数据;在接收端,串行接口将接收串行数据;在接收端,串行接口将接收到串行数据到串行数据并行数据,送往并行数据,送往CPUCPU处理。处理。串行接口电路应实现不同

31、串行通信方式下的数据格式化任串行接口电路应实现不同串行通信方式下的数据格式化任务。务。如:如:在在异步方式异步方式下自动生成起始、终止方式的下自动生成起始、终止方式的帧数据格式帧数据格式在在同步方式同步方式下在待传送的数据块前加上下在待传送的数据块前加上同步字符同步字符 串行接口应具备对数据传输速率(波特率)的控制选择能串行接口应具备对数据传输速率(波特率)的控制选择能力,即具有波特率发生器。力,即具有波特率发生器。45在发送时,对传送的数据自动生成校验位或校验码;在发送时,对传送的数据自动生成校验位或校验码;在接收端,能检查校验位或校验码,确定传送中是否在接收端,能检查校验位或校验码,确定传

32、送中是否有误码。有误码。 46波特率波特率(Baud RateBaud Rate)- -通信中用以表示数据传送速率。通信中用以表示数据传送速率。单位单位时间内传送的信息量。以每秒传送的二进制位数时间内传送的信息量。以每秒传送的二进制位数bpsbps。例:例:100100字符字符/ /秒,秒,1 1个字符个字符1111位位(起始、停止、校验、数据起始、停止、校验、数据) 波特率为:波特率为:10010011=1100bps 11=1100bps 平均每位传送占用时间平均每位传送占用时间: Td = 1/1100=0.909ms: Td = 1/1100=0.909ms波特率发生器波特率发生器发送

33、时,在发送时钟的作用下将移位寄存器的数据串行移出;发送时,在发送时钟的作用下将移位寄存器的数据串行移出;接收时,在接收时钟的作用下将通信线上的数据移入移位寄接收时,在接收时钟的作用下将通信线上的数据移入移位寄存器,能存器,能产生发送时钟和接收时钟产生发送时钟和接收时钟的电路称的电路称波特率发生器波特率发生器。为了提高采样的分辨率,准确定位数据的上升沿下降沿,时为了提高采样的分辨率,准确定位数据的上升沿下降沿,时钟频率总是高于波特率的若干倍,这个倍数称为钟频率总是高于波特率的若干倍,这个倍数称为波特率因子波特率因子。47n 通信速率和通信距离与通信速率和通信距离与传输线的电气特性传输线的电气特性

34、有关;有关;通信速率和通信距离这两个方面是相互制约的,降低通信通信速率和通信距离这两个方面是相互制约的,降低通信速率,可以提高通信距离。不同的通信距离,串行通信电速率,可以提高通信距离。不同的通信距离,串行通信电路有不同的连接方法。路有不同的连接方法。(1 1)近距离通信电路(板级)近距离通信电路(板级) RXDRXD TXD TXD GND GNDRXDRXDTXDTXDGNDGND48(2)较远距离传送电路(15m)RXDTXDGND电平转换RXDTXDGNDRXDTXDGND电平转换RXDTXDGND微机微机或其他设备RS-232CRS-232C49 (3)远距离传送电路发送:发送:数字

35、信号通过调制器(数字信号通过调制器(ModemModem)变成模拟信号通过电话线传送到对方)变成模拟信号通过电话线传送到对方; ;接收:接收:接收方通过解调器将模拟信号转换成数字信号接收。接收方通过解调器将模拟信号转换成数字信号接收。微机接口调制解调器调制解调器接口微机电话分机电话分机n测量控制系统中,计算机通信经常采用异步串行通信方式n常用的异步总线标准有三种:RS-232C RS-449(RS-422 RS-423 RS-485)20mA电流环n传输速率与距离: RS-232C: 速率:20Kbit/S, 最大通信距离 : 15m RS-422: 10Mbit/s, : 300m 90Kb

36、it/s, :1200m51n抗干扰能力 采用标准的通信接口,本身具有一定的抗干扰能力,但是工业现场的情况往往很恶劣,因而要根据具体情况进行选择。RS-232C:一般场合,常用在实验室;RS-422: 抗共模信号比较强(差动输入);光纤: 抗电磁干扰较强。52n美国电子工业协会(EIA)公布的一种异步通信标准。RS232C标准是:设备之间通信的距离不大于15米;最大传输速率20KB/S采用负逻辑:1:-3V-15V 0:+3V - +15V连接器:9针D型连接器(早期25针);154326789GNDTXDDTRRXDDSRDCDRTSCTSRI53n握手信号(与Modem连接时使用)RTS:

37、请求发送信号,输出;CTS:清除传送,对RTS的响应,输入;DCD:载波检测,输入;DSR:数据通信准备就绪,输入;DTR:数据终端就绪,输出。nRS-232C的EIA电平与TTL电平的转换当计算机采用RS-232标准时必须通过电平变换,如: MC1488/1489、MAX23254nMAX232 MAX232 是是EIAEIA和和TTLTTL双向电平转换芯片。内部具有双向电平转换芯片。内部具有电压提升电路,并有两路接收器和发送器。只需单一电压提升电路,并有两路接收器和发送器。只需单一+5V+5V电源。电源。C1+C1-C2+C2-V+V-MAX232R1INT1INT2INT1OUTT2OU

38、TR2INR1OUTR2OUT+5V1F1F1F1F1FTTL/CMOSTTL/CMOSRS-232RS-23255 RXD TXD GNDRXDTXDGND8xx518xx51TTLTTL56 8xx51GNDRXDTXDTTLC1+C1-C2+C2-V+V-MAX232R1INT1INT2INT1OUTT2OUTR2INR1OUTR2OUT154326789RS-232PC机154326789TXDRXDRS-23257n5151单片机有一个可编程的全双工异步串行通信接口,它单片机有一个可编程的全双工异步串行通信接口,它可作可作UARTUART(异步接收和发送器)用,也可作(异步接收和发送

39、器)用,也可作同步移位寄同步移位寄存器存器,其,其帧格式可有帧格式可有8 8位、位、1010位或位或l l l l位位,并能设置各种波,并能设置各种波特率。特率。一、串行口的结构一、串行口的结构n单片机通过引脚单片机通过引脚RXD(P3.0)RXD(P3.0)数据接收端和引脚数据接收端和引脚TXD(P3.l)TXD(P3.l)数据发送端与外界进行通信。数据发送端与外界进行通信。n有两个物理上独立的有两个物理上独立的接收、发送缓冲器接收、发送缓冲器SBUFSBUF,它们占用,它们占用同一地址同一地址99H99H,可同时发送、接收数据。,可同时发送、接收数据。发送缓冲器发送缓冲器只能写入,不能读出

40、,只能写入,不能读出,CPUCPU写写SBUFSBUF,一方面,一方面修改发送寄存器,同时启动数据串行发送;修改发送寄存器,同时启动数据串行发送;接收缓冲器接收缓冲器只能读出、不能写入。读只能读出、不能写入。读SBUFSBUF,就是读接收,就是读接收寄存器。寄存器。58发送SBUF(99H)门88 图5.13 串行口结构框图 RXD(P3.0)TXD(P3.1)中断接收SBUF(99H)定时器T1分频器发送控制器接收控制器串寄行存控器制 SCON (98H)输入移位寄存器TIRI内 部 总 线fosc21波特率发生送器SHIFTSHIFTn 串行控制寄存器串行控制寄存器 SCONSCON,存放

41、串行口的存放串行口的控制和状态信息控制和状态信息,通过设置、读取寄存器的位信息管理串行通信。通过设置、读取寄存器的位信息管理串行通信。如:如:设置设置通信方式、中断标志;通信方式、中断标志;n 电源控制寄存器电源控制寄存器PCONPCON的最高位的最高位SMODSMOD为串行口波特率的为串行口波特率的倍增控制位。倍增控制位。n 波特率发生器波特率发生器可以有两种选择:可以有两种选择:1. 1. 定时器定时器T1T1作波特率发生器,改变计数初值就可以改变串作波特率发生器,改变计数初值就可以改变串行通信的速率,称为可变波特率。行通信的速率,称为可变波特率。2. 2. 以内部时钟的分频器作波特率发生

42、器,因内部时钟频率一以内部时钟的分频器作波特率发生器,因内部时钟频率一定,称为定,称为固定波特率固定波特率。60n甲方发送时,甲方发送时,CPUCPU执行指令执行指令 MOVMOV SBUF , A SBUF , A ,数据并行送入,数据并行送入SBUF SBUF ,启动了,启动了发送过程,在发送时钟发送过程,在发送时钟 shiftshift的控制下由低位到高位一位一位发送。乙方在的控制下由低位到高位一位一位发送。乙方在接收时钟接收时钟 shift shift 的控制下由低位到高位顺序进入移位寄存器的控制下由低位到高位顺序进入移位寄存器SBUF SBUF ;n甲方一帧数据发送完毕,甲方一帧数据

43、发送完毕,SBUFSBUF为空,置位发送中断标志为空,置位发送中断标志TITI,可作为查询标,可作为查询标志(或引起中断),志(或引起中断),CPUCPU可再发送下一帧数据可再发送下一帧数据 。shiftMOV A , SBUF串行数据 SBUFSBUFCPUCPUshiftMOV SBUF , A并行数据 甲方(发送)乙方(接收)并行数据n 乙方收到一帧数据,即接收缓冲器满,置位接收中断标乙方收到一帧数据,即接收缓冲器满,置位接收中断标志志RIRI,该位可作为查询标志(或引起接收中断),该位可作为查询标志(或引起接收中断),CPUCPU通过通过 MOV A ,SBUF MOV A ,SBUF

44、 指令将这帧数据并行读入。指令将这帧数据并行读入。由上述可知:由上述可知: 甲、乙方的移位时钟频率应相同,即应具有相同的波特甲、乙方的移位时钟频率应相同,即应具有相同的波特率,否则会造成数据丢失。率,否则会造成数据丢失。 发送方:先发数据,再查标志发送方:先发数据,再查标志TITI;(;(先发后检查先发后检查) 接收方:先查标志接收方:先查标志RIRI,再收数据。(,再收数据。(先检查后收先检查后收) CPUCPU通过指令和通过指令和SBUFSBUF并行交换数据,但不能控制数据并行交换数据,但不能控制数据的串行移位(的串行移位(自动进行自动进行),只能查询标志位来确定数据),只能查询标志位来确

45、定数据的移位是否完成。的移位是否完成。62n5151单片机串行口是一个可编程接口,通过两个特殊功能单片机串行口是一个可编程接口,通过两个特殊功能寄存器控制:寄存器控制: 串行口控制寄存器串行口控制寄存器SCONSCON(98H)(98H)电源控制寄存器电源控制寄存器PCONPCON(97H) (97H) 63n串行通信的模式选择、接收和发送控制,指示串串行通信的模式选择、接收和发送控制,指示串行口的中断标志;行口的中断标志;n其格式如下其格式如下: :64SM0SM0SM1 SM1 SM2SM2RENRENTB8TB8RB8RB8TITIRIRI方式选择方式选择多机多机控制控制串行接收串行接收

46、允许允许/ / 禁止禁止欲发的欲发的第九位第九位收到的收到的第九位第九位发送中断发送中断有有/ /无无接收中断接收中断有有/ /无无0 0-0 0-方式方式0, 0 1-0, 0 1-方式方式1 11 0-1 0-方式方式2, 1 1-2, 1 1-方式方式3 30-0-禁止接收禁止接收, 1-, 1-允许接收允许接收 在方式在方式2,32,3中,中,RB8RB8是接受机收到的第是接受机收到的第9 9位数据,位数据,该数据来自发送机的该数据来自发送机的TB8TB8。 方式方式1 1时,时,RB8RB8接受的是停止位接受的是停止位 方式方式0 0时,时,RB8RB8不使用不使用在方式在方式2,3

47、2,3中,要发送的中,要发送的第第9 9位数据位数据。0 0:数据:数据 1 1:地址:地址SM0SM0SM1 SM1 SM2SM2RENRENTB8TB8RB8RB8TITIRIRI方式选择方式选择多机多机控制控制串行接收串行接收允许允许/ / 禁止禁止欲发的欲发的第九位第九位收到的收到的第九位第九位发送中断发送中断有有/ /无无接收中断接收中断有有/ /无无65SM0SM0SM1 SM1 SM2SM2RENRENTB8TB8RB8RB8TITIRIRI方式选择方式选择多机多机控制控制串行接收串行接收允许允许/ / 禁止禁止欲发的欲发的第九位第九位收到的收到的第九位第九位发送中断发送中断有有

48、/ /无无接收中断接收中断有有/ /无无66发送前必须用软件清零,发送完一帧数据后,由硬件置发送前必须用软件清零,发送完一帧数据后,由硬件置11,如果再发送,必须用软件再清零。,如果再发送,必须用软件再清零。接收前接收前, ,必须用软件清零,接收到一帧数据后由硬件自动必须用软件清零,接收到一帧数据后由硬件自动置置11。如果再接收,必须用软件清零。如果再接收,必须用软件清零。SM0SM0SM1 SM1 SM2SM2RENRENTB8TB8RB8RB8TITIRIRI方式选择方式选择多机多机控制控制串行接收串行接收允许允许/ / 禁止禁止欲发的欲发的第九位第九位收到的收到的第九位第九位发送中断发送

49、中断有有/ /无无接收中断接收中断有有/ /无无n当选择方式当选择方式2 2或方式或方式3 3时:时: TB8=1TB8=1作为地址帧寻找从机作为地址帧寻找从机 TB8=0TB8=0作为数据帧进行通信;作为数据帧进行通信; 若接收到的第九位数据若接收到的第九位数据RB8=0RB8=0,不置位,不置位RIRI,即不引起接收中断,不接收,即不引起接收中断,不接收数据帧,继续监听;数据帧,继续监听; 若接收到的若接收到的RB8=1RB8=1,置位,置位RIRI,引起接收中断,中断程序中判断所接收的,引起接收中断,中断程序中判断所接收的地址帧和本机的地址是否符合地址帧和本机的地址是否符合: :若不符合

50、,维持若不符合,维持SM2=1SM2=1,继续监听;若符合,继续监听;若符合,则清则清SM2SM2,接收对放发来的后续信息。,接收对放发来的后续信息。综上所述,SM2的作用为:(1)方式2,3:发送端SM2=1的情形下,接受端的响应: 接受端SM2=1,若RB8=1,激活RI,引起接收中断; 若RB8=0,不激活RI,不引起中断。 接受端SM2=0,无论RB8=1还是RB8=0均激活RI引起接收中断。(2)方式0: SM2应设置为0。68nPCONPCON的格式如下:串行通信只用其中的最高位的格式如下:串行通信只用其中的最高位SMODSMODIDLPDGF0GF1XXXSMODPCONPCON

51、87HnSMOD : SMOD : 波特率加倍位。波特率加倍位。 在串行通讯方式在串行通讯方式 1 1、 2 2、 3 3计算波特率时:计算波特率时: SMOD SMOD 0 0波特率不加倍波特率不加倍; ; SMOD SMOD 1 1波特率加倍。波特率加倍。nGF1GF1、GF0GF0:通用标志位;通用标志位;nPDPD:掉电方式。:掉电方式。PD=1PD=1时,激活掉电工作方式。时,激活掉电工作方式。nIDLIDL:待机方式。待机方式。IDL=1IDL=1时,激活待机工作方式。时,激活待机工作方式。PCONPCON:无位地址,只能按字节寻址。初始化时无位地址,只能按字节寻址。初始化时SMO

52、D=0SMOD=0。 69n5151系列单片机的串行通信有四种工作方式,通过编系列单片机的串行通信有四种工作方式,通过编程进行选择。程进行选择。70l RXDRXD为串行数据的发送端或接收端为串行数据的发送端或接收端, TXD, TXD提供移位的时提供移位的时钟脉冲,输出频率为钟脉冲,输出频率为foscfosc/12/12。l 波特率固定:为波特率固定:为foscfosc/12 (/12 (foscfosc为单片机晶振频率为单片机晶振频率) )l 数据格式为数据格式为8 8位,低位在前,高位在后;位,低位在前,高位在后;l 发送过程:发送过程:以写以写SBUFSBUF开始,当开始,当8 8位数

53、据传送完毕,位数据传送完毕,TITI置置1 1,然后发送下一帧数据。,然后发送下一帧数据。l 接收过程:接收过程:必须先设置必须先设置REN=1REN=1和和RI=0RI=0,当,当8 8位数据接收位数据接收完毕,完毕,RIRI置置1 1,此时,可通过读,此时,可通过读SBUFSBUF指令,将数据读入指令,将数据读入CPUCPU。718051RXDTXD728051RXDTXD74LS164ABCLKP1.0/CLRD0D7(1 1)数据输出典型应用)数据输出典型应用SBUF738051RXDTXD74LS165ABCLKP1.0SH/LDD0D7(1 1)数据输入典型应用)数据输入典型应用S

54、BUFn以以TXDTXD为串行数据的发送端,为串行数据的发送端,RXDRXD为数据的接收端;为数据的接收端;n每帧数据由每帧数据由1 1个起始位个起始位0 0,八个数据位和,八个数据位和1 1个停止位个停止位1 1 共共1010位构成,其中起始位和停止位在发送时是自动生成的。位构成,其中起始位和停止位在发送时是自动生成的。74D0D1D2D3D4D5D6D7起始停止8051RXDTXDnT1T1提供移位时钟,是波特率可变方式。提供移位时钟,是波特率可变方式。波特率波特率=(2SMOD/32)(T1的溢出率)X为T1的计数初值。xfoscSMOD25612/32275定时器T1分频器Fosc/1

55、2SMODn发送过程: n接受过程: 76n以以TXDTXD为串行数据的发送端,为串行数据的发送端,RXDRXD为数据的接收端;为数据的接收端;n每帧数据由每帧数据由1111位构成:位构成:1 1个起始位个起始位0 0,8 8个数据位个数据位 ,1 1个个可编程位可编程位( (第第9 9数据位数据位) ) 和和1 1个停止位。个停止位。 发送时,第发送时,第9 9数据位(数据位(TB8TB8)可设置为)可设置为0 0或或1 1; 接收时,第接收时,第9 9数据位进入数据位进入SCONSCON的的RB8RB8。 778051RXDTXDD0D1D2D3D4D5D6D7起始停止D8TB8n波特率固

56、定:波特率固定:n发送过程发送过程: :以写以写SBUFSBUF开始,当数据传送完毕,开始,当数据传送完毕,TITI置置1 1,申请中断。申请中断。波特率 oscSMODf64278n接受过程:接受过程:先设置先设置REN=1REN=1和和RI=0RI=0,当,当9 9位数据接收完毕,位数据接收完毕,移位寄存器内容装入移位寄存器内容装入SBUFSBUF和和RB8RB8,并且,并且RIRI置置1 1,此时,可,此时,可通过读通过读SBUFSBUF指令,将数据读入指令,将数据读入CPUCPU。n 数据格式同方式数据格式同方式2 2,所不同的是,所不同的是算方式同算方式同方式方式 1 1。79波特率

57、波特率=(2SMOD/32)(T1的溢出率)X为T1的计数初值。xfoscSMOD25612/322串行通信程序的编程要点:串行通信程序的编程要点:(1 1)波特率设置:)波特率设置:串行口的波特率有两种方式:串行口的波特率有两种方式: 固定波特率(方式固定波特率(方式0 0、2 2) 可变波特率(方式可变波特率(方式1 1、3 3)注意:注意:使用可变波特率时,先确定使用可变波特率时,先确定T T1 1的计数初值,并对的计数初值,并对T1T1进行初始化。进行初始化。(2 2)设置控制字()设置控制字(SCONSCON、PCONPCON)若为接受需要置若为接受需要置REN=1,REN=1,清清TI,RITI,RI中断标志。中断标志。80(3 3)响应方式选择)响应方式选择:串行通信的工作方式:查询:串行通信的工作方式:查询/ /中断中断 查询方式查询方式: : 查查RIRI、TI TI 是否为是否为11。发送过程:发送过程:发送一个字符发送一个字符查询查询T1T1发送下一个字符发送下一个字符接受过程:接受过程:查询查询RIRI 读入数据读入数据查询查询RIRI 读入下一个数据读入下一个数据 中断方式:如果预先开了中断,当中断方式:如果预先开了中断,当TITI、RI RI 为为“1”1”

温馨提示

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

评论

0/150

提交评论