《定时计数器与串行通讯口精选PPT.ppt》由会员分享,可在线阅读,更多相关《定时计数器与串行通讯口精选PPT.ppt(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、定时计数器与串行通讯口第1页,此课件共18页哦1 1 定时定时/计数器电路计数器电路K1K2可预置初值计数器可预置初值计数器中断中断请求请求功能功能选择选择启动启动控制控制内部时钟脉冲内部时钟脉冲(定时)(定时)外部输入脉冲外部输入脉冲(计数)(计数)溢出信号溢出信号计数脉冲计数脉冲计数初值计数初值1.11.1定时定时/计数器的工作原理计数器的工作原理 定定定定时时时时/计计计计数数数数器器器器中中中中的的的的核核核核心心心心部部部部件件件件为为为为可可可可预预预预置置置置初初初初值值值值计计计计数数数数器器器器。预预预预置置置置初值后开始计数,直至计数值归初值后开始计数,直至计数值归初值后开
2、始计数,直至计数值归初值后开始计数,直至计数值归0 0 0 0或产生溢出,可申请中断。或产生溢出,可申请中断。或产生溢出,可申请中断。或产生溢出,可申请中断。计计数数器器有有加加 1 1 计计数数或或减减1 1计计数数两两种种形形式式。MCS51MCS51单单片机的计数器采用加片机的计数器采用加1 1计数。计数。要注意定时器的要注意定时器的要注意定时器的要注意定时器的容量即位数容量即位数容量即位数容量即位数第2页,此课件共18页哦例:例:设设TIMERTIMER为为8 8位加位加1 1计数器。按要求选择功能和初值。计数器。按要求选择功能和初值。1 1.要求检测到要求检测到100100个脉冲,发
3、中断请求,通知个脉冲,发中断请求,通知CPUCPU。选计数功能,计数初值为选计数功能,计数初值为选计数功能,计数初值为选计数功能,计数初值为156 156 156 156。2 2.要要求求定定时时每每隔隔100100 s s时时间间,发发一一次次中中断断请请求求。设设内内部时钟周期部时钟周期1 1 s s 选定时功能,计数初值为选定时功能,计数初值为选定时功能,计数初值为选定时功能,计数初值为156 156 156 156。1.2 1.2 1.2 1.2 定时定时定时定时/计数器的应用计数器的应用计数器的应用计数器的应用1 1 1 1计数功能:计数功能:计数功能:计数功能:生产线上产品计数。每
4、个产品通过得到一个脉冲信号,计数器记生产线上产品计数。每个产品通过得到一个脉冲信号,计数器记生产线上产品计数。每个产品通过得到一个脉冲信号,计数器记生产线上产品计数。每个产品通过得到一个脉冲信号,计数器记录脉冲个数,当计数值与设定值相等,启动包装机器。录脉冲个数,当计数值与设定值相等,启动包装机器。录脉冲个数,当计数值与设定值相等,启动包装机器。录脉冲个数,当计数值与设定值相等,启动包装机器。检测转速。电机转动一圈发出一个脉冲,计数器记录一秒时间内脉冲个数,检测转速。电机转动一圈发出一个脉冲,计数器记录一秒时间内脉冲个数,检测转速。电机转动一圈发出一个脉冲,计数器记录一秒时间内脉冲个数,检测转
5、速。电机转动一圈发出一个脉冲,计数器记录一秒时间内脉冲个数,显示转速。显示转速。显示转速。显示转速。2 2 2 2定时功能:定时功能:定时功能:定时功能:用于实时控制,定时采样、定时启动、计算两事件的间隔时间等。用于实时控制,定时采样、定时启动、计算两事件的间隔时间等。用于实时控制,定时采样、定时启动、计算两事件的间隔时间等。用于实时控制,定时采样、定时启动、计算两事件的间隔时间等。第3页,此课件共18页哦1.3 80511.3 8051定时计数器定时计数器l l8051805180518051有有2 2 2 2个可独立控制的个可独立控制的1616位定时器计数器:位定时器计数器:位定时器计数器
6、:位定时器计数器:T0T0T0T0、T1T1T1T1。分别由分别由分别由分别由8 8 8 8位寄存器位寄存器位寄存器位寄存器TH0TH0、TL0 TL0 和和和和 TH1TH1TH1TH1、TL1TL1TL1TL1组成。组成。组成。组成。l l80518051定时计数器为加定时计数器为加定时计数器为加定时计数器为加1 1计数器,加到溢出时变为计数器,加到溢出时变为计数器,加到溢出时变为计数器,加到溢出时变为0 0 0 0,同时,同时,同时,同时触发中断。触发中断。触发中断。触发中断。l l定时计数器有定时计数器有定时计数器有定时计数器有4 4 4 4种工作方式,编程选择一种。种工作方式,编程选
7、择一种。l l定时计数器驱动时钟有两种来源:外部时钟和晶振定时计数器驱动时钟有两种来源:外部时钟和晶振的的1212分频。分频。l l特殊功能寄存器特殊功能寄存器特殊功能寄存器特殊功能寄存器TCONTCONTCONTCON,TMODTMOD用于控制定时计数器。用于控制定时计数器。用于控制定时计数器。用于控制定时计数器。频率不能高于晶振频率的频率不能高于晶振频率的频率不能高于晶振频率的频率不能高于晶振频率的1/241/241/241/24,且高低电,且高低电,且高低电,且高低电平的宽度必须大于一个机器周期平的宽度必须大于一个机器周期平的宽度必须大于一个机器周期平的宽度必须大于一个机器周期第4页,此
8、课件共18页哦1.4 8051定时计数器编程定时计数器编程 功能选择功能选择功能选择功能选择(定时(定时(定时(定时/计数)计数)计数)计数)工作方式的选择即计数位数的选择工作方式的选择即计数位数的选择工作方式的选择即计数位数的选择工作方式的选择即计数位数的选择(8/13/168/13/168/13/168/13/16位)位)启动方式选择启动方式选择启动方式选择启动方式选择(内部软件启动(内部软件启动/外部硬件启动)外部硬件启动)外部硬件启动)外部硬件启动)启动控制启动控制(启动(启动(启动(启动/停止)停止)停止)停止)设置计数初值设置计数初值(自动重装(自动重装(自动重装(自动重装/软件重
9、装)软件重装)根据需要给中断允许寄存器根据需要给中断允许寄存器根据需要给中断允许寄存器根据需要给中断允许寄存器IE送中断控制字,以开放或送中断控制字,以开放或禁止相应的中断,并设定中断优先级禁止相应的中断,并设定中断优先级第5页,此课件共18页哦1.5 MCS-511.5 MCS-51定时计数器控制寄存器定时计数器控制寄存器定时器模式寄存器定时器模式寄存器定时器模式寄存器定时器模式寄存器1.1.1.1.TMTMTMTMOOD D D D定时器方式寄存器(定时器方式寄存器(定时器方式寄存器(定时器方式寄存器(89H89H89H89H)1 1 1 1)功能选择位)功能选择位)功能选择位)功能选择位
10、 C/TC/TC/TC/T:=0=0=0=0,定时功能,计数内部机器周期脉冲;,定时功能,计数内部机器周期脉冲;,定时功能,计数内部机器周期脉冲;,定时功能,计数内部机器周期脉冲;=1=1=1=1,计数功能,计数引脚,计数功能,计数引脚,计数功能,计数引脚,计数功能,计数引脚T0(T1)T0(T1)T0(T1)T0(T1)输入的负脉冲。输入的负脉冲。输入的负脉冲。输入的负脉冲。2 2 2 2)方式选择位)方式选择位)方式选择位)方式选择位M1M1M1M1、M0M0M0M0:4 4 4 4种工作方式:种工作方式:种工作方式:种工作方式:13/16/813/16/813/16/813/16/8位位
11、位位3 3 3 3)门控方式选择位)门控方式选择位)门控方式选择位)门控方式选择位 GATE GATE GATE GATE:=0=0=0=0,非门控方式,非门控方式,非门控方式,非门控方式(内部启动内部启动内部启动内部启动):TRx=1TRx=1TRx=1TRx=1,启动定时器工作;,启动定时器工作;,启动定时器工作;,启动定时器工作;TRx=0TRx=0TRx=0TRx=0,停止定时器工作。,停止定时器工作。,停止定时器工作。,停止定时器工作。=1=1=1=1,门控方式,门控方式,门控方式,门控方式(外部启动外部启动外部启动外部启动):TRx=1TRx=1TRx=1TRx=1且引脚且引脚且引
12、脚且引脚INTx=1INTx=1INTx=1INTx=1才启动。才启动。才启动。才启动。T1T0第6页,此课件共18页哦2.TCONTCON定时器控制寄存器定时器控制寄存器1 1 1 1)启动控制位)启动控制位)启动控制位)启动控制位 TR0TR0TR0TR0、TR1TR1TR1TR1=0=0=0=0,停止定时器工作,停止定时器工作,停止定时器工作,停止定时器工作=1=1=1=1,启动定时器工作,启动定时器工作,启动定时器工作,启动定时器工作例:启动例:启动例:启动例:启动T0T0T0T0:SETBSETBSETBSETBTR0TR0TR0TR02 2 2 2)溢出中断标志位)溢出中断标志位)
13、溢出中断标志位)溢出中断标志位 TF0TF0TF0TF0、TF1TF1TF1TF1定时器溢出使定时器溢出使定时器溢出使定时器溢出使TFx=1TFx=1TFx=1TFx=1,引起中断请求,引起中断请求,引起中断请求,引起中断请求,CPUCPUCPUCPU响应响应响应响应TxTxTxTx中断后,自动清中断后,自动清中断后,自动清中断后,自动清0 0 0 0 TFxTFxTFxTFx。也禁止中断,用软件检测也禁止中断,用软件检测也禁止中断,用软件检测也禁止中断,用软件检测TFxTFxTFxTFx,但必须软件清,但必须软件清,但必须软件清,但必须软件清0 0 0 0。WAITWAITWAITWAIT:
14、JBC TF0JBC TF0JBC TF0JBC TF0,NEXTNEXTNEXTNEXT;检测;检测;检测;检测T0T0T0T0是否溢出是否溢出是否溢出是否溢出SJMPSJMPSJMPSJMPWAITWAITWAITWAIT ;未溢出,继续检测;未溢出,继续检测;未溢出,继续检测;未溢出,继续检测NEXTNEXTNEXTNEXT:;溢出,;溢出,;溢出,;溢出,TF0TF0TF0TF0清清清清0 0 0 0,处理溢出,处理溢出,处理溢出,处理溢出第7页,此课件共18页哦1.6 定时器工作方式定时器工作方式方式方式方式方式0(130(130(130(13位计数方式位计数方式位计数方式位计数方式
15、)13131313位定时位定时位定时位定时/计数器。计数器。计数器。计数器。THx 8 THx 8 THx 8 THx 8位和位和位和位和TLxTLxTLxTLx低低低低5 5 5 5位组成位组成位组成位组成13131313位加位加位加位加1 1 1 1计数器计数器计数器计数器,计数计数计数计数值范围:值范围:值范围:值范围:1 181928192(2 21313)计数外部脉冲个数:计数外部脉冲个数:计数外部脉冲个数:计数外部脉冲个数:1 1 1 18192(28192(28192(28192(213131313)定时时间定时时间定时时间定时时间(设晶振为设晶振为设晶振为设晶振为12MHz)1
16、2MHz)12MHz)12MHz):1 1 1 1 s s s s 8.19ms8.19ms8.19ms8.19ms当为定时工作方式时,定时时间的计算公式:当为定时工作方式时,定时时间的计算公式:当为定时工作方式时,定时时间的计算公式:当为定时工作方式时,定时时间的计算公式:(2 21313计数初值)计数初值)计数初值)计数初值)晶振周期晶振周期晶振周期晶振周期1212(2 21313计数初值)计数初值)计数初值)计数初值)机器周期机器周期机器周期机器周期第8页,此课件共18页哦方式方式1 1(1616位计数方式)位计数方式)16161616位位位位定定定定时时时时/计计计计数数数数器器器器。
17、THx8THx8THx8THx8位位位位和和和和TLx8TLx8TLx8TLx8位位位位组组组组成成成成16161616位位位位加加加加1 1 1 1计计计计数数数数器器器器,计计计计数值范围:数值范围:数值范围:数值范围:1 16553665536(2 21616)计数外部脉冲个数:计数外部脉冲个数:计数外部脉冲个数:计数外部脉冲个数:1 1 1 165536(265536(265536(265536(216161616)定时时间定时时间定时时间定时时间(设晶振为设晶振为设晶振为设晶振为12MHz)12MHz)12MHz)12MHz):1 1 1 1 s s s s 65536T=65.54
18、ms 65536T=65.54ms 65536T=65.54ms 65536T=65.54ms(8位位)D15 D0当为定时工作方式时,定时时间的计算公式:当为定时工作方式时,定时时间的计算公式:当为定时工作方式时,定时时间的计算公式:当为定时工作方式时,定时时间的计算公式:(2 21616计数初值)计数初值)计数初值)计数初值)晶振周期晶振周期晶振周期晶振周期1212(2 21616计数初值)计数初值)计数初值)计数初值)机器周期机器周期机器周期机器周期第9页,此课件共18页哦方式方式 2 2(自动重装入(自动重装入8 8位计数方式)位计数方式)自动恢复初值自动恢复初值自动恢复初值自动恢复初
19、值8 8 8 8位定时位定时位定时位定时/计数器。计数器。计数器。计数器。TLxTLxTLxTLx为为为为8 8 8 8位加位加位加位加1 1 1 1计数器,计数器,计数器,计数器,THxTHxTHxTHx为为为为8 8 8 8位初值暂存器位初值暂存器位初值暂存器位初值暂存器。用于需要重复定时和计数的场合。用于需要重复定时和计数的场合。用于需要重复定时和计数的场合。用于需要重复定时和计数的场合。最大计数值:最大计数值:最大计数值:最大计数值:256(2256(2256(2256(28 8 8 8)最大定时时间最大定时时间最大定时时间最大定时时间(设晶振为设晶振为设晶振为设晶振为12MHz)12
20、MHz)12MHz)12MHz):256 256 256 256 s s s s(8位位)Timer1Timer1的溢出时的溢出时的溢出时的溢出时钟还可用作串口钟还可用作串口钟还可用作串口钟还可用作串口时钟时钟时钟时钟定时方式时,定时时间的计算公式:定时方式时,定时时间的计算公式:定时方式时,定时时间的计算公式:定时方式时,定时时间的计算公式:(2 28 8计数初值)计数初值)计数初值)计数初值)晶振周期晶振周期晶振周期晶振周期1212第10页,此课件共18页哦方式方式3 3(8 8位计数器)位计数器)T0T0分成分成2 2个个8 8位定时器:位定时器:TL0TL0定时定时/计数器和计数器和T
21、H0TH0定时器定时器TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE,TF0TF0;TH0TH0占用占用T1T1控制位:控制位:TR1,TF1TR1,TF1;此时此时Timer1Timer1始终打开,且不能用中断始终打开,且不能用中断。T1T1不能使用方式不能使用方式3 3工作工作TH0TH0的时钟只能来源的时钟只能来源的时钟只能来源的时钟只能来源于晶振的于晶振的于晶振的于晶振的1212分频分频分频分频第11页,此课件共18页哦1.7 MCS-51MCS-51定时器的应用定时器的应用定定定定时时时时器器器器初初初初始始始始化化化化编编编编程程程程:使使
22、使使用用用用定定定定时时时时器器器器工工工工作作作作之之之之前前前前,先先先先编编编编程程程程相相相相应应应应的的的的控控控控制制制制寄存器,确定好定时器的工作方式。寄存器,确定好定时器的工作方式。寄存器,确定好定时器的工作方式。寄存器,确定好定时器的工作方式。初始化编程格式:初始化编程格式:初始化编程格式:初始化编程格式:MOV TMODMOV TMOD,#方式字方式字方式字方式字;选择方式;选择方式;选择方式;选择方式MOV THxMOV THx,#X#XHH;装入;装入;装入;装入TxTx时间常数时间常数时间常数时间常数MOV TLxMOV TLx,#X#XL L(SETB EA(SET
23、B EA);开;开;开;开TxTx中断中断中断中断(SETB ETx)(SETB ETx)SETB TRxSETB TRx ;启动;启动;启动;启动TxTxTxTx定时器定时器定时器定时器1.1.按实际需要选择定时按实际需要选择定时按实际需要选择定时按实际需要选择定时/计数功能计数功能计数功能计数功能2.2.按时间或计数长度选择方式按时间或计数长度选择方式按时间或计数长度选择方式按时间或计数长度选择方式3.3.计算时间常数计算时间常数计算时间常数计算时间常数第12页,此课件共18页哦定时器的定时器的溢出处理编程举例:溢出处理编程举例:1 1 1 1)查询方式:先查询定时器溢出标志,再进行溢出处
24、理。)查询方式:先查询定时器溢出标志,再进行溢出处理。)查询方式:先查询定时器溢出标志,再进行溢出处理。)查询方式:先查询定时器溢出标志,再进行溢出处理。;定时器初始化;定时器初始化;定时器初始化;定时器初始化WAITWAITWAITWAIT:JBC JBC JBC JBC TFxTFxTFxTFx,PTPTPTPT ;检测溢出标志;检测溢出标志;检测溢出标志;检测溢出标志SJMP SJMP SJMP SJMP WAITWAITWAITWAITPTPTPTPT:M M M MOOV V V VTHxTHxTHxTHx,#X#X#X#XH H H H ;重装时间常数;重装时间常数;重装时间常数;
25、重装时间常数M M M MOOV V V VTLxTLxTLxTLx,#X#X#X#XL L L L ;溢出处理;溢出处理;溢出处理;溢出处理SJMPSJMPSJMPSJMPWAITWAITWAITWAIT2 2 2 2)中断方式:初始化后执行其他任务,中断服务程序处理溢出。)中断方式:初始化后执行其他任务,中断服务程序处理溢出。)中断方式:初始化后执行其他任务,中断服务程序处理溢出。)中断方式:初始化后执行其他任务,中断服务程序处理溢出。OORGRGRGRG0000H0000H0000H0000HLJMPLJMPLJMPLJMPMAINMAINMAINMAINOORGRGRGRG000BH(
26、001BH)000BH(001BH)000BH(001BH)000BH(001BH);TxTxTxTx中断入口中断入口中断入口中断入口LJMPLJMPLJMPLJMPPTSPTSPTSPTSMAINMAINMAINMAIN:;初始化后执行其他程序;初始化后执行其他程序;初始化后执行其他程序;初始化后执行其他程序PTSPTSPTSPTS:;溢出中断服务程序;溢出中断服务程序;溢出中断服务程序;溢出中断服务程序M M M MOOV V V VTHxTHxTHxTHx,#X#X#X#XH H H H;重装时间常数;重装时间常数;重装时间常数;重装时间常数M M M MOOV V V VTLxTLxT
27、LxTLx,#X#X#X#XL L L LRETIRETIRETIRETI第13页,此课件共18页哦例:例:由由P1.0P1.0输出方波信号,周期为输出方波信号,周期为2ms2ms,设,设f foscosc=12MHz=12MHz=12MHz=12MHz。2ms解:解:每隔每隔每隔每隔1ms1ms1ms1ms改变一次改变一次改变一次改变一次P1.0P1.0P1.0P1.0的输出状态。用的输出状态。用的输出状态。用的输出状态。用T0T0T0T0非门控方式非门控方式非门控方式非门控方式1 1 1 1定时。定时。定时。定时。计算时间常数:计算时间常数:计算时间常数:计算时间常数:X=2X=2X=2X
28、=216 16 16 16-t/T=2-t/T=2-t/T=2-t/T=216 16 16 16-1000/1=-1000/1=-1000/1=-1000/1=FC18HFC18HFC18HFC18H(1 1 1 1)查询方式:)查询方式:)查询方式:)查询方式:STARTSTART:MOVMOV TMODTMOD,#01H#01HMOVMOVTL0TL0,#18H#18HMOVMOVTH0TH0,#0FCH#0FCHSETBSETB TR0TR0 LOOP LOOP:JBCJBCTF0TF0,PTF0PTF0SJMPSJMP LOOPLOOP PTF0 PTF0:CPLCPLP1.0P1.0
29、MOVMOVTL0TL0,#18H#18HMOVMOVTH0TH0,#0FCH#0FCHSJMPSJMPLOOPLOOP第14页,此课件共18页哦(2 2)中断方式程序)中断方式程序 ORGORG0000H0000HAJMPAJMP MAINMAINORGORG000BH000BHAJMPAJMP PT0INTPT0INTORGORG0100H0100HMAINMAIN:MOVMOVSPSP,#60H#60HMOVMOVTMODTMOD,#01H#01HMOVMOVTL0TL0,#18H#18HMOVMOVTH0TH0,#0FCH#0FCHSETBSETBEAEASETBSETBET0ET0S
30、ETBSETBTR0TR0HEREHERE:SJMPSJMP HEREHEREPT0INTPT0INT:CPLCPLP1.0P1.0 MOVMOVTL0TL0,#18H#18HMOVMOV TH0TH0,#0FCH#0FCHRETIRETI第15页,此课件共18页哦例:例:P1.7P1.7驱动驱动LEDLED亮亮1 1秒灭秒灭1 1秒地闪烁,设时钟频率为秒地闪烁,设时钟频率为6MHz6MHz。思思思思 路路路路:长定时方法:增加一个软件计数器或一个硬件计数器。:长定时方法:增加一个软件计数器或一个硬件计数器。:长定时方法:增加一个软件计数器或一个硬件计数器。:长定时方法:增加一个软件计数器或一
31、个硬件计数器。若采用硬件方式,可用若采用硬件方式,可用若采用硬件方式,可用若采用硬件方式,可用T0T0T0T0定时每隔定时每隔定时每隔定时每隔200mS200mS200mS200mS溢出,再用溢出,再用溢出,再用溢出,再用T1T1T1T1计数计数计数计数T0T0T0T0的定时跳变信号的定时跳变信号的定时跳变信号的定时跳变信号P1.0P1.0P1.0P1.0的负跳变次数,计满的负跳变次数,计满的负跳变次数,计满的负跳变次数,计满5 5 5 5个跳变为个跳变为个跳变为个跳变为1 1 1 1秒。秒。秒。秒。START START:MOV TMODMOV TMOD,#61H#61H MOV TL1MO
32、V TL1,#0FBH#0FBH MOV TH1MOV TH1,#0FBH#0FBH CLR P1.0CLR P1.0 SETB TR1SETB TR1RELOADRELOAD:MOV TL0MOV TL0,#0B0H#0B0H MOV TH0MOV TH0,#3CH#3CH SETBSETBTR0TR0 WAIT WAIT:JBCJBCTF0TF0,TOVTOVSJMPSJMPWAITWAIT TOV TOV:CPLCPLP1.0P1.0JNBJNBTF1TF1,RELOADRELOADCLR TF1CLR TF1CPL P1.7CPL P1.7SJMP RELOADSJMP RELOAD第
33、16页,此课件共18页哦例:例:利用利用利用利用GATEGATEGATEGATE门控方式测量正脉冲宽度。门控方式测量正脉冲宽度。解:解:从从从从INT1(P3.3)INT1(P3.3)INT1(P3.3)INT1(P3.3)引脚输入被检测信号,记录正脉冲引脚输入被检测信号,记录正脉冲引脚输入被检测信号,记录正脉冲引脚输入被检测信号,记录正脉冲的时间包含的机器脉冲个数。的时间包含的机器脉冲个数。的时间包含的机器脉冲个数。的时间包含的机器脉冲个数。1 1)设晶振设晶振设晶振设晶振12MHz12MHz12MHz12MHz,正脉宽小于,正脉宽小于,正脉宽小于,正脉宽小于65.5ms65.5ms65.5
34、ms65.5ms等待查询等待查询INT1INT1,正脉冲过后,读出,正脉冲过后,读出TH1TL1TH1TL1。STARTSTART:MOV TMODMOV TMOD,#90H#90H MOV TL1MOV TL1,#0H#0H MOV TH1MOV TH1,#0H#0HWAIT1WAIT1:JBJBP3.3P3.3,WAIT1WAIT1 SETB TR1SETB TR1WAIT2 WAIT2 :JNBJNBP3.3P3.3,WAIT2WAIT2NOP NOP WAIT3 WAIT3:JB JBP3.3P3.3,WAIT3WAIT3CLRCLRTR1TR1MOVMOVR0R0,TL1TL1MOV
35、MOV R1R1,TH1TH1TR1=1 T1启动 TR1=0 T1停止INT1正脉冲宽度(正脉冲宽度(R1 28 8R0)12TOSCOSC第17页,此课件共18页哦2 2)设晶振设晶振设晶振设晶振12MHz12MHz12MHz12MHz,正脉冲宽度大于,正脉冲宽度大于,正脉冲宽度大于,正脉冲宽度大于65.5ms65.5ms65.5ms65.5ms,可,可,可,可用中断记录用中断记录用中断记录用中断记录TH1TH1TH1TH1、TL1TL1TL1TL1溢出中断次数。溢出中断次数。溢出中断次数。溢出中断次数。主程序:主程序:主程序:主程序:START:START:MOV TMOD,#90H M
36、OV TMOD,#90H;初始化;初始化;初始化;初始化AGAIN:AGAIN:MOV TL1 MOV TL1,#0H#0H MOV TH1 MOV TH1,#0H#0H MOV R2,#0 MOV R2,#0 ;R2R2R2R2清零清零清零清零WAIT1:WAIT1:JB P3.3JB P3.3,WAIT1 WAIT1 ;等待上一正脉冲结束;等待上一正脉冲结束;等待上一正脉冲结束;等待上一正脉冲结束 SETB TR1 SETB TR1 ;开定时器;开定时器;开定时器;开定时器1 1 SETB ET1 SETB ET1 ;开;开;开;开T1T1中断中断中断中断 SETB EASETB EA ;
37、开总中断;开总中断;开总中断;开总中断WAIT2WAIT2:JNB P3.3:JNB P3.3,WAIT2WAIT2 ;等待正脉冲到来;等待正脉冲到来;等待正脉冲到来;等待正脉冲到来WAIT3WAIT3:JB P3.3:JB P3.3,WAIT3WAIT3 ;等待正脉冲结束;等待正脉冲结束;等待正脉冲结束;等待正脉冲结束 CLR CLRTR1TR1 ;关闭;关闭;关闭;关闭T1T1 MOV MOV IE IE,#00#00 ;关闭中断;关闭中断;关闭中断;关闭中断 MOV MOV R0 R0,TL1TL1 ;读出;读出;读出;读出T1T1 MOV MOV R1 R1,TH1TH1 SJMP AGAIN SJMP AGAIN ;测量下一脉冲;测量下一脉冲;测量下一脉冲;测量下一脉冲脉冲宽度脉冲宽度脉冲宽度脉冲宽度=(R R2 2 2216 16 +R+R1 1 228 8 R R0 0)机器周期机器周期机器周期机器周期TR1=1 T1启动 TR1=0 T1停止INT1中断服务程序:中断服务程序:中断服务程序:中断服务程序:PRICPRIC:INCINC R2 R2 RETI RETI第18页,此课件共18页哦
限制150内