基于89C52的电子万年历

合集下载

基于单片机的万年历

基于单片机的万年历

中州大学信息工程学院课程设计【基于单片机的万年历】专业:[计算机应用技术]班级:[ 11计应班]学生姓名:[XXXXXXXXXXXXXX]指导教师:[ 刘爱荣老师]完成时间:2013年6月5日摘要本文借助电路仿真软件Protues对基于STC89C52单片机的电子万年历的设计方法及仿真进行了全面的阐述。

该电子万年历在硬件方面主要采用STC89C52单片机作为主控核心,由DS1302时钟芯片提供时钟、LCD12864点阵液晶显示屏显示。

STC89C52单片机是由深圳宏晶公司推出的,功耗小,电压可选用4~6V 电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的LED液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒等信息。

此外,该电子万年历还具有时间校准等功能。

在软件方面,主要包括日历程序、时间调整程序,显示程序等。

所有程序编写完成后,在Keil软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。

论文主要研究了液晶显示器LED及时钟芯片DS1302,温度传感器DS18B20与单片机之间的硬件互联及通信,对数种硬件连接方案进行了详尽的比较,在软件方面对日历算法也进行了论述。

研究结果表明,由于万年历的应用相当普遍,所以其设计的核心在于硬件成本的节约软件算法的优化,力求做到物美价廉,才能拥有更广阔的市场前景。

关键词:单片机;DS1302;L C D12864AbstractThis paper mainly discuss the design and simulation of electronic calender based on STC89C52 with the help of Protues.On the hardware side, the electronic calendar using STC89C52microcontroller as the main control center, clock provided by the DS1302 clock chip , 1602LED dot matrix LCD display.Atmel Corporation STC89C52 microcontroller is producted by Atmel Corporation, low power consumption, voltage can be selected 4V~ 6V voltage power supply; DS1302 clock chip, launched in the United States with DALLAS small current charging function real time clock chip, low power consumption, it can be years , month, date, day, hour, minute, seconds time, also has a leap year compensation and other functions, and DS1302 long life, small error; LED digital display is used in LCD displays that can display in , month, day, week, hours, minutes, seconds and other information.In addition, the electronic calendar is also a time calibration functions. In terms of software, including calendar program, time to adjust procedures, display procedures. All programming is complete, the Keil software debugging, make sure there is no problem, in the Proteus software embedded within the simulated MCU.This article focus on liquid crystal screen LCD12864and clock chip DS1302,temperature sensor DS18B20 which connected and communicated with Microcontroller.Several solutions will also compared with each other.On software side,calender calculation will be discussed as well.The results are as follows:as electronic calender are widely used in our daily life.It shouldbe chip and convenient so as to win more profit.Keywords:Microcontroller,DS1302;DS18B20;LCD12864目录摘要 (2)Abstract (3)绪论 (5)第一章功能描述 (6)1.1系统基本方案选择和认证 (6)1.1.1单片机芯片的选择 (6)1.1.2 显示模块选择方案 (6)1.1.3 时钟芯片的选择方案和认证 (6)1.1.4 温度传感器的选择方案与认证 (7)1.1.5红外遥控器与红外接收管的选择 (8)1.2 电路设计最终方案决定 (9)第二章系统的硬件设计与实现 (9)2.1主要单元电路的设计 (9)2.1.1 单片机主控制模块的设计 (9)2.1.2 单片机中断系统 (10)2.1.3 DS1302工作原理及说明 (12)2.1.4 LCD12864工作原理及说明 (14)2.1.5 VS1838B红外模块原理及说明 (17)第三章硬件设计方案 (19)3.1 系统硬件概述 (19)3.1.1 设计思想 (19)3.1.2 硬件电路图及说明 (20)第四章软件流程图 (21)4.1 程序流程图 (21)4.1.1 主程序框图 (21)4.1.2 主程序流程图 (21)4.1.3 时间调整流程图 (23)4.1.4 子程序 (24)第五章系统测试 (24)5.1 硬件测试 (24)5.2 软件测试 (24)结束语 (25)参考文献 (26)网络支持 (26)附录:程序 (27)绪论随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。

st89c52单片机万年历(温度显示)

st89c52单片机万年历(温度显示)

燕京理工学院课程设计报告课程名称: 电子课程设计设计题目:基于单片机的数字万年历专业、班级: 通信工程1401 学号:姓名: 穆指导教师: 赵设计时间: 2016.12.12-2016.12.232017年1 月4 日基于STC89C52的万年历设计摘要51以及52单片机是现今单片机学习以及开发中最具有代表性的一种,本次的毕业设计通过对它的学习以及应用,同时配备必要的外围电路,实现相应的功能,以达到学习、设计、开发软件、硬件的能力。

本设计以STC89C52RC芯片为核心,实现了以LCD1602为显示器的万年历。

该万年历不但能显示日历、时间、星期,还能显示当前环境温度,并可以通过按钮校准时间,具有良好的人机操作界面。

关键词:单片机发展STC89C52万年历温度引言近年来,人们的生产生活方式发生了巨大的变化,产生这一变化的重要原因就是计算机技术的发展,其中就包括了微电子技术的高速发展。

而单片机以体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。

时钟,自它被发明的那一天起,就成为人们生活中必不可少的物品。

而随着科学技术的不断发展,人们对时间计量的精度要求越来越高,而时钟也从最原始的日晷发展到现今的高精度的石英钟表,最先进的时钟误差为37亿年误差一秒。

在现今单片机的学习、开发中,用单片机设计的时钟万年历已经成为了单片机实验中一个很常用的项目。

原因是因为它具有很好的开放性和可发挥性,不仅考察了对单片机的掌握能力,同时也考察了单片机扩展应用,而且在硬件设计电路中也要力求简洁,功能齐全,显示出色,所以对操作者的要求较高。

本文主要介绍通过89C52单片机辅以时钟电路等设计的万年历及当前温度显示的方法。

本次设计由单片机STC89C52为核心,辅以必要的电路,构成了一个单片机万年历以及当前温度显示,具有显示准确时间以及当前环境温度的功能,同时可对时间进行手动校准,由于采用了LCD1602进行显示,所以具有了夜视功能。

基于89C52单片机和DS1302的万年历设计

基于89C52单片机和DS1302的万年历设计

基于89C52单片机和DS1302的万年历设计摘要古人依靠日冕、漏刻记录时间,而随着现代科技的发展,电子万年历已经成为日渐流行的日常计时工具。

本文研究的万年历系统拟用STC89C52单片机控制,以DS1302时钟芯片计时、1602液晶屏显示。

系统主要由单片机控制电路,显示电路以及校正电路三个模块组成。

本文阐述了系统的硬件工作原理,所应用的各个接口模块的功能以及其工作过程,论证了设计方案理论的可行性。

系统程序采用C语言编写,经Keil软件进行调试后在Proteus软件中进行仿真测试,可以显示年、月、日、星期、时、分、秒,并具有校准功能和与即时时间同步的功能。

实验结果表明此万年历实现后具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

关键词:万年历单片机DS1302 lcd1602目录第一章前言............................................................................................. 错误!未定义书签。

1.1引言(课题研究的意义) (1)1.2本课题主要的研究工作 (1)1.2.1研究内容 (1)1.2.2论文章节安排 (2)1.3本章小结 (2)第二章单片机的概述 (3)2.1单片机的定义和特点 (3)2.1.1单片机的定义 (3)2.1.2单片机的特点 (3)2.2单片机的发展现状和趋势 (3)2.3编程语言的选择 (4)2.4本章小结 (4)第三章设计要求和方案论证 (5)3.1设计要求 (5)3.2单片机芯片的选择方案和论证 (5)3.3显示模块选择方案和论证 (5)3.4时钟芯片的选择方案和论证 (6)3.5电路设计最终方案决定 (6)3.6本章小结 (6)第四章系统的硬件设计与实现 (7)4.1电路设计框图 (7)4.2系统硬件概述 (7)4.3主要单元电路的设计 (7)4.3.1 STC89C52单片机简介 (7)4.3.2单片机主控制模块的设计 (10)4.3.3时钟电路模块的设计 (11)4.3.4独立式键盘设计 (13)4.3.5显示模块的设计 (13)4.4本章小结 (15)第五章系统的软件设计 (16)5.1程序流程图 (16)5.1.1系统总流程图 (16)5.1.2时钟程序流程图 (16)5.1.3液晶显示程序流程图 (17)5.2程序的设计 (18)5.2.1读写DS1302程序 (18)5.2.2液晶显示程序 (19)5.3本章小结 (19)第六章结束语 (20)致谢词 (21)参考文献 (22)附录一:系统电路图 (23)附录二:系统程序 (24)第一章前言1.1引言(课题研究的意义)万年历是我国古代传说中最古老的一部太阳历。

基于STC89C52液晶显示数字万年历设计报告

基于STC89C52液晶显示数字万年历设计报告

西安邮电学院开放实验设计报告系部名称电子与信息工程系学生姓名专业名称电子与信息工程班级实习时间基于STC89C52液晶显示数字万年历1.引言在51单片机应用系统中,常常需要记录实时的时间信息。

比如,在数据采集时,对默写重要的事件常常需要记录下准确的发生事件;又比如在银行营业大厅中使用的利率或汇率显示屏,上面除了显示利率或者汇率等数据外,还需要显示实时的时间信息,其中包括年,月,日,星期,时间等。

下面我们利用STC89C52和液晶显示器LCD1602和实时时钟芯片DS1302来实现实时时钟并利用液晶显示器进行显示。

1. 单片机STC89C52STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。

使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,STC89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8 位微控制器8K字节在系统可编程Flash。

2. 实时时钟芯片DS1302DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

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

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

论文题目:基于52单片机的万年历设计专业:自动化本科生:(签名)指导老师:(签名)摘要在现代人们生活和工作中,时间已经成为我们不可缺少的一部分。

而随着科学技术的发展,我们获知时间的方式也逐渐变得多种多样,例如通过手表,手机,电子时钟等;而随着生活和工作的繁忙,人们在获知时间的同时,对于与人们生活和工作息息相关的信息也不可缺少,比如:温度,日期等;电子万年历的诞生,很好解决了这一问题,它在显示时间的同时,又显示了温度、日期、时间等诸多功能于一身。

本设计的电子万年历采用的是AT89C52单片机作为控制核心,内部带有8KB的ROM,能够存储大量的程序,而且兼容性也很好;通过DS1302作为时钟芯片,它能够够实时提供年、月、日、时分、秒信息;由LCD1602作为屏幕显示,LCD1602功耗低,携带方便,功能强大;温度检测采用DALLAS公司的数字化温度传感器(DS18B20),;另外本次设计还增加了闹钟功能和温度上限报警功能,大大地提高了万年历的功能。

关键词:时钟芯片DS1302,温度传感器DS18B20,单片机AT89C52Subject :The design of calendar based on AT89C52Specialty :AutomationName :(signature)Instructor:(signature)ABSTRACTIn the modern, time has become an indispensable part of our life and work. With the development of science and technology, how we get the time becomes diverse, for example, by watches, mobile phones, electronic clocks, etc. With the busy life and work, when people informed of the time, information tha is closely related to people’s life and work is also essential, such as: temperature, date, etc.The birth of electronic calendar is a good solution to this problem. When it displays the time, it also show the temperature, date, time, and many other functions is in one. The variety of electronic calendar is wide.The design of the electronic calendar is used as a control core microcontroller AT89C52. With 8KB of internal ROM, it can store a large number of procedures, and it also has good compatibility. Through the DS1302 as a clock chip, it can provide enough real year, month, day, hours, seconds information. the display of the screen is by the LCD1602, LCD1602 has the low power,convenient to carry. Temperature detected is by the DALLAS's digital temperature sensor (DS18B20).In addition this design also increased the upper temperature limit alarm clock function and alarm function, greatly improved calendar functions.KEY WORDS:electronic calendar,DS1302,DS18B20,AT89C52目录1.绪论 (1)1.1研究背景 (1)1.2设计目的 (2)1.3设计意义 (3)2.设计内容 (4)2.1总方案设计 (4)2.1.1主控模块 (4)2.1.2显示模块 (5)2.1.3时间计算模块 (5)2.1.4温度检测模块 (5)2.1.5报警模块 (5)2.1.6设置模块 (6)3.系统硬件介绍 (7)3.1AT89C52单片机主控模块 (7)3.1.1单片机介绍 (7)3.1.2 单片机应用组成系统 (7)3.1.3 单片机发展及发展趋势 (7)3.1.4 单片机的应用 (8)3.1.5 AT89C52的功能介绍 (9)3.1.6单片机I/O端口的简单介绍 (9)3.2LCD1602液晶显示 (10)3.2.1 LCD1602的优点 (10)3.2.2功能特性介绍 (10)3.2.3引脚的介绍 (11)3.2.4 11条指令介绍 (11)3.2.5 LCD1602与单片机的接口电路 (15)3.3时间计算模块DS1302 (15)3.3.1 DS1302的特性介绍 (15)3.3.2 DS1302引脚介绍 (16)3.3.3 DS1302有关日历、时间的寄存器 (17)3.3.4 DS1302控制字介绍 (17)3.3.5 DS1302与单片机接口电路 (18)3.4环境温度检测DS18B20 (18)3.4.1 DS18B20的功能特性 (18)3.4.2 DS18B20的引脚介绍 (19)3.4.3 DS18B20内部结构 (20)3.4.4 DS18B20操作步骤 (20)3.5报警模块蜂鸣器 (21)3.5.1 蜂鸣器驱动 (21)3.5.2 蜂鸣器驱动电路 (21)3.6按键模块设置 (22)4软件设计 (23)4.1语言的选择 (23)4.2程序流程图 (24)4.2.1主程序流程图 (24)4.2.2 子程序流程图 (25)5 PROTEUS仿真及测试 (27)5.1系统仿真 (27)5.1.1 系统硬件仿真原理图 (27)5.1.2 开始界面仿真图 (28)5.1.3 时间显示仿真图 (29)5.1.4 温度显示仿真图 (30)5.1.5高温报警设置仿真 (31)5.1.6闹钟设置仿真 (32)5.2系统测试 (33)5.2.1 硬件问题 (33)5.1.2 软件问题 (33)6总结 (34)6.1结论 (34)6.2论文小结 (35)致谢 (36)参考文献 (37)附录 (38)1.绪论1.1 研究背景当代世界,电子科学技术获得了飞速的发展,与此同时,含现代电子技术的高科技产品也飞速发展,不断改良换代,走进世界人民生活和工作的每个角落,快速的发展传播现代社会的信息和生产力,进一步的提高了现代电子产品的性能和功能,是产品更新换代的时间越来越少。

基于STC89C52液晶显示数字万年历设计报告

基于STC89C52液晶显示数字万年历设计报告

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.西安邮电学院开放实验设计报告系部名称电子与信息工程系生学姓名称专业名电子与信息工程级班时实习间.欢迎下载支持从网络收集整理.word版本可编辑.文档来源为:液晶显示数字万年历基于STC89C521.引言单片机应用系统中,常常需要记录实时的时间信息。

比如,在数据采51在又比如在银行营业大对默写重要的事件常常需要记录下准确的发生事件;集时,还需要显上面除了显示利率或者汇率等数据外,厅中使用的利率或汇率显示屏,示实时的时间信息,其中包括年,月,日,星期,时间等。

DS1302和实时时钟芯片STC89C52和液晶显示器LCD1602下面我们利用来实现实时时钟并利用液晶显示器进行显示。

STC89C521. 单片机在系统可具有8K STC89C52 是一种低功耗、高性能CMOS8位微控制器,产品Flash 存储器。

使用高密度非易失性存储器技术制造,与工业80C51 编程允许程序存储器在系统可编程,亦适于常规编指令和引脚完全兼容。

片上Flash,使得CPU 和在线系统可编程Flash程器。

在单芯片上,拥有灵巧的8 位STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

口位I/O 字节RAM,32 STC89C52具有以下标准功能:8k字节Flash,25626向量定时器/计数器,一个个数据指针,三个线,看门狗定时器,2 16 位0HzSTC89C52可降至级中断结构,全双工串行口,片内晶振及时钟电路。

另外,停止工作,CPU 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,内RAMRAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,允许直到下一个中断或硬件复位为单片机一切工作停止,容被保存,振荡器被冻结,。

字节在系统可编程Flash止。

8 位微控制器8KDS13022. 实时时钟芯片的实RAM是美国DS1302 DALLAS公司推出的一种高性能、低功耗、带时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿进行同步通信,并可采用CPU5.5V。

AT89C52的电子万年历课程设计报告

AT89C52的电子万年历课程设计报告

基于89c52多功能万年历设计报告班级:电子信息工程2班学院:电子信息工程学号:**********姓名:***一、设计任务:设计一个具有多功能的电子万年历。

二、基本要求:1、能够显示阳历年、月、日、星期、小时、分、显示模块采用LCD液晶显示,要求能用按键调整时间。

2、能显示阴历月、日3、具有定时报警功能,能够进行整点语音报时。

4、具有闹钟设定的功能。

发挥部分:1、掉电存储功能,可存储掉电前用户定时设置。

2、具有日程管理,可以设定指定日期的日程,可以设置日成的提醒时间,并可用语音进行提示。

三、方案设计与论证方案一:按照系统设计的功能的要求,初步确定系统由主控模块、时钟模块、显示模块、语音模块各键盘接口模块共5个模块组成,电路系统构成框图如图1所示。

主控芯片使用52系列AT89C52单片机,时钟芯片使用美国DALLAS公司推出的一款高性能、低功耗、带RAM的实时时钟DS1302。

采用DS1302作为计时芯片,可以做到计时准确。

更重要的是,DS1302可以在很小电流的后备电源(2.5V--5.5V 电源,在2。

5V时耗电小于300nA)下继续计时,而且DS1302可以编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本功不耗电。

显图1 电子万年历电路系统构成框图方案二:按照系统设计的要求和功能,将系统分为主控模块、时钟电路模块、按键扫描模块,LCD显示模块,语音模块,电源电路、复位电路、晶振电路几个模块,系统框图如图2所示。

主控模块采用AT89C52单片机,按键模块用四个按键,用于调整时间和设定闹钟,显示模块采用LCD12864,时钟电路模块采用DS1302实时时钟实现对时间,日期的操作。

图2 基于AT89C52单片机的电子万年历系统框图方案三:按照系统设计的要求和功能,将系统分为主控制器模块、显示模块、按键开关模块、蜂鸣器电路模块。

系统框图如图3所示,主控制模块采用AT89C52单片机为控制中心,显示模块采用液晶LCD12864显示,计时使用AT89C52单片机自带的定时器功能,实现对时间、日期的操作,通过按键盘开关实现对时间、日期的调整。

毕业设计(论文)-基于at89c51单片机万年历的设计[管理资料]

毕业设计(论文)-基于at89c51单片机万年历的设计[管理资料]

四川省高等教育自学考试电子工程专业毕业论文论文题目_基于AT89C51单片机万年历的设计专业________电子工程_______________ 学生姓名________________________准考证号__________________指导老师_______________________2011年08 月23 日摘要自古人们就懂得了怎么样算时间,打草结、挂麻絏、划笔画等。

现在社会的日益进步时间变得更加的珍贵。

传统的钟表误差大、使用寿命不长、要经常的更改时间。

显示不直观,给人们带来了许多的不便。

科技的快速发展,很好的解决的问题。

而多功能电子万年历能很好的解决这些问题,万年历采用软、硬件结合,误差小、使用寿命长,采用直观的数字显示,简捷明了。

本文介绍了基于AT89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法。

系统以AT89C52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。

运用单片机实现公历农历之间的转换,电子闹钟,计时器和对指定日期的查询等功能。

万年历采用液晶显示LCD-12864显示,可以同时显示年、月、日、周几、时、分、秒,农历。

综上所述此电子晚年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景关键字:AT89C51;电子万年历;DS1302 ;公农历转换;电子闹钟;计时器;日期查询目录1 绪论 (5) (5) (5) (5)2 系统的总体设计 (6) (6)器件的选用 (7)单片机的选用 (7)LCD 液晶显示器12864 选用及工作原理 (8)LCD液晶显示概述 (8)LCD模块接口说明 (9)LCD 模块主要硬件构成说明 (9)LCD 指令说明 (11)LCD 读写时序图 (11)LCD 软件初始化 (13)应用举例 (15)公农历转换 (17)3 系统硬件的设计 (20) (20) (20)AT89C51单片机 (20)3. AT89C51单片机与MCS-51完全兼容 (23)实时时钟芯片 DS1302 (25)4 系统的软件设 (29)程序流程图 (30)主程序 (31)读取日期和时间程序 (32)显示子程序 (33) (34)5 PROTEUS使用 (34) (34)ISIS对电子万年历的硬件电路设计 (35)ISIS进行电子万年历的仿真测试 (38)结论 (39)致谢 (40)参考文献 (41)程序 (42)一绪论课题研究的背景随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。

基于STC89C52单片机的多功能电子万年历

基于STC89C52单片机的多功能电子万年历

摘要本文介绍了基于STC89C52单片机的多功能电子万年历的硬件结构和软硬件设计方法。

本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。

系统以STC89C52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。

温度采集选用DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602A液晶显示模块,可以在LCD上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。

此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。

关键字:万年历温度计液晶显示ABSTRACTThis paper introduces the based on STC89C52 multi-function electronic calendar of the hardware structure and software and hardware design method. This design by data display module, temperature acquisition module, time processing module and set module four modules. With STC89C52 single-chip microcomputer system for the controller to serial clock calendar chip DS1302 record calendar and time, it can be to date and time, minutes and seconds for the time, also has a leap year compensation and other functions. Temperature gathering choose DS18B20 chip, calendar by using object digital display, data showed that the 1602 A liquid crystal display module, can be in the LCD shows at the same time year, month, day, Sunday, when, minutes and seconds, still have time calibration etc. Function. This calendar has read the convenient, direct display, functional diversity, simple circuit, low cost, and many other advantages, has a broad market prospect.Key words:Perpetual Calendar thermometer LCD display目录摘要 (I)ABSTRACT (II)前言....................................................................................................................... I V 1 绪论 .. 01.1 课题研究的背景 01.2课题的研究目的与意义 01.3课题解决的主要内容 02 系统的方案设计与论证 (1)2.1单片机芯片设计与论证 (2)2.2按键控制模块设计与论证 (2)2.3时钟模块设计与论证 (2)2.4温度采集模块设计与论证 (3)2.5显示模块模块设计与论证 (3)3 系统硬件的设计 (4)3.1 STC89C52单片机 (4)3.2时钟芯片DS1302接口设计与性能分析 (7)3.3温度芯片DS18B20接口设计与性能分析 (10)3.4 LCD显示模块 (15)3.5按键模块设计 (16)3.6复位电路的设计 (17)4 系统的软件设计 (19)4.1主程序流程图的设计 (19)4.2 程序设计 (21)5 系统的机体设计 (27)5.1系统的模块组成 (27)5.2 功能实现 (27)结论 (29)参考文献 (30)致谢 (31)附录 (32)前言随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。

基于STC89C52RC万年历毕业设计

基于STC89C52RC万年历毕业设计

基于STC89C52RC万年历毕业设计目录第一章前言 (1)1.1 引言 (2)1.2功能要求 (3)第二章系统硬件电路的设计 (6)2.1电路设计 (6)2.2系统硬件概述 (7)第三章系统软件设计 (11)3.1程序设计 (11)3.2程序流程图 (12)结论 (15)致谢 (16)参考文献 (17)附录(主程序源代码) (18)第一章前言随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。

二十一世纪的今天,最具代表性的计时产品就是电子时钟,它是近代世界钟表业界的第三次革命。

第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。

第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。

第三次革命就是单片机数码计时技术的应用,使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指标计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期的显示功能,它更符合消费者的生活需求!因此,电子时钟的出现带来了钟表计时业界跨跃性的进步……我国生产的电子时钟有很多种,总体上来说以研究多功能电子时钟为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。

商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子时钟的设计,使其更加的具有市场。

本设计为软件,硬件相结合的一组设计。

在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。

基本的要了解一些主要器件的基本功能和作用。

除了采用集成化的时钟芯片外,还有采用MCU的方案,利用STC89系列单片机制成电子控制电路,采用软件和硬件结合的方法,控制LCD液晶显示,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。

基于STC89C52液晶显示数字万年历设计报告

基于STC89C52液晶显示数字万年历设计报告
器。日历、时间寄存器及控制字如表1所示:
寄存器名称
7
6
5
4
3
21Biblioteka 01RAM/CK
A4
A3
A2
A1
A0
RD/W
秒寄存器
1
0
0
0
0
0
0
分寄存器
1
0
0
0
0
0
1
小时寄存器
1
0
0
0
0
1
0
日寄存器
1
0
0
0
0
1
1
月寄存器
1
0
0
0
1
0
0
星期寄存器
1
0
0
0
1
0
1
年寄存器
1
0
0
0
1
1
0
写保护寄存器
1
0
0
0
1
1
1
慢充电寄存器
5.DS1302的读写
DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。
下面我们利用STC89C52和液晶显示器LCD1602和实时时钟芯片DS1302来实现实时时钟并利用液晶显示器进行显示。
1.单片机STC89C52
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程Flash。

基于STC89C52的多功能万年历课程设计

基于STC89C52的多功能万年历课程设计

信息与通信工程学院作品名称负责人:任霞专业班级:通信122成员:任霞马木提亚库普李宗卿指导教师:杨亚宁完成日期:2014年11 月7 日目录目录 (1)一、设计任务和要求 (1)1.1设计任务 (1)1.2性能指标 (1)二、设计方案及原理 (2)2.1方案一 ................................................................................. 错误!未定义书签。

2.2方案二 ................................................................................. 错误!未定义书签。

2.3本设计采用方案及原理 ..................................................... 错误!未定义书签。

三、系统硬件设计 (3)3.1单片机最小系统设计 (4)3.2温度电路 (4)3.3时钟电路 (5)3.4显示电路 (6)3.5按键电路 (6)3.6闹钟电路 (6)四.系统软件设计 (10)4.1主程序设计 (10)4.2温度部分程序设计 (11)4.3时钟部分程序设计 ............................................................. 错误!未定义书签。

4.4键盘部分程序设计.............................................................. 错误!未定义书签。

4.5显示部分程序设计.............................................................. 错误!未定义书签。

4.6闹钟部分程序设计.............................................................. 错误!未定义书签。

基于STC89C52RC万年历程序

基于STC89C52RC万年历程序

TICK_CNT EQU 40H ;T0溢出计数器SECOND EQU 41H ;存储数据用真值,未用BCD码MINUTE EQU 42HHOUR EQU 43HDAY EQU 44HMONTH EQU 45HYEAR EQU 46HYUSHU EQU 47H ;存放余数FLASH_FLAG EQU 27H ;时间日期调整标志;R7: 0-时间;1-日期;中断向量表ORG 0000HLJMP MAINORG 0003HLJMP EX0_INTORG 000BHLJMP T0_INTORG 0013HLJMP EX1_INT;主程序ORG 0030HMAIN: NOP;初始化堆栈MOV SP,#60H;初始化变量MOV SECOND,#0MOV MINUTE,#0MOV HOUR,#0MOV DAY,#21MOV MONTH,#1MOV YEAR,#96MOV FLASH_FLAG,#00HMOV R7,#00H;MOV TL0,#0B0H ; 定时50msMOV TH0,#3CHMOV TICK_CNT,#20 ;装计数初值(1s计数器)MOV TMOD,#01HSETB ET0SETB EX0SETB EX1SETB EA ;开中断SETB PX0SETB PX1 ;设置中断优先级SETB TR0 ; 启动定时器T0LOPP:LCALL DISPLAY ;调用显示子程序LJMP LOPP; ------------------------------------------------- ; 定时器0中断T0_INT: MOV TL0,#0B0HMOV TH0,#3CH ; 重装载DJNZ TICK_CNT,NOT_1S ;1秒到?AJMP IS_1SNOT_1S: LJMP T0_RET; 1秒时间到IS_1S: PUSH ACCMOV A,SECONDCJNE A,#59,IN3 ; 59s到?AJMP IN4IN3: LJMP SECOND_INC ; 秒加1IN4: MOV SECOND,#0 ; 秒进位MOV A,MINUTECJNE A,#59,IN5 ; 59分到?AJMP IN6IN5: LJMP MINUTE_INCIN6: MOV MINUTE,#0 ; 分进位MOV A,HOURCJNE A,#23,HOUR_INC ; 23h到?MOV HOUR,#0 ; "时"进位MOV A,MONTHCJNE A,#2,NOT_FEB ; 是否二月?;2月处理;--------------------------FEB: NOPACALL DIV4MOV A,YUSHUCJNE A,#0,NOT_LEAP_Y ;是否闰年?LEAP_Y: MOV A,DAY ;闰年CJNE A,#29,DAY_INCMOV DAY,#1MOV MONTH,#3LJMP RESET_CNT;非闰年NOT_LEAP_Y: MOV A,DAYCJNE A,#28,DAY_INC ;MOV DAY,#1MOV MONTH,#3LJMP RESET_CNT;---------------------------;非2月处理;30/31天?NOT_FEB:NOPCJNE A,#4,Y01AJMP MON_30DY01: CJNE A,#6,Y02 ;是否小月?AJMP MON_30DY02: CJNE A,#9,Y03AJMP MON_30DY03: CJNE A,#11,T11AJMP MON_30D;31天T11: MOV A,DAY ;大月CJNE A,#31,DAY_INCAJMP NEXT_MONTH;30天MON_30D:MOV A,DAY ;小月CJNE A,#30,DAY_INC;天进位NEXT_MONTH: MOV DAY,#1MOV A,MONTHCJNE A,#12,MONTH_INC; 月进位MOV MONTH,#1MOV A,YEARCJNE A,#99,YEAR_INCMOV YEAR,#0AJMP RESET_CNT;年加1YEAR_INC: M OV A,YEARINC AMOV YEAR,AAJMP RESET_CNTMONTH_INC: MOV A,MONTHINC AMOV MONTH,AAJMP RESET_CNTDAY_INC: MOV A,DAYINC AMOV DAY,AAJMP RESET_CNTHOUR_INC:MOV A,HOURINC AMOV HOUR,AAJMP RESET_CNTMINUTE_INC: MOV A,MINUTE INC AMOV MINUTE,AAJMP RESET_CNTSECOND_INC: MOV A,SECONDINC AMOV SECOND,ARESET_CNT: POP ACCMOV TICK_CNT,#20T0_RET: RETI;--------------------------------------------------------------------;-------------------------------------------------------------------; sub: LED Display;显示子程序DISPLAY:MOV DPTR,#TAB1 ; 装段选表MOV A,R7 ;CJNE A,#00H,DISP_DATE ; 显示时间?DISP_TIME: MOV R0,#SECOND ;AJMP TSADISP_DATE: MOV R0,#DAY ; ;显示日期;显示时间或日期TSA: MOV A,@R0MOV B,#10DIV AB ;取十位MOVC A,@A+DPTRMOV R2,A ;存段选MOV A,B ;取个位MOVC A,@A+DPTRMOV R1,A ;存段选;------------INC R0MOV DPTR,#TAB1MOV A,@R0MOV B,#10DIV ABMOVC A,@A+DPTRMOV R4,AMOV DPTR,#TAB2MOV A,BMOVC A,@A+DPTRMOV R3,A;-------------INC R0MOV DPTR,#TAB1MOV A,@R0MOV B,#10DIV ABMOVC A,@A+DPTRMOV R6,AMOV DPTR,#TAB2MOV A,BMOVC A,@A+DPTRMOV R5,A;---------------------;P1:位选线;P0:段选线TDP: MOV P0,R1MOV A,FLASH_FLAGCJNE A,#03H,A02 ;是否闪烁?AJMP A03A02: CJNE A,#06H,A04;A03: MOV A,TICK_CNTRRC AJNC A05A04: MOV P1,#0DFH ;开D6 A05: LCALL DELAYMOV P1,#0FFH ;关位选MOV P0,R2MOV A,FLASH_FLAGCJNE A,#03H,B02AJMP B03B02: CJNE A,#06H,B04B03: MOV A,TICK_CNTRRC AJNC B05B04: MOV P1,#0EFH ;开D5 B05: LCALL DELAYMOV P1,#0FFH ;关;Display DS4MOV P0,R3MOV A,FLASH_FLAGCJNE A,#02H,C02AJMP C03C02: CJNE A,#05H,C04C03: MOV A,TICK_CNTRRC AJNC C05C04: MOV P1,#0F7H ;开D4 C05: LCALL DELAYMOV P1,#0FFH ;关;Display DS3MOV P0,R4MOV A,FLASH_FLAGCJNE A,#02H,D02AJMP D03D02: CJNE A,#05H,D04D03: MOV A,TICK_CNTRRC AJNC D05D04: MOV P1,#0FBH ;开D3D05: LCALL DELAYMOV P1,#0FFH;Display DS2MOV P0,R5MOV A,FLASH_FLAGCJNE A,#01H,E02AJMP E03E02: CJNE A,#04H,E04E03: MOV A,TICK_CNTRRC AJNC E05E04: MOV P1,#0FDH ;开D2E05: LCALL DELAYMOV P1,#0FFHMOV P0,R6MOV A,FLASH_FLAGCJNE A,#01H,F02AJMP F03F02: CJNE A,#04H,F04F03: MOV A,TICK_CNTRRC AJNC F05F04: MOV P1,#0FEH ;开D1F05: LCALL DELAYMOV P1,#0FFHRET;-------------------------------------------------------------------D_CNT_2 EQU 28HD_CNT_1 EQU 29HD_CNT_4 EQU 30HD_CNT_3 EQU 31H; ---------------------------------------- ;短延时DELAY: MOV D_CNT_2,#2D_LOOP2: MOV D_CNT_1,#100 ;[1]D_LOOP1: DJNZ D_CNT_1,D_LOOP1 ;[2]DJNZ D_CNT_2,D_LOOP2 ;[2]RET;长延时(用于键盘去抖动)DELAY2: MOV D_CNT_4,#60D_LOOP4:MOV D_CNT_3,#100 ;[1]D_LOOP3:DJNZ D_CNT_3,D_LOOP3 ;[2]DJNZ D_CNT_2,D_LOOP4 ;[2]RET; ---------------------------------------- ;除法子程序,用于判断闰年DIV4: PUSH ACCPUSH BMOV A,YEARMOV B,#4DIV ABMOV YUSHU,BPOP ACCPOP BRET;--------------------------------------------------------- ;外部中断0; sub: INT0 interrupt; 处理按键K0,切换时间/日期显示或者调整时间EX0_INT:PUSH ACCLCALL DELAY2 ;长延时,去抖动JB P3.2,OUTMOV A,FLASH_FLAG ;装标志位CJNE A,#00H,JYY ;是否为零?MOV A,R7 ;R7取反XRL A,#0FFHMOV R7,AOUT: LJMP EX0_RET;-------------------------------------------------------JYY: CJNE A,#01H,JMM;调节年MOV A,YEARCJNE A,#99,YY0MOV YEAR,#0LJMP YYFYY0: INC AMOV YEAR,AYYF: LJMP EX0_RET;---------------------------------------JMM: CJNE A,#02H,JDD;调节月MOV A,MONTHCJNE A,#12,MM0MOV MONTH,#1LJMP MMFMM0: INC AMOV MONTH,AMMF: LJMP EX0_RET;****************************************************** *****JDD: CJNE A,#03H,ADH ;调节天MOV A,MONTHCJNE A,#2,NFBIFB: NOPLCALL DIV4MOV A,YUSHUCJNE A,#0,ANGARN: MOV A,DAYCJNE A,#29,D0ALJMP D0BD0A: LJMP DDAD0B: LJMP DD1ANG: MOV A,DAYCJNE A,#28,D0ALJMP DD1NFB: NOPCJNE A,#4,Y04LJMP AD1Y04: CJNE A,#6,Y05LJMP AD1Y05: CJNE A,#9,Y06LJMP AD1Y06: CJNE A,#11,Y07LJMP AD1Y07: NOPMOV A,DAYCJNE A,#31,D0ALJMP DD1AD1: NOPMOV A,DAYCJNE A,#30,D0ADD1: MOV DAY,#1LJMP DDFDDA: MOV A,DAYINC AMOV DAY,ADDF: LJMP EX0_RET;--------------------------------------------------- ADH: CJNE A,#04H,ADM ;调节时MOV A,HOURCJNE A,#23,JH0MOV HOUR,#0LJMP JHFJH0: MOV A,HOURMOV HOUR,AJHF: LJMP EX0_RET;----------------------------------------- ADM: CJNE A,#05H,ADS ;调节分MOV A,MINUTECJNE A,#59,JM0MOV MINUTE,#0LJMP JMFJM0: MOV A,MINUTEINC AMOV MINUTE,AJMF: LJMP EX0_RETADS: MOV A,SECOND ;调节秒CJNE A,#59,JS0MOV SECOND,#0LJMP EX0_RETJS0: MOV A,SECONDINC AMOV SECOND,AEX0_RET:NOPJNB P3.2,EX0_RET ;判断键盘是否释放RETI;---------------------------------------------------------; 处理按键K1EX1_INT:PUSH ACCLCALL DELAY2 ;长延时,去抖动JB P3.3,EX1_RETNOPMOV A,R7CJNE A,#00H,DIS_DATE;显示时间MOV A,FLASH_FLAGCJNE A,#00H,ED2MOV FLASH_FLAG,#04H ; 标志位置04AJMP EX1_RETED2: CJNE A,#06H,ED1;reach 06HMOV FLASH_FLAG,#00H ;重置为0AJMP EX1_RET;显示日期DIS_DATE:MOV A,FLASH_FLAGCJNE A,#03H,ED1;== 03HMOV FLASH_FLAG,#00H ;重置为0AJMP EX1_RET;标志加1,ED1: INC AMOV FLASH_FLAG,AEX1_RET: NOPJNB P3.3,EX1_RETPOP ACCRETI;----------------------------------------------; code tableTAB1: DB 0c0h,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H TAB2: DB 040H,79H,24H,30H,19H,12H,02H,78H,00H,10H END。

基于STC89C52液晶显示数字万年历设计

基于STC89C52液晶显示数字万年历设计

9C52液晶显示数字万年历1.引言在51单片机应用系统中,常常需要记录实时的时间信息。

比如,在数据采集时,对默写重要的事件常常需要记录下准确的发生事件;又比如在银行营业大厅中使用的利率或汇率显示屏,上面除了显示利率或者汇率等数据外,还需要显示实时的时间信息,其中包括年,月,日,星期,时间等。

下面我们利用STC89C52和液晶显示器LCD1602和实时时钟芯片DS1302来实现实时时钟并利用液晶显示器进行显示。

1. 单片机STC89C52STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。

使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,STC89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8 位微控制器8K字节在系统可编程Flash。

2. 实时时钟芯片DS1302DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

基于单片机的液晶显示“万年历”设计

基于单片机的液晶显示“万年历”设计

单片机液晶显示“万年历”一、设计任务利用STC89C52RC单片机设计一个具有如下功能的电子万年历:(一)、能够显示年、月、日、时、分、秒、星期(二)、能正确显示闰年日期(三)、用独立键盘进行校时二、硬件设计1、系统框图按照系统设计的要求和功能,将系统分为主控模块、时钟电路模块、按键扫描模块、LCD显示模块、蜂鸣器电路、电源电路、复位电路、晶振电路几个模块,系统框图如图1所示。

主控模块采用STC89C52RC单片机,按键模块用5个按键,用于调整时间和设定闹钟,显示模块采用LCD1602,时钟电路模块采用DS1302实时时钟实现对时间,日期的操作。

图1 基于AT89C52RC单片机的电子万年历系统框图2、原理图基于STC89C52RC单片机的电子万年历硬件仿真电路图如图10所示,系统由STC89C52RC单片机、按键扫描电路、显示电路、时钟电路、晶振电路、复位电路、蜂鸣器电路组成。

图2 电子万年历仿真图3、各部分介绍(1)、主控模块控制芯片使用STC89C52,控制系统如下图:图3 STC89C52RC主控模块主控制芯片采用STC89C52,系统包括晶振电路、复位电路、下载接口。

(2)、时钟芯片时钟芯片使用DS1302,该模块电路原理图如下图:图4 DS1302时钟电路时钟电路采用的是ds1302芯片,DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

工作电压与单片机的输入电压比较适合。

上面是它的一些基本的应用介绍。

下面是它的引脚的描述:图5 DS1302引脚下面是DS1302的时钟寄存器。

我们要读取的时间数据就是从下面这些数据寄存器中读取出来的。

当我们要想调整时间时,可以把时间数据写入到相应的寄存器中就可以了。

基于AT89c52单片机电子万年历设计(带程序)

基于AT89c52单片机电子万年历设计(带程序)

目录一、摘要•二、设计・3三、设计任务.2四、设计要求•3五、系统方案设计・31、系统-31)原理构成框图•32)设计思路42 、主程序设计43 、中断程序设计55 、时间调整电路的设计7六、系统评价7七、c 语言程序注释及说明8一、摘要单片机就是微控制器,是面向应用对象设计、突出控制功能的芯片。

单片机接上晶振、复位电路和相应的接口电路,装载软件后就可以构成单片机应用系统。

将它嵌入到形形色色的应用系统中,就构成了众多产品、设备的智能化核心。

本设计是基于AVR 单片机强大的控制功能制作而成的电子万年历,该电子万年历包括四大功能:实时显示年、月、日、时、分、秒、星期;人为的校正年、月、日、时、分、星期;第一次开机显示12-00-30 。

二、设计目的1、掌握C52 程序用于实践并实现相应的功能;2、掌握时钟程序的使用方法;3、掌握时间函数的使用方法;4、掌握键盘的程序使用方法;三、设计任务通过与单片机连接数码管动态显示年、月、日、时、分、秒、星期等功能,并能准确计算闰年闰月的显示,七个按钮连接P0 口可以精确调整每一个时间数值,通过对所设计的万年历时钟电路进行实验测试,达到了动态显示时间,随时调整时间等技术指标。

四、设计要求(1)能够准确的计时,时间可在数码管上显示出来,默认显示为时、分、秒,每隔一分钟自动显示年、月、日及星期,也可通过按键控制显示,并可通过按键调节时间。

(2)第一次开机显示12-30-30 。

(3)每半秒led 彩灯闪烁一次五、系统方案设计:1 、系统总体设计:1)原理构成框图本设计用AT89C52 作为核心控制部分,外接晶振电路与复位电路,以两个四位数码管作为显示部分,开关控制显示时间与日期,具体框图如图 1 所示,数码管框图如图 2 所示:P3 口开关控制>调整时间部分复位电路P1 口Led 彩灯部分单片机AT89C52数码管段选部分八数码管显示部分SB.B:「74HC138图1 原理框图图2 :数码管模块2)设计思路通过一段时间对专业书籍及多种设计方案的研究分析,我采用了比较常用的AT89C52作为核心控制芯片,用C语言进行编程来满足设计的要求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1设计要求 (2)2方案论证与对比 (2)2.1液晶显示器控制方式选择 (2)2.2并行接口动态显示电路选择 (2)2.3LCD液晶显示器的接口方法选择 (3)2.4液晶显示器限流电阻选择 (4)3系统硬件电路的设计 (5)3.1主控模块AT89C52 (5)3.2显示模块电路设计 (6)4系统软件设计 (7)4.1系统软件概述 (7)4.2主要子程序设计 (8)4.2.1 时钟中断服务子程序设计 (8)4.2.2时间调整子程序设计 (9)4.2.3 判断闰年子程序设计 (9)4.2.4 精度分析分析与计算 (10)4.2.5 第一次初值的设置 (10)4.2.6 重载初值的方法 (10)5系统仿真与测试 (11)5.1系统仿真 (11)5.2功能测试 (11)6总结 (12)参考文献 (13)1设计要求本课题以AT89C52单片机为核心,设计并制作出智能LCD电子钟,具有以下基本功能:能进行时间、年份、日期、星期显示;能区分是否闰年;能检测室温并显示。

扩展功能部分可以通过控制按键使时间暂停、可以调整校正时间并通过按键切换轮流显示时间、年份、日期、星期。

2方案论证与对比2.1液晶显示器控制方式选择采用LCD液晶显示,具有超精致影像画质、十足平面显示、节省空间、节省能源等优点,但按控制方式不同,LCD可分为被动矩阵式LCD及主动矩阵式LCD两种。

可根据不同需要采用不同的方式。

方案一被动矩阵式LCD被动矩阵式LCD在亮度及可视角方面受到较大的限制,反应速度也较慢。

由于画面质量方面的问题,使得这种显示设备不利于发展为桌面型显示器,但成本低廉。

方案二主动矩阵式LCD目前应用比较广泛的主动矩阵式LCD,也称TFT-LCD(Thin Film Transistor-LCD,薄膜晶体管LCD)。

TFT液晶显示器是在画面中的每个像素内建晶体管,可使亮度更明亮、色彩更丰富及更宽广的可视面积。

与CRT显示器相比,LCD显示器的平面显示技术体现为较少的零件、占据较少的桌面及耗电量较小,但CRT技术较为稳定成熟。

相比之下,本设计当中选用方案二主动矩阵式LCD方式。

2.2 并行接口动态显示电路选择可以采取串行接口动态显示电路或者并行接口动态显示电路,比较如下:方案一串行接口动态显示电路利用8051系列单片机内部的串行接口,也可以实现动态显示及键盘处理。

这样不但可以节省8051的并行I/O接口,而且在大多数不用单行口的情况下,可免于扩展接口。

在这种方法中,串行口工作在方式0状态,相当于一个移位寄存器,其输入/输出通过RXD引脚,移位脉冲则由TXD输出。

每次输入或输出8位数据(一个字节)。

每输出一个字节,8051的硬件即自动使SCON寄存器中的中断TI置位,通过测试TI的状态,即可确定一个字节是否发送完毕。

见图2-1。

图2-1串行接口动态显示电路框图方案二并行接口动态显示电路直接用P0口作线选,P2作位选连接数码显示管。

见图2-2图2-2动态显示电路框图方案一中的串行接口动态显示电路显示方法有个很大的缺点,一旦计算机不执行显示程序,则显示立即停止。

如要维持显示,则须花费计算机很多时间。

而且在本次课程设计中,我们也有足够的I/O口,因此,选择并行接口动态显示电路较好。

2.3 LCD液晶显示器的接口方法选择方案一以硬件为主的LCD显示接口电路这种接口方法的电路图见图2-3,可以看出,在数据总线和LCD之间,必须有锁存器或I/O接口电路,此外,还应有专门的译码/限流电阻。

通过译码器把1位十六进制或BCD码译为相应的显示段码,然后由限流电阻限制电流防止显示器因电流过大而烧坏。

这种接口方法仅用一条输出指令,就可以进行LCD显示。

但是所使用的硬件电路较多,而硬件译码缺乏灵活性,只能显示十进制数或十六进制。

图2-3硬件为主的LED显示接口电路框图方案二以软件为主的LCD显示接口电路这种接口方法的电路如图2-4 ,它以软件查表代替硬件译码的方法,不但省去了译码器,而且还能显示更多的字符,但是电阻限流是必不可少的。

本次设计采用这种接口电路。

图2-4以软件为主的LCD显示接口电路框图2.4液晶显示器限流电阻选择由于LCD的电流参数较小,为了防止因电流过大而被烧坏,能够帮助内存起到稳压作用,让内存工作更稳定,因此必须加入限流电阻。

限流电阻有两种实现方式,比较如下:方案一直接用单个电阻限流直接用单个电阻进行限流,散热快,但是既占空间又接线麻烦。

方案二用排阻进行限流用多个电阻排列而成的排阻能减少占用的空间,易于连线。

综上分析,本设计采用方案二排阻限流。

3系统硬件电路的设计经上述比较,本次作品采用以AT89C52为核心的单片机最小系统板,显示模块采用数码管动态扫描显示。

经过方案论证与比较,选择出最优方案的系统总体方案框图如图3-1所示。

3.1主控模块AT89C52主控模块采用的是AT89C52单片机芯片。

AT89C52是一个低电压,高性能CMOS 8位单片机,片内8KB ROM 全部采用FLASH ROM 技术,晶振时钟为12MHz 。

器件采用ATMEL 公司的高密度,肥易失性存储技术生产,兼容标准MCS-51指令系统,骗内置通用8位中央处理器和Flash 存储单元。

AT89C52是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O 端口,分别记作P0、P1、P2、P3。

3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。

第31引脚需要接高电位使单片机选用内部程序存储器。

P0-P3为可编成通用输入输出引脚,其功能用途由软件定义。

第9引脚是复位引脚,要接一个上电手动复位电路;第40脚为电源端VCC ,接+5V 电源,第20引脚为接地端VSS ,通常在VCC 和VSS 引脚之间接0.1μF 高频滤波电容。

第18、19脚之间接上一个12MHz 的晶振为单片机提供时钟信号。

主控模块电路图见图3-2。

按键模块电源 时间调整模块 显示模块 温度显示 星期显示 时间显示 年份显示 主控模块图3-1系统总体方案框图3-2AT89C52单片机芯片3.2 显示模块电路设计P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。

对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据。

在访问8 位地址的外部数据存储器(如执行MOVX @RI 指令)时,P2 口输出P2 锁存器的内容。

Flash 编程或校验时,P2亦接收高位地址和一些控制信号。

P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

本设计中要对时间、温度进行显示。

单片机AT89C52的P2口分别接LCD控制屏幕的显示。

而P0口用来显示信息的输入,为了防止电流过大而烧坏LCD,所以用排阻RESPACK-8来限流。

液晶显示电路图见图3-3。

图3-3 显示模块电路4系统软件设计4.1 系统软件概述在编程上,首先进行了初始化,定义程序的入口地址以及中断的入口地址,在主程序的开始定义了一组固定单元用来存储计数的分、秒、年、月、日、星期的存储单元。

调用闰年判断程序后,进入主程序中循环。

在主程序中,对不同的按键进行扫描,实现秒表,时间调整、开关屏设置等扩展功能。

时钟计时利用定时器T0中断子程序实现,秒表和时间调整闪烁程序由定时器T1的中断服务子程序实现。

考虑到实用性,在该电子钟的时间调整时采用了闪烁,而开关屏设置采用了符号标志。

在自动开、关屏设置子程序中,另外开辟内存单元用来存放开、关屏设置时间,而在另外的子程序中不断比较当前时间是否和设置时间相等并设置标志位,然后程序中检测标志位,从而实现开、关屏操作。

系统总体流程图见图4-1。

4.2 主要子程序设计显示完毕后,P2口和P1口复位,准备下一轮的显示。

在系统总体流程设计思想的指导下,分模块对程序进行设计,主要模块设计有时钟中断服务子程序设计、时间调整子程序设计、判断闰年子程序设计等。

各子程序分析如下:4.2.1 时钟中断服务子程序设计首先设定定时器T0的初值,T0的最大定时不足1s ,为便于计算,取定时50ms 。

这样每50ms 中断1次,中断20次为1s 。

50ms 的定时初值的计算如下:0.05/(1/12*10^6/12))=C350H ,补码为3CB0H 。

启动定时器后,运行中断服务程序。

在中断服务程序中,由秒信号来计数,当达到60后向“分”进位;分计数,当达到60后向“时”进位;时计数,当达到24后向“日”进位;日计数,日超出当月上限后进位到“月”;月计数,当月计数到达12后向“年”进位……,在日计数程序中,图4-1 系统总体流程图日每增加一天,都对星期进行调整,具体为:若上一天不是星期日,则直接在星期上加一,若上一天是星期日,则当前星期变为星期一。

4.2.2时间调整子程序设计在主程序中通过按键进入时间调整界面,可实现年、月、日、星期及时间的调整。

每次调整时,调用闪烁程序,使相应的位闪烁,再通过按键进行加减调整。

闪烁程序也采用定时器T1中断实现,每次计时50ms,中断6次也就是0.3秒过后,闪烁标志位取反,显示熄灭。

在时间显示子程序中,单片机向P0口送段选信号,向P2口送位选信号,数码管采用动态扫描方式,位选信号每次左移一位,每次点亮一个数码管,一轮4.2.3 判断闰年子程序设计程序中年每加一,则调用一次判断闰年子程序,再通过置标志平20H.3,以便于以后的程序识别(如在月加一程序中,就需要知道是否是闰年的2月还是平年的2月)。

判断闰年子程序的设计思想是:不能被4整除的年份不是闰年;能被100整除但不能被400整除的年份不是闰年。

闰年判断流程图见图4-2。

图4-2显示子程序流程图4.2.4 精度分析分析与计算在MCS-51单片机中,脉冲源是由系统的晶振经过12分频后获得的,故定时器计数脉冲[4]周期为:T=12/fosc (1)4.2.5 第一次初值的设置根据(1)式可以分别算出定时器四种工作方式的最大计时时间。

但实际应用中,经常会有不同定时值的要求,可以采用预置数的方法来实现。

相关文档
最新文档