找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2763|回复: 3
收起左侧

帮忙解释个函数吧,多谢

[复制链接]
ID:137662 发表于 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.谁能讲一下定时器的核心思想啊?
多谢多谢

回复

使用道具 举报

ID:137239 发表于 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,存放计数值的地方,达到设定的模值时,会自动清零;
  我们在用定时器中断的时候,先设置好定时器的工作模式,设定好模值,打开定时器开关,还有优先级。当中断来了之后,会暂停正在执行的程序,先执行中断服务程序,执行完中断服务程序后,再回到刚刚暂停的地方,接着往下执行。

回复

使用道具 举报

ID:137706 发表于 2016-8-27 14:38 | 显示全部楼层
12T是就是12分频
在用定时器中断的时候,先设置工作模式,装初值,打开定时器开关,还有优先级。当中断来了之后,会暂停正在执行的程序,先执行中断服务程序,执行完中断服务程序后,再回到刚刚暂停的地方,接着往下执行。
回复

使用道具 举报

ID:137717 发表于 2016-8-27 17:18 | 显示全部楼层

12T是就是12分频
在用定时器中断的时候,先设置工作模式,装初值,打开定时器开关,还有优先级。当中断来了之后,会暂停正在执行的程序,先执行中断服务程序,执行完中断服务程序后,再回到刚刚暂停的地方,接着往下执行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表