在很多的单片机方案应用中,很多都会用到到指示灯,比如流水灯,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/4      //    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++;
                           
                           /*切换*/
                           if(ucPwmDt==255)
                           {
                                 ucPwmInc=0;
                           }
                           
                           
                       }
                   }
                   /*减少*/
                   else
                   {
                           /*更新条件*/
                           if(ucPwmDt)
                           {
                            /*更新*/
                            ucPwmDt--;

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

}

tm2b=ucPwmDt;
                   
               }
    
               
               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;
}

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

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

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

  2. 二、应广单片机点亮一个灯

    上一节介绍基础,由于时间仓促,写得十分模糊.这一节开始从一个个实际例子,向大家展示应广单片机的各项功能.由于看本文的读者层次不相同,这里全部按照初学者视之. 废话少说,上例程: //========= ...

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

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

  4. 应广单片机PFS123按键中断控制数码管显示例程

    目录 应广单片机PFS123按键中断控制数码管显示视频 led数码管图片 应广单片机PFS123按键中断控制数码管显示代码 应广科技网址,开发工具,PMS123规格书:http://www.padau ...

  5. 应广单片机休眠和按键唤醒

    对应电池供电的产品,在不使用的时候,单片机和外设都应该进入休眠状态,用于减少对电池电量消耗.在使用的时候又能够通过按键,或是其他信号唤醒系统,然后进入正常工作状态.在电压V3.3V的情况下,应广单片机 ...

  6. 应广单片机芯片PMS132B -SOP8/SOP14/SOP16

    应广单片机芯片PMS132B -SOP8/SOP14/SOP16

  7. 应广单片机adc_应广单片机adc和pwm例程

    应广单片机Otp单核系列主要有以下几个系列,15x系列为纯iO,13x系列为带12bit的adc,17x系列为带8bit的adc,现在我用pms132B写个adc/pwm例程,方便大家快速上手.不多说 ...

  8. 应广单片机定时器中断配置

    应广单片机主要应用于消费电子,资源有限,只有一个16bit定时器,因此用好T16定时器就非常关键了.可以说是整个单片机系统的核心配置 不说那么多了,直接上代码. BIT     LED_G       ...

  9. 应广单片机003烧录器自定义封装使用技巧

    应广003烧录器可以烧录MTP芯片,相比002烧录器,功能更多,但是使用复杂.有时候摸上半天也烧录不了器件. 现在通过烧录器自带的用之定义封装的方法进行烧录.这样就可以节省很多时间. 自定义烧录说明: ...

最新文章

  1. 解决“安装程序无法定位现有系统分区,也无法创建新的系统分区”的方法
  2. cpanel java_Cpanel是什么
  3. 在小树林飞也能又快又稳,这是港科大沈劭劼组的「猛禽」无人机重规划框架...
  4. 成熟的云管理是什么样的?
  5. 360安全卫士安装不了此程序被组策略阻止
  6. 对待新知识、新领域的心态——好奇、批判、独孤求败
  7. 《十周成为数据分析师》笔记——业务线 第八节 常见互联网业务的数据分析报告的制作及用户分层模型
  8. 中专计算机专业execl教案,计算机专项目化教案(EXCEL教案
  9. JavaScript数据结构——图的实现
  10. 谷歌打开后开始页面被hao123篡改
  11. Java搭建实战springboot基于若依项目工时统计成本核算管理源码
  12. Tag文件和Tag标记的用法详解
  13. KubeSphere 社区双周报 | OpenFunction v0.8.0 发布 | 2022-12-09
  14. P1122 最大子树和
  15. python 卡片概念学习
  16. CSAPP Lab3: Buffer Bomb
  17. 【蓝桥杯java真题】:和尚挑水
  18. 对抗中的主动防御 —— HW及小规模网络对抗的战术
  19. 三维扫描在建筑行业应用综述
  20. SQL map自动注入,利用工具注入

热门文章

  1. 笔记本机械硬盘性能深入研究
  2. 移动互联网下的服务转型――10086APP成长的探索
  3. DBSwitch阉割版实现异构数据库表结构同步
  4. go云原生语法-结构体(一)
  5. oracle 11g RAC ASM磁盘被强制下线抢修一例
  6. 开源集合-最火的Android开源项目(二)
  7. Apple Watch的对讲机功能使用教程
  8. 搭建阿里云Windows版服务器+使用宝塔安装MySQL数据库+本地Navicat访问数据库(增删改查)——详细流程
  9. 虾皮店铺一下子就爆单了,shopee店铺装修用起来的好处!
  10. 深度Linux ISO 如何解包安装,【已解决】今天更新了系统后,终端apt出现解包错误...