導航:首頁 > 操作系統 > 單片機用矩陣控制3種燈

單片機用矩陣控制3種燈

發布時間:2022-09-14 17:18:00

㈠ 51單片機3*3矩陣指示燈控制C語言程序

矩陣指示燈控制?
有木有電路原理圖,這個不算難,但是必須有原理圖才能寫代碼。

㈡ 如何用單片機匯編語言實現每次有3個指示燈亮

通過一位 F 的16進制 轉換為 2進制的 1111 然後移動一位 有三極體開關所改變。0的時候發光,1的時候變暗。所以一開始0FFH表示高8位為0;
低8位為1111 1111,表示全暗,然後右移變為1111 1110亮第一個等。 以此類推

㈢ 單片機如何控制矩陣中LED燈的亮滅。

如果你的單片機埠有強的推挽輸出能力,那就很好辦了。假設埠是P1,LX3~0接P1.7~1.4,LY3~0接P1.3~1.0,那麼電量D115就在P1輸出00101011,你想電量哪個燈,就在LX3~0上選擇對應的輸出1,LY3~0上對應的輸出0.

㈣ 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;
}

㈤ 單片機一個按鍵控制3個led燈,多種狀態

#include <reg51.h>

sbit key =P1^1;
sbit led1=P1^2;
sbit led2=P1^3;
sbit led3=P1^4;
bit key_flag;
bit flag_500ms;

void InitTimer0(void)
{
TMOD |= 0x01;
TH0 = 0x3C;
TL0 = 0x0B0;
EA = 1;
ET0 = 1;
TR0 = 1;
}
unsigned char stat;
void main(void)
{
InitTimer0();
key_flag=0;
stat=0;
while (1)
{
if (key_flag) stat++;
stat%=3;
switch (stat)
{
case 0:
led3=led2=1;
led1=flag_500ms;
break;
case 1:
led1=led3=1;
led2=flag_500ms;
break;
case 2:
led1=led2=1;
led3=flag_500ms;
break;
default :break;

}
}
}
unsigned char key_time,time_500;
void Timer0Interrupt(void) interrupt 1 //50ms
{
TH0 = 0x3C;
TL0 = 0x0B0;
//add your code here!

key=1;
if (!key) key_time++;
else key_time=0;
if (key_time>5)
{
key_time=5;
}

if (key_time==4)key_flag=1;

if (time_500)time_500--;
else
{flag_500ms=1;time_500=10;}

}

㈥ 單片機89c51一個鍵分別控制三個燈點亮的程序

這個很簡單呀,按一下鍵,你就付一個鍵值,使鍵值在0~2之間切換,當鍵值為0,1,2時分別點亮對應的三個燈就可以了。

㈦ 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;}
}
}

㈧ 如何用單片機一個按鈕開關控制3個燈3種效果。流水。閃爍。還有一直亮。用keil編程

下面是用C51編寫的簡單程序:
#include <reg51.h>
#include <intrins.h>
sbit io_Key = P1 ^ 1;
sbit led1 = P1 ^ 2;
sbit led2 = P1 ^ 3;
sbit led3 = P1 ^ 4;
unsigned char ucCount = 0;
bit flag05s = 0;
//---------------------------------
void delay125us(void) //@12.000MHz
{
unsigned char i;
i = 60;
while (--i);
}

void Timer0Init(void) //10毫秒@12MHz
{
TMOD &= 0xF0; //設置定時器模式
TMOD |= 0x01; //設置定時器模式
TL0 = 0xF0; //設置定時初值
TH0 = 0xD8; //設置定時初值
TR0 = 1; //開定時器0
ET0 = 1; //開定時器0中斷
EA = 1; //開總中斷
}
//T0中斷用來計數器溢出
void zd0(void) interrupt 1
{
TL0 = 0xF0; //設置定時初值
TH0 = 0xD8; //設置定時初值
if(++ucCount >= 50)
{
ucCount = 0;
flag05s = 1; //g_flag05s = isYes定時0.52秒到,用於測量周期延時
}

}

void main(void)
{
unsigned char CountTemp = 0, ucState = 0;
Timer0Init();

while(1)
{
//-------------------------------
//簡單的按鍵檢測程序:
io_Key = 1;
_nop_();
if( io_Key == 0 )
{
CountTemp = 0;
do
{
delay125us();
if( io_Key != 0 ) break;
} while(++CountTemp > 160); // 延時20ms去抖動

if(CountTemp > 160)//如果按鍵時間有效,改變狀態
{
switch(ucState)
{
case(0):
{
ucState = 1;

led1 = 0;
led2 = 0;
led3 = 0;
}
break;
case(1):
{
ucState = 2;
led1 = 0;
led2 = 0;
led3 = 0;
}
break;
case(2):
{
ucState = 0;
led1 = 0;
led2 = 1;
led3 = 1;
}
break;

}
while(io_Key == 0); //等待按鍵釋放
}

}
//------------------------------
//每0.5秒改變一下LED狀態
if(flag05s == 1)
{
flag05s = 0;
switch(ucState)
{
case(0):
{
led1 = !led1;
led2 = !led2;
led3 = !led3;
}
break;
case(1):
{
bit ledTemp = led1;
led1 = led2;
led2 = led3;
led3 = ledTemp;
}
break;
//LED常亮可以忽略改變LED狀態
/*
case(2):
{
led1 = 0;
led2 = 0;
led3 = 0;
}
break;
*/

}

}

}

}
//-----------------------------------------------
//上面程序中有很多地方可以優化,這里只是給出一個參考供學習。

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

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

㈩ 本人寫的是單片機3*3矩陣鍵盤,控制LED燈(0為亮),為什麼只有當按鍵按下時燈才亮,case 0xf3:P1=~0x07;

剛看了你的程序有一種想死的沖動,好像看到自己以前的程序。思路太亂、邏輯錯誤太多。
隨便寫一個程序給你參考,因時間不多程序中沒有加按鍵防抖,也未經過調試,可能存在錯誤,能說明方法即可。望見諒。
code uchar key_code[3]={0xfe,0xfd,0xfb};
sbit LINE1=P2^3;
sbit LINE2=P2^4;
sbit LINE3=P2^5;
uchar keyscan()

{
uchar i,j;
uchar key;
key=0;
j=0;
for(i=0;i<3;i++)
{
P2= key_code[i];
_nop();
_nop();
if(!LINE1)j=1;
if(!LINE2)j=2;
if(!LINE3)j=3;
if(j!=0)break;
}
key=i*3+j;
if(key<9)
P1=key;
}

閱讀全文

與單片機用矩陣控制3種燈相關的資料

熱點內容
電腦沒有文件夾找不到 瀏覽:215
除了建站雲伺服器有什麼好玩的 瀏覽:161
魔獸世界退休的伺服器有什麼用 瀏覽:180
安卓機游戲總是藍屏怎麼辦 瀏覽:701
工廠反編譯工具 瀏覽:177
日本蠟燭圖技術pdf下載 瀏覽:258
用友如何改伺服器地址 瀏覽:146
王牌戰爭的伺服器怎麼建 瀏覽:304
安裝windows和linux雙系統 瀏覽:448
命令方塊切換天氣 瀏覽:13
網路搭建pdf 瀏覽:657
js向php傳遞參數 瀏覽:170
一般壓縮測試速率多少 瀏覽:809
php分頁局部刷新 瀏覽:234
什麼是網盤加密 瀏覽:898
phpparsehtml 瀏覽:524
u盤拷貝文件自動加密 瀏覽:641
pdf縮略圖預覽 瀏覽:797
android小游戲項目 瀏覽:757
圖解詞典pdf 瀏覽:629