定时器怎么调时间 定时器使用方法?
定时器使用方法?
第一步:设置特殊功能寄存器TMOD,配置工作模式。
步骤2:设置计数寄存器TH0和TL0的初始值。
步骤3:设置TCON,并通过将TR0设置为1让计时器开始计数。
步骤4:判断TCON寄存器的TF0位,监控定时器溢出。
在写程序之前,我们应该学习如何用计时器计算时间。我们的晶振是11.0592M,时钟周期是1/11059200,机器周期是12/11059200。如果要计时20毫秒,则为0.02秒..得到0.02秒需要x个机器周期。让 s计算x*12/110592000.02,得到x 18432。16位定时器的溢出值是65536(因为65535加1就是溢出),所以我们可以这样,先给TH0和TL0一个初始值,让它们在18432个机器周期后刚好达到65536,也就是溢出。溢出后通过检测TF0就可以知道,正好是0.02秒。所以初始值y 65536-18432 47104,转换成十六进制,就是0xB800,也就是TH0 0xB8,TL0 0x00。
这样,我们做出了0.02秒的计时。细心的同学会发现,如果直接给初始值一个0x0000的值,直到65536溢出,最大定时器计时值大概是71ms,那么如果想计时更长的时间,应该怎么做呢?从你的小学开始学。过多的逻辑和多重关系可以解决这个问题。
好吧,让我们 让我们用程序来实现这个功能。
# Including
Sbit leads P0^0.
P1^0 address
Sbit address 1
Sbit address 2 P1^2
Sbit address 3 P1^3
sbit ENLED P1^4
void main(){
Unsigned char cnt 0 //定义一个计数变量来记录t 0溢出的次数。
ENLED 0 //使能U3,选择独立LED。
ADDR3 1
ADDR2 1
Address 1 1
ADDR0 0
TMOD 0x01 //将T0设置为模式1。
TH0 0xB8 //将初始值0xB800分配给T0。
TL0 0x00
TR0 1 //开始T0
while (1){
If (TF0 1){ //判断T0是否溢出。
TF0 0 //T0溢出后,清除中断标志。
TH0 0xB8 //,并重新分配初始值。
TL0 0x00
计数//计数值增加1。
if(CNT)50 {//判断T0是否溢出50次。
cnt 0 //达到50次后,计数值清零。
LED ~LED //LED取反:0 - 》1、1 - 》0
}
}
}
}
笔记写在程序里。分析前面几章的内容就不难理解了。这个程序的结果是开发板最右边的灯亮一秒,灭一秒,也就是以0.5Hz的频率闪烁。
小型计时器怎么调时间?
●打开时钟APP,点击右下角【计时器】,进入计时器界面;
●上下滑动时间选项选择计时时间。
设置好定时器后,点击右下角的【铃声】。
选择提醒铃,然后返回定时器界面。
点击底部的[开始]按钮进入定时器。
点击左下角的【刷新】按钮,重置计时。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。