LED闪烁程序代码如下:
void LED_BRIGHT(void) //10MS_扫描一次.
{
if(LED1_COUNT > 0x00)
{
LED1_TIMES++;
if(LED1_TIMES < 6)
LED1_0; // 灭60ms
else
LED1_1; //两130ms
if(LED1_TIMES > 20)
{
LED1_TIMES = 0x00;
LED1_COUNT--; //闪亮次数自减
}
}
}
**************************************************************************************
中断定时计数LED闪烁扫描程序代码如下:
#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
LED_BRIGHT(); //扫描LED
}
*******************************************************************************
程序中闪烁次数控制变量:LED1_COUNT=2
*********************************************************************************
以上三段程序的巧妙结合运用方便了LED闪烁次数的控制,此种程序设计方法思路是通过中断定时的方法,将LED闪烁程序放在中断中进行扫描监测,此种用法方便程序中LED灯闪烁程序的放置,中断定时服务函数通过每次定时扫描LED闪烁程序,检查LED1_COUNT参数值得变化,定时执行LED灯的亮灭,而其他程序中则不需要再调用LED闪烁函数,只需要设置参数LED1_COUNT的数值,因此非常方便程序的可读性
本文介绍了一种基于中断定时计数的LED闪烁程序设计方法。该方法通过将LED闪烁程序置于中断服务函数中实现扫描监测,方便了LED闪烁次数的控制。仅需设置参数LED1_COUNT的值即可改变闪烁次数。
2183

被折叠的 条评论
为什么被折叠?



