如何制作把妹神器。(无电气基础慎做)
1、开篇说一下无电气基础慎做。虽然方案里有USB这个元件,但是本人在最后调试时候,改成了电池盒供电,所以下图元器件只供参考。

2、为了美观,本人选择了贴片电阻。优点是美观,跳线少。缺点是。。。你看看图片就知道了,本人用镊子夹了三十二片贴片电阻。照片实拍严禁盗用

3、首先将晶振,电容,底架焊接好。注意由于引脚较为密集,焊接时候一定要小心小心再小心,焊接完成记得用电表测一下是否有短路。严禁盗用。


4、流水灯其实是较为简单的一种,由原理图可以知道,思路为单片机引脚接电阻再接LED灯即可。将LED布局成心形,依次焊接好LED。

5、最后是烧程序。由于程序较长,这里只给出思路,大家参照注释编写不同的子程序,就可以将流水灯个性化了。
#include <REGX52.H>
#define uint unsigned int
#define uchar unsigned char
uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移
uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移
uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位)
uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位)
uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位)
uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位)
uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0)
uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0)
uchar i,j; //定义循环变量
uint tt=70; //定义时间指数
void delay(uint time) //延时函数
{uint x,y;
for(x=time;x>0;x--)
for(y=110;y>0;y--);}
void disp0() //状态0 所有LED闪烁3次
{for(i=0;i<3;i++){
P0=0x00; P2=0x00; P3=0x00; P1=0x00;
delay(300);
P0=0xff; P2=0xff; P3=0xff; P1=0xff;
delay(300);}}
void disp1() //状态1 LED顺时针转一圈
{for(i=0;i<8;i++){
P2=table1[i];
delay(100);}
P2=0xff;
for(i=0;i<8;i++)
{P3=table1[i];
delay(100);}
P3=0xff;
for(i=0;i<8;i++){
P1=table1[i];
delay(100);}
P1=0xff;
for(i=0;i<8;i++){
P0=table0[i];
delay(100);}
P0=0xff;}
void disp2() //状态2 LED逆时针转一圈
{for(i=0;i<8;i++)
{P0=table1[i];
delay(100);}
P0=0xff;
for(i=0;i<8;i++)
{P1=table0[i];
delay(100);}
P1=0xff;
for(i=0;i<8;i++){
P3=table0[i];
delay(100);}
P3=0xff;
for(i=0;i<8;i++){
P2=table0[i];
delay(100);}
P2=0xff;}
void disp3() //状态3 4个LED同时顺时、逆时针移动1/4圈
{for(i=0;i<8;i++){
P0=table1[i];
P1=table1[i];
P2=table1[i];
P3=table0[i];
delay(100);}
for(i=0;i<8;i++){
P0=table0[i];
P1=table0[i];
P2=table0[i];
P3=table1[i];
delay(100);}
P3=0xff; P0=0xff; }
void main()
{while(1)
{disp0(); //状态0 所有LED闪烁3次
disp1(); //状态1 LED顺时针转一圈
disp2(); //状态2 LED逆时针转一圈}}
展示下反面焊接效果(本人实拍,严禁盗用)。用了电池盒供电。由于采用了贴片电阻,跳线非常少。

6、烧入程序,进行仿真模拟。成功后将51单片机压入底座。本文部分制作图片由本人实拍,严禁盗用。最后展示下正面效果(本人实拍,严禁盗用)。
