98国产精品综合一区二区三区,国产福利视频,男人添女人囗交做爰视频,日本免费一区二区三区视频观看

你好!歡迎來(lái)到深圳市穎特新科技有限公司!
語(yǔ)言
當(dāng)前位置:首頁(yè) >> 技術(shù)中心 >> 單片機(jī)入門 >> 51單片機(jī)PWM的控制(呼吸燈)

51單片機(jī)PWM的控制(呼吸燈)

關(guān)鍵字:51單片機(jī) PWM 呼吸燈 作者:admin 來(lái)源:不詳 發(fā)布時(shí)間:2018-05-18  瀏覽:17

 一、PWM

Pulse Width Modulation脈沖寬度調(diào)制,簡(jiǎn)稱PWM。

PWM(脈沖寬度調(diào)制)對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法,計(jì)算機(jī)只能輸出0或5V的數(shù)字電壓值而不能輸出模擬電壓,而我們?nèi)绻氆@得一個(gè)模擬電壓值,則需通過使用高分辨率計(jì)數(shù)器,改變方波的占空比來(lái)對(duì)一個(gè)模擬信號(hào)的電平進(jìn)行編碼。

仍輸出數(shù)字信號(hào),因?yàn)闈M幅值的直流供電只有5V(1)和0V(0)兩種。電壓是以一種連接(1)或斷開(0)的重復(fù)脈沖序列被夾到模擬負(fù)載上去的,連接即是直流供電輸出,斷開即是直流供電斷開。通過對(duì)連接和斷開時(shí)間的控制,只要帶寬足夠,可以輸出任意不大于最大電壓值的模擬電壓。

輸出電壓=(接通時(shí)間/脈沖時(shí)間)*最大電壓值

12

1.png

二、51單片機(jī)的Timer

作者用的單片機(jī)是STC89C52,其內(nèi)部有3個(gè)16位Timer,分別為T/C0,T/C1,T/C2,通過配置相關(guān)寄存器即可實(shí)現(xiàn)Timer的功能控制。

控制PWM需要用到定時(shí)器來(lái)生成不同占空比的波形,采用定時(shí)器中斷的方式。

相關(guān)寄存器:

1.IE寄存器

名稱功能
0EX0外部中斷0的中斷允許位
1ET0Timer0的溢出中斷允許位
2EX1外部中斷1的中斷允許位
3ET1Timer1的溢出中斷允許位
4ES串行口中斷允許位
5ET2Timer
6--
7EA中斷允許總控制位

2. TCON寄存器

名稱功能
0IT0外部中斷0的觸發(fā)方式選擇位。功能和IE1類似
1IE0外部中斷0的中斷請(qǐng)求標(biāo)志位。功能和IE1類似
2IT1外部中斷1的觸發(fā)方式選擇位。當(dāng)IT1=1時(shí),為下降沿觸發(fā)方式,也就是從高到低的跳變會(huì)觸發(fā)外部中斷1。當(dāng)IT1=0時(shí),為低電平觸發(fā),也就是單片機(jī)檢測(cè)到該引腳電平為低時(shí),會(huì)觸發(fā)外部中斷1
3IE1外部中斷1的中斷請(qǐng)求標(biāo)志位。當(dāng)IE1=1的時(shí)候,表示外部中斷1被觸發(fā),正在請(qǐng)求單片機(jī)處理中斷事件。當(dāng)單片機(jī)相應(yīng)中斷,處理中斷事件時(shí),該位由單片機(jī)自動(dòng)清零
4TR0啟動(dòng)定時(shí)器/計(jì)數(shù)器0啟動(dòng)位,功能和TR1類似
5TF0定時(shí)器/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。功能和TF1類似.
6TR1啟動(dòng)定時(shí)器/計(jì)數(shù)器1啟動(dòng)位,TR=1啟動(dòng)計(jì)時(shí),TR=0停止計(jì)時(shí)
7TF1定時(shí)器/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。當(dāng)T1溢出時(shí),該位自動(dòng)置1。單片機(jī)響應(yīng)相應(yīng)中斷時(shí),系統(tǒng)自動(dòng)清零TF1,也可以程序清零

3. TMOD寄存器

控制Timer0/1的工作方式

名稱功能
0M0工作方式選擇位
1M1工作方式選擇位
2C/T計(jì)數(shù)器模式和定時(shí)器模式選擇位,C/T=1時(shí),為計(jì)數(shù)器模式,C/T=0時(shí),為定時(shí)器模式。C為counter的縮寫,T為timer的縮寫,這樣方便理解
3GATET1(0)的啟動(dòng)源選擇位,GATE=1時(shí),用外部中斷引腳INT1(INT0)上的高電平來(lái)啟動(dòng)T1(T0);GATE=0時(shí),用TCON里的TR1(TR0)來(lái)啟動(dòng)T1(T0)。
4M0相似于0位
5M1相似于1位
6C/T相似于2位
7GATE相似于3位
M1M0工作方式
00方式0,由TH1(TH0)的8位和TL1(TL0)的低5位組成一個(gè)13位定時(shí)器。
01方式1,由TH1(TH0)的8位和TL1(TL0)的8位組成一個(gè)16位定時(shí)器。
10方式2,TL1(TL0)溢出后,TH1(TH0)的數(shù)值自動(dòng)填充到TL1(TL0)。
11方式3,僅適用于T0,T0分成兩個(gè)8位計(jì)數(shù)器,T1停止計(jì)數(shù)。

4. Timer0/1計(jì)數(shù)寄存器

TL0

TL1

TH0

TH1

當(dāng)定時(shí)開啟后,TL0(TL1)自動(dòng)跟隨機(jī)器周期加一。當(dāng)TL0(TL1)滿了后,自動(dòng)清零同時(shí)向TH0(TH1)進(jìn)一位,不需要手動(dòng)操作.

而當(dāng)TL0(TL1)和TH0(TH1)都滿了以后,此時(shí)如果定時(shí)中斷和總中斷都已經(jīng)打開,那么就會(huì)發(fā)生溢出中斷,同時(shí)這兩個(gè)寄存器清零

三、運(yùn)用PWM完成呼吸燈

1. 硬件電路

2.png

2. 軟件驅(qū)動(dòng)

unsigned char PWM_COUNT; //計(jì)數(shù)

unsigned int HUXI_COUNT;    //占空比更新時(shí)間

unsigned char PWM_VLAUE;    //占空比比對(duì)值

bit direc_flag;             //占空比更新方向

 

void timer0_init()

{

    TMOD=0x02;          //模式設(shè)置,00010000,定時(shí)器0,工作于模式2(M1=1,M0=0)

    TH0=0x47;               //定時(shí)器溢出值設(shè)置,每隔200us發(fā)起一次中斷。

    TL0=0X47;

    TR0=1;                  //定時(shí)器0開始計(jì)時(shí)

    ET0=1;                  //開定時(shí)器0中斷

    EA=1;                       //開總中斷

    PWM_COUNT =0;

}

void time0() interrupt 1

{   

    PWM_COUNT++;

    HUXI_COUNT++;

    if(PWM_COUNT == PWM_VLAUE)      //判斷是否到了點(diǎn)亮LED的時(shí)候

        LED = 1;                    //點(diǎn)亮LED

    if(PWM_COUNT == 10)             //當(dāng)前周期結(jié)束

    {

        LED = 0;                    //熄滅LED

        PWM_COUNT = 0;              //重新計(jì)時(shí)

    }

    if((HUXI_COUNT == 600) && (direc_flag == 0))

    {                               //占空比增加10%

        HUXI_COUNT = 0;

        PWM_VLAUE++;

        if(PWM_VLAUE == 9)          //占空比更改方向

            direc_flag = 1; 

    }

    if((HUXI_COUNT == 600) && (direc_flag == 1))

    {                               //占空比減少10%

        HUXI_COUNT = 0;

        PWM_VLAUE--;

        if(PWM_VLAUE == 1)          //占空比更改方向

            direc_flag = 0; 

    }   

}

void main()

{

    HUXI_COUNT = 0;

    PWM_COUNT = 0;

    PWM_VLAUE = 5;

    direc_flag = 0;

    LED = 1;            //默認(rèn)LED熄滅   

    timer0_init();      //定時(shí)器0初始化

    while(1);

}

編輯:admin  最后修改時(shí)間:2018-05-18

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

h双腿涨灌捆绑play慎入| 一进去一爽又粗又大| 色婷婷香蕉在线一区二区| 欧美又黄又嫩大片a级澳门| 国产一区二区精品丝袜| 疼~别放了~装不下了不下载| 亚洲日韩av无码中文字幕美国| 脸干燥脱皮怎么办| 免费人成视频在线观看| 把头埋入茂密的两腿之间| 亚洲一区二区三区写真| 欧洲处破女www人鲁| 短裙公车被强好爽h吃奶| 欧美日韩免费观看| 好男人资源在线看免费的| 玩弄白嫩少妇xxxxx性| 亚洲色少妇熟女11p| 久久日产一线二线三线| 99re在线精品国产欧美| 人妻激情偷乱视频一区二区三区| 亚洲av乱码一区二区三区| 玩弄丰满少妇高潮a片推油小说| 张柏芝私密的毛无遮挡| 最新av网址| 多p混交群体交乱嗯啊小说| 久久久精品人妻一区二区三区四| 狠狠人妻久久久久久综合九色| 林静公交车被做到高c| 被调教跪着打屁股| 久久精品无码av一区二区三区| 小少爷撅着屁股挨c双龙| 学生呦侵视频在线观看| 国精品人妻无码一区二区三区牛牛| 天天躁夜夜躁狠狠躁av乐播蜜桃| 艳肉观音性三级dvd| 又色又爽又黄的视频软件app| 精品少妇人妻av无码专区偷人| 调教超级yin荡玩物学生男男| 国产午夜三级一区二区三| 18款大禁用软件app破解版| 日韩精品福利片午夜免费观着|