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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

51單片機(jī)功能實(shí)現(xiàn) 啟動(dòng)條件,不自鎖開(kāi)關(guān)1按下 燈1,2,3,4閃爍, 傳感器1,2,3,4觸發(fā)...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
50黑幣
啟動(dòng)條件,不自鎖開(kāi)關(guān)1按下
燈1,2,3,4閃爍,
傳感器1,2,3,4觸發(fā),對(duì)應(yīng)燈1,2,3,4長(zhǎng)亮,未感應(yīng)到的繼續(xù)閃爍,
若4盞燈同時(shí)亮則結(jié)束程序等待下一次啟動(dòng)信號(hào)
在程序運(yùn)行過(guò)程中只要自鎖開(kāi)關(guān)2按下程序全部停止,
自鎖松開(kāi),開(kāi)關(guān)1按下程序從頭運(yùn)行。
求大神給我一個(gè)大概的思路用什么方法去實(shí)現(xiàn)。下面是我的一部分其他的不知道怎么寫了

#include<reg51.h>
sbit S1=P3^6;
sbit LED0=P1^0;
sbit LED1=P1^1;
sbit LED2=P1^2;
sbit LED3=P1^3;
void Delay(unsigned int t);
void main (void)
{



while (1)        
  {
    if(S1==1)
     {
      LED0=0;
          LED1=0;
          LED2=0;
          LED2=0;

      Delay(10000);     

      LED0=1;  
          LED1=1;
          LED2=1;
          LED3=1;         
      Delay(10000);
     }                 
  }
}

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



最佳答案

查看完整內(nèi)容

基于我的代碼加幾個(gè)中大括號(hào)就行了 自己想一下
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:161164 發(fā)表于 2022-11-9 21:04 | 只看該作者
小菜苗 發(fā)表于 2022-11-10 10:17
如果我是開(kāi)關(guān)1按下,燈1閃爍,傳感器1觸發(fā)燈1常亮,燈1常亮以后燈2閃爍,傳感器2觸發(fā)燈2常亮,燈2常亮以 ...

基于我的代碼加幾個(gè)中大括號(hào)就行了
自己想一下
回復(fù)

使用道具 舉報(bào)

板凳
ID:1050923 發(fā)表于 2022-11-9 22:22 | 只看該作者
大佬們可不可以用if ... else if ...else if...來(lái)實(shí)現(xiàn)呀
回復(fù)

使用道具 舉報(bào)

地板
ID:161164 發(fā)表于 2022-11-9 22:40 | 只看該作者

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:195496 發(fā)表于 2022-11-10 09:59 | 只看該作者
這個(gè)方案應(yīng)該采用一個(gè)定時(shí)器產(chǎn)生閃爍信號(hào),按鍵由于只檢測(cè)觸發(fā),所以不用采用按鍵延時(shí)方法處理。檢測(cè)到按鍵后,產(chǎn)生一個(gè)標(biāo)志,再判斷標(biāo)志去檢測(cè)傳感器,傳感器信號(hào)置位一個(gè)標(biāo)志,該標(biāo)志與閃爍信號(hào)進(jìn)行位運(yùn)算產(chǎn)生最終位標(biāo)志,驅(qū)動(dòng)LED,當(dāng)四路傳感器標(biāo)志全為1時(shí),清除LED指示燈及傳感器標(biāo)志位,返回停止?fàn)顟B(tài)
回復(fù)

使用道具 舉報(bào)

6#
ID:1050923 發(fā)表于 2022-11-10 10:17 來(lái)自手機(jī) | 只看該作者
lkc8210 發(fā)表于 2022-11-9 22:40

如果我是開(kāi)關(guān)1按下,燈1閃爍,傳感器1觸發(fā)燈1常亮,燈1常亮以后燈2閃爍,傳感器2觸發(fā)燈2常亮,燈2常亮以后燈3閃爍,傳感器3觸發(fā)燈3常亮,燈3常亮以后燈4閃爍,傳感器4觸發(fā)燈4常亮。所有燈都常亮后停止運(yùn)行等待下一次啟動(dòng),開(kāi)關(guān)2還是急停作用。這個(gè)應(yīng)該用什么方法去實(shí)現(xiàn)呢
回復(fù)

使用道具 舉報(bào)

7#
ID:195496 發(fā)表于 2022-11-10 12:20 | 只看該作者
這個(gè)一樣的,按照順序控制進(jìn)行,開(kāi)關(guān)1觸發(fā)后,寫燈1標(biāo)志位,允許燈1進(jìn)入工作態(tài),用閃爍信號(hào)與傳感器觸發(fā)信號(hào)來(lái)控制燈1,燈1常亮標(biāo)志允許燈2進(jìn)入工作態(tài),依次類推,不是很難
回復(fù)

使用道具 舉報(bào)

8#
ID:77589 發(fā)表于 2022-11-10 13:48 | 只看該作者
說(shuō)實(shí)話,你的需求都沒(méi)有表述清楚!
還有,你程序初始化部分都沒(méi)有。
回復(fù)

使用道具 舉報(bào)

9#
ID:1050923 發(fā)表于 2022-11-10 14:32 來(lái)自手機(jī) | 只看該作者
大漠落日 發(fā)表于 2022-11-10 12:20
這個(gè)一樣的,按照順序控制進(jìn)行,開(kāi)關(guān)1觸發(fā)后,寫燈1標(biāo)志位,允許燈1進(jìn)入工作態(tài),用閃爍信號(hào)與傳感器觸發(fā)信 ...

對(duì)于你們大佬來(lái)說(shuō)簡(jiǎn)單,我們小白就難了呀,大佬能指導(dǎo)一下程序怎么改么
回復(fù)

使用道具 舉報(bào)

10#
ID:1051345 發(fā)表于 2022-11-10 14:53 | 只看該作者
這個(gè)方案可以使用一個(gè)定時(shí)器根據(jù)指置時(shí)間間隔來(lái)翻轉(zhuǎn)四根引腳,產(chǎn)生四路閃爍信號(hào),使用四個(gè)外部中斷接入四個(gè)傳感器觸發(fā)信號(hào),在外部中斷程序里置對(duì)應(yīng)引腳停止翻轉(zhuǎn)標(biāo)志,定時(shí)中斷里根據(jù)停止翻轉(zhuǎn)標(biāo)志來(lái)停止翻轉(zhuǎn)引腳,并置相應(yīng)引腳高電平。當(dāng)四個(gè)停止翻轉(zhuǎn)標(biāo)志都置位時(shí),定時(shí)器停止運(yùn)行,再次檢測(cè)到啟動(dòng)信號(hào),再開(kāi)啟定時(shí)器的運(yùn)行。
回復(fù)

使用道具 舉報(bào)

11#
ID:1051345 發(fā)表于 2022-11-10 15:01 | 只看該作者
這個(gè)方案可以使用定時(shí)器,在定時(shí)中斷程序里翻轉(zhuǎn)四根IO引腳產(chǎn)生四路閃爍信號(hào),使用外部中斷接收四個(gè)傳感器輸入信號(hào),在外部中斷程序里對(duì)相應(yīng)IO引腳是否翻轉(zhuǎn)置失能標(biāo)志,定時(shí)中斷程序里檢測(cè)到該標(biāo)志則停止翻轉(zhuǎn)相應(yīng)IO引腳,并置高電平。當(dāng)四個(gè)標(biāo)志都置位時(shí),停止定時(shí)器。當(dāng)再檢測(cè)到輸入信號(hào)時(shí),開(kāi)啟定時(shí)器。
回復(fù)

使用道具 舉報(bào)

12#
ID:1050923 發(fā)表于 2022-11-10 16:48 來(lái)自手機(jī) | 只看該作者
Longan.Wang 發(fā)表于 2022-11-10 13:48
說(shuō)實(shí)話,你的需求都沒(méi)有表述清楚!
還有,你程序初始化部分都沒(méi)有。

就是不曉得怎么去搞
回復(fù)

使用道具 舉報(bào)

13#
ID:1050923 發(fā)表于 2022-11-10 16:56 來(lái)自手機(jī) | 只看該作者
Longan.Wang 發(fā)表于 2022-11-10 13:48
說(shuō)實(shí)話,你的需求都沒(méi)有表述清楚!
還有,你程序初始化部分都沒(méi)有。

下面有要求更加全一些的,這是我自己想的,不是很全面,謝謝大哥提意見(jiàn)
回復(fù)

使用道具 舉報(bào)

14#
ID:1051382 發(fā)表于 2022-11-10 17:05 | 只看該作者
可以研究一下,謝謝樓主
回復(fù)

使用道具 舉報(bào)

15#
ID:1050923 發(fā)表于 2022-11-10 17:48 來(lái)自手機(jī) | 只看該作者
小菜苗 發(fā)表于 2022-11-10 16:56
下面有要求更加全一些的,這是我自己想的,不是很全面,謝謝大哥提意見(jiàn)

就是這個(gè)邏輯

6E4A08DF-0972-45B5-B857-1F455A764746.jpeg (809.53 KB, 下載次數(shù): 99)

6E4A08DF-0972-45B5-B857-1F455A764746.jpeg
回復(fù)

使用道具 舉報(bào)

16#
ID:1050923 發(fā)表于 2022-11-10 20:31 | 只看該作者
lkc8210 發(fā)表于 2022-11-10 17:52
基于我的代碼加幾個(gè)中大括號(hào)就行了
自己想一下

之前的代碼我感覺(jué)都不能實(shí)現(xiàn)功能
回復(fù)

使用道具 舉報(bào)

17#
ID:1050923 發(fā)表于 2022-11-10 21:07 | 只看該作者
小菜苗 發(fā)表于 2022-11-10 20:31
之前的代碼我感覺(jué)都不能實(shí)現(xiàn)功能

大佬是我自己搞錯(cuò)了定義的端口啦,
回復(fù)

使用道具 舉報(bào)

18#
ID:1050923 發(fā)表于 2022-11-10 23:21 | 只看該作者
#include<reg51.h>
typedef   unsigned char  u8;
typedef   unsigned int  u16;
typedef   unsigned long  u32;
sbit S1=P3^6;
sbit S2=P3^7;


sbit Sensor1 = P2^0;
sbit Sensor2 = P2^1;
sbit Sensor3 = P2^2;
sbit Sensor4 = P2^3;


sbit LED1=P1^0;
sbit LED2=P1^1;
sbit LED3=P1^2;
sbit LED4=P1^3;



void Delay1ms()
   {
     unsigned char i,j;
         i=2;
         j=239;
         do
         {
            while(--j);
         }
         while(--i);
   }

void main(void)
{
      u16 DelayCnt = 0;
          bit Flash1 = 0,Flash2 = 0, Flash3 = 0,Flash4 = 0, Start = 0;

          while(1)
          {
            if(S1==0)
                  {
                    Start = 1;
                        Flash1 = 0;
                        Flash2 = 0;
                        Flash3 = 0;
                        Flash4 = 0;
                       
                  }
                if(S2==0)
                  {
                   Start = 0;
                   DelayCnt = 0;
                   Flash1 = 0;
                   Flash2 = 0;
                   Flash3 = 0;
                   Flash4 = 0;
                   LED1=1;
                   LED2=1;
                   LED3=1;
                   LED4=1;
                  
                  }
                 if(Sensor1==0)Flash1 = 1;
                 if(Sensor2==0)Flash2 = 1;
                 if(Sensor3==0)Flash3 = 1;
                 if(Sensor4==0)Flash4 = 1;       
                 

                 if(Start)
                 {
                     if(DelayCnt++>=1000)
                         {
                             DelayCnt = 0;
                                 if(Flash1==0)
                                    LED1=!LED1;
                                 else
                                    LED1=0;

                                 if(Flash1==1)
                                      {
                                          
                                      DelayCnt = 0;
                                          if(Flash2==0)
                                             LED2=!LED2;
                                          else
                                            LED2=0;
                                                                if(Flash2==1)
                                                    {
                                          
                                                   DelayCnt = 0;
                                                       if(Flash3==0)
                                                          LED3=!LED3;
                                                       else
                                                          LED3=0;
                                                                                      if(Flash3==1)
                                                                  {
                                          
                                                                DelayCnt = 0;
                                                                    if(Flash4==0)
                                                                       LED4=!LED4;
                                                                    else
                                                                       LED4=0;
                                                                                                   }
                                                                         }
                                          }
                                 
                               
                         }
                 
                 
                 }
                 
                Delay1ms();
          }






}感謝大佬們的不吝指導(dǎo),雖有艱難但也完成,感謝
回復(fù)

使用道具 舉報(bào)

19#
ID:1050923 發(fā)表于 2022-11-11 12:06 來(lái)自手機(jī) | 只看該作者
lkc8210 發(fā)表于 2022-11-9 22:40

哈嘍,你可不可以幫我看一下,我的那個(gè)最后程序,現(xiàn)在傳感器2.3.4觸發(fā),燈234也會(huì)亮,我的設(shè)計(jì)初衷是只有1亮了,2才能亮,12亮了3才能亮,123亮了4才能亮,指導(dǎo)一下唄
回復(fù)

使用道具 舉報(bào)

20#
ID:855733 發(fā)表于 2022-11-11 15:57 | 只看該作者
小菜苗 發(fā)表于 2022-11-11 12:06
哈嘍,你可不可以幫我看一下,我的那個(gè)最后程序,現(xiàn)在傳感器2.3.4觸發(fā),燈234也會(huì)亮,我的設(shè)計(jì)初衷是只有 ...

你把 if(Sensor2==0)Flash2 = 1; if(Sensor3==0)Flash3 = 1; if(Sensor4==0)Flash4 = 1;   一層一層套進(jìn)去不就好了嗎,只有1觸發(fā),燈1亮,1觸發(fā)的前提下,2再觸發(fā)燈2亮,
回復(fù)

使用道具 舉報(bào)

21#
ID:161164 發(fā)表于 2022-11-11 16:56 | 只看該作者
小菜苗 發(fā)表于 2022-11-11 12:06
哈嘍,你可不可以幫我看一下,我的那個(gè)最后程序,現(xiàn)在傳感器2.3.4觸發(fā),燈234也會(huì)亮,我的設(shè)計(jì)初衷是只有 ...
  1.                 if(Sensor1==0)Flash1 = 1;
  2.                 if(Flash1)if(Sensor2==0)Flash2 = 1;
  3.                 if(Flash2)if(Sensor3==0)Flash3 = 1;
  4.                 if(Flash3)if(Sensor4==0)Flash4 = 1;
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91久色| 精品一区二区三区免费视频 | 成人精品在线视频 | 一级毛片免费 | 国产精品免费一区二区三区四区 | 美日韩精品 | 免费在线精品视频 | 蜜桃视频成人 | 欧美精三区欧美精三区 | 午夜寂寞网站 | 免费看爱爱视频 | 一区二区三区四区视频 | 一区二区av | 久久久久久黄 | 在线第一页 | 99tv成人影院 | www.国产视频 | 最新国产精品 | 看片wwwwwwwwwww| 日韩成人在线视频 | 一区二区三区国产好的精 | 91www在线观看 | 日韩精品一区二区三区中文字幕 | 国产999精品久久久久久 | 日本天堂视频在线观看 | 99精品免费 | aaa级片| 午夜影院网站 | 国产精品毛片一区二区三区 | 在线日韩欧美 | 精品国产一级 | 久久精品国产99国产精品 | 欧美一级二级三级视频 | 中文字幕第十五页 | 久久草视频 | 日韩一级免费大片 | 日韩成人性视频 | 欧美日韩在线一区二区三区 | 亚洲影视在线 | 在线免费观看成人 | 激情 亚洲|