/****************************中断子程序_定时***************************************/
void Timer0() interrupt 1
{
static Count1=0,Count2=0; //静态变量计数器1
Count1++; //每次中断计数器加1
Count2++; //每次中断计数器加1
if(Count1>=12) //如果计数器1超过12
{
time_led_sansuo=!time_led_sansuo;
Count1=0;
}
if(time_led_sansuo)
led_dis &= 0xbf;
else
led_dis |= 0x40;
if(Count2>=100) //如果计数器2超过100
{
time_run--;
if(time_run==0)
{
ET0=0; //关定时器0
Time_on=2;
EX0=1; //开外部0中断;
}
Count2=0; //计数器清零
}
TH0=0x28; //重置定时初值
TL0=0x4b;
} 我也觉得这个跟写程序的人的习惯有关吧 硬件程序的设计一是依靠片内资源,二就是设计者的编程习惯,在数字电路中'定时器的本质就是对时钟信号进行计数到指定值然后>进入对应的中断服务程序。所以没有必要特意区分二者区别,在实际案例中可以主要是否有其他子功能使用定时器,为了避免冲突二而采用计数器作为定时元件?
页:
1
[2]