欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2088|回復(fù): 0
收起左側(cè)

利用脈寬調(diào)制實(shí)現(xiàn)呼吸燈

[復(fù)制鏈接]
ID:369359 發(fā)表于 2018-7-11 11:40 | 顯示全部樓層 |閱讀模式
#include "ioCC2530.h"
#define  LED1   P1_0

unsigned char pwm_period = 100; //定義PWM的周期
unsigned char pwm_duy = 90;     //定義PWM的占空比
unsigned char t_count = 0;      //間隔定時(shí)次數(shù)累計(jì)

/*==================端口初始化函數(shù)======================
功能:初始化LED1和SW按鍵
      將P1_0設(shè)置為通用I/O端口的輸出模式
      關(guān)閉LED1燈
設(shè)計(jì):廣東職業(yè)技術(shù)學(xué)院  歐浩源
時(shí)間:2017年10月19日
========================================================*/
void Init_Port()
{
  P1SEL &= ~0x01;  //將P1_0設(shè)置為通用I/O端口
  P1DIR |= 0x01;   //將P1_0設(shè)置為輸出方式
  LED1 = 1;        //輸出1--關(guān)燈,輸出0--開燈
}

/*=================定時(shí)器1初始化函數(shù)=====================
功能:初始化定時(shí)器1
      使用內(nèi)部16MHz晶振,定時(shí)周期1ms,
      使用模模式,開啟通道0的輸出比較模式,
      分頻系數(shù)8,打開相應(yīng)的定時(shí)中斷
設(shè)計(jì):廣東職業(yè)技術(shù)學(xué)院  歐浩源
時(shí)間:2017年10月19日
========================================================*/
void Init_Timer1()
{
  /*=內(nèi)部16MHz晶振8分頻定時(shí)0.1ms的最大計(jì)數(shù)值為0x00c8=*/
  T1CC0L = 0xc8;    //設(shè)置最大計(jì)數(shù)值的低8位
  T1CC0H = 0x00;    //設(shè)置最大計(jì)數(shù)值的高8位
  T1CCTL0 |= 0x04;  //開啟通道0的輸出比較模式
  T1IE = 1;         //使能定時(shí)器1中斷
  T1OVFIM = 1;      //使能定時(shí)器1溢出中斷
  EA = 1;           //使能總中斷
  T1CTL = 0x06;     //分頻系數(shù)是8,模模式
}

/*================定時(shí)器1中斷服務(wù)函數(shù)====================
功能:1ms間隔定時(shí)中斷服務(wù)函數(shù)
      對(duì)間隔定時(shí)次數(shù)進(jìn)行累加,即t_count++
      t_count < pwm_duy, 輸出高電平
      pwm_duy < t_count < pwm_period, 輸出低電平
      t_count = pwm_period,t_count清0,輸出高電平
      每完成一個(gè)PWM改變一個(gè)占空比,實(shí)現(xiàn)呼吸燈
設(shè)計(jì):廣東職業(yè)技術(shù)學(xué)院  歐浩源
時(shí)間:2017年10月19日
========================================================*/
#pragma vector = T1_VECTOR
__interrupt void Timer1_Sevice()
{
  T1STAT &= ~0x01;        //清除定時(shí)器1通道0中斷標(biāo)志
  t_count++;              //對(duì)間隔定時(shí)次數(shù)進(jìn)行累加
  if(t_count < pwm_duy)            //高電平周期到
  {
    LED1 = 1;                     
  }
  else if(t_count < pwm_period)   //低電平周期到
  {
    LED1 = 0;                     
  }
  else                  //準(zhǔn)備開始下一個(gè)PWM輸出
  {
    LED1 = 1;
    t_count = 0;        //間隔定時(shí)累加清0
    pwm_duy--;
    if(pwm_duy == 1)
    {
      pwm_duy = 90;
    }
  }
}

/*=====================主函數(shù)===========================*/
void main()
{
  Init_Port();        //初始化I/O端口
  Init_Timer1();      //初始化定時(shí)器1
  while(1);
}

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表