① 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