找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2083|回复: 1
收起左侧

摇摇棒的制作

[复制链接]
ID:129229 发表于 2016-7-4 21:37 | 显示全部楼层 |阅读模式
【一】 看懂电路图
每一个电子制作都必须有电路才能算是一个完整的系统,电路就好比四通八达的道路,连接着各地。下面就以51的最小系统为例,向大家介绍一下这个电路
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.jpg

图中的黄色部分便是STC89C52芯片,芯片上有32个带字母P的引脚,分为4组,每组8个引脚,这些引脚是可以作为数据输入输出的接口。
40号引脚,即带有VCC的那个是系统的正极,接电源的正极(VCC表示直流正极);
20号引脚,即带有GND的那个是系统的共地端,接电源的负极(GND可以理解为负极)。
C1、C2是两个瓷片电容,电容值在20-30pf都可以;
C3是一个电解电容,有正负极之分,电容值在10-22uf都可以
XTAL表示晶振,51单片机一般可以使用频率为8-24MHZ的晶振;
R1是一个阻值为10千欧的电阻;
RST是一个按键,用来实现系统的手动复位(类似于重启系统);
值得注意的是,单片机的P0口,即32-39号引脚在使用中需要上拉电阻,如下图。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png

可以选择用8个10K的电阻逐个链接,也可以采用现成的9脚排阻。排阻外观如下,
排阻就是连在一起的电阻,使用起来更加方便。


以上便是我认为能做出来这个摇摇棒的基础知识。

下面我们开始制作好玩又有趣的摇摇棒吧。


一、 材料准备
1.发光二级管16个,推荐使用蓝色雾状LED,显示效果好。也可以选用自己喜欢的颜色,但是电压范围最好在2.7-3.3V之间,若是其他范围则需在电路中做相应调整。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png

2. 洞洞板,125px*175px一个,当然不局限于这个面积,主要是焊接电路用的。

file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image005.jpg

3.51最小系统板,一个。新手建议还是去淘宝上买现成的51板吧,30-50元,不会再贵的。如果没有台式机的9针串口,那就买可以实现USB下载的系统板。如果了解51系统,可以自己焊一个,成本不会超过10元的。
4.IN4007二极管一个。
5.10K电阻一个。
6.开关一个,用来切换画面。
7.飞线若干,飞线就是连接电路的导线,手里废弃的充电器的电线都可以使用。

三、电路原理

file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
Gary_zhang5: 回复 ST丶爵士艹震 :怎么会呢?两个端口还需要加一个三脚的排阻吗?排阻可是一排电阻
2015-5-18 13:34回复


下面为大家详细介绍一下。
中间的那部分便是51最小系统,下面的ISP是一个下载端口,买现成的51板的话可以忽略这部分。
右边便是最主要的制作部分。首先用万用表逐个测量二极管是否能正常工作,可以使用万用表的通断路档,分别将万用表的黑线和红线接在LED的两个引脚上,注意正负极,如果LED能正常发光,说明二极管没有问题。十六个LED整齐地排成一排,尽量保持间距相等。将所有LED的正极接在一起,这里要说明的是,LED有两个引脚,长正短负,也就是说把所有的长脚接在一起,通过4007二极管连接在电路的正极。一定要注意二极管和LED的电流方向,4007二极管有银色圈的那一端是负极。

焊接的时候可以直接将LED焊在洞洞板上,洞洞板可以做适当的裁剪。下面是网上比较流行的效果图。(无意盗用,若涉及侵权请联系本人)在此保留原图水印。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image007.jpg
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image009.jpg


将LED焊接在洞洞板之后,可以用剪刀剪去多余的引脚,看起来更加美观。
接IN4007的正极和51板的正极是连在一起的,这里电源用3接5号电池就可以。
在P3_0出接一个按键开关,用来切换画面。我们采用的开关有四个脚,其中两两相通,我们先用万用表的通路档检查可作为开关的那一组脚,然后再进行焊接。这里最好像电路图中那样加上一个10K的电阻。
现在只剩下LED的负极了,按照先后顺序,从第一个灯开始,依次和单片机的P0_0一直到P2_7链接起来,这里要注意链接顺序。
因为单片机上是按照P0_0到P0_7,P2_7到P2_0的顺序来排列的,而我们焊接的时候要按照P0_0到P0_7,P2_0到P2_7的顺序来焊接,因为这样的顺序方便编写程序。


到这里,所有的硬件工作就完成了,下面我加上网上流行的一个程序,是用C语言编写的。
#include<reg52.h>
int i,j;
sbit key=P3^0;
int k;
void delay(unsigned char t) //**
{ //延
unsignedchar m,n; //时
for(m=0;m<t;m++) //函
for(n=0;n<180;n++); //数
} //**
void key() //**
{ //**
if(key==0) //**
{ //**
delay(10); //**
if(key==0) //按
{ //键
k++; //检
while(!key); //测
if(k>5) //**
k=0; //**
} //**
} //**
} //**
unsigned char code tuan_1[]={
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xd7,0xfb,0xdb,0xf7,0xdd,0xcd,0xde,0x3d,
0xd9,0x3d,0xc7,0xcb,0xfb,0xfb,0xe7,0xf7,
0x0f,0xcf,0xe8,0x3f,0xef,0x9f,0xef,0xe7,
0xeb,0xf3,0xe7,0xf9,0xef,0xfb,0xff,0xff,
0xfd,0xfd,0x7d,0xfb,0x8c,0x07,0xdf,0xfb,
0xff,0xfd,0xc0,0x1d,0xdf,0xbd,0xbf,0x7d,
0xbf,0xfd,0xc0,0x05,0xdf,0xfd,0xdf,0xbd,
0xdf,0xdd,0xc0,0x3d,0xff,0xfd,0xff,0xff,
0xfe,0xff,0xfd,0xff,0xf0,0x01,0xcb,0xff,
0x3d,0xf7,0xfb,0xcf,0xe6,0x3f,0x0f,0x7b,
0xaf,0xfd,0xe8,0x03,0xef,0xff,0xee,0xff,
0xeb,0x3f,0xc7,0xc7,0xef,0xef,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; //欢迎你
unsigned char code tuan_2[]={
0xff,0xff,0xfd,0xfe,0xbd,0xfd,0xbd,0xfb,
0xbd,0xf7,0xbd,0xef,0xbd,0x9f,0x80,0x7f,
0xbd,0xbf,0xbd,0xdf,0xbd,0xef,0xbd,0xf7,
0xbd,0xf3,0xbd,0xf9,0xfd,0xfb,0xff,0xff,
0xff,0xff,0xfd,0xfe,0xbd,0xfd,0xbd,0xfb,
0xbd,0xf7,0xbd,0xef,0xbd,0x9f,0x80,0x7f,
0xbd,0xbf,0xbd,0xdf,0xbd,0xef,0xbd,0xf7,
0xbd,0xf3,0xbd,0xf9,0xfd,0xfb,0xff,0xff,
0xf1,0xff,0xff,0xff,0x00,0x00,0xef,0xff,
0xf2,0xfe,0xee,0xfd,0xee,0xf3,0xee,0x8f,
0x00,0x7f,0xee,0x9f,0xee,0xef,0xee,0xf3,
0xe0,0xf9,0xfe,0xfc,0xfe,0xfd,0xff,0xff,
0xff,0xff,0xff,0xfb,0xfd,0xe7,0xc0,0xcf,
0xdd,0x1f,0xdd,0xb7,0xdd,0xfb,0x9d,0xfd,
0xa0,0x03,0xbd,0xff,0x3d,0xff,0x3d,0xbf,
0xbd,0xcf,0xfd,0xe3,0xff,0xf7,0xff,0xff}; //天天快乐


unsigned char code tuan_3[]={
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0x7f,0xfe,0x7f,0xfe,0x00,0x00,
0x00,0x00,0x7f,0xfe,0x7f,0xfe,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xf1,0xff,0xe0,0xff,
0xc0,0x7f,0x80,0x3f,0x00,0x1f,0x00,0x0f,
0x00,0x07,0x80,0x03,0xc0,0x01,0xf0,0x00,
0xc0,0x01,0x80,0x03,0x00,0x07,0x00,0x0f,
0x00,0x1f,0x80,0x3f,0xc0,0x7f,0xe0,0xff,
0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0x00,0x03,0x00,0x01,
0x00,0x01,0xff,0xf8,0xff,0xf8,0xff,0xf8,
0xff,0xf8,0xff,0xf8,0xff,0xf8,0xff,0xf8,
0xff,0xf8,0x00,0x00,0x00,0x01,0x00,0x03,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//I? U
unsigned char code tuan_0[]={
0xff,0xff,0xff,0xff,0xe0,0x0f,0xed,0xdf,
0xed,0xdf,0xed,0xdf,0xed,0xdf,0x00,0x03,
0xed,0xdd,0xed,0xdd,0xed,0xdd,0xed,0xdd,
0xe0,0x0d,0xff,0xfd,0xff,0xf1,0xff,0xff,
0xff,0x7f,0xff,0x7f,0xbf,0x7f,0xbf,0x7f,
0xbf,0x7f,0xbf,0x7d,0xbf,0x7e,0xb8,0x01,
0xb7,0x7f,0xaf,0x7f,0x9f,0x7f,0xbf,0x7f,
0xff,0x7f,0xfe,0x7f,0xff,0x7f,0xff,0xff,
0xef,0x7f,0xef,0x7d,0xee,0xfe,0x00,0x01,
0xed,0xff,0xeb,0xfd,0xff,0xfd,0xec,0xfb,
0xed,0x37,0xed,0xcf,0x01,0xcf,0xed,0xb7,
0xec,0x7b,0xed,0xf9,0xef,0xfb,0xff,0xff,
0xf7,0xf7,0xf7,0xf7,0xf7,0xef,0xf7,0xdf,
0xf7,0xbf,0xf6,0x7f,0xf5,0xff,0x00,0x01,
0xf5,0xff,0xf6,0xff,0xb7,0x7f,0xd7,0x9f,
0xf7,0xcf,0xf7,0xe7,0xf7,0xef,0xff,0xff};//电子技术
unsigned char code tuan_4[]={
0xff,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,
0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,
0xfe,0xff,0xfe,0xff,0xfe,0xff,0xfe,0xff,
0xfe,0xff,0xfc,0xff,0xfe,0xff,0xff,0xff,
0xff,0x7f,0xfe,0xfd,0xf9,0xfd,0x87,0x7d,
0xf7,0x7d,0xf7,0x7d,0xf7,0x7d,0xf7,0x7d,
0x00,0x01,0xb7,0x7d,0xf7,0x7d,0xf7,0x7d,
0xe6,0x7d,0xf7,0x79,0xff,0xfd,0xff,0xff,
0xff,0xbf,0xdf,0x7f,0xde,0xff,0xdd,0xff,
0xd8,0x00,0xd3,0x6f,0xcb,0x6f,0x1b,0x6f,
0xdb,0x6b,0xdb,0x6d,0xdb,0x6c,0xd8,0x01,
0xdf,0xff,0xdf,0xff,0xdf,0xff,0xff,0xff,
0xfe,0xff,0xfd,0xff,0xf0,0x01,0xcb,0xff,
0x3d,0xf7,0xfb,0xcf,0xe6,0x3f,0x0f,0x7b,
0xaf,0xfd,0xe8,0x03,0xef,0xff,0xee,0xff,
0xeb,0x3f,0xc7,0xc7,0xef,0xef,0xff,0xff};//一生有你
unsigned char code tuan_5[]={
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xf8,0x1f,0xe7,0xe7,0xdf,0xfb,
0xbf,0xfd,0x7f,0xfe,0x7f,0xfe,0xff,0xff,
0xff,0xef,0xc1,0xdf,0xbf,0xaf,0x7f,0xe7,
0xbf,0xf3,0xc1,0xf1,0xff,0xf1,0xff,0xf1,
0xff,0xf1,0xff,0xf1,0xff,0xf1,0xc1,0xf1,
0xbf,0xf3,0x7f,0xe7,0xbf,0xaf,0xc1,0xdf,
0xff,0xef,0xff,0xff,0x7f,0xfe,0x7f,0xfe,
0xbf,0xfd,0xdf,0xfb,0xe7,0xe7,0xf8,0x1f,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//(^-^)


void LED() //LED显示
{
for(i=0,j=1;i<=127,j<=128;i=i+2,j=j+2)
{
if(k==0)
{
P1=tuan_0,P3=tuan_0[j];
delay(1);
}

elseif(k==1)
{
P1=tuan_1,P3=tuan_1[j];
delay(1);
}

elseif(k==2)
{
P1=tuan_2,P3=tuan_2[j];
delay(1);
}

elseif(k==3)
{
P1=tuan_3,P3=tuan_3[j];
delay(1);
}

elseif(k==4)
{
P1=tuan_4,P3=tuan_4[j];
delay(1);
}

elseif(k==5)
{
P1=tuan_5,P3=tuan_5[j];
delay(1);
}


}
}
void main(void) //主函数
{
while(1)
{
key();
LED();
}
}
把程序下载进你的单片机,享受你自己制作的摇摇棒吧!
回复

使用道具 举报

ID:166208 发表于 2017-2-25 09:55 | 显示全部楼层
利用单片机制作摇棒的水银开关为什么接在P3.2上.和切换画面开关接在P3.0上那???
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表