摇摇棒制作教程
- 格式:pdf
- 大小:284.27 KB
- 文档页数:6
摇摇棒的制作大家知道,人的眼睛存在视觉暂留现象,正因为眼睛的反应迟钝,才丰富了人的视觉感受。
LED摇摇棒很好地利用了人眼的视觉暂留特性。
下图是基于51单片机控制、16只高亮度LED发光二极管构成的摇摇棒,配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片等。
实物外形图:基本原理与硬件电路设计:16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象使得看到的是一幅完整的画面。
与LED点阵的显示有几分相仿。
硬件电路如下图(点击可放大)。
系统电源VCC为5V,下载程序和调试时一定要保证5V电压,实际使用时用3节干电池串联4.5V即可。
AT89S52单片机作为控制器,在它的P0、P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。
P0口的上拉电阻RA1不能少。
串在LED公共端的二极管D1会产生一定的压降,用来保护LED,经实测LED点亮时两端电压为3V左右,在LED的安全承受范围内。
K1是画面切换开关,用于切换显示不同内容;S1为水银开关。
水银开关的作用:棒在摇动时,只能在朝某一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一只水银开关来控制,使摇摇棒从左向右摇动时将内容显示出来。
硬件制作:使用的是直径5mm的红色高亮LED,感觉太大了些,远看效果很好但近看时字不够连贯。
建议使用直径为3mm的高亮LED,颜色可根据个人喜好选择。
水银开关里的水银珠很活跃,导致在接通时容易产生抖动,所以将水银开关斜向上放置(尖尖朝斜上方45°角),靠水银珠自身重力的作用减少抖动:IC座里面隐藏元件,既美观又能保护元件:软件设计:/**********************************************************程序名称:LED摇摇棒显示64*16像素简要说明:外部中断方式INT0显示;取模方式:纵向取模、字节倒序编写:最后更新:08/11/15晚**********************************************************/#include <AT89X52.h>#define uchar unsigned char#define uint unsigned int //宏定义#define KEY P3_0 //定义画面切换按键uchar KY; //KY作用在后面说明uchar disp; //显示汉字指针uchar pic=0,num=0; //pic为按键次数;num为中断次数uchar code love[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x20,0x00,0x20 ,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00 ,0xF8,0x0F,0x04,0x10,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x04,0x10,0xF8,0x0F ,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x20 ,0x00,0x10,0x00,0x08,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x82,0x20 ,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x82,0x20,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,/*LOVE*/};uchar code loveyou[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x78,0x00,0xFC,0x00,0xFE,0x01,0xFE,0x03,0xFE,0x07,0xFE,0x0F,0xFE,0x1F ,0xFC,0x3F,0xF8,0x7F,0xFC,0x3F,0xFE,0x1F,0xFE,0x0F,0xFE,0x07,0xFE,0x03,0xFE,0x01 ,0xFC,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,/*心形图案*/};uchar code hehe[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00 ,0x00,0x00,0xF0,0x0F,0x08,0x10,0x04,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00 ,0x04,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x00,0x20 ,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0xF0,0x3F,0x08,0x00 ,0x04,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0xF0,0x3F,0x00,0x00,0x00,0x00,0x04,0x20 ,0x08,0x10,0xF0,0x0F,0x00,0x00,0x00,0x00,0xC0,0x01,0x40,0x01,0xC0,0x01,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,/*呵呵o(∩_∩)o图案*/};unsigned char code hanzi[] = {//-- 欢 --0x04,0x10,0x34,0x08,0xC4,0x06,0x04,0x01,0xC4,0x82,0x3C,0x8C,0x20,0x40,0x10,0x30, 0x0F,0x0C,0xE8,0x03,0x08,0x0C,0x08,0x10, 0x28,0x60,0x18,0xC0,0x00,0x40,0x00,0x00, //-- 迎 --0x40,0x00,0x42,0x40,0x44,0x20,0xC8,0x1F, 0x00,0x20,0xFC,0x47,0x04,0x42,0x02,0x41, 0x82,0x40,0xFC,0x7F,0x04,0x40,0x04,0x42, 0x04,0x44,0xFE,0x63,0x04,0x20,0x00,0x00, //-- 使 --0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00, 0x04,0x80,0xF4,0x43,0x14,0x45,0x14,0x29, 0x14,0x19,0xFF,0x17,0x14,0x21,0x14,0x21, 0x14,0x41,0xF6,0xC3,0x04,0x40,0x00,0x00, //-- 用 --0x00,0x80,0x00,0x60,0xFE,0x1F,0x22,0x02, 0x22,0x02,0x22,0x02,0x22,0x02,0xFE,0x7F, 0x22,0x02,0x22,0x02,0x22,0x42,0x22,0x82, 0xFF,0x7F,0x02,0x00,0x00,0x00,0x00,0x00, //-- 神 --0x08,0x01,0x88,0x00,0x49,0x00,0xEE,0xFF, 0x58,0x00,0x88,0x00,0x00,0x00,0xF8,0x1F, 0x88,0x08,0x88,0x08,0xFF,0xFF,0x88,0x08, 0x88,0x08,0xFC,0x1F,0x08,0x00,0x00,0x00, //-- 奇 --0x40,0x00,0x40,0x00,0x44,0x00,0x44,0x3E, 0x64,0x12,0x54,0x12,0x4C,0x12,0x47,0x12, 0x4C,0x3F,0x54,0x42,0x74,0x80,0xC6,0x7F, 0x44,0x00,0x60,0x00,0x40,0x00,0x00,0x00, //-- 魔 --0x00,0x40,0x00,0x30,0xFE,0x8F,0x4A,0x80, 0xAA,0x5F,0x9A,0x4A,0xFE,0x2A,0xAA,0x1A, 0xCB,0x0F,0xAA,0x7A,0xFE,0x8A,0x9A,0xAA, 0xAA,0x8F,0x6B,0x80,0x22,0xE0,0x00,0x00, //-- 幻 --0x80,0x20,0xC0,0x30,0xA0,0x28,0x98,0x24, 0x87,0x22,0x80,0x21,0xC4,0x30,0x04,0x60, 0x04,0x00,0x04,0x20,0x04,0x40,0x04,0x80, 0x04,0x40,0xFE,0x3F,0x04,0x00,0x00,0x00, //-- 摇 --0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F, 0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44, 0x84,0x44,0xBC,0x7F,0x82,0x44,0xA2,0x44, 0x9B,0xF4,0x82,0x06,0x00,0x04,0x00,0x00, //-- 摇 --0x10,0x02,0x10,0x42,0x10,0x81,0xFF,0x7F,0x90,0x04,0x54,0x05,0xCC,0xF4,0xB4,0x44,0x84,0x44,0xBC,0x7F,0x82,0x44,0xA2,0x44,0x9B,0xF4,0x82,0x06,0x00,0x04,0x00,0x00,//-- 棒 --0x10,0x04,0x10,0x03,0xD0,0x00,0xFF,0xFF,0x90,0x00,0x54,0x05,0x44,0x12,0xD4,0x15,0x74,0x14,0x5F,0xFF,0xD4,0x14,0x54,0x15,0x56,0x12,0x44,0x06,0x40,0x02,0x00,0x00,//-- ! --0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x10,0xFE,0x3B,0xFE,0x3B,0x7C,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*****函数声明*****/void display1(void);void display2(void);void display3(void);void display4(void);/*****n(us)延时子程序*****/void DelayUs(uint N){uint x;for(x=0; x<=N;x++);}/*****中断服务程序*****/void intersvr0(void) interrupt 0 using 1{KY=~KY; //每个摇动来回水银开关会在摆幅两端分别产生下降沿中断,只提取其中一次(从左向右摇才显示)if(KY==0){num++; //计算中断次数switch(pic) //选择画面{case 0:{display1();}break;case 1:{display2();}break;case 2:{display3();}break;case 3:{display4();}break;default:{display1();}}}}/*****显示子程序1(汉字)*****/void display1(void){uchar i;if(num>10){disp++;num=0;} //12个汉字分为3次显示完(每次显示4个),每中断10次切换if(disp>2)disp=0;DelayUs(5200); //此处延时时间依各硬件差别而各不相同,试着调整使得显示内容居中即可for(i=0;i<64;i++){P0=~hanzi[disp*128+i*2];P2=~hanzi[disp*128+i*2+1];DelayUs(100);}}/*****显示子程序2(LOVE)*****/void display2(void){uchar i;DelayUs(4000);for(i=0;i<64;i++){P0=~love[i*2];P2=~love[i*2+1];DelayUs(120);}}/*****显示子程序3(心形图案)*****/void display3(void){uchar i;DelayUs(4000);for(i=0;i<64;i++){P0=~loveyou[i*2];P2=~loveyou[i*2+1];DelayUs(120);}}/*****显示子程序4(呵呵o(∩_∩)o图案)*****/void display4(void){uchar i;DelayUs(4000);for(i=0;i<64;i++){P0=~hehe[i*2];P2=~hehe[i*2+1];DelayUs(120);}}/*****主函数*****/void main(void){IT0=1;EX0=1;EA=1; //开中断,下降沿中断KY=0;while(1) //主程序中只检测按键{if(KEY==0) //画面切换键按下{DelayUs(10000); //按键去抖if(KEY==0);pic++;}if(pic>3)pic=0;}}/*****END*****/51最小系统制作材料规格数目价格/带串口万用板 1 10 stc89C52 1 7 按键开关 1 0.2常开按钮开关 2 1 发光二极管(红 5mm)(蓝色 3mm)红色10个,蓝色3个0.1电解电容10uF 2电阻220、417K、1K 20 0.0排阻 4.7K*9P 1 0.3瓷片电容104/30 10 0.0三极管8550 1 0.15V蜂鸣器 1 0.5一位数码管共阴 2 2 单排针 2 0.3 USB-A加配套的USB线 1 1 MAX232 1 2紧锁座40P 1 0.2芯片座IC-16P 1 0.4晶振12M 1 0.8蜂鸣器 1串口线 18550 1 红外编码芯片5104 2DA转换器DAC0832 1单股线5M摇摇棒制作芯片座AT89s52或stc型万用板5mm高亮发光二极管16晶振12M 0.8 130p瓷片电容0.05 10电阻10K 0.01 10电解电容10uF 1二极管IN4007 0.1 1按键开关0.2 1水银开关 1 1排阻10k*8 0.3 1导线(最好为排线)40PZUO电阻1k电解电容 220u40p座。
# 创新设计16个LED灯的摇摇棒,可显示英文、图形及汉字# 仅需5种元器件(单片机、LED、导线、电池和塑料壳),让DIY简单、快速# 往返双程扫描,慢速摇动也可清晰显示# 敲击字幕切换功能,无需按键操作# 在软件上有很大的升级空间(包括双色显示、LED测光等)-----------------------------------------------------------------------[注意事项]-----------------------------------------------------------------------# HEX文件烧写时需选择“内部RC时钟”# 本制作采用STC12C5A60S2单片机,不可以用其他型号单片机替代# 惯性开关在制作时注意静止时开关柄到左右触点间的距离应尽量相等# 本制作无开关,不用时需取下电池或在电池间塞入绝缘纸片单片机采用STC12C5A60S2(1pcs)- 0805型贴片式LED灯(16pcs)- CR2032钮扣电池(2pcs)- 具有一定弹性的导线和废弃的元器件引脚- 用来包装DIP40脚单片机的塑料壳(1pcs)- 确保单片机可以放入并有较大余地- 用钳子将P0、P2接口所在一侧的引脚全部向外弯折- 目的是保证将单片机放入塑料壳时不会左右乱窜- 弯折时尽量不断放入塑料壳中比对- 擦拭弯折后的引脚表面确保无污物可以顺利上锡- 用摄子取出贴片LED灯并焊接在单片机引脚上- 从P2.0引脚开始焊接左边焊LED负极(P2.0负极、P2.1正极)- 依次焊接16个LED灯到P0.2引脚为止- 将一支废弃元器件引脚对折并焊接在弹性导线上- 弹性导线的另一端焊接在单片机的第20脚上(GND)注意掌握导线长度- 将P1.3引脚弯折至芯片底部再用废弃元器件引脚向上延长P1.2引脚- 使之形成惯性开关的两个触点再把P1.4引脚略向内弯曲形成侧撞触点- 把一支废弃的元器件引脚焊接在单片机的第40脚上(VCC)- 再取一段导线将一端焊接在单片机的第20脚上(GND)- 导线另一端的接头处挂大量的锡- 用胶带固定导线使之在摇动时不易乱窜- 此时在单片机一侧形成了电源的正、负极接口将钮扣电池重叠后放入正、负极接口处- 最后将单片机连同电池一并塞进塑料壳中- 用透明胶带把开口处包好 - 因摇动时的离心力向上所以单片机及电池不会向下滑落无需设计下方固定希望以上资料对你有所帮助,附励志名言3条:1、常自认为是福薄的人,任何不好的事情发生都合情合理,有这样平常心态,将会战胜很多困难。
怎样制作摇摇棒
废话不多说,进入主题。
首先,需要洞洞板一块。
我用的是2*8CM的,双面镀锡板。
蓝色雾面高亮3MM子弹头LED 16只(名字说的长了点。
)
处理每个LED的引脚成如图这样
焊接到洞洞板(我是焊接在洞洞板的侧边,节省了空间,也为后来包装方便。
)
焊接一排
在这里说明一下,我使用的驱动方式比较特别。
我自己随便捣鼓的,然后试着就成功了,节省了近一半的IO口,只用了9个IO口就可以分别单独驱动16个LED,并且用stc的推挽输出。
具体驱动方式和电路图请继续看下文,后面会说明。
《单片机基础》课程实习指导手册——制作摇摇棒摇摇棒硬件部分由单片机最小系统、LED灯条、电池盒三部分组成。
其中最小系统和LED 灯条需要手工在万用板上焊接。
图 1 单片机最小系统图 2 LED灯条任务一:认识实验所需元件图 3 本次实习所用元件请根据以上电路图和原件实物,在下面所给的万用板模拟图中描绘出单片机最小系统的线路布局。
图 4 焊接元件的万用板任务二:根据设计好的电路走线焊接电路提示(电路板的焊接技巧):在焊接时,先使用烙铁加热焊件,然后将焊锡送入焊盘与烙铁之间,当焊锡在焊盘和引脚之间形成圆锥型时,移开烙铁和焊锡便完成了元件的焊接。
图 5 焊接过程示意图请根据以下步骤焊接各元件。
图 6 步骤一(插入单片机底座并焊接底座)如图6所示,将单片机底座插于万用板正面,翻转电路板,对底座引脚逐一进行焊接。
图7 步骤二(插入排针并焊接排针)如图7所示,将每段20脚的排针从中间掰成两段,每段10脚,插于单片机底座两侧,翻转电路板,对排针引脚逐一进行焊接。
图8 步骤三(锡连单片机底座和排针的对应引脚)如图8所示,在排针焊接完成后,用焊锡将单片机底座与排针按照线路布局相连。
图9 步骤四(焊接晶振和两个陶瓷电容)如图9所示,将晶振和两个30pF的谐振电容焊接在单片机插座的内部,靠近20脚的位置。
用铜丝将晶振与单片机链接好。
图10 步骤五(焊接电解电容)如图10所示,将47uF的电解电容引脚用镊子弯折,焊接在万用板上。
并依照电路图1将其余元件焊接好。
将电池盒连接到万用板上。
最后在万用板上写上学号和姓名,最小系统制作就完成了。
图11 在制作好的电路板上写上学号和姓名图12 焊接LED灯如图12所示,将大块的万用板分开,按照电路图2将发光二极管排列为共阳极方式。
进行焊接。
任务三:对焊接好的电路检测是否工作正常图13 测量系统的工作电压如图13所示,用万用表对最小系统的电压进行测试,红表笔接40脚(VCC),黑表笔接20脚(VSS),电压应该为+4.5V~+5V之间。
LED摇摇棒实际制作图文教程【含汇编程序】LED摇摇棒实际制作图文教程【含汇编程序】总体介绍:大家知道,人的眼睛存在视觉暂留现象,正因为眼睛的反应迟钝,才丰富了人的视觉感受。
意思是时间小于1/24秒人就分辨不出了,LED摇摇棒很好地利用了人眼的视觉暂留特性。
配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片等。
讲白了就和点阵的显示没什么去别,只是你的手摇晃的过程代替了点阵的片选。
下面是总体的设计电路图:D1是电源指示灯,习惯性做法,是为了更好的了解你电路的物理现象。
下面是摇摇棒的效果图:硬件模块:总体电路图有了我就说一下,焊接步骤及需要注意的细节,第一步:焊好16个LED灯,当然个数随喜好而定,LED颜色也随喜好,但最好不要用白光。
(正面) (背面)第二步:焊单片机最小系统元件放在里面一是为了保护元器件;二是为了美观、好看。
这里注意一下:我们可以在单片机的TXD和RXD及地那里接出来三根排针,接到单片机开发板上的TXD、RXD和地。
是为了烧程序方便,不用每烧一次程序就把它取出来,这样既减少了操作也减少了对单片机的损坏。
第三步:接线(正面)反面第四步:完成,还有按键和水银开关没接,等会会介绍。
总体以焊好下面介绍切换按键和水银开关的接发和作用。
1、水银开关在这里起的是防止镜像文字,深沉点给单片机一个下降沿的触发。
镜像文字通俗点讲是希望当文字向左晃动显示,向右晃动时不让其显示。
但如果没有水银开关给个中断的话,文字会一直显示,造成两排文字重叠在一起。
使人看不清。
当然我们要避免这种情况就接了个水银开关。
水银开关的安放最好是与LED成45度角,既容易触发、减少抖动也是为了安全,当装好后,可以用胶把它封起来,这样就避免了水银开关的破碎。
2、按键开关主要是为了切换模式,这个比较简单,端口随便接哪都可以,我接的是P0.2,软件模块:;===================================================== ;=====程序名称:摇摇棒================================ ;=====硬件说明:16个LED分别接P1、P2口,水银开关接P3.2,;===============按键开关接P0.2======================== ;=====软件说明:采用查表方式,外部中断0===============;=====程序编辑时间:2010-11-14-11-15================== ;=====程序编辑人:李阳辉============================== ;=====所用芯片:STC89C52============================== ;=====所用晶振:12MHz================================= ;=====版本:V1.0====================================== ;=====当前进度:完成================================== ;=====程序完成时间:2010-11-16-10-20================== ;================================================== === ;=====分配单元地址==================================== OUTPUT1 EQU 31H ;P2口查表的暂存器OUTPUT2 EQU 30H ;P1口查表的暂存器COUNT1 EQU 32HC1 EQU 33HC2 EQU 34HC3 EQU 35H C4 EQU 36H C5 EQU 37H C6 EQU 38H C7 EQU 39H C8 EQU 3AH C9 EQU 3BH C10 EQU 3CH KEY BIT P0.2ORG 0000H ;起始地址JMP RESETORG 0003H ;外部中断入口地址JMP INTORG 0030H/*===========================================复位程序===========================================*/RESET:MOV C1,#00H ;偏移量MOV C2,#00HMOV C3,#00HMOV C4,#00H/*MOV C5,#00HMOV C6,#00HMOV C7,#00HMOV C8,#00HMOV C9,#00HMOV C10,#00H */MOV OUTPUT1,#00HMOV OUTPUT2,#00HSETB KEY ;把P0.2置高,作为输入口MOV COUNT1,#00HSETB EX0 ;分中断SETB EA ;总中断SETB IT0 ;启动/*========================================== 主程序==========================================*/ MAIN:CALL KEY_SCANCALL NOADLJMP MAIN/*========================================= 按键处理程序只做了两种模式,大家可以再加=========================================*/ KEY_SCAN:JB KEY,KEY_RETLCALL DELAYJB KEY,KEY_RETINC COUNT1INC COUNT1MOV A,COUNT1CJNE A,#4,KEY_DMOV COUNT1,#00HKEY_D:JNB KEY,$KEY_RET:RET/*========================================== 散转程序==========================================*/ NOAD:MOV DPTR,#TAB_B ;设置散转表地址MOV A,COUNT1JMP @A+DPTRTAB_B: ;散转表AJMP OPR_0AJMP OPR_2OPR_0:MOV DPTR,#TAB1MOV A,C1MOVC A,@A+DPTRMOV OUTPUT1,AMOV DPTR,#TAB2MOV A,C2MOVC A,@A+DPTRMOV OUTPUT2,AMOV P2,OUTPUT1 MOV P1,OUTPUT2 CALL DELAYINC C1INC C2MOV A,C2CJNE A,#64,OPR_0 MOV C1,#00H MOV C2,#00H LJMP OPR_RET OPR_2:MOV DPTR,#TAB3 MOV A,C3MOVC A,@A+DPTR MOV OUTPUT1,A MOV DPTR,#TAB4 MOV A,C4MOVC A,@A+DPTR MOV OUTPUT2,A MOV P2,OUTPUT1 MOV P1,OUTPUT2 CALL DELAYINC C3INC C4MOV A,C4CJNE A,#64,OPR_2MOV C3,#00HMOV C4,#00HLJMP OPR_RETOPR_RET:RET/*===========================================中断处理程序===========================================*/ INT:MOV P1,#0FFHMOV P2,#0FFHCALL DELAYRETI/*===========================================延时程序===========================================*/ DELAY:MOV R7,#3D1: MOV R6,#0E0HDJNZ R6,$DJNZ R7,D1RET;===========================真心爱你========================== TAB1: DB0FFH,0F7H,0F3H,0F7H,0F7H,0F7H,0F0H,0F7H,0C7H,0E7H,0B7H,0CBH,0EFH,0 F0H,0FBH,0FDHDB0FFH,0F9H,0F8H,0ABH,0AH,0B2H,0BAH,0A2H,0DBH,0DAH,0C2H,0DAH,0DBH,0E8H ,0F9H,0FFHDB0FFH,0E1H,0DEH,0BFH,0BFH,0BFH,0DFH,0EFH,0EFH,0DFH,0BFH,0BFH,0BFH,0DE H,0E1H,0FFHDB0FFH,0FFH,0DFH,0DFH,0DFH,0D0H,0D5H,0A5H,95H,0D5H,0A5H,0D0H,0DFH,0DFH ,0FFH,0FFHTAB2:DB0FFH,0FFH,0CFH,0BFH,7FH,0FFH,03H,0F7H,0EFH,7FH,0BFH,0DFH,0FFH,03H,0F FH,0FFHDB0FFH,0FFH,0FCH,0FCH,0CCH,0CBH,0C7H,0CBH,5CH,9FH,0EFH,0F7H,0FBH,0FDH, 0FFH,0FFHDB0FFH,0FFH,0FFH,7FH,0BFH,0DFH,0EFH,0F7H,0F7H,0E7H,0DFH,0BFH,7FH,0FFH, 0FFH,0FFHDB0FFH,0DFH,0DFH,0DDH,0DBH,17H,4FH,5FH,5FH,5FH,4FH,07H,0DBH,0DDH,0DFH, 0FFH;=========================新年快乐============================TAB3:DB0FFH,0FFH,0FEH,0FEH,0BEH,0BEH,0DEH,0DEH,0D8H,0DEH,0DEH,0EEH,0EEH,0E0 H,0FFH,0FFHDB0FFH,0FFH,0FFH,0F8H,0FBH,0FBH,0E0H,0FBH,0FBH,0FEH,0FDH,0FBH,80H,0 FFH,0F8H,0FFHDB0FFH,0FFH,0FFH,0F7H,0F7H,0F5H,0F5H,0F0H,0F5H,0F5H,0F5H,0D4H,0E7H,0F7 H,0F8H,0FFHDB0DEH,0DEH,0DEH,0DEH,0EEH,0EEH,0E0H,0FFH,0EEH,0E6H,0EAH,0ECH,0CCH,0AA H,0E6H,0EEHTAB4:DB0FFH,0FFH,0F7H,0EFH,0DFH,0BFH,0FFH,0FFH,01H,0FBH,0F7H,0BFH,0DFH,0EFH ,0F7H,0FFHDB0BFH,0BFH,0BBH,37H,0AFH,9FH,3FH,9FH,0AFH,0B7H,0BBH,0FFH,01H,0FFH,0FF H,0FFHDB0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,0DFH,01H,0DFH,0DFH,0DFH,1FH,0DFH,0DFH, 0DFH,0FFHDB0FFH,0FFH,0FFH,01H,0FFH,0FFH,0FH,0F1H,0FFH,0EFH,8FH,0B0H,03H,0B7H,9F H,0EFH;=======================================================END ;结束。
看图说话手把手教会你制作电子摇摇棒(PVC版)
林红华
【期刊名称】《电子制作》
【年(卷),期】2015(0)4
【摘要】随着人们物质生活水平的提高,人们对精神生活的追求也愈加强烈.对信息的渴求已成为了人们必不可少的需要,更加简捷与新颖的信息传递方式无疑会给人们带来耳目一新的感受。
而现代工具务求简捷化、便携化,因此,摇动显示装置的到来,必将会给人们带来一种全新的方便的文化传递方式。
【总页数】5页(P58-62)
【关键词】信息传递方式;电子;制作;把手;图说;精神生活;显示装置;生活水
【作者】林红华
【作者单位】
【正文语种】中文
【中图分类】TS972.21
【相关文献】
1.教会学生“看图说话” [J], 干海红
2.多功能数码摇摇棒制作 [J], 徐玮
3.制作SHOOK16摇摇棒 [J], 杜洋
4.旋转型摇摇棒的制作 [J], 于涛
5.直面教材生活促进表达效度——统编版一年级看图说话训练的策略研究 [J], 张梦洁
因版权原因,仅展示原文概要,查看原文内容请购买。
杜洋工作室 DoYoung Studio- SHOOK16摇摇棒- 所需元器件- 电路原理图- 单片机采用STC12C5A60S2(1pcs)- 0805型贴片式LED灯(16pcs)- CR2032钮扣电池(2pcs)- 具有一定弹性的导线和废弃的元器件引脚- 用来包装DIP40脚单片机的塑料壳(1pcs)- 确保单片机可以放入并有较大余地- 用钳子将P0、P2接口所在一侧的引脚全部向外弯折- 目的是保证将单片机放入塑料壳时不会左右乱窜- 弯折时尽量不断放入塑料壳中比对- 擦拭弯折后的引脚表面确保无污物可以顺利上锡- 用摄子取出贴片LED灯并焊接在单片机引脚上- 从P2.0引脚开始焊接左边焊LED负极(P2.0负极、P2.1正极)- 依次焊接16个LED灯到P0.2引脚为止- 将一支废弃元器件引脚对折并焊接在弹性导线上- 弹性导线的另一端焊接在单片机的第20脚上(GND)注意掌握导线长度- 将P1.3引脚弯折至芯片底部再用废弃元器件引脚向上延长P1.2引脚- 使之形成惯性开关的两个触点再把P1.4引脚略向内弯曲形成侧撞触点- 把一支废弃的元器件引脚焊接在单片机的第40脚上(VCC)- 再取一段导线将一端焊接在单片机的第20脚上(GND)- 导线另一端的接头处挂大量的锡- 用胶带固定导线使之在摇动时不易乱窜- 此时在单片机一侧形成了电源的正、负极接口- 将钮扣电池重叠后放入正、负极接口处- 最后将单片机连同电池一并塞进塑料壳中∙- 用透明胶带把开口处包好∙- 因摇动时的离心力向上所以单片机及电池不会向下滑落无需设计下方固定∙- 不用时可取出电池(或把纸片塞在两块电池中间)∙- 可用透明胶带缠绕单片机一圈并在塑料壳开口处留出胶带头以方便拉出电池- 用手握住塑料壳另一端左右匀速摇动即可- 本设计可显示16位字高的汉字或英文字母- 通过纵向敲击摇摇棒来完成字幕的切换- 字幕数量和内容可以在源程序中设计∙- 环境光线较弱时可以达到更好的显示效果∙- 制作说明∙- SHOOK16 V1演示视频∙- SHOOK16摇摇棒字幕修改方法。
自制LED字幕摇摇棒图解
曾经在网上看见别人做的摇摇棒,感觉很好玩。
后来一直没时间做,现在放假了,就自己动手做了一个。
我知道大家一般有很少有适合做摇摇动棒的长窄型万用板,我也没有,手里只有10cm*10cm的万用板,如是我把它裁成三段,费了我好大的力啊。
这是基本工具,我想大家都有吧。
这是把前两段拼在一起的效果,注意前两段最好直接接在一起,这样好看一些,不要上下叠加。
为了让它牢固,我用两块小板把它们夹在一起。
这是三段拼接在一起
整体布局
我相信有许多朋友买不到水银开关,我就从光驱坏光驱里面拆了个限位开关,就是控制光驱开/关仓是否到位的装置。
左右摇摆时可以控制开关的通断。
这是把其电路拆下来的图片。
大家也可以用水银开关做。
这是把其固定在摇摇棒板子上,在其上加了个螺丝,这样可以调节其左右。
LED摇摇棒制作
LED摇摇棒同LED点阵显示都是利用了LED的余晖特性和人眼的视觉停留作用动态扫描显示,摇摇棒与点阵不同之处在于摇摇棒16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,节省了LED、空间。
配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片、文字等。
电路原理图:
元器件清单:
A T89S51单片机:1个12M晶振:1个按键:1个自锁开关:1个
电容:30p :2个10uF :1个470uF:1个104:1个
电阻:100 :16个RX8(10k排阻):1个10k :2个1k:1个
LED:3mm高亮白发红光:16个电源指示灯:1个
CON6座:1个(下载座)外接电源座1个40P座:1个
LED旋转显示屏制作
LED旋转显示屏同摇摇棒原理相同,只是将手的摇动改为电机的旋转带动,频率较之更稳定,可显示字符、图片、汉字、动画等
元件清单:
直流电机:1个(转速稳定)A T89S52单片机(QFP封装):1个
LED红(0805贴片):32个电源指示灯:1个(0805贴片)
电阻(0805)100 :33个10k:1个1k:1个
24M晶振(贴片):1个
电容:30p :2个(贴片)104:2个(贴片)10uF :1个100uF:1个
CON6座:1个(下载座)直角
霍尔元件:1个小磁铁:1块(或光电管一对:发射接收分离)
自锁开关:1个热转印电路板:1块
无线发射接收模块(体积尽量小的)。
摇摇棒焊接教程摇摇棒焊接教程一、说明8个IO驱动32颗高亮发光二极管,程序对上一版本有做改进,显示效果更好,自适应的更好。
另外增加了上位机改字的功能,从而大大减少了改动源程序的麻烦。
也使得改字很方便,上位机功能可支持输入文字,大小任意,只要在32*64这个区域内就行。
支持画图,导入BMP格式图片及保存图片,一共可以配置8张图片,每个图片独立,软件自带各种图案,也可从Word里导出图案,显示图案在范围内随便定义大小。
准备工作:电烙铁一把(功率最好在40W),焊锡丝一卷(直径最好在0.8左右),焊锡膏或松香若干,剪脚钳一把。
准备一个小盒子,把所有的元器放入盒子里备用。
拿到套件的时候先清点元件数量,焊接的时候对照元件清单进行焊接二、元件清单:器件名称标号数量备注3m m发光二极管D1-D3232直插件M C U STC11F04E U11直插件I C座 20PI N1直插件C H340U21表面贴装震动开关S11直插件按键S21表面贴装二极管 SS14D K D K1 D K23表面贴装20pF 电容C2 C32表面贴装0.1uF 电容C1 C82表面贴装电源开关sw1直插件晶振 12M H z Y11直插件M I C RO U SB J11表面贴装注:电阻R1用焊锡短掉即可。
三、原理图:如下图看不清楚的,具体请看PDF文档的原理图四、焊接说明以及注意事项:1、LED具有极性。
焊接前请确认LED管脚正负极,长脚正,短脚负!如果焊接错误,需要拆下容易损坏PCB板,所以为了一次焊接成功请务必分清正负极!根据缺口来确定LED 极性。
焊接时烙铁不能长时间加热器件,那样很容易烧坏led。
长脚靠近芯片一端。
2、先进行usb接口的焊接(注意:注意焊接方向)3、贴片元件的焊接(注意:注意芯片CH340和二极管的极性)4、焊接完成下载口:usb供电口即下载口,安装好驱动即可下载程序。
五、常见问题分析1、摇晃时出现个别LED不亮,请检查是否有断线。
扭扭棒手工制作教程
材料准备:
1. 彩色纸片
2. 扭扭棒棒棒杆
3. 剪刀
4. 胶水
制作步骤:
1. 在彩色纸片上画出一个长方形。
长方形的宽度应该与扭扭棒杆的长度相同,长度可以根据个人喜好适当调整。
2. 使用剪刀将画好的长方形剪下来。
3. 将剪好的长方形纸片从一个端角开始,向另一个端角逐渐卷起来,形成一个圆柱状的形状。
4. 使用胶水将纸片紧密粘在一起,确保其形状保持稳定。
5. 在纸片圆柱的一端涂抹一些胶水,然后将扭扭棒杆插入其中。
6. 等待胶水完全干燥后,扭扭棒手工制作完成。
温馨提示:
1. 制作过程中可以使用不同颜色的彩色纸片,以增添扭扭棒的装饰效果。
2. 注意不要用太多胶水,以免黏住扭扭棒杆和手。
3. 可以根据个人喜好在制作好的扭扭棒上添加一些装饰,如彩带等。
LED显示摇棒制作LED显示摇棒制作作者:loverobots 博客:/lihaifeng/article.htmemail: look.sea@ QQ: 88492757情人节我们做电的兄弟们送什么礼物给心仪已久的MM?给大家提供一个适合作为礼物的简单电路,自己动手做的漂亮玩具一定会是送给MM的最好的礼物。
原理图以下是详细说明:图形显示的原理:利用人眼的视觉暂留效应,使手在摆动到不同位置的时候,让位于一条直线上的LED显示二维图像的不同的列,实现图形扫描显示。
物理机制:当我们在摆动手臂的时候,短时间内摆动位置和左右幅度不会有太大变化,利用我们手臂的这个运动规律,只要能得到棒从一侧摆动到另一侧的时间,然后把这个时间分成N份,然后在每一份的时间里显示不同的花样就能实现图形的显示。
当我们在摆动手臂的时候,并不能预先得知此次摆动需要的时间,怎样得到从一侧摆动到另一侧的时间呢?再想想,短时间内我们手臂的摆动频率也不会有特别大的变化,我们只要能得到前一次摆动所用的时间,然后用这个时间近似得到下一次摆动所需要的时间,然后分N份就可以了。
得到一次摆动所需的时间的任务由光遮断器完成,在棒上装一个可以摆动的用来遮挡光遮断器光线的细杆,粗细比光遮断器的狭缝稍宽,我用的是整流桥焊后剪下的一段管脚。
每左右摆动一次这个杆就会通过一次光遮断器,使单片机产生一次中断,两次中断之间的时间就是想要得到的时间,实现这个功能用掉2051的一个定时器T0和外部中断INT0。
然后用2051的另一个定时器T1,其定时时间是T0的N分之一,每次中断依次显示一列,就是照片上的效果。
再细想一下,手臂摆动的频率大于2Hz的时候才大概能由视觉暂留看出图形,再快也不过十几Hz,由T0为16位定时器的最长计时时间得到2051的时钟频率1MHz最合适,还有遮挡用的细杆的粗细也可以大概估算,使其不会对计时精度产生太大影响。
所用元件:AT89C2051 8元高亮LED共8个3.6元电池盒0.5元单面万用板8元可以裁成3块,做3个摇棒陶瓷谐振器1元光遮断器2元电阻电容导线2元外壳* 0.7元可以裁成2块可选元件:电源开关1元总成本不超过20元*外壳我用在家乐福买的半透明文件夹卷成的此电路电路非常简单,代码短,但是用到了2051的外部中断编程和T0、T1定时器编程,非常适合初学者练习。
自己做个小摇摇棒Post By:2008/4/10 23:39:32这几年,利用烂便宜的单片机,人们搞出了不少的发光玩意儿,有转的有摇的,总之都是利用人眼的视觉暂留特性,让一排LED在运动时发出点阵LED的效果,在空中刷出文字或图案来在没有单片机,和计算机十分昂贵的时代,没有办法最做出这么个小东西,而现在单片机又便宜又小,电脑也是几乎家家都有的东西,再加上无所不在的网络,做出这个东西不是什么难事,硬件好说,买来东西照图施工就是了,关键是软件怎么考虑,就说空中刷字,是一个方向运动还是左右摇动?每次显示几个字?怎么在单片机里面存放这些字并取出?怎样变换显示内容?容在下以后一一道来,下图是一个英文字母A,可见他是由一些发光点组成,从下到上是单片机的输出口先用p7..p0表示,横向则是在t0..t7应该发光的点子,顺序各个纵向列相应发光就显出A了。
此主题相关图片如下:tmp0001.jpg上图也就是说,用8个LED,阳极均通过限流电阻接到5V电源,各自阴极接到单片机的某口线,当口线输出0时,LED亮,口线为1时LED灭。
给这个输出口输出一个8位二进数来控制8个LED谁亮谁灭,则从t0到t7各个时间段对应口线输出情况如下:t0 : 0 1 1 1 1 1 1 1 16进数:0x7ft1: 0 0 0 0 0 0 1 1 0x03t2: 0 1 1 0 1 1 0 1 0x6dt3: 1 1 1 0 1 1 1 0 0xeet4: 0 1 1 0 1 1 0 1 0x6dt5: 0 0 0 0 0 0 1 1 0x03t6: 0 1 1 1 1 1 1 1 0x7ft7: 1 1 1 1 1 1 1 1 0xff如果t0...t7为1毫秒时间间隔,则当这一排LED从左向右快速移动时按照以上输出点亮,经过8毫秒,空中就显示一个A字出来。
为了能够显示"A",单片机内必须存储形成A点亮的全部信息,也就是把上面的8个16进数,顺序保存在ROM 区,需要时就取出来输出到口线上去。
摇摇棒制作教程
本摇摇棒设计所用的软件是proteus8.3 很多原件都没有都是自己画出来的所以做出来的板子不是太理想主要就是焊盘量身定做没有画的稍大点导致焊接很不爽别的貌似没啥了如果你们感觉我哪里做的不好欢迎批评(o゚v゚)ノ
这些都是电脑上设计的图。
无奈proteus 只能输出cam文件去给人家打板。
哎
反正最后是吧板子做出来了一共十一张板子每张板子2套体积大约是2*10*1cm
很小吧~( ̄▽ ̄~)(~ ̄▽ ̄)~
下面就是制作过程咯~~ 一张大板子。
还得自己切开
一个摇摇棒分为两个板子一个是摇摇棒本身的主要电路另一个是电池以及充电电路开关神马的。