用硬盘音圈电机DIY摇摆LED显示钟.doc

用硬盘音圈电机DIY摇摆LED显示钟.doc

ID:27305027

大小:709.50 KB

页数:18页

时间:2018-12-02

用硬盘音圈电机DIY摇摆LED显示钟.doc_第1页
用硬盘音圈电机DIY摇摆LED显示钟.doc_第2页
用硬盘音圈电机DIY摇摆LED显示钟.doc_第3页
用硬盘音圈电机DIY摇摆LED显示钟.doc_第4页
用硬盘音圈电机DIY摇摆LED显示钟.doc_第5页
资源描述:

《用硬盘音圈电机DIY摇摆LED显示钟.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、用硬盘音圈电机DIY摇摆显示钟周正华看到市场上正在流行的时尚商品——摇摆LED时钟,感觉非常新颖独特,正在玩单片机的我,激起了自己也想DIY一个的冲动。不就是一个流水灯吗?有什么难的?!于是,一个单片机项目就这样开始了。然而动手以后才知道问题并非想象那样简单,有许许多问题在制作中一一出现,经过十多天的制作、修改与调试,作品才告完成,基本达到预先要求。一.设计思路本制作是根据视觉暂留原理,让一排8只LED运动,在空中呈现数字来表示时钟。由于其实质就是一个摆动的流水灯,特别适合初入门的单片机爱好者动手制作。整个屏可显示七个字符,平时作时钟只用其中的五个字符。显示分“正常运行”、“调分”和

2、“调时”三种状态。正常运行时中间的“:”符每一秒闪现一次,调分和调时时,则为调整的项闪现。设置三个调整按键,一个为“状态键”,一个为“加法键”,一个为“减法键”。完成图(见图1、图2)图1图2效果图(见图3)图3二.硬件结构主板的结构布局见图4。图4机械部分:驱动摇棒摆动的机构采用从硬盘上拆下的音圈电机(见图5)组件构成,为制作方便,这个组件是直接安装在电路板上的。图5为使摇棒保持平衡,需在线圈端加配重,由于配重是在磁铁的上端,最好选铜质物件。为了让摇棒摆动稳定,在摇棒摆动的摆幅两端加了限位器。并在两个限位器上分别套上一个胶圈,以减轻噪音和振动。电子部分:1.LED的焊接,(见图6)

3、将LED两脚跨接在电路板两端的方式进行焊接。使LED紧密排列在一起。图62.摇棒上的LED与主板上的信号用排线连接,音圈电机供电占2位,LED信号传输占9位,所以至少要11位的排线。(见图7)图73.设置三个按键用于调整时间。(见图8)图84.采用驱动直流电机正反转的方式,驱动音圈电机来回摆动。让电机正、反转的方法很多,最典型的是H桥电路驱动,为了简化电路,最好采用H桥功能的集成电路。这种IC很多,比如象TA7257,TA8429H,L6203等,这里用的是三菱公司的M54544AL。(见图9)图9IC各脚定义见图10。图105.电原理图见图11。图11三.软件设计1.摇棒的启动通过

4、P3.6和P3.7输出驱动音圈电机的信号,由于没有设置检测摇棒的传感器,时间间隔只能跟据实验确定。在调试中发现,当驱动摇棒的信号转换加速到一定的时候,从静止状态转到正常摆动状态发生困难,因此需要由慢到快的驱动过程。由下面的程序段实现。do{mm--;DelayMs(120+mm*5);//逐渐缩短延时间put1=~put1;put2=~put2;//转换输出口电平状态}while(mm>0);2.秒闪现的实现数字和字符的闪现是通过变量Ms和数组w[]实现的,如需要七位字符中的间的第4位闪现,则w[3]=1。这是通过全局变量Ms在voidtimer0(void)函数中每隔一秒改变一次状

5、态(0或1),在voidtimer1(void)函数中的下列语句中实现。if((put1==1)&&(ii<7)&&(Ms*w[ii]==0))P2=~ASCIIDOC[v[ii]*6+jj];elseP2=0xff;3.校正显示不均匀调试中发现,显示屏上的字符并不是一样宽的,仔细分析是由于摇棒在运动中一直受力,使摇棒产生加速运动,这样就需要在程序中加一校正因子,逐渐缩短显示的时间段。具体是通过变量tt在函数voidtimer1(void)中实现的。4.按键去抖程序按键的去抖采用软件编程实现,其方法是当检测到按键的接口出现低电平后,隔一段时间再检测,如还是低电平,则确认为有效,否则无

6、效。具体的程序是通过函数unsignedcharChKey(bitKey)实现。5.显示同步调试时要根据实际情况确定Ti的值,保证显示正常。6.预留的部分功能提供的程序除提供了一个完整的时钟程序外,还预留了显示七个字符功能(见图12),只是主程序要作一些修改。图12/*POV摇摆显示LED钟C51程序周正华编2008.2.29*/#include/*硬件端口定义*/sbitset0=P0^1;sbitset1=P0^0;sbitset2=P0^2;sbitput1=P3^6;sbitput2=P3^7;/*时钟用数组*/unsignedcharBUFFER[]={0

7、,0,0,0};unsignedcharmaxnum[]={59,23};/*显示用数组*/unsignedintv[20];unsignedintw[7];/*字符字模*/unsignedcharcodeASCIIDOC[]=//ASCII{0x7C,0x8A,0x92,0xA2,0x7C,0x00,//-0-000x00,0x42,0xFE,0x02,0x00,0x00,//-1-010x46,0x8A,0x92,0x92,0x62,0x00,//-2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。