标题:
帮忙解释个函数吧,多谢
[打印本页]
作者:
蜗牛的贝壳
时间:
2016-8-26 16:58
标题:
帮忙解释个函数吧,多谢
void Timer0Init(void) //10毫秒@24.000MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0xE0; //设置定时初值
TH0 = 0xB1; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0=1;
EA=1;
}
1.12T模式是什么模式?
2.AUXR&=0x7f又是什么意思?
3.谁能讲一下定时器的核心思想啊?
多谢多谢
作者:
STC89C51
时间:
2016-8-26 19:26
1.12T是就是12分频,STC89系列的速度本来就是12T,所以不用设置。
2.AUXR是一个辅助寄存器,AUXR&=0x7f就是对AUXR进行位操作,相当于赋值,在STC12系列单片机里面AUXR&=0x7f就是设置为12分频。
3.以定时器T0为例,有关的特殊功能寄存器有:
IE(中断允许寄存器),位可寻址,所以直接写位名称就可以了,与T0有关的是ET0,相当于定时器T0的电源,ET0=1时,接通电源。此外,还有一位是EA,相当于所有中断的总开关,EA=1时,总开关打开;
IP(中断优先级寄存器),位可寻址,与T0有关的是PT0,当PT0=1时,T0优先级最高,多个中断同时来的话,会优先处理T0;
TMOD(模式寄存器),位不可寻址,所以使用的时候,我们直接对它进行位操作,设置定时器的工作模式;
TCON(控制寄存器),位可寻址,与T0有关的是TR0、TF0,相当于T0的开关,TR0=1时,定时器T0打开。TF0是中断请求标志位,当计数器达到设定的模值时,系统自动将TF0位置一,并向CPU提出中断申请,CPU响应相应的中断请求,并进入中断服务程序中后,硬件电路自动将TF0位清0;
还有就是定时器里面的计数器,TH0和TL0,存放计数值的地方,达到设定的模值时,会自动清零;
我们在用定时器中断的时候,先设置好定时器的工作模式,设定好模值,打开定时器开关,还有优先级。当中断来了之后,会暂停正在执行的程序,先执行中断服务程序,执行完中断服务程序后,再回到刚刚暂停的地方,接着往下执行。
作者:
LICF
时间:
2016-8-27 14:38
12T是就是12分频
在用定时器中断的时候,先设置工作模式,装初值,打开定时器开关,还有优先级。当中断来了之后,会暂停正在执行的程序,先执行中断服务程序,执行完中断服务程序后,再回到刚刚暂停的地方,接着往下执行。
作者:
zhcccc
时间:
2016-8-27 17:18
12T是就是12分频
在用定时器中断的时候,先设置工作模式,装初值,打开定时器开关,还有优先级。当中断来了之后,会暂停正在执行的程序,先执行中断服务程序,执行完中断服务程序后,再回到刚刚暂停的地方,接着往下执行。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1