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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機呼吸燈程序調試問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:143767 發表于 2022-4-20 10:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位好,想請教大家下面的程序哪里有問題,問題描述:這是一個按鍵控制呼吸燈的程序,正常情況下按鍵按一下呼吸燈打開慢慢到最亮,再按一下按鍵呼吸燈慢慢熄滅,但是現在打開時呼吸燈最亮一下然后熄滅,再慢慢到最亮,不知問題出在哪里

單片機源程序如下:
#include <reg52.h>
unsigned char ID=0;
unsigned int Toff=0;
sbit LED=P1^0;         
sbit S1=P1^1;   
void no();
void off();
void Delay(unsigned int t);
void main(void)
{
   S1=1;
   LED=1;
   while(1)
   {
     if(S1==0)
     {
      Delay(500);                          
       if(S1==0)
         {
                                        while(S1==0);           
          ID++;
          if(ID==3)
                                         
          {
           ID=0;
          }
         }
          switch(ID)
{
          case 1:
          no();
          break;
          case 2:
          off();
          break;
          }
      }
  }
}

void no(void)
{
         
     for(Toff=1;Toff<500;Toff++)  
      {
               LED=0;                                         
               Delay(Toff);            
               LED=1;                                         
              Delay(500-Toff);           
      }  
      LED=0;
                        Delay(1000);
//      while (1);
}
void off(void)
{                        
   for(Toff=500;Toff>0;Toff--)   
    {
             LED=0;                     
             Delay(Toff);               
             LED=1;                    
            Delay(500-Toff);            
     }
      LED=1;
                 Delay(1000);
//      while (1);
}

void Delay(unsigned int t)   
{                        
while(--t);                 
}

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

使用道具 舉報

沙發
ID:121859 發表于 2022-4-20 15:10 | 只看該作者
可能是你的硬件連接是“1”點亮,還有就是Switch里面,再加一個default:break;分支。
回復

使用道具 舉報

板凳
ID:143767 發表于 2022-4-20 15:29 | 只看該作者
zhxiufan 發表于 2022-4-20 15:10
可能是你的硬件連接是“1”點亮,還有就是Switch里面,再加一個default:break;分支。

好的,謝謝,我試試看
回復

使用道具 舉報

地板
ID:624769 發表于 2022-4-20 16:44 | 只看該作者
本帖最后由 188610329 于 2022-4-20 16:45 編輯

  for(Toff=500;Toff>0;Toff--)     // 要么,這里變501
     {
              LED=0;                     
              Delay(Toff);               
              LED=1;                    
             Delay(500-Toff);            //要么,這里變501
      }

void Delay(unsigned int t)   
{                        
while(--t);                 //又或者這里變 t--
}
回復

使用道具 舉報

5#
ID:624769 發表于 2022-4-20 17:26 | 只看該作者
188610329 發表于 2022-4-20 16:44
for(Toff=500;Toff>0;Toff--)     // 要么,這里變501
     {
              LED=0;                    ...

for(Toff=500;Toff>0;Toff--)    // 要么,這里變499
回復

使用道具 舉報

6#
ID:482001 發表于 2022-4-20 17:46 來自手機 | 只看該作者
樓主把no函數的Toff=1改成Toff=0試試
回復

使用道具 舉報

7#
ID:390416 發表于 2022-4-21 08:30 | 只看該作者
void RGB_Buffer_Allot()
{
        static u8 xdata Blue_PWM,Red_PWM,Green_PWM,CHANGE_Mode=0;
        static u8 count=0;
        count++;
        if(count>100)                                                        //count是速度控制。
        {
                count=0;
                switch(CHANGE_Mode)
                {
                        case 0:       
                                        Red_PWM=0;                               
                                        Green_PWM++;                        //綠燈漸漸亮起
                                        Blue_PWM=0;
                                        if(Green_PWM==255)
                                        {
                                                CHANGE_Mode=2;                //綠燈最亮了,進入2
                                        }
                                        break;
                        case 1:        Red_PWM=0;
                                        Green_PWM--;                        //綠燈漸漸滅掉
                                        Blue_PWM=0;
                                        if(Green_PWM==0)
                                        {
                                                CHANGE_Mode=2;                //綠燈黑了,進入2
                                        }
                                        break;                               
                }                                                               
                PWM_Write_Byte[2]=Green_PWM;
        }
}
這段代碼,你改一下,用按鍵控制(CHANGE_Mode)的狀態就行了。
回復

使用道具 舉報

8#
ID:143767 發表于 2022-4-21 10:25 | 只看該作者
謝謝,謝謝諸位的幫助,我依次調試看看
回復

使用道具 舉報

9#
ID:1006076 發表于 2022-4-22 18:07 | 只看該作者
dj3365191 發表于 2022-4-21 10:25
謝謝,謝謝諸位的幫助,我依次調試看看

樓主結果怎么樣了?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美女爽到呻吟久久久久 | 久久中文字幕一区 | 欧美一区二区三区 | 久久三级av| 国产精品1区2区3区 一区中文字幕 | 国产欧美精品一区二区 | 深夜福利影院 | 日韩免费| 先锋资源网 | 国内精品视频在线 | 亚洲欧美视频一区 | 日韩美香港a一级毛片免费 国产综合av | 亚洲第一女人av | a久久| 国产亚洲一区在线 | 色婷婷激情综合 | 天堂免费看片 | 亚洲国产精品99久久久久久久久 | 成人在线小视频 | 最新国产福利在线 | 欧美二区三区 | 欧美视频在线播放 | 欧美一区二区在线视频 | 亚洲综合二区 | 成人免费看电影 | 最新一级毛片 | 夜夜爽99久久国产综合精品女不卡 | 国产美女在线观看 | 一区二区视频在线 | 在线看av的网址 | 北条麻妃av一区二区三区 | 久草视频网站 | 日韩不卡视频在线观看 | 日本韩国欧美在线观看 | av一区在线 | 成人免费看片 | 国产亚洲精品成人av久久ww | 欧美精品黄 | 欧美午夜精品久久久久免费视 | 欧美日韩亚洲在线 | 久久免费精品 |