电子万年历毕业设计(打印稿).doc_第1页
电子万年历毕业设计(打印稿).doc_第2页
电子万年历毕业设计(打印稿).doc_第3页
电子万年历毕业设计(打印稿).doc_第4页
电子万年历毕业设计(打印稿).doc_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计说明书电子万年历 1 目目 录录 摘 要 3 一设计要求与方案论证 4 1.1 设计要求 .4 1.1.1 基本要求.4 1.1.2 创新要求.4 1.2 系统基本方案选择和论证 4 1.2.1 单片机芯片.4 1.2.2 显示模块 5 1.2.3 时钟芯片.5 1.2.4 温度传感器.6 1.3 电路设计最终方案决定 6 二电子万年历硬件设计与实现 7 2.1 电子万年历系统设计 7 2.1.1 系统设计框图.7 2.1.2 系统硬件概述 7 2.2 系统硬件各模块作用.7 2.2.1 单片机主控制模块.7 2.2.2 时钟电路模块10 2.2.3 温度采集模块14 2.2.4 显示模块15 2.3 电子万年历电路设计18 2.3.1 系统电路图18 2.3.2 电路图分析 .19 三电子万年历软件设计 .20 3.1 程序流程框图20 3.1.1 总流程图20 3.1.2 阳历程序流程图 .21 3.1.3 阴历程序流程图 .21 3.1.4 时间调整程序流程图 .22 3.2 部分程序的设计 .23 3.2.1 ds18b20 温度子程序23 3.2.2 读、写 ds1302 子程序 24 四. 指标测 .25 4.1 测试仪器 .25 毕业设计说明书电子万年历 2 4.硬件测试 .25 4.软件测试 .25 4.测试结果分析与结论 .26 4.4.1 测试结果分析 .26 4.4.2 测试结论 .26 五设计总结 .27 致 谢 .28 参考文献 .29 附录一:系统程序清单 .30 附录二:系统使用说明书 .46 毕业设计说明书电子万年历 3 摘摘 要要 电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、 周、时、分、秒进行计时,还具有闰年补偿等多种功能。 电子万年历设计是基于单片机进行的,可以显示年、月、日、时、分、秒、周及温度信息, 具有可调整日期和时间功能。设计包含 at89s52 单片机模块、led 数码管模块、键盘模块、 ds1302 模块、数字式温度传感器 ds18b20 模块。at89s52 单片机作为核心,功耗小,能在 3v 的 低压工作,电压可选用 35v 电压供电。led 数码管动态扫描,对于显示数字最合适,价格适中, 而且采用动态扫描法与单片机连接时,占用的单片机口线少。ds1302 的使用寿命长,误差小。 对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温 度等信息,还具有时间校准等功能。数字式温度传感器 ds18b20 仅需要一条数据线进行数据传 输,易与单片机连接简化系统电路.数字式温度传感器还具有测量精度高、测量范围广等优点。 关键词:at89s52;ds1302;ds18b20;led 数码管;单片机 毕业设计说明书电子万年历 4 一设计要求与方案论证一设计要求与方案论证 1.11.1 设计要求设计要求 1.1.11.1.1 基本要求基本要求 具有年、月、日、星期、时、分、秒等功能; 时间与阴、阳历能够自动关联; 具备年、月、日、星期、时、分、秒校准功能; 1.1.21.1.2 创新要求创新要求 具有温度计功能; 1.21.2 系统基本方案选择和论证系统基本方案选择和论证 1.2.11.2.1 单片机芯片单片机芯片 picpic 单片机单片机 是 microchip 公司的产品,其突出的特点是体积小,功耗低,精简指令集,抗干扰性好,可靠性 高,有较强的模拟接口,代码保密性好,大部分芯片有其兼容的 flash 程序存储器的芯片。 emcemc 单片机单片机 是台湾义隆公司的产品,有很大一部分与 pic 8 位单片机兼容,且相兼容产品的资源相对比 pic 的多,价格便宜,有很多系列可选,但抗干扰较差。 atmelatmel 单片机单片机 atmel 公司的 8 位单片机有 at89、at90 两个系列,at89 系列是 8 位 flash 单片机,与 8051 系列单片机相兼容,静态时钟模式;at90 系列单片机是增强 risc 结构、全静态工作方式、内载在 线可编程 flash 的单片机,也叫 avr 单片机。 phlipisphlipis 51plc51plc 系列单片机系列单片机 philips 公司的单片机是基于 80c51 内核的单片机,嵌入了掉电检测、模拟以及片内 rc 振荡 器等功能,这使 51lpc 在高集成度、低成本、低功耗的应用设计中可以满足多方面的性能要求。 holtekholtek 单片机单片机 台湾盛扬半导体的单片机,价格便宜,种类较多,但抗干扰较差,适用于消费类产品。 毕业设计说明书电子万年历 5 titi 公司单片机公司单片机 德州仪器提供了 tms370 和 msp430 两大系列通用单片机.tms370 系列单片机是 8 位 cmos 单 片机,具有多种存储模式、多种外围接口模式,适用于复杂的实时控制场合;msp430 系列单片机是 一种超低功耗、功能集成度较高的 16 位低功耗单片机,特别适用于要求功耗低的场合。 方案一方案一 采用 89c51 芯片作为硬件核心,采用 flash rom,内部具有 4kb rom 存储空间,能于 3v 的 超低压工作,而且与 mcs-51 系列单片机完全兼容,但是运用于电路设计中时由于不具备 isp 在线 编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时, 对芯片的多次拔插会对芯片造成一定的损坏。 方案二方案二 采用 at89s52,片内 rom 全都采用 flash rom;能以 3v 的超底压工作;同时也与 mcs-51 系 列单片机完全该芯片内部存储器为 8kb rom 存储空间,同样具有 89c51 的功能,且具有在线编 程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程 序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。 所以选择采用 at89s52 作为主控制系统。 1.2.21.2.2 显示模块显示模块 方案一方案一 采用 led 液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可 见,但是价格昂贵,需要的接口线多,所以在此设计中不采用 led 液晶显示屏。 方案二方案二 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比 较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。 方案三方案三 采用 led 数码管动态扫描,led 数码管价格适中,对于显示数字最合适,而且采用动态扫描法 与单片机连接时,占用的单片机口线少。 所以采用了 led 数码管作为显示。 1.2.31.2.3 时钟芯片时钟芯片 方案一方案一 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计 毕业设计说明书电子万年历 6 数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用 此方案。 方案二方案二 采用 ds1302 时钟芯片实现时钟,ds1302 芯片是一种高性能的时钟芯片,可自动对秒、分、 时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的 ram 做为数据暂存区,工作 电压 2.5v5.5v 范围内,2.5v 时耗电小于 300na。 所以采用 ds1302 时钟芯片实现时钟。 1.2.41.2.4 温度传感器温度传感器 方案一方案一 使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻 值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行 a/d 转换。 。此设计方案需 用 a/d 转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大 的测量误差。 方案二方案二 采用数字式温度传感器 ds18b20,此类传感器为数字式传感器而且仅需要一条数据线进行数 据传输,易于与单片机连接,可以去除 a/d 模块,降低硬件成本,简化系统电路。另外,数字 式温度传感器还具有测量精度高、测量范围广等优点。 所以采用数字式温度传感器 ds18b20。 1.31.3 电路设计最终方案决定电路设计最终方案决定 综上各方案所述,对此次作品的方案选定: 采用 at89s52 作为主控制系统; ds1302 提供时钟; 数字式温度传感器 ds18b20;led 数码管动态扫描作为显示。 毕业设计说明书电子万年历 7 二电子万年历硬件设计与实现二电子万年历硬件设计与实现 2.12.1 电子万年历系统设计电子万年历系统设计 2.1.12.1.1 系统设计框图系统设计框图 2.1.22.1.2 系统硬件概述系统硬件概述 本电路是由 at89s52 单片机为控制核心,具有在线编程功能,低功耗,能在 3v 超低压工作; 时钟电路由 ds1302 提供,它是一种高性能、低功耗、带 ram 的实时时钟电路,它可以对年、月、 日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5v5.5v。采用三线接口 与 cpu 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 ram 数据。ds1302 内 部有一个 31*8 的用于临时性存放数据的 ram 寄存器。可产生年、月、日、周日、时、分、秒, 具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由 ds18b20 构成;显示部份由个数码管,74ls138、74ls47 译码器构成。使用动态扫描显示方式对数字 的显示。 2.22.2 系统系统硬件硬件各模块作用各模块作用 2.2.12.2.1 单片机主控制模块单片机主控制模块 主主要要性性能能 与 mcs-51 单片机产品兼容 、8k 字节在系统可编程 flash 存储器、 1000 次擦写周期、 全静态操作: 0hz33hz 、 三级加密程序存储器 、 32 个可编程 i/o 口线 、三个 16 位定时器/计数器 八个中断源 、全双工 uart 串行通道、 低功耗空闲和掉电模式 、掉 电后中断可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。 功功能能特特性性描描述述 at89s52 主控制模 块 ds1302 时钟模块 led 数码管动态扫 描显示模块 温度采集模块 键盘模块 毕业设计说明书电子万年历 8 at89s52 是一种低功耗、高性能 cmos8 位微控制器,具有 8k 在系统可编程 flash 存储器。使用 atmel 公司高密度非 易失性存储器技术制造,与工业80c51 产品指令和 引脚完 全兼容。片上 flash 允许程序存储器在系统可编程,亦适于 常规编程器。在单芯 片上,拥有灵巧的 8 位 cpu 和在系统 可编程 flash,使得 at89s52 为众多嵌入式控制应 用系统提 供高灵活、超有效的解决方案。 at89s52 具有以下标准功能: 8k 字节 flash,256 字节 ram, 32 位 i/o 口线,看门狗定时器, 2 个数据指针,三个 16 位 定 时器/计数器,一个 6 向量 2 级中断结构,全双工串行口, 片内晶振及时钟电路。另外, at89s52 可降至 0hz 静态逻 辑操作,支持 2 种软件可选择节电模式。空闲模式下, cpu 停止工作,允许 ram、定时器/计数器、串口、中断继续工 作。掉电保护方式下, ram 内 容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8k 字节在系统可编程 flash at89s52 p0 口:p0 口是一个 8 位漏极开路的双向 i/o 口。作为输出口,每位能驱动8 个 ttl 逻辑电平。对 p0 端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时, p0 口也被作为低 8 位地址/数据复用。在这种模式 下,p0 具有内部上拉电阻。 在 flash 编程时,p0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校 验时,需要外部上拉电阻。 p1 口:p1 口是一个具有内部上拉电阻的8 位双向 i/o 口,p1 输出缓冲器能驱动 4 个 ttl 逻辑电平。对 p1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。 此外,p1.0 和 p1.2 分别作定时器 /计数器 2 的外部计数输入( p1.0/t2)和时器/计 数器 2 的触发输入( p1.1/t2ex),具体如下表所示。 在 flash 编程和校验时, p1 口接收低 8 位地址字节。 引引脚脚号号第第二二功功能能 p1.0 t2(定时器/计数器 t2 的外部计数输入),时钟输出 p1.1 t2ex(定时器/计数器 t2 的捕捉/重载触发信号和方向控制) p1.5 mosi(在系统编程用) p1.6 miso(在系统编程用) p1.7 sck(在系统编程用) p2 口:p2 口是一个具有内部上拉电阻的8 位双向 i/o 口,p2 输出缓冲器能驱动 4 个 ttl 逻辑电平。对 p2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。 在访问外部程序存储器或用 16 位地址读取外部数据存储器(例如执行movx dptr) 时,p2 口送出高八位地址。在这种应用中, p2 口使用很强的内部上拉发送 1。在使用 8 位地址(如 movx ri)访问外部数据存储器时, p2 口输出 p2 锁存器的内容。 毕业设计说明书电子万年历 9 在 flash 编程和校验时, p2 口也接收高 8 位地址字节和一些控制信号。 p3 口:p3 口是一个具有内部上拉电阻的8 位双向 i/o 口,p2 输出缓冲器能驱动 4 个 ttl 逻辑电平。对 p3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。 p3 口亦作为 at89s52 特殊功能(第二功能)使用,如下表所示。 在 flash 编程和校验时, p3 口也接收一些控制信号。 端端口口引引脚脚 第第二二功功能能 p3.0 rxd(串行输入口 ) p3.1 txd(串行输出口 ) p3.2 into(外中断 0) p3.3 int1(外中断 1) p3.4 to(定时/计数器 0) p3.5 t1(定时/计数器 1) p3.6 wr(外部数据存储器写选通 ) p3.7 rd(外部数据存储器读选通 ) 此外,p3 口还接收一些用于 flash 闪存编程和程序校验的控制信号。 rst复位输入。当振荡器工作时, rst 引脚出现两个机器周期以上高电平将是单片 机复位。 ale/prog当访问外部程序存储器或数据存储器时, ale(地址锁存允许)输出脉 冲用于锁存地址的低 8 位字节。一般情况下, ale 仍以时钟振荡频率的 1/6 输出固定的脉 冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时 将跳过一个 ale 脉冲。 对 flash 存储器编程期间,该引脚还用于输入编程脉冲(prog)。 如有必要,可通过对特殊功能寄存器( sfr)区中的 8eh 单元的 d0 位置位,可禁止 ale 操作。该位置位后,只有一条movx 和 movc 指令才能将 ale 激活。此外,该引脚会被 微弱拉高,单片机执行外部程序时,应设置ale 禁止位无效。 psen程序储存允许( psen)输出是外部程序存储器的读选通信号,当at89c52 由 外部程序存储器取指令(或数据)时,每个机器周期两次psen 有效,即输出两个脉冲, 在此期间,当访问外部数据存储器,将跳过两次psen 信号。 ea/vpp外部访问允许,欲使 cpu 仅访问外部程序存储器(地址为0000h-ffffh), ea 端必须保持低电平(接地)。需注意的是:如果加密位lb1 被编程,复位时内部会锁存 ea 端状态。 如 ea 端为高电平(接 vcc 端),cpu 则执行内部程序存储器的指令。 flash 存储器编程时,该引脚加上 +12v 的编程允许电源 vpp,当然这必须是该器件是 使用 12v 编程电压 vpp。 at89s52 单片机为 40 引脚双列直插芯片,有四个 i/o 口 p0,p1,p2,p3, mcs-51 单片机共有 4 个 8 位的 i/o 口(p0、p1、p2、p3) ,每一条 i/o 线都能独立地作输出或输入。 单片机的最小系统如下图所示,18 引脚和 19 引脚接时钟电路,xtal1 接外部晶振和微调电容 毕业设计说明书电子万年历 10 的一端,在片内它是振荡器倒相放大器的输入,xtal2 接外部晶振和微调电容的另一端,在片内它 是振荡器倒相放大器的输出.第 9 引脚为复位输入端,接上电容,电阻及开关后够上电复位电路, 20 引脚为接地端,40 引脚为电源端,如图 2-1 所示。 图 2-1 主控制系统 2.2.22.2.2 时钟电路模块时钟电路模块 ds1302 是美国 dallas 公司推出的一种高性能、低功耗、带 ram 的实时时钟电路,它可以 对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5v5.5v。采 用三线接口与 cpu 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 ram 数据。 ds1302 内部有一个 318 的用于临时性存放数据的 ram 寄存器。ds1302 是 ds1202 的升级产品, 与 ds1202 兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流 充电的能力。 (1 1)d ds s1 13 30 02 2 的的结结构构及及工工作作原原理理 1.引脚功能及结构 ds1302 的引脚排列,其中 vcc1 为后备电源,vcc2 为主电源。在主电源关闭的情况下,也能 保持时钟的连续运行。ds1302 由 vcc1 或 vcc2 两者中的较大者供电。当 vcc2 大于 vcc10.2v 时,vcc2 给 ds1302 供电。当 vcc2 小于 vcc1 时,ds1302 由 vcc1 供电。x1 和 x2 是振荡源,外 接 32.768khz 晶振。rst 是复位/片选线,通过把 rst 输入驱动置高电平来启动所有的数据传送。 rst 输入有两种功能:首先,rst 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次, rst 提供终止单字节或多字节数据的传送手段。当 rst 为高电平时,所有的数据传送被初始化, 允许对 ds1302 进行操作。如果在传送过程中 rst 置为低电平,则会终止此次数据传送,i/o 引 脚变为高阻态。上电运行时,在 vcc2.5v 之前,rst 必须保持低电平。只有在 sclk 为低电平 毕业设计说明书电子万年历 11 时,才能将 rst 置为高电平。i/o 为串行数据输入输出端(双向),后面有详细说明。sclk 始终 是输入端。 2. ds1302 的控制字节 控制字节的最高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 ds1302 中,位 6 如果为 0,则表示存取日历时钟数据,为 1 表示存取 ram 数据;位 5 至位 1 指示操作单元的地 址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位 开始输出。 3. 数据输入输出(i/o) 在控制指令字输入后的下一个 sclk 时钟的上升沿时,数据被写入 ds1302,数据输入从低位 即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 sclk 脉冲的下降沿读出 ds1302 的数 据,读出数据时从低位 0 位到高位 7。 4. ds1302 的寄存器 ds1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 bcd 码形式 。 此外,ds1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 ram 相关 的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 ds1302 与 ram 相关的寄存器分为两类:一类是单个 ram 单元,共 31 个,每个单元组态为一个 8 位的字 节,其命令控制字为 c0hfdh,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 ram 寄存器,此方式下可一次性读写所有的 ram 的 31 个字节,命令控制字为 feh(写)、ffh(读)。 (2 2)ds1302ds1302 实时显示时间的软硬件实时显示时间的软硬件 ds1302 与 cpu 的连接需要三条线,即 sclk(7)、i/o(6)、rst(5)。 1.ds1302 与 cpu 的连接 实际上,在调试程序时可以不加电容器,只加一个 32.768khz 的晶振即可。只是选择晶振 时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入 ds18b20,同时显示实时温度。 只要占用 cpu 一个口线即可。 lcd 还可以换成 led,还可以使用北京卫信杰科技发展有限公司 生产的 10 位多功能 8 段液晶显示模块 lcm101,内含看门狗(wdt)/时钟发生器及两种频率的蜂鸣 器驱动电路,并有内置显示 ram,可显示任意字段笔划,具有 34 线串行接口,可与任何单片 机、ic 接口。功耗低,显示状态时电流为 2a (典型值),省电模式时小于 1a,工作电压为 2.4v3.3v,显示清晰。 2.ds1302 实时时间流程 ds1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高 位 msb(d7)必须为逻辑 1,如果 d7=0,则禁止写 ds1302,即写保护;d6=0,指定时钟数据, d6=1,指定 ram 数据;d5d1 指定输入或输出的特定寄存器;最低位 lsb(d0)为逻辑 0,指定写 操作(输入), d0=1,指定读操作(输出)。 在 ds1302 的时钟日历或 ram 进行数据传送时, ds1302 必须首先发送命令字节。若进行单字节传送,8 位命令字节传送结束之后,在下 2 个 sclk 周期的上升沿输入数据字节,或在下 8 个 sclk 周期的下降沿输出数据字节。 毕业设计说明书电子万年历 12 ds1302 与 ram 相关的寄存器分为两类:一类是单个 ram 单元,共 31 个,每个单元组态为一 个 8 位的字节,其命令控制字为 c0hfdh,其中奇数为读操作,偶数为写操作;再一类为突发 方式下的 ram 寄存器,在此方式下可一次性读、写所有的 ram 的 31 个字节。 尤其是备用电源 b1,可以用电池或者超级电容器(0.1f 以上)。虽然 ds1302 在主电源掉电 后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑 主板上的 3.6v 充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解 电容器代替。100 f 就可以保证 1 小时的正常走时。ds1302 在第一次加电后,必须进行初始 化操作。初始化后就可以按正常方法调整时间。 (3 3) 结论结论 ds1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。ds1302 可以用于数据记 录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。 这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。 传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无 法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一 方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是, 如果在系统中采用时钟芯片 ds1302,则能很好地解决这个问题。 (1)(1) 时钟芯片时钟芯片 ds1302ds1302 的工作原理的工作原理 ds1302 在每次进行读、写程序前都必须初始化,先把 sclk 端置 “0” ,接着把 rst 端置 “1” ,最后才给予 sclk 脉冲;读/写时序如下图 4 所示。图 5 为 ds1302 的控制字,此控制字的 位 7 必须置 1,若为 0 则不能把对 ds1302 进行读写数据。对于位 6,若对程序进行读/写时 ram=1,对时间进行读/写时,ck=0。位 1 至位 5 指操作单元的地址。位 0 是读/写操作位,进行 读操作时,该位为 1;该位为 0 则表示进行的是写操作。控制字节总是从最低位开始输入/输出 的。表 6 为 ds1302 的日历、时间寄存器内容:“ch”是时钟暂停标志位,当该位为 1 时,时钟 振荡器停止,ds1302 处于低功耗状态;当该位为 0 时,时钟开始运行。 “wp” 是写保护位,在任何的对时钟和 ram 的写操作之前,wp 必须为 0。当“wp”为 1 时,写保 护位防止对任一寄存器的写操作。 (2)(2) ds1302ds1302 的控制字节的控制字节 ds1302 的控制字如表 2-1 所示。控制字节的高有效位(位 7)必须是逻辑 1,如果它为 0, 则不能把数据写入 ds1302 中,位 6 如果 0,则表示存取日历时钟数据,为 1 表示存取 ram 数据; 位 5 至位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表示进行 读操作,控制字节总是从最低位开始输出 ram rd 1 a4 a3 a2 a1 a0 / ck /wr 表 2-1 ds1302 的控制字格式 毕业设计说明书电子万年历 13 (3)(3) 数据输入输出(数据输入输出(i/oi/o) 在控制指令字输入后的下一个 sclk 时钟的上升沿时,数据被写入 ds1302,数据输入从低位 即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 sclk 脉冲的下降沿读出 ds1302 的数 据,读出数据时从低位 0 位到高位 7。如下图 2-2 所示 图 2-2 ds1302 读/写时序图 (4)(4) ds1302ds1302 的寄存器的寄存器 ds1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 bcd 码形 式,其日历、时间寄存器及其控制字见表 2-2。 表 2-2 ds1302 的日历、时间寄存器 此外,ds1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 ram 相关 的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 ds1302 与 ram 相关的寄存器分为两类:一类是单个 ram 单元,共 31 个,每个单元组态为一个 8 位的字 节,其命令控制字为 c0hfdh,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 ram 寄存器,此方式下可一次性读写所有的 ram 的 31 个字节,命令控制字为 feh(写)、ffh(读)。 毕业设计说明书电子万年历 14 图 2-3 示出 ds1302 的引脚排列,其中 vcc1 为后备电源,vcc2 为主电源。在主电源关闭的 情况下,也能保持时钟的连续运行。ds1302 由 vcc1 或 vcc2 两者中的较大者供电。当 vcc2 大于 vcc1+0.2v 时,vcc2 给 ds1302 供电。当 vcc2 小于 vcc1 时,ds1302 由 vcc1 供电。x1 和 x2 是 振荡源,外接 32.khz 晶振。rst 是复位/片选线,通过把 rst 输入驱动置高电平来启动所 有的数据传送。rst 输入有两种功能:首先,rst 接通控制逻辑,允许地址/命令序列送入移位 寄存器;其次,rst 提供终止单字节或多字节数据的传送手段。当 rst 为高电平时,所有的数据 传送被初始化,允许对 ds1302 进行操作。如果在传送过程中 rsts 置为低电平,则会终止此次 数据传送,i/o 引脚变为高阻态。上电动行时,在 vcc 大于等于 2.5v 之前,rst 必须保持低电 平。中有在 sclk 为低电平时,才能将 rst 置为高电平,i/o 为串行数据输入端(双向) 。sclk 始终是输入端。 图 2-3 ds1302 的引脚图 2.2.32.2.3 温度采集模块温度采集模块 采用数字式温度传感器 ds18b20,它是数字式温度传感器,具有测量精度高,电路连接简单 特点,此类传感器仅需要一条数据线进行数据传输,使用0.7 与 ds18b20 的 i/o 口连接加一个 上拉电阻,vcc 接电源,vss 接地,如图 2-4 所示。 毕业设计说明书电子万年历 15 图 2-4 ds18b20 温度采集 2.2.42.2.4 显示模块显示模块 (1 1)简述:)简述: led 单元模块,由集成有多行、多列的发光二极管四边形模块构成,所述的四边形模块至少 一边为带有一组以上凹凸槽块的边缘。所述的四边形模块至少可有一组对边两壁均带有一组以 上凹凸槽块,其中,两对边凹凸槽块可呈对应状,亦可呈对称状。所述的四边形模块的主视面 上可带有用于模糊模块拼接界限的装饰结构。 如 lcd1602 液晶芯片 主要技术参数: 显示容量162 字符 芯片工作电压4.55.5v 工作电流 2.0ma(5.0v) 模块最佳工作电压 5.0v 字符尺寸 2.954.35(wh)mm 表 2-3 1602 液晶技术参数 接口信号说明: 编号符号引脚说明编号符号引脚说明 1vss 电源地 9d2datei/0 2vdd 电源正极 10d3datei/0 3vl 液晶显示偏压信号 11d4datei/0 4rs 数据/命令选择端(h/l) 12d5datei/0 5r/w 读/写选择端(h/l) 13d6datei/0 6e 使能信号 14d7datei/0 7d0datei/015bla 背光源正极 8d1datei/016blk 背光源负极 表 2-4 1602 引脚说明 控制器接口说明 毕业设计说明书电子万年历 16 基本操作时序: 读状态: 输入: rs=l,rw=h,e=h 输出: d0d7=状态字 写指令: 输入: rs=l,rw=l, d0d7 指令码,e= 高脉冲 输出:无 读数据: 输入: rs=h,rw=h,e=h 输出: d0d7=数据 写数据: 输入: rs=h,rw=l,d0d7=数据,e= 高脉冲 输出: 无 状态字说明 sta7 d7 sta6 d6 sta5 d5 sta4 d4 sta3 d3 sta2 d2 sta1 d1 sta0 d0 表 2-5 各状态字说明 sta0-6 当前数据地址指针的数值 sta7 读写操作使能1: 禁止 0: 允许 表 2-6 sta 0-7 状态字说明 注:对控制器每次进行读写操作之前,都必须进行读写检测,确保 sta 为 0 指令说明 初始化设置 显示模式设置 指令码功能 00111000 设置 162 显示,57 点阵,8 位数据接口 表 2-7 显示模式 显示开/关及光标出设置 指令码功能 00001dcb d=1 开显示;d=0 关显示 c=1 显示光标; c=0 不显示光 标 b=1 光标闪烁; b=0 光标不显 示 000001ns n=1 当读或写一个字符后地址 指针加一,且光标加一 n=0 当读或写一个字符后地址 指针减一,且光标减一 s=1 当写一个字符,整屏显示左 移(n=1)或右移(n=0),以得到光 标不移动而屏幕移动的效果 s=0 当写一个字符,整屏显示不 移动 表 2-8 显示开/关及光标 毕业设计说明书电子万年历 17 数据指针设置 指令码功能 80h+地址码(0-27h,40h-67h)设置数据地址指针 表 2-9 数据指针 如图 2-5 所示,采用动态扫描显示,由个数码管,3-8 译码器 74ls138 接 1k 限流电阻, 再接 8550 三极管接到共阳数码管的 com 端作为选通位码,每位选择相应的列。74ls47 接 240 限流电阻,再接共行的 led 数码管的断码。 图 2-5 led 动态扫描显示 毕业设计说明书电子万年历 18 2.32.3 电子万年历电路设计电子万年历电路设计 2.3.12.3.1 系统电路图系统电路图 毕业设计说明书电子万年历 19 图 2-5 系统电路图 2.3.22.3.2 电路图分析电路图分析 本电路是由 at89s52 单片机为控制核心,具有在线编程功能,低功耗,能在 3v 超低压工作; 时钟电路由 ds1302 提供,它是一种高性能、低功耗、带 ram 的实时时钟电路,它可以对年、月、 日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5v5.5v。采用三线接口 毕业设计说明书电子万年历 20 与 cpu 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 ram 数据。ds1302 内 部有一个 31*8 的用于临时性存放数据的 ram 寄存器。可产生年、月、日、周日、时、分、秒, 具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由 ds18b20 构成;显示部份由个数码管,74ls138、74ls47 译码器构成。使用动态扫描显示方式对数字 的显示 at89s52 单片机为 40 引脚双列直插芯片,有四个 i/o 口 p0,p1,p2,p3, mcs-51 单片机共有 4 个 8 位的 i/o 口(p0、p1、p2、p3) ,每一条 i/o 线都能独立地作输出或输入。18 引脚和 19 引 脚接时钟电路,xtal1 接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,xtal2 接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第 9 引脚为复位输入端, 接上电容,电阻及开关后够上电复位电路,20 引脚为接地端,40 引脚为电源端。 其中 vcc1 为后备电源,vcc2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。 ds1302 由 vcc1 或 vcc2 两者中的较大者供电。当 vcc2 大于 vcc1+0.2v 时,vcc2 给 ds1302 供电。 当 vcc2 小于 vcc1 时,ds1302 由 vcc1 供电。x1 和 x2 是振荡源,外接 32.khz 晶振。rst 是复位/片选线,通过把 rst 输入驱动置高电平来启动所有的数据传送。rst 输入有两种功能: 首先,rst 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,rst 提供终止单字节或 多字节数据的传送手段。当 rst 为高电平时,所有的数据传送被初始化,允许对 ds1302 进行操 作。如果在传送过程中 rsts 置为低电平,则会终止此次数据传送,i/o 引脚变为高阻态。上电 动行时,在 vcc 大于等于 2.5v 之前,rst 必须保持低电平。中有在 sclk 为低电平时,才能将 rst 置为高电平,i/o 为串行数据输入端(双向) 。sclk 始终是输入端。 数字式温度传感器 ds18b20,具有测量精度高,电路连接简单特点,此类传感器仅需要一条 数据线进行数据传输,使用0.7 与 ds18b20 的 i/o 口连接加一个上拉电阻,vcc 接电源,vss 接 地。 动态扫描显示,由个数码管,3-8 译码器 74ls138 接 1k 限流电阻,再接 8550 三极管接 到共阳数码管的 com 端作为选通位码,每位选择相应的列。74ls47 接 240 限流电阻,再接共行 的 led 数码管的断码。 三电子万年历软件设计三电子万年历软件设计 毕业设计说明书电子万年历 21 3.13.1 程序流程框图程序流程框图 3.1.13.1.1 总流程图总流程图 图 3-1 总程序流程图 3.1.23.1.2 阳历程序流程图阳历程序流程图 开始 初始化 读、写日期、时间和温度 分离日期时间温度显示值 显示子程序 农历自动更新子程序 日期、时间修改子程序 闰月子程 返回 定时闹铃子程序 毕业设计说明书电子万年历 22 图3-2 计算阳历程序流程图 3.1.33.1.3 阴历程序流程图阴历程序流程图 图 3-3 阴历程序流程图 3.1.43.1.4 时间调整程序流程图时间调整程序流程图 毕业设计说明书电子万年历 23 图 3-4 时间调整程序流程图 3.23.2 部分程序的设计部分程序的设计 毕业设计说明书电子万年历 24 3.2.13.2.1 ds18b20ds18b20 温度子程序温度子程序 config12 equ 7fh temph equ 21h templ equ 20h reg2 equ 22h reg3 equ 23h reg4 equ 24h dat equ p0.7 toutou: lcall chushi lcall rdtemp mov a,templ anl a,#11110000b mov templ,a mov a,temph anl a,#00000111b orl a,templ swap a mov 25h,a mov a,25h mov b,#64h div ab mov a,b mov b,#0ah div ab swap a orl a,b mov 10h,a ret chushi: lcall reset mov a,#0cch lcall write111 mov a,#4eh lcall write111 mov a,#config12 lcall write111 ret rdtemp: lcall reset mov a,#0cch lcall write111 mov a,#44h lcall write111 lcall dl1ms lcall reset mov a,#0cch lcall write111 mov a,#0beh lcall write111 lcall erad111 mov templ,a lcall erad111 mov temph,a ret reset: la: setb dat mov 52h,#200 lb: clr dat djnz 52h,lb setb dat mov 52h,#30 lc: djnz 52h,lc clr c orl c,dat jc lb mov 58h,#80 ld: orl c,dat jc lp djnz 58h,ld sjmp la lp: mov 52h,#250 lf: djnz 52h,lf ret write111: mov 53h,#8 w51ha: setb dat mov 54h,#8 rrc a clr dat w52ha: djnz 54h,w52ha mov dat,c mov 54h,#30 w53ha: djnz 54h,w53ha djnz 53h,w51ha setb dat ret erad111: clr ea mov 58h,#8 rd1a: clr dat mov 54h,#6 nop setb dat rd2a: djnz 54h,rd2a mov c,dat rrc a mov 55h,#30 rd3a: djnz 55h,rd3a djnz 58h,rd1a 毕业设计说明书电子万年历 25 setb dat ret 3.2.23.2.2 读、写读、写 ds1302ds1302 子程序子程序 ;写 1302 程序 write: clr sclk nop setb rst nop mov a,32h mov r4,#8 write1: rrc a ;送地址给 1302 nop nop clr sclk nop nop nop mov io,c nop nop nop setb sclk nop nop djnz r4,write1 clr sclk nop mov a,31h mov r4,#8 write2: rrc a nop ;送数据给 1302 clr sclk nop nop mov io,c nop nop nop setb sclk nop nop djnz r4,write2 clr rst ret ;读 1302 程序 read: clr sclk nop nop setb rst nop mov a,32h mov r4,#8 read1: rrc a ;送地址给 1302 nop mov io,c nop nop nop setb sclk nop nop nop clr sclk nop nop djnz r4,read1 mov r4,#8 read2: clr sclk nop ;从 1302 中读 出数据 nop nop mov c,io nop nop nop nop nop rrc a nop nop nop nop setb sclk nop djnz r4,read2 mov 31h,a clr rst r 四四. . 指标测指标测 毕业设计说明书电子万年历 26 4.14.1 测试仪器测试仪器 序号名称型号 1计算机机 2双路直流稳压电源ca17303d 3v8 通用单片机仿真器v8/l 4数字万用表ft212 4.4.硬件测试硬件测试 电子万年历的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出 于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚 要注意处理,否则会刺被带有包皮的导线,则会对电路造成短路现象。 在本成电子万年历的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都 是可以避免的,以下为主要的问题: (1)led 数码管的断码错乱,原因出于没有认真看清a、b 、c 等引脚信息。 解决:重新排列 74ls47 的输出端,相应接入 led 数码管,即可解决出现在的断码或乱 码。 (2)对万年历修改时间或日期时,有时 led 数码管被屏蔽掉,造成不亮现象。 解决:根据仪器的测试,发现电路的驱动能力不足,最后在 ds1302 时钟芯片的 /cs、sclk、ret 端接入 5.1k 的上拉电阻后,电路的驱动能力才能满足,即可解决不亮现象。 4.4.软件测试软件测试 电子成年历是多功能的数字型,可以看当前日期(阴、阳历),时间,还有温度的仪器。 电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对 较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在 软件的调试过程中主要遇到的问题如下: 1烧入程序后,led 数码管显示闪动,而且亮度不均匀。 解决:首先对调用

温馨提示

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

评论

0/150

提交评论