定时器+计数器

定时器(Timer)+计数器(Counter):=>{Int0Int1=>\begin{cases} Int0\\ Int1 \end{cases}=>{Int0Int1
晶振频率:f=12MHZ/11.0592MHZf=12MHZ/11.0592MHZf=12MHZ/11.0592MHZ
计数频率:fT=f/12f_T=f/12fT=f/12  (12分频)(12分频)(12)</font3
机器周期:T=1/fTT=1/f_TT=1/fT  (12分频)(12分频)(12)



寄存器配置:TMOD(工作方式寄存器)&amp;TCON(控制寄存器)TMOD(工作方式寄存器)\&amp;TCON(控制寄存器)TMOD()&TCON
工作模式:T/CT {/} CT/C
工作方式:4种(方式0、方式1、方式2、方式3)4种(方式0、方式1、方式2、方式3)40123
在这里插入图片描述
TMOD:用⃗于选择定时器/计数器的工作方式与工作模式(不可位寻址)\vec 用于选择定时器/计数器的工作方式与工作模式(不可位寻址)/


(1)GATE−−−门控位(1)GATE---门控位1GATE
GATE=0时,仅由TRX(X=0,1)=1启动定时器/计数器
GATE=1时,由TRX(X=0,1)=1和外部中断引脚上的高电平共同启动定时器/计数器(一般默认使用GATE=0)
(2)M1、M0−−−工作方式选择位(2)M_1、M_0---工作方式选择位2M1M0
在这里插入图片描述
(3)C/T−−−计数器模式和定时器模式选择位(3)C/T---计数器模式和定时器模式选择位3C/T
C/T=0时,定时器模式
C/T=1时,计数器模式,计数器对外部输入引脚T0(p3.4)或T1(p3.5)的外部脉冲计数。
TCON:低四位与外部中断有关(可位寻址)低四位与外部中断有关(可位寻址)

TF1、TF0—T1、T0计数溢出标志位
当计数器计数溢出时,该位置置1。使用查询方式时,此位作为状态位供cpu查询,ps:查询该位有效后以软件方法清零。使用中断方式时,此位作为中断标志位,进入中断服务程序后硬件自动清零。
TR1、TR0—计数运行控制位
TR1位/TR0位=1时,启动定时器/计数器,但是还与GATE位的状态有关。
TR1位/TR0位=0时,停止定时器/计数器。


写程序的流程
1、开头定义 void Timer0_Init()
2、写void Timer0_Init() 里面的函数{定义TMOD、算出初值并且给TH0和TL0赋值打开定时器中断允许开关(ET0)、打开总中断开关(EA)、打开定时器(TR0)\begin{cases}定义TMOD、算出初值并且给TH0和TL0赋值\\ 打开定时器中断允许开关(ET0)、打开总中断开关(EA)、打开定时器 (TR0)\end{cases}{TMODTH0TL0ET0(EA)(TR0)
3、写出void Timer0()interrupt 1函数{赋值静态变量TH0/TL0赋值if条件语句来增加次数(注意给i归零,LED= LED)\begin{cases} 赋值静态变量\\ TH0/TL0赋值 \\ if条件语句来增加次数(注意给i归零,LED=~LED) \end{cases}TH0/TL0ifiLED= LED
4、主程序引用Timer0_Init();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值