32颗led灯摇摇棒制作的所有资料打包下载:
32灯摇摇棒全套资料.rar
(9.01 MB, 下载次数: 576)
32颗灯摇摇棒制作说明 32颗灯摇摇棒的制作,包括焊接说明,常见问题分析,让你轻松DIY。 一.说明:8个IO驱动32颗高亮发光二极管,程序对上一版本有做改进,显示效果更好,自适应的更好。另外增加了上位机改字的功能,从而大大减少了改动源程序的麻烦。也使得改字很方便,上位机功能可支持输入文字,大小任意,只要在32*64这个区域内就行。支持画图,导入BMP格式图片及保存图片,一共可以配置8张图片,每个图片独立,软件自带各种图案,也可从Word里导出图案,显示图案在范围内随便定义大小。
原理图:
二.元件清单: 三.原理图:下图不清楚,具体请看PDF文档的原理图 四.焊接说明以及注意事项: 1.LED灯是从原理图可以看出,是正负正负接的。请看好PCB板子上的标号。 另外板上一共有8条跳线,利用LED剪下的管脚当跳线用。 2.滚珠开关焊接方向: 如下图,摇摇棒竖直放,滚珠开关金色那头靠左边焊接,如果焊反显示效果也是反的。 3.电池盒焊接: 电池盒采用3V7号电池盒,放置在握手的地方,使得摇晃起来很舒适。 两个电池盒串联的方式,多一个电池槽需短路,因为3个电池电压已够供单片机所需电源。另外需要用双面胶把电池盒固定在板上。 4.下载口 从PCB板上的标号也可看出VCC P30 P31 GND 下载程序或者配置字幕数据时请正确连接。 常见问题分析: - 焊接完成后,上电池,由于电池盒都带电源开关,因此有两个电源开关需要同时拨到开的位置。
- 如果摇晃时,亮度不均匀,请更换该LED,由于此种接法的特殊,需要各个灯的特性要尽量相同。
- 程序下载不进去,检查下载口的线是否正确连接,单片机下载需要冷启动,意思是重新上电,单片机型号STC11F02E,选择对型号,使用内部晶振下载。
一般源程序不需要下载的,发货前都已烧好程序。如果真需要烧写,可按照步骤烧写。这里特别声明一下,由于有些初学者没操作过下载,特别是USB转串口的使用这里我觉得有必要提一下。见下图:
32颗灯摇摇棒使用说明 手握着电池盒位置,手臂不需要摆动,只需要靠手腕的摆动来形成一个扇区, 摇晃速度不需要很快,可以自己感觉一下,可以自适应的很好,摇晃很小的范围都能正常显示。效果很赞!!!! 上位机软件说明请看:“64x32摇摇棒取模软件帮助文档” 下载波特率:2400 8-N-1 下载字幕数据: 请正确连接4P下载线,如下图: 下载时请这样放置,让摇摇棒竖着放,意在不让滚珠开关导通,这样会导致下载不了。上电后有些LED会亮,指示可以下载字幕数据,如果不亮请重新上电。 软件配置:生成方式配置 串口设置中:请务必选择2400波特率,串口选择对应的串口号。或者从设备管理器COM管理看对应串口号。一般软件会自动搜索,前提是先插了USB转串口再打开软件。 取模范例: 图片不居中可以通过上下左右来移动,制定出满意的图片。
部分源程序预览:
- #include
- #include
- //缓存
- #define uchar unsigned char
- #define uint unsigned int //宏定义
- #define KEY P3^0 //定义画面切换按键
- uchar KY; //KY作用在后面说明
- uchar disp=0; //显示汉字指针,该参数+1的话,显示的字符多4个,同时要给要显示的汉字取模加到汉字数组中。
- uchar pic=0,num=0; //pic为按键次数;num为中断次数
- uchar code xinjiaxin[]={
- 0x00,0x0E,0x11,0x21,0x42,0x84,0x42,0x21,0x11,0x0E,0x00,0x08,0x08,0x3E,0x08,0x08,
- 0x00,0x00,0x0E,0x1E,0x3C,0x78,0x3C,0x1E,0x0E,0x00,0x14,0x14,0x14,0x14,0x00,0x0E,
- 0x1F,0x3F,0x7E,0xFC,0x7E,0x3F,0x1F,0x0E,/*"xinjiaxin*/
- };
- unsigned char code miss[] = {
- 0x00,0x00,0x00,0x81,0xFF,0x81,0x00,0x00,0x00,0x00,0x04,0x7C,0x04,0x7C,0x04,0x7C,
- 0x00,0x7D,0x00,0x5C,0x54,0x54,0x74,0x00,0x5C,0x54,0x54,0x74,0x00,0x00,0x00,0x7F,
- 0x80,0x80,0x80,0x7F,0x00,0x00,0x00,0x00,/*I miss U*/
- };
- /*****函数声明*****/
- void display2(void);
- void display5(void);
- /*****n(单位us微秒)延时子程序*****/
- void DelayUs(uint N)
- {
- uint x;
- for(x=0; x<=N;x++);
- }
- /*****主函数*****/
- void main(void)
- {
- IT0=1;
- EX0=1;
- EA=1; //开中断,下降沿中断
- KY=0;
- while(1) //主程序中只检测按键
- {
- if(KEY==0) //图案切换键按下
- {
- DelayUs(20000); //去除按键抖动
- if(KEY==0);
- {
- pic++;
- disp=0;
- num=0;
- } //endif
- } //endif
-
- } //endwhile
- } //endmain
- /*****中断服务程序*****/
- void intersvr0(void) interrupt 0 using 1
- {
- KY=~KY; //每个摇动来回水银开关会在摆幅两端分别产生下降沿中断,只提取其中一次(从左向右摇才显示)
- if(KY==0)
- {
- if(pic>1)pic=0;//总共有6个图案
- num++; //计算中断次数
- switch(pic) //选择显示图案
- {
-
- case 1:{display2();}break;
-
- case 2:{display5();}break;
- default:{display2();}
- }
- }
- }
- /*****显示子程序3(汉字)*****/
- void display2(void)
- {
- uchar i;
- DelayUs(5000);
- for(i=0;i<40;i++)
- {
- P1=~miss[i*1];
-
- DelayUs(75);
- }
- }
- /*****显示子程序6(汉字)*****/
- void display5(void)
- {
- uchar i;
- DelayUs(5000);
- for(i=0;i<40;i++)
- {
- P1=~xinjiaxin[i*1];
-
- DelayUs(65);
- }
- }
- /*****END*****/
复制代码
|