51单片机万年历 DS12887

更新时间:2024-07-01 02:49:01 阅读量: 综合文库 文档下载

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

本科毕业设计说明书(论文)

1 绪论

需要该设计的实物请联系:QQ:702176842

第 1页 共 48页

时间在我们的生活中有着不可取代的作用,它可以为我们清晰地记录下制作从开始到结束所需要的时间。时间对人们来说总是宝贵的,工作的忙碌性和繁杂性容易使人忘记当前时间,忘记了要做的事情。当事情不重要的时候,这种遗忘无伤大雅,但是,一旦事情重要,一时的耽误可能酿成大祸。例如,许多火灾都是由于人们遗忘而发生的,而时间的重要性在医院、冶金、化工、食品、机械、石油等工业中,更是举足重轻,而现在钟表的数字化给人们的生活带来了极大地方便。成为人们必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。

1.1 课题背景及意义

如今我们只需看一下钟就能说出时间,我们把这看成是很自然的事。但在过去长达几千年的时间里,根本就没有任何测定时间的精确方法。人们通过太阳在天空中的位置,或者通过像沙漏这样的装置来判断时间,在沙漏中,是通过沙子从一个双头玻璃容器中漏落下来来指示时间的。

改变上述情况的人是一位叫做一行的中国杰出天文学家,他生活于公元8世纪。他与另外一位中国发明家梁令瓒一起设计了“擒纵器”装置,即所有机械钟中心部位的那套齿轮嵌齿结构。

机械钟在中世纪时来到欧洲。到14世纪时,欧洲建造了既大又不灵巧的机械钟,它们用钟锤驱动,其精确度每天大约误差在1小时以内。这样的钟在人们眼中通常没什么信任度。它们连着一个报时的铃,但既然它们这样不精确,在机械装置中也就谈不上显示分与秒了。15世纪时开发出了由弹簧驱动的钟,接着在17世纪时制造出了带有钟摆的更精确的钟。而到中世纪时,钟表制造者造出了可展示太阳运动和月亮、行星的相位,以及能显示时间的钟。拟人机构不时地打铃,以声音报出每小时和每刻钟。

而在现在这一个知识爆炸的新时代,新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张地说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时

本科毕业设计说明书(论文)

字化的钟表得出现,给人们带来了极大的方便。

第 2页 共 48页

间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人,而数

数字时钟具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。适用于家庭、公司、机关等众多场所。为人们的日常生活、出行安排提供了方便,成为人们日常生活中不可缺少的一部分。

近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子时钟、数字闹钟等等。单片机在多功能高精度时钟中的应用已是非常普遍的,人们对高精度钟的功能及工作顺序都非常熟悉,但是却很少知道它的内部结构以及工作原理。由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以进行定时、校时功能。输出设备显示器可以用液晶显示技术和数码管显示技术。

1.2 本毕业设计课题任务的主要内容和主要要求

本次设计的题目是基于DS12C887的高精度时钟的设计,可以正常的显示年、月、日、时、分、秒。本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89S52为核心元件,同时采用1602液晶显示屏动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。另外具有校时功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。

本次设计可分为两部分:硬件部分、软件部分。

硬件部分包括:AT89S52单片机、DS12C887时钟芯片、1602LCD液晶显示器。主要由AT89S52单片机、实时时钟芯片电路、液晶显示输出电路、键盘输入电路组成等几大部分组成。具体说来,系统智能控制部分由单片机及其相关的外围电路组成,外围电路包括复位电路、晶振电路、键盘设计、电源电路。

利用单片机将复位电路、动态显示电路、电源电路等正确的连接在一起,并通过单片机的编程来实现本次设计任务中的要求。

软件部分包括了主程序模块,DS12C887模块,LCD1602模块,键盘控制模块[1]。 本设计的基本要求是:具有年、月、日、星期、时、分、秒等功能,同时具备年、月、日、星期、时、分、秒校准功能。

具体的用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89S52为核心元件,结合DS12C887时钟芯片,采用1602液晶显示屏作为动态显示年、月、

本科毕业设计说明书(论文)

日、星期、时、分、秒等的现代计时[2]。

第 3页 共 48页

1.3 本文章节安排

第一章绪论,介绍了本课题的背景及要实现的目标;

第二章方案论证,具体包括常见的时钟方案以及本设计选用的方案;

第三章硬件部分,DS12C887的高精确时钟的硬件设计,硬件模块包括AT89S52控制模块,DS12C887时钟模块,1602显示模块,键盘及外围电路,外围电路即晶振和复位电路[3];

第四章软件部分,本系统软件采用模块化结构,由主程序﹑DS12C887子程序、LCD1602子程序、键盘子程序构成;

第五章系统调试部分,包括软件介绍和调试中存在的问题和解决办法以及显示结果。

本科毕业设计说明书(论文)

2 方案论证

第 4页 共 48页

时钟电路有各种各样的,在不同的要求和条件下有着各自的优势,本设计的题目是高精度时钟的设计,根据设计要求时钟显示正常的年、月、日、星期、时、分、秒。要想实现上述功能,所以设计要从电路设计的性价比、显示时间的精确以及稳定性为前提。本设计是要将硬件系统和软件系统有机的结合在一起,方可实现我们设计任务中的各项要求。

2.1 常见的时钟设计

2.1.1 基于FPGA时钟电路设计

FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要:

(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 (2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 (3)FPGA内部有丰富的触发器和I/O引脚。

(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。并且FPGA采用高速CMOS工艺、功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。

随着FPGA集成度的不断提升,单片FPGA已经可以完成百万门级的集成电路设计。因此,很多ASIC设计可以利用FPGA完成流片前的功能验证。甚至直接使用FPGA进行商业生产。但是,FPGA的特殊结构决定了基于FPGA的设计不能直接照搬在ASIC设计当中的某些经验,时钟设计便是其中较突出的一条。

由于FPGA的生产工艺,在出厂之前,FPGA内部元件之间的连线已经完全固定。同时,FPGA具有连线延时相对门延时较大的特点,造成FPGA并不能通过动态搭建时钟缓冲器树的方法解决时钟偏差问题。实际上,时钟结构已经被预先固化在芯片当中。经过综合工具的自动指定。

本科毕业设计说明书(论文)

时钟结构如图2.1所示。

第 5页 共 48页

图2.1 时钟结构

FPGA通过其特定的时钟网络,使得时钟信号从BUFGMUX到每个CLB的时钟端没有时钟偏差。但是,此结构的间接后果是为每个CLB的时钟端添加了一个相同的时钟线延时,即从BUFGMUX通过时钟网络到达GRM的时间,在正常情况下,这个时间为6ns~7ns。

因为两个都可以实现同样的功能,而FPGA芯片的价格远比单片机高。出于利润,会选择开发成本少的产品。 2.1.2 基于石英晶体振荡器设计

随着科学技术的不断发展,人们对时间计量的精度要求越来越高。高精度的计时工具大多数都是用了石英晶体振荡器,由于电子石晶表、石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种钟具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

系统的工作原理:振荡器产生稳定的分频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒技术器满60分向分计数器进位,分技术器满60分向时计数器进位,小时计数器按照“24翻1”规律技术。计数器的输出分别由译码器送显示器显示。计时出现误差时,可以用校时电路校时、校分[4]。

数字电子钟逻辑图如图2.2显示,它由石英晶体振荡器、分频器、计数器、译码器、译码显示器和校时电路组成(如显示23时50分59秒)。

本科毕业设计说明书(论文)

晶体振荡器 校时电路 时计数器 分计数器 译码器 译码器 23 50 第 6页 共 48页

59 译码器 秒计数器 分频器

图2.2 数字电子钟逻辑图

本电路主要由石英晶体振荡器、分频器、计数器、译码器、LED显示器和校时电路组成,采用了COMS系统(双列直插式)中小规模集成芯片。总体方案由主体电路和扩展电路两大部分组成,其中主体电路完成数字钟的基本功能,扩展电路完成数字钟展功能,进行了各单元的设计,总体调试。

2.2 本设计采用的方案

对此次作品的方案选定:采用AT89S52作为主控制系统,LCD1602液晶模块作为显示,时钟芯片DS12C887提供时钟。硬件系统主要有单片机AT89S52、DS12C887、1602LCD等。

采用AT89S52单片机作为系统的控制核心,一是对通过I/O口组成的键盘进行定期扫描,并执行相应的键处理;二是定时读取时钟芯片数据,使之在各位LCD中显示。时钟功能采用单片集成的时钟芯片DS12C887来实现,它是保证时钟准确的重要器件。在运行时,按下相应的键,可以对显示的数据进行相应的校正处理,以显示正确的时间。

根据按键电路可实现年、月、日、时、分、秒的调整,S1键是功能键,切换需要选择调整的位,S2、S3键分别对时间进行加或减的操作,S4是复位键,进行复位操作,S5是闹钟键。

本科毕业设计说明书(论文)

设计的整体框图如图2.3所示。

第 7页 共 48页

图2.3 设计的整体框图

(1)单片机控制模块

单片机来承担单片机在系统中对其他模块进行控制,是整个系统的核心部件,主要是对其他模块进行控制和数据交换。

(2)时钟模块的设计

时钟模块主要是用于对时、分、秒、年、月、日和星期的计时。该模块采用的芯片为DS12C887时钟芯片。

(3)显示模块

显示模块主要由1602 LCD显示器完成,显示器主要是为人机交互提供即时的信息,能让人们与机器进行很好的交流。

(4)键盘模块

本系统的按键主要是用于对时钟的校对,现对按键的功能简述如下:S1键是功能键,切换需要选择调整的位,S2、S3键分别对时间进行加或减的操作,S4是复位键,进行复位操作,S5是闹钟键。

本科毕业设计说明书(论文)

3 硬件电路设计

第 8页 共 48页

根据上述,采用AT89S52单片机作为系统的控制核心。一是对通过I/O口组成的键盘进行定期扫描,并执行相应键处理;二是定时读取时钟芯片数据,使之在各位LCD中显示。时钟功能采用集成的时钟芯片DS12C887来实现,它是保证时钟准确的重要器件。在运行时,按下相应的键,可以对显示的数据进行相应的校正处理,以显示正确的时间[5]。

3.1 单片机控制电路

单片机控制系统包括AT89S52单片机以及它的外围电路(晶振电路和复位电路)。 3.1.1 单片机系统发展

随着计算机技术的发展,单片机技术已成为计算机技术中的一个独立的分支,单片机的应用领域也越来越广泛,特别是在工业控制和仪器仪表智能化中扮演着极其重要的角色。从应用领域看,单片机主要用于控制,所以也称它为微控制器。

目前计算机硬件技术向巨型化、微型化和单片化发展。自1975年美国德克萨斯仪器公司第一块单片机芯片TMS-1000问世以来,在短短的20余年间,单片机技术已发展成为计算机技术中一个非常有活力的分支,它有自己的技术特征、规范、发展道路和应用环境。按单片机的生产技术和应用对象,单片机先后经历了4位机、8位机、16位机、32位机几个有代表性的发展阶段[6]。

AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。

AT89S52的主要性能有:

(1)与MCS-51单片机产品兼容; (2)8K字节在系统可编程Flash存储器; (3)1000次擦写周期; (4)全静态操作:0Hz~33Hz; (5)三级加密程序存储器; (6)八个中断源;

本科毕业设计说明书(论文)

(7)全双工UART串行通道;

(8)低功耗空闲和掉电模式、掉电后中断可唤醒; (9)看门狗定时器; (10)双数据指针; (11)掉电标识符。

第 9页 共 48页

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止[7]。

AT89S52的引脚如图3.1所示。

图3.1 AT89S52引脚的引脚图

AT89S52的各个引脚的说明如下: VCC:电源电压 GND:接地

P0口:P0口是一个8位漏极开路的双向I/O口,即地址/数据总线复用口。作为输出口时,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种

本科毕业设计说明书(论文)

校验时,输出指令字节。程序校验时,需要外部上拉电阻。

第 10页 共 48页

模式下,P0具有内部上拉电阻,在flash编程时,P0口也用来接收指令字节;在程序

P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表3.1所示[8]。

在flash编程和校验时,P1口接收低8位地址字节。

表3.1 引脚号第二功能

引脚 P1.0 P1.1 P1.5 P1.6 P1.7

第二功能

T2(定时器/计数器T2的外部计数输入),时钟输出 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

MOSI(在系统编程用) MISO(在系统编程用) SCK(在系统编程用)

P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR,A)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX @R1,A)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4 个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。

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

Top