導航:首頁 > 操作系統 > 單片機兩個開關控制一個燈閃爍

單片機兩個開關控制一個燈閃爍

發布時間:2025-03-31 15:52:32

❶ 51單片機的按鍵控制小燈亮滅的問題(程序類型:c語言)怎麼解決

#include
#define uint unsigned int
sbit LED = P1^0;
sbit KEY1 = P1^2;
void delay(uint);
void main(void)
{
LED = 1; //初始化LED熄滅
KEY1 = 1; //賦值KEY1高電平
while(1)
{
if(!KEY1) //檢測到按鍵按下
{
LED = ~LED; /*LED取反,此時LED = 0,燈亮。當鬆手時,KEY1 = 1,不滿足if語句不
進入循環,LED繼續保持當前狀態即LED = 0,如果再次按下按鍵,此時檢測到KEY1 = 0,進入循
環,LED取反得到LED = 0,燈亮。*/
delay(500); /*此處延遲,保證連續兩次按鍵動作處在程序的延時過程中,不進行其他程序從而不會影響小燈。*/
}
}

}
void delay(uint z) //延時函數
{
uint x, y;
for(x=85; x>0; x--)
for(y=z; y>0; y--);
}

可下載到單片機驗證。

❷ 51單片機,用兩個按鍵分別控制兩個led,一個亮/滅,另一個閃爍/滅,為什麼我按下了第二個燈不閃呢

你的led1=~led1;這個語句沒有循環,所以只會反轉一次。要麼加循環,要麼再寫一個閃爍函數。

voidled_filcker(usignedcharx)

{

while(x)

{

led1=~led1;

x--:

}

}

如果你是想,按一下,松開也會閃爍,再按一下熄滅。你得定義一個變數來表示按鍵的按下。

#include<reg52.h>

#define uchar unsigned char

bit stop=1;

sbit k5=P1^4;

void delay(uchar xms)

{

while(xms--);

}

void main()

{

if(k5==0)

{

delay(1000);

if(k5==0)

{

while(k5==0)

{

if(stop)

<<<<<<<<<<<<<<<此處執行你的語句

else

stop=~stop:

}

}

}
}


❸ 求兩個獨立開關控制點亮一個led燈的原理圖

1. 雙控開關基礎電路圖當K1扳到1位置的時候,k2扳到3位置,電路接通,電燈亮,此時,再扳動任何一個開關,都能使電燈熄滅。這屬於兩地開關控制

❹ c51單片機:兩個獨立按鍵控制一個led,k1按下松開led閃爍,k2按下松開led滅


#include"reg52.h"
typedefunsignedintu16;
typedefunsignedcharu8;
sbitled=P2^0;//把所要控制的led燈定義為p2.0這個口
sbitk1=P2^1;
sbitk2=P2^2;

voiddelay(u16i)
{
while(i--);
}//一個延時程序
voidmain()
{
if(k1==1)
while(1)
{
led=1;
delay(50000);//大約延時450ms
led=0;
if(k2==1)
break;
}
led=0;
}

思路很簡單,就是用檢測的方法去掃描相應的按鍵是否被觸發,然後執行相應的子程序。

閱讀全文

與單片機兩個開關控制一個燈閃爍相關的資料

熱點內容
為什麼要編譯源代碼 瀏覽:819
輸入法freetype交叉編譯 瀏覽:436
電阻單片機代號 瀏覽:469
來畫app怎麼添加對話框 瀏覽:318
python序列化分布式 瀏覽:107
域名伺服器是什麼形式 瀏覽:681
rsa加密解密速度快 瀏覽:924
mac電腦如何單片機開發 瀏覽:547
紀念日app怎麼用小插件 瀏覽:331
如何更改安卓手機所在地區 瀏覽:217
程序員負債120萬 瀏覽:80
階層pdf 瀏覽:380
linuxgit安裝配置 瀏覽:319
用源碼搭建app要改什麼 瀏覽:42
密碼學教程pdf 瀏覽:3
亞馬遜做的加密貨幣 瀏覽:81
怎麼搭建雲播伺服器 瀏覽:867
網站客服機器人源碼 瀏覽:317
2021程序員的出路 瀏覽:547
發行與承銷pdf 瀏覽:945