旋转的led时钟_第1页
旋转的led时钟_第2页
旋转的led时钟_第3页
旋转的led时钟_第4页
旋转的led时钟_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电气工程及其自动化创新设计设计名称: 旋转 led 时钟班 级: 姓 名: 学 号: 指导老师: 设计时间:2009年9月2号8号茂名学院计算机与信息学院自动化系 旋转的时钟一、原理分析 旋转时钟利用了视觉暂留原理。用led灯排成一列,取中间一点为圆心,他们围绕圆心旋转,最外侧的发光二极管显示时间刻度,当时针在12点时我们假设角度为0º,则每个小时时针之间的角度为360º/12=30º.于是当这一列发光二极管每旋转30º,最外侧的发光二极管就点亮一个瞬间一呈现时间刻度。这样,如果在0.1s内这列发光二极管能旋转完一圈,则人眼就会产生错觉,而把先后产生的时

2、间刻度连成12个完整的时间刻度。明确系统功能 系统的功能比较清楚:电机带动一系列发光二极管绕轴旋转,单片机控制发光二极管在旋转过程中的相应位置上点亮以指示时间和刻度,与此同时,单片机内部进行时钟的计时操作,以控制旋转时钟显示正确的走时。这种利用机械的带动分时显示数据信息的方法叫做机械扫描显示。硬件设计 旋转时钟主要有两部分组成:电机部分和单片机控制发光二极管显示部分,在单片本制作品用单片机控制,具体电路原理图如下:软件编程因学的是(不懂汇编)这里只提供语言源程序,并限制为无遥控功能。也可提供带遥控功能的hex文件。      

3、0; #include <reg51.h>sbit gate11=p30;sbit gate12=p31;#define unit unsigned int#define uchar unsigned charuchar data buffer=0,0,0,0,1,1,7;uchar data m=31,28,31,30,31,30,31,31,30,31,30,31;uchar code num1 =          0x80,0x7f,0xc0,0xff,0x40,0

4、x90,0x40,0x8c,                / -0-0x40,0x82,0xc0,0xff,0x80,0x7f,0x00,0x00,0x00,0x00,0x00,0x81,0x80,0x81,0xc0,0xff,                / -1-0xc0,0xff,0x00

5、,0x80,0x00,0x80,0x00,0x00,0x80,0xe0,0xc0,0xf0,0x40,0x98,0x40,0x8c,                / -2-0x40,0x86,0xc0,0xc3,0x80,0xc1,0x00,0x00,0x80,0x40,0xc0,0xc0,0x40,0x84,0x40,0x84,         

6、0;      / -3-0x40,0x84,0xc0,0xff,0x80,0x7b,0x00,0x00,0x00,0x0c,0x00,0x0e,0x00,0x0b,0x80,0x89,                / -4-0xc0,0xff,0xc0,0xff,0x00,0x88,0x00,0x00,0xc0,0x47,0xc0,0xc7,0x40,0x84,0x40,0x84, 

7、               / -5-0x40,0x8c,0x40,0xfc,0x40,0x78,0x00,0x00,0x00,0x7f,0x80,0xff,0xc0,0x84,0x40,0x84,                / -6-0x40,0x84,0x00,0xfc,0x00,0x78,0x00

8、,0x00,0xc0,0x00,0xc0,0x00,0x40,0xf0,0x40,0xf8,                / -7-0x40,0x0c,0xc0,0x07,0xc0,0x03,0x00,0x00,0x80,0x7b,0xc0,0xff,0x40,0x84,0x40,0x84,             

9、   / -8-0x40,0x84,0xc0,0xff,0x80,0x7b,0x00,0x00,0x80,0x03,0xc0,0x87,0x40,0x84,0x40,0x84,                / -9-0x40,0xc4,0xc0,0x7f,0x80,0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,    &#

10、160;           / -:-0x00,0x63,0x00,0x00,0x00,0x00,0x00,0x00,;uchar code num2=                  0x00,0x00,0x7f,0x80,0xff,0xc0,0x82,0x40,     

11、           / -0-                  0x8c,0x40,0x90,0x40,0xff,0xc0,0x7f,0x80,               &

12、#160;  0x00,0x00,0x00,0x00,0x20,0x40,0x60,0x40,                / -1-                  0xff,0xc0,0xff,0xc0,0x00,0x40,0x00,0x40, 

13、60;                0x00,0x00,0x41,0xc0,0xc3,0xc0,0x86,0x40,                / -2-           

14、0;      0x8c,0x40,0x98,0x40,0xf0,0xc0,0x60,0xc0,                  0x00,0x00,0x40,0x80,0xc0,0xc0,0x88,0x40,              

15、  / -3-                  0x88,0x40,0x88,0x40,0xff,0xc0,0x77,0x80,                  0x00,0x00,0x0c,0x00,0x1c,0x00,0x34,0x00,&#

16、160;               / -4-                  0x64,0x40,0xff,0xc0,0xff,0xc0,0x04,0x40,          

17、60;       0x00,0x00,0xf8,0x80,0xf8,0xc0,0x88,0x40,                / -5-                  0x88,0x40,0x8c,0x40,0

18、x8f,0xc0,0x87,0x80,                  0x00,0x00,0x3f,0x80,0x7f,0xc0,0xc8,0x40,                / -6-       

19、           0x88,0x40,0x88,0x40,0x0f,0xc0,0x07,0x80,                  0x00,0x00,0xc0,0x00,0xc0,0x00,0x83,0xc0,         &#

20、160;      / -7-                  0x87,0xc0,0x8c,0x00,0xf8,0x00,0xf0,0x00,                  0x00,0x00,0x77

21、,0x80,0xff,0xc0,0x88,0x40,                / -8-                  0x88,0x40,0x88,0x40,0xff,0xc0,0x77,0x80,      

22、;            0x00,0x00,0x70,0x00,0xf8,0x40,0x88,0x40,                / -9-                

23、  0x88,0x40,0x88,0xc0,0xff,0x80,0x7f,0x00,                  0x00,0x00,0x00,0xc0,0x01,0x80,0x03,0x00,                / -/-  &#

24、160;               0x06,0x00,0x0c,0x00,0x18,0x00,0x30,0x00,;unit disp1,disp2,key1,key2;unit ii,jj;unit i,sw,xz;void delay(unit ms)                ms=ms*3;&

25、#160;               while(-ms);void num_led(int kk, int tt)int jj;for(jj=0;jj<8;jj+)                gate11=key1; gate12=key2;    

26、60;           p2=num1kk+jj*2;p1=num1kk+1+jj*2;                delay(20);                p1=0xff;p2=0

27、xff;                gate11=key2; gate12=key1;                p2=num2tt+15-jj*2;p1=num2tt+14-jj*2;         

28、;       delay(20);                p1=0xff;p2=0xff;                void display_clock(void)     

29、           key1=!key1;key2=!key2;                disp1=buffer3/10;disp2=buffer4-(buffer4/10)*10;             &

30、#160;  ii=disp1*16;jj=disp2*16;                num_led(ii,jj);                p2=0xff;p1=0xff;delay(60);       

31、;         disp1=buffer3-disp1*10;disp2=buffer4/10;                ii=disp1*16;jj=disp2*16;                num_

32、led(ii,jj);                p2=0xff;p1=0xff;delay(60);                ii=160;jj=160;           &

33、#160;    num_led(ii,jj);                p2=0xff;p1=0xff;delay(60);                disp1=buffer2/10;disp2=buffer5-(buffer5/10)*10; 

34、               ii=disp1*16;jj=disp2*16;                num_led(ii,jj);              &

35、#160; p2=0xff;p1=0xff;delay(60);                disp1=buffer2-disp1*10;disp2=buffer5/10;                ii=disp1*16;jj=disp2*16;   

36、0;            num_led(ii,jj);                p2=0xff;p1=0xff;delay(60);                ii=160;j

37、j=160;                num_led(ii,jj);                p2=0xff;p1=0xff;delay(60);            

38、;    disp1=buffer1/10;disp2=buffer6-(buffer6/10)*10;                ii=disp1*16;jj=disp2*16;                num_led(ii,jj);  

39、              p2=0xff;p1=0xff;delay(60);                disp1=buffer1-disp1*10;disp2=buffer6/10;          

40、0;     ii=disp1*16;jj=disp2*16;                num_led(ii,jj);                p2=0xff;p1=0xff;delay(60);void timer0(void) 

41、60;              interrupt 1 using 1                tmod=0x11;                 th0=-(

42、5000/256);                      tl0=-(5000%256);                tr0=1;        &#

43、160;       buffer0=buffer0+1;                if (buffer6%4=0) m1=m1+1;                if (buffer0>201+xz)  

44、                buffer0=0;                  buffer1=buffer1+1;if (buffer1=60)          

45、60;      buffer1=0;                 buffer2=buffer2+1;                 if (buffer2=60)     

46、;           buffer2=0;                buffer3=buffer3+1;                if (buffer3=24)  &

47、#160;               buffer3=0;                        buffer4=buffer4+1;       &

48、#160;                if (buffer4>mbuffer5-1)                          buffer4=1;   

49、;                       buffer5=buffer5+1;                        

50、0; if (buffer5>12)                            buffer5=1;                 

51、0;          buffer6=buffer6+1;                            if(buffer6>99)        &#

52、160;          buffer6=0;                              m1=m1-1;        

53、                                                                             &#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论