单片机新颖60秒LED旋转电子钟_精品文档.doc
《单片机新颖60秒LED旋转电子钟_精品文档.doc》由会员分享,可在线阅读,更多相关《单片机新颖60秒LED旋转电子钟_精品文档.doc(28页珍藏版)》请在冰豆网上搜索。
![单片机新颖60秒LED旋转电子钟_精品文档.doc](https://file1.bdocx.com/fileroot1/2022-10/12/4f715e0b-466a-4549-89ac-35046e0149ae/4f715e0b-466a-4549-89ac-35046e0149ae1.gif)
数理与信息工程学院《单片机原理及应用》期末课程设计——新颖60秒LED旋转电子钟
数理与信息工程学院
《单片机原理及应用》期末课程设计
题目:
新颖60秒LED旋转电子钟
专业:
班级:
计算机091班
姓名:
学号:
指导老师:
成绩:
(2010.6)
目录
第1节引言 3
1.1LED旋转电子钟概述 3
1.2本次设计的要求 3
1.3系统主要功能 3
第2节系统硬件设计 5
2.1系统设计框架及实现 5
2.11系统原理图 5
2.1.2系统设计框图 6
2.2系统硬件组成 6
2.2.1AT89C2051单片机及其引脚说明 6
2.2.260秒旋转译码驱动原理 7
2.2.3时分显示部件 9
第3节系统的软件设计 11
3.1系统主程序设计 11
3.2中断程序设计 12
3.3程序清单 13
结束语 28
参考文献 29
新颖60秒LED旋转电子钟
第1节引言
近年来,随着我国科技的不断发展,我国经济发展的支柱产业——电子产业获得长足发展,近年来各种电子产品琳琅满目,随处可见,随着电子产品的更新速度的加快,各种功能强大,款式新颖的电子产品不断问世。
电子时钟便是这一发展趋势中的代表,各种功能的电子时钟应有尽有,且功能不断更新。
目前市场上出现的电子钟,一般都以LED数码管显示时分秒,与传统的以指针显示秒的方式不同,违背了人们传统的习惯,而且这类电子钟一般时采用大型的显示器,且外观设计欠美观,很少能进去百姓家庭。
此外,无论时机械钟、石英钟、还是电子钟,都存在着时间误差的问题。
本实验设计的LED显示器件显示的电子时钟,可以有效的克服时钟存在误差的问题,在夜间不必照明就可以看到时间,且以60只发光管实现秒显示,接进传统的秒针显示秒的形式,用户更容易接受,而且美观大方。
1.1LED旋转电子钟概述
随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的LED旋转电子钟。
本设计以单片机89C2051为控制核心,由实时时钟模块、电源模块、人机接口模块、60秒旋转译码驱动模块等部分组成。
其中实时时钟采用DS12887可实现年月日时分秒等时间信息的采集和闹钟功能。
温度检测模块由DS18B20集成温度传感器对现场环境温度进行实时检测。
人机接口模块由3个键盘和4个LED数码管组成,可实现时间显示、闹钟设置、时间校对等功能。
60秒旋转译码驱动模块是由60个发光二级管组成,模拟“秒针”的行走。
1.2本次设计的要求
(1)用4只LED数码管输出显示时和分。
(2)可通过按键设置闹钟的功能,且停闹无须手工操作。
(3)可同过按键设置分校时。
(4)月计时误差小于45秒
(5)用60只LED发光管旋转显示,模拟“秒针”行走。
1.3系统主要功能
本设计完成了以下功能:
(1)4只LED数码管显示当前时分
(2)每隔一秒周边的60只LED发光管旋转一格。
(3)当发生停电的时候,由后备电池供电,系统进入低功耗状态,所有显示部件停止显示,当恢复供电后,系统自动恢复工作状态,不影响计时。
第2节系统硬件设计
2.1系统设计框架及实现
2.11系统原理图
图2-1电子钟系统原理图
2.1.2系统设计框图
电子钟的原理框图如图2-2所示。
它由以下几个部件组成:
单片机89C2051、电源、时分显示部件、60秒旋转译码驱动电路。
时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。
时分显示模块、60秒旋转译码驱动电路以及显示驱动都通过89C2051的I/O口控制。
电源部分:
电源部分有二部分组成。
一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作;另一部分是由3V的电池供电,以保证停电时正常走时。
正常情况下电池是不提供电能的,以保证电池的寿命。
具体电路参见“新颖的60秒旋转电子钟参考电路原理图”。
图2-2电子钟系统设计框图
2.2系统硬件组成
2.2.1AT89C2051单片机及其引脚说明
AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。
内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与IntelMCS-51系列单片机的指令和输出管脚相兼容。
由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。
AT89C2051是一个有20个引脚的芯片,引脚配置如图3所示。
与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。
AT89C2051芯片的20个引脚功能为:
图2-3AT89C2051引脚配置图2-4CD4017引脚图
VCC电源电压。
GND接地。
RST复位输入。
当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。
XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2来自反向振荡放大器的输出。
P1口8位双向I/O口。
引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。
P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1”后,可用作输入。
在闪速编程与编程校验期间,P1口也可接收编码数据。
P3口引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚。
P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。
P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。
P3口也可用作特殊功能口,其功能见表1。
P3口同时也可为闪速存储器编程和编程校验接收控制信号。
表2-1P3口特殊功能
P3口引脚
特殊功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
2.2.260秒旋转译码驱动原理
按常规传统设计,需60进制译码驱动电路才能实现60秒旋转译码驱动,若用六片十进制计数译码器构成六十进制计数译码电路,则电路连线多(需要120根连线),硬件电路庞大,开销大。
为此,我们巧妙地采用了两片CD4017进行六十进制计数译码,实现60秒旋转译码驱动。
既减少了电路的复杂程度又可降低了成本。
图4为CD4017功能引脚图,图5为其时序图。
图2-5CD4017时序图
CD4017集成电路是十进制计数/时序译码器,共有10个译码输出Q0~Q9;每个译码输出通常处于低电平,且在时钟脉冲由低到高的上升沿输出高电平;每个高电平输出维持1个时钟周期;每输入10个时钟脉冲,输出一个进位脉冲,因此进位输出信号可作为下一级计数器的时钟信号。
在清零输入端(R)加高电平或正脉冲时,只有输出端Q0为高电平,其余各输出端均为低电平“0”。
为实现对发光二极管的驱动,将每一个译码输出端口接一只发光二极管,并将二极管串联限流电阻后接地。
当译码端口Q0~Q9中任一端口为高电平,则对应的发光二极管点亮,如图6(左)所示。
仔细考查CD4017的功能,可发现其10个输出的高电平是相互排斥的,即任一时刻只有一只发光二极管点亮,因此可将图6(左)电路进一步简化为如图6(右)所示,从而简化电路设计。
图2-6CD4017控制发光二极管原理图
在本电子钟设计中,每秒点亮一个发光二极管,循环点亮一周共需60个发光二极管,若用上述的6片CD4017实现驱动,显然电路复杂。
为此我们选用两片CD4017和一片6反相器,采用“纵横双译码”技术,巧妙地实现60秒旋转译码驱动,其中一片接成10进制,一片接成6进制,实现6×10=60的功能,具体连接方法如图7所示。
图2-7发光二极管“纵横双译码”循环点亮LED原理图
将周期为1秒的输入脉冲作为其中一片CD4017的时钟脉冲,而此片的级联进位输出端(QC)作为另一片的时钟输入,并将Q6与复位端相连。
在两片译码输出端交叉点上接入发光二极管,构成6×10矩阵。
根据CD4017时序特点,在初始状态,作为高位(纵)的CD4017译码器输出端口Q0处于高平,经反相器反相后为低电平。
当作为低位(横)的CD4017译码器输出端口Q0~Q9依次输出高电平后,则对应的二极管LD1~LD10依次点亮;此后由于QC端的进位,高位CD4017译码输出端口Q1输出高电平,反相后输出低电平,当低位的CD4017译码输出端口Q0~Q9依次输出高电平后,二极管LD11~LD20依次点亮。
如此往复,直至高位Q6向复位端输入高电平,CD4017复位,60秒循环点亮重新开始。
2.2.3时分显示部件
由于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济。
LED有共阴极和共阳极两种。
如图8所示。
二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。
一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。
当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。
为了保护各段LED不被损坏,需外加限流电阻。
图2-8LED数码管结构原理图
众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动。
本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性。
所谓软件译码,即由单片机软件完成从数字到显示码的转换。
从LED数码管结构原理可知,为了显示字符,要为LED显示数码管提供显示段码,组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显示段码为1个字节。
各段码位与显示段的对应关系如表2。
表2-2各段码位的对应关系
段码位
D7
D6
D5
D4
D3
D2
D1
D0
显示段
dp
g
f
e
d
c
b
a
需说明的是当用数据口连接LED数码管a~dp引脚时,不同的连接方法,各段码位与显示段有不同的对应关系。
通常数据口的D0位与a段连接,D1位与b段连接,……D7位与dp段连接,如表2所示,表3为用于LED数码管显示的十六进制数和空白字符与P的显示段码。
表2-3LED显示段码
字型
共阳极段码
共阴极段码
字型
共阳极段码
共阴极段码
0
C0H
3FH
9
90H
6FH
1
F9H
06H