前两天学校毕业晚会结束,很多发光棒被丢弃,本着不浪费的原则收集了几个,本想做一个光立方,结果引脚太短,放弃。改成4*4 的发光阵列。
直接上图。
这个是用7*9的洞洞板接的,下面四根引线是四列的共阳极,右边四根是四行led的共阴极。中间加了一个100欧的限流电阻(感觉要再小点更好)。
和最小系统的连接图
共阳极接到P2.0-P2.3,共阴极接P0.0-P0.3
拍的不好,实际显示的花样比较简单,大家可以自己更改。有很多不足,望大家批评指正。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- /*********************************************************************************
- *实验名 :数码管动态显示
- *实验效果 :8位数码管显示数字12345678
- *注意 : 每位数码管显示之间延迟时间小于3ms可看见8位数码管同时点亮
- *
- *********************************************************************************/
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
-
- sbit yin1=P0^0;
- void delay(uint xms) //xms等于几就延迟几毫秒
- {
- uint i,j;
- for(i=xms;i>0;i--)
- for(j=112;j>0;j--);
- }
- void main()
- {
- while(1)
- {
- P2=0x01;
- P0=0x07;
- delay(500);
-
- P2=0x03;
- P0=0x03;
- delay(500);
-
- P2=0x07;
- P0=0x01;
- delay(500);
-
- P2=0x0f;
- P0=0x00;
- delay(500);
-
- P2=0x06;
- P0=0x09;
- delay(500);
-
- P2=0x00;
- P0=0x09;
- delay(500);
-
- P2=0x06;
- P0=0x09;
- delay(500);
-
- P2=0x08;
- P0=0x0e;
- delay(500);
-
- P2=0x0c;
- P0=0x0c;
- delay(500);
-
- P2=0x0e;
- P0=0x08;
- delay(500);
-
- P2=0x0f;
- P0=0x00;
- delay(500);
-
- P2=0x00;
- P0=0x00;
- delay(500);
-
- }
-
-
- }
复制代码
所有资料51hei提供下载:
led阵列.rar
(2.04 MB, 下载次数: 18)
|