基于单片机的LED旋转时钟报告设计

更新时间:2023-09-02 23:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机课题结题分析报告 课题名称:LED旋转时钟

二O一一年十二月

LED旋转时钟

【摘要】 本实验利用单片机的特性,将各种廉价的原材料自制成可用于室内装饰和便利生活的LED旋转时钟。其制作方法简单、整体结构紧凑、材料环保、成品便于移动、外形美观而且成本低廉。 【关键词】 发光二极管 单片机系统 旋转 视觉停留 编码 显示时间

一、课题背景: 课题构思背景

在课题构思初期,本组计划用51单片机来实现变色光纤花篮的控制(本组大二期间物理课题,计划将其改进)。之后通过查阅资料,本组认为制作旋转时钟与变色光纤花篮大体原理相同,但在技术知识上比变色光纤花篮更进一步,所以将课题目标定为“旋转时钟”。

课题技术背景

“单片机原理及应用”是我们大学本科学习期间的重要课程之一。它注重培养同学们的实践动手能力,使我们在自学与实际操作中将知识融汇贯通。单片机的应用大到卫星、导弹,小到洗衣机、微波炉,都有他们的踪影。

旋转时钟的主要特点就是结构新颖,效果奇特。加入了现代科技的元素,利用人眼的视觉暂留特性,用单片机作为主控芯片,采用电机带动发光二极管高速旋转,霍尔传感器进行定位,利用刷屏显示原理呈现时钟画面及DS18B20温度显示。造型及显示效果个性、新颖,解决了传统时钟结构单一,显示效果固定的缺陷,更好了满足了人们对美的追求。 现今人们家庭用的时钟主要还是传统意义上的时钟,固定的表盘与表针,显示效果单一,不能满足时钟不但用来看时间还是一件很好的装饰品的要求。随着科技的发展网络上出现了以DIY为主要形式的旋转时钟作品。 但是随着单片机技术、高亮发光二极管制造技术和高速稳定电机制造技术的发展,这种千奇百怪、创意无限的电子旋转时钟必将走进千家万户。

二、原理介绍

(一)、发光二极管发光原理

发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。 当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有

关。LED发光二极管内部结构如图1所示。

图1 发光二极管构造图

(二)、红外对管原理

红外对管是一种常用的光电器件。所谓对管就是由一只红外线发射管和红外线接收管组成。根据发射和接收的频率不同,红外对管有不同的型号。当发射管与接收管的发射与接收窗靠近对齐时,即红外线照射到接收管上,则接收管导通,其中导通特性与普通二极管相似,例如图1所示,一般红外对管的有效距离为数米。如果想扩大感应距离可加装透镜。把接收管连接成如图2所示的电路。就可以组成一个光电触发系统。

发射管 接收管

图2 红外对管的使用

(三)、视觉暂留的原理

人眼在观察景物时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失,这种残留的视觉称“后像”,视觉的这一现象则被称为“视觉暂留”。 是光对视网膜所产生的视觉在光停止作用后,仍保留一段时间的现象,其具体应用是电影的拍摄和放映。原因是由视神经的反应速度造成的.其时值是二十四分之一秒。是动画、电影

等视觉媒体形成和传播的根据。

视觉实际上是靠眼睛的晶状体成像,感光细胞感光,并且将光信号转换为神经电流,传回大脑引起人体视觉。感光细胞的感光是靠一些感光色素,感光色素的形成是需要一定时间

的,这就形成了视觉暂停的机理。

视觉暂留现象首先被中国人发现,走马灯便是据历史记载中最早的视觉暂留运用。宋时已有走马灯 ,当时称 “马骑灯 ” 。随后法国人保罗·罗盖在1828年发明了留影盘,它是一个被绳子在两面穿过的圆盘。盘的一个面画了一只鸟,另一面画了一个空笼子。当圆盘旋转时,鸟在笼子里出现了。这证明了当眼睛看到一系列图像时,它一次保留一个图像。 物体在快速运动时, 当人眼所看到的影像消失后,人眼仍能继续保留其影像0.1-0.4秒左右的图像,这种现象被称为视觉暂留现象。是人眼具有的一种性质。人眼观看物体时,成像于视网膜上,并由视神经输入人脑,感觉到物体的像。但当物体移去时,视神经对物体的印象不会立即消失,而要延续0.1 -0.4秒秒的时间,人眼的这种性质被称为“眼睛的视觉暂留”。

(四)、AT89C2051单片机的原理 51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。

(1)内部结构

AT89C2051是一带有2K字节闪速可编程可擦除只读存储器(EEPROM)的低电压,高性能8位CMOS微处理器。它采用ATMEL的高密非易失存储技术制造并和工业标准MCS-51指令集和引脚结构兼容。通过在单块芯片上组合通用的CPLI和闪速存储器,ATMEL的AT89C2051是一强劲的微型处理器,它对许多嵌入式控制应用提供一定高度灵活和成本低的解决办法。

AT89C2051提供以下标准功能:2K字节闪速存储器,128字节RAM,15根I/O口,两个16位定时器,一个五向量两级中断结构,一个全双工串行口,一个精密模拟比较器以及两种可选 的软件节电工作方式。空闲方停止CPU工作但允许RAM、定时器/计数器、串行工作口和中断系统继续工作。掉电方式保存RAM内容但振荡器停止工作并禁止有其它部件的工作到下一个硬件复位。

(2)软硬件的开发

AT89C2051可以采用下面两种方法开发应用系统。

1、由于89C2051内部程序存贮器为Flash,所以修改它内部的程序十分方便快捷,只要配备一个可以编程89C2051的编程器即可。调试人员可以采用程序编辑-编译-固化-插到电路板中试验这样反复循环的方法,对于熟练的MCS-51程序员来说,这种调试方法并不十分困难。但是做这种调试不能够了解片内RAM的内容和程序的走向等有关信息。

2、将普通8031/80C31仿真器的仿真插头中P1.0~P1.7和P3.0~P3.6引出来仿真2051,这种方法可以运用单步、断点的调试方法,但是仿真不够真实,比如,2051的内部模拟比较器功能,P1口、P3口的增强下拉能力等等

3、引脚说明

AT89C2051芯片引脚如图3所示。

图3 AT89C2051引脚图

1、VCC:电源电压。 2、GND:地。

3、P1口:P1口是一个8位双向I/O口。口引脚P1.2~P1.7提供内部上拉电阻,P1.0和P1.1要求外部上拉电阻。P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(ANI0)和反相输入(AIN1)。P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。当P!口引脚写入“1”时,其可用作输入端,当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流。

4、P3口:P3口的P3.0~P3.5、P3.7是带有内部上拉电阻 的七个双向I/O口引脚。P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。P3口缓冲器可吸收20mA电流。当P3口写入“1”时,它们被内部上拉电阻拉高并可用作输入端。用作输入时,被外部拉低的P3口脚将用上拉电阻而流出电流。 P3口还用于实现AT89C2051的各种第二功能,如表1所列:

表1 AT89C2051的第二功能

P3口还接收一些用于闪速存储器编程和程序校验的控制信号。

5、RST:复位输入。RST一旦变成高电平所有的I/O引脚就复位到“1”。当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。每一个机器周期需12个振荡器或时钟周期。

6、XTAL1:作为振荡器反相器的输入和内部时钟发生器的输入。 7、XTAL2:作为振荡器反相放大器的输出。

(五)、小马达原理 motor的译音即电机、电动机。电子启动器就是现在人们通常所指的马达,又称启动机。它通过电磁感应带动启动机转子旋转,转子上的小齿轮带动发动机飞轮旋转,从而带动曲轴转动而着车。具有瓷芯底座的新型低成本火花塞和启动器这两项零部件创新,奠定了汽车发展的技术基础。

(六)、旋转时钟

旋转时钟,利用了视觉暂留的原理,有8只发光二极管排成一列,图中以圆圈代表发光二极管,最内侧的发光二极管为圆心,它们绕着圆心旋转,最外侧的发光二极管显示时间刻度,如图所示,当时针在12点时我们假设角度为0度,则每个小时时针之间的角度为360/12=30度,于是,当这一列发光二极管每旋转30度,,最外侧的发光二极管就点亮一个瞬间以呈现出时间刻度。这样,如果在0,1秒之内,这列发光二极管能旋转完一圈,则人眼就会产生错觉,而把先后产生的时间刻度连成12个完整的时间刻度。

显示时针、分针的方法与显示刻度的原理相似。实际中,分针较时针长,所以在图中我们假设分针用7只发光二极管来显示,时针用5只发光二极管来显示,例如,要显示3点整,在时间刻度的显示基础上,控制在0度上点亮7只发光二极管以显示分针指在12点位置上;然而当发光二极管转过90度时再显示5只以显示时针指在3点位置上,如图所示,由于发光二极管在不断 的旋转,在0.1秒内重复点亮12点位置上的7只和3点位置上的5只发光二极管,直到1分钟以后在6度的位置上点亮7只发光二极管表示3点01分。

三、课题材料

课题材料如表2所示。

表2 LED旋转时钟电路元件清单

万用板

9cm*15cm

1

无源晶振

12MHz

1

20pF 10uF 电容 100uF 0.01uF 发光二极管 白发红

2 1 1 1

1

二极管

发光二极管 白发蓝

7

红外

对管

1对

470Ω 电阻 4.7kΩ 560Ω

8

1 1

四、方案设计

旋转时钟主要有两个部分组成:电机部分和单片机控制发光二极管显示部分。在单片机控制发光二极管显示部分,为了制作的方便,把单片机。电池。发光二极管等器件焊接到一个电路板上,这样可以使旋转的电路板成为一个独立的系统,如图所示,电路板的中心有一个电机轴插孔电机轴插入其中带动电路板旋转旋转。该电路板应该越轻越好,器件可使用贴片式的。

首先要计算旋转时钟的周长和半径。选用直径为3mm的发光二极管组成一列,这样最外侧的发光二极管旋转一周经过的显示位置有60个。为了在显示时每分钟之间有一个间隔,我们在每分钟之间引入一个1mm空隙,如图4所示,于是得到旋转的周长C=60×3mm+59×1mm=239mm,可得半径R=38mm。

得到半径后,可将8只发光二极管按38mm平均间距排成一列,如图5所示,这样就确定了显示部分的硬件尺寸设计,7只内侧的发光二极管可使用蓝色的高亮度管,最外侧的时间刻度发光二极管可用红色以突出刻度。

图4 旋转周长 图5 发光二极管列半径为38mm

时间的计算。根据视觉暂留的原理,该列发光二极管在同一位置出现的时间间隔应该不大于0.1秒,即旋转周期T≤100ms。在这1ms中,可设计发光二极管点亮0.7ms,熄灭0.3ms。这样,就完成了发光二极管显示时间的计算。

直流电机的控制简单,较适合用在旋转时钟中带动电路板旋转。刚才计算出周期

T=50ms,即电机转轴每60ms旋转一圈,得到每秒转动的圈数f=1/T=16.7,所以可选用转速约为1000rmp的电机,可以通过与电位器串联进行具体的转速调整。

在旋转电路板的电路中,P3.3管脚是外部中断1的输入端,连接了一个红外接收管,当有与之配对的红外发光二极管发出红外线照到其上时红外接收管在电路中导通,则外部中断INT1的输入端呈现低电平,将会触发外部中断。

在电机控制和红外管得电路中有一个红外发光二极管,发射管和接收管组成红外对管,用于同步。红外发光二极管固定在电机附近,接收管固定在旋转电路板背面,需要保证接收管和发射管在电路板每旋转一周能对齐一次,以产生一个中断信号。

五、实验计划

(一)、设计好整体规划; (二)、根据规划选材料; (三)、编写程序; (四)、实验仿真;

(五)、若有不合适的地方,总结经验并做适当的调整直至仿真成功; (六)、购买材料; (七)、组合各部件;

(八)、拍照片,制作实验报告和演示验证的PPT。

六、实验步骤

(一)、明确系统功能

电机带动一列发光二极管绕轴旋转,单片机控制发光二极管在旋转过程中的相位置上点亮以指示时间和刻度。与此同时,单片机内部进行时钟的计时操作,以控制旋转时钟显示正确的走时。系统的最终效果与图相似。

(二)、设计实验电路图并确定各种实验材料的规格 实验电路如图6,系统框图如图7。

图6 旋转时钟系统仿真电路图

图7 系统框图

(三)、编写实验程序 系统程序如下。

ORG 00H ; 起始地址00H JMP MAIN ; 跳转到MAIN

ORG 0BH ; Timer 0中断向量地址 JMP TIM0 ; 跳转到TIM0

ORG 13H ; 外部中断1向量地址 JMP EXT1 ; 跳转到EXT1

; 这里是主程序段,使能中断,中断优先级,装载计数初始值等

MAIN:

MOV IE, #86H ; 使能Timer 0中断和外部中断1 SETB TCON.2 ; 设置

MOV IP, #02H ; 设置Timer 0优先级较高

MOV TMOD, #01H ; 使用Timer 0工作在模式1下 MOV TH0, #3CH ; 装载计数初始值,50ms延时 MOV TL0, #0B0H

MOV R0, #00H ; Timer 0的50ms延时计数器 MOV R1, #00H ; 秒的计数器 MOV R2, #00H ; 分的计数器 MOV R3, #00H ; 时的计数器

MOV 32H, #0FFH ; 旋转时钟的指针显示数据 SETB TR0 ; 启动Timer 0中断

JMP $ ; 循环本行,等待中断发生 ; 这里是Timer 0中断服务子程序,用于分,时计时

TIM0:

INC R0 ; 50ms延时计数器加1 CJNE R0, #20, NEXT ; 如果不等于20,说明不到1秒,跳到NEXT INC R1 ; 如果R0=20,计时1秒,R1加1

CJNE R1, #60, INC_SEC ; 如果R1不等于60,说明不到1分钟,跳到INC_SEC

INC R2 ; 如果R1=60,计时1分钟,R2加1 MOV 30H, R2 ; 将分钟存储在30H CJNE R2, #60, INC_MIN ; 如果R2≠60,说明不到一分钟,跳到INC_MIN INC R3 ; 如果R2=60,计时1小时,R3加1 MOV 31H, R3 ; 将小时存储在31H

CJNE R3, #12, INC_HR ; 如果R3不等于12,说明不到12个小时 MOV R0, #00H ; 如果R3=12,将R0~R3计数器清0 MOV R1, #00H MOV R2, #00H MOV R3, #00H NEXT:

MOV TH0, #3CH ; 装载计数初始值,50ms延时 MOV TL0, #0B0H

RETI ; 返回主程序 INC_SEC:

MOV R0, #00H ; 50ms计数器清0 JMP NEXT ; 跳至NEXT INC_MIN:

MOV R0, #00H ; 50ms计数器清0 MOV R1, #00H ; 秒钟计数器清0 JMP NEXT ; 跳至NEXT INC_HR:

MOV R0, #00H ; 50ms计数器清0 MOV R1, #00H ; 秒钟计数器清0 MOV R2, #00H ; 分钟计数器清0 JMP NEXT ; 跳至NEXT

;这里是外部中断1中断服务子程序,用于指针,刻度的显示 EXT1:

MOV R4, #00H ; 显示位置计数器,记录旋转过程中的位置 DISPLAY:

MOV A, R4 ; 位置数据载入ACC

CJNE A, #60, CONTINUE ; 如果位置不等于60,表示没有显示完一圈 RETI ; 如果60,说明显示完一圈,返回主程序 CONTINUE:

PUSH ACC ; ACC压栈

MOV B, #5 ; 刻度的位置是5的倍数 DIV AB ; 将位置除以5

MOV A, B ; 将余数载入ACC中

CJNE A, #0, DIS_MIN ; 余数与0比较,不相等表示不是刻度位置 ANL 32H, #0FEH ; 如果是刻度位置,将显示数据的最低位清0 DIS_MIN:

POP ACC ; ACC弹栈,位置数据

CJNE A, 30H,DIS_HR ; 如果位置数据与30H的分钟不相等,跳转 ANL 32H, #01H ; 如果相等,说明是分针的显示位置,将显示数据中得分针位清0 DIS_HR:

PUSH ACC ; ACC MOV A, 31H ; MOV B, #5 ; B=5

MUL AB ; MOV 31H, A ; POP ACC ; ACC CJNE A, 31H, NXT ; ANL 32H, #07H ; 示数据中的时针位清0 NXT:

MOV P1, 32H ; 32H MOV R6, #174 ; CALL DELAY

MOV 32H, #0FFH ; MOV P1, 32H ; MOV R6, #74 CALL DELAY

INC R4 ; JMP DISPLAY ;

DELAY:

MOV R5, #2 D1: DJNZ R6, $

DJNZ AR5, D1 RET

END ;

压栈

小时计数器载入ACC 做AⅹB=时针的位置,积存回ACC 位置载入31H

弹栈,位置数据

如果位置数据与31H中内容不相等,跳转 如果相等,说明是时针的显示位置,将显中的显示数据从P1输出 延时700us 熄灭

延时300us 位置计数器加1 循环 程序结束

(四)、用PROTUES软件进行仿真

新建设计文件—设定绘图纸大小—选取元器件并添加到对象选择器中—放置、移动、旋转元器件—放置电源、地—电路图布线—设置、修改元器件的属性—电气检测

源程序设计—源程序编译汇编、生成目标代码文件夹—加载目标文件—全速仿真

(五)、购买实验材料 网上购买和实体店购买。

(六)、连接电路

布局排版,将材料和线路在万能板上摆好,之后进行焊接。如图8。 两部分衔接,将直流电机部分电路连接好,之后将直流电机与电路板衔接固定 。如图9。

图8 摆放、焊接 图9 上下衔接

(七)、调节电路

调节直流电源,至直流电机转速合适。测试LED灯是否接好。如图10。

图10 LED灯连接测试

(八)、完成状态 完成图如图11。

图11 完成效果图

图12 理论完成图

七、收获与问题分析

本组共2名组员,均对电学和光学实践性活动抱有浓厚兴趣。积极参加了此次单片机应用课题,亲身经历了课题制作过程中的采购、组装、改进、解决问题等几个过程之后,每个人都获得了许多实践经验,还总结了一些解决问题的办法。同时对于团队合作过程中的组员协调与交流,也成为了我们收获中的重要部分。制作这个LED旋转时钟的初衷只是想试验自己的能力,后来逐渐发现看似简单的课题背后却有着许多我们从未面临过的问题。

这次实验过程中,本组遇到了硬件及软件的多方面问题。

(一)、课题初期无从下手。刚开始时本组一直没有确定课题究竟要做什么,一方面是初识单片机,把握不好课题难度,另一方面不知自身水平如何。

(二)、编程过程中出现了多处错误久久没有被找出,使得课题进度被延后。

(三)、软件仿真步骤中,初次接触PROTUES软件的本组组员,从网上查找使用教程后才逐渐熟悉软件机制。

(四)、原件采购过程中的问题是最多的。首先,由于不熟悉单片机现状,本组匆忙从网店购入ATS89C2051芯片,致使引发了后期包括烧录、安插、链接等一系列的麻烦;其次,原件购买过多,造成了浪费,对于这个问题,本组讨论确定之后的学校学习中,依旧将单片机引入我们的学习探索;之后的焊接,由于技术、工具、场地的问题,我们不仅把万用板烧出黑斑,还烧到了组员电脑,药瓶等生活用品。

(五)、课题中引入红外对管,红外光谱肉眼不可见,无法判断发射管是好是坏。针对此问题,本组在发射管旁串联一支红色LED发光管作为指示灯。

经过这些困难与问题,我们收获的不仅是一次单片机课题制作经历,还有面对问题敢于迎难而上的处事经验。作为理科女生的我们,更应该勇敢解决学习生活中的各种困难。除此之外本组组员在课题配合的默契程度上又增加了许多,这是本组课题顺利完成的精神保证。

作为一支团队,只有目标一致、默契配合,才能将各自长处发挥到最大。

九、致谢

在这次单片机实践活动中,我们真正意义上得做了次实验,拥有一个难忘的回忆并且得到了非常多的宝贵经验和教训。

首先,非常感谢我们单片机老师张学典——他为我们提供这样一个进行单片机实践活动的宝贵机会,在这学期的单片机学习中,给了我们很多的指导,解决了我们很多的困惑。同时也要感谢我们的家人以及我们身边的同学和朋友们,在此次实验过程中,他们给予了我们许多支持,还为我们提出了许多宝贵的意见。

在这里,还要感谢我们团队里的每位成员,两名组员都为这个课题贡献了很多宝贵的时间,并且为这个课题奔波了不少路程,感谢本组组员的互相鼓励、互相支持,使我们一起完成了这个课题。

参考文献:

[1] 51单片机应用从零开始 / 杨欣,王玉凤,刘湘黔编著. --北京:清华大学出版社,2008.1

[2] 51单片机POV趣味制作详解 / 周正华编著. -- 北京: 北京航空航天大学出版社, 2011.3

本文来源:https://www.bwwdw.com/article/xo8i.html

Top