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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1513|回復: 5
打印 上一主題 下一主題
收起左側

單片機呼吸燈代碼問題,請教下大神,已經折騰很久了(我是菜鳥)

[復制鏈接]
跳轉到指定樓層
樓主
ID:358564 發表于 2019-6-2 09:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
開發需求是:
1. 剛開始LED1和LED2均滅
2.  LED1漸亮漸滅一次,然后LED1滅。
3.  LED2漸亮漸滅一次,然后LED2滅。
    就這樣一直循環


我寫的代碼為何實現不了,求大神解答,折騰很久了


#include "reg51.h"                        

sbit LED1=P2^0;
sbit LED2=P2^1;


unsigned char cycle=0;
unsigned int step=1;
unsigned int bright=0;


unsigned char cycle2=0;
unsigned int step2;
unsigned int bright2=0;



void test1(void);
void test2(void);
void delay(unsigned int time_i);




void main()
{



  while(1)
  {


    test1();        


    test2();                  


}

}

void test1(void)
{


  if(++cycle >250)
                  {
                  cycle = 0;

                                   switch (step)
                                   {
                                   case 1 :
                                                bright++;
                                                if(bright > 250)
                                                {
                                                step ++;
                                                }break;

                                        case 2 :
                                                bright--;
                                                if(bright < 1)
                                                {
                                                step2 = 1;

                                                }break;

                                   }
                  }

                if(cycle < bright)
                                {
                                        LED1=0;        //燈亮

                                }
                else
                                {
                                        LED1=1;        // 燈滅

                                }








}


void test2(void)
{

if(++cycle2 >250)
                  {
                  cycle2 = 0;

                                   switch (step2)
                                   {
                                   case 1 :
                                                bright2++;
                                                if(bright2 > 250)
                                                {
                                                step2 ++;
                                                }break;

                                        case 2 :
                                                bright2--;
                                                if(bright2 < 1)
                                                {
                                                step = 1;
                                                }break;

                                   }
                  }

                if(cycle2 < bright2)
                                {
                                        LED2=0;        //燈亮

                                }
                else
                                {
                                        LED2=1;        //

                                }








}

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

使用道具 舉報

沙發
ID:517466 發表于 2019-6-3 16:13 | 只看該作者
我的印象里,呼吸燈使用脈寬比控制的,需要控制高低電平的時間比。是不是需要使用定時器,通過動態調節TH、TL的初裝值,來實現輸出不同脈寬比的信號。
回復

使用道具 舉報

板凳
ID:293363 發表于 2019-6-3 17:46 | 只看該作者
你可以看看我之前發的帖子
回復

使用道具 舉報

地板
ID:511890 發表于 2019-6-3 18:16 | 只看該作者
#include "reg51.h"                        

sbit LED1=P1^0;
sbit LED2=P1^1;

unsigned char cycle=0;
unsigned int step=1;
unsigned int bright=0;

unsigned char cycle2=0;
unsigned int step2;
unsigned int bright2=0;

void test1(void);
void test2(void);
void delay(unsigned int time_i);


void main(){
        while(1){
                        test1();          

                        test2();   
                              
        }

}

void test1(void){
        if(++cycle >250){
                cycle = 0;
               
                switch (step){
                        case 1 :
                                bright++;
                                if(bright > 250){
                                        step ++;
                                       
                                }break;
                       

                        case 2 :
                                bright--;
                                if(bright < 1){
                                        step = 3;
                                        step2 = 1;
                                }break;
                       

                }
        }

        if(cycle < bright){
                LED1=0;        //燈亮
        }
        else{
                LED1=1;        // 燈滅
        }

}


void test2(void){
        if(++cycle2 >250){
                cycle2 = 0;
                switch (step2){
                        case 1 :
                                bright2++;
                                if(bright2 > 250){
                                        step2 ++;
                                }break;
                       

                        case 2 :
                                bright2--;
                                if(bright2 < 1){
                                        step2 = 3;
                                        step = 1;
                                }break;
                       
                }
        }

        if(cycle2 < bright2){
                LED2=0;        //燈亮
        }
        else{
                LED2=1;        //
        }

}
換LED的步驟出錯了。將這個和你的程序對照下就清楚了。
回復

使用道具 舉報

5#
ID:461604 發表于 2019-6-5 10:17 | 只看該作者
漸亮漸滅需要用PWM實現
回復

使用道具 舉報

6#
ID:358564 發表于 2019-6-8 10:41 | 只看該作者
幻劍心 發表于 2019-6-3 18:16
#include "reg51.h"                        

sbit LED1=P1^0;

好的,非常感謝
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产aⅴ精品一区二区 免费观看av | 久久久久久久一级 | 老外黄色一级片 | 大象一区 | 久久69精品久久久久久久电影好 | 亚洲一区二区视频 | 91成人免费 | 怡红院成人在线视频 | 亚洲国产精品自拍 | 欧美视频1| 一区二区三区免费网站 | 国产精品国产精品国产专区不卡 | 国产美女视频 | 亚洲免费人成在线视频观看 | 国内自拍第一页 | 国产精品美女久久久久久不卡 | 国产清纯白嫩初高生视频在线观看 | 色天堂影院 | 午夜精品久久久久久久久久久久 | 国产精品久久久久影院色老大 | www视频在线观看 | 亚洲精品久久久9婷婷中文字幕 | 一区二区三区国产在线观看 | 91精品国模一区二区三区 | www.日韩高清 | 亚洲欧美在线视频 | 欧美视频| 亚洲欧美一区二区三区在线 | 欧美一级久久 | 日韩成人免费视频 | 久久久久久久久国产 | 午夜不卡一区二区 | 色婷婷亚洲国产女人的天堂 | 欧美一区二区黄 | 日韩福利在线 | 亚洲一区二区三区四区在线观看 | 欧美a区| 亚洲欧美中文字幕 | 99免费在线观看 | 一区二区在线免费观看 | 精品欧美激情在线观看 |