找回密码
 立即注册
查看: 731|回复: 2

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

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-05-01 11:55:28

2

主题

11

回帖

714

积分

高级会员

积分
714
发表于 2023-10-29 21:11:53 | 显示全部楼层 |阅读模式
/**************************主函数*****************************************************/

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灯

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


回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-05-01 11:55:28

2

主题

11

回帖

714

积分

高级会员

积分
714
发表于 2023-10-29 21:45:30 | 显示全部楼层
在主函数  P2=0x00;这里错了。

复制错了,取反就好了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:8
  • 最近打卡:2024-06-05 12:33:49

3

主题

14

回帖

159

积分

注册会员

积分
159
发表于 2023-11-12 21:43:44 | 显示全部楼层
定时器中断里,500ms到了LED灯取反就可以了
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 01:49 , Processed in 0.111646 second(s), 60 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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