導航:首頁 > 操作系統 > 單片機矩形按鍵控制燈

單片機矩形按鍵控制燈

發布時間:2022-08-05 11:12:15

❶ 52單片機,矩陣按鍵怎麼一個鍵控制一個燈(亮滅),主函數里要怎麼加程序

可以啊,可以根據按鍵時間的長短,和高低電平來實現。比如,長按1s為高電平是一個功能,長按2s是另一個功能。 步驟為:先讀取某個io口的值,若為高電平(if 按鍵高電平有效),則延時1s,最後再讀取一次該io口的值,若繼續為高電平,則調用你要的功能即可。

❷ 單片機通過按鈕控制一個LED小燈的亮滅,請問這個程序怎麼寫

led應該是一個變數,是代表led燈 亮或者滅的一個變數。 當你按下開關後,s1==0,就執行 led=!led 這條語句。 led=!led
的意思就是取反的意思,即原來led燈亮的話 執行該條語句後就變成滅;原來滅的話 執行該條語句後
就變成亮。按鍵按下就打控制燈的io取反就可以了。如:if(key1==1){while(key1==1); //
等待按鍵放開led1=~led1;}

❸ 單片機怎麼用簡單按鍵控制LED

#include "reg52.h"

#define uchar unsigned char
#define uint unsigned int

sbit led =P1^0;//假設燈在P1.0

sbit key1=P2^0;//假設按鍵在P2.0和P2.1
sbit key2=P2^1;//

void delay_1s(uint x)//延時
{
uint y;
uint z; //如果延時不夠長可以把z的值加大
while(x--)
{
for(y=0;y<50000;y++)
{
z=200;;
while(z--);
}
}
}

void main(void)

{
led=1; //不亮

while(1)
{
if(key1==0 && key2==1)//按鍵1按下,按鍵2沒按
{
led=0; //亮
}
else if(key1==1 ) //按鍵1釋放或未按時,燈滅
{
led=1; //滅
}

if(key2==0 && key1==1) //按鍵2按下,按鍵1沒按
{
led=0; //先亮
delay_1s(30); //等30秒
led =1 ; //30秒後滅
}

}
}

❹ C51單片機,如何用矩陣鍵盤控制,使LED燈實現4中不同閃爍方式

我這里用的是按鍵,,不知道你說的開關是不是按鍵,,要不是我再重新編
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit led=P1^6 ; // 控制LED的口
sbit key=P1^0; // 按鍵狀態檢測口
void delay(uint z) //延時函數
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
uint a=0;
key=1;
led=1;
if(key==0)
{
delay(5);
if(key==0)
a++;
while(!key);
delay(5);
while(!key);
}
if(a==1)
{
while(key!=0)
{ led=0;
delay(1000);
led=1;}
led=1;a=0;
}
else led=1;
}

❺ 單片機如何控制矩陣型LED燈的亮滅。

這個你要看原理圖。流水燈的控制是通過單片機p口接上595晶元來驅動,軟體實現移位實現流水燈現象
具體的步驟:
1:畫出你的原理圖,最小系統,外加led,595晶元
2:些軟體程序,通過keil編譯並下載到你的單片機
3:觀測效果
具體的程序根據你的原理圖
可以參考《吳鑒鷹單片機項目實戰精講》裡面關於搖搖棒的設計

❻ 單片機,按鍵控制一盞燈的程序

設按鈕狀態(高/低)輸入某個IO口;
找到讀取這個IO口的數據地址;
程序不斷讀取這個地址,並比較相應位是否有變化;
(要有去抖處理,否則一次按鍵會產生多個變化)
設指示燈對應的IO口數據地址;
根據按鍵發生與否設置這個IO口相應位進行翻轉。

❼ 矩陣單片機怎麼從矩陣鍵盤中提取一個按鍵來實現「按一下鍵切換一個LED燈亮」

假設矩陣鍵盤如上圖,LED接P1.0,按鍵用S4

ORG 00H

CLR P3.0

STATAR:

JB P3.7,$

CLR P1.0

JNB P3.7,$

SETB P1.0

SJMP STATAR

❽ 用單片機如何實現一個按鈕對應一個燈控制

方法多種多樣,我也推薦兩種:
(一)
2個40引腳地單片機,每個有32個I/O口。
單片機A控制單片機B,各用P0埠直接連接進行數據傳輸(記得用1K排阻作為上拉),A剩下的24I/O口作為按鈕,控制B剩下的24I/O口。(程序太簡單我就不說了)
當然也可以用RXD、TXD埠進行數據傳輸,那樣就可以30控30了。
(二)用內置AD轉換的40引腳單片機,一個AD埠串聯相應的電阻搭配31個按鈕,控制31個燈。

❾ c51單片機 2*2矩陣按鍵控制四個燈,按1鍵亮一個燈,按2鍵亮兩個燈,以此

sbit hang1=P1.0;//行線作為輸出
sbit hang2=P1.1;
sbit lie1=P1.2;//列線作為輸入
sbit lie2=P1.3;
sbit led1=P1.4;//定義LED管腳
sbit led2=P1.5;
sbit led3=P1.6;
sbit led4=P1.7;
void main(void)
{
lie1=1;lie2=1;
led1=0;led2=0;led3=0;led4=0;//全部不亮
while(1)
{
hang1=0;hang2=1;
if(lie1=0)
{ delay_ms(10);
led1=1;
led2=0;
led3=0;
led4=0;}
if(lie2=0)
{ delay_ms(10);
led1=1;
led2=1;
led3=0;
led4=0;}
hang1=1;hang2=0;
if(lie1=0)
{ delay_ms(10);
led1=1;
led2=1
led3=1;
led4=0;}
if(lie2=0)
{ delay_ms(10);
led1=1;
led2=1;
led3=1;
led4=1;}
}
}

❿ 單片機中用矩陣鍵盤的8個按鍵分別控制8個LED,當按下時亮,鬆手時滅,用switch語句

#include<reg51.>
#define uchar unsigned char
void delay(unsigned int a)
{
unsigned int i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
uchar kbscan(void)
{
unsigned char sccode,recode;
P1=0x0f; //發0掃描,列線輸入
if ((P2 & 0x0f) != 0x0f) //有鍵按下
{
delay(20); //延時去抖動
if ((P1&0x0f)!= 0x0f)
{
sccode = 0xef; //逐行掃描初值
while((sccode&0x01)!=0)
{
P1=sccode;
if((P1&0x0f)!=0x0f)
{
recode=(P1&0x0f)|0xf0;
return((~sccode)+(~recode));
}
else
sccode=(sccode<<1)|0x01;
}
}
}
P0=0xff;
return 0; //無鍵按下,返回0
}

main()
{
unsigned char key;
while(1)
{
key=kbscan();
switch(key)
{
case 0x11:P0=0xfe;break;
case 0x12:P0=0xfd;break;
case 0x14:P0=0xfb;break;
case 0x18:P0=0xf7;break; //+
case 0x21:P0=0xef;break;
case 0x22:P0=0xdf;break;
case 0x24:P0=0xbf;break;
case 0x28:P0=0x7f;break; //-
default:break;
}
}
}

閱讀全文

與單片機矩形按鍵控制燈相關的資料

熱點內容
經過加密的數字摘要 瀏覽:645
加密鎖9000變列印機 瀏覽:694
程序員的職業發展前途 瀏覽:636
安卓是世界上多少個程序員開發 瀏覽:44
解壓器官方免費 瀏覽:85
單片機p10開發 瀏覽:486
做什麼app賺錢 瀏覽:84
博途編譯失敗聯系客戶支持部門 瀏覽:928
金蝶旗艦版編譯 瀏覽:51
萬象伺服器斷電後啟動不了怎麼辦 瀏覽:356
我的世界蘋果版的2b2t伺服器地址咋查 瀏覽:95
xlsx轉換pdf 瀏覽:99
3dmax擠出命令英語 瀏覽:903
靶心率的定義和演算法 瀏覽:514
3d模術師app哪裡下載 瀏覽:476
php中文api文檔 瀏覽:458
安卓設計怎麼加入輸入框 瀏覽:185
主根伺服器什麼時候開始 瀏覽:738
奇門遁甲完整版pdf 瀏覽:904
app軟體怎麼用的 瀏覽:804