DIY心形流水灯
来源:互联网 发布:软件项目关键技术指标 编辑:程序博客网 时间:2024/04/30 09:26
创作原由:
大多电子爱好者朋友用的40Pin的51单片机做心形流水灯,需要的led量多,焊接时间长,所以本人想着用20Pin的STC11F02E做一个迷你版的心形流水灯。所需led数量少,易焊接,布线。下面给大家介绍这个小制作。有不足的地方可以提出,还望大神指点。(不喜勿喷)
从图中可以看出所需元器件:
1.STC11F02E单片机一片
2.LED灯14个,颜色随意。
3.1K电阻14个(上拉电阻,单片机IO口输出很小)
4.电位器(不要也可以,加了调节电压能调节灯亮度,但是电压过小,单片机无法正常工作)
5.USB母口(也可以用DC插座,不过不好焊)
6.自锁开关
7.USB转TTL (PL2302或者CH340)
8.洞洞板7×9cm
9.面包板(用来测试灯泡好坏,加了上拉之后电阻调整)
10.杜邦线(图中没有)
11.漆包线(后面飞线,也可以用杜邦线飞,就是太粗)
大概就这么点元器件,其他焊接工具就不需要说了吧。
STC11F02E引脚图:
LED和引脚对应关系:
使用P1.0-1.7和P3.0-3.5一共14个引脚。P1.0对应上面中间的LED,其他一次逆时针焊接。也就是下面中间为P1.7。下面中间右边一个为P3.0,继续逆时针。焊接最外圈为GND,VCC在里面。
/**********************//******心形流水灯******//**********************/#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar code table1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};uchar code table2[]={0x01,0x02,0x04,0x08,0x10,0x20};uchar code table3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f};void loudou_0(); //左右流水递增void loudou_1(); //左右流水void loudou_2(); //左右流水void shanshuo(); //加减速闪烁void quanliang(); //全量void banshan(); //左右半闪void liushui_vleft(); //逆时针加速转void liushui_vright(); //顺时针加速转void liushui_left(); //逆时针void liushui_right(); //顺时针void delay(uint z){uint i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);}void main(){while(1){loudou_0(); loudou_1();loudou_2();loudou_0();banshan();quanliang();shanshuo();liushui_right();liushui_vright();liushui_left();liushui_vleft();}} /**********************//*半闪*/void banshan(){ uint x;for(x=0;x<=3;x++) {P1=0xff;P3=0x00;delay(1000);P1=0x81;P3=0x3f;delay(1000); }}/**********************//**********************//*流水左右分往下*/void loudou_0(){uint i,j,z;for(z=1;z<=8;z++){i=1; for(j=6;j>=z;j--){ P1=(table1[i])|(table3[z-1]); P3=(table2[j-1])|(table4[z-1]); delay(800); i++;}}}/**********************//**********************//*流水左右分往下*/void loudou_2(){uint i,j,z;for(z=0;z<=1;z++){i=1;P1=0x01;delay(600); for(j=6;j>=1;j--){ P1=table1[i]; P3=table2[j-1]; delay(600); i++;}P3=0x00;P1=0x00;P1=0x80; delay(600);}}/**********************//**********************//*流水左右分往下*/void loudou_1(){uint i,j,z;for(z=0;z<=2;z++){i=1;P1=0xfe;delay(600); for(j=6;j>=1;j--){ P1=~table1[i]; P3=~table2[j-1]; delay(600); i++;}P3=0xff;P1=0xff;P1=0x7f; delay(600);}}/**********************//**********************//*流水右转*/void liushui_right(){uint i,j;//for(x=0;x<=1;x++)//{ for(j=6;j>=1;j--){ P3=~table2[j-1]; P1=0xff; delay(800);}P3=0x00;for(i=8;i>=1;i--){ P1=~table1[i-1]; P3=0xff; delay(800);}P1=0x00;//}}/**********************//**********************//*流水左转*/void liushui_left(){uint i,j;//for(x=0;x<=1;x++)//{for(i=0;i<=7;i++){ P1=~table1[i]; P3=0xff; delay(800);}P1=0x00;for(j=0;j<=5;j++){ P3=~table2[j]; P1=0xff; delay(800);}P3=0x00;//}}/**********************//**********************//*流水加速*/void liushui_vleft(){uint i,j,y;//for(x=0;x<=1;x++)//{y=900;for(i=0;i<=7;i++){ P1=~table1[i]; P3=0xff; delay(y); y=y-100;}P1=0x00;for(j=0;j<=5;j++){ P3=~table2[j]; P1=0xff; delay(y); y=y+150;}P3=0x00;//}}/**********************//**********************//*流水加速*/void liushui_vright(){uint i,j,y;//for(x=0;x<=1;x++)//{ y=900;for(j=6;j>=1;j--){ P3=~table2[j-1]; P1=0xff; delay(y); y=y-100;}P3=0x00;for(i=8;i>=1;i--){ P1=~table1[i-1]; P3=0xff; delay(y); y=y+150;}P1=0x00;//}}/**********************/void quanliang(){ P1=0xff; P3=0xff; delay(1000);}/**********************/void shanshuo(){uint i,j=1000;uchar aa=0xff;for(i=20;i>0;i--){P1=aa;P3=aa;delay(j);j=j-50;aa=~aa;}for(i=20;i>0;i--){P1=aa;P3=aa;delay(j);j=j+50;aa=~aa;}}/**********************/
有什么问题,评论区解答。
0 0
- DIY心形流水灯
- 基于51的爱心流水灯源码,爱心灯DIY原理图
- DIY:利用单片机自制的RGB拖尾流水灯,含电路图、源代码、演示视频、效果图
- 流水灯
- 流水灯
- 流水灯
- 流水灯
- 流水灯
- 流水灯
- 流水灯
- 流水灯
- 流水灯
- 流水灯
- 二、SCM 流水灯&FPGA流水灯
- 流水灯实验代码
- 数组流水灯
- 单片机--->流水灯
- 单片机-->流水灯2
- 设计模式之---责任链模式
- OSPF协议之详细图解
- android 微信红包 hook 版控制金额尾数原理
- 排序:排序面试指南
- Unity制作《水果忍者》刀光特效
- DIY心形流水灯
- 动态布局
- 3分钟弄明白JAVA三大修饰符
- sublime text 3 + python配置,完整搭建及常用插件安装
- 三.Mybatis高级查询
- 二叉排序树的建立与查找
- Android动画(二),属性动画
- 排序1:冒泡排序
- 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案