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

简介: 通过延迟函数实现轮流闪烁宏定义初始化引脚 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;
      }
}


相关文章
|
8月前
|
Java 容器 Spring
什么是Spring IOC 和DI ?
IOC : 控制翻转 , 它把传统上由程序代码直接操控的对象的调用权交给容 器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转 移,从程序代码本身转移到了外部容器。 DI : 依赖注入,在我们创建对象的过程中,把对象依赖的属性注入到我们的类中。
|
11月前
|
人工智能 分布式计算 数据处理
云产品评测:MaxFrame — 分布式Python计算服务的最佳实践与体验
阿里云推出的MaxFrame是一款高性能分布式计算平台,专为大规模数据处理和AI应用设计。它提供了强大的Python编程接口,支持分布式Pandas操作,显著提升数据处理速度(3-5倍)。MaxFrame在大语言模型数据处理中表现出色,具备高效内存管理和任务调度能力。然而,在开通流程、API文档及功能集成度方面仍有改进空间。总体而言,MaxFrame在易用性和计算效率上具有明显优势,但在开放性和社区支持方面有待加强。
173 9
|
数据采集 Web App开发 数据安全/隐私保护
User-Agent在C++ HTTP请求中的作用
User-Agent在C++ HTTP请求中的作用
|
Java Android开发
Java Socket编程示例:服务器开启在8080端口监听,接收客户端连接并打印消息。
【6月更文挑战第23天】 Java Socket编程示例:服务器开启在8080端口监听,接收客户端连接并打印消息。客户端连接服务器,发送&quot;Hello, Server!&quot;后关闭。注意Android中需避免主线程进行网络操作。
297 4
|
存储 安全 程序员
个人关于阿里云存储使用的心得体会
众所周知,阿里云存储是国内领先的云存储服务提供商,其提供的存储服务包括对象存储(OSS)、文件存储(NAS)等多种形式,可以满足不同场景下的存储需求。我作为一名程序员,个人在工作中经常使用阿里云存储服务,下面分享一下个人关于阿里云存储服务使用的心得体会。
694 1
个人关于阿里云存储使用的心得体会
|
存储 算法 编译器
【ffmpeg 到Qt的图片格式转换】精彩的像素:深入解析 AVFrame 到 QImage 的转换
【ffmpeg 到Qt的图片格式转换】精彩的像素:深入解析 AVFrame 到 QImage 的转换
562 0
|
传感器 算法
基于智能优化算法的无人机路径规划(Matlab代码实现)
基于智能优化算法的无人机路径规划(Matlab代码实现)
448 0
|
机器学习/深度学习 人工智能 算法
AdaBoost算法解密:从基础到应用的全面解析
AdaBoost算法解密:从基础到应用的全面解析
544 0
|
存储 机器学习/深度学习 人工智能
阿里云GPU云服务器gn6v、gn6i、vgn6i-vws、gn6e购买和选择教程
本文介绍了阿里云gup云服务器是什么?gn6v、gn6i、vgn6i-vws、gn6e实例的最新价格和实例特点、适用场景、实例规格的指标数据。仅供大家了解和选择阿里云gup云服务器时参考。
2216 0
阿里云GPU云服务器gn6v、gn6i、vgn6i-vws、gn6e购买和选择教程
【NI Multisim 14.0原理图环境设置——电路图属性设置】
一、电路图属性设置 原理图设计是电路设计的第一步,是制板、仿真等后续步骤的基础。因此,一幅原理正确与否,直接关系到整个设计的成败。另外,为了方便自己和他人读图,原理图的美观、清晰和规范也是十分重要的。 Multisim 14.0的原理图设计大致可分为9个步骤,如图所示: 在原理图的绘制过程中,可以根据所要设计的电路图的复杂程度,先对图纸进行设置。虽然在进入电路原理图的编辑环境时,NI Multisim14.0系统会自动给出相关的图纸默认参数,但是在大多数情况下,这些默认参数不一定适合用户的需求,尤其是图纸尺寸。用户可以根据设计对象的复杂程度来对图纸的尺寸及其他相关参数进行重新定义。 选择菜单栏
1475 0
【NI Multisim 14.0原理图环境设置——电路图属性设置】