include “REG52.H”

define const_time_level 200

void initial_myself();
void initial_peripheral();
void delay_long(unsigned int uiDelaylong);
void led_flicker();
void T0_time(); //定时中断函数

sbit led_dr=P3^5;

unsigned char ucLedStep=0; //步骤变量
unsigned int uiTimeCnt=0; //统计定时中断次数的延时计数器

void main()
{
initial_myself();
delay_long(100);
initial_peripheral();
while(1)
{
led_flicker();
}

}

void led_flicker() ////第三区 LED闪烁应用程序
{

switch(ucLedStep)
{
case 0:

  • uiTimeCnt累加定时中断的次数,每一次定时中断它都会在中断函数里自加一。
  • 只有当它的次数大于或等于设定上限const_time_level时,
  • 才会去改变LED灯的状态,否则CPU退出led_flicker()任务,继续快速扫描其他的任务,
  • 这样的程序结构就可以达到多任务并行处理的目的。这就是鸿哥在所有开发项目中的核心框架。
    */