网站大量收购独家精品文档,联系QQ:2885784924

单片机,摇摆,LED显示,时钟,电赛,电子大赛,报告.doc

单片机,摇摆,LED显示,时钟,电赛,电子大赛,报告.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机,摇摆,LED显示,时钟,电赛,电子大赛,报告

基于单片机的摇摆LED显示钟 一、引言 (一)本设计的意义 本设计是基于POV即persistancd of vision利用单片机控制流水灯,通过流水灯的移动和人的视觉暂留效应产生各种图形或文字 二、总体设计 (1). 硬件结构 主板的结构布局见图。 图1 1、机械部分: 驱动摇棒摆动的机构采用从硬盘上拆下的音圈电机(见图)组件构成,为制作方便,这个组件是直接安装在电路板上的。为使摇棒保持平衡,需在线圈端加配重,由于配重是在磁铁的上端,最好选铜质物件。为了让摇棒摆动稳定,在摇棒摆动的摆幅两端加了限位器。并在两个限位器上分别套上一个胶圈,以减轻噪音和振。 LED的焊接,将LED两脚跨接在电路板两端的方式进行焊接 使LED紧密排列在一起。 摇棒上的LED与主板上的信号用排线连接,音圈电机供电占2位,LED信号传输占9位,所以至少要11位的排线 采用驱动直流电机正反转的方式,驱动音圈电机来回摆动。让电机正、反转的方法很多,最典型的是H桥电路驱动。为了简化电路,最好采用H桥功能的集成电路。这种IC很多,比如象TA7257,TA8429H,L6203等,这里用的是三菱公司的M54544AL。 H 桥驱动原理 第三页 图3 M56544AL 各脚定义 3、按键部分: 显示分“正常运行”,“调分”和“调时”三种状态。当处于调整状态时调整的项会闪现,以便于识别,为此设置三个调整键,一个为“状态键”,一个为“加法键”一个为“减法键”。 第四页 图4按键的设置 三、整体测试 1. 摇棒的启动   通过P3.6和P3.7输出驱动音圈电机的信号, 由于没有设置检测摇棒的传感器,时间间隔只能跟据实验确定。在调试中发现,当驱动摇棒的信号转换加速到一定的时候,从静止状态转到正常摆动状态发生困难,因此需要由慢到快的驱动过程。由下面的程序段实现。   do { mm--; DelayMs(120+mm*5); //逐渐缩短延时间   put1=~put1; put2=~put2; //转换输出口电平状态   }while(mm0);   2. 闪现的实现   数字和字符的闪现是通过变量Ms和数组w[]实现的,如需要七位字符中的间的第4位闪现,则w[3]=1。这是通过全局变量Ms在void timer0(void)函数中每隔一秒改变一次状态(0或1),在void timer1(void)函数中的下列语句中实现。   if((put1==1)(ii7)(Ms*w[ii]==0)) P2=~ASCIIDOC[v[ii]*6+jj]; else P2=0xff;   3. 校正显示不均匀   调试中发现,显示屏上的字符并不是一样宽的,仔细分析是由于摇棒在运动中一直受力,使摇棒产生加速运动,这样就需要在程序中加一校正因子,逐渐缩短显示的时间段。具体是通过变量tt在函数void timer1(void)中实现的。   4. 按键去抖程序   按键的去抖采用软件编程实现,其方法是当检测到按键的接口出现低电平后,隔一段时间再检测,如还是低电平,则确认为有效,否则无效。具体的程序是通过函数unsigned char ChKey(bit Key)实现。   5. 显示同步   调试时要根据实际情况确定Ti的值,保证显示正常。 本制作最大问题是操声和振动问题,尽管做了努力,还是没有完全解决,还有改善余地。由于设计没有考虑回摆时的显示,显示有明显闪烁现象,也需要进一步完善。1. 添加时钟IC,使显时更精准,而且不怕掉电;2. 加装位置传感器,增加显示的稳定性;3. 增添摇控功能,使调整更方便。 六、附录 6.完整C51程序代码   /*   POV摇摆显示LED钟C51程序*/   #include   /*硬件端口定义*/   sbit set0=P0^1;   sbit set1=P0^0;   sbit set2=P0^2;   sbit put1=P3^6;   sbit put2=P3^7;   /*时钟用数组*/   unsigned char BUFFER[]={0,0,0,0};   unsigned char maxnum[]={59,23};   /*显示用数组*/   unsigned int v[20];   unsigned int w[7];   /*字符字模*/ unsigned char code ASCIIDOC[] = // ASCII   {   0x7C,0x8A,0x92,0xA2,0x7C,0x00, // -0-00   0x00,0x42,0xFE,0x02,0x00,0x00, // -1-01   0x46,0x8A,0x92,0x92,0x62,0x00, // -2-02   0x84,0x82,0x92,0xB2,0xC

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档