单片机如何控制矩阵中LED灯的亮灭。

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-09
单片机如何控制矩阵型LED灯的亮灭。

这个你要看原理图。流水灯的控制是通过单片机p口接上595芯片来驱动,软件实现移位实现流水灯现象
具体的步骤:
1:画出你的原理图,最小系统,外加led,595芯片
2:些软件程序,通过keil编译并下载到你的单片机
3:观测效果
具体的程序根据你的原理图
可以参考《吴鉴鹰单片机项目实战精讲》里面关于摇摇棒的设计


led应该是一个变量,是代表led灯 亮或者灭的一个变量。 当你按下开关后,s1==0,就执行 led=!led 这条语句。 led=!led 的意思就是取反的意思,即原来led灯亮的话 执行该条语句后就变成灭;原来灭的话 执行该条语句后 就变成亮。按键按下就打控制灯的io取反就可以了。如:if(key1==1){while(key1==1); // 等待按键放开led1=~led1;}
使用四个独立按键控制四个LED灯亮灭的汇编程序怎么弄?

单片机的P1.0-P1.3接四个发光二极管L1-L4的阴极,P1.4-P1.7接四个开关K1-K4程序:ORG 00HSTART: MOV A,P1ANL A,#0F0HRR ARR AORl A,#0F0HMOV P1,ASJMP START可以检测单个按键,也可以同时检测多个按键过程:开始--读P1口数据到A--A中的数据右移4次--A中的内容和F0H相或--A中的数据送到P1口--回到开始

如果你的单片机端口有强的推挽输出能力,那就很好办了。假设端口是P1,LX3~0接P1.7~1.4,LY3~0接P1.3~1.0,那么电量D115就在P1输出00101011,你想电量哪个灯,就在LX3~0上选择对应的输出1,LY3~0上对应的输出0.

不妨假设你的接法是:LX0~LX3和LY0~LY3分别接的是P0口的P0^0~P0^7,那你想要D105点亮,其他不亮,就是把LX0置高电平,LX1~LX3置低电平,LY0置低电平,LY1~LY3置高电平,即对应11100001这个二进制编码,同理,每个灯都有一个这样的编码,你把编码保存在一个数组中LED_CODE[],那想要第 i 个灯亮就用P0=LED_CODE[i]就行。想要多个灯同时亮,把多个灯的编码或运算就行(LX和LY应该要分开处理)。

图给LED矩阵的点亮还是比较容易的:
1、按图给电路,每个LED的坐标为(LX(i),LY(j)),LX(i)为高电平,LY(j)为低电平时,交点(i,j)上的LED被点亮,所以……………………
2、例子:要点亮D30,需要LX2接高电平,LY1接地即可
3、理解以上两点,程序控制应该不难…………

LY3 LY2 LY1 LY0 LX3 LX2 LX1 LX0
1 1 1 0 0 0 0 1 D105 亮
1 1 1 0 0 0 1 0 D106 亮
1 1 0 1 0 0 0 1 D113 亮
0 0 0 0 1 1 1 1 全部 亮
按照 以上 方法 控制 其它 的 试试。

按照电路图,单独控制一个led可以,控制多个led同时点亮,电路设计有问题!

  • 单片机如何控制矩阵型LED灯的亮灭。
    答:先控制LY1-n = 1; 然后LY0=0;接着输出LX0-n这一列的亮灭端口值,这是对应LY0这一行工作,延时1ms,再控制LY0,LY2-n = 1; 然后LY1=0;接着输出LX0-n这一列的亮灭端口值,这是对应LY1这一行工作,延时1ms,。。。扫描完成LYn后,再回到最上面,继续扫描LY0。
  • 单片机如何控制矩阵中LED灯的亮灭。
    答:如果你的单片机端口有强的推挽输出能力,那就很好办了。假设端口是P1,LX3~0接P1.7~1.4,LY3~0接P1.3~1.0,那么电量D115就在P1输出00101011,你想电量哪个灯,就在LX3~0上选择对应的输出1,LY3~0上对应的输出0.
  • c51单片机 2*2矩阵按键控制四个灯,按1键亮一个灯,按2键亮两个灯...
    答:led3=1;led4=1;} } }
  • 51单片机怎样控制LED的光亮度
    答:51单片机控制led灯右循环亮 可以用移位命令来实现,比如说LED接口为P0 那么共阴极就是 P0=(P0>>1)||0X80; 移位函数来实现是最简单的就是 intrinis 51单片机用单键来控制led灯的渐亮 可通过按钮的动作改变输出LED连接脚的脉宽来控制led灯的渐亮 AVR单片机如何控制LED亮度? 单片机只能产生两...
  • 单片机中用矩阵键盘的8个按键分别控制8个LED,当按下时亮,松手时灭...
    答: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)!
  • 单片机是如何控制LED点阵的,不明白的是,所有的LED不是共阴就是共阳,如...
    答:一个汉字,常见的是16×16的点阵,共256个发光点。这些点,并不是同时发光的。如果每一瞬间,只有一行发光,那就需要把整个的汉字“横向取模”,送到显示屏;如果每一瞬间,只有一列发光,那就需要把整个的汉字“纵向取模”,送到显示屏。
  • 矩阵单片机怎么从矩阵键盘中提取一个按键来实现“按一下键切换一个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 END
  • 图为8051单片机扩展的矩阵式键盘接口,编程实现当k0按下并弹起后LED点亮...
    答:if(!P1^6) P0^6=1;if(!P1^7) P0^7=1;大概就是这么的,拉低一行线,去读列线,如果有按键,那么该线就为哦,延时消抖,再读一次,如果还是为0,证明该键动作,貌似你还要坚持按键释放,那就再等待下一个状态,就是从0变1的过程,就执行按键操作,至于驱动LED,这个简单,就不多说了 ...
  • 本人写的是单片机3*3矩阵键盘,控制LED灯(0为亮),为什么只有当按键按...
    答:刚看了你的程序有一种想死的冲动,好像看到自己以前的程序。思路太乱、逻辑错误太多。随便写一个程序给你参考,因时间不多程序中没有加按键防抖,也未经过调试,可能存在错误,能说明方法即可。望见谅。code uchar key_code[3]={0xfe,0xfd,0xfb};sbit LINE1=P2^3;sbit LINE2=P2^4;sbit LINE3...
  • 急求:怎样让单片机89c51的p0既能做p1矩阵按键的显示,又能做由p3口控制...
    答:接两个 74164,做串并转换,显示 两条线控制 一个74164的8个口做段显,两个口做位选。按键 两条线控制另一个 74164的8个口做扫描口,两个口来做输入口 按键接成 2*8的矩阵。两个74164的DAT线可以复用一线的哦,这样总共也就用了7条线。