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

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

發布時間: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;
}

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

閱讀全文

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

熱點內容
無錫代碼編程培訓班 瀏覽:627
eps圖形數據加密 瀏覽:928
沒有滴滴app怎麼打車 瀏覽:100
大數乘法java 瀏覽:1000
如何登錄伺服器看源碼 瀏覽:525
如何做伺服器端 瀏覽:156
注冊伺服器地址指什麼 瀏覽:433
文本命令行 瀏覽:97
撲克牌睡眠解壓 瀏覽:194
rc4演算法流程圖 瀏覽:159
胡蘿卜解壓方法 瀏覽:35
掃描pdf格式軟體 瀏覽:877
程序員在銀行開賬戶 瀏覽:516
android資料庫下載 瀏覽:750
中午伺服器崩潰怎麼辦 瀏覽:425
產品經理和程序員待遇 瀏覽:442
解憂程序員免費閱讀 瀏覽:109
錄像免壓縮 瀏覽:508
總結所學過的簡便演算法 瀏覽:362
南昌哪些地方需要程序員 瀏覽:761