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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

下面是單片機按一次燈亮且報警,松開按鍵解除報警怎么改讓它按鍵按下報警,再按解除...

[復制鏈接]
跳轉到指定樓層
樓主
ID:1045644 發(fā)表于 2022-9-23 11:49 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "reg51.h"         
void     delay(unsigned int i);
sbit K=P0^0;                     
sbit beep=P1^0;                  
sbit green=P1^1;                 
sbit red=P1^2;                  
void  main()
{
  green=0;     
  red=1;   
  while(1)
   {
     if(K==0)            
      {
        delay(200);   
        if(K==0)        
          {
            green=1;   
            red=0;      
            beep=0;     
            delay(100);
            red=1;      
            beep=1;  
               
         }
      }
     else
        green=0;     
   }
}

void     delay(unsigned int i)            
{
unsigned int k;
for(k=0;k<i;k++);
}


IIX@DE)[(OLQ@4[%9(1%5MO.png (44.32 KB, 下載次數(shù): 42)

IIX@DE)[(OLQ@4[%9(1%5MO.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:752974 發(fā)表于 2022-9-23 15:12 | 只看該作者
可以采用計數(shù)的方法,定義一個變量,初始值為0,按一次按鍵加1,然后判斷變量的值,當變量等于1時報警,為2時接觸報警,同時清變量。
回復

使用道具 舉報

板凳
ID:1045628 發(fā)表于 2022-9-23 16:04 | 只看該作者
用一個變量做標識,
char a = 1;

if(K == 0)//這是檢測到按下的狀態(tài)?
{
if(a)
{
     a = 0;
     //報警亮燈代碼

    //
}
else
{
     a = 1;
     //解除報警,滅燈代碼

     //
}
}

不過你這個按鍵識別應該在軟件上做一個防抖動濾波

回復

使用道具 舉報

地板
ID:1045628 發(fā)表于 2022-9-23 17:33 | 只看該作者
rctty 發(fā)表于 2022-9-23 16:04
用一個變量做標識,
char a = 1;

這里的K == 0  改成按下到彈起整個過程的狀態(tài),可以通過另一個變量來解決,
比如改成 b == 1,
就有
先判斷按下到談起的狀態(tài)
if(K == 0)//按鈕按下
{
     while(K == 0);//等待按鈕彈起
    b = 1;
}

當然,這里的while強制等待是不太合適的,這樣會卡住單片機的運行,可以通過定時器之類的方法進行改善


回復

使用道具 舉報

5#
ID:1045644 發(fā)表于 2022-9-24 09:52 | 只看該作者
munuc_w 發(fā)表于 2022-9-23 15:12
可以采用計數(shù)的方法,定義一個變量,初始值為0,按一次按鍵加1,然后判斷變量的值,當變量等于1時報警,為2 ...

可不可以寫一下具體程序,初學單片機,好多都還不懂
回復

使用道具 舉報

6#
ID:1045644 發(fā)表于 2022-9-24 10:17 | 只看該作者
rctty 發(fā)表于 2022-9-23 17:33
這里的K == 0  改成按下到彈起整個過程的狀態(tài),可以通過另一個變量來解決,
比如改成 b == 1,
就有

你好,請問能不能幫我寫一下具體的程序,初學單片機然后有些還不是很懂,謝謝
回復

使用道具 舉報

7#
ID:176854 發(fā)表于 2022-9-24 15:51 | 只看該作者
根據上面的建議修改的程序

#include "reg51.h"         
void     delay(unsigned int i);
sbit K=P0^0;                     
sbit beep=P1^0;                  
sbit green=P1^1;                 
sbit red=P1^2;      
unsigned char Flag = 0;
void  main()
{
  green=0;     
  red=1;   
  while(1)
   {
     if(K==0)            
      {
        while(K==0);                       
        Flag = ~Flag;
      }
     if(Flag)
                 {
                   green=1;   
       red=0;      
       beep=0;     
       delay(100);
       red=1;      
       beep=1;
                 }
                 else
                 {
                   green=0;
                         red=1;
       beep=1;                         
                 }
   }
}

void     delay(unsigned int i)            
{
unsigned int k;
for(k=0;k<i;k++);
}

回復

使用道具 舉報

8#
ID:137736 發(fā)表于 2022-9-24 21:30 | 只看該作者
設置個標注位,按鍵翻轉標注位,檢測標注位決定是否報警。
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 激情五月婷婷 | 国产免费一区二区 | 亚洲国产第一页 | 国产精品久久久久久久久久三级 | 久久人人爽人人爽 | 日本理论片好看理论片 | 亚洲视频一区二区三区 | 日本中文在线 | 欧美精品tv | 精品乱子伦一区二区三区 | 色吊丝2288sds中文字幕 | 欧美一区二区三区视频 | 亚洲美女视频 | 一区在线视频 | 97久久精品午夜一区二区 | 国产精品99久久久久 | 秋霞av国产精品一区 | 欧美高清视频一区 | 一区二区三区回区在观看免费视频 | 国产高清视频在线播放 | 日韩欧美一区二区三区免费看 | 欧美一区日韩一区 | 久久免费观看一级毛片 | 五月婷亚洲 | 黄a网 | 亚洲午夜一区二区 | 国产三级电影网站 | 成人依人| 国户精品久久久久久久久久久不卡 | 超碰成人在线观看 | 伊人一二三| 亚洲免费成人 | 四色永久| 看av网址| 99久久久久国产精品免费 | 99精品久久久 | av男人天堂影院 | av片免费 | 欧美伊人久久久久久久久影院 | 91精品国产综合久久久久蜜臀 | 亚洲视频www |