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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

新手求助,51單片機燈閃五下,蜂鳴器響一下,現在是同時閃和響,謝謝

  [復制鏈接]
跳轉到指定樓層
樓主
ID:876967 發表于 2021-1-12 22:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "reg51.h"
#include "delay.h"
#include "led_flash.h"
#include "beep.h"


void main()
{
        static int y;
        delay(10);
        while (1)
         {
        
        if (y<=5)
        {
        y++;
        led_flash();
        }
        y = 0;
          beep();

         }


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

使用道具 舉報

沙發
ID:317966 發表于 2021-1-12 23:28 | 只看該作者
把你的led-flasfh()和beep()發出來,不然看不出來

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:235200 發表于 2021-1-12 23:50 | 只看該作者
if (y<=5)改成while(y<5),同時在前面加一條y=0;

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:342822 發表于 2021-1-13 00:12 | 只看該作者
閃五下,蜂鳴器響一下。那就缺Y=5的判斷,y=5時蜂鳴器響,響多長時間由延遲確定然后y=0再次循環

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

5#
ID:390416 發表于 2021-1-13 01:11 | 只看該作者
關于這種小程序 你可以觀看《人人學會單片機》第12課,學習框架式編程方式的操作方式。

不管多少顆燈各自閃爍。只需要尋找一個公倍數就行了。
回復

使用道具 舉報

6#
ID:584814 發表于 2021-1-13 08:14 | 只看該作者
無需把 led-flasfh() 和 beep() 發出來,僅main() 也能清楚地看出來:
void main()   {    static int y;  //變量Y,沒有給初值
        delay(10);  //延時
        while (1)  //開始無條件循環
         {      if (y<=5)   {   y++;      led_flash();     }  //只要Y是不大于5就加1并閃燈
                y = 0;   //然后賦值為零,不管前面Y初值有木有或加到多少(只能加到1)都歸零
                beep();   //無條件地響一下
         }  //以上無條件循環所以感覺就是同閃同響
}

可以改成:
void main()   {    static int y;  y=0; //變量Y初值0
        delay(10);  //延時
        while (1)
        {      if (y<5)   {     led_flash();     y++;    }  //只要Y從0到4加1并閃燈
                  else      {     beep();         y = 0;   }  //閃5次后響一聲并Y歸零
         }  
}
回復

使用道具 舉報

7#
ID:855897 發表于 2021-1-13 08:56 | 只看該作者
  beep();下面加點延時試試。
回復

使用道具 舉報

8#
ID:844772 發表于 2021-1-13 09:07 | 只看該作者
delay 和判斷的位置錯了。
void main()
{
        static int y;
        while (1)
         {
            if (y==5)
           {
            y = 0;
            beep();
          }
        y++;
       led_flash();
       delay(10);
      }
}
回復

使用道具 舉報

9#
ID:367934 發表于 2021-1-13 09:32 | 只看該作者
單片機里面的編程還是要多注意一些細節。還有c語言基礎要了解,至少一些循環語句的使用要清楚。你這段代碼有幾個問題:
一、定義變量y的時候沒有初始化就進行y++。有時候不會出現問題,有時候那可是致命的問題。沒有初始化的定義不一定0,所以進行判斷的時候就不會成立。
二、if判斷語句使用有問題。if只是一個判斷不是循環。所以if條件每次都成立進入后y+1跳出后又把0賦值給y。所以這段代碼使用的if是沒有意義的。跟一些方式是一樣的:
while(1)
{
led_flash();
beep();
}
三、延時問題。delay(10);延時的位置無意義。
void main()
{
while (1)
{
//這里是主循環
delay(10);//在這延時才有用
}
}
燈閃5下,蜂鳴器響一下你可以用for循環比較簡單。流程上也比較易懂。
int i;
for(i=0;i<5;i++)
{
}
方式有很多種可以多嘗試一些



回復

使用道具 舉報

10#
ID:136485 發表于 2021-1-13 09:35 | 只看該作者
void main()
{
static int y;
delay(10);
while(1)
{
  for(;y<5;y++)
   {
    led_flash();
   }
  y=0;
  beep();
}
}
回復

使用道具 舉報

11#
ID:238363 發表于 2021-1-13 15:30 | 只看該作者
你這while循環里沒有延時,閃五下,蜂鳴器響一下這個功能已經實現了,只是速度太快你分辨不出來
回復

使用道具 舉報

12#
ID:293933 發表于 2021-1-13 18:11 | 只看該作者
適得府君書 發表于 2021-1-13 09:32
單片機里面的編程還是要多注意一些細節。還有c語言基礎要了解,至少一些循環語句的使用要清楚。你這段代碼 ...

靜態型變量應該不用賦初值也可以吧,默認是0.
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人午夜视频在线观看 | 欧美性猛交一区二区三区精品 | 国产剧情在线 | 欧美日韩高清在线 | 日本少妇做爰全过程毛片 | 亚洲小视频在线观看 | 成人午夜小视频 | 日韩一区二区免费视频 | 日韩不卡在线观看 | 欧美日韩91 | 国产视频一二区 | 国产激情网 | 日韩精品在线观看视频 | www四虎| 国产精品视频免费在线观看 | 久久久精品在线 | 日本在线免费观看视频 | 欧美午夜在线 | 午夜网址 | 色婷婷狠狠 | 在线观看欧美日韩视频 | 日韩欧美不卡 | 国产精品久久久久久久 | 91av视频在线观看 | 欧美片网站免费 | 嫩草在线视频 | 一区在线观看视频 | 91视频亚洲 | 伊人网在线播放 | 天堂中文在线资源 | 看国产毛片| 久久久久久久国产精品 | 成人女同在线观看 | 欧美日韩综合网 | 国产精品96 | 中文字幕偷拍 | 国产一区二区中文字幕 | 国产欧美一区二区精品忘忧草 | 久久精品国产精品 | 中文有码在线 | 精品视频久久 |