free性丰满hd毛多多,久久综合给合久久狠狠狠97色69 ,欧美成人乱码一区二区三区,国产美女久久久亚洲综合,7777久久亚洲中文字幕

0
問答首頁 最新問題 熱門問題 等待回答標(biāo)簽廣場
我要提問

單片機(jī)

51單片機(jī)定時產(chǎn)生pwm波程序

PWM(脈寬調(diào)制)在很多場合都用得上,例如LED亮度控制,開關(guān)電源輸出電圧控制等。

這里采用簡單的定時器實現(xiàn)PWM波輸出,通過更改定時器定時參數(shù),控制IO口輸出

波形高低電平持續(xù)時間,實現(xiàn)PWM波。

代碼如下:

#include

#define T0_INTERRUPT 1  //T0中斷向量號

#define PWMH_L 0x9C

#define PWMH_H 0xFF   //PWM低電平時間0.1ms

#define PWML_L 0xCE

#define PWML_H 0xFF    //PWM高電平時間0.05ms

sbit LED1 = P1^0;   //常亮LED,作為對比,仿真看不出效果

sbit LED2 = P1^1;    //PWM驅(qū)動LED

typedef unsigned char uchar;

typedef unsigned int uint;

void Init_T0();

void main()

{

    LED1 = 0;      //點亮LED1

    LED2 = 1;      //熄滅LED2

    Init_T0();    //初始化定時器0

    while(1)

    {

        PCON |= 0x01; //單片機(jī)進(jìn)入休眠模式,節(jié)省功耗

    }

}

void Init_T0()

{

    TMOD &= 0xF0;

    TMOD |= 0x01;  //16位定時器模式

   

    TH0 = PWML_H;

    TL0 = PWML_L;

   

    EA = 1;       //開全局中斷

    ET0 = 1;      //允許T0中斷

    TR0 = 1;      //啟動定時器

}

void T0_Interrupt() interrupt T0_INTERRUPT

{

    TF0 = 0;

    if(LED2 == 1)

    {

        LED2 = 0;        //設(shè)置低電平持續(xù)時間,LED2亮

        TH0 = PWMH_H;

        TL0 = PWMH_L;

    }

    else

    {

        LED2 = 1;        //設(shè)置高電平持續(xù)時間,LED2滅        

        TH0 = PWML_H;

        TL0 = PWML_L;

    }

}

提問者:A493481244 地點:- 瀏覽次數(shù):5524 提問時間:10-17 17:13
我有更好的答案
提 交
撰寫答案
提 交
1 / 3
1 / 3
相關(guān)單片機(jī)
具有音調(diào)控制的單片機(jī)立體聲前置放大器
用于單片機(jī)與電子裝置中的開關(guān)電源
單片機(jī)軟硬件復(fù)位的條件都有啥
電動機(jī)的單片機(jī)控制
單片機(jī)應(yīng)用系統(tǒng)開發(fā)實例導(dǎo)航