1、基于 AT89S51 单片机的数字万年历设计 白阳 物理与电子信息学院 电子信息工程专业 2005 级 指导老师:唐 正明 摘要: 本设计以数字集成电路技术为基础,单片机技术为核心。 软件设计采用模块化结构 ,汇编语言编程 。 系统通过 LCD 显示数据,可以显示公历日期(年、月、日、时、分、秒) 以及 星期。 在内容安排上 首先描述系统硬件工作原理,着重介绍了各硬件接口技术和各个接口模块的功能;其次,详细的阐述了程序的各个模块和实现过程。 关键词: 单片机 ;万年历 ;DS1302;LCM1602 Design of digital calendar based on MCU AT89S51
2、 Bai Yang School of physics and electronic information Grade 2005 Instructor: Tang Zheng-ming Abstract: The design is based on digital integrate circuit, microcontroller technology is the core of the system. The software design uses module structure and adapts microcontroller assemble language. The
3、system can display calendar date, including year, month, week, hour, minute, second and week. The work principle of the system is discussed in this paper, hardware interface and module function are reported primarily in the system. Every module of program is described explicitly. Keywords: MCU ; Cal
4、endar; DS1302; LCM1602 1 本科生毕业论文 (设计 )打印专用纸 基于 AT89S51 单片机的数字万年历设计 摘要 . 错误!未定义书签。 1 设计要求 . 2 2 方案论证与设计 . 2 2.1 用可编程逻辑器件设计 . 2 2.1.1 控制器部分 . 3 2.2 显示部分的方案选择 . 错误!未定义书签。 2.3 系统设计 . 错误!未定义书签。 2.3.1 晶体振荡器电路 .错误!未定义书签。 2.3.2 分频器电路 .错误!未定义书签。 2.3.3 时间计数器电路 .错误!未定义书签。 2.3.4 时钟电路 .错误!未定义书签。 2.3.5 复位电路 . 错误!
5、未定义书签。 2.3.6 复位电路的可靠性设计 .错误!未定义书签。 2.3.7 按键部分 .错误!未定义书签。 2.3.8 蜂鸣器电路 5 3.3.9 根据各模块的功能互相连接成电子万年历的控制电路 5 3 各硬件介绍 . 错误!未定义书签。 3.1 AT89S51 的引脚说明 . 7 3.2 发光二极管指示电路设计 8 3.3 蜂鸣器电路设计 8 3.3.1 蜂鸣器的介绍 .9 3.3.2 蜂鸣器的结构原理 .9 3.4 LCM1602 简介 9 3.5 DS1302 简介 . 10 4 系统硬件 设计所需的器材 .11 5 系统软件总体设计 . 错误!未定义书签。 6 系统功能介绍 .
6、12 6.1 按键介绍 . 错误!未定义书签。 6.2 星期计算 . 错误!未定义书签。 7 主程序流程图 . 错误!未定义书签。 8 安装制作 .14 2 本科生毕业论文 (设计 )打印专用纸 9 调试与检测安全 .14 10 结束语 . 错误!未定义书签。 前言 电子万年历是实现对年,月,日,时 , 分 , 秒数字显示的计时装置 , 广泛用于个人家庭 , 车站 , 码头 , 办公室,银行大厅等场所 , 成为人们日常生活中的必需品 。 数字集成电路的发展和石英晶体振荡器的广泛应用 , 使得数字钟的 精度远远超过老式钟表 。钟表的数字化给人们生产生活带来了极大的方便, 在 此 基础上完成的万年
7、历精度高, 功能易于 扩展。 可扩展成为 诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭 路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等电路 。 所 有这些,都是以钟表数字化为基础的。因此,研究数字 时 钟及扩大其应用 有着非常现实的意义。 本 设计 就是 数字时钟简单的扩展应用。 1 设计 要求 本设计准备实现的功能: (1) 显示公历日期功能(年、月、日、时、分、秒以及星期) (2) 可通过按键切换年、月 、日及时、分、秒的显示状态 (3) 可随时调校年、月、日或时、分、秒 (4) 可每次增减一进行时间调节 (5) 可动态完整显示年份,实现真正的万年历 显示 2 方案论证与设计 2.1 控制器部分 方案论证 方案一: 可采用 ALTERA 公司的 FLEX10K 系列 PLD 器件。设计起来结构清晰,各个模块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。但是考虑到本设计的特点, EDA 在功能扩展上比较受局限,而且 EDA 占用的资源也相对多一些。从成本上来讲,用可编程逻辑器件来设计也没有什么优势。 方案二: 凌阳 16 位单片机有丰富的中断源和时基 。它的准确度相当高,并且 C 语言和汇编兼容的编程环境也很方便来实现一些递归调用。 I/O 口功能也比较强大,方便