




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章定时/计数器及应用,本章主要内容,定时/计数器基本概念定时/计数器的结构定时/计数器的工作方式定时/计数器应用举例,第一节定时/计数器基本概念,一、问题提出,即:为什么要学习定时/计数器?,在测控技术中,往往需要定时检测某个物理参数,或按照一定的时间间隔来进行某种控制。这种定时的获得,可通过两种方法来实现:(1)采用软件来实现定时,即编制一段延时程序,但会降低CPU的工作效率;(2)采用硬件来实现定时,即使用定时/计数器,当用某个计数功能时,可以对某种事件进行计数,然后根据计数结果来进行控制。,不管CPU对定时/计数器设置为定时功能还是计数功能,定时/计数器T0,T1在启动后,都会按照设定的工作方式独立运行,不再占用CPU的时间,只有在定时/计数器溢出后,才可能向CPU发出中断请求信号。,因此,定时/计数器是单片机中效率较高,且工作灵活的部件!,一、定时/计数器的结构,8051的两个定时/计数器T0、T1实际上就是加1计数器,其中T0由两个8位特殊功能寄存器TH0和TL0构成,T1由两个8位特殊功能寄存器TH1和TL1构成,T0和T1都可由软件设置为定时或计数功能。,第二节定时/计数器的结构,对机器周期进行计数,每过一个机器周期,计数器加1,直至计数器计满溢出。由于一个机器周期由12个振荡周期组成,则计数频率为振荡频率的1/12。,如:振荡频率为12MHz,振荡周期为(1/12M)s,则计数频率为1MHz,机器周期为1us。,定时器的定时时间与计数器初值(计数长度)和系统时钟频率(振荡频率)有关!,如:定时/计数器T0由TH0和TL0组成,共16位,每过一个机器周期,T0加1,若从初始值T00开始,直至T0计数满溢出,则一共要经过216个机器周期,即:总定时时间216个机器周期一个机器周期的时间此时,定时时间与计数器初始值和振荡频率有关。且由于振荡频率不易改变,通常改变计数器初值,从而达到改变定时时间的目的。,定时/计数器做定时用,定时/计数器做计数用,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,在每一个机器周期的S5P2期间采样引脚输入电平,若前一个机器周期采样值为1(高电平),后一个机器周期采样值为0(低电平),则计数器加1。由于辨别一个信号由1到0的跳变,需要2个机器周期,所以计数频率为振荡频率的1/24。,如:晶振频率为12MHz,则最高计数频率为0.5MHz。,二、定时/计数器的功能及应用范围,定时器/计数器具有定时和计数两种功能,应用范围如下:1.定时与延时控制方面可产生定时中断信号,以设计出各种不同频率的信号源;产生定时扫描信号,对键盘进行扫描以获得控制信号,对显示器进行扫描以不间断地显示数据。2.测量外部脉冲方面对外部脉冲信号进行计数可测量脉冲信号的宽度、周期,也可实现自动计数。3.监控系统工作方面对系统进行定时扫描,当系统工作异常时,使系统自动复位,重新启动以恢复正常工作。,三、定时/计数器的控制,使用定时/计数器时,除了要选择定时或计数功能外,每种功能还有4种工作方式,包括方式0、方式1、方式2和方式3。,而工作方式和其他的设定都是由:定时/计数器方式寄存器TMOD和定时/计数器控制寄存器TCON决定的。,即:对定时/计数器的设置也就是对TMOD和TCON的设置!,1、定时/计数器的方式寄存器TMOD,GATE:门控位GATE=0:软件启动定时器。即用指令使TCON中的TR1(TR0)置1,则可启动定时/计数器1(定时/计数器0)。GATE=1:软件和硬件共同启动定时器。即用指令使TCON中的TR1(TR0)置1时,只有外部中断INT0(INT1)引脚输入高电平时才能启动定时/计数器1(定时/计数器0)。,C/T:功能选择位C/T=0时,以定时器方式工作。C/T=1时,以计数器方式工作。,地址为89H,只能用字节寻址。,M1M0操作方式控制位,对应4种二进制编码,也就是4种工作方式。,定时器操作方式选择位定义,说明:TMOD是地址为89H的特殊功能寄存器,用于控制定时/计数器T0和T1的工作方式以及功能选择,TMOD不能按位寻址,只能用字节设置,低半字节定义定时/计数器T0,高半字节定义定时/计数器T1。复位时,所有位为0。,2、定时/计数器的控制寄存器TCON,地址为88H,可进行位寻址,也可进行字节寻址。,各位的功能说明:,TF1(TCON.7):定时器1溢出标志位。当定时器1计满溢出时,由硬件自动使TF1置1,并申请中断。对该标志位有两种处理方法:一种是以中断方式工作,即TF1置1并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF1清0;另一种以查询方式工作,即通过查询该位是否为1来判断是否溢出,TF1置1后必须用软件使TF1清0。,TR1(TCON.6):定时器1启停控制位GATE=0时,用软件使TR1置1即启动定时器1,若用软件使TR1清0则停止定时器1。GATE=1时,用软件使TR1置1的同时外部中断INT1的引脚输入高电平才能启动定时器1。,TF0(TCON.5):定时器0溢出标志位。其功能同TF1。TR0(TCON.4):定时器0启停控制位。其功能同TR1。IE1(TCON.3):外部中断1请求标志位。当检测到外部中断引脚上存在有效中断请求信号时,由硬件使IE11或IE01,CPU响应中断,转向中断服务程序。,IE0(TCON.1):外部中断0请求标志位。其功能同IE1IT0(TCON.0):外部中断0触发方式选择位。其功能同IT1,IT1(TCON.2):外部中断1触发方式选择位。IT10,外部中断1为电平触发方式IT11,外部中断1为边沿触发方式,第三节定时/计数器的工作方式,定时器/计数器的初始化步骤,定时器/计数器是一种可编程部件,在使用定时器/计数器前,一般都要对其进行初始化,以确定其以特定的功能工作。初始化的步骤如下:确定定时器/计数器的工作方式,确定方式控制字,并写入TMOD。预置定时初值或计数初值,根据定时时间或计数次数,计算定时初值或计数初值,并写入TH0、TL0或TH1、TL1。根据需要开放定时器/计数器的中断,给IE中的相关位赋值。启动定时器/计数器,给TCON中的TR1或TR0置1。,一、工作方式0及其应用,当MIM0两位为00时,定时/计数器被选为工作方式0,其逻辑结构如下图所示。,说明:工作方式0是一个13位的定时/计数器!16位的寄存器(TH0和TL0)只用了13位,即TH0的全8位和TL0的低5位。当TL0的低5位溢出时,向TH0进位;当TH0溢出时,则向中断标志TF0进位(硬件置位TF0),申请中断。,启动定时/计数器工作的条件有两种情况:,软件启动:GATE=0TRx1,或,软件与硬件共同启动:GATE=1TRx1INT0/INT1引脚电平为1,看图:,软件启动,硬件与软件共同启动,当GATE=0时,通过非门后,值取反为1,则使或门输出始终保持为1,此时,与引脚INTx的输入电平无关。控制位的电位取决于TRx的状态。若使TRx置1,则接通控制开关,启动定时/计数器开始计数;若使TRx清0,则断开控制开关,停止计数。,当GATE=1时,通过非门后,值取反为0,则“或”门的输出取决于INTx引脚的输入电平,当INTx为高电平时,“或”门输出为高电平,此时,若TRx置1,则接通控制开关,启动定时/计数器开始计数;若TRx清0,则断开控制开关,停止计数。,说明:假设T0工作在方式0,TH0的全8位和TL0的低5位组成一个13位的二进制数计数器,单片机开机或复位时,T0的值为0000H,当T0被启动后,从第一个输入脉冲开始计数,每来一个脉冲,计数加1,即从13个0一直加到13个1,再计数一个脉冲时,13位计数器则从13个1变成13个0,并产生溢出,溢出位就被送入TF0标志位,产生中断申请。因此,T0工作在方式0,引起一次中断所允许的计数脉冲最多为:213个,但是,如果定时/计数器每次都固定从全0开始计数,计满后溢出,发出中断申请,就达不到不同定时时间的目的,因此,可以预先向TH0和TL0中装入初始值X,使计数器T0从X值开始计数,直至计满溢出,这样就可得到不同的定时时间。设需要计数的脉冲个数为Y,则:Y213X,在计数方式下,当输入第213X个脉冲时,产生溢出中断申请;在定时方式下,当计第213X个机器周期时,产生溢出中断申请。即定时时间间隔:t(213X)振荡周期12,例:设定时/计数器T0选择工作方式0,定时时间为1ms,振荡频率为12MHz,试编程实现在P1.0输出周期为2ms的方波。,解:分析如下,系统采用12MHz的晶振:则振荡周期Tc1/12M(s),机器周期Tm12Tc1us。,若定时/计数器从全0开始计数,直至计满溢出,共需213个机器周期,引起中断所需的定时时间为:2131us8.192ms,而题目要求定时时间为1ms,则需将T0赋初始值X。,要在P1.0得到输出周期为2ms的方波,要使P1.0每1ms取反一次。,初始化过程:,计算T0定时1ms的初始值,t=(213-X)1us=1ms8192-X=1000X=7192D=11100000,11000B,则:TH011100000BE0HTL000011000B18H,确定工作方式:对TMOD寄存器赋值,TMOD.1,TMOD.0:有M1M000,选定T0为方式0TMOD.2:有C/T0,选定T0为定时功能(即计机器周期数)TMOD.3:有GATE0,表示不受INT0控制,直接由TR01,可启动T0TMOD.4TMOD.7:用于T1,因此,这里不用,可设为0值,则:TMOD00H,开放定时器中断:对IE寄存器赋值,则:IE1000,0010B,启动定时/计数器T0:使TCON的TR0置位,则:TR01,解法:在定时/计数器T0中断被禁止的情况下,采用查询TF0状态来控制P1.0的输出,程序清单如下:,MOVTMOD,#00H;MOVTL0,#18HMOVTH0,#0E0H;SETBTR0;LOOP:JBCTF0,NEXT;SJMPLOOP;NEXT:MOVTL0,#18HMOVTH0,#0E0H;CPLP1.0;SJMPLOOP;,置T0为工作方式0,且为定时功能,并直接由TR0=1启动T0赋初值启动T0TF0=1时,对TF0清0且转移;TF0=0时,查询等待重装计数初值输出取反重复循环,采用查询方式的程序简单,但在定时/计数过程中,CPU要不断查询溢出标志位TF0的状态,当查询在TF0=1时,用指令对TF0清0,且对P1.0取反。这种方法占用了很多CPU的工作时间,使CPU效率下降,因此要采用中断方式!,解法:采用定时/计数器溢出中断方式(CPU响应中断后,TF0自动清0)程序清单如下:,主程序:MAIN:MOVTMOD,#00H;MOVTL0,#18HMOVTH0,#0E0H;SETBTR0;SETBEA;SETBET0;HERE:SJMPHERE;,置T0为工作方式0,定时功能,并直接有TR0=1启动赋初始值启动T0CPU打开中断T0中断允许等待中断,中断服务子程序:ORG000BH;AJMPCTC0;CTC0:MOVTL0,#18H;MOVTH0,#0E0HCPLP1.0;RETI;,规定T0中断入口转中断服务子程序重装初值输出取反,达到方波效果中断返回,例:12MHZ晶振,选择T0工作于方式0,解:分析如下:,系统采用12MHz的晶振:则振荡周期Tc1/12M(s),机器周期Tm12Tc1us。,选择T0方式0,若定时/计数器从全0开始计数,直至计满溢出,共需213个机器周期,引起中断所需的定时时间为:2131us8.192ms,而题目要求定时时间为2ms,则需将T0赋初始值X。,初始化过程:,计算T0定时2ms的初始值,t=(213-X)1us=2ms8192-X=2000X=6192D=11000001,10000B,则:TH011000001BC1HTL000010000B10H,对TMOD赋值,开放相应中断,对IE寄存器赋值,有:TMOD00H,有:IE1000,0010B82H,启动定时计数器T0,有:TR0=1,要得到宽度为2us的负脉冲,则采用定时到了之后,执行CLRP1.7和NOP两条指令,刚好是占用2个机器周期2us,再用SETBP1.7变为高电平,又开始定时计数。,主程序:,MAIN:MOVTMOD,#00H;MOVTL0,#10H;MOVTH0,#0C1HMOVIE,#82H;SETBTR0;HERE:SJMPHERE;,置T0工作方式0赋初始值开中断启动T0等待中断,程序如下:,ORG000BHAJMPCTC0CTC0:CLRP1.7;NOPSETBP1.7;MOVTL0,#10H;MOVTH0,#0C1HRETI;,中断服务子程序:,得到宽度为2us的负脉冲设为高电平重装初值中断返回,练习题1:,在P1.0输出周期为1ms(频率1kHz)的方波,采用定时器1方式0设计程序,晶振频率为12MHz。,二、工作方式1及其应用,当MIM0两位为01时,定时/计数器被选为工作方式1,其逻辑结构如下图所示。,说明:工作方式1是一个16位的定时/计数器!其操作方式与方式0几乎完全相同,唯一的差别就是方式1中寄存器TH0和TL0是以全部16位参与计数。所以,方式1的定时/计数范围比方式0大,当要求定时时间较长,13位计数器不够用时,则可使用方式1。当TL0溢出时,向TH0进位;当TH0溢出时,则向中断标志TF0进位(硬件置位TF0),申请中断。,在计数方式下,当输入第216X个脉冲时,使TF0=1,产生计数溢出中断申请;在定时方式下,当计第216X个机器周期时,使TF0=1,产生定时溢出中断申请。即定时时间间隔:t(216X)振荡周期12(216X)机器周期,若定时/计数器初始值为X,则:,例:利用T0方式1产生一个50Hz的方波,由P1.7送出。系统采用12MHz的晶振,并假定CPU不做其他工作。,解:分析如下,假定CPU不做其他工作,则说明可采用查询方式;系统采用12MHz的晶振,则机器周期为1us;方波频率为50Hz,周期则为1/5020ms则:可规定定时时间为10ms每次定时时间到,将P1.7引脚电平取反,就可得到周期为20ms的方波;若定时/计数器从全0开始计数,直至计数溢出,其定时时间为:2161us65.536ms本题要求定时时间为10ms,即需要给T0赋初始值。,初始化过程:,计算T0定时10ms的初始值,t=(216-X)1us=10ms65536-X=10000X=55536D=11011000,11110000B,则:TH011011000BD8HTL011110000BF0H,确定工作方式,对TMOD赋值,有:TMOD01H,开放相应中断,对IE寄存器赋值,有:IE10000010B82H,启动定时计数器T0,有:TR0=1,法:假定CPU不做其他工作,可使用查询TF0位的状态来控制P1.7的输出。程序如下:,MOVTMOD,#01H;MOVTL0,#0F0HMOVTH0,#0D8H;SETBTR0;LOOP:JBCTF0,AGN;AJMPLOOP;AGN:MOVTL0,#0F0H;MOVTH0,#0D8HCPLP1.7;NOPAJMPLOOP;,置T0工作方式1,定时功能,直接由TR0=1启动T0赋初始值启动T0TF0=1时,对TF0清0且转移;TF0=0时,查询等待定时时间到后,重装计数初值输出取反重复循环,法:也可使用中断方式,ORG0000HAJMPMAIN;ORG000BHAJMPZD;MAIN:MOVTMOD,#01HMOVTL0,#0F0HMOVTH0,#0D8HMOVIE,#82HSETBTR0;HERE:SJMPHERE;ZD:MOVTL0,#0F0H;MOVTH0,#0D8HCPLP1.7;RETI,转移到主程序转移到中断程序初始化工作等待中断定时时间到后,重装计数初值每10ms取反一次,可得周期为20ms的方波,三、工作方式2及其应用,当MIM0两位为10时,定时/计数器被选为工作方式2,其逻辑结构如下图所示。,说明:工作方式2是自动装入计数器初值的8位定时/计数器!其中:TL0作为8位的加1计数器,TH0作为8位初值暂存计数器。在启动定时/计数器之前,对TL0和TH0赋相同的初始值,启动定时/计数器后,TL0作加1计数器,当TL0计满溢出,置位TF0标志的同时,TH0内暂存的计数初值自动重新装入TL0中,使TL0从初值开始重新计数。,在计数方式下,当输入第28X个脉冲时,使TF0=1,产生计数溢出中断申请;在定时方式下,当计第28X个机器周期时,使TF0=1,产生定时溢出中断申请。即定时时间间隔:t(28X)振荡周期12(28X)机器周期,若定时/计数器初始值为X,则:,此种方式,因为省去了用户编程时重装初始值的指令,就能够产生相当精确的定时时间!,例:利用定时器T1的方式2对外部信号计数,要求每计满100次,将P1.0端取反。,初始化过程:,计算T1计数初值,28-X=100X=256-100=156D=10011100B=9CH,则:TH1=9CH(加1计数器)TL1=9CH(初值暂存寄存器),确定工作方式,对TMOD赋值,方式2:M1M0=10;用于计数:C/T=1;门控位:GATE0,则:TMOD60H,开放中断:对IE寄存器赋值,IE10001000B88H,启动定时/计数器T1,TR11,程序清单:,MAIN:MOVTMOD,#60H;MOVTL1,#9CH;MOVTH1,#9CHMOVIE,#88H;SETBTR1;HERE:SJMPHERE;ORG001BH;CPLP1.0;RETI;,置T1方式2计数赋初值开中断启动定时/计数器T1等待中断定时/计数器T1中断入口地址对P1.0取反中断返回,例:定时器T0外部输入端(P3.4)作为计数脉冲输入端工作为方式2,利用手控单脉冲信号作为计数输入脉冲,编写控制程序,每输入10个脉冲,工作寄存器R0的内容加一,晶振频率为6MHz。,初始化过程:,计算T0计数初值,28-X=10X=256-10=246D=11110110B=F6H,则:TH1=F6H(加1计数器)TL1=F6H(初值暂存寄存器),确定工作方式,对TMOD赋值,方式2:M1M0=10;用于计数:C/T=1;门控位:GATE0,则:TMOD06H,开放中断:对IE寄存器赋值,IE10000010B82H,启动定时/计数器T1,TR11,程序清单:,ORG0000HLJMPMAIN;ORG000BH;LJMPSER0;ORG0050HMAIN:MOVR0,#00HMOVTMOD,#06H;MOVTH0,#0F6H;MOVTL0,#0F6H,转向主程序定时/计数器T0的中断入口地址转向中断服务子程序置定时/计数器T0为工作方式2置10次计数初值,SETBEA;SETBET0;SETBTR0;SJMP$;ORG0200HSER0:INCR0;RETI;END;,开中断开定时/计数器T0中断允许启动定时/计数器T0等待中断R0值加1中断返回结束,例:利用定时器/计数器T0(工作于方式2)扩展一个外部中断源,用手控单脉冲信号作为外部中断信号,P1口控制八只灯(P1口输出低电平时灯被点亮),同一时间只有一盏灯点亮,编写控制程序,每发一个单脉冲信号,循环点亮下一盏灯。,解法分析:定时器/计数器T0以计数功能工作,当计数初值为FFH时,只要外部计数输入引脚T0(P3.4)输入一个计数脉冲,8位加1计数器TL0变为00H,TF0由硬件自动置1,并申请中断。利用这一特点,将外部中断请求信号作为计数脉冲送入外部计数输入引脚T0(P3.4),就可实现中断功能。定时器/计数器0以方式2工作!,初始化过程:,计算T1计数初值,28-X=1X=256-1=255D=1111111B=FFH,确定工作方式,对TMOD赋值,使用T0:高4位为0000B;方式2:M1M0=10;用于计数:C/T=1;门控位:GATE0,则:TMOD06H,开放中断:对IE寄存器赋值,IE10000010B82H,启动定时/计数器T1,TR11,则:TH1=FFH(加1计数器)TL1=FFH(初值暂存寄存器),程序清单如下页所示:,ORG0000HAJMPMAIN;ORG000BH;AJMPINT;ORG0050HMAIN:MOVTMOD,#06H;MOVTH0,#0FFH;MOVTL0,#0FFHSETBEA;SETBET0;SETBTR0;MOVA,#0FEHMOVP1,A;SJMP$;ORG0100HINT:RLA;MOVP1,A;RETI;END;,转向主程序定时/计数器T0的中断入口地址转向中断服务子程序置计数器T0为工作方式2赋初值开中断开T0中断允许位启动定时/计数器T0点亮一盏灯等待中断一次中断则对应A中内容左移一次点亮下一盏灯中断返回结束,三、工作方式3及其应用,当MIM0两位为10时,定时/计数器被选为工作方式2,其逻辑结构如下图所示。,定时/计数器T0设置为工作方式3时,TH0和TL0被分成两个相互独立的8位定时/计数器。其中:TL0使用T0的各控制位、引脚和中断源,即C/T、GATE、TR0、TF0、T0(P3.4)、INT0(P3.2)。其功能和操作方式与方式0、方式1完全相同,可工作为定时/计数功能。TH0只能做内部定时用,占用T1的控制位TR1和标志位TF1,由TR1启动或关闭TH0。,定时/计数器T1设置为工作方式3时,会使T1立即停止计数,其结果相当于TR10。因此,说定时/计数器T1无工作方式3!,当定时/计数器T0工作在方式3时,T1可设定为方式0、1、2,但由于此时TR1和TF1被定时/计数器T0的TH0占用,仅用T1的控制位C/T切换定时还是计数工作方式就可使T1运行。,第四节定时/计数器的应用举例,一、超过定时/计数器量程的定时问题,例:设系统时钟频率为6MHz,试编写利用T0产生1S定时的程序。,解法分析:,时钟频率为6MHz,则振荡周期Tc=1/6MHz(s),机器周期为2us;用于定时时:工作方式0最长定时时间为:2132us=16384us=16.384ms;工作方式1最长定时时间为:2162us=131072us=131.072ms;工作方式2最长定时时间为:282us=512us=0.512ms本例中要求定时时间为1s!显然,直接通过设置时间初值不可能实现长度为1s的定时,所以可以选择定时方式1,通过设置初值,使定时/计数器T0每隔100ms中断一次,只要中断10次就可得到时间为1s的定时。,初始化过程:,计算T0定时100ms时的初值,(216-X)2us=100msX=65536-50000=15536D=11110010110000B=3CB0H,则:TH0=3CHTL0=B0H,确定工作方式,对TMOD赋值,使用T0:高4位为0000B方式1:M1M0=01;用于定时:C/T=0;门控位:GATE0;,则:TMOD01H,开放中断:对IE寄存器赋值,IE10000010B82H,启动定时/计数器T1,TR11,程序清单如下:,ORG0000H;LJMPMAIN;ORG000BH;AJMPSERVE;MAIN:MOVR0,#0AH;MOVTMOD,#01H;MOVTL0,#0B0H;MOVTH0,#3CHMOVIE,#82H;SETBTR0;,主程序入口地址转向主程序中断服务程序入口地址转向中断服务子程序设定中断次数10次设T0工作于方式1,且仅由TR0=1启动赋定时100ms时的初值打开定时中断启动T0,HERE:SJMPHERE;SERVE:MOVTL0,#0B0H;MOVTH0,#3CHDJNZR0,LOOP;CLRTR0;LOOP:RETI;,等待中断重装初值若R0减1不为0,则中断程序返回,继续定时;若R0减1为0,则停止计时TR0清0,T0停止计时中断返回,二、用定时器测试脉冲宽度问题,例:设被测脉冲由INT0输入,T0工作于定时方式1。测试时:在INT0为低电平时,设置TR0=1;当INT0变为高电平时,开始启动T0计数,当INT0再次变低电平时,停止计数,此时计数值即为被测脉冲的宽度,其单位是机器周期。若fosc12MHz,将测得结果存放在R0指向的两单元中。,说明:由于fosc=12MHz,则机器周期为1us,因此,此方案能测量的最大脉冲宽度为:2161us=65536us,解:程序清单如下,MOVTMOD,#09H;MOVTL0,#00H;MOVTH0,#00HMOVR0,#20H;WT1:JBINT0,WT1;SETBTR0;WT2:JBINT0,WT2;CLRTR0;MOVR0,TL0INCR0MOVR0,TH0;RET,设定T0工作方式,且由软、硬件共同启动赋初值赋存储单元地址指针INT0为1时,转移,等待INT0出现低电平INT0为0时,置位TR0,即等待INT0出现高电平,就可启动T0INT0为1时,转移,即启动T0,并等待INT0再次出现低电平INT0为0时,清零TR0,T0停止工作计数值送R0代表单元子程序返回,三、定时/计数器T0和T1级连实现长时间定时,说明:两个定时/计数器中,一个应用于定时,另一个应用于计数。当定时时间到时输出一个控制信号,将此信号作为另一个定时/计数器的输入计数脉冲,则可实现长时间定时。,例:已知fosc12MHz,试用定时/计数器T1计数、T0定时,控制P1.0口输出周期为2min的方波。,解法分析:,输出方波周期为2min,则定时时间为:1min=60ms1000;用于定时时:工作方式0最长定时时间为:2131us=16384us=8.192ms;工作方式1最长定时时间为:2161us=131072us=65.536ms;工作方式2最长定时时间为:281us=512us=0.256ms。则选用T0工作于方式1,定时60ms,当T0定时时间到,控制P1.2(与P3.5相连)输出周期为120ms的方波作为T1的计数脉冲,T1每计满500次后,就控制P1.0输出宽度为2min的方波。,初始化过程:,计算T0定时60ms和T1计数500次时的初值,T0:(216-X)1us=60msX=65536-60000=5536D=1010110100000B=15A0H,T1:216-X=500X=65536-500=65036D=1111111000001100B=FE0CH,则:T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版科技园区廉洁从业自律合作协议
- 二零二五年大理石石材市场调研与分析服务协议
- 二零二五年度旅游服务标准化合同协议
- 2025版南通市区人才公寓租赁管理协议
- 2025版艺术品担保答辩状范本编制合同
- 2025至2030年中国抗菌肽生物兽药行业发展监测及市场发展潜力预测报告
- 二零二五版智能化设备租赁与操作培训合同
- 二零二五年度仓储物流场地租赁协议范本
- 二零二五年度专业二手车买卖及售后服务合作协议
- 二零二五年度土地储备使用权转让合同
- 2025至2030年中国酒店布草行业市场全景评估及投资前景展望报告
- 2025年应急管理普法知识竞赛历年参考题库含答案详解(5套)
- 2025年小学生爱粮节粮科普知识竞赛试题(含答案)
- 水池结构混凝土质量缺陷处理方案范文
- 2025驾驶员安全教育培训考试试卷(及答案)
- 人工智能替代效应研究-洞察及研究
- GB/T 33474-2025物联网参考体系结构
- 基建期奖励管理办法
- 2025年新安徽水利厅安全员c培训试题及答案
- 集邮协会管理办法
- 图解自然资源部《自然资源领域数据安全管理办法》
评论
0/150
提交评论