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灯
怎么调都调不出来,想问问大神,我错在什么地方了。
给思路也可以。谢谢
在主函数P2=0x00;这里错了。
复制错了,取反就好了 定时器中断里,500ms到了LED灯取反就可以了
页:
[1]