旋转LED制作(立体和平面一体板).doc

上传人:s9****2 文档编号:563926549 上传时间:2024-02-15 格式:DOC 页数:16 大小:5.54MB
返回 下载 相关 举报
旋转LED制作(立体和平面一体板).doc_第1页
第1页 / 共16页
旋转LED制作(立体和平面一体板).doc_第2页
第2页 / 共16页
旋转LED制作(立体和平面一体板).doc_第3页
第3页 / 共16页
旋转LED制作(立体和平面一体板).doc_第4页
第4页 / 共16页
旋转LED制作(立体和平面一体板).doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《旋转LED制作(立体和平面一体板).doc》由会员分享,可在线阅读,更多相关《旋转LED制作(立体和平面一体板).doc(16页珍藏版)》请在金锄头文库上搜索。

1、立体&平面旋转式LED 制作 由6V变压器驱动电机自动旋转,显字宽度能自适应转速的快慢自动调节, 采用无线供电方式为显示部分供电,采用STC12C5A32S2单片机控制,频率特性及稳定性比普通单片机更好,有显字和时钟功能,硬件电路图绘制和软件编程都由本店工程制作并调试成功,主要针对电子爱好者需要进行设计,并能为顾客提供硬件和软件的技术支持。本站视频地址:http:/ 优酷视频本店出售的是旋转LED套件,提供电路板所需的所有元件和焊接电路图,各元件参数都是自己通过多次验证调试出来,能使产品发挥最优的性能。 如果你是电子DIY爱好者,学会焊接是相当重要的,电路板元件大多数都是贴片元件,体积很小,所

2、以对焊接贴片元件还不熟的朋友,建议有摄子辅助焊接,由于单片机引脚较密,焊接有难度,如果初学者有要求本店工程师帮忙焊接的,请拍下产品后与店主联系。http:/ 平面显字功能。2. 平面显示数字时钟功能。3. 平面显示指针式时钟功能。4. 立体显字功能。5. 红外遥控功能,能实现立体和平面切换显示,字体宽度和显字宽度调节,时钟较准,复位等功能。6.能一定范围自适应旋转速度7. 直流电供给电机自动旋转,无需人工操作。 遥控器使用说明:按键7是立体显示字模式按键8是平面旋转时钟模式 此模式下 按OK键开始进行调时间,秒不可调。年,月,日,星期,时分都可调,其中“#”号键是时钟初始化用的。按键9是模拟指

3、针表盘模式 效果比较一般 后续会继续改进。原理图:单片机使用资源情况:40个IO口全用上了,其中P3.5 P3.6 P3.7用于DS1302的通信外部中断0 ( P3.2 )用于旋转起点检测,外部中断1 (P3.3) 用于红外接收。其他35个IO全都独立控制LED,使得旋转的时候字体上下不会有偏差的现象。程序下载:下载软件用STC-ISP软件,高点的版本都有STC12C5A32S2的型号,选择好型号后,就可以通过P3.0 P3.1下载程序了 板上已引出4P线了,只需把实验班上的P3.0 P3.1电源和地接上就可以下载,跟普通的89C51一样。程序:程序比较长就不全放上来了,部分说明如下:红外接

4、收处理:这里笔者用了很多方式去解红外遥控器的码,但是发现前几个版本都不太稳定,关键是旋转LED用的中断比较多,对红外接收有一定影响,所以通过努力看红外码的原理,选择一种更好的方式去解码,由于解码时通过外面中断1触发,定时器计时来完成解码的。为了提高稳定性,这里让定时器在外部中断1触发后才开始计时,而且计时到定时器1溢出 计数变量加1,当然定时器1是用重装模式的。算算18.432M的晶振 定时器1溢出时间是160US 所以根据这个时间来算1还是0比较容易成功,遥控器也灵敏多了。具体实现可以看程序部分 店里有详细注视的程序,如果需要可到http:/ 程序如下:#include NEW_8051.H

5、#include task.huchar irtime;/红外用全局变量bit new_code;uchar IRcord2;uchar irdata17;uchar key_code;/*/void tim1_isr (void) interrupt 3 using 1/定时器1中断服务函数 irtime+;/*/外部中断1解码程序void ex1_isr (void) interrupt 2 using 2/外部中断1服务函数 static uchar i,p,z; static bit startflag; TR1=1; if(startflag) if(irtime=53)/引导码 T

6、C9012的头码 i=0; p=1; z=0; irdatai=irtime; irtime=0; z+; if(z=18) irdatap=irtime; irtime=0; p+; if(p=17) new_code=1; p=0;TR1=0; else irtime=0; else irtime=0; startflag=1; /*/void Ircordpro(void)/红外码值处理函数 uchar i, j, k; uchar cord,value; k=1; for(i=0;i2;i+)/处理4个字节 for(j=1;j11)/大于某值为1 value=value|0x80; else value=value; if(j1; k+; IRcordi=value; value=0; key_code=IRcord0; /if(IRcord2)=IRcord3)&(IRcord0)=IRcord1) / / IrOK=1;/处理完毕标志位置1 / /else /IrOK=0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号