通过延迟函数实现轮流闪烁

简介: 通过延迟函数实现轮流闪烁宏定义初始化引脚 IO延迟函数执行策略一执行策略二


宏定义



#include<iocc2530.h>
#define LED1 P1_5
#define LED2 P1_0
#define LED3 P1_3
#define LED4 P1_4
#define uchar unsigned char
#define uint unsigned cint


初始化引脚 IO



void Initial_LED(void)
{
P1SEL &= ~0x39;//功能寄存器 :0为普通IO口,1为第二功能–外设
P1DIR  |= 0x39;//方向寄存器 :0为输入 , 1为输出
P1&=~0x39;//将四个灯熄灭
}


延迟函数



void Delay(uint time)
{
  uint i;
  uchar j;
  for(i=0;i<time;i++)
    for(j=0;j<240;j++)
    {
      asm("NOP");//asm是内嵌汇编,nop是空操作,执行一个指令周期
      asm("NOP");
      asm("NOP");  
    }
}


执行策略一



main()
{
  Initial_LED();
  while(1)
  {
    LED1=1;//第一盏灯亮
    LED2=LED3=LED4=0;//其余三盏灯灭
    Delay(12000);//延迟1.2s
     LED2=1;//第二盏灯亮
    LED1=LED3=LED4=0;
    Delay(12000);
     LED3=1;//第三盏灯亮
    LED2=LED1=LED4=0;
    Delay(12000);
     LED4=1;//第四盏灯亮
    LED2=LED3=LED1=0;
    Delay(12000);
     }
  }


执行策略二



/************************也可采用下面一种方法************************/
   main()
{
         uchar i;
          uchar stat[]={0x01,0x08,0x10,0x20};
          Initial_LED();
          while(1)
      {
              for(i=0;i<4;i++)
              {
              P1=stat[i];
              Delay(12000);
            }
          if (i >3)
          i = 0;
      }
}


相关文章
|
Linux 调度
按键消抖的两种方法--中断延迟工作与定时器
按键消抖的两种方法--中断延迟工作与定时器
643 0
|
3月前
51开发板同一程序实现数码管实现时钟显示、秒表计时。通过独立按键选择模式(时钟/秒表)、时间的重定义
51开发板同一程序实现数码管实现时钟显示、秒表计时。通过独立按键选择模式(时钟/秒表)、时间的重定义
107 3
|
3月前
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
227 1
|
2月前
|
Linux C语言
C语言 多进程编程(四)定时器信号和子进程退出信号
本文详细介绍了Linux系统中的定时器信号及其相关函数。首先,文章解释了`SIGALRM`信号的作用及应用场景,包括计时器、超时重试和定时任务等。接着介绍了`alarm()`函数,展示了如何设置定时器以及其局限性。随后探讨了`setitimer()`函数,比较了它与`alarm()`的不同之处,包括定时器类型、精度和支持的定时器数量等方面。最后,文章讲解了子进程退出时如何利用`SIGCHLD`信号,提供了示例代码展示如何处理子进程退出信号,避免僵尸进程问题。
|
调度
TM4C123库函数学习(2)--- LED闪烁,滴答定时器精准延时
TM4C123库函数学习(2)--- LED闪烁,滴答定时器精准延时
358 0
【单片机期中测试】3.按键控制流水灯循环
【单片机期中测试】3.按键控制流水灯循环
147 0
|
芯片
STM32窗口看门狗和独立看门狗的区别,看门狗介绍及代码演示
STM32窗口看门狗和独立看门狗的区别,看门狗介绍及代码演示
202 0
|
IDE 开发工具
RA2E1两个灯交替闪烁
RA2E1两个灯交替闪烁
154 0
RA2E1两个灯交替闪烁
蓝桥杯使用定时器代替延时控制按键
蓝桥杯使用定时器代替延时控制按键
65 0
单片机:外部中断(通过K3按下产生下降沿触发,模拟程序运行时突然外部中断的场景)
单片机:外部中断(通过K3按下产生下降沿触发,模拟程序运行时突然外部中断的场景)
175 0
单片机:外部中断(通过K3按下产生下降沿触发,模拟程序运行时突然外部中断的场景)