中国IEEE
关于我们 | 会员登陆 | 收藏本站 | 留 言 薄
 

 | 网站首页 | 电子知识 | 单片机知识 | 电路设计 | 微电子技术 | SCADA系统 | 资源下载 | 给我留言 | 视频教程 | ieee | 
热门搜索关键字: 单片机教程 | 三极管微电子 |  C语言汇编语言SCADA元器件IEEE |
cnieee.com baidu
栏目导航  
栏目更新推荐  
·8051单片机C语言数据采集程序
·渐变LED流水灯程序(C源程序)
·99计数器C语言版本
·3x4矩阵键盘的扫描程序(C语言)
·51单片机串口调试程序(C语言)
·一些常用的软件滤波方法(C语言)
·一些常用的软件滤波方法
·volatile用法
点击TOP(10)  
  • 此栏目下没有热点文章
  • 图片文章  

    C语言嵌入式系统编程…

    C语言嵌入式系统编程…

    C语言嵌入式系统编程…
     
    您现在的位置: 中国IEEE中国电气电子工程师网 >> 单片机知识 >> 编程语言 >> 单片机C语言 >> 正文

    渐变LED流水灯程序(C源程序)
    文章来源:本站整理 点击数: 更新时间:2008-6-1 【字体:
    (欢迎光临中国IEEE,希望本文能对您有所帮助http://www.cnieee.com)


    相关文章:

    没有相关文章

  • 上一个文章:

  • 下一个文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
    关于〖渐变LED流水灯程序(C源程序)〗的最新评论:

    //--------------------------------------------------------
    //项目: 灯闪控制
    //设计: 程序匠人
    //--------------------------------------------------------
    /*
    匠人按:一般的流水灯,LED都是固定亮度的。本程序在此基础上,实现渐明渐暗的效果。原理就是采用软件实现PWM,通过调节每个LED的亮灭时间比(占空比)来调节LED的亮度。本程序在EDN提供的51助学板上测试通过。
    */
    //--------------------------------------------------------
    /*
    版本说明:
    程序01_P0口灯闪_V01: 2008-5-21 22:53
     8个LED一起闪烁
       
    程序01_P0口灯闪_V02: 2008-5-21 22:53
     8个LED流水灯

    程序01_P0口灯闪_V03: 2008-5-22 21:36
     仍旧是8个LED流水灯,规范程序

    程序01_P0口灯闪_V04: 2008-5-22 21:52
     优化程序

    程序01_P0口灯闪_V05: 2008-5-22 23:19
     渐明渐暗动态流水灯效果

    */
    //--------------------------------------------------------
    //插入文件包
    //--------------------------------------------------------
    #i nclude<at89x52.h>   //加入头文件;

    //--------------------------------------------------------
    //重新命名数据类型
    //--------------------------------------------------------
    typedef unsigned char tU08;   //unsigned 8 bit definition
    typedef unsigned char tU8;   //unsigned 8 bit definition
    typedef unsigned int tU16;   //unsigned 16 bit definition
    typedef unsigned long tU32;   //unsigned 32 bit definition

    typedef signed char tS08;   //signed 8 bit definition
    typedef signed char tS8;   //signed 8 bit definition
    typedef signed int tS16;   //signed 16 bit definition
    typedef signed long tS32;   //signed 32 bit definition

    typedef float tF32;

    //--------------------------------------------------------
    //--------------------------------------------------------

    #define LED_ON 0  //LED点亮
    #define LED_OFF 1  //LED熄灭

    /*
    //--------------------------------------------------------
    //延时子程序
    //--------------------------------------------------------
    void delay(tU16 a)    
    {
     tU16 b;    
     for(b=0;b<a;b++);    //根据输入A 的值达到某一定时间的延时;
    }
    */

    //--------------------------------------------------------
    //主函数
    //--------------------------------------------------------
    void main()     
    {
     tU08 i,j ;

     tU08 t_jsq ;  //周期计数器(范围0~199)
     
     tU08 duty_led0 ; //LED0的占空(范围0~200;数值越大,LED越亮;下同)
     tU08 duty_led1 ; //LED1的占空
     tU08 duty_led2 ; //LED2的占空
     tU08 duty_led3 ; //LED3的占空
     tU08 duty_led4 ; //LED4的占空
     tU08 duty_led5 ; //LED5的占空
     tU08 duty_led6 ; //LED6的占空
     tU08 duty_led7 ; //LED7的占空

     tU08 duty_led_buf0 ; //缓冲
     tU08 duty_led_buf1 ; //缓冲
     tU08 duty_led_buf2 ; //缓冲
     tU08 duty_led_buf3 ; //缓冲
     tU08 duty_led_buf4 ; //缓冲
     tU08 duty_led_buf5 ; //缓冲
     tU08 duty_led_buf6 ; //缓冲
     tU08 duty_led_buf7 ; //缓冲


     while(1)     //无限循环
     {
      duty_led0 = 0 ;
      duty_led1 = 0 ;
      duty_led2 = 0 ;
      duty_led3 = 0 ;
      duty_led4 = 0 ;
      duty_led5 = 0 ;
      duty_led6 = 0 ;
      duty_led7 = 0 ;

      duty_led_buf0 = 1 ;
      duty_led_buf1 = 2 ;
      duty_led_buf2 = 4 ;
      duty_led_buf3 = 200 ;
      duty_led_buf4 = 4 ;
      duty_led_buf5 = 2 ;
      duty_led_buf6 = 1 ;
      duty_led_buf7 = 0 ;


      //P1_0 = LED_ON ;
      //P1_1 = LED_ON ;
      //P1_2 = LED_ON ;
      //P1_3 = LED_ON ;

      for ( j = 0 ; j<50 ; j++ )  //调节流水灯间隔时间
      {


       for ( i = 0 ; i<5 ; i++ )  //调节流水灯速度
       {
        
        //根据占空比,控制每个LED的亮度
        for ( t_jsq = 0 ; t_jsq <200  ; t_jsq ++ )
        {
         if ( t_jsq < duty_led0 ) P0_0 = LED_ON ; else P0_0 = LED_OFF ;
         if ( t_jsq < duty_led1 ) P0_1 = LED_ON ; else P0_1 = LED_OFF ;
         if ( t_jsq < duty_led2 ) P0_2 = LED_ON ; else P0_2 = LED_OFF ;
         if ( t_jsq < duty_led3 ) P0_3 = LED_ON ; else P0_3 = LED_OFF ;
         if ( t_jsq < duty_led4 ) P0_4 = LED_ON ; else P0_4 = LED_OFF ;
         if ( t_jsq < duty_led5 ) P0_5 = LED_ON ; else P0_5 = LED_OFF ;
         if ( t_jsq < duty_led6 ) P0_6 = LED_ON ; else P0_6 = LED_OFF ;
         if ( t_jsq < duty_led7 ) P0_7 = LED_ON ; else P0_7 = LED_OFF ;
      
        } 
       }
       
       //占空队列移动
       duty_led0 = duty_led1 ;
       duty_led1 = duty_led2 ;
       duty_led2 = duty_led3 ;
       duty_led3 = duty_led4 ;
       duty_led4 = duty_led5 ;
       duty_led5 = duty_led6 ;
       duty_led6 = duty_led7 ;
       duty_led7 = duty_led_buf0 ;
       duty_led_buf0 = duty_led_buf1 ;
       duty_led_buf1 = duty_led_buf2 ;
       duty_led_buf2 = duty_led_buf3 ;
       duty_led_buf3 = duty_led_buf4 ;
       duty_led_buf4 = duty_led_buf5 ;
       duty_led_buf5 = duty_led_buf6 ;
       duty_led_buf6 = duty_led_buf7 ;
       duty_led_buf7 = 0 ;
      }

      //delay(65535);   //延时

     }
    }

    //--------------------------------------------------------
    //
    // THE END
    //
    // 版权所有:程序匠人(引用者请保留原作者姓名)
    //
    //--------------------------------------------------------

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明网站地图 | 名站导航 | 管理登录 | 
    本站资源部分来自互联网,如侵犯您的权利,我们将予以删除  鲁ICP备08006092号
    本站欢迎同类网站做友情链接,QQ留言
    中国IEEE 中国电气电子工程师网 版权所有