当前位置:文档之家› 基于单片机的数字万年历设计说明

基于单片机的数字万年历设计说明

基于单片机的数字万年历设计说明
基于单片机的数字万年历设计说明

论文题目:

基于单片机的数字万年历设计

完成日期:

指导教师签字:

答辩小组成员签字:

摘要

现代工业革命代表性特征就是计算机产品出现和应用,而随着计算机技术的不断深入创新和发展,基于计算机核心技术思维模式的电子类产品,已经逐步作为人类社会生活的密不可分的重要组成部分,较为典型代表就是:有效记录时间电子类产品。本次毕业设计选题定为:基于单片机的数字万年历设计,选择AT89S52作为数字万年历的核心控制处理器,系统以串行DS1302芯片记录日历时间,AT89S52作为数字万年历的核心控制处理器,可以进行闰年补偿并且可以进行精确的计,本文所设计数字万年历的,能够满足用户对于温度的检测功能,芯片上选择具有应用广泛和功能强大的芯片,同时选择具有较强抗干扰能力的液晶显示板,作为数字万年历的用户交互界面。这种万年历具有数据读取十分方便、功能丰富、电路看起来十分的简单明了并且制作成本并不是太高等各方面的优点。因此,会有十分良好的市场前景。它可通过设计一个基于单片机的数字万年历的设计,有效解决了现在现有的产品中存在的问题,因此在推向市场的时候会具有很好的应用价值。

关键词:单片机;万年历;AT89S52;DS1302;DS18B20;

ABSTRACT

Modern Industrial Revolution represents the characteristic is the computer products and applications, and along with the computer technology the deepening of innovation and development, based on computer the thinking patterns of the core technology of electronic products has gradually as inseparable and important component of human social life, the typical representative is: effective recording time electronics products. The graduation design topic is: Design of digital calendar based on MCU, using AT89S52 as the core of digital calendar control processor system with serial chip DS1302 calendar to record time AT89S52 as the core of digital calendar control processor can leap year compensation and accurate. In this paper, the design digital calendar, can meet the user for temperature detection function, chip selection is widely used and powerful chip, and a liquid crystal display panel having strong anti-interference ability, as the interface of the digital calendar. This calendar with data read is very convenient, feature rich, the circuit looks very simple and the manufacturing cost is not too high and the advantages. Therefore, there will be a very good market prospects. It can be through the design of a design based on single chip digital calendar, an effective solution to the problems existing in the existing product. Therefore, in pushing the market has a good application value.

Key Words:SCM;calendar; DS1302;DS18B20;

目录

1前言 (2)

1.1课题背景及研究的意义 (2)

1.2 解决的问题及主要内容 (3)

2系统的方案设计与论证 (5)

2.1单片机芯片设计与论证..................... 错误!未定义书签。

2.2按键控制模块设计与论证 (7)

2.3时钟模块设计与论证 (7)

2.4温度采集模块设计与论证 (7)

2.5显示模块模块设计与论证 (8)

3 硬件设计 (9)

3.1单片机最小系统 (9)

3.2 时钟芯片电路 (11)

3.3 DS18B20电路 (13)

3.4 显示电路 (16)

3.5 按键模块设计 (16)

4软件设计及仿真 (17)

4.1主程序流程图的设计 (17)

4.2仿真 (18)

致谢 (19)

参考文献 (21)

附录一:原理图 (22)

附录二:部分程序 (23)

1前言

时间作为人类生产和生活的重要组成部分,其作用特殊性,已经获得了广泛的熟知和认可,人类历史文明发展的长河中,对于时间测量和计算有着很多种方式,例如中国的日晷和西方的沙漏。而随着工业革命影响人类生活进程的不断延伸和发展,科技与测量和记录时间的方式,获得进一步融合,造成人们对于时间的感知方式,也在不间断发生着变化,这也就经历了一个从最初观察太阳确定时间发展,到通过人类发展的科技工业产品来确定和记录时间过程,在这一历程中人类不断的研究和创造一个又一个奇迹。工业革命的一个重要表现形式,就是智能化控制器取代传统的机械和继电器控制模式,而单片机作为工业时代智能控制器的典型代表,已经逐步开走进家家户户,来到我们身边。随着现代科学技术的飞速发展,基于单片机的应用技术,在整个国民生产经济领域中,表现出前所未有的适用性和较高的广泛度,单片机以其占用空间少,功能种类丰富等优点,被应用到工业化进程的各个领域,主要应用范围是智能化医疗设备、功能需要化的家居用品、迈向和探索太空的航天领域、汽车可靠性被动安全的气囊保护、办公自动化等。同时,基于以单片机为核心控制器的各种应用控制系统开发,已经是有关专业的技术人员必须掌握的应用技术。单片机的芯片占用空间小并且制造成本不高,可以随意的应用到家用仪表,机器系统,汽车仪器等的各种人们日常的产品制造之中。基于单片机应用技术的常用的家庭数字万年历也就因此而出现在我们的日常生活之中。这种万年历的设计是将把这些技术融合在一起,并且拓展出更多的功能。

1.1课题背景及研究的意义

现代工业革命代表性特征就是计算机产品出现和应用,而随着计算机技术的不断深入创新和发展,基于计算机核心技术思维模式的电子类产品,已经逐步作为人类社会生活的密不可分的重要组成部分,较为典型代表就是:有效记录时间的电子类产品。

这类电子类产品的一个共性,就是可靠性、稳定性和性价比高,同时,又具备多方面电子类产品设计的基础性知识和其他学科融合的特点,能够较好检查大学生,在整个大学学习生命周期的成果,基于上述两个方面的考虑,本次毕业设计选题定为:基于单片机的数字万年历设计。STC51系列单片机,应用上具有较为明显智能化可编程、通用性和扩展性,AT89S52是STC51系列单片机中比较典型的应用控制芯片,因此本文选择:AT89S52作为数字万年历的核心控制处理器,系统以串行DS1302芯片记录日历时间,AT89S52作为数字万年历的核心控制处理器,可以进行闰年补偿并且可以进行精确的计,本文所设计的数字万年历的,能够满足用户对于温度的检测功能,芯片上选择具有应用广泛和功能强大的DS1202芯片,同时选择了具有较强抗干扰能力的液晶显示板1602A,作为数字万年历的用户交互界面。本文设计的数字万年历,可以通过万年历上的数字观察到从年往下的各个等级的精确的时间。并且同时还具有十分精确的校准时间的功能。以功能消耗小和性价比较高的AT89S52单片机做电路核心控制部件,可以有效的降低整体系统运行的能量,为用户节约能源,所以可以选择低压进行供电。本文所设计的数字万年历具有数据读取十分方便、功能丰富、电路看起来十分的简单明,并且制作成本并不高等各方面的优点,综上所述,本文选择基于AT89S52单片机的数字万年历作为毕业设计的题目,主要意义具有两个方面,一是,对于个人能力全面发展角度,能够较为有效的进行,检查和提升大学所学基本方法、基本理论和基础实验动手能力,为进一步踏入社会和工作,提供一定的实践经验积累;二是,产生社会生产价值方面,本文所设计的基于AT89S52单片机的数字万年历,有效解决现在现有固有产品中所存在的问题,例如:产品功能单一,在推向市场的时候会具有很好的应用价值。

1.2 课题主要研究内容

大学毕业设计主要目的和原则,就是检查学生在整个大学学习过程,理论和实践相互融合的能力,而单片机作为现代工业应用领域的一个主要控制部件,已经作为社会经济发展工业设计方面应用的主流,因此,本课题所研究的电子万年历是单片机控制技术一个具体应用,具有较强的体现出理论和实际的融合,本文主要研究内容包括包括以下几个方面:

1、系统方案的设计和论证。这确定设计题目后,一个突出问题就是,在确定完

成数字万年历设计基本内容后,如何更好的实现各个功能紧密配合和协同,这就需要对于数字万年历的系统方案进行设计和论证。主要集中在以下内容:一是、核心控制部件的设计和选型,二是、按键模块设计和选型,三是、时钟模块设计与论证,四是、温度采集模块设计与论证,五是、显示模块设计与论证;

2、AT89S52单片机的数字万年历的硬件电路设计,主要包括的内容如下,一是、关于数字万年历的最小系统设计,二是、时钟芯片电路,三、DS18B20电路设计,四是、显示电路设计,五是,案件模块设计。

3、数字万年历AT89S52核心单片机控制的各项功能是在程序控制下实现的,该系统软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强程序的可移植性。主要包括:主程序流程图的设计和实验仿真,实验结果表明,本文设计的数字万年历,能够满足用户实际需求和相关功能。

2系统的方案设计与论证

通过上述对课题背景和意义研究,可以知道基于单片机的数字万年历设计,具有较强理论和实践意义。这确定设计题目后,一个突出问题就是,在确定完成数字万年历设计基本内容后,如何更好的实现各个功能紧密配合和协同,这就需要对于数字万年历的系统方案进行设计和论证。目前,国内外对于基于单片机电子万年历的设计和程序完成方法较多,能够选择的控制芯片和技术较为丰富,所以如何以用户需求为出发点,确实做到满足所需要功能的设计前提下,要尽可能选用成本较低、功能稳定性高、参数设计匹配合理方案,成为本次毕业设计能否成功的关键问题。本文,基于用户需求,以及能够更好的应用本科阶段所学知识和方法角度,将基于单片机的数字万年历划分为6个基础功能模块,通过单片机进行6个功能模块的信息识别、分析、处理和协同,主要分为为系统提供稳定电源的电源模块,提高准确时间序列的时钟模块、用户交互显示模块和信息输入的键盘模块、数字万年历的拓展功能温度检测模块和提示时间的闹钟模块,基于单片机的数字万年历系统框架如图2.1所示。

图2.1 数字万年历系统框架 AT89S52电源模块温度模块独立按键时钟模块显示模块闹钟模块

1.2核心控制部件选择

基于单片机的数字万年历设计过程中,如何保证系统具有较高的稳定性、可靠性和扩展性,完成系统各个功能的优化协调,主要的关键问题就是系统核心控制功能部件的选型,本文通过查询相关的国内外关于电子万年历设计的相关资料,比较各个系列的单片机决定选择,TI德州STC51系列单片机,而该系列单片机种类和功较多,因此对于该类型单片机应用较为广阔的两类单片机进行比较,比较的相关内容如下:方案一: ,

TI德州STC51系列单片机的AT89C51,该型号单片机在作为数字电子万年历核心控制功能部件的主要参数如下,AT89C51具有,数据闪存的FLASH ROM,内部自带固有的内部存储空间为:4KB ROM,基本工作的电源电压为3V,能够与传统类的MCS51

-

进行系统外的程序和硬件兼容,但是唯一的一个不足就是,在程序编写和调试过程中,不能够提供基于ISP的在线编程模式,这也就造成在编写和调试程序过程中,需要多次进行程序的下载,这也可能在程序的编写过程中,对于芯片进行一定的损坏,为硬件设计带来不必要的麻烦,

方案二:

TI德州STC51系列单片机的AT89C52采用AT89S52芯片作为硬件核心, 型号单片机在作为数字电子万年历核心控制功能部件的主要参数如下,数据闪存的FLASH ROM,内部自带固有的内部存储空间为:8KB ROM,基本工作的电源电压为3V,能够与传统类的MCS51

-进行系统外的程序和硬件兼容。能够提供基于ISP的在线编程模式,这也就造成在编写和调试程序过程中,不需要多次进行程序的下载,这也可能在程序的编写过程中,减少对于芯片的损坏,为硬件设计带来一定的方便。

TI德州STC51系列单片机的AT89C52和AT89C51,都能够在较为低功耗条件下作,为用户提供较好的能耗管理,并且两者都能够与传统的单片机MCS51

-,进行兼容,这就是所说,我们在编写数字万年历程序的过程中,可以有效的借鉴传统的单片机MCS51

-硬件和软件设计的案例。两者的主要区别在于以下两个方面,一是,两者

内部自带固有的内部存储空间不同,以及能够进行ISP的在线编程模式,基于上述两

种方案的分析,最终决定选用AT89C52作为数字万年历的核心控制部件。

1.3按键控制模块设计与论证

基于单片机的数字万年历设计过程中,键盘是用户和数字万年历交互的主要功能部件,如何能够更加便捷、可靠的完成交互动作,直接关系到单片机数字万年历设计的质量效果,按键控制模块有两种设计方案,一种是用CPU不断进行端口扫描的矩阵键盘,另一种是独立按键。第一种设计可以直接键入数值,第二种可以极大地节省CPU的资源,由于系统中的按键不多,为了使操作更加的简单最终选用第二种的独立按键的设计方案。

1.4时钟模块设计与论证

基于单片机的数字万年历设计过程中,时钟模块的选择和设计,直接关系到核心控制单元的信息识别、分析和处理,也是保证系统与功能模块之间协调、和模块与模块之间协同的关键点。通常在设计单片机数字万年历,在时钟模块的设计与论证时钟模块的设计与论证主要有两种方法:一是,直接使用单片机核心控制器,进行秒信号的提供使程序精确实现时间计算,二是,使用具有闰年补偿并且可以自动进行计数的DS1302单片机芯片实现时钟的计时功能。采用第一种方法时只需要使用少量的芯片,可以使万年历的制作成本大大的降低,但是这种计时方法与实际时间对比存在比较大的误差,而具有闰年补偿功能的DS1302单片机芯片对时间的计算十分的精确,根据系统时新功能时所需要最终选择使用DS1302时钟芯片。

1.5温度采集模块设计与论证

基于单片机的数字万年历设计过程中,温度采集作为本次基于单片机数字万年历的一个拓展功能模块,其有效性直接能够影响产品设计的质量和用户体验度,如何能够

获得较为准确的温度采集信息,是该模块选型的关键点。进行计时温度采集模块设计与论证温度采集模块硬件有AD590或热敏电阻和DS18B20数字式温度传感器两种硬件进行选择,其中第一种硬件精度很高,但是设计电路十分的麻烦并且制造成本高,而第二种硬件虽然准确度并不是十分的高但是可以直观地看到被测量温度的数值,并且设计电路简单使用的模块,将会直接降低单片机数字万年历成本。根据数字万年历需要实现的主要功能及制作成本等多方面的比较,最终决定使用DS18B20数字式温度传感器。

1.6显示模块模块设计与论证

基于单片机的数字万年历设计过程中,显示功能模块是人机交互的又一重要问题,主要体现在,数字万年历在进行时间信息的分析和处理,最后,传递给用户的信息,需要有效显示在屏幕上,因此,如何能够有效提升用户的感知度和满意度,是显示模块设计关键问题。显示模块模块设计与论证显示模块的设计与论证共有三种方法,第一种是采用比较多的位移寄存器件,这种显示方法是静态的,它虽然只需要两根线进行不占用端口的输出,但是其硬件消耗的功率相比较而言十分大且制作十分的复杂,因而不采用静态的显示方法。第二种是使用占用空间和功率消耗都比较小的动态的显示方法,这种显示方法需要使用单片机芯片上的14个端口,它的硬件很容易制作并且成本相对较低占用的空间也比较小。而第三种方法是用LED液晶显示屏进行显示的方法,这种方法除了亮度不够的缺点之外它的硬件制作成本很低,且制作工序十分的简单,而且具有显示的内容丰富但是对功率的消耗很小的优点。在显示模块的设计与论证中系统要求占用空间要小,显示的内容要多,并且由于是超低压供电要求功率的消耗小。经过各方面的综合比较和设计功能所需最终选用LED的显示方法。

3 硬件设计

3.1单片机最小系统

基于单片机的数字万年历设计运行过程中,需要一个强大而稳定的核心控制模块,一般情况下叫做单片机的最小化系统,本文所设计的单片机数字万年历系统核心模块分为以下4个基本单元,即系统的稳定供应电源、提供准确时钟的晶振、复位控制信号和控制程序下载端口,以上四个部分协调作用,从而构成数字万年历系统稳定运行工作平台。同时需要强调的是,本系统设计过程中不仅可以使系统在运行过程中,具有复位功能,也提供一个指位操作,即数字万年历系统非工作状态下系统发出指令为空,而希望系统运行在某一状态下,例如选择闹钟功能,即要操作一个位置功能按键。单片机的数字万年历的最小系统如图3.1所示。本系统用的MCU系统用的为AT公司新出品的S系列的单片机,S系列的单片机相比以前C系列的其中一个优点是S系列能够在线编程(ISP),在没有仿真器和编程器的情况下仍然可以进行系统调试和升级固件,单片机的最小系统是由电源、复位、晶振、/EA=1组成。下面介绍一下时钟电路和复位电路。

图3.1 数字万年历最小系统

(1)时钟电路:

数字万年历AT89C52核心单片机的控制系统,需要一个准确的统一化时钟,这主要是为了保证整个系统的时序规则性,也可以说是我们工业用控制计算机的时钟显示,而AT89C52核心单片机运行过程中,需要一个时钟定时电路,为整个系统提供时序上的驱动,更形象理解为整个万年历系统的心脏部分。XTAL1和XTAL2分别是单片机的内部震荡器的输入端和输出端,如果利用的是外部振荡器,我们就把外部振荡信号加到XTAL1,让XTAL2处于悬空状态。如果时钟电路采用的是内部方式的话,那么时钟发生器对振荡脉冲是二分频如晶振为12MHz,时钟频率就为6MHz。单片机的晶振频率数值只需要处于1至24MHZ之间即可正常使用。如上图所示我电容取30PF。

图3.2 数字万年历最小系统时钟电路

(2)单片机复位电路: AT89C52核心单片机数字万年历的控制系统,为了有效保障系统的初始化可控性以及发生过程中,能够实现设定参数的默认性返回,本文设计

AT89C52核心单片机复位电路模块,通常情况下,单片机的数字万年历控制系统只有在启动过程中,复位电路才工作,但是当系统在正常运行过程中,为人的触发复位电路开关键,系统也将会返回到初始化状态,AT89C52核心单片机复位电路模块的执行原理是有一个具有储能和放能的电容完成,当复位按钮在触发状态下,控制电容电路的导线将会自动化的断开,从而使电容电路处于短路状态,并将储存的相应电能获得释放,传导引发复位电路中电阻两端电压的变化,本文在此单片机复位电路中引入了一个具有延时功能效果的电容及一个具有信号放大功能的二极管,实验的结果表明可以近一步提高AT89C52核心单片机复位电路模块的稳定性能。单片机的数字万年历AT89C52核心单片机正常运行的时候,如果该管脚上有超过两个机器周期时间的高位电平时,那么单片机就会被回复到原来的位置,单片机就会重新的启动。把内部的程序指针置于开始位置。单片机复位的时候P0-P3口均会被重新置1,也就是说这些引脚的电平都是高电平,单片机内部的计数器和寄存器等,也都会自同一时间全部的回复到原来的位置成为零。在是单片机复位的高电平消失转变为低电平时,其内部的ROM会从00H处重新进行运行。由单片机的复位电路采样一次。单片机对内部电路进行复位时一般常见的有两种复位方式,一种是通过是供应电流是单片机自动的进行复位的方式,另一种是通过人工按下复位键进行复位的方式,在这次设计的电路中我们所使用的复位方式是通过给其供应电流使其自动回复运维的复位方式。复位操作不会对内部RAM有所影响。常用的数字万年历最小系统复位电路如图3.3所示。

图3.3 数字万年历最小系统复位电路

3.2 时钟芯片电路

AT89C52核心单片机数字万年历的控制系统运行过程中,选择具有闰年补偿功能的DS1302单片机芯片对时间的计算十分的精确,根据系统时新功能时所需要最终选择使用DS1302时钟芯片如图3.3为DS1302的接口电路,图中的Vcc1是DS1302新品接口电路的备用电源,Vcc2是图中DS1302芯片双电源供电系统中的主电源,如果使用图中所示的运行方式,那么当Vcc2这个主用电源出现故障无 法工作的时候Vcc1这个备用的电源就可以给系统进行运行供电,这种情况下就能够在注定不愿停止工作的情况下及时的保 存好芯片系统中的信息和有用的数据等。

图3.4 数字万年历时钟芯片电路

DS1302数字万年历时钟芯片定时过程的供电原则是,选取Vcc1和Vcc2大者供电, 即当cc1cc2V V >,cc1V 为数字万年历时钟芯片DS1302提供电源,当cc2cc1V V >,cc2V 为数字万年历时钟芯片DS1302提供电源。数字万年历时钟芯片DS1302,在进行工作之前所前所有的程序都进行初始化处理,然后在进行给与SCLK 脉冲信号的操作;读/写 时序

如下图

3.5所示。表3.1为DS1302的操作数据表格,芯片读取的单元操作地址为1~5

位,0位是数字万年历时钟芯片DS1302读取选择项,即当该位指1情况下,DS1302继续读操作。进行写操作时,该位为0。从最低位对系统芯片的控制字节进行输入和输出。表-2为DS1302的日历、时间寄存器内容:如表中所示的那样,标志时钟暂停的位是“CH”,如果时钟振荡器是暂停不懂得状态,那么该位显示的是1。数字万年历时钟芯片DS1302处于、一种功率消耗十分小的运行模式;例如当寄存位地址设置为0时,数字万年历时钟芯片,开始进行计时操作,列表中的WR是数字万年历时钟芯片写保护操作,只有它为0的时候,才可以对时钟里的芯片进行写操作,如果该位显示是1的时候,那么此时无法对任何的寄存器进行写操作。

表3.1数字万年历时钟芯片DS1302控制模式

1 RAM/

CK A4 A3 A2 A1 A0 RD/WR

DS1302数字万年历时钟芯片的时序控制如图3.5所示,当芯片读取控制指令发送后,需要在一个时间SCLK的上升边沿到来时,控制数据将会直接写入到数字万年历时钟芯片DS1302之中,数据的写入模式是从0~7为开始,同样的原理,当一个时间SCLK 的下降边沿到来时,数据的读取模式是从0~7为开。

图3.5 数字万年历时钟芯片电路时序图

DS1302数字万年历时钟芯片共计有12个相关寄存器,12个寄存器分配的原则是7个寄存器与相关的日历和时间有关,存储的模式为BCD码,对应的DS1302数字万年历时钟芯片寄存器如表3.2所示。

表3.2数字万年历时钟芯片DS1302寄存器分配

写寄存器

读寄存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 80H

81H CH 10秒 秒 82H

83H 10分 分 84H

85H 12/24—— 0 10 时 时 AM ——/PM 86H

87H 0 0 10 日 日 88H

89H 0 0 0 10月 月 8AH

8BH 0 0 0 0 0 星期 8CH

8DH 10年

年 8EH 8FH WP 0 0

0 0 0 0 0 3.2 DS18B20电路

单片机的数字万年历控制系统运行过程中,温度检测的准确性是保证系统稳定运行的基础和保障,也是整个系统质量的一个主要评价因素, 温度采集作为本次基于单片机数字万年历重要扩展功能,本次毕业设计选取DS 18B20,DS 18B20数字万年历温度检测芯片是一个3管脚的集成体封装模式,该芯片的逻辑电路结构框图,如图3.6所示。DS 18B20数字万年历温度检测芯片的内部闪存如表3.3所示。

表3.3数字万年历时钟芯片DS 18B20寄存器分配

8b CRC 检验 48b 序列号 8b 10H 工厂代码() MSB LSB MSB LSB

MSB LSB

图3.6 数字万年历温度DS18B20检测电路图

DS18B20数字万年历温度检测芯片,是一个完成的9位编码模式,高低温度警示标志位为:TH TL

和。通过一系列的编程是用户根据实际情况去进行代码的设计和使用。DS18B20数字万年历温度检测芯片,具有一个高速数据内存暂缓RAM,其主要的应用功能是将系统外部,所采集的温度信息,转化为单片机的数字万年最小核心控制系统所

和是选择,DS18B20数能识别的信息,每一个字的功能说明如表3.4所示,其中R1R0

字万年历温度检测芯片精度,也就是温度的分辨率,初始化温度分辨率是12。对应的设置标准如表3.5所示。

表3.4 DS18B20数字万年历温度检测芯片寄存功能位

TM R1R011111

表3.5 DS18B20数字万年历温度检测芯片温度分辨率

R1R0分辨率/ms

分辨率温度最大转换时间

009位93.75

0110位187.5

1011位275.00

1112位750.00

DS18B20数字万年历温度检测过程中,我们都知道外界温度的变化是一个系统性逐步变化,并且易于受到外界其他未知因素的干扰,因此在温度识别过程中,温度信号的传播具有明显波动性,这就需要对于DS18B20数字万年历温度检,进行一定的温度功能性补偿,我们可以通过对应的芯片程序设置,以此判断在温度传递过程中,是否出现对应的误差。数字万年历AT89C52核心单片机的控制系统,通过相关温度集采信号指令,

可以对DS18B20数字万年历温度芯片进行读取控制,DS18B20数字万年历温度芯片将外部采集的相关数据,直接进行温度相关转换,AT89C52核心单片机可以直接读取相关温度数据,其数据格式如下:

3

22221202-12-22-32-4

MSB LSB

S S S S S 262524

MSB LSB 数字万年历AT89C52核心单片机的控制系统与DS18B20温度检测系统交互过程中,当温度读取完成后,希望将温度的信息直接转换成10进制,以供温度的外部显示用,而在这一程序运行过程中转换具有一定困难,主要体现在当所检测的温度值为正时,数据信息保存为原码,而相反如果所采集的外部环境信息为负值,这数据的形式为补码,在数字万年历AT89C52核心单片机的控制系进行数据分析过程中,需要将补码转换成原码,为了更好的处理该问题,本文设计了对应的相关子子程序,该程序可以直接调用,如表3.6所示。

表3.6 温度部分显示转换码

温度℃二进制表示十六进制表示

/

+000001110100000007D0H

125

000000000000000000000H

-111111111000011110191H

0.5

数字万年历AT89C52核心单片机的控制系与DS18B20温度检测系统交互过程中,DS18B20温度检测电路具有自动检测温度高低的功能,这样可以有效降低数字万年历AT89C52核心单片机运行效能。例如:当T>TH时,DS18B20温度检测系统,将会直接将报警信息发送到,数字万年历核心控制单元中,。数字万年历AT89C52核心单片机的控制系与DS18B20温度检测链接接口如图3.7所示。

DS18B20与单片机的接口电路如下图所示:

图3.7 数字万年历温度DS18B20检测电路接口图

3.4 显示电路

数字万年历AT89C52核心单片机的控制系统运行系统过程中,需要通过锁地址缓存芯片74LS373对核心控制单片机单元AT89C52的输出信息进行保存、分析和处理,并由ULN2003,实现数字万年历控制模式信息的选择性输出,从而为用户所提供所需要的时钟显示,这样做的目的主要是在于便捷式操作,更好的实现控制系统一定范围内的调节。目前,数字万年历一般选取的是一种简单的2极管8位显示码,但是这种模式下,将会需要大量占用数字万年历AT89C52核心单片机的控制系统的I/O口,因此文本直接选择了性价比较高的液晶屏,作为数字万年历的显示端口。

3.5 数字万年历的键盘模块设计

为满足用户对于数字万年的个性化需求和设置,即按照自己主观意愿,进行数字万年历的功能选择和控制,数字万年需要设计外部影响输入装置,一般情况下,选择机械式的键盘较为合理,主要的原因是考虑数字万年需要际运行可靠性,这里将会产生一个因为机械键盘固有特性所发生的问题,即机械弹性所引发的响应时间,可以这样说,即所期望的按键时间与系统反应时间存在一定的差异性,不能对实际控制系统进行即时性响应。经过系统的实验性统计后发现,机械键盘一般的反应所产生的间隔时间为:5-10ms,而这个时间对于自动化数字万年历的响应动作时间较为重要,因此本文设计了消除键盘时间响应间隔的模块,选择了软件消除方法,主要工作原理是,当自动化数字万年历,检测到硬件键盘按键后,还有等待一段时间后执行操作程序,一般设置为5-10ms 的延时,如果按键处于一直常闭和状态,则确定按键按下,同时在确定按下键盘后,进

行键盘释放,这同样需要一个5-10ms的延时程序,可以认为直到电路的后沿状态消失后,系统将会转向执行主控制程序。系统中一共有五个可以操作的按键,这些按键中一个是用来人工操作进行系统复位的,其余四个则是使用的单个的按键,这种设计方法,操作简单,可以极大地减少系统CPU的使用,其中1个按键为系统复位按键,其他4个按键直接对应了,数字万年历AT89C52核心单片机的控制系统的4个基本功能,即设置、上、下和停止开始,数字万年历按键电路接口如图3.7所示。

图3.8 数字万年历按键接口图

4 软件设计及仿真

数字万年历AT89C52核心单片机控制的各项功能是在程序控制下实现的,该系统软件设计方法与硬件设计相对应,按整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强程序的可移植性。同时,数字万年历控制运行系统过程中,软件是控制行为实现编写者,是实现具体功能操作者,其实其设计合理性和可靠性,将会直接影响自动化数字万年历整体性能,

4.1数字万年历主程序框图

单片机万年历C语言程序完整

#include #include //#include "LCD1602.h" //#include "DS1302.h" #define uint unsigned int #define uchar unsigned char sbit DS1302_CLK = P1^7; //实时时钟时钟线引脚 sbit DS1302_IO = P1^6; //实时时钟数据线引脚 sbit DS1302_RST = P1^5; //实时时钟复位线引脚 sbit ACC0 = ACC^0; sbit ACC7 = ACC^7; char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; //秒,分,时到日,月,年位闪的计数 sbit Set = P2^0; //模式切换键 sbit Up = P2^1; //加法按钮 sbit Down = P2^2; //减法按钮 sbit out = P2^3; //立刻跳出调整模式按钮 sbit DQ = P3^0; char done,count,temp,flag,up_flag,down_flag,t_value; uchar TempBuffer[5],week_value[2]; void show_time(); //液晶显示程序 /***********1602液晶显示部分子程序****************/ //Port Definitions********************************************************** sbit LcdRs = P2^5; sbit LcdRw = P2^6; sbit LcdEn = P2^7; sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口 //内部等待函数************************************************************** unsigned char LCD_Wait(void) { LcdRs=0; LcdRw=1; _nop_(); LcdEn=1; _nop_(); LcdEn=0; return DBPort; } //向LCD写入命令或数据************************************** #define LCD_COMMAND 0 // Command

单片机万年历文献综述

基于单片机的时间核设计文献综述 专业:电子信息工程班级:***班作者:*** 指导老师:*** 1、前言 从古至今,时间一直是个被学者文人们所探索的永恒话题。郭沫若先生曾说:时间就是生命,时间就是速度,时间就是力量。马克·吐温曾说:生命是由时间组成的。时间就像生命一样宝贵,在我们的日常工作、学习、生活中,时间概念也愈来发挥着重要作用。在高度发达信息化的21世纪,人们总是那么忙碌。生活工作中班车要准点,上班要准时,开会要有时间限制;工业生产中,每一道工序都要有严格的时间限制,这样才能做到井井有条;严谨的科技研究中,时间更是重中之重。能够准确的了解并且实时性的知道时间,是我们学习、工作、生活中不可缺少的。时间是人们生活中不可缺少的重要伴侣,如果没有时间的概念,社会将停滞不前。 为了描述时间,许多计时仪器就此诞生。从古代的圭表、水漏,漏水水转浑天仪,到后来的机械钟表以及当今的电子钟,都充分显现出了人们对计时仪器的不断改进和创新。机械式钟表虽然也可以告知人们时间,也可以定时,显示日历。但是由于受到机械结构、动力和体积的限制,在功能、性能以及造价上都没办法与电子时钟相比。 随着电子技术产业结构调整,生产工艺的飞速发展,人们生活水平的不断提高,家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。传统的时钟功能单一,已不能适应时代的发展!随着技术的发展,高精度、多功能、小体积、低功耗是现代时钟发展的趋势。本人所述智能时间核心控制系统主要指具有时钟显示、万年历显示(阴历和阳历)、时间设置、闹铃及温度显示等功能的基于单片机设计而成的控制系统,具有非常现实的意义。 2、基于单片机的时间核 为此设计,我复习以前学习过的很多课程,查阅的好多数据库和网络图书馆,如:中国学术期刊数据库,中文科技期刊数据库,万方数字化期刊,独秀知识库文献,超星数字图书馆,中国标准服务网等。也在图书馆查阅了很多相关的书籍。 我主要通过标题与年期进行检索,还加上一些简单的检索式进行筛选文献。此外,

基于51单片机的万年历的设计

单片机课程实训SCM PRACTICAL TRAINING

目录 第一部分课程设计任务书 (1) 一、课程设计题目 (1) 二、课程设计时间 (1) 三、实训提交方式 (1) 四、设计要求 (1) 第二部分课程设计报告 (2) 一、单片机发展概况 (2) 二、MCS-51单片机系统简介 (2) 三、设计思想 (3) 四、硬件电路设计 (3) 1. 总体设计 (3) 2. 晶振电路 (4) 3. 复位电路 (4) 4. DS1302时钟电路 (5) 5. 温度采集系统电路 (5) 6. 按键调整电路 (6) 7. 闹钟提示电路 (6) 五、软件设计框图 (7) 六、程序源代码 (8) 1. 主程序 (8) 2. 温度控制程序 (11) 3. 日历设置程序 (13) 4. 时钟控制程序 (18) 5. 显示设置程序 (20) 七、结束语 (23) 八、课程设计小组分工 (23) 九、参考文献 (23)

第一部分课程设计任务书 一、课程设计题目 用中小规模集成芯片设计制作万年历。 二、课程设计时间 五天 三、实训提交方式 提交实训设计报告电子版与纸质版 四、设计要求 (1)显示年、月、日、时、分、秒和星期,并有相应的农历显示。(2)可通过键盘自动调整时间。 (3)具有闹钟功能。 (4)能够显示环境温度,误差小于±1℃ (5)计时精度:月误差小于20秒。

第二部分课程设计报告 一、单片机发展概况 单片机诞生于20世纪70年代末,它的发展史大致可分为三个阶段: 第一阶段(1976-1978):初级单片机微处理阶段。该时期的单片机具有 8 位CPU,并行 I/O 端口、8 位时序同步计数器,寻址范围 4KB,但是没有串行口。 第二阶段(1978-1982):高性能单片机微机处理阶段,该时期的单片机具有I/O 串行端口,有多级中断处理系统,15 位时序同步技术器,RAM、ROM 容量加大,寻址范围可达 64KB。 第三阶段(1982-至今)位单片机微处理改良型及 16 位单片机微处理阶段民用电子产品、计算机系统中的部件控制器、智能仪器仪表、工业测控、网络与通信的职能接口、军工领域、办公自动化、集散控制系统、并行多机处理系统和局域网络系统。 二、MCS-51单片机系统简介 MCS-51系列单片机产品都是以Intel公司最早的典型产品8051为核心构成的。MCS-51单片机由CPU 、RAM 、ROM 、I/O接口、定时器/计数器、中断系统、内部总线等部件组成。8051单片机的基本性能有: ◆8位CPU; ◆布尔代数处理器,具有位寻址能力; ◆128B内部RAM,21个专用寄存器; ◆4KB内部掩膜ROM; ◆2个16位可编程二进制加1定时器/计数器; ◆32个(4×8位)双向可独立寻址的I/O口; ◆1个全双工UART(异步串行通信口); ◆5个中断源,两级中断结构; ◆片内振荡器及时钟电路,晶振频率为1.2MHz~12MHz; ◆外部程序/数据存储器寻址空间均为64KB; ◆111条指令,大部分为单字节指令; ◆单一+5V电源供电,双列直插40引脚DIP封装。

单片机_文献综述

XX大学 本科毕业设计(论文)文献综述 课题名称: 学院(系): 年级专业: 学生姓名: 指导教师: 完成日期:

一、课题国内外现状 当今社会,应用单片机的产品已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的足迹。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等,这些都离不开单片机。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的工程师和科学家。科技越发达,智能化的东西就越多。学习单片机是社会发展的必然需求,也是大学期间的必修课。 在国内单片机学习呈上升趋势,但是很多人学习时没有头绪,不知道从何下手。面对种类繁多的各类开发板,仿真器,让初学者无所事从,不但多花钱还多走不少弯路,学生学习单片机没有大的资金投入,能够做到少花钱多办事才是最好的。 Intel8051系列是我们在大学课堂中学习的。因此本课题围绕8051系列单片机设计,从电路图绘制,PCB板设计,硬件焊接,程序设计,在线仿真到各项功能实现,目的在于让学生将课堂上学来的理论知识与实践相结合,提高对单片机的认识,学习专业软件的操作,熟悉制作过程,掌握一门技能,加强专业知识的掌握。也增加学生的实践经历,为学生就业提供一个可选方向,拓展就业渠道。 二、研究主要成果 在目前的国内外市场中,主要单片机学习教学电路中,仿真器与开发板是分开的,且仿真器造价高,使用中仿真头易损坏。开发板种类多,不系统,应用中两者接合投资太高,学校投入太大。因仿真器与学习板是分开的,学生学习东西也少,板子做完后,学生只能留有学习板,想在课余再学习,终究因没有仿真器而受限止,实用性小,不能达到预期目的。 三、发展趋势 现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。 微型单片化现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片

推荐-基于51单片机控制的语音报时万年历课程设计1 精品

基于51单片机控制的语音报时万年历 -----20/11/20XX SDU(WH) 一.实验要求 运用单片机及相关外设实现以下功能: 1)万年历及时钟显示 2)时间日期可调 3)可对时间进行整点报时和随机报时 二.方案分析 根据实验要求,选用STC公司的8051系列,STC12C5A16S2增强型51单片机。此单片机功能强大,具有片内EEPROM、1T分频系数、片内ADC转换器等较为实用功能,故选用此款。 实验中,对日期和时间进行显示,显示的字符数较多,故选用12864LCD屏幕。该屏幕操作较为便捷,外围电路相对简单,实用性较强。 为了实现要求中的时间日期可调,故按键是不可缺少的,所以使用了较多的按键。一方面,单片机的I/O口较为充足;另一方面,按键较多,选择的余地较大,方便编程控制。 实验中,并未要求对时间和日期进行保存和掉电续运行,所以并未添加EEPROM和DS12C887-RTC芯片。实际上,对万年历来说,这是较为重要的,但为了方便实现和编程的简单,此处并未添加,而是使用单片机的定时器控制时间,精度有差别。且上电默认时间为20XX-01-01 09:00:00 之后需要手动调整为正确时间。 要求中的语音报时功能,这里选用ISD1760芯片的模块来帮助实现。此模块通过软件模拟SPI协议控制。先将所需要的声音片段录入芯片的EEPROM区域,之后读出各段声音的地址段,然后在程序中定义出相应地址予以控制播放哪一声音片段。 三.电路硬件设计 实际效果图 四.程序代码部分

Main.h #ifndef _MAIN_H #define _MAIN_H #include "reg52.h" #include "INTRINS.H" #include "math.h" #include "string.h" #include "key.h" #include "led.h" #include "12864.h" #include "main.h" #include "isd1700.h" #include "sound.h" extern unsigned int count; extern unsigned int key_time[8]; extern unsigned char key_new; extern unsigned char key_old; extern unsigned char stop_flag; extern unsigned char key_follow[8]; extern unsigned int key_num[8]; sbit BEEP=P3^7; sbit ISD_SS=P0^7; sbit ISD_MISO=P0^4; sbit ISD_MOSI=P0^5; sbit ISD_SCLK=P0^6; extern unsigned char date_show[]; extern unsigned char time_show[]; extern unsigned char sec; extern unsigned char min; extern unsigned char hour; extern unsigned char day; extern unsigned char month; extern unsigned char year_f; extern unsigned char year_l; extern unsigned char leap_year_flag;

文献综述(电子类)

养鸡场控制系统设计概述 摘要 在现在日常的价格敏感的消费电子产品中,单片机可以说是具有极强的优势,其中应用最广,并且需求量巨大的当属电子万年历,电子万年历在家庭、学校、车站等方面使用范围越来越广泛,给人们的生活学习工作都都带来了很大的便利,同时也由于电子芯片发展速度迅猛,工艺逐渐成熟,稳定性好,价格便宜,准确度能够满足人们的日常使用,所以正成为我们日常生活中新的消费热点,对于基于单片机控制的电子万年历的研究是有价值的。 本文经过查看多平相关论文之后,寻求到一种最优秀的解决方案,使用ATM89C51单片机作为主控芯片,并且使用美国DALLAS公司开发的时钟芯片DS1302作为时间控制芯片,显示器部分是由HD61202液晶显示控制驱动器和HD61203液晶显示器组成的,通过上面这几个主要部件再加上外围电路的铺设,实现电子万年历的设计,使LCD液晶显示器显示年、月、日、星期、小时、分钟、秒等功能,具有温度测量功能,具备年、月、日、星期、时、分、秒校准功能,同时还具有自动调节闰年功能。我抛弃了以前使用模拟电路的传统方法,采用这种芯片集成的方法,使得整个产品稳定性更高,出错率更低,适应性更广,使用起来更加简便。 关键词:单片机,528电子万年历,ATM89C51,DS1302

引言 从二十世纪到二十一世纪的今天,虽然相对于传统行业这段时间并不长,但是对于电子行业来说已经发生了翻天覆地的变化,根据摩尔定律,每当十年左右电子行业技术生产力将会翻一番,这个预言已经被证实,时钟日历作为计时的重要工具很早以前已经被大家所熟识,自从发明开始一直到现在人们不断地在改造,期待它的准确性和性价比方面的平衡,从早期的人们使用天上的星辰来计算时间,后来用日晷来计算时间,再到后来就逐渐有了钟表,当然那时的钟表准确性和便携性都比较差,随着电子技术的发展,新的解决方案出现了,利用单片机制作的万年历自己可以显示日期又可以显示每天的时间,功能多样化而且准确率比较高,开发成本较低,推广性很好,可以在民众之间进行大范围的推广,人们都有了自己的计时工具,为生活和工作提供了极大的便利。 单片机作为高度集成到微型计算机的一个重要分支,在现在社会中发挥着巨大的作用,随着社会的发展,越来越多的地方需要时间,从火车到站要准点,飞机航班要准点,上班的时候要准时,工业生产的过程中每一道工序都有时间要求,这样的例子不胜枚举,这就要求我们需要比较可靠的时间记录设备,它要有比较高的精度,也要有比较低廉的价格,还要可以适应多种不同情况的场所。单片机责无旁贷地成为了首选,首先它的价格低廉,贵的一般也就是四五块钱一个,便宜的甚至一块钱一个,成本上有无可比拟的优势;其次,单片机的工艺技术已经相当成熟,生产厂家众多,功能也在不断的增加,可以满足人们日常的大部分的需求使用。基于单片机的万年历设计,就是结合以上的优点,再加上广阔的市场需求,所以对于这个问题的探讨是十分迫切及其有必要的。 1 电子万年历核心部件 1.1 微处理芯片AT89C52 AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

单片机课程设计—万年历[1]

郑州轻工业学院 软件学院 单片机与接口技术课程设计总结报告 设计题目:电子万年历 学生姓名: 系别: 专业: 班级: 学号: 指导教师: 2011年12月16日

设计题目: 电子万年历 设计任务与要求: 1、显示年月日时分秒及星期信息 2、具有可调整日期和时间功能 3、增加闰年计算功能 方案比较: 方案一:系统分为主控制器模块、显示模块、按键开关模块,主控制模块采用 AT89C52单片机为控制中心,显示模块采用普通的共阴LED数码管,键输入采用中断实现 功能调整,计时使用AT89C52单片机自带的定时器功能,实现对时间、日期的操作,通 过按键盘开关实现对时间、日期的调整。 方案二:系统分为主控模块、时钟电路模块、按键扫描模块,LCD显示模块,电源 电路、复位电路、晶振电路等模块。主控模块采用AT89C52单片机,按键模块用四个按键,用于调整时间,显示模块采用LCD1602,时钟电路模块采用DS1302时钟芯片实现对 时间、日期的操作。 两个方案工作原理大致相同,只有显示模块和时钟电路不同。LED数码管价格适中,对于数字显示效果较好,而且使用单片机的端口也较少; LCD1602液晶显示屏,显示功 能强大,可以显示大量文字、图形,显示多样性,清晰可见,价格相对LED数码管来说 要昂贵些,但是基于本设计显示的东西较多,若采用LED数码管的话,所需数码管较多,而且不利于控制,因此选择LCD1602作为显示模块。DS1302是一款高性能的实时时钟芯片,以计时准确、接口简单、使用方便、工作电压范围宽和低功耗等优点,得到广泛的 应用,实时时钟有秒、分、时、星期、日、月和年,月小于31天时可以自动调整,并具 有闰年补偿功能,而且在掉电时能够在外部纽扣电池的供电下继续工作。单片机有定时 器的功能,但时间误差较大,且需要编写时钟程序,因此采用DS1302作为时钟电路。 对比以上方案,结合设计技术指标与要求我们选择了方案二进行设计。

51单片机万年历毕业设计论文

专科毕业设计(论文) 题目51单片机电子万年历论文 51单片机电子万年历论文 摘要: 电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。 本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。在编写程序过程中发现

以现有的相关知识要独自完成编写任务困难重重,在老师和同学的帮助下才完成 了程序部分的编写。 万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,LED显示电路,以及调时按键电路等组成。在单片机的选择上本人使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用2片7SEG-MPX8-CA和一片7SEG-MPX4-CA。7SEG-MPX8-CA是一种八个共阳二极管显示器,7SEG-MPX4-CA是一种四个共阳二极管显示器。为了能更轻松的控制这三片显示器,本人使用了3片74HC164来驱动。74HC164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。软件方面主要包括日历程序、时间调整程序,公历转阴历程序,显示程序等。程序采用汇编语言编写,以便更简单地实现调整时间及阴历显示功能。所有程序编写完成后,在wave软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。最后总在老师同学的帮助以及自己的努力下完成了此次电子万年历的设计。 关键词: 时钟电钟;DS1302;DS18B20;动态扫描;单片机 Abstract E-calendar day time is a very wide range of tools, increasingly popular in modern society. It can be year, month, day, Sunday, hours, minutes, seconds for time, but also has a leap year compensation to a variety of functions, and the DS1302's long life, small error. For the digital electronic calendar using an intuitive digital display can simultaneously display year, month, day, Sunday, hours, minutes, seconds, and temperature and other information, but also a time-calibration and other functions. The circuit uses AT89S52 microcontroller as the core, power consumption, low-voltage work in 3V, the voltage can choose 3 ~ 5V voltage supply. The design is based on 51 series of microcontrollers to the design of electronic calendar, you can display date information on when the minutes and seconds, and weeks, with adjustable date and time functions. At the same time in the design of the theoretical basis of the MCU and peripheral expansion of knowledge of the more comprehensive preparation. The hardware and software design, there is no good basic knowledge and practical experience will be greatly limited, each feature is required to achieve the kind of hardware, procedures, how to write, how to implement such algorithms, there is no certain foundation can not be good implementation. Found during the preparation process to the existing knowledge to complete the preparation of the task alone difficult, In the help of teachers and students to complete the program part of the preparation. Calendar of the design process in hardware and software to synchronize the design. Hardware mainly by the AT89C52 microcontroller, LED display circuit, and the tune composed of the circuit when the button. In the SCM choice I used the AT89C52 microcontroller, which is suitable for many of the more complex control applications. Monitor the use of two 7SEG-MPX8-CA and a 7SEG-MPX4-CA. 7SEG-MPX8-CA is a total

基于单片机电子万年历的毕业设计说明

单片机课程设计报告 电子万年历设计 姓名:建强 学号: 专业班级: 08电气(2)班指导老师:吴永 所在学院:科技学院 2011年6月30日

摘要 随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。 综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。 具体实现功能: (1)显示年月日时分秒及星期信息 (2)具有可调整日期和时间功能 (3)与即时时间同步

目录 1方案论证 (3) 1.1单片机芯片的选择方案和论证 (3) 1.2显示模块选择方案和论证 (3) 1.3时钟芯片的选择方案和论证 (4) 1.4电路设计最终方案决定 (4) 2系统的硬件设计与实现 (5) 2.1电路设计框图 (5) 2.2系统硬件概述 (5) 2.3主要单元电路的设计 (5) 2.3.1单片机主控制模块的设计 (5) 2.3.2时钟电路模块的设计 (6) 2.3.3电路原理及说明 (7) 2.3.4显示模块的设计 (8) 3系统的软件设计 (9) 3.1程序流程框图 (9) 4测试与结果分析 (11) 4.1硬件测试 (10) 4.2软件测试 (10) 4.3测试结果分析与结论 (10) 4.3.1 测试结果分析 (10) 4.3.2 测试结论 (10) 5prodeus软件仿真........................................ ..........错误!未定义书签。 5.1Proteus ISIS简介 (12) 5.2Proteus运行流程 (13) 5.3Proteus功能仿真 (13) 6课程设计总结与体会.......................................... .....错误!未定义书签。 参考文献...........................................................错误!未定义书签。 附录一:系统电路图.................................................错误!未定义书签。 附录二:系统程序...................................................错误!未定义书签。

单片机万年历程序..

单片机万年历程序 #include //调用单片机头文件 #define uchar unsigned char //无符号字符型宏定义变量范围0~255 #define uint unsigned int //无符号整型宏定义变量范围0~65535 #include "eeprom52.h" #include "nongli.h" bit flag_200ms ; bit flag_100ms ; sbit beep = P3^7; //蜂鸣器定义 bit flag_beep_en; uint clock_value; //用作闹钟用的 sbit dq = P3^1; //18b20 IO口的定义 uint temperature ; //温度变量 uchar flag_nl; //农历阳历显示标志位 uchar menu_1,menu_2; uchar key_time,flag_value; //用做连加的中间变量 bit key_500ms ; uchar n_nian,n_yue,n_ri; //农历显示的函数

#include "ds1302.h" #include "lcd1602.h" /******************把数据保存到单片机内部eeprom中******************/ void write_eeprom() { SectorErase(0x2000); byte_write(0x2000, fen1); byte_write(0x2001, shi1); byte_write(0x2002, open1); byte_write(0x2058, a_a); } /******************把数据从单片机内部eeprom中读出来*****************/ void read_eeprom() { fen1 = byte_read(0x2000); shi1 = byte_read(0x2001); open1 = byte_read(0x2002); a_a = byte_read(0x2058); } /**************开机自检eeprom初始化*****************/ void init_eeprom() { read_eeprom(); //先读 if(a_a != 1) //新的单片机初始单片机内问eeprom { fen1 = 3;

单片机课程设计报告(万年历)

v .. . .. 目录 一、摘要 (2) 二、设计任务 (4) 三、总体方案设计与论证 (4) 1、液晶显示模块 (4) 2、实时时间计算模块 (5) 3、实时环境温度采集模块 (5) 4、报警模块 (6) 5、设置模块 (6) 四、总体方案组成框图 (7) 五、系统硬件设计 (8) 1、LCD显示模块 (8) 2、实时时间计算模块 (12) 3、实时环境温度检测模块 (16) 4、报警模块 (21) 5、设置模块 (22) 六、系统软件设计 (23) 七、系统硬件电路设计 (24) 八、系统硬件PROTEUS仿真原理图 (25) 九、系统硬件仿真运行情况图 (26) 1、显示欢迎界面 (26) 2、显示实时时间 (26) 3、显示当前温度 (27) 4、时间设置 (27) 5、最高报警温度设置 (28) 6、闹钟时间设置 (28) 7、超温 (29) 8、闹钟时间到 (29) 附录一:实物图 (30) 附录二:PCB图 (32) 附录三:源程序代码 (33) 附录四:参考文献 (62) . . . 资料. .

v .. . .. 摘要 单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片。单片机接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统。将它嵌入到形形色色的应用系统中,就构成了众多产品、设备的智能化核心。本设计就是应用单片机强大的控制功能制作而成的电子万年历,该电子万年历包括三大功能:实时显示年、月、日、时、分、秒;实时监测环境温度(可根据需要启动高温报警功能);电子闹钟。M bn 本设计采用的是AT89S52单片机,该单片机采用的MCU51内核,因此具有很好的兼容性,内部带有8KB的ROM,能够存储大量的程序,最突出特点是具有ISP在系统烧写功能,使得烧写程序更加方便。 计时芯片采用DALLAS公司的涓细充电时钟芯片DS1302,该芯片通过简单的串行通信与单片机进行通信,时钟/日历电路能够实时提供年、月、日、时分、秒信息,采用双电源供电,当外部电源掉电时能够利用后备电池准确计时。 温度检测采用DALLAS公司的数字化温度传感器,该芯片采用的是独特的“一线总线”的方式与单片机进行通信,一线总线独特而且经济的特点,是用户可以轻松的组建传感器网络,为测量系统的构建引入全新的概念。实时温度采用一线总线的方式传输大大的提高了信号的抗干扰性,分辨率可通过软件设置,其小巧的体积为各种环境下测量温度提供了方便。 . . . 资料. .

万年历_开题报告

xxxxx 毕业论文(设计) 开题报告 题目基于年历设计 学院电气工程学院 年级 xxx级 专业电子信息工程 姓名宋飞 学号 2011588693 指导教师欧阳飞 教务处制表 2012年12月10日

一、选题依据 课题来源、选题依据和背景情况;课题研究目的、学术价值或实际应用价值时间对人们来说总是那么宝贵,工作的忙碌和繁杂容易使人忘记当前的时间。然而遇到重大事情的时候,一旦忘记时间,就会给自己和他人带来很大的麻烦。平时我们要求上班准时,约会或召开会议必然要提及时间:火车要准点到达,航班要准点起飞;工业生产中,很多环节都需要用时间来确定工序替换时刻。所以说能随时准确的知道时间并利用时间,是我们生活和工作中必不可少的。 想知道时间,手表当然是一个很好的选择,但是,在忙碌当中,我们还需要个“助理”及时的给我们提醒时间。所以,计时器最好能够拥有个定时系统,随时提醒容易忘记时间的人。最早能够定时、报时的时钟属于机械式钟农,但这种时钟受到机械结构、动力和体积的限制,在功能、性能以及造价上都没办法与电子时钟相比。 电子万年历是采用电子电路实现对时、分、秒进行数字显示的计时装置,广泛应用于个人家庭、车站、码头办公室等公共场所,成为人们日常生活中不可少的必须品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时报警、按时自动打铃、定时广播、自动启闭灯箱、通断动力设备、甚至各种定时电气的自动启动等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。在国内:单片机的学习呈上升趋势,但很多人学习是无头绪,不知道从何入手,行业发展迅速,国内生产技术不断提升。国内企业为了获得更大的投资收益,在生产规模和产品质量上不断提升,开发单片机呈必然趋势。我国生产的电子万年历有很多,总体上来说是研究多功能电子万年历为主,使万年历除了具有原来的时间、日期等基本功能外,还具有闹钟,报警等功能,商家生产的电子万年历更从质量、价格、实用上考虑不断改变电子万年历的设计,使其更有市场。在科技发达的今天,智能化必将是以后的发展趋势,所以开发活和学习单片机是社会发展的必然需求。

基于单片机的万年历设计课程设计

基于单片机的万年历设计课程设计 摘要 电子万年历是一种非常广泛的日常计时工具,它不仅能够对时间技术,还能够对日期、温度、湿度等进行显示,所以在现代社会受到广泛应用。 本设计是一个基于AT89C51单片机的多功能日历显示系统,本设计能显示公历年、月、日,以及时、分、秒、温度、星期等信息,而且还具有日期调整、时间校准以及温度采集等功能。系统所用的时钟日历芯片DS1302和数字式温度传感器DS18B20具有高性能、低功耗、接口简单的特点,使本系统电路简化,编程方便,同时功能也很强。采用AT89C51单片机的万年历系统可以很好的改善传统采用模拟电路引起的计时不准确,不可靠,一致性差等问题。 本文设计是用单片机为主控制,通过电路仿真而实现的。在Proteus7软件绘制硬件电路原理图,用Keil软件进行编程与调试,最终生成hex文件,载入单片机,从而实现仿真效果。 本文设计经过最终调试,能够正确显示年、月、日、周、时、分、秒以及温度等所需信息,并能正常使用对日期与时间的调整与校正功能。系统使用1602LCD 液晶屏显示信息,界面简洁、直观、易于操作。 关键词:万年历;单片机;AT89C51;DS1302;DS18B20

目录 1 引言 (1) 1.1研究的目的和意义 (1) 1.2本系统主要研究的内容 (1) 2 系统方案论证 (2) 2.1控制部分的选择方案与论证 (2) 2.2显示部分的选择方案与论证 (2) 2.3时钟芯片的选择方案与论证 (2) 2.4温度传感器的选择方案与论证 (3) 2.5电路设计最终方案系统原理及总体结构图 (3) 3 系统设计 (4) 3.1 系统硬件仿真原理图 (4) 3.2 单片机89C51控制模块的设计 (4) 3.3 LCD液晶显示模块设计 (7) 3.4 DS1302时钟模块的设计 (9) 3.5 DS18B20温度采集模块的设计 (12) 4 系统调试 (15) 4.1硬件调试 (15) 4.2软件调试 (15) 5 结论 (15) 参考文献 (16)

51单片机实现万年历程序文件

51单片机实现万年历 利用AT89S52单片机的P0口来和另外几个口来控制1602液晶的显示和P1口还有其它口来控制ds12887时钟芯片。设置四个按键,1个定义为时间设置功能键,一个定义为闹钟设置功能键,另外两个用来调节时间的增减。 原理图: pcb图:

源程序: #include #define uint unsigned int #define uchar unsigned char sbit beep=P2^0;//蜂鸣器控制口 sbit timeadd=P2^1;//调节时间加 sbit timesub=P2^2;//调节时间减 sbit timeclk=P2^3;//闹钟设定键 sbit timefun=P2^4;//时间设定键 sbit lcdrs=P2^5;//液晶的命令和数据控制口 sbit ledrw=P2^6;//液晶的写数据口 sbit lcden=P2^7;//液晶显示模块的使能端 sbit timeds=P3^3;//时钟芯片地址闸 sbit timerw=P3^4;//时钟芯片读写 sbit timeas=P3^5;//时钟芯片地址闸 sbit timeen=P3^6;//时钟芯片片选 uchar code table[]="20 - - week "; uchar code table1[]=" : : ";//要显示的字符串 char num,shi,fen,miao,nian=2000,yue,ri,week,numfun,anumfun,flag,flag1; uchar leap;

void delay(uint x){ uchar i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void didi() { beep=0; delay(1000); beep=1; delay(1000); } void write_(uchar ){ lcdrs=0; P0=; delay(5); lcden=1; delay(20); lcden=0; } void write_date(uchar date){ lcdrs=1; P0=date; delay(5); lcden=1; delay(20); lcden=0; } void write_sfm(uchar add,uchar date){ uchar shi,ge; shi=date/10; ge=date%10; write_(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge); } void write_nyr(uchar add,uchar date){ uchar shi,ge; shi=date/10; ge=date%10;

单片机课程设计-万年历、数字时钟

单片机课程设计-万年历、数字时钟 采用MAX7221可以极大的节省I/O口线,同时DS1302时钟芯片可以提供精确的时间信息 汇编语言程序编写 DSRST BIT P1.0 DSCLK BIT P1.1 DSIO BIT P2.2 DIN BIT P2.5 CS BIT P2.6 CLK BIT P2.7 D158 EQU 30H D70 EQU 31H ADDRESS EQU 32h CONTENT EQU 33h COMMAND EQU 34h SECOND equ 35h MINITE equ 36h HOUR equ 37h ORG 0000H LJMP MAIN ORG 0030H MAIN: LCALL INTI7221 LCALL INTI1302

LOOP: LCALL READ1302 LCALL CONVERT LCALL DELAY LCALL DISPLAY LCALL DELAY SJMP LOOP ;DS1302初始化 INTI1302:MOV ADDRESS, #8EH MOV CONTENT, #00H LCALL SENT_BYTE MOV ADDRESS, #90H MOV CONTENT, #0A7H ;慢充电寄存器LCALL SENT_BYTE READ1302: MOV ADDRESS, #81h LCALL REV_BYTE MOV SECOND, A MOV ADDRESS, #83h LCALL REV_BYTE MOV MINITE, A MOV ADDRESS, #85h LCALL REV_BYTE MOV HOUR, A RET SENT_BYTE: CLR DSRST CLR C NOP CLR DSCLK NOP SETB DSRST MOV A, ADDRESS MOV R3, #2 MOV R2, #8 LOOP0: RRC A MOV DSIO, C SETB DSCLK NOP CLR DSCLK DJNZ R2, LOOP0 MOV A, CONTENT MOV R2, #8 DJNZ R3, LOOP0 CLR DSRST RET

相关主题
文本预览
相关文档 最新文档