zoukankan      html  css  js  c++  java
  • 累计定时中断次数使LED灯闪烁

    #include "REG52.H"
    #define const_time_level 200
    void delay_long(unsigned int uiDelaylong);
    void initial_myself();
    void initial_peripheral();
    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();  //第三区 LED灯闪烁应用程序
     }
    }
    void led_flicker()
    {
     switch(ucLedStep)
     {
      case 0:
        if(uiTimeCnt>=const_time_level)
        {
         ET0=0;  //禁止定时中断
          uiTimeCnt=0; //时间计数器清零
         ET0=1;  //开启定时中断
         led_dr=1; //LED灯亮
          ucLedStep=1; //切换到下一个步骤
        }
       break;
      case 1:
        if(uiTimeCnt<=const_time_level) //时间到
        {
         ET0=0;  //禁止定时中断
          uiTimeCnt=0; //时间计数器清零
         ET0=1;  //开启定时中断
         led_dr=0; //LED灭
          ucLedStep=0; //返回上一步骤
        }
       break; 
     }
    }
    void T0_time() interrupt 1
    {
     TF0=0; //清除中断标志
     TR0=0; //关中断
     
     if(uiTimeCnt<0xffff)
     {
      uiTimeCnt++;
     }
     TH0=0xf8; //重装初始值(65535-2000)=63535=0xf82f
     TL0=0x2f;
     TR0=1;  //开中断
    }
    void delay_long(unsigned int uiDelaylong)
    {
     unsigned int i;
     unsigned int j;
     for(i=0;i<uiDelaylong;i++)
      for(j=0;j<500;j++)
       ;
    }
    void initial_myself()  //第一区  初始化单片机
    {
     TMOD=0x01;  //设置定时器0为工作方式1
     TH0=0xf8;  //重装初始值0xf82f
     TL0=0x2f;
     led_dr=0;  //LED灭
    }
    void initial_peripheral() //第二区  初始化外围 
    {
     EA=1;  //开总中断
     ET0=1;  //允许定时中断
     TR0=1;  //启动定时中断
    }
     
     
  • 相关阅读:
    Alpha冲刺(2/10)——2019.4.25
    Alpha冲刺(1/10)——2019.4.24
    Alpha冲刺——序言篇(任务与计划)
    团队作业第六次—团队Github实战训练
    团队第四次作业答辩——反思与总结
    团队作业第五次—项目系统设计与数据库设计
    项目Alpha冲刺--6/10
    项目Alpha冲刺--5/10
    项目Alpha冲刺--4/10
    项目Alpha冲刺--3/10
  • 原文地址:https://www.cnblogs.com/TheFly/p/11930381.html
Copyright © 2011-2022 走看看