基于89S52单片机的旋转LED数字时钟的设计报告.docVIP

基于89S52单片机的旋转LED数字时钟的设计报告.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于89S52单片机的旋转LED数字时钟的设计报告 学 部:电子信息与电气工程学部 小组成员信息 蒋小波 200881228 电气信息类 电0816 郭也畅 200881489 电气信息类 电0816 李占东 200881381 电气信息类 电0816 大连理工大学 Dalian University of Technology 基于89S52单片机的旋转LED多变换模式时钟的设计报告 总体设计思路 关于原理: 人眼具有视觉暂留的错觉,无法区分间隔小于0.1s的图像。 因此,我们所要设计的旋转时钟大体有两部分构成:单片机控制系统部分和电机转动部分。 单片机控制部分由一系列的二极管及单片机最小系统组成。主要用来控制各二极管的亮与灭、计时等,以正确显示相应时间所对应的数字。 电机转动部分是一个转速约为5400rpm的硬盘电机,带上负载后,转速有所下降,电机带动单片机系统板和外围LED板转动。 这样,旋转时钟的基本框架就已构成:通过单片机控制二极管的亮灭,利用电机的转动,使人眼产生视觉暂留的错觉,呈现出数字时钟的走动的图像。 关于计时和电机转速监测的实现: 开启单片机内部的Timer0,晶振频率f=12MHz,t=Val(FFFF-MMLL+1)(us)TH0=MM,TL0=LL。 关于数字显示模式的实现: 先对0—9十个数字进行编码,这里应用5X7点阵相关特性,例如,若要用点阵实现4的显示,则对5X7点阵作如下编码:1110111、1000111、0000001、1110111、0000000。通过程序控制每一行显示0.02s。每列二极管在小于0.1秒内转动一圈时,人眼所看到的就是各位置二极管发光时所产生的图像的重合。因此,数字显示模式得到实现。 关于英文短语的实现: 原理与数字显示模式极为相似,先构建字模,然后再通过控制时序,使之显示英文短语, 如“I Love You”。 2.主体框架图: 3.电路原理图及PCB设计图: 3.1直流线性稳压电源: 通过9V电池加市售的三端集成稳压芯片7805来实现给单片机供电,由于单片机要随电机高速旋转,所以选用9V电池,电池固定在单片机上方,与转轴在同一位置,有效地减小离心力,防止电池被甩出。 3.2单片机主控模块: 通过 P1口下载程序, P0 , P2口控制下层板上的16个贴片LED,低电平有效 3.2.1电路原理图: 3.2.2 PCB图: 3.3 LED显示模块: 3.3.1电路原理图: 3.3.2 PCB图: 4.单片机程序: 4.1英文短语“I Love You”程序: #includereg52.h #define uint unsigned int #define uchar unsigned char uchar code I[]={0x7d,0x01,0x7d}; uchar code L[]={0x01,0xfd,0xfd,0xfd}; uchar code o[]={0xe3,0xdd,0xe3}; uchar code v[]={0xc7,0xfb,0xfd,0xfb,0xc7}; uchar code e[]={0xe3,0xd5,0xd5,0xe5}; uchar code Y[]={0x3f,0xdf,0xe1,0xdf,0x3f}; uchar code u[]={0xc3,0xfd,0xfd,0xc3}; //组成字母各自的字表,类似点阵 void delay(uint t) { register uint bt; for(;t;t--) for(bt=0;bt25;bt++) ; } //定义延时函数,延时时间较短,能用延时更精确调节显示周期 void main() { char i; while(1) { for(i=3;i=0;i--) {P0=u[i];delay(2);} P0=0xff; delay(3); //显示u for(i=2;i=0;i--) {P0=o[i];delay(2);} P0=0xff; delay(3); //显示o for(i=4;i=0;i--) {P0=Y[i];delay(2);} P0=0xff; delay(10); //显示Y,一个单词过后增加LED灯灭延时 for(i=3;i=0;i--) {P0=e[i];delay(2);} P0=0xff; delay(3); //显示e for(i=4;i=0;i--) {P0=v[i];delay(2);} P0=0xff; delay(3); //显示v for(i=2;i=0;i--)

文档评论(0)

小琪琪 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档