标题: 51单片机 24M 晶振,以上两个 如果改成定时1微妙,都需要改成哪个参数呢? [打印本页]

作者: Maca-1    时间: 2018-1-5 17:33
标题: 51单片机 24M 晶振,以上两个 如果改成定时1微妙,都需要改成哪个参数呢?
void Timer0Init()                //10微秒@24.000MHz
{
        AUXR |= 0x80;                //定时器时钟1T模式
        TMOD &= 0xF0;                //设置定时器模式
        TMOD |= 0x01;                //设置定时器模式
        TH0 = 0xFF;                //设置定时初值
        TL0 = 0x10;                //设置定时初值
        TF0 = 0;                //清除TF0标志
        TR0 = 1;                //定时器0开始计时
        ET0 = 1;
}

void Timer2Init() //1毫秒@24.000MHz
{
        AUXR &= 0xFB;                //定时器时钟12T模式
        T2H = 0xF8;                  //设置定时初值
        T2L = 0x30;                  //设置定时初值
        IE2 |= 0x04;    //开定时器2中断
        AUXR |= 0x10;                //定时器2开始计时
}
51单片机 24M 晶振,以上两个 如果改成定时1微妙,都需要改成哪个参数呢?求大神指教
作者: yzwzfyz    时间: 2018-1-5 19:07
这么简单是事,为何就不能去看看书,弄懂它呢?
作者: 苏听到    时间: 2018-1-5 19:40
1T模式1个时钟周期等于一个指令周期,定时器计一个数时间为1/24M秒,12T模式12个时钟周期等于一个指令周期,定时器计一个数时间为1/12M秒。
定时1us,定时器计24个数即可。TH0=0XFF,TL0=0XE8
定时1us,定时器计2个数即可。T2H=0XFF,T2L=0XFE
作者: wulin    时间: 2018-1-5 20:05
void Timer0Init(void)                //1微秒@24.000MHz
{
        AUXR |= 0x80;                //定时器时钟1T模式
        TMOD &= 0xF0;                //设置定时器模式
        TMOD |= 0x01;                //设置定时器模式
        TL0 = 0xE8;                //设置定时初值
        TH0 = 0xFF;                //设置定时初值
        TF0 = 0;                //清除TF0标志
        TR0 = 1;                //定时器0开始计时
}
void Timer2Init(void)                //1微秒@24.000MHz
{
        AUXR &= 0xFB;                //定时器时钟12T模式
        T2L = 0xFE;                //设置定时初值
        T2H = 0xFF;                //设置定时初值
        IE2 |= 0x04;              //开定时器2中断
        AUXR |= 0x10;                //定时器2开始计时
}

作者: Maca-1    时间: 2018-1-5 21:30
谢谢各位大侠指导,努力中!
作者: luoluoluo136    时间: 2018-1-6 00:07
这个,你中断里运行的时间都差不多1微秒了,单片机就没时间做别的事了,1微妙的中断有何意义?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1