weixin_72324816 2023-08-03 17:29 采纳率: 44.4%
浏览 42

STC定时器2中断问题


void Timer2_Init(void)        //5微秒@12.000MHz
{
    AUXR &= 0xFB;            //定时器时钟12T模式
    T2L = 0xFB;                //设置定时初始值
    T2H = 0xFF;                //设置定时初始值
    AUXR |= 0x10;            //定时器2开始计时
    IE2|=0x04;                               //使能定时器2中断
}

这个定时器不是传统51定时器。没有EA总中断TR0计数等直接位控制。那我要按键控制这个定时器2中断的关和开怎么配置了。
if(k1==0)
Delay(10);
if((k1==0)
IE2=0x04;
else
IE2=0x00;

  • 写回答

2条回答 默认 最新

  • 不良使 新星创作者: python技术领域 2023-08-03 18:21
    关注
    
    #include <intrins.h>
    sbit k1 = P1^0; 
    void Delay(unsigned char n)
    {
        while (n--)
        {
            _nop_();
            _nop_();
        }
    }
    void Timer2_Init(void)  ////5微秒@12.000MHz
    {
        AUXR &= ~0x02; // 定时器2时钟12T模式
        T2L = 0xFB;   // 设置定时初始值
        T2H = 0xFF;   // 设置定时初始值
        AUXR |= 0x10; // 定时器2开始计时
        IE2 |= 0x04;  // 使能定时器2中断
    }
    void main(void)
    {
        Timer2_Init();
        while (1)
        {
            if (k1 == 0)
            {
                Delay(10);
                if (k1 == 0)
                    IE2 = 0x04;
            }
            else
            {
                IE2 = 0x00;
            }
        }
    }
    

    看看这个对你有没有帮助

    评论

报告相同问题?

问题事件

  • 创建了问题 8月3日