久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4214|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于單片機(jī)的pwm控制led亮度

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:193217 發(fā)表于 2017-4-24 21:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
畢業(yè)設(shè)計的代碼,跪求大神解答。

功能:火焰?zhèn)鞲衅饔|發(fā),led呼吸燈亮起,觸動振動傳感器,第一次振動響起SARI音樂,第二次振動shengri音樂,第三次全部led燈和音樂熄滅。比較不懂最下面的利用pwm控制led亮度那一塊。感謝大神,感謝論壇!

#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
#include "delay.h"
#include "stdio.h"

#define FALSE 0x00
#define TRUE 0x01

sbit LED1=P1^0;
sbit LED2=P1^1;
sbit LED3=P1^2;
sbit LED4=P1^3;
sbit LED5=P1^4;
sbit LED6=P1^5;          //設(shè)置LED燈連接端口

sbit ShengRi=P1^6;
sbit SaSi=P1^7;          //設(shè)置音樂片連接端口

sbit HuoYan=P2^1;
sbit ZhenDong=P2^0;      //設(shè)置傳感器連接端口

unsigned char ZhenFlag=FALSE;
unsigned long time_2ms=0;                        //定時器計數(shù)
unsigned char HuXiFlag=FALSE;
unsigned char PWML_LED=2;

void Init_Timer0(void);                                //初始化始終函數(shù)

void main (void)
{   
        unsigned char KeyFlag2=0,KeyFlag1=0;
        static unsigned char CounZhen=0;
        Init_Timer0();        //定時器0初始化

        DelayMs(10);
        ShengRi=1;
        SaSi=1;       
        LED1=1;
        LED2=1;
        LED3=1;
        LED4=1;
        LED5=1;
        LED6=1;                //LED燈、音樂片初始狀態(tài)為關(guān)閉。(LED燈以及音樂片采用低電平出發(fā))
                       
        while(1)         //主循環(huán)
        {               

                if((ZhenDong==0))                                          //振動傳感器被觸發(fā)
                {
                        if((KeyFlag1==0)&&(ZhenFlag==TRUE))
                        {       
                                if((ZhenDong==0))                           //掃描按鍵         
                                {
                                        ZhenFlag=FALSE;
                                        KeyFlag1=1;                          //防止重復(fù)按下
                                        CounZhen++;
                                        if(CounZhen==1)
                                        {ShengRi=0;SaSi=1;}            //SASI音樂片響起
                                        else if(CounZhen==2)
                                        {ShengRi=1;SaSi=0;}            //ShengRi音樂片響起
                                        else if(CounZhen==3)
                                        {
                                                CounZhen=0;
                                                ShengRi=1;
                                                SaSi=1;
                                                HuXiFlag=FALSE;
                                                LED1=1;
                                                LED2=1;
                                                LED3=1;
                                                LED4=1;
                                                LED5=1;
                                                LED6=1;                       //所有音樂、LED燈關(guān)閉
                                        }
                                }
                        }
                }
                else
                {KeyFlag1=0;}


                if((HuoYan==0))                  //掃描按鍵         
                {
                        if(KeyFlag2==0)
                        {       
                                if((HuoYan==0))                  //掃描按鍵         
                                {
                                        KeyFlag2=1;                          //防止重復(fù)按下
                                        HuXiFlag=TRUE;         //LED呼吸燈工作
                                }
                        }
                }
                else
                {KeyFlag2=0;}       
        }
}

void DelayUs2x(unsigned int t)
{   
while(--t);
}
void DelayMs(unsigned int t)
{
while(t--)             //大致延時1mS
{
     DelayUs2x(245);
         DelayUs2x(245);
}
}

void Init_Timer0(void)
{
        TMOD |= 0x01;          //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響                     
        TH0=(65536-20000)/256;                  //重新賦值 20ms
        TL0=(65536-20000)%256;
        EA=1;            //總中斷打開
        ET0=1;           //定時器中斷打開
        TR0=1;           //定時器開關(guān)打開
}

void Timer0_isr(void) interrupt 1
{
        static unsigned char led1Count=0;
        TH0=(65536-2000)/256;                  //重新賦值 2ms
        TL0=(65536-2000)%256;
       
        time_2ms++;
        if(time_2ms%200==0)
        {
                ZhenFlag=TRUE;
        }
        if(HuXiFlag==TRUE)            //火焰?zhèn)鞲衅饔|發(fā),LED閃爍
        {
                led1Count++;
                if(time_2ms%400==0)
                {
                        PWML_LED++;
                        if(PWML_LED>=8)     
                        {
                                PWML_LED=2;     //通過軟件模擬PWM,在一定的頻率的方波中,調(diào)整高電平和低電平的占空比,即可實現(xiàn)LED燈亮度控制。
                        }
                }
                if(led1Count<PWML_LED)               //led1 占空比調(diào)節(jié)
                {
                        LED1=0;
                        LED2=0;
                        LED3=0;
                        LED4=0;
                        LED5=0;
                        LED6=0;                          //LED燈打開
                }
                else if((led1Count>=PWML_LED)&&(led1Count<=8))        //關(guān)閉時間段
                {
                        LED1=1;
                        LED2=1;
                        LED3=1;
                        LED4=1;
                        LED5=1;   
                        LED6=1;                          //LED燈關(guān)閉
                }
                else
                {
                        led1Count=0;    //一個周期結(jié)束
                }
        }

}








分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品毛片在线观看 | 国产乱人伦 | 亚洲不卡| 国产高清视频在线观看 | 欧美99| 欧美 日韩 中文 | 日日拍夜夜 | 三级免费毛片 | h视频免费在线观看 | 欧美日韩中文字幕在线播放 | 性欧美精品一区二区三区在线播放 | 国产精品国产精品国产专区不卡 | 影视先锋av资源噜噜 | 国产一区二区成人 | 看av在线 | 成人毛片网 | 欧美不卡在线 | 久久精品国产一区二区三区 | 国产激情在线 | 毛片a| 国产乱码久久久久久一区二区 | av三级在线观看 | 欧美视频在线播放 | 艹逼网| 国产精品不卡 | 五月综合激情网 | 91久久| 国产乱码久久久久久一区二区 | 成人在线观 | 久久久久成人精品亚洲国产 | 怡红院成人在线视频 | 日韩成人av在线 | 欧美性视频在线播放 | 午夜欧美 | 91久久北条麻妃一区二区三区 | 91麻豆产精品久久久久久夏晴子 | 日韩精品 电影一区 亚洲 | 最新毛片网站 | 九九99九九精彩46 | 免费国产视频 | 一级毛片视频在线 |