旋转时钟项目研究报告综述Word文档下载推荐.docx
- 文档编号:22094760
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:36
- 大小:461.92KB
旋转时钟项目研究报告综述Word文档下载推荐.docx
《旋转时钟项目研究报告综述Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《旋转时钟项目研究报告综述Word文档下载推荐.docx(36页珍藏版)》请在冰豆网上搜索。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟是采用数字电路实现对时,分,秒数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
1.2项目主要研究内容
红外遥控器控制红外接收管,红外接收管接收信号,传给单片机处理信号,可以达到单片机对旋转时钟调时和复位。
对类似旋转广告屏等装置进行调研,实现旋转时钟的设计与实现,并最终能够在班级应用。
当它工作时,电机带动一排高亮LED绕电机轴旋转,LED灯在单片机控制下进行一定规则的显示,从而形成时钟的时针、分针和时间刻度,并按每分每小时走动,模拟出一个炫彩的时钟。
2总体设计方案
2.1系统总体方案设计
旋转LED显示屏是通过一个旋转的电路板,电路板上排列的24个LED灯受单片机控制在特定的位置(传感器感应位置)亮或灭,从而显示出特定的字符或图形。
本作品主要是根据人的视觉暂留原理设计的。
采用高速旋转的电机带动电路板高速旋转,从视觉效果上就会产生一种圆盘状的LED显示屏的状态。
旋转显示屏是利用机械转动动态扫描代替传统逐行扫描方式,是一种新型的显示屏,具有成本低,可视范围大的特点,是LED显示屏的一个新的发展方向。
其实质就是与机械转动配合起来的动态扫描显示技术。
本次“旋转LED显示屏”的制作用于提高我们的实践能力和创新能力,激发学生学习兴趣,引导自主学习及培养创新能力、协作精神、工程实践素质。
本设计利用高速旋转中控制LED的亮灭,进行字符的显示,控制器采用单片机,完成显示内容的传输、字库的转换、显示等功能。
动态扫描原理是利用人眼具有视觉暂留的特性,当画面以一定的速度刷新时,我们看到的就是连续的图像。
例如:
传统的逐点扫描方式,采用逐行换位的扫描方式,每一行都必须要有LED显示器件,这使显示屏成本偏大,功耗增加。
旋转扫描采用了不同的形式,其显示器件只有一列,由机械旋转运行到某一位置时就显示该位置的状态,到下一位置后又显示下一位置的状态,即一列图像要完成全部图像的显示,扫描过程由机械转动更换位置来实现的。
旋转LED显示的旋转显示,可采用机械旋转的扫描方式。
2.1.1电路结构图的设计
系统总体由软件和硬件两部分构成。
硬件部分由单片机、DS1302时钟芯片、LED阵列、电源、旋转电机、绕线圈、红外接收管、红外遥控器组成。
总体框图如下:
图2-1系统整体方框图
旋转时钟设计方案有八部分基本组成,首先由电源给电机供电,从而可以使电机旋转,这样可以让绕线圈耦合产生感应电压,就可以给旋转板供电,旋转板是以单片机为核心,有DS1302提供时钟信号脉冲。
红外遥控器控制红外接收管,红外接收管接受信号,传给单片机处理信号,可以达到单片机对旋转时钟调时和复位。
2.1.2电路原理图的设计
图1.2.1主控板原理图
2.2总体方案设计及硬件指标
2.2.1方案论证
人眼在观察景物时,光信号传人大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”,其原因是由视神经的反应速度造成的,其时值是二十四分之一秒,通常情况下,视觉残留会保持0.1至0.4秒。
也就是说以0.1至0.4秒间隔闪烁的图像,被人眼观察会被认为是连续的图像。
视觉残留是动画、电影等视觉媒体形成和传播的根据。
本次旋转LED可以归纳为动态扫描和机械旋转两部分其实质就是与机械转动配合起来的动态扫描显示技术。
2.2.2方案比较与论证
单片机、LED等电路必须安装在高速旋转的电动机上面,无法采用电线进行供电,使系统供电变得极为麻烦,常见的方法有2种。
方案一:
用电动机电刷的方法,简单有效;
请注意:
这样寿命很短,必要时请自行在电路板上加焊一层耐磨导电层,如果电刷触点不够光洁以及接触压力大,几小时就可以将线路板上的铜皮磨穿。
方案二:
直接用电池给主板供电,电池装在主板上随主板转动,成本高,寿命短,影响转速。
综合以上2种方案的优缺点,我们选择了用电刷供电的方法,而DS1302芯片则用普通纽扣电池供电即可。
电源基板主要负责为电机提供稳定的直流电,并通过电刷给指针板送电,是能源中心。
虽然结构简单,但也是必不可少的一个环节,必须要保证电源稳定可靠。
直接由+12V的变压器通过插孔给电路板送电,经电容及电位器后接直流电机。
再经过7805降压稳压成+5V输出电压。
3硬件设计
3.1旋转指针板的设计
指针板是旋转时钟的关键部分,负责显示功能,指针板上有一排超高亮的LED灯。
它们就是显示部件了,亮点所在。
为了制作方便,我们把单片机、时钟芯片、发光二极管、一体化红外接收头等器件焊接在一块指针型的电路板上,这样可以使旋转的电路成为一个独立的系统,只需要外部送电进来就可以正常运作。
电路板中心钻一个电机轴插孔,插孔为半圆并且半径与电机轴相等,电机轴插入其中带动指针板旋转。
该电路板越轻越好,LED灯可用贴片式。
LED灯数目根据不同用处可选多选少,我们设计的时钟需要能显示“12、3、6、9”这四个整点数字和秒针、分针、时针,这样我们用6支LED灯显示数字,18支用来显示秒、分、时三针,另外再加一支内框一支外框灯,总共25支LED灯,也足够用来显示汉字和英文。
在这个项目中,一共采用了25支LED。
也就是说每一列上可以分辨的显示点有25个点。
当然,这只是视觉上的显示效果。
但为了节省单片机I/O管脚,并不是每支LED灯都由一个I/O管脚控制的。
通过分析,发现靠近内圈的那十几支LED,除了用做显示时钟指针外,并不适合用来显示字符。
而在显示指针时,这部分LED的亮灭是同时发生的,这样就可以用一个I/O口来控制这组LED,让它们是同时亮或者同时灭。
除了以上几点外,需要考虑的还有显示稳定问题:
比如指针板旋转扫描一圈完成了数字“12”的显示,如果电机速度因为各种原因而不稳定,转下一圈所用的时间多于(或少于)上一圈的,那么数字“12”将会移到上一次显示位置的左侧(或右侧)。
为了解决这个问题,在指针板上加装一个红外接收管。
当接收到与之配对的红外发光二极管(红外发光二极管安装在电机外壳上,并与接收管对齐)发出的红外线后,就会反向导通,接到单片机外部中断,将会触发外部中断。
指针板每旋转一周,就会产生这样一个中断信号,这个信号被称为“过零信号”。
有了这个信号,单片机就可以在指针板旋转过程中实时检测计算指针板的角度位置,并根据指针板所处的不同位置,点亮相应的LED,这样每转一圈就能消除一圈的误差,使得显示内容保持稳定。
3.2时钟芯片DS1302
大多数的单片机没有实时时钟部件,一旦系统掉电时钟就不能运行,下次再运行,时间就不准确了。
即便使用备用电池,但要维持单片机系统的较大功耗也是坚持不了多久的。
而我所做的旋转时钟用到的单片机主要是来准确显示时间的,因此实时时钟部件必不可少,这里我用了MAXIM公司的DS1302时钟芯片作为实时时钟部件,保证时间的长久准确性。
DS1302有着很强的功能。
包括时钟/日历寄存器和31字节(8位)的数据暂存寄存器,数据通信仅通过一条串行输入输出口。
实时时钟/日历提供包括秒、分、时、日期、月份和年份信息。
闰年可自行调整,可选择AM/PM的12小时制或24小时制。
只通过三根线进行数据的控制和传递:
CE(输入信号,在读、写数据期间,必须为高。
该引脚有两个功能:
第一,CE开始控制字访问移位寄存器的控制逻辑;
其次,CE提供结束单字节或多字节数据传输的方法。
);
I/O(三线接口时的双向数据线);
SCLK(串行时钟输入)。
通过备用电源可以让芯片在小于1MW的功率下运作。
对时钟寄存器初始化可以设定当前时间,控制芯片的运行,时间是用BCD码保存的,RAM可以用来存取用户数据,在用了备用电池后RAM内的数据在系统掉电时能够保持不丢失。
芯片采用了简单的I2C三线通信方式,便于节省芯片资源和与之接口的MCU的引脚。
芯片有着2.0~5.5V的宽供电电压范围,在5V供电时其接口与TTL电平兼容。
并且有着很低的功耗,在2.0V供电时仅耗300nA的电流。
引脚X1和X2连接32.768kHz晶体,与内部振荡器组成时钟。
晶体的精度直接影响着芯片时间的准确与否。
DS1302有两个电源引脚VCC1和VCC2,分别连接备用电池和电源VCC。
VCC2与主电源连接,VCC1接备用电池。
当VCC2低于VCC1时,芯片由VCC1供电;
当VCC2-VCC1≥0.2V时,备用电池为芯片供电。
在VCC2供电时芯片能够对接在VCC1的备用电池充电,并且是否充电和充电电流都可以由芯片内地址为08H的时钟寄存器进行控制。
DS1302与单片机的硬件接线图如下图所示。
图3.2.1DS1302硬件接线图
在进行任何数据传输时,CE必须被制高电平(虽然CE被置为高电平,但内部时钟还是在晶振作用下不停地计时的),在每个SCLK上升沿时读入数据,下降沿时写出数据。
每个字节的传输都是由控制字节(如表1所示)指定的,控制字节的最高位Bit7必须是“1”,否则读写将会被禁止。
bit6为“0”则指定对时钟/日历寄存器进行读写操作,为“1”则对RAM区的数据进行读写操作,bit1-bit5指定相关寄存器进行输入输出操作,最低位bit0指定是输入还是输出,为“0”则为写,相反则为读,输入输出根据脉冲的上升沿和下降沿串行进行。
7
6
5
4
3
2
1
RAM/
用来表示相关寄存器的地址
RD/
表3.2.2DS1302控制字节
控制字总是从最低位开始输出。
在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。
同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。
数据读写时序如图3.2.3所示。
图3.2.3DS1302数据读写时序
通过8个脉冲便可读取一个字节,从而实现串行输入与输出。
最初通过8个时钟周期载入控制字节到移位寄存器。
如果控制指令选择的是单字节模式,连续的8个时钟脉冲可以进行8位数据的读写操作。
8个脉冲便可读写一个字节。
载入控制字节后就可以对时钟/日历寄存器进行相应操作,时钟/日历寄存器如下表所示。
读寄存器
写寄存器
BIT7
BIT6
BIT5
BIT4
BIT3
BIT2-BIT0
范围
81h
80h
CH
16-59秒
0-15秒
00-59
83h
82h
16-59分
0-15分
85h
84h
12
20-23
15-19时
0-15时
1-12/
0-23
/PM
87h
86h
16-31日
0-15日
1-31
89h
88h
10月
月
1-12
8Bh
8Ah
1-7周
1-7
8Dh
8Ch
15-99年
0-15年
00-99
8Fh
8Eh
WP
—
秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。
当该位置1时,时钟振荡器停止,DS1302处于低功耗状态;
当该位置为0时,时钟开始运行。
小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。
当为高时,选择12小时模式。
在12小时模式下,位5为1时,表示PM。
在24小时模式时,位5是第二个10小时位(20-23时)。
控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。
在任何的对时钟和RAM的写操作之前,WP位必须为0。
当WP位为1时,写保护位防止对任一寄存器的写操作。
3.3电源基板的硬件设计
电源基板主要负责为电机提供稳定的直流电,并通过无线供电技术给指针板送电,是能源中心,如图3.3.1所示。
图3.3.1电源基板硬件
4软件设计
4.1算法设计
本项目的算法设计主要分5大独立模块,即:
DS1302时钟配置及显示模块、红外一体化接收模块、字模存储模块以及串口传输模块和EEPROM模块(接收串口发送的字模)。
4.2系统主程序设计
主程序的设计是为了完成系统的初始化,建立各个独立模块间的相互调用和配合使用,实现LED旋转时钟设计的功能。
主程序的设计可用下图遥控器各按键功能来形象地描述。
5系统调试
经过详细地理论分析和设计后,开始制作硬件电路,边制作边进行硬件调试,这样有利于问题的分析和解决,不会积累错误,也不会因为一个小问题而大动干戈。
软件编程中,首先对单元功能模块进行调试,然后再对整个系统进行调试,基本和硬件调试差不多。
5.1硬件调试
1.发光二极管的调试。
焊好36支LED灯和对应电阻,给板子上电,分别
使每个LED的阴极接地,发现36支LED灯都能正常点亮和熄灭。
2.红外对管的调试。
给发射管接限流电阻并上电,去对准焊在板子上的红外接收管,用电压表测试其阴极,为低电平,移开后为高电平,工作正常。
3.电源驱动调试。
电刷制作完成后,将LED灯都接地,并给电机和电刷都上电,指针板开始旋转,并且LED灯都能点亮,电刷供电成功。
4.红外接收管调试。
调用红外按键程序,若LED灯能按预先设置的按键对应配置显示,说明红外接收管工作正常。
5.2软件调试
基本上排除了系统硬件故障后,就进入软件的调试阶段,这个阶段主要完成排除软件编程上的错误,同时也能发现硬件遗留的问题,本系统采用C语言编程,主要有DS1302时钟配置及显示模块、红外一体化接收模块、字模存储模块以及串口传输模块和EEPROM模块(接收串口发送的字模),每一部分都独立调试。
调试过程充分利用了调试软件中单步、断点、设置观察项等调试手段,主要针对程序跳转错误、变量声明及函数调用错误等,具体调试不在此说明。
6总结
6.1项目完成情况
1.立体显示旋转字(通过“暂停按键”进行静态与移动显示,读取的EEPROM中数据)
2.平面显示数字时钟年月日星期(时钟可调时钟芯片用DS1302带后备电池掉电时钟继续走)
3.平面显示模拟表盘时钟(如果表盘不全或者过多显示请按配套的遥控器"
快进"
或者"
快退"
来调整单列显示时间设置后参数保存到DS1302RAM)
4.平面显示字体模式通过“暂停按键”进行静态与移动显示(读取的EEPROM中数据)
5.立体加平面显示(代码中配置的数组存放的固定字模)
6.两颗心闪动
7.一颗心填满效果
8.笑脸动画
9.打印字效果
上述9种效果对应遥控器按键1、2、3、4、5、6、7、8、9时钟复位按键“Meun”
6.2项目过程中心得体会
以上的设计只是实现了利用旋转的LED和视觉残留的作用,完成时钟的显示部分。
除此以外,还有许多部分需要改进和补充,才能实现一个最基本的时钟功能。
例如,精确的时间计算的功能没有被加入到设计中,也就是说,该时钟无法保证输出时间的可靠性,时间误差可能达到数分钟之久。
由于制作的这个旋转LED时钟只是实验性质,目的是实现旋转LED的显示功能,所以没有对这个细节进行考虑,但是在实际应用中这个缺陷对于时钟来说是一个致命的缺陷。
此设计也可使用无线通信的方式,会在时钟高速旋转时进行时间的设定和调整。
方案的优点是,操作方便,缺点是需要在原系统中增加无线通信模块,大大增加了整个时钟的成本和设计的复杂性。
因此我在该设计中采用的是在电机旋转轴附近增加电刷,把设定和调整时间的数据线通过电刷引导到高速旋转的电路板上。
该方案同样操作方便,但是缺点也很明显,增加了额外的电刷,整个系统噪音增加,摩擦的电刷容易损坏,而且传递的数据无法保证信号能够良好的传导至单片机,很容易出现错误信号。
时间的设定和调整问题还没有比较好的解决方案,尚待进一步考虑。
通过这段时间的设计,终于完成了旋转电子钟的设计,虽然在做的时候遇到一些困难,但经过一翻很大的努力也完全达到设计要求的。
这次设计真的让我长进了很多,单片机的设计重点就在于软件程序的设计,需要有很巧妙的编程方法,在编程时,由于粗心大意马虎,有些语句看似没问题,可就是不出效果,经仔细揣摩修改后,程序才正常运行。
学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高。
从这次的设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,理论指导实践,在实践中对理论知识加以理解。
我所设计的这个旋转时钟仅仅是显示了要求的功能,尚有很多不足的地方,以后我可以考虑改进一下,使它的功能更加完善。
在此感谢老师和同学们的帮助和指导!
附录
附录一:
项目源代码
#include"
NEW_8051.H"
task.h"
#include<
stddef.h>
sbitLed1=P3^0;
//最里面LED
sbitLed2=P3^1;
sbitLed3=P3^4;
ucharDelay=1;
bitBIT_timeout=0;
uintuitime=0;
datauintuiicount=0;
uintuiCountFontNumber=0;
ucharucMode=2;
datauintuiicountTwo=0;
ucharBuffCount=0;
ucharucPCA0_TimeCount;
datauintuiBaseAddress=0;
datauintuiFontNumber=0;
datauintuiFontNumber_P=0;
dataucharucNumRows=224;
//定义一周显示字个数一个字16列224/16=13个字
dataucharucNumRows_p=128;
ucharDelayTimeCount=0;
bitStop_move=0;
ucharMod=0;
ucharBuff[448]=0xFF;
ucharucLine_count=0;
ucharRow;
uchari=0;
ucharj=0;
uchark;
ucharStop_time=0;
ucharucline=0;
bitbDot=0;
ucharcodesw[8]={0XFE,0XFC,0XF8,0XF0,0XE0,0XC0,0X80,0X00};
//ucharcodesw2[8]={0X01,0XC0,0XE0,0XF0,0XF8,0XFC,0XFE,0XFF};
/***************模拟表盘变量**************/
uintDISP_LINE=0;
ucharDISP_LINE_ADJ=0;
ucharDISP_TIME_ADJ=0;
//ucharTime0_count=0;
//====参数初始化
ucharDISP_TIME_SET;
//单列显示时间设置值
/********************************************/
/*********延时子程序**********/
voiddelay(unsignedcharn)//每列显示的时间
{
unsignedchara,b,c;
c=2;
//+DelayTimeCount;
for(;
n>
0;
n--)
{
for(b=65;
b>
b--)
for(a=c;
a>
a--);
}
}
/*********PCA中断子程序**********/
voidPCA()interrupt7//PCA定时器
if(CCF0)
{
CCF0=0;
CL=0;
CH=0;
ucPCA0_TimeCount++;
if(ucPCA0_TimeCount>
12)
{
ucPCA0_TimeCount=0;
//调时闪烁
if(ucMode==2)
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 旋转 时钟 项目 研究 报告 综述