毕业设计作息时间系统设计Word文档格式.docx

上传人:b****6 文档编号:19743560 上传时间:2023-01-09 格式:DOCX 页数:61 大小:270.62KB
下载 相关 举报
毕业设计作息时间系统设计Word文档格式.docx_第1页
第1页 / 共61页
毕业设计作息时间系统设计Word文档格式.docx_第2页
第2页 / 共61页
毕业设计作息时间系统设计Word文档格式.docx_第3页
第3页 / 共61页
毕业设计作息时间系统设计Word文档格式.docx_第4页
第4页 / 共61页
毕业设计作息时间系统设计Word文档格式.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

毕业设计作息时间系统设计Word文档格式.docx

《毕业设计作息时间系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《毕业设计作息时间系统设计Word文档格式.docx(61页珍藏版)》请在冰豆网上搜索。

毕业设计作息时间系统设计Word文档格式.docx

国内外研究现状

现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校。

数字式电子钟用集成电路计时时,译码代替机械式传动,LED显示器代替指针显示时间,减小了计时误差。

这种电子钟具备显示时、分、秒的功能,还可以对时、分、秒进行校对,片选的灵活性好。

随着科学技术的迅速发展,电子时钟正迅速取代纸质日历、年历和一般机械电子时钟。

电子时钟走时准确、功能多样、外观时尚、使用方便,深受消费者的青睐且其产品琳琅满目,但它们的核心部分都有两个共同点,一是采用高性能时钟芯片;

二是大都采用单片机控制。

现在流行的串行时钟电路很多,如DS1302、DS1307、PCF8485等。

这些电路的接口简单、价格低廉、使用方便,被广泛地采用。

论文研究内容及创新点

1.3.1主要内容

该论文主要研究如何根据学校、工厂等单位的作息时间表而实现准时打铃,播放音乐和广播体操以及其他节目等。

1.3.2创新点

以往的作息时间控制系统只具备基本时钟(显示当前时间的小时及分钟)功能,而且采用数字电路实现,致使电路非常复杂,计时精度不高,且不能随季节的变化以及天气的变化而自动调整控制,功能简单。

而我设计的系统除了具备基本时钟功能之外,还可以显示年、月、日、星期等信息,并且采用单片机控制并配合时钟芯片,既保证了系统结构简单,又保证了控制时间的精度和可靠性,且通过外扩电路还可以实现多种功能。

一年到头无需人工调整,即可实现按时打铃、播放广播、点亮路灯等控制。

价格便宜,非常适合学校、工厂、机关等单位使用。

第2章核心芯片简介

AT89C2051简介

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口,~提供内部上拉电阻,和内部无上拉电阻,主要是考虑它们分别是内部精密比较器的同相输入端(AIN0)和反相输入端(AIN1),如果需要应在外部接上拉电阻。

P1口输出缓冲器可吸收20mA电流并可直接驱动LED。

当P1口引脚写入“1”时可作输入端,当引脚~用作输入并被外部拉低时,它们将因内部的上拉电阻而输出电流。

P1口还在Flash闪速编程及程序校验时接收代码数据。

(4)P3口:

P3口的~、是带有内部上拉电阻的7个双向I/O口。

没有引出,它作为一个通用I/O口但不可访问,但可作为固定输入片内比较器的输出信号,P3口缓冲器可吸收20mA电流。

当P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

作输入端时,被外部拉低的P3口将用上拉电阻输出电流。

P3口还用于实现AT89C2051特殊的功能,如表2-1所示:

表2-1P3口功能特性

口引脚

功能特性

RXD(串行输入口)

TXD(串行输出口)

/INT0(外中断0)

/INT1(外中断1)

T0(定时/计数器0外部输入)

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)~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]。

DS1302简介

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)宽范围工作电压~

(5)工作电流:

在低压时,小于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+时,Vcc2给DS1302供电;

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

X1和X2是振荡源,外接晶振。

RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。

RST输入有两种功能:

首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;

其次,RST提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电运行时,在Vcc≥之前,RST必须保持低电平。

只有在SCLK为低电平时,才能将RST置为高电平。

I/O为串行数据输入/输出端(双向)。

SCLK始终是输入端。

管脚描述如下所示:

管脚描述

(1)X1,X2晶振引脚(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

秒寄存器

80H

81H

00~59

CH

10SEC

SEC

分寄存器

82H

83H

10MIN

MIN

时寄存器

84H

85H

01~12或

00~23

12/24

10

HR

A/P

日寄存器

86H

87H

01~28、29、

30、31

10DATE

DATE

月寄存器

88H

89H

01~12

10M

MONTH

周寄存器

8AH

01~07

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]。

DS1302实时显示时间的软硬件

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;

MOVXmtDat,#80h;

数据内容为80h(禁止写入)

ACALLSend_Byte;

RET;

以上程序调用了基本数据发送(Send_Byte)模块及一些内存单元定义。

其源程序清单在附录中给出。

下面的程序亦使用了这个模块。

(2)时钟停止位操作

当把秒寄存器的第7位(时钟停止位)设置为0时,起动时钟开始。

Osc_Enable:

MOVCommand,#80h;

命令字节为80

MOVXmtDat,#00h;

数据内容为0(振荡器工作允许)

RET;

当把秒寄存器的第7位(时钟停止位)设置为1时,时钟振荡器停止,DS1302进入低功耗方式。

Osc_Disable:

MOVCommand,#80h;

数据内容为80h(振荡器停止)

(3)单字节传送方式

例如:

写入8时(12小时模式),程序设置如下:

Write_Singlebyte:

MOVCommand,#84h;

命令字节为84h

MOVR0,#X

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1