版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8051单片机的定时/计数器复习:中断源的分类和特点分类:根据中断源产生的位置片内中断(定时器T0和T1中断、串行口中断)片外中断(外部中断0和外部中断1)根据中断源的引发是由硬件产生还是软件软件中断(定时器T0、T1中断)硬件中断(外部中断0、外部中断1、串行口中断)根据中断源的性质分成以下3类中断:外部中断类定时器中断类串行口中断类复习:定时器中断类产生本类中断的原因:硬件结构发生计数溢出中断的标志:在软件的标志位TF0和TF1上用“1”体现出来表6-1定时器控制寄存器TCON位地址8FH8EH8DH8CH8BH8AH89H88H位符号TF1TR1TF0TR0IE1IT1IE0IT0IE0(IE1):外部中断请求标志当INT0(INT1)引脚有中断信号时,IE0(IE1)被置1;当CPU响应对应中断后,IE0(IE1)会自动由硬件清零。TF0(TF1):定时器计数满溢出的标志位。当计数器产生计数溢出时,此位由硬件自动置1。当转向中断服务时,再由硬件自动清0定时器T0和定时器T1中断的识别标志在TCON中的TF0和TF1两个标志位就是定时器计数满溢出的标志位。当计数器产生计数溢出时,此位由硬件自动置1。当转向中断服务时,再由硬件自动清0计数溢出位的使用有两种情况:采用中断方式编程时用作中断请求识别的标志位;采用查询方式编程时用作查询状态位使用,常用“JNBTF0,$”的指令进行非中断的查询方式编程;如果不采用中断方式编程,而采用查询的方式处理计数满的结果,这两个标志位要用手动清0。复习:中断与定时器51单片机中,定时器是中断源。中断处理过程如图所示:计算机定时的方法
计算机定时的方法有:软件定时硬件定时软件和硬件结合定时(可编程控制)80C51的定时/计数器简介实现定时功能,比较方便的办法是利用单片机内部的定时/计数器。也可以采用下面三种方法:软件定时:软件定时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率。采用时基电路定时:例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。采用可编程芯片定时:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时/计数器不够用时,可以考虑进行扩展。6.1MCS-51定时/计数器的结构结构特点:单片机内部有2个16位可编程定时器:T0和T1;它们都具有计数和定时两种功能;定时/计数器的核心部件是二进制加1计数器构成的硬件;T0和T1可分为2个8位的定时器:TH0、TH1(高8位)和TL0、TL1(低8位)组成每个定时器都有不同的工作方式8051单片机的2个16位定时/计数器均可编程:可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。可用于定时控制、延时、对外部事件计数和检测等场合。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(定时器控制与中断方式控制寄存器TCON和方式控制寄存器TMOD)。定时器/计数器的结构定时器/计数器的基本部件是两个8位计数器(TH1和TL1是T1的计数器,TH0和TL0是T0的计数器)。图6.1定时器/计数器结构51定时器结构16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。
这些寄存器是用于存放定时或计数初值的。启动TMOD主要是用于选定定时器的工作方式;
TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。启动一定时/计数器的功能
在特殊功能寄存器TMOD中,有一个控制位(C/T),分别用于控制定时/计数器工作在定时器模式还是计数器模式。1.定时功能----计数输入信号是内部时钟脉冲,每个机器周期计数器的值加1。2.计数功能----计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。
定时/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1)。定时器的工作模式在80C51的单片机中,定时/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1)两种工作模式:定时模式计数模式选择方法:通过设置TMOD特殊功能寄存器的C/T#位可以编程选择定时器的工作模式定时模式工作特点:内部的硬件计数器记录的输入信号是内部时钟脉冲对应机器周期的个数;每个机器周期使寄存器的值加1,所以,计数频率是振荡频率的1/12。选择方法:设定TMOD的C/T#位等于零计数模式特点:内部的计数器硬件记录的脉冲是来自相应的外部输入引脚,定时器T0为P3.4,定时器T1为P3.5。当输入信号产生由“1”到“0”的负跳变时,计数寄存器(TH0、TL0或TH1、TL1)的值在原来值的基础上增1。选择方法:设置TMOD的编程位C/T#位等于1即可注意事项:高、低电平持续时间不小于一个机器周期定时和计数的联系和区别联系:定时模式还是计数的模式,对应的都是一个计数器,它们对输入脉冲的个数计数,并进行加一操作,最后将计数结果保存在计数寄存器内。区别:在于它们记录脉冲的来源不同定时工作模式:
记录的脉冲是周期固定的机器周期的数量计数的工作模式:
脉冲是来自于外部引脚送来的,代表外部事件变化规律的脉冲信号,这个脉冲不一定有规律定时/计数器的工作原理
加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t
。设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2
s。
定时器的控制控制的内容:起停控制溢出的检测工作模式工作方式门控情况选择控制方法:通过对特殊功能寄存器TMOD和TCON编程来完成二、定时器/计数器的特殊功能寄存器
与定时器/计数器有关的特殊功能寄存器有:1.定时器控制与中断触发方式控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志触发方式选择启动定时/计数器0低电平1下降沿0停止1启动定时器控制寄存器TCON功能:中断控制定时器/计数器控制TF0(TF1)——计数溢出标志位特点:当计数器计数溢出(计满)时,该位置1处理方法:使用查询方式时,此位作状态位供查询,但应注意:查询有效后应以软件方式手动及时将该位清零;使用中断方式时,该位作中断标志位,在转向中断服务程序时由硬件自动清0。溢出中断标志位TF0、TF1定时器溢出使TFx=1,引起中断请求,CPU响应Tx中断后,自动对TFx清0。可用软件检测TFx,必须软件(手动)清0。例如:
WAIT: JBC TF0,NEXT ;检测T0是否溢出
SJMP WAIT ;未溢出,继续检测
NEXT:… ;溢出,TF0清0,处理溢出定时器控制寄存器TCON(续)TR0(TR1):定时器的运行控制位特点:定时器的软件“开关”控制方法:TR0(TR1)=0,停止定时器工作TR0(TR1)=1,启动定时器开始工作D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志位:TF0、TF1、IE0、IE1 状态位,可查询触发方式选择位:IT0、IT1,可设置 IT0(IT1)=0低电平 IT0(IT1)=1下降沿启动定时/计数器位:TR0、TR1,可设置, TR0(TR1)=0停止 TR0(TR1)=1启动表6-2 工作方式控制寄存器TCON的格式例:启动T0:SETB TR0二、定时器/计数器的特殊功能寄存器
2.工作方式控制寄存器TMODT1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE—门控位C/T—计数/定时选择M1M0—工作方式选择二、定时器/计数器的特殊功能寄存器
2.工作方式控制寄存器TMODM0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE—门控位若GATE=1,则T×(T0或T1)计数器受引脚INT0(或INTl)和TR×(TR0或TR1)共同控制。当和TR×都是1时,T×计数,否则T×停止计数。若GATE=0,则T0和T1不受INT0(或INTl)引脚控制而只受TR×控制,此时,TR×为1,T×计数,TR×为0,停止计数。可用于测量在INTx端出现的正脉冲的宽度。工作方式控制寄存器TMOD功能:控制T0和T1的工作方式工作模式选择门控情况选择特点:TMOD不能位寻址,那么就意味着它的所有位不能进行位操作,只能以整字节传送指令设置其内容。表6-3 工作方式控制寄存器TMOD的格式低半字节用于定义定时/计数器0高半字节用于定义定时/计数器1位地址D7D6D5D4D3D2D1D0位名称GATEC/T#M1M0GATEC/T#M1M0定时/计数器1控制定时/计数器0控制(1)门控位:GATE功能:设定定时器的运行是否受到门控信号的影响作用:GATE=0,定时器的运行不受门控信号的控制,只由TR0(或TR1)控制。GATE=1,定时器的运行要受到门控的控制INT0(INT1)引脚信号和TR0(TR1)双重控制仅当引脚的输入电平为高且TR0(或TR1)=1时定时器才可以运行当引脚电平从高变到低,那么定时器立刻停止计数,利用这一特性可以用来测量在引脚上的正脉冲的宽度。(2)工作模式选择位:C/T#C/T#=0,选择定时模式C/T#=1,选择计数模式(3)工作方式选择位:M1、M0功能:定时器工作方式选择控制的定时器四种工作方式M1M0工作方式功能描述00方式013位计数器01方式116位计数器10方式2初值自动重装8位计数器11方式3T0分成2个独立的8位;T1对外部停止计数,但此时可以用作串行口波特率发生器表6-4 工作方式选择位M1、M2格式定时器的工作方式80C51单片机的定时器T0有四种工作方式:方式0、1、2、3T1只有三种方式:方式0、1、2不同的方式有不同的功能,不同的要求需选择合适的工作方式去适应。下面分别予以介绍。定时器计数器13位
方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。当TL0的低5位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位,并向CPU申请中断。1.方式0—13位方式计数脉冲输入C/T为定时/计数选择C/T=0,T0为定时器,定时信号为振荡周期12分频后的脉冲;C/T=l,T0为计数器,计数信号来自引脚T1的外部信号。
方式0为13位计数,由TL0的低5位(高3位未用)和TH0的8位组成。TL0的低5位溢出时向TH0进位,TH0溢出时,置位TCON中的TF0标志,向CPU发出中断请求。1.方式0—13位方式13位定时器T0能否启动工作,还受到了TR0、GATE和引脚信号INT0的控制。当GATE=0时,只要TR0=1就可打开控制门,使定时器工作;当GATE=1时,只有TR0=1且INT0=1,才可打开控制门。GATE,TR0,C/T的状态选择由定时器的控制寄存器TMOD,TCON中相应位状态确定,INT0则是外部引脚上的信号1.方式0—13位方式
定时器启动后,定时或计数脉冲加到TL0的低5位,从预先设置的初值(时间常数)开始不断增1。TL0计满后,向TH0进位。当TL0和TH0都计满之后,置位T0的定时器回零标志TF0,以此表明定时时间或计数次数已到,以供查询或在打开中断的条件下,可向CPU请求中断。如需进一步定时/计数,需用指令重置时间常数。1.方式0—13位方式13位
在一般的应用中,通常使GATE=0,从而由TR0的状态控制T0的开闭:TR0=1,打开T0;TR0=0,关闭T0。1.方式0—13位方式
在特殊的应用场合,例如利用定时器测量接于INT0引脚上的外部脉冲高电平的宽度时,可使GATE=1,TR0=1。当外部脉冲出现上升沿,亦即INT0由0变1电平时,启动T0定时,测量开始;一旦外部脉冲出现下降沿,亦即INT0由l变0时就关闭了T0。1.方式0—13位方式13位在方式0下,当为计数工作方式时,计数值的范围是:
1~8192(213)
当为定时工作方式时,定时时间的计算公式为:
(213-计数初值)×晶振周期×12
或(213-计数初值)×机器周期
定时器模式时有关系:N=t/Tcy计数初值计算的公式为:定时器的初值还可以采用计数个数直接取补法获得。计数模式时,计数脉冲是T0引脚上的外部脉冲。门控位GATE具有特殊的作用。当GATE=0时,经反相后使或门输出为1,此时仅由TR0控制与门的开启,与门输出1时,控制开关接通,计数开始;当GATE=1时,由外中断引脚信号控制或门的输出,此时控制与门的开启由外中断引脚信号和TR0共同控制。当TR0=1时,外中断引脚信号引脚的高电平启动计数,外中断引脚信号引脚的低电平停止计数。这种方式常用来测量外中断引脚上正脉冲的宽度。
1.方式0—13位方式例:当某单片机系统的外接晶振频率为6MHz,该系统的最小定时时间为:
[213-(213-1)]×[1/(6×106)]×12=2×10-6=2(
s)
最大定时时间为:
(213-0)×[1/(6×106)]×12=16384×10-6=16384(s)
或:最小定时单位×213=16384(s)
方式0结构特点:13位的计数器TH为8位TL为5位(1)电路结构图
定时器Tx在方式0下的内部逻辑结构定时器T0方式0的内部逻辑结构结论:计数器由TH0的全部8位和TL0的低5位构成。TL0的高3位弃之不用工作原理:当C/T#=0时,多路开关接通振荡脉冲的十二分频输出,13位计数器以此脉冲进行计数,是定时方式。C/T#=1时,多路开关接通计数引脚P3.4(T0的外部脉冲输入端),当计数脉冲发生负跳变时,计数器在原来值的基础上加1,结果回存到TH0和TL0中,这是计数方式。定时器T0方式0的内部逻辑结构结论:(续1)不管是定时还是计数方式,当TL0的低5位计数溢出时,向TH0进位;而全部13位计数溢出时,则向计数溢出标志位TF0进位(置位)。定时器T0方式0的内部逻辑结构结论:(续2)门控的作用当GATE=0时,不使用门控(内部启动方式)仅由TR0的状态来控制计数脉冲的接通与断开。TR0=1,则接通模拟开关,使计数器进行加1计数,即启动定时器工作;TR0=0,则断开,停止计数,T0不能工作。当GATE=1时,使用门控(外部启动方式)计数脉冲的通/断由TR0和外部信号INT0(INT1)
共同控制。当TR0=1,且INTx为高电平时,计数器工作;当TR0=1,且INTx为低电平时,计数器停止工作。这种情况可用于测量外部信号的脉冲宽度。(2)方式0下的应用计数模式:计数范围:1~213(8192)定时模式:定时时间:(213–计数初值)×振荡周期×12最小定时时间:(晶振频率为6MHz时)(213–(213–1))×1/6×10-6×12=2μs此时初值是8191,即只让定时器记录一个机器周期就发生溢出。最大定时时间为:(213–0)×1/6×10-6×12=16384μs此时初值是0,即让定时器从0开始记录8192个机器周期之后再发生溢出。(3)方式0的特点T0和T1都可以工作在这种方式之下;在计数溢出之后初值不能自动重新装入THi和TLi,每次溢出之后必须手动装入初值;(3)方式0的特点(续)定时器是13位的,但13位不连续TLi出低5位,THi出高8位;若初值设定成8190,因为8190=1FFEH=1,1111,1111,
1110B它的低5位装入TL0=1EH,高8位装入TH0=FFH2个定时器T0和T1此时完全独立,每个定时器都有自己的控制位和标志位(4)方式0的应用举例例:设单片机的晶振频率=6MHz,使用定时器T1工作在方式0下,产生周期为500μs的等宽正方波脉冲,并由P1.0引脚输出,试以中断方式和查询方式编程实现。分析过程:计算计数初值:要产生500μs的等宽正方波脉冲,实质就是要在P1.0引脚以250μs为间隔,交替输出高低电平即可实现。定时间应为250μs。因为系统的=6MHz,待求计数初值为X,则: (213–X)×2×10-6=250×10-6
, 求得: X=8067=1111110000011B取这个数的低5位00011B为03H放入低8位寄存器TL1,所以TL1=03H;然后再取出1111110000011B的剩余的8位11111100B,即0FCH装入高8位寄存器TH1中,所以TH1=0FCH。TMOD初始化:为把T1设定为方式0,应使M1M0=00;为实现定时功能,应使C/T#=0;为实现T1的运行控制,应使GATE=0;T0其它不用的有关位设定为0所以:TMOD应初始化为00H。起停控制由定时器控制寄存器TCON中的TR1位控制定时器的启动和停止。TR1=1,启动TR1=0,停止程序设计:中断方式程序设计查询方式程序设计中断方式的主程序:MOV TMOD,#00H ;T1方式0,非门控定时MOV TH1,#0FCH ;T1的初值高8位装入TH1MOV TL1,#03H ;T1的初值低5位装入TL1SETB EA ;允许CPU处理所有中断源的中断申 ;请,这是打开总中断的“开关”SETB ET1 ;允许定时器T1溢出中断,这相当于 ;打开定时器T1的分级“开关”SETB TR1 ;启动定时器T1开始定时,从这个时刻开始 ;定时器才开始记录机器周期的个数SJMP $ ;CPU原地踏步,等待中断的产生中断方式的中断程序:MOV TH1,#0FCH ;重新手动装入初值MOV TL1,#03HCPL P1.0 ;将P1.0引脚的电平取反之后输出RETI ;中段子程序结束,返回主程序若改用查询方式,则源程序改为:MOV TMOD,#00HMOV TH1,#0FCHMOV TL1,#03HMOV IE,#00H ;禁止中断SETB TR1LOOP: ;查询计数溢出标志,判断定时的时间是否到JB TF1,LOOP1AJMP LOOP ;未到则继续重新查询标志位TF1LOOP1:MOV TH1,#0FCH ;定时时间到,然后初值重新装入MOV TL1,#03HCLR TF1CPL P1.0 ;引脚状态取反AJMP LOOP ;处理完成定时时间到的任务之后, ;再返回LOOP处继续判断下一次溢出情况816位
与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围。当为计数工作方式时,计数值的范围是:1~65536(216)当为定时工作方式时,定时时间计算公式为:
(216-计数初值)×晶振周期×12
或(216-计数初值)×机器周期。2.方式1—16位方式计数器由TH0全部8位和TL0全部8位构成。
方式1图示方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器。计数个数与计数初值的关系为:
方式1与方式0比较方式1和方式0几乎完全相同,唯一差别是方式1是16位,而方式0是13位。此时定时器寄存器TH0(或TH1)和TL0(或TL1)是以全16位参与操作的。其余与方式0相同。3.方式2—8位自动装入时间常数方式定时器T0能否启动工作,还受到了TR0、GATE和引脚信号INT0的控制。当GATE=0时,只要TR0=1就可打开控制门,使定时器工作;当GATE=1时,只有TR0=1且INT0=1,才可打开控制门。3.方式2—8位自动装入时间常数方式
T0的结构:
TL0:8位的定时器/计数器;
TH0:8位预置寄存器,用于保存初值。
工作过程:当TL0计满溢出时,TF0置1,向CPU发出中断请求;同时引起重装操作(TH0的计数初值送到TL0),进行新一轮计数。 工作方式2是一种自动装入时间常数的8位计数器方式。3.方式2—8位自动装入时间常数方式
由于这种方式省去了用户程序中的重装指令,因而操作方便,在允许的条件下,应尽量使用这种工作方式。当然,这种方式的定时/计数范围要小于方式0和方式1,最大只能到256
。
这种自动重新加载工作方式非常适用于循环定时或循环计数应用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波特率发送器使用。方式2方式0和1的最大特点是计数溢出后,计数器为全0,不具备自动重新加载功能。方式2是自动重新加载工作方式,即可以自动加载计数初值。主要用于需要重复定时和计数的场合。在方式2下,把16位计数器分为两部分,TL为8位加1计数器,TH是预置初值寄存器,初始化时,把计数初值同时放入TL和TH中(二者内容完全相同)。(1)电路结构:图
定时/计数器0在工作方式2下的逻辑结构
方式2图示方式2为自动重装初值的8位计数方式。工作方式2特别适合于用作较精确的脉冲信号发生器。
计数个数与计数初值的关系为:
定时器方式2的逻辑结构初始化时,8位的计数初值同时装入TL0和TH0中。当TL0溢出时,置位TF0,同时把TH0中的计数初值自动加载到TL0,TL0重新计数。这种方式是8位计数方式,计数的最大值为256。这种自动加载的方式别适用于循还定时或计数应用,如产生固定宽度脉冲。此外,定时器T1工作于这种工作方式可以作串行数据通信的波特率发生器使用。(2)方式2的特点:定时器T0和T1都可以工作在这种方式之下;初值能在溢出之后自动重新装入TH1(或TH0)和TL1(或TL0);每个定时器的高8位TH0(或TH1)和低8位TL0(或TL1)单独完成各自不同的功能。低8位TL0(或TL1)作为计数器的计数结果存储寄存器高8位TH0(或TH1)作为预置初值寄存器定时器为8位,最大计数值为256(28),记录数的范围小;(3)方式2的应用--循环定时例:用T0以方式2产生100us定时,在P1.0输出周期为200μs的连续方波,设晶振=6MHz。计算初值:设初值X,据公式:(28-X)×2×10-6=100×10-6求解得: X=206=0CEH,所以: TL0=0CEH,TH0=0CEHTMOD初始化:M1=1、M0=0GATE=0C/T#=0,T1不用,所以:TMOD=02H程序设计(中断方式):主程序:MAIN: MOV TL0,#0CEHMOV TH0,#0CEHMOV TMOD,#02HSETB EASETB ET0SETB TR0SJMP $中断子程序:SERVE:CPL P1.0RETI;没有重装指令,非常方便(4)方式2的应用--循环计数应用:例:使T1以方式2计数方式进行计数,每计100次进行A的加1操作(外部计数脉冲已经准备好)。计算计数初值:
28-100=156D=9CH,所以:TH1=9CH,TL1=9CHTMOD初始化:
GATE=0,C/T#=1,M1=1,M0=0,所以:TMOD=60H程序设计(查询方式): MOV IE,#00H MOV TMOD,#60H MOV TH1,#9CH MOV TL1,#9CH SETB TR1DELY: JBC TF1,LOOP AJMP DELYLOOP: INC A AJMP DELY4.方式3—双8位方式
工作方式3只适用于定时器0。如果使定时器1为工作方式3,则定时器1将处于关闭状态。
方式3图示方式3只适用于定时/计数器T0,定时器T1处于方式3时相当于TR1=0,停止计数。
工作方式3将T0分成为两个独立的8位计数器TL0和TH0
。
4.方式3—双8位方式TL0既可用作定时器,又可用作计数器,并使用原T0的所有控制位及其定时器回零标志和中断源。
TH0只能作8位定时器。使用T1所有的资源(中断向量、中断控制ET1、PT1)和控制位(TR1、TF1)
当T0为工作方式3时,TH0和TL0分成2个独立的8位计数器。4.方式3—双8位方式这时,T1往往用作串行口波特率发生器,TH0用作定时器,TL0作为定时器或计数器。所以,方式3是为了使单片机有1个独立的定时器/计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。通常情况下,T0不运行于工作方式3,只有在T1处于工作方式2,并不要求中断的条件下才可能使用。方式3上述三种方式下,对T0和T1的设置和作用是完全相同的;在方式3下,T0和T1的设置及作用是不同的。对于定时器器T1,设置为方式3将使它保持原有的计数值,其作用如同使TR1=0,即停止计数,所以定时器1没有工作方式3,它只有前3种工作方式。对于定时器器T0,设置为方式3,将使TL0和TH0成为两个互相独立的8位计数器。(1)电路结构:图
定时器T0在方式3的逻辑结构(2)方式3的特点TL0用了T0本身的一些控制位:C/T#,GATE,TR0和TF0。它的操作情况与方式0、1雷同。TH0被规定只能工作在定时模式,对机器周期计数,它用到了定时器T1的控制位:TR1和TF1,TH0控制了T1的中断,这时定时器T1不能工作在中断方式下。(2)方式3的特点(续)方式3适用于要求增加一个额外的8位定时器的场合把T0设为方式3,TH0控制了T1的中断;而T1还可以设为方式0~2,用在任何不需要中断的场合,如此时可以让定时器T1工作于方式1,通常作为波特率发生器使用。(3)定时中断联合举例定时器控制,经常采用的方法有:查询方法优点:程序设计思路简单,只要用JNB或JB这样的条件转移指令判断溢出的标志位就可以了缺点:CPU的执行效率不高中断方法优缺点:可以提高CPU的运行效率,节省系统开销程序设计除了主程序之外还要有中断子程序中断方式程序设计思路程序设计在主程序中主要有两件事要做而且必须做,这是判断程序设计是否是采用中断方式的标志所在。这两件事是:定时器初始化中断初始化定时器初始化定时器的方式选择、工作模式、门控情况初始值设定启动定时器定时器初始化(续1)方式选择、工作模式、门控情况MOV TMOD,#XXH初始值设定MOV TH0,#XXHMOV TL0,#XXH启动定时器SETB TR0
定时器初始化(续2)初值设定方法:欲置末数法定时器的初值从0开始计数,到了欲置的结果结束计数该方法须认为判断计数是否到了欲置的末数,而且不能自动产生标志TF0(或TF1)位置1的结果,故不能将该方法应用于中断的编程方式中。欲置初数法普遍采用的一种方法,让定时器计数从某个欲置的初数开始,向上加1计数,等到了最大值之后定时器相应的硬件自动将标志TF0(或TF1)位置1,以供程序查询或直接产生中断。中断初始化主要是在主程序中使能2级中断开关,一个是总的中断开关EA,另一个是定时器中断开关ET0(或ET1)。具体程序设计可以用:字节操作命令直接用位操作命令中断初始化的操作方法:字节操作命令:语句:MOV IE,#XXH简单,一条指令即可但看起来设置情况不明显,五个中断源的使能情况并非一目了然。位操作命令:语句: SETB EA SETB ET0(或ET1)需要用两个位操作的命令打开两级开关,但程序一目了然,所以这种形式普遍被采用。初始化编程格式: MOV TMOD,#方式字 ;选择方式 MOV THx,#XH ;装入Tx时间常数 MOV TLx,#XL (SETB EA ) ;开Tx中断 (SETB ETx ) SETB TRx
;启动Tx定时器定时器初始化编程:使用定时器工作之前,先写入控制寄存器,确定好定时器工作方式按实际需要选择定时/计数功能按时间或计数长度选择方式计算时间常数定时器使用编程格式溢出处理编程格式:查询方式:先查询定时器溢出标志,再进行溢出处理。
… ;定时器初始化
WAIT:JBC TFx
,PT ;检测溢出标志
SJMP WAIT PT: MOV THx
,#XH ;重装时间常数
MOV TLx
,#XL
… ;溢出处理
SJMP WAIT中断方式:初始化后执行其他任务,中断服务程序处理溢出。
ORG 0000H LJMP MAIN ORG 000BH(001BH) ;Tx中断入口
LJMP PTS MAIN:… ;初始化后执行其他程序
PTS: … ;溢出中断服务程序
MOV THx,#XH ;重装时间常数
MOV TLx,#XL RETI应用举例例1:由P1.0输出方波信号,周期为2ms,设fosc=12MHz。2ms【解】:每隔1ms改变一次P1.0的输出状态。用T0,非门控,方式1,定时。计算时间常数:X=216-t/T=216-1000/1=FC18H查询方式:START: MOV TMOD,# MOV TL0,# MOV TH0,# SETB TR0LOOP: JBC TF0,PTF0 SJMP LOOPPTF0: CPL P1.0 MOV TL0,# MOV TH0,# SJMP LOOP中断方式
ORG 0100H MAIN: MOV SP,#60H MOV TMOD,# MOV TL0,# MOV TH0,#
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (新教材)2026人教版三年级下册数学 3.1 多边形 教学课件
- 2026年劳务合同和聘用合同(1篇)
- 2025 网络基础中教育网络的网络教育公平性网络保障案例课件
- 刑法案例分析中犯罪构成要件分析
- 2025 高中信息技术数据与计算之算法的关键路径算法课件
- 高危药品管理策略
- 人力资源开发与管理真题试卷及答案
- 2025 高中信息技术数据与计算之数据在电商用户复购率提升策略中的应用课件
- 2025 高中信息技术数据与计算之数据可视化的流图设计课件
- 2026年北斗三号基准站网观测环境评估与选址规范
- 2026年安徽省高职单招职业适应性测试考试题库带答案详解
- 湖北中医药大学-医学-护理105400专业考研复习题库大全-上(500题)
- 种子类中药课件
- (完整word)a3标准规范试卷模板
- 说明书hid500系列变频调速器使用说明书s1.1(1)
- 软体家具、沙发质量检验及工艺
- 建设项目工程造价管理办法
- 测量管理体系标准宣贯ppt课件
- 前期手续横道图
- 计算机各种进制转换练习题(附答案)参考模板
- 东北地区的产业分布
评论
0/150
提交评论