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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2569|回復: 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免费网址 | 午夜影院普通用户体验区 | 日韩图区 | 欧美二区在线 | 丝袜美腿一区二区三区动态图 | 中文字幕一区二区三区四区 | 成人在线亚洲 | 欧美另类视频 | www.9191.com| 国产乱码久久久久久 | 国产成人精品网站 | 男女免费在线观看视频 | 国产黄色小视频在线观看 | 91精品无人区卡一卡二卡三 | 中文字幕一区在线 | 精品一区二区在线视频 | 亚洲人成人一区二区在线观看 | av在线视 | 性xxxxx | 欧美一级片在线看 | 欧美 日韩 国产 一区 | 欧美精品在线观看 | 国产日韩欧美精品 | 日韩精品一区二区三区高清免费 | 国产欧美日韩久久久 | 特黄视频 | 亚洲欧洲在线看 | 激情黄色在线观看 | 精品九九九 | 在线观看 亚洲 | 日本一区二区三区在线观看 | 国产福利91精品 | 亚洲欧美日本在线 | 欧洲精品久久久久毛片完整版 | 日本久久精品视频 | 91精品久久久久久久久久入口 | 国产美女在线观看 | 久久高清|