第5章单片机的定时计数器与串行接口ppt课件.ppt

上传人:豆**** 文档编号:60592053 上传时间:2022-11-17 格式:PPT 页数:89 大小:1.13MB
返回 下载 相关 举报
第5章单片机的定时计数器与串行接口ppt课件.ppt_第1页
第1页 / 共89页
第5章单片机的定时计数器与串行接口ppt课件.ppt_第2页
第2页 / 共89页
点击查看更多>>
资源描述

《第5章单片机的定时计数器与串行接口ppt课件.ppt》由会员分享,可在线阅读,更多相关《第5章单片机的定时计数器与串行接口ppt课件.ppt(89页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 第5章单片机的定时计数器与串行接口ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 5.1定时定时/计数器计数器定时计数器结构和工作原理定时计数器结构和工作原理定时计数器的控制寄存器定时计数器的控制寄存器定时器的四种工作方式定时器的四种工作方式定时计数器的应用编程定时计数器的应用编程5.2串行接口串行接口第第5章章单片

2、机的定时单片机的定时/计数器与串行接口计数器与串行接口 5151系列单片机片内有二个十六位定时系列单片机片内有二个十六位定时/计数器:定时器计数器:定时器0(T0)0(T0)和定时器和定时器1(T1)1(T1)。两个定时器都有定时或事件计数的功能,可用于定时控两个定时器都有定时或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合制、延时、对外部事件计数和检测等场合定时定时/计数器实际上是计数器实际上是1616位加位加1 1计数器。计数器。T0 T0由由2 2个个8 8位持殊功能寄存器位持殊功能寄存器TH0TH0和和TL0TL0构成,构成,T1 T1由由2 2个个8 8位持殊功能寄

3、存位持殊功能寄存TH1TH1和和TL1TL1构成。构成。每个定时器都可由软件设置为定时工作方式或每个定时器都可由软件设置为定时工作方式或 计数工作方式。计数工作方式。T0和和T1受受特殊功能寄存器特殊功能寄存器TMODTMOD和和TCONTCON控制。控制。5.1.18051定时定时/计数器结构和工作原理计数器结构和工作原理第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 1.定时工作方式定时工作方式设置为定时工作方式时,定时器计数的脉冲是由设置为定时工作方式时,定时器计数的脉冲是由51单片机单片机片内振荡器经片内振荡器经12分频后产生的。分频后产生的。每经过一个机器周期定

4、时器每经过一个机器周期定时器(T0或或T1)的数值加的数值加1直至计数直至计数满产生溢出。满产生溢出。如:当如:当8051采用采用12MHz晶体时,每个机器周期为晶体时,每个机器周期为1s,计,计5个机器周期即为个机器周期即为5s,即定时,即定时5s。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 2.计数工作方式计数工作方式设置为计数工作方式时,通过引脚设置为计数工作方式时,通过引脚T0(P3T0(P34)4)和和T1(P3T1(P35)5)对外部脉冲信号计数。对外部脉冲信号计数。当输入脉冲信号产生由当输入脉冲信号产生由1 1至至0 0的下降沿时,定时器的值加的下降沿时

5、,定时器的值加1,1,在每个机器周期在每个机器周期CPUCPU采样采样T0T0和和T1T1的输入电平。若前一个机的输入电平。若前一个机器周期采样值为高,下一个机器周期采样值为低,则计数器器周期采样值为高,下一个机器周期采样值为低,则计数器加加 1 1。由于检测一个由于检测一个1 1至至0 0的跳变需要二个机器周期,故最高计的跳变需要二个机器周期,故最高计数频率为振荡频率的二十四分之一。数频率为振荡频率的二十四分之一。虽然对输入信号的占空比无特殊要求,但为了确保某个虽然对输入信号的占空比无特殊要求,但为了确保某个电平在变化之前至少被采样一次,要求电平保持时间至少是电平在变化之前至少被采样一次,要

6、求电平保持时间至少是一个完整的机器周期。一个完整的机器周期。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 5.1.2定时计数器的控制寄存器定时计数器的控制寄存器定时器共有两个控制寄存器:定时器共有两个控制寄存器:定时器控制定时器控制TCON(88H)定时器工作模式寄存器定时器工作模式寄存器TMOD(89H)1.工作模式寄存器工作模式寄存器TMOD(89H)TMOD用于控制用于控制T0和和T1的操作模式。其各位的定义如下:的操作模式。其各位的定义如下:TMOD D7D6D5D4 D3D2D1D0 (89H)GATEC/TM1M0GATEC/TM1M0定时器定时器T0 定时

7、器定时器T1第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 GATE:门控信号:门控信号GATE=0,TRx=1时即可启动定时器工作时即可启动定时器工作;GATE=1,INTx=1才可启动定时器工作。才可启动定时器工作。C/T:定时器:定时器/计数器选择位计数器选择位C/T=1,为计数器方式;,为计数器方式;C/T=0,为定时器方式。,为定时器方式。M1M0工作模式选择位工作模式选择位M1M0=00工作方式工作方式0(13位方式)。位方式)。M1M0=01工作方式工作方式1(16位方式)。位方式)。M1M0=10工作方式工作方式2(8位自动再装入方式)。位自动再装入方式)

8、。M1M0=11工作方式工作方式3(T0为为2个个8位方式)。位方式)。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 TF1TR1TF0TR0IE1IT1IE0IT0T1请求请求有有/无无T1工作工作启启/停停T0请求请求有有/无无T0工作工作启启/停停INT1请求请求有有/无无INT1方式方式下沿下沿/低电低电平平INT0请求请求有有/无无INT0方式方式下沿下沿/低低电平电平2.控制寄存器控制寄存器TCON(88H)TCON寄存器寄存器中定时器控制中定时器控制仅用了其中高四位,其意义如仅用了其中高四位,其意义如下:下:TF1:T1溢出中断请求标志。溢出中断请求标志。

9、TF1=1,T1有溢出中断请求。有溢出中断请求。TF1=0,T1无溢出中断请求。无溢出中断请求。TR1:T1运行控制位。运行控制位。TR1=1,启动,启动T1工作。工作。TR1=0,停止,停止T1工作。工作。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 TF0:T0溢出中断请求标志。溢出中断请求标志。TF0=1,T0有溢出中断请求。有溢出中断请求。TF0=0,T0无溢出中断请求。无溢出中断请求。TR0:T0运行控制位。运行控制位。TR0=1,启动,启动T0工作。工作。TR0=0,停止,停止T0工作。工作。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接

10、口 定时计数器的内部逻辑电路结构定时计数器的内部逻辑电路结构&1C/TC/T第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 5.1.3定时器的四种工作方式定时器的四种工作方式 对对TMOD寄存器的寄存器的M1、M0位的设置,可选择四种工作方位的设置,可选择四种工作方式,即方式式,即方式0、方式、方式1、方式、方式2和方式和方式3。下面用下面用THX、TLX(X=1或或0)表示)表示TH1TL1TH0TL0。1.1.方式方式0 0定时器定时器(T0或或T1)工作于工作于13位定时、计数方式。位定时、计数方式。用于计数方式时最大计数值为用于计数方式时最大计数值为2138192

11、个脉冲个脉冲用于定时工作时,定时时间为:用于定时工作时,定时时间为:t(213一一T0初值初值)时钟周期时钟周期12在这种模式下,在这种模式下,16寄存器寄存器(THX和和TLX)只用只用13位,其中位,其中THX占高占高8位。其中位。其中TLX占低占低5位,位,TLX的高的高3位末用。位末用。当当TLX的低的低5位溢出时向位溢出时向THX进位进位,而而THX溢出时硬件置位溢出时硬件置位TF0,并申请中断。,并申请中断。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 定时、计数溢出否可查询定时、计数溢出否可查询TF0TF0是否置位,如果开中断是否置位,如果开中断则产生溢出

12、中断。则产生溢出中断。2.方式方式1当当TMOD中中M1M0=01时,定时计数器工作在方式时,定时计数器工作在方式1。该模式是一个该模式是一个16位定时计数方式。位定时计数方式。寄存器寄存器TH0和和TL0是以全是以全16位参与操作,位参与操作,计数方式时最大计数计数方式时最大计数21665536(个外部脉冲个外部脉冲)用于定时工作方式时,定时时间为:用于定时工作方式时,定时时间为:t(216一一T0初值初值)时钟周期时钟周期1216寄存器寄存器(THX和和TLX)中中THX提供高提供高8位、位、TLX提供低提供低8位计数初值位计数初值第第5章章单片机的定时单片机的定时/计数器与串行接口计数器

13、与串行接口 3.3.方式方式2 2 当当TMODTMOD中中M1M0=10M1M0=10时,定时器工作在方式时,定时器工作在方式2 2。方式方式2 2是是8 8位的可自动重装载的定时计数方式。位的可自动重装载的定时计数方式。1616位的计数器被拆成两个位的计数器被拆成两个8 8位,其中位,其中TL0TL0用作用作8 8位计数器,位计数器,TH0 TH0用以保持计数初值。当用以保持计数初值。当TL0TL0计数溢出,置位计数溢出,置位TF0TF0,TH0TH0中的初值自中的初值自动装入动装入TL0TL0,继续计数,循环重复计数。,继续计数,循环重复计数。用于计数工作方式时,最大计数值为:用于计数工

14、作方式时,最大计数值为:2 28 8256(256(个外部脉冲个外部脉冲)。用于定时工作方式时,其定时时间为;用于定时工作方式时,其定时时间为;t t(2(28 8TH0TH0初值初值)振荡周期振荡周期1212这种工作方式可省去用户重装常数的程序,并可产生精确的这种工作方式可省去用户重装常数的程序,并可产生精确的定时时间,特别适用作串行口波待率发生器定时时间,特别适用作串行口波待率发生器。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 4.4.方式方式3 3当当TMODTMOD中中M1M0=11M1M0=11时,定时器工作在方式时,定时器工作在方式3 3。若将若将T0T0

15、设置为模式设置为模式3 3,TL0TL0和和TH0TH0被分成为两个互相独立的被分成为两个互相独立的8 8位计数器位计数器TH0TH0和和 TL0 TL0。TL0 TL0可工作为定时方式或计数方式。占用原可工作为定时方式或计数方式。占用原T0T0的各控制位、的各控制位、引脚和中断源。即引脚和中断源。即C CT T、GATEGATE、TR0TR0、TF0TF0和和T0(P3.4)T0(P3.4)引脚、引脚、INT0(P3.2)INT0(P3.2)引脚。引脚。TH0 TH0只可用作定时功能,占用定时器只可用作定时功能,占用定时器T1T1的控制位的控制位TR1TR1和和T1T1的的中断标志位中断标志

16、位TF1TF1,其启动和关闭仅受,其启动和关闭仅受TRlTRl的控制。的控制。定时器定时器T1T1无模式无模式 3,3,可工作于方式可工作于方式0 0、1 1、2 2,但不能使用中,但不能使用中断方式。断方式。只有将只有将T1T1用做串行口的波特率发生器时,用做串行口的波特率发生器时,T0T0才工作在方式才工作在方式3 3,以便增加一个定时器。,以便增加一个定时器。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 5.1.4定时计数器的应用编程定时计数器的应用编程5.1.4.1 5.1.4.1 定时器的计数初值定时器的计数初值C C的计算和装入的计算和装入 如前所述,如前所

17、述,8xx518xx51定时器定时器/计数器不同工作方式的模值不计数器不同工作方式的模值不同,由于采用加同,由于采用加1 1计数,因此计数初值应为负值,计算机中计数,因此计数初值应为负值,计算机中用有符号数采用补码表示。用有符号数采用补码表示。计数初值(计数初值(C C)的求法如下。)的求法如下。计数方式:计数方式:计数初值计数初值 C=C=模模-X-X(其中(其中X X为要计的脉冲个数)为要计的脉冲个数)定时方式:定时方式:计数初值计数初值 C=t/MC C=t/MC补补=模模t/MCt/MC 其中其中t t为欲定时时间,为欲定时时间,MCMC为为8xx518xx51的机器周的机器周MC=1

18、2/foscMC=12/fosc 当采用当采用12MHZ12MHZ晶振时,晶振时,MC=1usMC=1us;当采用当采用6MHZ6MHZ晶振时,晶振时,MC=2usMC=2us。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 方式方式0(13位方式)位方式):C=(-64H)补=2000H64H=1F9CH 1F9CH0001 1111 1001 1100B 把把13位中的高八位1111 1100B1111 1100B装入装入TH0TH0,而把而把13位中的低五位低五位xxx1 1100Bxxx1 1100B装装入TL0TL0。MOV TH0MOV TH0,#0FCH#0

19、FCH;MOV TL0 MOV TL0,#1CH#1CH;(xxx(xxx用用“0”“0”填入填入)方式方式1(161(16位方式位方式):C=C=(-64H-64H)补)补=10000H-64H=FF9CH=10000H-64H=FF9CH 用指令装入计数初值用指令装入计数初值:MOV TH0MOV TH0,#0FFH#0FFH MOV TL0 MOV TL0,#9CH#9CH例例 要计要计100个脉冲的计数初值个脉冲的计数初值第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 方式方式2(8位自动再装入方式)位自动再装入方式)C=(64H)补)补=100H64H=9CH初

20、值既要装入初值既要装入TH0,也要装入,也要装入TL0:MOVTH0,#9CHMOVTL0,#9CH第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 5.1.4.2 定时计数器的初始化编程定时计数器的初始化编程 定时计数器的初始化编程步骤定时计数器的初始化编程步骤:1)根据定时时间要求或计数要求计算计数器初值;)根据定时时间要求或计数要求计算计数器初值;2)工作方式控制字送)工作方式控制字送TMOD寄存器;寄存器;3)送计数初值的高八位和低八位到)送计数初值的高八位和低八位到THX和和TLX寄存寄存 器中;器中;4)启动定时(或计数),即将)启动定时(或计数),即将TRX置

21、位。置位。如果工作于中断方式,需要置位如果工作于中断方式,需要置位EA(中断总开关)及(中断总开关)及ETX(允许定时(允许定时/计数器中断)。并编中断服务程序。计数器中断)。并编中断服务程序。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 例例5-1 如图如图7-2所示,所示,P1中接有八个发光二极管,中接有八个发光二极管,编程使八个管轮流点亮,每编程使八个管轮流点亮,每个管亮个管亮100ms,设晶振为,设晶振为6MHz。5.1.4.3 5.1.4.3 应用编程举例应用编程举例第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 分析分析 利用利用T1T

22、1完成完成100ms100ms的定时,当的定时,当P1P1口线输出口线输出“1”“1”时,发光二极管亮,每隔时,发光二极管亮,每隔100ms”1”100ms”1”左移一次,采左移一次,采用定时方式用定时方式1 1,先计算计数初值:,先计算计数初值:MC=2 MC=2s s 100ms/2 100ms/2s=50000=C350H s=50000=C350H (C350HC350H)补补=10000H-C350H=3CB0H=10000H-C350H=3CB0H 第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 查询方式如下:查询方式如下:ORG 0030H ORG 0030

23、H MOV A MOV A,#01H#01H:置第一个:置第一个LEDLED亮亮NEXTNEXT:MOV P1MOV P1,A A MOV TMOD MOV TMOD,#10H#10H;T1T1工作于定时方式工作于定时方式1 1 MOV TH1 MOV TH1,#3CH#3CH MOV TL1 MOV TL1,#0B0H#0B0H;定时定时100ms 100ms SETB TR1 SETB TR1 AGAI:JBC TF1,SHIAGAI:JBC TF1,SHI;100ms 100ms到转到转SHI,SHI,并清并清TF1TF1 SJMP AGAI SJMP AGAISHISHI:RL A R

24、L A SJMP NEXT SJMP NEXT第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 中断方式中断方式 ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ;单片机复位后从;单片机复位后从0000H0000H开始执行开始执行 ORG 001BH ORG 001BH AJMP IV1 AJMP IV1 ;转移到;转移到IV1IV1 ORG 0030H ORG 0030H ;主程序;主程序MAINMAIN:MOV AMOV A,#01H#01H MOV P1 MOV P1,A A ;置第一个;置第一个LEDLED亮亮 MOV TMOD MO

25、V TMOD,#10H#10H;T1T1工作于定时方式工作于定时方式1 1 MOV TH1 MOV TH1,#3CH#3CH MOV TL1 MOV TL1,#0B0H#0B0H ;定时;定时100ms100ms SETB TR1 SETB TR1 ;启动;启动T1T1工作工作 SETB ET1 SETB ET1 ;允许;允许T1T1中断中断WAITWAIT:SJMP WAIT SJMP WAIT ;等待中断;等待中断第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 IV1IV1:RL A RL A ;中断服务程序,左移一位;中断服务程序,左移一位 MOV P1 MOV P

26、1,A A ;下一个发光二极管亮;下一个发光二极管亮 MOV TH1 MOV TH1,#3CH#3CH MOV TL1 MOV TL1,#0B0H#0B0H ;重装计数初值;重装计数初值 RETI RETI ;中断返回;中断返回以上程序进入循环执行以上程序进入循环执行,八个八个LEDLED一直循环轮流点亮。一直循环轮流点亮。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 方法方法1:1:采用采用T0T0产生周期为产生周期为200ms200ms脉冲,即脉冲,即P1.0P1.0每每100ms100ms取反一次作取反一次作为为T1T1的计数脉冲,的计数脉冲,T1T1对下降沿计数

27、,因此对下降沿计数,因此T1T1计计5 5个脉冲正好个脉冲正好100ms100ms。T0采用方式采用方式1,X=得得X=3CB0H,T1采用方式采用方式2,计数初值计数初值X=5=FBH均采用查询方式,均采用查询方式,流程图和程序如下:流程图和程序如下:例例5-25-2 在在P1.7P1.7端接一个发光二极管端接一个发光二极管LEDLED,要求利用定时控制使,要求利用定时控制使LEDLED亮一秒灭一秒周而复始,设亮一秒灭一秒周而复始,设fosc=6MHZfosc=6MHZ。解解:16:16位定时最大为位定时最大为 *2us=131.072ms *2us=131.072ms,显然不能满足要求,可

28、,显然不能满足要求,可用以下两种方法解决。用以下两种方法解决。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 ORG 0000H ORG 0000HMAINMAIN:CLR P1.7CLR P1.7 SETB P1.0 SETB P1.0 MOV TMOD MOV TMOD,#61H#61H MOV TH1 MOV TH1,#0FBH#0FBH MOV TL1 MOV TL1,#0FBH#0FBH SETB TR1 SETB TR1LOOP1:CPL P1.7LOOP1:CPL P1.7 LOOP2LO

29、OP2:MOV TH0MOV TH0,#3CH#3CH MOV TL0 MOV TL0,#0B0H#0B0H SETB TR0 SETB TR0 LOOP3:JBC TF0 LOOP3:JBC TF0,LOOP4LOOP4 SJMP LOOP3 SJMP LOOP3 LOOP4 LOOP4:CPL P1.0CPL P1.0 JBC TF1 JBC TF1,LOOP1LOOP1 AJMP LOOP2 AJMP LOOP2 END END 程序中用程序中用JBCJBC指令对定时指令对定时/计数溢出标志位进行检测,当计数溢出标志位进行检测,当标志位为标志位为1 1时跳转并清标志。时跳转并清标志。第第

30、5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 方法方法2:T0每隔每隔100ms中断一次,利用软件对中断一次,利用软件对T0的中断次数的中断次数进行计数,中断进行计数,中断10次即实现了次即实现了1秒的定时。秒的定时。ORG000BH;T0中断服务程序入口中断服务程序入口AJMPIP0ORG0030H;主程序开始;主程序开始MAIN:CLRP1.7;T0定时定时100msMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBET0SETBEA第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 MOV R4 MOV R4,#0AH#0

31、AH;中断;中断1010次计数次计数 SETB TR0 SETB TR0 SJMP SJMP ;等待中断;等待中断 IP0 IP0:DJNZ R4DJNZ R4,RET0RET0;MOV R4 MOV R4,#0AH#0AH CPL P1.7 CPL P1.7RET0RET0:MOV TH0MOV TH0,#3CH#3CH MOV TL0 MOV TL0,#0B0H#0B0H SETB TR0 SETB TR0 RETI RETI第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 例例5-5-有有P3.4引脚引脚(T0)输入一低频信号输入一低频信号(其小于其小于0.5kHZ)

32、,要求要求P3.4每发生一次负跳变时,每发生一次负跳变时,P1.0输出一个输出一个500us同步负同步负脉冲,同时脉冲,同时P1.1输出一个输出一个1ms的同步正脉冲。已知晶振频率的同步正脉冲。已知晶振频率为为6MHZ。P3.4P3.4500us500us1ms1ms定时方式定时方式计数方式计数方式计数方式计数方式(初值(初值FFH)定时方式定时方式1ms1ms500us500usP1.0P1.0P1.1P1.1图图图图7-57-57-57-5第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 解解解解按提意,设计方法如图按提意,设计方法如图按提意,设计方法如图按提意,设计方

33、法如图7-57-57-57-5所示。所示。所示。所示。初态初态初态初态P1.1P1.1P1.1P1.1输出高电平输出高电平输出高电平输出高电平(系统复位时实现系统复位时实现系统复位时实现系统复位时实现),P1.1),P1.1),P1.1),P1.1输出低电平,输出低电平,输出低电平,输出低电平,T0T0T0T0选方式计数方式选方式计数方式选方式计数方式选方式计数方式(计一个脉冲,初值为计一个脉冲,初值为计一个脉冲,初值为计一个脉冲,初值为FFH)FFH)FFH)FFH)。当加在。当加在。当加在。当加在P3.4P3.4P3.4P3.4上的外部脉冲负跳变时,上的外部脉冲负跳变时,上的外部脉冲负跳变

34、时,上的外部脉冲负跳变时,T0T0T0T0加加加加1 1 1 1,计数器溢出,程序查,计数器溢出,程序查,计数器溢出,程序查,计数器溢出,程序查询到询到询到询到TF0TF0TF0TF0为为为为1 1 1 1,改变,改变,改变,改变T0T0T0T0为为为为500500 s s s s定时工作方式,并使定时工作方式,并使定时工作方式,并使定时工作方式,并使P1.0P1.0P1.0P1.0输输输输出,出,出,出,P1.1P1.1P1.1P1.1输出。输出。输出。输出。T0T0T0T0第一次定时第一次定时第一次定时第一次定时500500 s s s s溢出后,溢出后,溢出后,溢出后,P1.0P1.0P

35、1.0P1.0恢恢恢恢复,复,复,复,T0T0T0T0第二次定时第二次定时第二次定时第二次定时500500 s s s s溢出后,溢出后,溢出后,溢出后,P1.1P1.1P1.1P1.1恢复,恢复,恢复,恢复,T0T0T0T0恢复恢复恢复恢复外部脉冲计数。外部脉冲计数。外部脉冲计数。外部脉冲计数。设定时设定时设定时设定时500500 s s s s的初始值为的初始值为的初始值为的初始值为X X X X,则:,则:,则:,则:(256 (256 (256 (256X)X)X)X)2 2 2 2 101010106 6 6 6=500=500=500=500 10101010-6-6-6-6 解得

36、解得解得解得 X=6 X=6 X=6 X=6第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 源程序如下:源程序如下:BEGIN:MOVTMOD,#6H;设设T0为方式外部计数为方式外部计数MOVTH0,#0FFH;计数一个脉冲;计数一个脉冲MOVTL0,#0FFHCLRP1.1;P1.1初值为初值为0SETBTR0;启动计数器;启动计数器DELL:JBCTF0,RESP1;检测外跳变信号;检测外跳变信号AJMPDELLRESP1:CLRTR0MOVTMOD,#02H;重置;重置T0为为500ms定时定时 第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口

37、 MOVTH0,#06H;重置定时初值;重置定时初值MOVTL0,#06HSETBP1.1;P1.1置置1CLRP1.0;P1.0清清0SETBTR0;启动定时计数器启动定时计数器DEL2:JBCTF0,RESP2;检测第一次;检测第一次500us到否到否AJMPDEL2RESP:SETBP1.0;P1.0恢复恢复1DEL3:JBCTF0,RESP3;检测第二次;检测第二次500us到否到否AJMPDEL3RESP3:CLRP1.1;P1.1复复0CLRTR0AJMPBEGIN第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 5.1.4.4门控位的应用门控位的应用 门控位门

38、控位GATE为为1时,时,TRx=1,INTx=1才能启动定时器。利才能启动定时器。利用这个特性可以测量外部输入脉冲的宽度。用这个特性可以测量外部输入脉冲的宽度。例例7-4利用利用T0门控位测试门控位测试INT0引脚上出现的正脉冲宽度,已引脚上出现的正脉冲宽度,已知晶振频率为知晶振频率为12MHz,将所测得值最高位,将所测得值最高位存入片内存入片内71H单元,低位存入单元,低位存入70H单元。单元。解:设外部脉冲解:设外部脉冲由由(P3.2)输入,输入,T0工作于定时方式工作于定时方式1(16位计数位计数),GATE设为设为1。测试时,应在。测试时,应在INT0低电平时,低电平时,设置设置TR

39、0为为1(16位计数位计数);当;当INT0变为高电平时,就启动计变为高电平时,就启动计数;数;再次变低时,停止计数。此计数值与机器周期的乘积即再次变低时,停止计数。此计数值与机器周期的乘积即为被测正脉冲的宽度。因为被测正脉冲的宽度。因fosc=12MHZ,机器周期为,机器周期为1us,测,测试过程如下。试过程如下。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 源程序如下:源程序如下:MOVTMOD,#09H;设设T0为方式为方式1MOVTL0,#00H;设计初值取最大值;设计初值取最大值MOVTH0,#00HMOVR0,#70HJBP3.2,$;等;等P3.2(INT

40、0)变低变低SETBTR0;启动;启动T0准备工作准备工作JNBP3.2,$;等待;等待P3.2(INT0)JBP3.2,$;等待等待P3.2(INT0)CLRTR0;停止计数停止计数T0从从0开始计数开始计数INT0INT009H(TMOD)1TR00TR0T0停止计数停止计数第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 MOVR0,TL0;存放结果;存放结果INCR0MOVR0,TH0SJMP$读者不难编出读者不难编出C语言程序。这种方案被测脉冲的宽度最大为语言程序。这种方案被测脉冲的宽度最大为65535个个机器周期。由于靠软件启动和停止计数,有一定的测量误差。其可

41、能机器周期。由于靠软件启动和停止计数,有一定的测量误差。其可能的最大误差与指令的执行时间有关。的最大误差与指令的执行时间有关。此例中,在读取定时器的计数之前,已把它停住。但在某些情况下,此例中,在读取定时器的计数之前,已把它停住。但在某些情况下,不希望在读计数值时打断定时的过程,由于我们不可能在同一时刻读不希望在读计数值时打断定时的过程,由于我们不可能在同一时刻读取取THX和和TLX的内容。读取一个时恰好另一个产生溢出,在这种情况下,的内容。读取一个时恰好另一个产生溢出,在这种情况下,读取的计数值有可能是错的。可以解决错读的方法是:读取的计数值有可能是错的。可以解决错读的方法是:第第5章章单片

42、机的定时单片机的定时/计数器与串行接口计数器与串行接口 先读先读THXTHX后读后读TLXTLX,若两次读得的,若两次读得的THxTHx没有发生变化,则可没有发生变化,则可确定读到的内容是正确的。若前后两次读到的确定读到的内容是正确的。若前后两次读到的THxTHx有变化,则有变化,则再重复上述过程,重复读到的内容就应该是正确的了。下面再重复上述过程,重复读到的内容就应该是正确的了。下面是按此是按此思路编写的程序段,读到的思路编写的程序段,读到的TH0 TH0 和和TL0TL0放在放在R1R1和和R0R0内:内:RP RP:MOV AMOV A,TH0TH0;MOV R0 MOV R0,TL0T

43、L0;CJNE A CJNE A,TH0TH0,RPRP;MOV R1 MOV R1,A A第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 5.1.5小小结结定时计数器应用非常广泛,如定时采样、时间测量、产定时计数器应用非常广泛,如定时采样、时间测量、产生音响、作脉冲源、制作日历时钟、测量波形的频率和占空生音响、作脉冲源、制作日历时钟、测量波形的频率和占空比、检测电机转速等。因此应很好掌握。比、检测电机转速等。因此应很好掌握。51系列单片机既有两个系列单片机既有两个16位的定时计数器,有四种不同的位的定时计数器,有四种不同的工作方式,归纳于下表:工作方式,归纳于下表:第第

44、5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 28=256=100H28=256=100H216=65536=10000H213=8192=2000H模模值值(计数最大值计数最大值)TL0定时,计数定时,计数占用占用TR0、TF0;TH0定时,使用定时,使用T1的的TR1、TF1此时此时T1作波特率作波特率发生器发生器定时、计数范围小,定时、计数范围小,不用重装时间常数,不用重装时间常数,多用于串行通信的波多用于串行通信的波特率发生器特率发生器用于用于定时时间定时时间65.5ms,计数脉冲计数脉冲65536个个场合场合用于用于定时时间定时时间8.19ms,计数脉冲计数脉冲8

45、192个个场合场合应用场合应用场合(设设fosc12MHz)同方式同方式0、1第一次装入第一次装入,启动工启动工作后作后,每次每次TL回零后回零后,不用程序装入不用程序装入,由由TH自动装入到自动装入到TL每启动一次工作每启动一次工作,需装入一次计数初需装入一次计数初值值同左同左THTL高八位高八位TH低八位低八位TL高八位高八位TH低五位低五位TL计数初值计数初值C的装入的装入方式方式 3 3T0T0两个两个8 8位位 方式方式方式方式 2 28 8位自动位自动重装方式重装方式方式方式116位定时位定时计数方式计数方式方式方式013位定时位定时计数方式计数方式方方式式八位八位第第5章章单片机

46、的定时单片机的定时/计数器与串行接口计数器与串行接口 定时和计数实质都是对脉冲的计数,只是被计脉冲的来源不定时和计数实质都是对脉冲的计数,只是被计脉冲的来源不同,定时方式的被计脉冲来源于同,定时方式的被计脉冲来源于时钟时钟,计数方式的被计脉冲来,计数方式的被计脉冲来源于源于外部外部,定时方式的计数初值和被计脉冲,定时方式的计数初值和被计脉冲周期周期有关,计数方有关,计数方式的和被计脉冲的式的和被计脉冲的个数个数有关。有关。无论定时还是计数,当计满规定的无论定时还是计数,当计满规定的脉冲个数产生溢出(计脉冲个数产生溢出(计数初值寄存器回零),置位数初值寄存器回零),置位TFx,可以通过程序查询,

47、如果允可以通过程序查询,如果允许中断,会产生中断。许中断,会产生中断。本章应重点掌握定时计数器的应用设计本章应重点掌握定时计数器的应用设计第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 5.2串行接口串行接口概述概述概述概述单片机单片机单片机单片机串行口的结构与工作原理串行口的结构与工作原理串行口的结构与工作原理串行口的结构与工作原理串行口的控制寄存器串行口的控制寄存器串行口的控制寄存器串行口的控制寄存器串行口的工作方式串行口的工作方式串行口的工作方式串行口的工作方式串行口的应用编程串行口的应用编程串行口的应用编程串行口的应用编程第第5章章单片机的定时单片机的定时/计数器

48、与串行接口计数器与串行接口 5.2.1概概述述单片机应用与数据采集或工业控制时,往往作为前端机安装单片机应用与数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发往主机进在工业现场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通信成本,提高通信可靠性。如下图所示。行处理,以降低通信成本,提高通信可靠性。如下图所示。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 数据通信方式有两种:并行通信与串行通信数据通信方式有两种:并行通信与串行通信并并行行通通信信:所所传传送送数数据据的的各各位位同同时时发发送送或或接接收收,数据有多

49、少位就需要多少根数据线。数据有多少位就需要多少根数据线。特特 点点:速速 度度 快快,成成 本本 高高,适适 合合 近近 距距 离离 传传 输输 如计算机并口,打印机,如计算机并口,打印机,8255。串串 行行 通通 信信:所所 传传 送送 数数 据据 的的 各各 位位 按按 顺顺 序序 一一 位位 一一 位位 地地 发发 送送 或或 接接 收收。只只 需需 一一 根根 数数 据据,一一 根根 地地 线线,共共 2根根 (如双向通信发送和接收各需(如双向通信发送和接收各需1根数据线。)根数据线。)特点:成本低,硬件方便,适合远距离通信,特点:成本低,硬件方便,适合远距离通信,传输速度低。传输速

50、度低。第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 第第5章章单片机的定时单片机的定时/计数器与串行接口计数器与串行接口 串行通信的分类:同步串行通信和异步串行通信串行通信的分类:同步串行通信和异步串行通信一、异步通信一、异步通信:通信的双方应该有一个约定,什么时候开始发送,什么通信的双方应该有一个约定,什么时候开始发送,什么时候发送完毕;接收方收到的信息是否正确等,这就是时候发送完毕;接收方收到的信息是否正确等,这就是通信通信协议协议。异步串行通信一帧数据格式:异步串行通信一帧数据格式:一个起始位一个起始位“0”,表示字符的开始,然后是表示字符的开始,然后是58位数据

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁