毕业设计作息时间系统设计.docx
《毕业设计作息时间系统设计.docx》由会员分享,可在线阅读,更多相关《毕业设计作息时间系统设计.docx(80页珍藏版)》请在冰点文库上搜索。
毕业设计作息时间系统设计
作息时间系统设计
摘要
本次设计的作息时间系统除具备基本时钟功能外,还可以实时显示年、月、日信息,并且可以自动识别闰年、闰月及每月的天数。
另外还可以根据学校、工厂等单位的作息时间表按时打铃、播放音乐、广播体操和其他节目等。
该系统设有3个按钮,可以随时调整当前时间,以保证时间与标准时间相吻合,且采用DS1302高性能时钟芯片,从而保证了时钟显示的精度和可靠性。
整个系统采用市电通过电源适配器供电,由于DS1302时钟芯片有备用电池供电功能,所以当市电停电时,不但整个控制系统所有数据不会丢失,而且可以照常运行,这样再次上电后就不用再调整时间了。
为了使该系统体积尽量最小,我在设计时采用了AT89C2051单片机,该单片机可直接驱动LED数码显示器。
考虑到整个系统显示位数较多(14位),为了保证显示的亮度,显示部分采用了静态显示。
还有,为了便于使用者操作,整个系统采用了一些人性化的设计,比如指示灯的添加等。
纵观整个系统,结构简单、体积小、可靠性高、操作简单、扩展性强,而且价格低廉,非常适合学校、工厂和机关等单位使用。
关键词:
作息时间单片机时钟芯片继电器
Abstract
ThesystemofworkandresttimewhatIhavedesignedcandisplayareal-timeofyear,monthandday,andmayautomaticallyidentifyaleapyear,aleapmonthandthenumberofthedayspermonthinadditiontoabasicclockfunction.Thissystemmayhitthebellontimeaccordingtotheschools’orfactories’dailyschedule,playmusicandbroadcastinggymnasticsandotherprogramsandsoon.
Thesystemhasthreebuttonssothatyoucanadjustthecurrenttimeatanymomenttoensurethatthecurrenttimecoincideswiththestandardtime,inadditiontousingthehigh-performanceclockchipDS1302,whichhasensuredaclockdisplayofprecisionandhighreliability.Theentiresystemusesthecityelectricitytosupplypowerthroughthepowersourceadapter.AstheDS1302clockchiphasthepowersupplyfunctionofbackupbattery,alldatasoftheentirecontrolsystemwillnotbelosedandthesystemrunasusualwhenthecityelectricitywascutsothatthesystemwillnotneedtheadjustmentoftimewhenthecityelectricitycomesnexttime.Inordertocausethissystemvolumetobeassmallestaspossible,AT89C2051SCMwasusedinthedesignwhichcandirectlydrivetheLEDdigitaldisplay.Moreoverconsideringthedisplaydigitsoftheoverallsystemaremany(14digits)andinordertoguaranteethebrightnessofshow,Ihasadoptedthestaticdemonstrationintheshowpart.Also,inordertofacilitateusers,theentiresystemhasusedsomeuser-friendlydesign,suchastheadditionofindicatinglightsetc.
Thewholesystemhassimplestructure,smallsize,highreliability,simpleoperation,highexpansibilityandlowpricessothatitisidealforschools,factoriesanddepartments.
Keywords:
WorkandResttimeSCMClockchipRelay
第1章绪论
1.1课题研究的目的及意义
学校以及一些企事业单位通常使用传统的电铃声作为上下课、上下班的作息时间信号。
且不说人工打铃的繁琐,铃声的单调和乏味,光是那突然骤响的刺耳铃声就常常激起周围居民的不满。
多年来,中国各地从大学到小学乃至幼儿园,从城市到农村,从冬到夏,那特有的铃声响遍了大江南北,成了学校的特色和“专利”。
正是这种铃声让一些学生产生了厌烦情绪,甚至一些学生把铃声看成是考试的代名词,以至于一听到这种声音就产生紧张、恐惧心理。
有教育专家建议,学校教育理应彰显“人”的个性,并从“小”处做起,推进素质教育,于细微之处加强对学生的人文关怀,起到润物无声的育人目的。
为此,我开发了“作息时间单片机控制系统”。
以音乐代替铃声,管理学校日常作息时间。
播放自起床、早操、上下课直到晚熄灯等信号音乐,可做到自动开机、自动播放、自动关机的无人值守全自动运行,并且还可以控制电视、路灯、室内照明等电气设备。
从此屏弃那传统的铃声,代之以现代化优美、怡人的环境音乐,让学生在一次次的铃声音乐中受到美的熏陶,体验音乐的魅力,形成愉悦的心境。
既激活学生的艺术细胞,又达到优化育人环境,陶冶学生情操的效果。
无形之中推进了素质教育,营造良好的校园氛围。
1.2国内外研究现状
现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校。
数字式电子钟用集成电路计时时,译码代替机械式传动,LED显示器代替指针显示时间,减小了计时误差。
这种电子钟具备显示时、分、秒的功能,还可以对时、分、秒进行校对,片选的灵活性好。
随着科学技术的迅速发展,电子时钟正迅速取代纸质日历、年历和一般机械电子时钟。
电子时钟走时准确、功能多样、外观时尚、使用方便,深受消费者的青睐且其产品琳琅满目,但它们的核心部分都有两个共同点,一是采用高性能时钟芯片;二是大都采用单片机控制。
现在流行的串行时钟电路很多,如DS1302、DS1307、PCF8485等。
这些电路的接口简单、价格低廉、使用方便,被广泛地采用。
1.3论文研究内容及创新点
1.3.1主要内容
该论文主要研究如何根据学校、工厂等单位的作息时间表而实现准时打铃,播放音乐和广播体操以及其他节目等。
1.3.2创新点
以往的作息时间控制系统只具备基本时钟(显示当前时间的小时及分钟)功能,而且采用数字电路实现,致使电路非常复杂,计时精度不高,且不能随季节的变化以及天气的变化而自动调整控制,功能简单。
而我设计的系统除了具备基本时钟功能之外,还可以显示年、月、日、星期等信息,并且采用单片机控制并配合时钟芯片,既保证了系统结构简单,又保证了控制时间的精度和可靠性,且通过外扩电路还可以实现多种功能。
一年到头无需人工调整,即可实现按时打铃、播放广播、点亮路灯等控制。
价格便宜,非常适合学校、工厂、机关等单位使用。
第2章核心芯片简介
2.1AT89C2051简介
AT89C2051是美国ATMEL公司生产的一种低电压、高性能CMOS8位单片机,片内含2kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大。
2.1.1AT89C2051芯片的引脚及特点
图2-1AT89C2051芯片引脚图
AT89C2051芯片引脚如图2-1所示。
引脚功能说明:
(1)Vcc:
电源电压
(2)GND:
地
(3)P1口:
P1口是一组8位双向I/O口,P1.2~P1.7提供内部上拉电阻,P1.0和P1.1内部无上拉电阻,主要是考虑它们分别是内部精密比较器的同相输入端(AIN0)和反相输入端(AIN1),如果需要应在外部接上拉电阻。
P1口输出缓冲器可吸收20mA电流并可直接驱动LED。
当P1口引脚写入“1”时可作输入端,当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而输出电流。
P1口还在Flash闪速编程及程序校验时接收代码数据。
(4)P3口:
P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的7个双向I/O口。
P3.6没有引出,它作为一个通用I/O口但不可访问,但可作为固定输入片内比较器的输出信号,P3口缓冲器可吸收20mA电流。
当P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流。
P3口还用于实现AT89C2051特殊的功能,如表2-1所示:
表2-1P3口功能特性
口引脚
功能特性
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外中断0)
P3.3
/INT1(外中断1)
P3.4
T0(定时/计数器0外部输入)
P3.5
T1(定时.计数器1外部输入)
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
(5)RST:
复位输入。
RST引脚一旦变成两个机器周期以上高电平,所有的I/O都将复位到“1”(高电平)状态,当振荡器正在工作时,持续两个机器周期以上的高电平便可完成复位,每个机器周期为12个振荡时钟周期。
(6)XTAL1:
振荡器反相放大器及内部时钟发生器的输入端。
(7)XTAL2:
振荡器反相放大器的输出端。
(8)振荡器特征:
XTAL1、XTAL2为片内振荡器反相放大器的输入和输出端,如图2-2所示。
可采用石英晶体或陶瓷振荡器组成时钟振荡器,如需从外部输入时钟信号驱动AT89C2051,时钟信号从XTAL1输入,XTAL2应悬空。
由于输入到内部电路是经过一个2分频触发器,所以输入的外部时钟信号无需特殊要求,但它必须符合电平的最大和最小值及时序规范[1]。
图2-2AT89C2051内部振荡电路与外部时钟驱动电路
2.1.2AT89C2051的主要性能参数
主要性能参数:
(1)与MCS-51产品指令系统完全兼容
(2)2k字节可重擦写闪速存储器
(3)1000次擦写周期
(4)2.7~6V的工作电压范围
(5)全静态操作:
0Hz~24MHz
(6)两级加密程序存储器
(7)128*8字节内部RAM
(8)15个可编程I/O口线
(9)两个16位定时/计数器
(10)6个中断源
(11)可编程串行UART通道
(12)可直接驱动LED的输出端口
(13)内置一个模拟比较器
(14)低功耗空闲和掉电模式
功能特性概述:
AT89C2051提供以下标准功能:
2k字节Flash闪速存储器,128字节内部RAM,15个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,内置一个精密比较器、片内振荡器及时钟电路。
同时,AT89C2051可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式:
空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作;掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位[2]。
2.2DS1302简介
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的涓流充电时钟芯片,内部含有一个实时时钟/日历和一个31字节的用于临时性存放数据的静态RAM寄存器,通过简单的SPI串行接口与单片机进行同步通信。
实时时钟/日历电路可提供秒、分、时、星期、日、月、年的计时信息,具有闰年补偿功能,即每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式。
DS1302与单片机之间能简单地采用SPI同步串行的方式进行通信,仅需用到三个口线:
(1)RES(复位),
(2)I/O(数据线),(3)SCLK(串行时钟)。
时钟/RAM的读/写数据以一个字节或可采用突发方式一次传送多达31个字节的时钟信号或RAM数据的字符组方式通信。
DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。
DS1302是DS1202的升级产品,与DS1202兼容,增加了以下的特性:
双电源管脚用于主电源和备份电源供应,Vcc1为可编程后备涓细电流充电电源,附加七个字节存储器。
它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域。
下面将主要的性能指标作一综合:
(1)实时时钟具有能计算2100年之前的秒、分、时、星期、日、月、年的能力,还有闰年调整的能力
(2)31*8位暂存数据存储RAM
(3)串行I/O口方式使得管脚数量最少
(4)宽范围工作电压2.0~5.5V
(5)工作电流:
在低压2.0V时,小于300nA
(6)读/写时钟或RAM数据时,有两种传送方式:
单字节传送和多字节传送(字符组方式)
(7)8引脚DIP封装或可选的8脚SOIC封装(根据表面装配)
(8)简单串行SPI三线接口方式
(9)与TTL兼容(Vcc=5V)
(10)可选工业级温度范围-40oC~+85oC
(11)与DS1202兼容
(12)在DS1202基础上增加的特性:
①对Vcc1有可选的涓流充电能力
②双电源管脚用于主电源和备份电源供应
③备份电源管脚可由电池或大容量电容输入
④附加的7字节暂存存储器[3]
2.2.1DS1302引脚功能与内部结构
DS1302的引脚排列如图2-3所示,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电;当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入/输出端(双向)。
SCLK始终是输入端。
管脚描述如下所示:
管脚描述
(1)X1,X232.768KHz晶振引脚(2脚,3脚)
(2)GND地(4脚)
(3)RST复位引脚(5脚)
(4)I/O数据输入/输出引脚(6脚)
(5)SCLK串行时钟(7脚)
(6)Vcc1,Vcc2电源供电引脚,Vcc1可接后备电池(8脚、1脚)
(7)DS1302串行时钟芯片,8脚DIP
(8)DS1302S串行时钟芯片,8脚SOIC(200mil)
(9)DS1302Z串行时钟芯片,8脚SOIC(150mil)
管脚配置
图2-3DS1302时钟芯片引脚图
2.2.2DS1302的控制字
DS1302的控制字如图2-4所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中;位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示要进行读操作,控制字节总是从最低位开始输出。
2.2.3DS1302的数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0到高位7。
2.2.4DS1302内部寄存器
DS1302由控制寄存器和年、月、日、星期、时、分、秒工作寄存器等共12个寄存器组成,其中有7个寄存器与日历、时钟相关,存放的数据为BCD码形式。
其日历、时间寄存器及其控制字见表2-2。
表2-2日历、时间寄存器及其控制字
寄存器名称
命令字
取值范围
各位内容
写操作
读操作
7
6
5
4
3
2
1
0
秒寄存器
80H
81H
00~59
CH
10SEC
SEC
分寄存器
82H
83H
00~59
0
10MIN
MIN
时寄存器
84H
85H
01~12或
00~23
12/24
0
10
HR
HR
A/P
日寄存器
86H
87H
01~28、29、
30、31
0
0
10DATE
DATE
月寄存器
88H
89H
01~12
0
0
0
10M
MONTH
周寄存器
8AH
88H
01~07
0
0
0
0
0
DAY
年寄存器
8CH
8DH
00~99
10YEAR
YEAR
各寄存器的最后一位指明数据的读/写方式:
为“0”时是读状态;为“1”时是写状态。
各寄存器的地址如图2-5所示。
图2-5各寄存器的地址
CH:
时钟停止位标志
CH=0振荡器工作允许
CH=1振荡器停止
WP:
写保护位
WP=0寄存器数据能够写入
WP=1寄存器数据不能写入
TCS:
涓流充电选择
TCS=1010使能涓流充电
TCS=其它禁止涓流充电
寄存器2的第7位:
12/24小时
bit7=1,12小时模式
bit7=0,24小时模式
寄存器2的第5位:
AM/PM定义
AP=0上午模式
AP=1下午模式
DS:
二极管选择位
DS=01选择一个二极管
DS=10选择两个二极管
DS=00或11,即使TCS=1010,充电功能也被禁止
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)[4]。
2.3DS1302实时显示时间的软硬件
2.3.1DS1302与CPU的连接
DS1302与CPU的连接仅需要三条线,即SCLK、I/O、RST。
图2-6示出DS1302与AT89C2051的连接图。
图2-6DS1302与CPU连接的电路图
2.3.2DS1302与单片机的接口软件设计及功能应用举例
单片机对时钟的读/写过程,实质上就是对DS1302各个寄存器的读/写过程。
在数据传送之前,首先置/RST端为高,接着发送一个带有地址和命令信息的8位命令字到寄存器,命令字节确定所寻的寄存器是读操作还是写操作。
在一个时钟周期内,在SCLK的上升沿时数据输入有效,输出则在SCLK的下降沿有效。
如果/RST复位端输入为低电平,则所有数据传送终止,I/O脚处于高阻状态。
DS1302的读/写数据时序如图2-7所示。
简单说明如下:
(1)数据输入:
在输入写命令字节的8个SCLK周期之后,数据字节在后8个SCLK周期的上升沿输入,从低位开始输入数据。
(2)数据输出:
在输入读命令字节的8个SCLK周期之后,数据字节在后8个SCLK周期的下降沿输入。
第一个数据位在写命令字节最后一位的第一个下降沿输出。
只要/RST保持为高,在持续的SCLK周期内就继续输出数据,从低位开始输出数据。
下面首先给出基本的接口软件,然后举例说明各种功能的应用[5]。
(1)写保护寄存器操作
当写保护寄存器的最高位为0时,允许数据写入寄存器,写保护寄存器可以通过命令字节8EH、8FH来规定禁止写入/读出。
写保护位不能在多字节传送模式下写入。
Write_Enable:
MOVCommand,#8Eh;命令字节为8Eh
MOVByteCnt,#1;单字节传送模式
MOVR0,#XmtDat;数据地址覆给R0
MOVXmtDat,#00h;数据内容为0(写入允许)
ACALLSend_Byte;调用写入数据子程序
RET;返回调用本子程序处
当写保护寄存器的最高位为1时,禁止数据写入寄存器,
Write_Disable:
MOVCommand,#8Eh;命令字节为8E
MOVByteCnt,#1;单字节传送模式
MOVR0,#XmtDat;数据地址覆给R0
MOVXmtDat,#80h;数据内容为80h(禁止写入)
ACALLSend_Byte;调用写入数据子程序
RET;返回调用本子程序处
以上程序调用了基本数据发送(Send_Byte)模块及一些内存单元定义。
其源程序清单在附录中给出。
下面的程序亦使用了这个模块。
(2)时钟停止位操作
当把秒寄存器的第7位(时钟停止位)设置为0时,起动时钟开始。
Osc_Enable:
MOVCommand,#80h;命令字节为80
MOVByteCnt,#1;单字节传送模式
MOVR0,#XmtDat;数据地址覆给R0
MOVXmtDat,#00h;数据内容为0(振荡器工作允许)
ACALLSend_Byte;调用写入数据子程序
RET;返回调用本子程序处
当把秒寄存器的第7位(时钟停止位)设置为1时,时钟振荡器停止,DS1302进入低功耗方式。
Osc_Disable:
MOVCommand,#80h;命令字节为80
MOVByteCnt,#1;单字节传送模式
MOVR0,#XmtDat;数据地址覆给R0
MOVXmtDat,#80h;数据内容为80h(振荡器停止)
ACALLSend_Byte;调用写入数据子程序
RET;返回调用本子程序处
(3)单字节传