单片机的定时/计数器_第1页
单片机的定时/计数器_第2页
单片机的定时/计数器_第3页
单片机的定时/计数器_第4页
单片机的定时/计数器_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、 单片微型计算机与接口技术单片微型计算机与接口技术 ( (第第4 4版版) ) 第第7 7章章 学习内容学习内容 寄存器寄存器 现实生活需要定时现实生活需要定时/ /计数计数 定时定时/ /计数有计数有3 3种方法种方法: :n软件定时:软件定时:让机器执行一个程序段,占用让机器执行一个程序段,占用CPUCPU执行时间,降执行时间,降低了低了CPUCPU利用率利用率n数字电路硬件定时:数字电路硬件定时:采用小规模集成电路器件,电路简单,采用小规模集成电路器件,电路简单,修改定时不方便修改定时不方便n可编程定时可编程定时/ /计数器:计数器:硬件定时,可通过软件来确定和改变硬件定时,可通过软件来

2、确定和改变定时,定时,5151单片机有此部件单片机有此部件 5151单片机有单片机有2 2个个1616位定时位定时/ /计数器计数器:T0 ,T1T0 ,T1 定时定时/ /计数器为计数器为1616位位加加1 1计数器计数器 T0T0由由TH0TH0( (8CH8CH) )和和TL0TL0( (8AH8AH) )构成构成; T1T1由由TH1TH1( (8DH8DH) )和和TL1TL1( (8BH8BH) )构成构成 都可设置为都可设置为定时定时/ /计数计数工作方式工作方式 T0T0和和T1T1受受TMODTMOD和和TCONTCON控制控制外计数脉冲输入外计数脉冲输入定时计数器定时计数器

3、T0T0的内部结构和控制信号的内部结构和控制信号TF0T0TR0GATEINT011&C/T=1振荡器振荡器f0f0 0/12C/T=0TL0 TH0高位高位低位低位计数器计数器定时定时计数计数控制控制 =1=1K K接通接通 SK中断中断请求请求MC计数计数/ /定时器的实质定时器的实质 实质是计数器,实质是计数器,脉冲每一次脉冲每一次下降沿下降沿,计数寄存器数值将加,计数寄存器数值将加1 1定时器定时器: :计数的脉冲来源于单片机的计数的脉冲来源于单片机的MCMC( (其周期极为准确其周期极为准确) )计数器计数器: :计数的脉冲来源于计数的脉冲来源于T0T0,T1T1引脚引脚(

4、(其周期一般不准确其周期一般不准确) )+1+1计数器计数器溢出溢出中断中断脉冲脉冲控制控制开关开关1. 1. 定时方式定时方式 每经过一个每经过一个MC,MC,定时器定时器(T0(T0或或T1)T1)的数值加的数值加1,1,直至计数直至计数满产生溢出。满产生溢出。 f fmaxmax=f=foscosc/12/12如如: 当当80518051采用采用12MHz12MHz晶体时,晶体时,MC=1sMC=1s,计,计5 5个个MCMC即为即为5s5s,即定时,即定时5s5s 2. 2. 计数方式计数方式 通过引脚通过引脚T0(P3.4)T0(P3.4)和和T1(P3.5)T1(P3.5)对外部脉

5、冲计数对外部脉冲计数 当输入脉冲信号产生下降沿时,定时器的值加当输入脉冲信号产生下降沿时,定时器的值加1 1 由于检测一个由于检测一个1 1至至0 0的跳变需要二个的跳变需要二个MCMC 外外f fmaxmax=f=foscosc/24/24 要求电平保持时间至少一个要求电平保持时间至少一个MCMC寄存器寄存器 ( (两个两个) )1. 1. 工作方式寄存器工作方式寄存器TMOD(TMOD(89H,89H,不可位操作不可位操作) ) 控制控制T0T0和和T1T1的工作方式。其各位的定义如下:的工作方式。其各位的定义如下: TMOD D7D6D5D4 D3D2D1 D0 (89H)GATEC/T

6、M1M0GATE C/TM1 M0定时器定时器T0T0 定时器定时器T1T1 GATEGATE:门控信号:门控信号 GATE=0GATE=0,TRxTRx=1=1时即可启动定时器工作时即可启动定时器工作 ; GATE=1GATE=1,INTx=1, TRxINTx=1, TRx=1=1才可启动定时器工作才可启动定时器工作 C/TC/T:定时器:定时器/ /计数器选择位计数器选择位 C/T=1C/T=1,为计数器方式;,为计数器方式; C/T=0C/T=0,为定时器方式,为定时器方式 M1 M0 M1 M0 工作方式选择位工作方式选择位 M1M0=00 M1M0=00 工作方式工作方式0 0(1

7、313位方式位方式) M1M0=01 M1M0=01 工作方式工作方式1 1(1616位方式位方式) M1M0=10 M1M0=10 工作方式工作方式2 2(8 8位自动再装入方式位自动再装入方式) M1M0=11 M1M0=11 工作方式工作方式3 3(T0T0为为2 2个个8 8位方式位方式) TF1 TR1TF0 TR0 IE1IT1 IE0IT0T1 请求请求有有/ /无无 T1工作工作启启/ /停停 T0 请求请求有有/ /无无 T0 工作工作启启/ /停停 INT1 请求请求有有/ /无无 INT1方式方式下沿下沿/ / 低低电平电平 INT0请求请求有有/ /无无 INT0方式方

8、式下沿下沿/ /低低电平电平 2. 2. 控制寄存器控制寄存器TCON(TCON(88H,88H,可位操作可位操作, ,定时控制定时控制 / /中断控制中断控制) ) 其含意如下:其含意如下: TF1TF1:T1T1溢出标志位溢出标志位, ,可供查询或中断请求可供查询或中断请求 TF1=1TF1=1,T1T1有溢出有溢出 TF1=0TF1=0,T1T1无溢出无溢出 TR1TR1:T1T1运行控制位运行控制位 ( (需需GATE=0GATE=0) ) TR1=1 TR1=1,启动,启动T1T1工作工作 TR1=0TR1=0,停止,停止T1T1工作工作 TF0TF0: T0T0溢出标志位溢出标志位

9、, ,可供查询或中断请求可供查询或中断请求 TF0=1TF0=1,T0T0有溢出有溢出 TF0=0TF0=0,T0T0无溢出无溢出 TR0TR0:T0T0运行控制位运行控制位 ( (需需GATE=0GATE=0) ) TR0=1 TR0=1,启动,启动T0T0工作工作 TR0=0TR0=0,停止,停止T0T0工作工作* *与定时与定时/ /计数器有关中断控制位见计数器有关中断控制位见IEIE寄存器寄存器(P102)(P102)7.3 7.3 定时器的四种工作方式定时器的四种工作方式 方式方式 T0/T1T0/T1工作于工作于1313位定时、计数方式。位定时、计数方式。最大计数值最大计数值( (

10、模值模值) )为为 2 213 13 8192(8192(即即2000H2000H) )个脉冲个脉冲用于定时工作时,定时时间为:用于定时工作时,定时时间为: t t(2(21313一一T0T0初值初值) ) MCMC 一般不用方式一般不用方式0 0. .M1 M0方方式式功功能能描描述述0 0013位位0 1116位位1 028位位自自动动重重装装1 13T0为为两两个个 8位位4 4种工作方式种工作方式 ( (TMODTMOD中中) 2 .2 .方式方式1 1 ( (1 1次性,兼容方式次性,兼容方式) )1616位定时计数方式位定时计数方式 寄存器寄存器THTHX X和和TLTLX X是以

11、全是以全1616位参与操作位参与操作 THTHX X提供高提供高8 8位、位、 TLTLX X提供低提供低8 8位计数初值位计数初值 当当TLTLX X的低的低8 8位溢出时向位溢出时向THTHX X进位进位, ,而而THTHX X溢出溢出 时硬件置位时硬件置位TFTFX X,可供查询,可供查询/ /申请中断申请中断 ( (此时此时TLTLX X=TH=THX X=00H,TF=00H,TFX X=1=1) )计数脉冲个数计数脉冲个数:1 165536(265536(21616)()(模值模值10000H10000H) )定时时间定时时间( (晶振晶振12MHz MC=112MHz MC=1

12、s s) ):1 1 s s 65536 65536 s = 65.54mss = 65.54ms非门控方式:非门控方式:当当GATEGATE0, 0, 控制权由控制权由 TRxTRx 决定决定 TRxTRx1 1 计数开始计数开始 TRxTRx 0 0 计数停止计数停止门控方式:门控方式:当当GATEGATE1 1、TRxTRx1 1 控制权由控制权由INTxINTx 决定决定 INTxINTx1 1 计数开始计数开始 INTxINTx0 0 计数停止计数停止启动计数方式:启动计数方式:3. 3. 方式方式2 2 ( (非一次性非一次性) )自动恢复初值自动恢复初值,8,8位定时位定时/ /

13、计数器计数器TLxTLx为为8 8位加位加1 1计数器,计数器,THxTHx为为8 8位初值暂存器位初值暂存器可省去用户重装计数初值,可省去用户重装计数初值,可产生精确的定时时间可产生精确的定时时间用于需要重复定时和计数的场合用于需要重复定时和计数的场合计数值:计数值:1-256 (21-256 (28 8)()(模值模值100H100H) )定时时间定时时间( (晶振晶振12MHz12MHz时时 MC=1MC=1 s s) ):1 1 s - 256s - 256 s s4.4.方式方式3 3 (1(1次性次性, ,只对只对T0,T0,且且T1T1为波为波特率发生器特率发生器) )T0T0分

14、成分成2 2个个8 8位定时器:位定时器:TL0TL0定时定时/ /计数计数, ,TH0TH0定时定时TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATE,TF0,T0,INT0GATE,TF0,T0,INT0;TH0TH0占用占用T1T1控制位:控制位:TR1,TF1TR1,TF1。T1T1不能使用方式不能使用方式3 3 (T0(T0方式时方式时,T1,T1可工作于方式可工作于方式0,1,2,0,1,2,但但不能使用中断不能使用中断 方式方式) ) 计数值计数值=? =? 定时时间定时时间=? =? 模值模值=?=?7.4 7.4 定时定时/ /计数器的应用程序设

15、计计数器的应用程序设计7.4.1 7.4.1 定时定时/ /计数器的计数初值计数器的计数初值C C的计算和装入的计算和装入 定时器定时器/ /计数器不同工作方式的计数器不同工作方式的模值不同模值不同,加加1 1计数计数 计数初值(计数初值(补数补数)的求法如下:)的求法如下: 计数方式:计数方式: 计数初值计数初值C=C=模模-X=2-X=2n n-X=(X)-X=(X)求补求补(其中(其中X X:计数脉冲个数,计数脉冲个数,实际需求实际需求; ;C C: :计数初值计数初值 ,装入装入T0/T1T0/T1) ( (CXCX) ) 定时方式:定时方式: 计数初值计数初值C=t/MCC=t/MC

16、求补求补= =模模t/MCt/MC 其中其中t t为欲定时时间,为欲定时时间,MC=12/foscMC=12/fosc 方式方式0 0( 1313位方式):位方式): C=C=(64H64H)求补求补= =2000H2000H64H=1F9CH64H=1F9CH 1F9CH 1F9CH0000001 1 11111111 1001001 1 11001100B B 把把1313位中的高八位位中的高八位1111 1100B1111 1100B装入装入TH0TH0, 而把而把1313位中的低五位位中的低五位xxx1 1100Bxxx1 1100B装入装入TL0TL0。 MOV TH0MOV TH0

17、,#0FCH#0FCH; MOV TL0MOV TL0,#1CH#1CH;(xxx(xxx用用“0”0”填入)填入)方式方式1 (161 (16位方式位方式) ): C=C=(64H64H)求补求补= =10000H10000H-64H=FF9CH-64H=FF9CH 用指令装入计数初值用指令装入计数初值: MOV TH0MOV TH0,#0FFH#0FFH MOV TL0 MOV TL0,#9CH#9CH例例 要计要计100个脉冲的计数初值个脉冲的计数初值方式方式2 2(8 8位自动再装入方式)位自动再装入方式) C=C=(64H64H)求补求补= =100H100H64H=9CH64H=9

18、CH 初值既要装入初值既要装入TH0TH0,也要装入,也要装入TL0TL0: MOV MOV TH0TH0,#9CH#9CH MOV MOV TL0TL0,#9CH#9CH最大定时时间:最大定时时间:2 2n nC(C(方式不同而异方式不同而异) ) 最大计数初值最大计数初值:TH:THX X=TL=TLX X=?=? THTHX X=TL=TLX X=00H=00H7.4.2 7.4.2 定时定时/ /计数器的初始化编程计数器的初始化编程 步骤步骤: 先计算计数初值;先计算计数初值;1 1)工作方式控制字送)工作方式控制字送TMODTMOD寄存器;寄存器;2 2)计数初值的高八位和低八位送)

19、计数初值的高八位和低八位送THTHX X和和TLTLX X3 3)启动定时(或计数),即将)启动定时(或计数),即将TRTRX X置位置位(GAET=0(GAET=0时时) )4) 4) 如工作于中断方式,需置位如工作于中断方式,需置位EAEA及及ETETX X 再编中断服务程序再编中断服务程序初始化编程格式初始化编程格式:MOV TMODMOV TMOD,# # 方式字方式字 ;选择方式选择方式MOV THxMOV THx,#C#CH H ;装入装入TxTx计数初值计数初值MOV TLxMOV TLx,#C#CL LSETB SETB EAEA ;开开TxTx中断中断SETB SETB ET

20、xETxSETB TRxSETB TRx ;启动启动TxTx定时器定时器 . . . . ; ;服务程序服务程序例例7-17-1 如图如图7-27-2所示,所示,P1P1接有八个发光二极管,编接有八个发光二极管,编程使八个管程使八个管轮流轮流点亮,每点亮,每个管亮个管亮100ms100ms,设晶振为,设晶振为6MHz6MHz。7.4.3 7.4.3 应用编程举例应用编程举例分析分析 利用利用T1T1完成完成100ms100ms的定时,的定时,当当P1P1口线输出口线输出“0 0”时,发光二时,发光二极管亮,每隔极管亮,每隔100ms”100ms”0 0”左移左移一次,采用定时方式一次,采用定时

21、方式1 1,先计算,先计算计数初值:计数初值:机器周期机器周期:MC=2s MC=2s 计数个数计数个数:100ms/2s 100ms/2s =50000=C350H =50000=C350H 计数初值计数初值: :( (C350H)C350H)求补求补 =10000H-C350H=3CB0H=10000H-C350H=3CB0H1.1.查询方式查询方式 ( (人工清零人工清零TF1TF1) ) ORG 0030H ORG 0030H MOV A MOV A,# #0FEH0FEH ; ; 置第一个置第一个LEDLED亮亮( (P1.0P1.0) )NEXTNEXT:MOV P1MOV P1,

22、A A MOV TMOD MOV TMOD,#10H #10H ;T1T1工作于定时工作于定时, ,方式方式1,GAET=01,GAET=0 MOV TH1 MOV TH1,#3CH#3CH MOV TL1 MOV TL1,#0B0H #0B0H ;定时定时100100msms( (计数初值计数初值T1T1) ) SETB TR1 ; SETB TR1 ; 启动启动T1T1工作工作AGAI: JBC TF1,SHI AGAI: JBC TF1,SHI ;100100msms到转到转SHI,SHI,并清并清TF1TF1 SJMP AGAI ; SJMP AGAI ; 未到未到100ms,100m

23、s,再查再查TF1TF1SHISHI: RL A ; RL A ; A A左移一位左移一位, ,下一下一LEDLED SJMP NEXT SJMP NEXTJBCJBC指令对定时指令对定时/ /计数溢出标志位进行检测,计数溢出标志位进行检测,当标志位为当标志位为1 1时跳转并清标志时跳转并清标志2.2.中断方式中断方式 ( (机器清零机器清零TF1TF1) ) ORG 0000HORG 0000H AJMP MAIN ; AJMP MAIN ; 复位后从复位后从0000H0000H开始执行开始执行 ORG 001BH ; ORG 001BH ; T1T1中断服务程序入口中断服务程序入口 AJM

24、P IV1 AJMP IV1 ;转移到转移到IV1IV1 ORG 0030H ORG 0030H ;主程序主程序MAINMAIN:MOV AMOV A,#0FEH #0FEH MOV P1 MOV P1,A A ;置第一个置第一个LEDLED亮亮 MOV TMODMOV TMOD,#10H #10H ;T1T1门控关门控关, ,定时定时, ,方式方式1 1 MOV TH1 MOV TH1,#3CH#3CH MOV TL1 MOV TL1,#0B0H #0B0H ;定时定时100ms100ms SETB TR1SETB TR1 ;启动启动T1T1工作工作 SETB EASETB EA ; ; 开

25、中断总开关开中断总开关 SETB ET1SETB ET1 ;允许允许T1T1中断中断WAITWAIT:SJMP WAIT SJMP WAIT ;等待中断等待中断( (TF1=1TF1=1中断响应中断响应) ) IV1IV1:RL A RL A ;中断服务程序,;中断服务程序,左移一位左移一位 ( (机器清零机器清零TF1)TF1) MOV P1 MOV P1,A A ;下一个发光二极管亮下一个发光二极管亮 MOV TH1MOV TH1,#3CH#3CH MOV TL1 MOV TL1,#0B0H #0B0H ;重装重装计数初值计数初值( (方式方式1 1为一次性为一次性) ) RETI RET

26、I ;中断返回中断返回以上程序进入循环执行以上程序进入循环执行, ,八个八个LEDLED一直循环轮流点亮一直循环轮流点亮方法方法1:(1:(查询法查询法) )采用采用T0T0完成完成100ms100ms定时,再定时,再P1.0P1.0每每100ms100ms取反一次作为取反一次作为T1T1的计数脉冲,的计数脉冲,T1T1对下降沿计数,因此对下降沿计数,因此T1T1计计5 5个脉冲正好个脉冲正好1000ms1000ms。T0T0采用方式采用方式1(1(定时工作定时工作) ),X X= 得得X=3CB0HX=3CB0H,T1T1采用方式采用方式2(2(计数工作计数工作) ),计数初值计数初值X =

27、X = 5=FBH5=FBH均采用查询方式,均采用查询方式,流程图和程序如下流程图和程序如下:162162210100382例例7-27-2 在在P1.7P1.7端接一个发光二极管端接一个发光二极管LEDLED,要求利用定时控,要求利用定时控制使制使LEDLED亮一秒灭一秒周而复始,设亮一秒灭一秒周而复始,设foscfosc=6MHz=6MHz。解解: 16: 16位定时最大为位定时最大为 * *22s=131.072mss=131.072ms,显然不能,显然不能满足要求,可用以下两种方法解决。满足要求,可用以下两种方法解决。162 ORG 0100HORG 0100HMAINMAIN:CLR

28、 P1.7 CLR P1.7 ;LEDLED亮亮 SETB P1.0 SETB P1.0 ;输出置;输出置1 1 MOV TMOD MOV TMOD,#61H #61H ;T1T1门控关门控关, ,计数计数, ,方式方式2 2 T0 T0门控关门控关, ,定时定时, ,方式方式1 1 MOV TH1 MOV TH1,#0FBH#0FBH MOV TL1 MOV TL1,#0FBH #0FBH ;计数初值计数初值 T1T1 SETB TR1 SETB TR1 ;开开T1T1计数计数LOOP1:CPL P1.7 LOOP1:CPL P1.7 ;取反取反(LEDLED灭灭/ /亮)亮) LOOP2L

29、OOP2:MOV TH0MOV TH0,#3CH#3CH MOV TL0 MOV TL0,#0B0H #0B0H ;计数初值;计数初值 T0T0 SETB TR0 SETB TR0 ;开;开T0T0计数计数 LOOP3:JBC TF0,LOOP4 LOOP3:JBC TF0,LOOP4 ; ; 100ms100ms到到, ,转转, ,人工清人工清TF0TF0 SJMP LOOP3 SJMP LOOP3 ;未到;未到, ,再查询再查询 LOOP4LOOP4:CPL P1.0 CPL P1.0 ;每;每100ms100ms到到,P1.0 ,P1.0 取反取反 JBC TF1JBC TF1,LOOP

30、1 LOOP1 ; ;1000ms1000ms到到, ,转转, ,人工清人工清TF1TF1 AJMP LOOP2 AJMP LOOP2 ;未到;未到, ,转转 ENDEND JBCJBC指令对定时指令对定时/ /计数溢出标志位进行检测,计数溢出标志位进行检测,当标志位为当标志位为1 1时跳转并清标志时跳转并清标志方法方法2(2(中断法中断法) ):T0T0每隔每隔100ms100ms中断一次,利用软件对中断一次,利用软件对T0T0的中断次的中断次数进行计数,中断数进行计数,中断1010次即实现了次即实现了1 1秒的定时。秒的定时。 ORG 0000HORG 0000H AJMP MAIN AJ

31、MP MAIN ORG 000BH ORG 000BH ;T0;T0中断服务程序入口中断服务程序入口 AJMP IP0AJMP IP0 ORG 0030H ORG 0030H ; ;主程序开始主程序开始 MAINMAIN:CLR P1.7 CLR P1.7 ;LED;LED亮亮 MOV TMODMOV TMOD,#01H #01H ;T0;T0门控关门控关, ,定时定时, ,方式方式1 1 MOV TH0 MOV TH0,#3CH#3CH MOV TL0 MOV TL0,#0B0H #0B0H ; ;计数初值计数初值T0T0 SETB ET0 SETB ET0 ; ;允许允许T0T0中断中断

32、SETB EA SETB EA ; ;开中断总开关开中断总开关 MOV R4MOV R4,#0AH #0AH ; ;中断中断1010次计数次计数(10(10次次100ms)100ms) SETB TR0 SETB TR0 ; ;开启开启T0T0工作工作 ( (定时定时) ) SJMP SJMP ; ;等待中断等待中断 (TF0=1?)(TF0=1?) IP0IP0:DJNZ R4DJNZ R4,RET0 RET0 ; ;机器清机器清TF0TF0,1010次未到次未到, ,再等中断再等中断 MOV R4MOV R4,#0AH #0AH ;10;10次到次到, ,赋值赋值R4R4 CPL P1.7

33、 CPL P1.7 ; ;取反取反P1.7 P1.7 ( (灭灭/ /亮亮) )RET0RET0:MOV TH0MOV TH0,#3CH#3CH MOV TL0 MOV TL0,#0B0H ;#0B0H ;再赋值再赋值计数初值计数初值T0T0 SETB TR0 SETB TR0 ; ;开启开启T0T0 RETIRETI 假设假设T0,T1T0,T1同时中断同时中断,CPU,CPU如何响应如何响应? ? 7.4.4 7.4.4 门控位的应用门控位的应用 门控位门控位GATEGATE为为1 1时,时,TRxTRx=1=1,INTxINTx=1=1才能启动定时器。利才能启动定时器。利用这个特性可以测

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

35、0TR0为为1 1;当;当INT0 INT0 变为高电平时,就启动计数;变为高电平时,就启动计数; 再次再次变低时,停止计数。变低时,停止计数。此计数值与机器周期的乘积即为被测此计数值与机器周期的乘积即为被测正脉冲的宽度。正脉冲的宽度。因因foscfosc=12MHZ=12MHZ,机器周期为,机器周期为1us1us,测试过,测试过程如下程如下: :源程序如下:源程序如下: MOV TMODMOV TMOD,#09H #09H ; T0; T0方式方式1 1,定时,定时,GATE=1GATE=1 MOV TL0 MOV TL0,#00H #00H ;设计数初值取最大值;设计数初值取最大值 MOV

36、 TH0MOV TH0,#00H#00H MOV R0 MOV R0,#70H #70H ;存放单元地址存放单元地址 JB P3.2, $ JB P3.2, $ ;等;等P3.2(INT0 )P3.2(INT0 )变低变低 SETB TR0 SETB TR0 ;启动;启动T0,T0,准备工作准备工作 JNB P3.2, $ JNB P3.2, $ ;等待;等待P3.2(INT0 )P3.2(INT0 )变高变高 JB P3.2, $ JB P3.2, $ ; ; 等待等待P3.2(INT0 )P3.2(INT0 )再变低再变低 CLR TR0CLR TR0 ; ; 停止计数停止计数( (以便静

37、态读数以便静态读数) )T0从从0 0开始计数开始计数INT0INT0 1 TR0 0 TR0T0停止计数停止计数09HTMOD MOV R0,TL0 MOV R0,TL0 ; ;存放结果存放结果70H70H ( (静态读数静态读数) ) INC R0 INC R0 MOV R0,TH0 MOV R0,TH0 ; ;存放结果存放结果71H71H ( (静态读数静态读数) ) SJMP $ SJMP $* * 1)1)THTHX X,TL,TLX X既是加既是加1 1计数器计数器, ,又是又是8 8位寄存器位寄存器( (可读可读/ /写写) ) 2)2)被测脉冲的宽度最大值被测脉冲的宽度最大值(

38、 (6553665536* *MC)MC) 3)3)测量误差测量误差( (与软件有关与软件有关) ) 4)4)怎样怎样动态读数动态读数动态读数动态读数( (测量中读数测量中读数) ): :读读THTHX XTLTLX X THTHX X ,若两次,若两次THxTHx没变化,则读到没变化,则读到THxTHx是正确的。若两次读到的是正确的。若两次读到的THxTHx有变化,则再重复上述过程,重复读到的内有变化,则再重复上述过程,重复读到的内容就应该是正确的了。下面是按此思路编写的程容就应该是正确的了。下面是按此思路编写的程序段,读到的序段,读到的TH0 TH0 和和TL0TL0放在放在R1R1和和R0R0内:内:RPRP:MOV AMOV A,TH0 TH0 ;读;读TH0TH0 MOV R0 MOV R0,TL0 TL0 ;读;读TL0TL0 ( (读完后读完后TH0=?TH0=?) ) CJNE A CJNE A,TH0TH0,RP RP ;不等重读;不等重读 MOV R1MOV R1,A A7 7 6 6 小小 结结 定时计数器应用非常广泛,如定时采样、定时计数器应用非常广泛,如定时采样、时间测量、产生音响、作脉冲源、制作日历时间测量、产生

温馨提示

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

评论

0/150

提交评论