不同数据类型的延时函数控制LED灯闪烁

发布者:光子梦境最新更新时间:2016-10-27 来源: 51hei关键字:数据类型  延时函数  控制LED灯 手机看文章 扫描二维码
随时随地手机看文章
//实例8:用不同数据类型控制灯闪烁时间

#include   //包含单片机寄存器的头文件
/******************************************************
函数功能:用整形数据延时一段时间
******************************************************/
void int_delay(void) //延时一段较长的时间
{
  unsigned int m;    //定义无符号整形变量,双字节数据,值域为0~65535
  for(m=0;m<36000;m++)
    ;          //空操作      
}
/******************************************************
函数功能:用字符型数据延时一段时间
******************************************************/
void char_delay(void) //延时一段较短的时间
{
   unsigned char i,j;   //定义无符号字符型变量,单字节数据,值域0~255
 for(i=0;i<200;i++)
   for(j=0;j<180;j++)
      ;        //空操作
}
/******************************************************
函数功能:主函数
******************************************************/
void main(void)  
{
  unsigned char i;
  while(1)
 {
   for(i=0;i<3;i++)
   {
      P0=0xfe;     //P0.0口的灯点亮
    int_delay(); //延时一段较长的时间
    P0=0xff;     //熄灭
    int_delay(); //延时一段较长的时间
   }
     for(i=0;i<3;i++)
   {
      P0=0xef;     //P0.4口的灯点亮
    char_delay(); //延时一段较长的时间
    P0=0xff;     //熄灭
    char_delay(); //延时一段较长的时间
   }  
  
   }

 }

关键字:数据类型  延时函数  控制LED灯 引用地址:不同数据类型的延时函数控制LED灯闪烁

上一篇:SFR地址操作点亮LED
下一篇:51单片机开发板程序----LED流水点亮(C语言)

推荐阅读最新更新时间:2024-03-16 15:17

STM32延时函数分析
Cortex-M3内核处理器有个systick 24位倒计时定时器,当计数到0时,重新装载初值. delay_init(u8 SYSCLK) //定时初始化函数分析 { Systick- CTRL&=0xfffffffb; //bit2清空,选择外部时钟 HCLK/8 fac_us=SYSCLK/8; fac_ms=(u16)fac_us*1000; } 摘自STM32手册 6.2.6 系统时钟(SYSCLK)选择 系统复位后,HSI 振荡器 被选为系统时钟。当时钟源被直接或通过PLL间接作为系统时钟时,它将不能被停止。 只有当目标时钟源准备就绪了(经过启动稳定阶段的延迟
[单片机]
STM32<font color='red'>延时</font><font color='red'>函数</font>分析
stm32 数据类型的定义
在Keil MDK 开发环境里,比如一个 无符号32位整形数据会有很多种表示方法:1,unsigned int 32 (C语言标准表达方法) 2,uint32_t ; 3 ,u32; 这三种方式都是在表达同一个意思,可为什么ST的开发人员要搞的这么乱呢? 还有其他好多你可能看起来很陌生 ,很不好理解的表达方式,如:_IO int32_t 他等同于vs32(这个你同样很陌生),不过他还等同于 volatile int32_t, 还等同于 volatile signed int 32;最后这种表达方式才是C语言的标准表达方式,够乱吧,能把初学者弄的晕头转向。 其实ST 搞这么多花样,无非是想开发人员在写代码时定义数据类型能少写几个符
[单片机]
PIC8位在PICC中的数据类型
PIC8位MCU的内存都是8位字节结构的,所以PICC中对于数据的划分都是以8位为基础的。 在汇编中,我们对一个地址为0X20的内存附值: movlw 255; movwf 0x20; 但一个内存是8位结构,能表示最大的数是255。要是超过了会怎么样呢? movlw 256; movwf 0x20; 通过DEBUG后,可以看出0X20中的值不是256,而是0了。 这里可以看出PIC处理器计算过程是当计算结果超过内存能容纳的最大数(也就是所谓溢出),则自动抛弃最高位。 如下: 255 - 256 11111111-100000000 256的2进制有9位,于是PIC处理器就自动抛弃最高位1,剩下的8个
[单片机]
51单片机 4个独立按键控制LED灯 (protues仿真)(C语言版)
一、思路及相关问题 1、逻辑思路: 当按下key1时 led1亮起来 因为按下去具有瞬时性不用while,用if语句,当松开时,用while(!key1) ,函数调用。 先在脑海里想象它的大致运行过程,其次在仿真软件protues上摆好元器件并连接,最后用keil4写对应代码。 需注意keil4软件上的设置如波特率,添加文件,勾选等等。 至少要了解C语言程序设计的基本功。 2、关于消抖: 通常的按键所用开关为机械性开关,当机械触电断开、闭合时、由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开、因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖 按
[单片机]
51单片机 4个独立按键<font color='red'>控制</font><font color='red'>LED灯</font> (protues仿真)(C语言版)
LPC2124--GPIO按键控制LED灯的闪烁
实例目的 实例目的:掌握Proteus软件的使用及调试方法,学习IO编程。 实例内容:  学习使用Proteus、ADS、Keil for ARM软件,掌握绘制原理及编译程序。  键盘输入,当检测到有按键输入时,对发光二极管进行取反控制。使用 I/O口输入方式对按键进行扫描。 实例步骤:  在Proteus中绘制原理图。  在Keil for ARM中输入程序,并编译通过。  加载ELF程序,观察仿真结果。  采用KEIL for ARM与PROTEUS的整合方式联调。 知识点概括 LPC2000系列作为 “微控制器”,其GPIO特性就显得很 重要。它具有如下的特性: ①可以独立控制每个GPIO口的方向(输入/输出
[单片机]
IAR FOR STM8精确延时函数
用的是IAR FOR STM8,有个项目想精确的知道下delay行数的延时时间是多少,上网搜了下竟然没有,而且发现好些人提问怎么又这样的函数,我就用示波器测量做了个精确延时函数,分享给各位朋友吧。(16M晶振)用的时钟启动函数是 void ClkInit(void) { CLK_ECKR |=0x1; //开启外部时钟 while(!(CLK_ECKR&0x2)); //等待外部时钟rdy CLK_CKDIVR &= 0xF8; //CPU无分频 16M CLK_SWR = 0xB4; //选择外部时钟 while(!(CLK_SWCR&0x8));
[单片机]
STM32仿真按键控制led灯源程序
刚学习 课上做的一个小实验 保存一下 在GPIOC口,分别接有一个开关K1和两个指示灯LED1和LED2。两个灯一亮一灭,每按一下开关,两个灯的亮灭状态翻。 单片机源程序如下: #include stm32f10x.h #include led.h #include key.h int main(void) { u8 key; LED_Init(); KEY_Init(); while(1){ key = KEY_Scan(); switch(key){ case WK_UP: LED1=!LED1, LED0=!LED0; break; }
[单片机]
STM32仿真按键<font color='red'>控制</font><font color='red'>led灯</font>源程序
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved