在很多的单片机方案应用中,很多都会用到到指示灯,比如流水灯,RGB七彩灯,对了还有呼吸灯.现在用PMS150C做个demo,稍作修改就可以用在pms152,pms132B灯应广其他系列的单片机中.不多说,上代码.一切尽在代码中.

#include    "extern.h"

/*定时时间是否到了cinit*/
bit     FLAG_NMS;
/*计数值cinit*/
byte    count;
/*定时器初始化cinit*/
word    T16COUNTER;

byte ucMsCnt;

byte ucPwmDt;
bit  ucPwmInc;

BIT        PWM             :PA.3;

BIT        TEST            :PA.4;

/*定时器初始化*/
void PwmTmr2Init ( void )
{
    tm2ct = 0x0;/*计数值*/
    //pwm duty
    tm2b = 0;//START_PWM_CNT;
    //8 位 pwm, 预分频 = 64, 分频 = 2,
    tm2s = 0b0_11_00000;
    
    /*0010=HIRC输出,0100=ILRC; 
     ,01= PB2,10=PA3,11=PB4, 
     PWM模式,禁用极性反转*/
    tm2c = 0b0010_10_1_0;
}

/***************************************/
void    TIME16_Init(void)
{
    /*关中断*/
//    INTRQ        =    0;
    
    /*停止定时器*/
//       T16M.5        =0;

/*计数值清零*/
    T16COUNTER    =488;

STT16 T16COUNTER;

/*ms标记reset*/
    FLAG_NMS    =0;

/*计算方法16M/*/
    $    T16M    IHRC,/1,BIT11;

$    INTEN    T16;

}

void    FPPA0 (void)
{
    .ADJUST_IC    SYSCLK=IHRC/2        //    SYSCLK=IHRC/2

TIME16_Init();

$ PWM  out,low;
    $ TEST  out,low;

PwmTmr2Init();

ucPwmInc=1;
    ucPwmDt=0;

engint;
    
    while (1)
    {
           if(FLAG_NMS)
           {

ucMsCnt++;
               if(ucMsCnt>10)
               {
                      ucMsCnt=0;

/*增加*/
                   if(ucPwmInc)
                   {
                       if(ucPwmDt<255)
                       {
                              /*更新*/
                              ucPwmDt++;
                           
                           tm2b=ucPwmDt;
                           /*切换*/
                           if(ucPwmDt==255)
                           {
                                 ucPwmInc=0;
                           }
                           
                           
                       }
                   }
                   /*减少*/
                   else
                   {
                           /*更新条件*/
                           if(ucPwmDt)
                           {
                            /*更新*/
                            ucPwmDt--;

tm2b=ucPwmDt;
                            
                            /*切换条件*/
                            if(!ucPwmDt)
                            {
                                ucPwmInc=1;
                            }
                           }

}
                   
               }
    
               
               FLAG_NMS=0;
           }

}
}

void    Interrupt ( void )
{
    pushaf;

if ( Intrq.T16 )  
    {

Intrq.T16    =    0;
        
        STT16 T16COUNTER;

if ( count>0 )
        {
            count--;
        }
        else
        {
            count   =   9;
            /*1ms*/
            FLAG_NMS=   1;

$    TEST  toggle;

}

}

popaf;
}  QQ3261-56566

pms152应广pms132B应广单片机应用之-呼吸灯相关推荐

  1. 应广单片机应用之-呼吸灯

    在很多的单片机方案应用中,很多都会用到到指示灯,比如流水灯,RGB七彩灯,对了还有呼吸灯.现在用PMS150C做个demo,稍作修改就可以用在pms152,pms132B灯应广其他系列的单片机中.不多 ...

  2. 基于51单片机的LED呼吸灯设计(定时器)

    定时器实现led呼吸灯 实验原理: 灯在高速闪烁时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失.每次循环时,前半部分先让亮的时间逐渐增加,暗的时间逐渐减小:后半部分 ...

  3. 51单片机—— PWM、呼吸灯

    51单片机通过定时器0产生 20ms/50HZ 的可调节 PWM 小灯的有效显示应该是50hz,所以周期是20ms 频率过小显示比较暗,频率过大不好调节 定时器0,16位自动重装载值,定时长度200u ...

  4. 基于51单片机设计的呼吸灯

    一.项目介绍 呼吸灯是一种常见的LED灯光效果,它可以模拟人类呼吸的变化,使灯光看起来更加柔和和自然.51单片机是一种广泛使用的微控制器,具有体积小.功耗低.成本低等优点,非常适合用于控制LED呼吸灯 ...

  5. 单片机实现LED呼吸灯功能

    ** 程序名: 两键控制亮度 编写人: 编写时间: 2017年12月15日 硬件支持: STC12C2052 内部RC或外部12MHZ晶振 接口说明: 8个LED彩灯接P1口,按键接P3.7和P3.3 ...

  6. C语言开定时器做呼吸灯程序,简单的基于51单片机定时器上呼吸灯程序

    #include #define ufloat unsigned float #define uchar  unsigned char #define uint   unsigned int ucha ...

  7. MSP430 G2553 单片机 三色灯 霓虹灯 呼吸灯 跑马灯 一体

    三色灯有三个基础颜色,用三个PWM控制这三个基础颜色的亮度,就能形成不同的颜色. 随机给颜色,就是霓虹灯: 固定RGB颜色变换就是跑马灯: 强–>弱->强->循环变化就是呼吸灯:

  8. 单片机实现led呼吸灯效果 宏定义函数

    写了一个简单的LED呼吸灯效果代码,可作为C语言初学者for循环的练习,用宏定义方便调用. 四个变量可调亮灭时间,i大,灭的时间长: j大,灭得慢; m大,亮的时间长: n大,亮得慢. 用STM32F ...

  9. 应广单片机_呼吸灯理解

    计数器的介绍 对于应广单片机来说,它提供了3种计数器,分别为 TM2\TM3\T16 其中对于TM2\TM3来说,是属于PWM计数器,用法是简单的,但是要求比较高,需要对应的引脚来达到它的要求 从芯片 ...

最新文章

  1. angular2-baidu-map网站中使用百度地图
  2. java 防止文件下载_Spring,Java:流式文件下载以避免内存不足错误
  3. Windows堆栈区别[转]
  4. 阿波罗配置中心(apollo)的个人看法
  5. 惊艳!28岁就任副教授,年纪轻轻已是博导、院长
  6. MacOS与Windows快捷键对照
  7. Asp.NET之入门
  8. 【openGL2021版】天空盒
  9. 通过wait,notify等实现线程通讯
  10. 超声波测距原理与实现
  11. firefox插件开发和调试
  12. matlab出现问题:TRANSPOSE 不支持 N 维数组。请使用 PAGETRANSPOSE/PAGECTRANSPOSE 转置页,或使用 PERMUTE 重新排列 N 维数组的维度。
  13. android 进制转换的方法
  14. php实训参考文献,SPSS实训心得体会
  15. 数值分布的分散程度对迭代次数的影响
  16. 使用virt-manager管理虚拟机
  17. win10去除桌面快捷方式小箭头
  18. 面向搜索引擎的隐蔽式SEO木马---之查杀再现笔记
  19. 嵌入式与UML建模 mbus通断阀
  20. 对人工智能的一些思考和给初学者的建议

热门文章

  1. 人工智能--使用神经网络分析电影评论
  2. linux硬盘盘符和槽位,磁盘槽位和盘符绑定方案
  3. java 手写输入_handwriting(JAVA) 手写输入原笔迹的JAVA实现 - 下载 - 搜珍网
  4. 深度学习中高斯噪声:为什么以及如何使用
  5. 【校招分享】Java非科班自学指南
  6. 北京Yeslab安全实验室 现任明教教主
  7. 正确实现AutoCAD布局打印过程详解
  8. k8s的集群搭建前的相关操作--必看
  9. 易语言c编译程序集,植物大战僵尸。易语言.版本 2.程序集 窗口程序集1.程序集...
  10. Android camera2判断设备是否有相机功能,获取摄像头数量