bh7nly 发表于 2023-10-29 21:11:53

STC8H8K64U-关于timer0定时器的问题-比较简单初级的问题 | 已解决

/**************************主函数*****************************************************/

void main(void)
{
      
config_main();                                                //初始化函数                        
      while(1)
      {
                if(TM0_P==1)
                {
                        TM0_P=0;
                        P2 = 0X00;
                }
      }
}


/**************************初始化函数*****************************************************/

void config_main(void)                        //初始化函数
{
      timer0_Init();
      P_SW2 |= 0x80;                                          //使能访问XFR
      led_Init();
      
}
/**************************LED初始化函数*****************************************************/

void led_Init(void)                        //LED初始化
{
      P2M1=0X00; P2M0=0X00;
}


-------------------------------------------------------------------------------------------------

unsigned char TM0_COUNT=0;
unsigned int TM0_P=0;



void timer0_Init(void)                                        //timer0初始化
{
                        AUXR |=0X80;                        //定时器时钟1T模式
                        TMOD |=0x00;                        //设置定时器模式
                        TL0 = 0xCD;                              //设置定时初始值
                        TH0 = 0xD4;                              //设置定时初始值
                        TF0 = 0;                              //清除TF0标志
                        TR0 = 1;                              //定时器0开始计时
                        ET0      = 1;
                        EA=1;

}

-------------------------------------------------------------------------------------------------


void TM0_Isr() interrupt 1
{

      TM0_COUNT++;
                if(TM0_COUNT== 500)
                {
                        TM0_COUNT=0;
                        TM0_P=1;
                }
}


-----------------------------------------------------------------------------------------------------------------------------
说明:
1.1T模式,16位自动重装

2.在定时器内计数,每500毫秒,点亮LED灯

怎么调都调不出来,想问问大神,我错在什么地方了。
给思路也可以。谢谢


bh7nly 发表于 2023-10-29 21:45:30

在主函数P2=0x00;这里错了。

复制错了,取反就好了

星晨 发表于 2023-11-12 21:43:44

定时器中断里,500ms到了LED灯取反就可以了
页: [1]
查看完整版本: STC8H8K64U-关于timer0定时器的问题-比较简单初级的问题 | 已解决