欢迎来到天天文库
浏览记录
ID:55621373
大小:154.00 KB
页数:37页
时间:2020-05-21
《五、8051定时器计数器的C编程.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、第5章8051定时器/计数器的C编程定时/计数器----定时/计数器的定时和计数功能、定时器/计数器的控制寄存器、定时器/计数器的工作方式、定时/计数器用作外部中断扩展、定时中断联合举例。本章主要介绍51系列单片机定时器/计数器问题,本章将介绍以下具体内容:一、定时/计数器的定时和计数功能在TMOD中,各有一个控制位(C/T),分别用于控制定时/计数器T0和T1是工作在定时器方式还是计数器方式。1.定时功能----计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值加1。所以,计数频率是振荡频率的1/12。2.计数功能----计数脉冲来自相应的外部输
2、入引脚,T0为P3.4,T1为P3.5。当T0或T1脚上负跳变时计数值加1。定时/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1)。二、定时器/计数器的控制寄存器与定时器/计数器有关的控制寄存器有:1.定时器控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志触发方式选择启动定时/计数器0低电平1下降沿0停止1启动(软件设置)2.工作方式控制寄存器TMODT1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE—门控位C/T—计数
3、/定时选择M1M0—工作方式选择3.计数寄存器TH和TLT/C是16位的,计数寄存器由TH高8位和TL低8位构成。在SFR中,对应T/C0为TH0和TL0,对应T/C1为TH1和TL1。定时器/计数器的初始值通过TH1/TH0和TL1/TL0设置。计数脉冲输入三、定时器/计数器的工作方式定时器/计数器共有四种工作方式1.方式0—13位方式TF0T0TR0GATEINT01≥1&C/T=1振荡器1/12C/T=0TL0TH08位低5位13位计数器定时器计数器2.方式1—16位方式振荡器1/12TL0TH0TF01≥1&T0TR0GATEINT0C/T=
4、0C/T=18位8位16位计数器3.方式2—8位自动装入时间常数方式TF0振荡器1/121≥1&T0TR0GATEINT0C/T=0C/T=1TL0TH04.方式3—2个8位方式仅T0可以工作在方式3—此时T0分成2个独立的计数器—TL0和TH0。TL0可作定时器/计数器,用原来T0的控制信号(TR0、TF0);TH0只能作定时器用,用原来T1的控制信号(TR1、TF1)。只有将T/C1用作串行口的波特率发生器时,T/C0才工作在方式3,以便增加一个定时器。四、定时器/计数器的初始化1.初始化步骤(1)确定T/C的工作方式,编程TMOD寄存器;(2)
5、计算T/C中的计数初值,并装载到THi和TLi;(3)开T/C中断和CPU中断,编程IE中的ETi和EA位;(4)启动T/C,编程TCON中的TRi位。可编程器件在使用前需要进行初始化:2.计数初值的计算(1)定时器的计数初值若fosc=6MHz,一个机器周期为12/fosc=2us。则:方式013位定时器最大定时间隔=213×2us=16.384ms;方式116位定时器最大定时间隔=216×2us=131.072ms;方式28位定时器最大定时间隔=28×2us=512us;若T/C工作在定时器方式1,要求定时1ms,求计数初值。需计数次数:因此,T
6、H、TL可置-500。(2)计数器的计数初值方式013位计数器的满计数值=213=8192;方式116位计数器的满计数值=216=65536;方式28位计数器的满计数值=28=256;若T/C工作在计数器方式2,要求计数10个脉冲的计数初值。需计数次数:因此,TH=TL=-10。例题1:设晶振频率fOSC=6MHz,使用定时器1以方式1产生周期为500μs的方波脉冲,并由P1.0输出。试以中断方式实现。8051P1.0500μs五、应用举例①TMOD确定T1控制T0控制XXXX1000M0M1C/TGATEM0M1C/TGATE控制字TMOD=0x1
7、0;要产生500μs的方波脉冲,只需在P1.0端以250μs为间隔,交替输出高低电平即可实现。为此,定时间应为250μs。使用6MHz晶振,则一个机器周期为2μs,则:250us/2us=125。TH1=-(125/256),TL1=-(125%256)②计算计数器的计数初值;或者,设待求计数初值为X,(216–X)×2×10-6=250×10-6即216–X=125X=216-125=10000H-7DH=0FF83H所以,初值为:TH1=0FFH,TL1=83H③采用中断方式:编程时打开全局和局部中断。EA=1;ET1=1;④由定时器控制寄存器T
8、CON中的TR1位控制定时器的启动和停止。TR1=1;//启动;TR1=0;//停止。程序设计主程序:mai
此文档下载收益归作者所有