单片机制作万年历的研究(精).doc_第1页
单片机制作万年历的研究(精).doc_第2页
单片机制作万年历的研究(精).doc_第3页
单片机制作万年历的研究(精).doc_第4页
单片机制作万年历的研究(精).doc_第5页
免费预览已结束,剩余53页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕 业 设 计 论文 题 目 单片机制作万年历的研究 摘 要 电子万年历是一种非常广泛日常计时工具 对现代社会越来越流行 它可 以对年 月 日 周日 时 分 秒进行计时 还具有闰年补偿等多种功能 而且 DS1302 的使用寿命长 误差小 对于数字电子万年历采用直观的数字显示 可以同时显示年 月 日 周日 时 分 秒和温度等信息 还具有时间校准 等功能 该电路采用 AT89S51 单片机作为核心 功耗小 能在 3V 的低压工作 电压可选用 3 5V 电压供电 本设计是基于 51 系列的单片机进行的电子万年历设计 可以显示年月日时 分秒及周信息 具有可调整日期和时间功能 在设计的同时对单片机的理论基 础和外围扩展知识进行了比较全面准备 在硬件与软件设计时 没有良好的基 础知识和实践经验会受到很大限制 每项功能实现时需要那种硬件 程序该如 何编写 算法如何实现等 没有一定的基础就不可能很好的实现 在编写程序 过程中发现以现有的相关知识要独自完成编写任务困难重重 在老师和同学的 帮助下才完成了程序部分的编写 万年历的设计过程在硬件与软件方面进行同步设计 硬件部分主要由 AT89C51 单片机 LED 显示电路 以及调时按键电路等组成 在单片机的选择上 本人使用了 AT89C51 单片机 该单片机适合于许多较为复杂控制应用场合 显 示器使用 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 AT89S51 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 AT89C51 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 of eight yang diode display 7SEG MPX4 CA is a total of four yang diode display In order to more easily control the three monitors I use three 74HC164 to drive 74HC164 is an 8 bit edge triggered shift register serial input data and parallel output The software includes calendar program time to adjust procedures turn the lunar calendar programs display programs Programs written in assembly language used in order to more easily adjust the time and the realization of the lunar calendar display All programming is complete the wave software debugging make sure that no problems in the Proteus software within a microcontroller embedded in the simulation The final overall the teacher to help students as well as their own efforts to complete the design of the electronic calendar Keywords Keywords Clock electric clock DS1302 DS18B20 Dynamic scan scm 目 录 第一章 引言 1 1 1 选题背景 1 1 2 单片机的简介 1 1 3 单片机的发展趋势 1 第二章 设计要求与方案论证 4 2 1 设计要求 4 2 2 系统基本方案选择和论证 4 2 2 1 单片机芯片的选择方案和论证 4 2 2 2 显示模块选择方案 5 2 3 键盘的选择 6 2 4 实现定时 6 2 5 电路设计最终方案决定 7 第三章 系统的硬件设计与实现 8 3 1 电路设计框图 8 3 2 系统硬件概述 8 3 3 主要单元电路的设计 8 3 3 1 单片机主控制模块的设计 8 3 3 2 时钟电路模块的设计 9 3 3 3 电路原理及说明 10 3 3 4 显示模块的设计 12 第四章 系统的软件设计 13 4 1 程序流程框图 13 4 2 源代码 16 第五章 结论 31 致谢 33 参考文献 34 附录 1 第一章 引言 1 1 选题背景 在社会迅速发展的今天 单片机的运用已经神偷到我们生活的每个角落 也似乎很难找到哪个领域没有单片机的足迹 智能仪表 医疗器械 导弹的导 航装置 智能监控 通讯与数据传输 工业自动化过程的实时控制和数据处理 广泛使用的各种智能 IC 卡 汽车的安全保障系统 动控制领域的机器人 数码 相机 电视机 全自动洗衣机的控制 电话机以及程控玩具 电子宠物等 这 些都离不开单片机 所以 单片机的学习 开发与应用将对于现代社会的发展 经济的繁荣 和提高满足人类日益增长的物质文化需求有着至关重要的作用 随着经济的不断发展 人们对生活质量的要求也在不断地提高 厂家也不 断的推出各种电子产品以满足人们的需要 而电子万年历则顺应了人们对时间 方面的要求 传统的电子万年历功能较为单一 价格较高 较难走进千家万户 没能达到人们生活中所需要的最基本要求 本课题旨在设计一款 功能较全面 价格较低且实用性强的电子万年历 以满足不同使用者的需求 1 2 单片机的简介 单片机是一种集成在电路芯片 是采用超大规模集成电路技术把具有数据 处理能力的中央处理器 CPU 随机存储器 RAM 只读存储器 ROM 多种 I O 口 和中断系统 定时器 计时器等功能 可能还包括显示驱动电路 脉宽调制电路 模拟多路转换器 A D 转换器等电路 集成到一块硅片上构成的一个小而完善 的计算机系统 1 现在可以说单片机是百花齐放的时期 世界上各大芯片制造公 司都推出了自己的单片机 从 8 位 16 位到 32 位 数不胜数 应有尽有 它 们各具特色 互成互补 为单片机的应用提供广阔的天地 1 微型计算机 Single Chip Microcomputer 微型计算机的主要特点 CPU 集成于一个芯片中 单片机 Micro Controller Unit 是把组成微型计算机的各功能部件 CPU RAM ROM 定时 计数器 中断控制器 并行和串行接口均集成在一个芯片中 其一个芯片就构 成了一个比较完整的计算机系统 微型计算机与单片机是微电子领域的两个分支 微型计算机的特点是 运算速度快 存储容量大 适合于信息管理 科学计算等领域 而单片机的特 点为体积小 价格低 适合于仪器 设备的控制 常常嵌入到仪器 设备中 故单片机也称作微控制器 Microcontroller 2 单片机的生产与发展 目前世界上单片机的生产公司有上百家 如 2 Intel Philips Microchip Motorola Siemens NEC AMD Zilog TI At mel 等 但在国内广泛应用的只有 Intel 系列和 Microchip PIC 系列 第 1 阶段 1976 1980 单片机发展初级阶段 集成了 8 位 CPU RAM ROM 定时器 并行口 无串行口 等部件 但性能低 寻址范围小 4KB 中断系统 定时器也简单 典型机型 Intel MCS 48 系列 第 2 阶段 1980 1983 高性能单片机阶段 此阶段的单片机普遍带有 串行口 有多级中断处理系统 多个 16 位定时 计数器 片内 ROM RAM 的容量 加大 寻址范围达 64KB 典型机型 Intel MCS 51 系列 第 3 阶段 1983 80 年代末 16 位单片机和高性能 8 位机并行发展阶段 此阶段 Intel 推出 16 位单片机 MCS 96 系列 其他公司也推出了各种 16 位单片 机 同时高性能 8 位单片机的性能更为完善 第 4 阶段 90 年代 单片机在集成度 功能 速度 可靠性等方面全面 发展 如采用 Flash ROM 加入了一些特殊功能部件 AD 转换器 PWM 输出 监视定时器 WDT DMA 调制解调器 通信控制器 浮点运算单元等 至今 单片机的性能已比较完善 且专业化的特点很强 为各种应用提供 了很大的方便 1 3 单片机的发展趋势 纵观单片机的发展过程 可以预示单片机的发展趋势 1 低功耗 CMOS 化 MCS 51 系列的 8031 推出时的功耗达 630mW 而现在的单片机普遍都在 100mW 左右 随着对单片机功耗要求越来越低 现在的各个单片机制造商基本 都采用了 CMOS 互补金属氧化物半导体工艺 2 80C51 就采用了 HMOS 即高 密度金属氧化物半导体工艺 和 CHMOS 互补高密度金属氧化物半导体工艺 CMOS 虽然功耗较低 但由于其物理特征决定其工作速度不够高 2 而 CHMOS 则具备了高速和低功耗的特点 这些特征 更适合于在要求低功耗 电 池供电的应用场合 所以这种工艺将是今后一段时期单片机发展的主要途径 2 微型单片化 现在常规的单片机普遍都是将中央处理器 CPU 随机存取数据存储 RAM 只读程序存储器 ROM 并行和串行通信接口 中断系统 定时电路 时钟电 路集成在一块单一的芯片上 增强型的单片机集成了如 A D 转换器 PMW 脉 宽调制电路 WDT 看门狗 有些单片机将 LCD 液晶 驱动电路都集成在单一 的芯片上 这样单片机包含的单元电路就更多 功能就越强大 3 甚至单片机 厂商还可以根据用户的要求量身定做 制造出具有自己特色的单片机芯片 此 外 现在的产品普遍要求体积小 重量轻 这就要求单片机除了功能强和功耗低 外 还要求其体积要小 4 现在的许多单片机都具有多种封装形式 其中 3 SMD 表面封装 越来越受欢迎 使得由单片机构成的系统正朝微型化方向发展 3 主流与多品种共存 现在虽然单片机的品种繁多 各具特色 但仍以 80C51 为核心的单片机占 主流 兼容其结构和指令系统的有 PHILIPS 公司的产品 ATMEL 公司的产品 和中国台湾的 Winbond 系列单片机 2 所以 C8051 为核心的单片机占据了半壁 江山 而 Microchip 公司的 PIC 精简指令集 RISC 也有着强劲的发展势头 中 国台湾的 HOLTEK 公司近年的单片机产量与日俱增 与其低价质优的优势 占 据一定的市场分额 此外还有 MOTOROLA 公司的产品 日本几大公司的专用 单片机 在一定的时期内 这种情形将得以延续 将不存在某个单片机一统天下 的垄断局面 走的是依存互补 相辅相成 共同发展的道路 4 大容量 高性能 以往单片机内的 ROM 为 1KB 4KB RAM 为 64 128B 但在需要复杂 控制的场合 该存储容量是不够的 必须进行外接扩充 为了适应这种领域的 要求 须运用新的工艺 使片内存储器大容量化 目前 单片机内 ROM 最大可 达 64KB RAM 最大为 2KB 另外单片机进一步改变 CPU 的性能 加快指令 运算的速度和提高系统控制的可靠性 采用精简指令集 RISC 结构和流水线技 术 可以大幅度提高运行速度 4 现指令速度最高者已达 100MIPS Million Instruction Per Seconds 即兆指令每秒 并加强了位处理 中断和定时控制功 能 这类单片机的运算速度比标准的单片机高出 10 倍以上 5 由于这类单片 机有极高的指令速度 可以使用软件模拟其 I O 功能 由此引入了虚拟外设的 新概念 5 串行扩展技术 在很长一段时间里 通用型单片机通过三总线结构扩展外围器件成为单片机 应用的主流结构 随着低价位 OTP One Time Programble 及各种特殊类型片内 程序存储器的发展 加之处围接口不断进入片内 推动了单片机 单片 应用结 构的发展 特别是 I2C SPI 等串行总线的引入 可以使单片机的引脚设计得 更少 单片机系统结构更加简化及规范化 6 结论 单片机改变了我们生活 纵观我们现在生活的各个领域 从导弹的导 航装置 到飞机上各种仪表的控制 从计算机的网络通讯与数据传输 到工业 自动化过程的实时控制和数据处理 以及我们生活中广泛使用的各种智能 IC 卡 电子宠物等 这些都离不开单片机 单片机有着广阔的应用前景 1 4 设计的意义 单片机应用的重要意义还在于 它从根本上改变了传统的控制系统设计思 想和设计方法 从前必须由模拟电路或数字电路实现的大部分功能 现在已能 4 用单片机通过软件方法来实现了 这种软件代替硬件的控制技术也称为微控制 技术 是传统控制技术的一次革命 单片机模块中最常见的是电子万年历 电子万年历是一种用数字电路技术 实现时 分 秒计时的装置 与机械式时钟相比具有更高的准确性和直观性 且无机械装置 具有更更长的使用寿命 因此得到了广泛的使用 电子万年历是采用数字电路实现对时 分 秒数字显示的计时装置 广泛用 于个人家庭 车站 码头办公室等公共场所 成为人们日常生活中不可少的必 需品 由于数字集成电路的发展和石英晶体振荡器的广泛应用 使得电子万年历 的精度 远远超过老式的计时方法 电子万年历的数字化给人们生产生活带来了 极大的方便 而且大大地扩展了原先的报时功能 诸如定时自动报警 按时自 动打铃 时间程序自动控制 定时广播 自动起闭路灯 定时开关烘箱 通断 动力设备 甚至各种定时电气的自动启用等 所有这些都是以钟表数字化为基 础的 因此 研究电子万年历及扩大其应用 有着非常现实的意义 随着电子技术的迅速发展 特别是随着大规模集成电路的出现 给人类生 活带来了根本性的变化 尤其是单片机技术的应用产品已经走进了千家万户 电子万年历的出现给人们的生活带来了诸多方便 但传统的电子万年历除显示 时间以外 功能较为单一 逐渐失去了市场 新型电子万年历的产生 更会带来 更多方便 现在的发展方向以实用型 方便型 美观型 精巧型为主 电子万 年历作为电子类小设计不仅是市场上的宠儿 也是单片机实验中一个很常用的 题目 我国生产的电子万年历有很多种 总体上来说以研究多功能电子万年历为 主 使万年历除了原有的显示时间 日期等基本功能外 还具有闹铃 报警等 功能 商家生产的电子万年历更从质量 价格 实用上考虑 不断的改进电子 万年历的设计 使其更加的具有市场 1 5 对设计的认识 本设计为软件 硬件相结合的一组设计 在软件设计过程中 应对硬件部 分有相关了解 这样有助于对设计题目的更深了解 有助于软件设计 基本的 要了解一些主要器件的基本功能 作用 除了采用集成化的时钟芯片外 还有采用 MCU 的方案 利用 AT89 系列 单片微机制成万年历电路 采用软件和硬件结合的方法 控制 LED 数码管输出 分别用来显示年 月 日 时 分 秒 其最大特点是 硬件电路简单 安装 方便易于实现 软件设计独特 可靠 7 AT89C51 是由 ATMEL 公司推出的一 种小型单片机 95 年出现在中国市场 其主要特点为采用 Flash 存贮器技术 降低了制造成本 其软件 硬件与 MCS 51 完全兼容 可以很快被中国广大用 户接受 5 本课题所研究的电子万年历是单片机控制技术的一个具体应用 主要研究 内容包括以下几个方面 1 选用电子万年历芯片时 应重点考虑功能实在 使用方便 单片存储 低功耗 抗断电的器件 2 根据选用的电子万年历芯片设计外围电路和单片机的接口电路 3 在硬件设计时 结构要尽量简单实用 易于实现 使系统电路尽量简 单 4 根据硬件电路图 在开发板上完成器件的焊接 5 根据设计的硬件电路 编写控制 AT89C51 芯片的单片机程序 6 通过编程 编译 调试 把程序下载到单片机上运行 并实现本设计 的功能 7 在硬件电路和软件程序设计时 主要考虑提高人机界面的友好性 方 便用户操作等因素 8 软件设计时必须要有完善的思路 要做到程序简单 调试方便 6 第二章 设计要求与方案论证 2 1 设计要求 能设计并制作出功能比较全面 价格较为适中的电子万年历 1 基本要求 具有年 月 日 星期 时 分 秒等功能 万年历具有闰月识别显示功能 具备年 月 日 星期 时 分 秒校准功能 2 创新要求 万年历具有阴历显示功能 具有测量室内温度功能 设计相应的软件并与硬件设计者共同完成系统的软件设计工作 基本完成 系统的软 硬件统调工作 PIC 单片机 是 MICROCHIP 公司的产品 其突出的特点是体积小 功耗低 精简指令集 抗 干扰性好 可靠性高 有较强的模拟接口 代码保密性好 大部分芯片有其兼 容的 FLASH 程序存储器的芯片 EMC 单片机 是台湾义隆公司的产品 有很大一部分与 PIC 8 位单片机兼容 且相兼 容产品的资源相对比 PIC 的多 价格便宜 有很多系列可选 但抗干扰较差 ATMEL 单片机 51 单片机 ATMEl 公司的 8 位单片机有 AT89 AT90 两个系列 AT89 系列是 8 位 Flash 单片机 与 8051 系列单片机相兼容 静态时钟模式 AT90 系列单片机 是增强 RISC 结构 全静态工作方式 内载在线可编程Flash 的单片机 也 叫 AVR 单片机 PHLIPIS 51PLC 系列单片机 51 单片机 PHILIPS 公司的单片机是基于 80C51 内核的单片机 嵌入了掉电检测 模拟以及片内 RC 振荡器等功能 这使 51LPC 在高集成度 低成本 低功耗 的应用设计中可以满足多方面的性能要求 HOLTEK 单片机 7 台湾盛扬半导体的单片机 价格便宜 种类较多 但抗干扰较差 适用于 消费类产品 TI 公司单片机 51 单片机 德州仪器提供了 TMS370 和 MSP430 两大系列通用单片机 TMS370 系列单片 机是 8 位 CMOS 单片机 具有多种存储模式 多种外围接口模式 适用于复杂的实 时控制场合 MSP430 系列单片机是一种超低功耗 功能集成度较高的 16 位低功 耗单片机 特别适用于要求功耗低的场合 2 2 1 单片机芯片的选择方案和论证 采用 89C51 芯片作为硬件核心 数码管显示 为使用户更清楚更明白 万 年历的日期和时间是分开显示 同时分别对应两个 74LS138 芯片用于控制数码 管显示 还有 74LS373 译码器芯片 74LS21 芯片是用于控制键盘的功能 8 74LS138 引脚图如图 2 1 所示 图 2 1 74LS138 引脚图 74LS138 的八个输出引脚 任何时刻要么全为高电平 1 也就是芯片处于不 工作状态 要么只有一个为低电平 0 其余 7 个输出引脚全为高电平 1 16 如 果出现两个输出引脚同时为 0 的情况 说明该芯片已经损坏 74LS373 原理图 如图 2 2 所示 8 图 2 2 74LS373 原理图 当 74LS373 用作地址锁存器时 应使 OE 为低电平 此时锁存使能端 G 为高 电平时 输出 Q1 Q8 状态与输入端 D1 D8 状态相同 当 G 发生负的跳变时 输 入端 D1 D8 数据锁入 Q1 Q8 51 单片机的 ALE 信号可以直接与 74LS373 的 G 连 接 在 MCS 51 单片机系统中 常采用 74LS373 作为地址锁存器使用 其连接方 法如上图所示 其中输入端 1D 8D 接至单片机的 P0 口 输出端提供的是低 8 位 地址 G 端接至单片机的地址锁存允许信号 ALE 7 输出允许端 OE 接地 表示 输出三态门一直打开 2 2 2 显示模块选择方案 采用 LED 数码管动态扫描 LED 数码管价格适中 对于显示数字最合适 而且 采用动态扫描法与单片机连接时 占用的单片机口线少 9 使用多个数码管显 示 LED 数码管是利用二极管发光显示数字和字母 具有亮度大 接口设计比较 容易 价格相对较便宜等优点 所以采用了 LED 数码管作为显示 数码管电路如 图 2 3 所示 9 图 2 3 数码管电路 2 3 键盘的选择 采用独立式按键电路 每个键单独占有一根 I O 接口线 每个 I O 口的工 作状态互不影响 此类键盘采用端口直接扫描方式 15 而且在本次实验课设用 的键盘很少 所以采用独立式按键比较实用 键盘简图如图 2 4 所示 图 2 4 键盘简图 2 4实现定时 直接采用单片机定时计数器提供秒信号 使用程序实现年 月 日 时 分 秒计数 采用此种方案虽然减少芯片的使用 节约成本 但是 实现的时 间误差较大 10 2 5 电路设计最终方案决定 综上各方案所述 对此次作品的方案选定 采用 AT89C51 作为主控制系统 LED 数码管动态扫描作为显示 两个 74LS138 和一个 74LS21 芯片 器件的选用 单片机 AT89C51 电容 RESPACK 8 三个 74LS164 串行接口 传感器 DS1302 主要单片机类型如下 1 MCS 51 系列单片机 MCS 51 系列单片机主要是指 Intel 公司生产的以 51 位内核的单片机芯片 具有 8 位 CPU 4K 字节 ROM 128 字节 RAM 可扩展外部 64K 字节 RAM 和 ROM 2 个 16 位的定时器 计数器 4 个 8 位并行 I O 口 1 个全双工串行 I O 口 21 字节的专用寄存器 5 个中断源 片内自带振荡器 片内单总线等功 能部件 2 AT89C51 单片机 AT89C51 单片机的主要特性如下 与 MCS 51 产品指令系统完全兼容 4K 字节的在线编程 Flash 存储器 1000 次擦写周期 4 0 5 5V 的工作电压范围 全静态工作模式 0 33MHz 三级程序存储器锁 128 8 字节内部 RAM 32 个可编程 I O 口线 2 个 16 位定时 计数器 6 个中断源 全双工串行 UART 通道 低功耗空闲和掉电模式 中断可从空闲模式唤醒系统 看门狗 WDT 及双数据指针 掉电标识和快速编程特性 具有掉电状态下的中断恢复功能 灵活的在系统编程 ISP 字节或页写模式 由于 AT89C51 单片机片内有 4K 字节的在线编程 Flash 存储器 可以擦写 11 1000 次 具有掉电模式 而且具有掉电状态下的中断恢复功能 对设计开发非 常实用 所以选用 AT89C51 单片机作为电子万年历芯片的控制单片机 12 第三章 系统的硬件设计与实现 3 1 电路设计框图 图 3 1 电路设计框图 3 2 系统硬件概述 本电路是由 AT89S51 单片机为控制核心 具有在线编程功能 低功耗 能 在 3V 超低压工作 时钟电路由 DS1302 提供 它是一种高性能 低功耗 带 RAM 的实时时钟电路 它可以对年 月 日 周日 时 分 秒进行计时 具 有闰年补偿功能 工作电压为 2 5V 5 5V 10 采用三线接口与 CPU 进行同步通 信 并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据 DS1302 内部 有一个 31 8 的用于临时性存放数据的 RAM 寄存器 16 可产生年 月 日 周 日 时 分 秒 具有使用寿命长 精度高和低功耗等特点 同时具有掉电自 动保存功能 温度的采集由 DS18B20 构成 显示部份由 21 个数码管 74LS138 74LS47 译码器构成 使用动态扫描显示方式对数字的显示 系统硬件框图如图 3 2 AT89S51 主控制模 块 DS1302 时钟模块 LED 数码管动态 扫描显示模块 键盘模块 13 时钟芯片 DS1302 串口 AT89C5 1 P2 口 LED 显示器 驱动电路 图 3 2 系统硬件框图 3 3 主要单元电路的设计 3 3 1 单片机主控制模块的设计 本系统采用的是美国 ATMEL 公司生产的 AT89C51 单片机 首先我们来熟 悉一下 AT89C51 单片机的外部引脚和内部结构 1 单片机的引脚功能 AT89C51 单片机有 40 个引脚 Vcc 电源电压 5V GND 接地 P0 口 P0 口是一组 8 位漏极开路型双向 I O 口 也即地址 数据总线复 用口 作为输出口用时 每位能驱动 8 个 TTL 逻辑门电路 对端口写 1 可 作为高阻抗输入端用 在访问外部数据存储器或程序存储器时 这组口线分时转换地址 低 8 位 和数据总线服用 在访问期间激活内部上拉电阻 在 Flash 编程时 P0 口接收指令字节 而在程序校验时 输出指令字节 校验时要求外接上拉电阻 P1 口 P1 口是一个带内部上拉电阻的 8 位双向 I O P1 的输出缓冲级 可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口写 1 通过内部的 上拉电阻把端口拉到高电平 此时可作输入口 作输入口使用时 因为内部存 在上拉电阻 某个引脚被外部信号拉低时会输出一个电流 14 Flash 编程和程序校验期间 P1 接收低 8 位地址 P2 口 P2 口是一个带内部上拉电阻的 8 位双向 I O P2 的输出缓冲级 可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口写 1 通过内部的 上拉电阻把端口拉到高电平 此时可作输入口 作输入口使用时 因为内部存 在上拉电阻 某个引脚被外部信号拉低时会输出一个电流 在访问外部程序存储器或 16 位地址的外部数据存储器 例如执行 MOVX DPTR 指令 时 P2 口送出高 8 位地址数据 在访问 8 位地址的外部 数据存储器 MOVX Ri 指令 时 P2 口线上的内容 也即特殊功能寄存器 SFR 区中 P2 寄存器的内容 在整个访问期间不改变 Flash 编程和程序校验期间 P2 亦接收低高位地址和其他控制信号 P3 口 P3 口是一组带内部上拉电阻的 8 位双向 I O P3 的输出缓冲级 可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对 P3 口写入 1 时 它们 被内部的上拉电阻拉高并可作为输入端口 作输入端时 被外部拉低的 P3 口将 用上拉电阻输出电流 P3 口除了作为一般的 I O 口线外 更重要的用途是它的 第二功能 见表 3 1 所示 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号 表 3 1 P3 口的第二功能图 端口引脚第二功能 P3 0RXD 串行输入口 P3 1TXD 串行输出口 P3 2INT0 外中断 0 P3 3INT1 外中断 1 P3 4T0 定时 计时器 0 外部输入 P3 5T1 定时 计时器 1 外部输入 P3 6WR 外部数据存储器写选通 P3 7RD 外部数据存储器读选通 RST 复位输入 当振荡器工作时 RST 引脚出现两个机器周期以上高 电平将使单片机复位 WDT 溢出将使引脚输出高电平 设置 SFR AUXR 的 DISRT0 地址 8EH 可打开或关闭该功能 DISRT0 位缺省为 RESET 输出高 电平打开状态 ALE PROG 当访问外部程序存储器或数据存储器时 ALE 地址锁存 器允许 输出脉冲用于锁存地址的低 8 位字节 即使不访问外部存储器 ALE 仍以时钟振荡频率的 1 6 输出固定的正脉冲信号 因此它可对外输出时钟或用 于定时目的 要注意的是 每当访问外部数据存储器时将跳过一个 ALE 脉冲 15 对 Flash 存储器编程期间 该引脚还用于输入编程脉冲 PROG 如有必要 可通过多特殊功能寄存器 SFR 区中的 8EH 单元的 D0 位置 可禁止 ALE 操作 该位置后 只有一条 MOVX 和 MOVC 指令 ALE 才会被激 活 另外 该引脚会被微弱拉高 单片机执行外部程序时 应设置 ALE 无效 PSEN 程序存储允许 PSEN 输出是外部程序存储器的读选通信号 当 AT89C51 由外部程序存储器取指令 或数据 时 每个机器周期两次 PSEN 有效 即输出两个脉冲 当访问外部数据存储器 没有两次有效的 PSEN 信号 EA VPP 外部访问允许 欲使 CPU 仅访问外部程序存储器 地址为 0000H FFFFH EA 端必须保持低电平 接地 需要注意的是 如果加密位 LB1 被编程 复位时内部会锁存 EA 端状态 如 EA 端为高电平 接 Vcc 端 CPU 则执行内部程序存储器中的指令 Flash 存储器编程时 该引脚加上 12V 的变成电压 Vpp XTAL1 振荡器反相放大器及内部时钟发生器的输入端 XTAL2 振荡器反相放大器的输出端 AT89C51 单片机内部结构 2 AT89C51 单片机与 MCS 51 完全兼容 看门狗 WDT WDT是一种需要软件控制的复位方式 WDT 由13 位计数器和特殊功能寄存器中的看门狗定时器复位存储器 WDTRST 构成 WDT 在默认情况下无法工作 为了激活WDT 用户必须往WDTRST 寄存器 地址 0A6H 中依次写入01EH 和0E1H 当WDT激活后 晶振工作 WDT 在每个机器周期都会增加 WDT计时周期依赖于外部时钟频率 除了复位 硬 件复位或WDT溢出复位 没有办法停止WDT工作 当WDT溢出 它将驱动 RSR引脚输出一个高电平 可编程串口 UART 在AT89C51中 UART 的操作与AT89C51 和 AT89C52 一样 AT89C51系列单片机的串行通信口可以工作于同步和异步通信 方式 当工作于异步方式时 它具有全双工的操作功能 也就是说 它可以同 时进行数据的发送和接收 串行口内的接收器采用的是双缓冲结构 能够在接 收到的第一个字节从接收寄存器读走之前就开始接收第二个字节 当然 如果 第二个字节接收完毕 而第一个字节仍然没有被读走 那将会丢掉一个字节 串行口的发送和接收操作都是通过特殊功能寄存器中的数据缓冲寄存器SBUF进 行的 但在SBUF的内部 接收寄存器和发送寄存器在物理结构上是完全独立的 如果将数据写入SBUF 数据会被送入发送寄存器准备发送 如果执行SBUF指 令 则读出的数据一定来自接收缓存器 因此 CPU对SBUF的读写 实际上是 分别访问2个不同的寄存器 这2个寄存器的功能决不能混淆 16 振荡电路 AT89C51系列单片机的内部振荡器 由一个单极反相器组成 XTAL1反相器的输入 XTAL2为反相器的输出 可以利用它内部的振荡器产生 时钟 只要XTAL1和XTAL2引脚上一个晶体及电容组成的并联谐振电路 便构 成一个完整的振荡信号发生器 此方式称为内部方式 另一种方式由外部时钟 源提供一个时钟信号到XTAL1端输入 而XTAL2端浮空 在组成一个单片机应 用系统时 多数采用这种方式 这种方式结构紧凑 成本低廉 可靠性高 在 电路中 对电容C1和C2的值要求不是很严格 如果使用高质的晶振 则不管频 率为多少 C1 C2通常都选择30pF 定时 计数器 AT89C51单片机内含有2个16位的定时器 计数器 当用 于定时器方式时 定时器的输入来自内部时钟发生电路 每过一个机器周期 定时器加1 而一个机器周期包含有12个振荡周期 所以 定时器的技术频率为 晶振频率的1 12 而计数频率最高为晶振频率的1 24 为了实现定时和计数功能 定时器中含有3种基本的寄存器 控制寄存器 方式寄存器和定时器 计数器 控制寄存器是一个8位的寄存器 用于控制定时器的工作状态 方式寄存器是一 个8位的寄存器 用于确定定时器的工作方式 定时器 计数器是16位的计数器 分为高字节和低字节两部分 RAM 高于7FH内部数据存储器的地址是8位的 也就是说其地址空间 只有256字节 但内部RAM的寻址方式实际上可提供384字节 的直接地址访问 同一个存储空间 高于7FH的间接地址访问另一个存储空间 这样 虽然高128 字节区分与专用寄器 即特殊功能寄存器区的地址是重合的 但实际上它们是 分开的 究竟访问哪一区 存是通过不同的寻址方式加以区分的 SFR SFR是具有特殊功能的所有寄存器的集合 共含有22个不同寄存 器 它们的地址分配在80H FFH中 虽然如此 不是所有的单元都被特殊功能 寄存器占用 未被占用的单元 其内容是不确定的 如对这些单元进行读操作 得到的是一些随机数 而写入则无效 所以在编程时不应该将数据写入这些未 确定的地址单元中 特殊功能寄存器主要有累加器ACC B寄存器 程序状态 字寄存器PSW 堆栈指针SP 数据指针DPTR I O端口 串行口数据缓冲器 SBUF 定时器寄存器 捕捉寄存器 控制寄存器 中断系统 AT89C51 单片机有 6 个中断源 中断系统主要由中断允许 寄存器 IE 中断优先级寄存器 IP 优先级结构和一些逻辑门组成 IE 寄存器用 于允许或禁止中断 IP 寄存器用于确定中断源的优先级别 优先级结构用于执 行中断源的优先排序 有关逻辑门用于输入中断请求信号 在整个中断响应过 程中 CPU 所执行的操作步骤如下 1 完成当前指令的操作 2 将 PC 内容压入堆栈 17 3 保存当前的中断状态 4 阻止同级的中断请求 5 将中断程序入口地址送 PC 寄存器 6 执行中断服务程序 7 返回 3 3 2 时钟电路模块的设计 现在流行的串行时钟电路很多 如 DS1302 DS1307 PCF8485 等 这些电 路的接口简单 价格低廉 使用方便 被广泛地采用 本文介绍的实时时钟电 路 DS1302 是 DALLAS 公司的一种具有涓细电流充电能力的电路 主要特点是采 用串行数据传输 可为掉电保护电源提供可编程的充电功能 并且可以关闭充 电功能 采用普通 32 768kHz 晶振 DS1302 是美国 DALLAS 公司推出的一种高性能 低功耗 带 RAM 的实时时 钟电路 它可以对年 月 日 周日 时 分 秒进行计时 具有闰年补偿功 能 工作电压为 2 5V 5 5V 采用三线接口与 CPU 进行同步通信 并可采用突 发方式一次传送多个字节的时钟信号或 RAM 数据 DS1302 内部有一个 31 8 的 用于临时性存放数据的 RAM 寄存器 DS1302 是 DS1202 的升级产品 与 DS1202 兼容 但增加了主电源 后背电源双电源引脚 同时提供了对后背电源进行涓细 电流充电的能力 DS1302 的引脚排列 其中 Vcc1 为后备电源 Vcc2 为主电源 在主电源关闭 的情况下 也能保持时钟的连续运行 DS1302 由 Vcc1 或 Vcc2 两者中的较大者 供电 当 Vcc2 大于 Vcc1 0 2V 时 Vcc2 给 DS1302 供电 当 Vcc2 小于 Vcc1 时 DS1302 由 Vcc1 供电 X1 和 X2 是振荡源 外接 32 768kHz 晶振 RST 是复 位 片选线 通过把 RST 输入驱动置高电平来启动所有的数据传送 RST 输入有 两种功能 首先 RST 接通控制逻辑 允许地址 命令序列送入移位寄存器 其 次 RST 提供终止单字节或多字节数据的传送手段 当 RST 为高电平时 所有 的数据传送被初始化 允许对 DS1302 进行操作 如果在传送过程中 RST 置为低 电平 则会终止此次数据传送 I O 引脚变为高阻态 上电运行时 在 Vcc 2 5V 之前 RST 必须保持低电平 只有在 SCLK 为低电平时 才能将 RST 置为高电平 I O 为串行数据输入输出端 双向 后面有详细说明 SCLK 始终 是输入端 DS1302 的控制字节的最高有效位 位 7 必须是逻辑 1 如果它为 0 则不 能把数据写入 DS1302 中 位 6 如果为 0 则表示存取日历时钟数据 为 1 表示 存取 RAM 数据 位 5 至位 1 指示操作单元的地址 最低有效位 位 0 如为 0 表示 要进行写操作 为 1 表示进行读操作 控制字节总是从最低位开始输出 在控制指令字输入后的下一个 SCLK 时钟的上升沿时 数据被写入 18 DS1902 数据输入从低位即位 0 开始 同样 在紧跟 8 位的控制指令字后的下 一个 SCLK 脉冲的下降沿读出 DS1302 的数据 读出数据时从低位 0 位到高位 7 DS1302 有 12 个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数 据位为 BCD 码形式 其日历 时间寄存器及其控制字见表 1 此外 DS1302 还有年份寄存器 控制寄存器 充电寄存器 时钟突发寄存 器及与 RAM 相关的寄存器等 时钟突发寄存器可一次性顺序读写除充电寄存器 外的所有寄存器内容 DS1302 与 RAM 相关的寄存器分为两类 一类是单个 RAM 单元 共 31 个 每个单元组态为一个 8 位的字节 其命令控制字为 C0H FDH 其中奇数为读操作 偶数为写操作 另一类为突发方式下的 RAM 寄 存器 此方式下可一次性读写所有的 RAM 的 31 个字节 命令控制字为 FEH 写 FFH 读 DS1302 与 CPU 的连接需要三条线 即 SCLK 7 I O 6 RST 5 DS1902 与 89C2051 的连接图 其中 时钟的显示用 LED DS1302 与 CPU 的连接 实际上 在调试程序时可以不加电容器 只加一个 32 768kHz 的晶振即可 只是选择晶振时 不同的晶振 误差也较大 另外 还可以在上面的电路中加入 DS18B20 同时显示实时温度 只要占用 CPU 一个 口线即可 LED 还可以换成 LCD 还可以使用北京卫信杰科技发展有限公司生 产的 10 位多功能 8 段液晶显示模块 LCM101 内含看门狗 WDT 时钟发生器及 两种频率的蜂鸣器驱动电路 并有内置显示 RAM 可显示任意字段笔划 具有 3 4 线串行接口 可与任何单片机 IC 接口 功耗低 显示状态时电流为 2 A 典型值 省电模式时小于 1 A 工作电压为 2 4V 3 3V 显示清晰 DS1302 的实时时间流程 根据流程框图 不难采集实时时间 下面对 DS1302 的基本操作进行编程 根据本人在调试中遇到的问题 特作如下说明 DS1302 与微处理器进行数据交换时 首先由微处理器向电路发送命令字节 命令字节最高位 MSB D7 必须为逻辑 1 如果 D7 0 则禁止写 DS1302 即写保 护 D6 0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论