① 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;}
}
}
② 89C51單片機 4*4矩陣鍵盤加流水燈問題,求個匯編程序代碼。
;其實很攜巧爛冊簡單,都不用判斷鍵值,有鍵按下暫停2S程辯歷鍵序如下:
ORG 0000H
LJMP STA
ORG 000BH
LJMP T0ISR
ORG 0030H
STA:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB ET0
SETB EA
MOV 30,#0FEH
MOV R2,#0
CLR 00H
LOOP:
MOV P1,#0F0H
MOV A,P1
CJNE A,#0F0H,LOOP1
SJMP LOOP
LOOP1:
LCALL DELAY
MOV A,P1
CJNE A,#0F0H,LOOP2
SJMP LOOP
LOOP2:
SETB 00H
SJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#3CH
MOV TL0,0B0H
SETB TR0
JNB 00H,T0ISR1
INC R2
MOV A,R2
CJNE A,#40,T0ISRE
MOV R2,#0
CLR 00H
SJMP T0ISRE
T0ISR1:
MOV A,30H
RL A
MOV 30H,A
MOV P0,A
T0ISRE:
RETI
DELAY:
MOV R0,#20
DELAY1:
MOV R1,#250
DJNZ R1,$
DJNZ R0,DELAY1
RET
END
③ 單片機如何控制矩陣中LED燈的亮滅。
如果你的單片機埠有強的推挽輸出能力,那就很好辦了。假設埠是P1,LX3~0接P1.7~1.4,LY3~0接P1.3~1.0,那麼電量D115就在P1輸出00101011,你想電量哪個燈,就在LX3~0上選擇對應的輸出1,LY3~0上對應的輸出0.
④ 本人寫的是單片機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;
}
⑤ 8x8x8 led cube firmware是什麼
8*8*8的光立方、光點矩陣。
單片機控制的小型立方體led燈組。
一些單片機微控制系統愛好者對單片機開發的延伸應用,已發展成為獨立的學習對象。光立方由若干個二極體led燈以立方體形式搭建,4*4*4、8*8*8、16*16*16甚至更多,又由單片機、鎖存器、解碼器等電器元件驅動,形成立體動畫效果。其中8*8*8光立方最為常見。
基於單片機愛好者對單片機學習的熱情,光立方是一學習單片機非常好的練習材料。拿8*8*8光立方舉例,它是由512個發光二極體按照立方體的方式搭建焊接起來的,有層共陰束共陽和層共陽束共陰兩種方案,每一層有8*8個發光二極體,共8層。
用c語言編譯單片機程序使自定義動畫效果得以實現。
拿8*8*8光立方舉例:顧名思義光立方是一個立方體,每一個燈為小立方體的頂點,三維坐標系的第一象限里XYZ坐標都為8的立方體,每一個整數坐標點都對應一個發光二極體led燈(這樣形容應該更加容易想像一點)。
當燈按照一定方案點亮時,效果是很震撼的,唯美、華麗、絢爛。
⑥ 單片機如何控制矩陣型LED燈的亮滅。
先控制LY1-n = 1; 然後LY0=0;
接著輸出LX0-n這一列的亮滅埠值,這是對應LY0這一行工作,延時1ms,
再控制LY0,LY2-n = 1; 然後LY1=0;
接著輸出LX0-n這一列的亮滅埠值,這是對應LY1這一行工作,延時1ms,
。。。。
掃描完成LYn後,再回到最上面,繼續掃描LY0。
⑦ 矩陣單片機怎麼從矩陣鍵盤中提取一個按鍵來實現「按一下鍵切換一個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