毕业设计-基于单片机定时控制器的研制.doc_第1页
毕业设计-基于单片机定时控制器的研制.doc_第2页
毕业设计-基于单片机定时控制器的研制.doc_第3页
毕业设计-基于单片机定时控制器的研制.doc_第4页
毕业设计-基于单片机定时控制器的研制.doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

论文题目:基于单片机定时控制器的研制论文题目:基于单片机定时控制器的研制 摘 要 随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根 本性的改变。由其是单片机技术的应用产品已经走进了千家万户。 作为单片机技术应用之一的定时控制器,在日常生活,工业场合甚至军事领域都 有应用。 本文主要介绍了单片机定时控制器的硬件设计过程。单片机作为主控器件,是整 个系统的核心,它起到主要的控制作用;时钟芯片为系统提供一个数字钟,定时功能 的实现也要依赖它;液晶模块为系统显示提供载体;按键部分采用独立式结构,主要 用作调时和定时,也可用作功能选择;控制输出部分通过继电器的动作和发光二极管 的亮灭,模拟机器的开和停。本文完成了对系统硬件电路制作、软件设计和调试过程 的说明,系统最终实现分时段定时控制的功能。 关键词:单片机,时钟芯片,液晶模块,定时控制 subject:development of time controller based on single chip microprocessor abstract along with the electronic technology rapid development, appears of the large scale integrated circuit specially, these have made a big change on peoples living. products including the technology application of the single chip microprocessor sets already entered every family. as one application of the single chip microprocessor technology, the time controller has been applied in the daily life, the industry situation and military field. this article introduced mainly the design process of the time controller composed by the single chip microprocessor. as the main control component, the single chip microprocessor is the core of the device and it plays the main control action. the clock chip provides a digital clock for the device and helps to realize the function of the timing control. the liquid crystal display is the carrier for the device system demonstrating. the keys use free standing structure. they mainly use as the timing and fixed time and use also as function choice. the control output simulates machines opening and stops by relays movement and the light emitter diode. this article has showed the process of the hardware manufacture, the software design and debugging. the function of the time controller is realized finally. key words: single chip microprocessor, the clock chip, the liquid crystal display, timing controller i 目目 录录 第第 1 章章 绪绪 论论.1 1.1 课题开发背景.1 1.2 设计要求.1 第第 2 章章 单片机及液晶显示模块单片机及液晶显示模块.3 2.1 单片机 stc89c58rd+结构3 2.1.1 引脚定义及功能.3 2.1.2 复位电路.6 2.2 液晶 12232 模块.7 2.2.1 引脚定义及功能说明.7 2.2.2 指令描述.8 2.2.3 lcd12232 的写规则.11 2.2.4 lcd12232 与单片机接口.11 第第 3 章章 硬件设计硬件设计.13 3.1 芯片及硬件模块13 3.1.1 时钟芯片模块 ds1302 13 3.1.2 液晶外部时钟模块.21 3.1.3 键盘接口电路.23 3.2 系统设计思路24 3.3 硬件框图25 3.4 系统功能说明.26 3.5 系统硬件设计电路图27 第第 4 章章 软件设计软件设计.29 4.1 软件设计的原则.29 4.2 系统功能模块图.29 4.3 程序流程图.30 第第 5 章章 制作与调试制作与调试.34 5.1 硬件焊接.34 5.2 硬件调试.35 5.2.1 焊接调试.35 5.2.2 故障调试.35 5.2.3 功能调试.36 5.3 “伟福”调试软件36 5.3.1 “伟福”的特点36 5.3.2 “伟福”仿真软件的使用36 5.3.3 “伟福”集成调试软件的界面37 ii 5.4 综合调试43 5.4.1 联机调试.43 5.4.2 脱机调试.44 结束语结束语.46 附录附录 硬件实硬件实物物图图.47 致致 谢谢.48 参考文献参考文献.49 1 第 1 章 绪 论 1.1 课题开发背景 人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始 尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。 1876 年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。 它利用机械钟带动开关来控制煤气阀门1。起初每周上一次发条,1918 年使用电钟计 时后,就不用上发条了。 定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许 多。人们甚至将定时器用在了军事方面,制成了定时炸弹,定时雷管。现在的不少家 用电器都安装了定时器来控制开关或工作时间2。 目前单片机渗透到日常生活的各个领域,几乎很难找到哪个领域没有单片机的踪 迹。导弹的导航装置,飞机上的各种仪表控制,计算机的网络通讯与数据传输,工业 自动化过程的实时控制和数据处理,广泛使用的各种智能 ic 卡,民用豪华轿车的安全 保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等, 这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。鉴 于单片机有如此广泛的应用领域,基于单片机的定时控制器就可以运用到日常生活的 各个方面,如上下班铃声的控制、机器的开停机时间控制等等。 为了能够巩固以前所学习的单片机原理的有关知识,并将其应用到实践中,培养 动手能力和解决实际问题的能力,因此选择了基于单片机的定时控制器的设计课题。 1.2 设计要求 (1)了解 lcd 图形显示器的工作原理及硬件结构; (2)熟悉时钟芯片的工作原理及接口技术; (3)熟悉 8031 单片机的工作原理及接口技术; (4)自行设计(软、硬件) 、制作和调试; (5)实现汉字、字母的 lcd 显示; (6)画出硬件设计图和软件流程图; (7)根据软硬件设计完成硬件制作和软件调试; 2 (8)实现每天 4 时段的定时控制,通过软件可以任意设置每个时间段的起始与结 束时间。 3 第 2 章 单片机及液晶显示模块 单片机是系统设计的主控模块,液晶是系统显示的载体。本章将介绍单片机 stc89c58rd+的原理及液晶 12232 模块。 2.1 单片机 stc89c58rd+结构 stc89c58rd+是宏晶公司生产的低电压、加密性强、高性能 cmos8 位单片机。 主要性能特点有3: 1)增强型 6 时钟/机器周期,12 时钟/机器周期 8051 cpu; 2)工作电压:5.5v3.8 v; 3)工作频率范围:040mhz,相当于普通 8051 的 080mhz,实际工作频率可达 48mhz; 4)用户可用程序空间 32k; 5)片上集成 1280 字节 ram; 6)通用 i/o 口(32)个,复位后:p1/p2/p3/p4 是准双向口/弱上拉(普通 8051 传 统 i/o 口) ,p0 口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为 i/o 口用时, 需加上拉电阻; 7)eeprom 功能,看门狗功能; 8)外部中断 4 路,下降沿中断或低电平触发中断; 9)共 3 个 16 位定时器计数器,其中定时器 0 可当成 2 个 8 位定时器使用; 空闲方式停止 cpu 的工作,但允许 ram、定时/计数器、串行通信口及中断系统 继续工作;掉电方式保存 ram 中的内容,但震荡器停止工作并禁止其他所有部件工作 直到下一个硬件复位。 2.1.1 引脚定义及功能 stc89c58rd+封装形式和引脚排列如图 2-1 所示。 4 图 2-1 stc89c58rd+引脚图 图 2-1 中,各引脚功能如下: vcc:电源gnd:地 p0 口:p0 口是一组 8 位漏极开路的双向 i/o 口,是地址数据总线复用口。作为 输出口用时,每位能以吸收电流的方式驱动 8 个 ttl 逻辑门电路,对端口写“1”可作为 高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址 (低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 flash 编程时,p0 口 接受指令字节,而在程序校验时输出指令字节,校验时要求外接上拉电阻。 p1 口:p1 是一个带内部上拉电阻的 8 位双向 i/o 口,它的输出缓冲级可驱动 (吸收或输出电流)4 个 ttl 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口 拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚 被外部信号拉低时会输出一个电流。此外,p1.0 和 p1.1 分别作为定时器/计数器 2 的外 部计数输入(p1.0/t2)和定时器/计数器 2 的触发输入(p1.1/t2ex) ,具体如表 2-1 所 示。flash 编程和程序校验期间,p1 接收低 8 位地址。 5 表表 2-1 p1 口第二功能口第二功能 引脚号功能特性 p1.0t2(定时/计数器 2 外部计数脉冲输入),时钟输出 p1.1t2ex(定时/计数器 2 捕获/重装载触发和方向控制) p1.5mosi(在系统编程用) p1.6miso(在系统编程用) p1.7sck(在系统编程用) p2 口:p2 是一个带内部上拉电阻的 8 位双向 i/o 口,的输出缓冲级可驱动(吸 收或输出电流)4 个 ttl 逻辑门电路。对端口写“1”,通过内部的上拉电阻,某个引脚 被外部信号拉低时会输出一个电流。在访问外部程序存储器或 16 位地址的外部数据存 储器(例如执行 movx dptr,a)时,p2 口送出高 8 位地址数据。在访问 8 位地 址的外部数据存储器(如执行 movx r1,a)时,p2 口线上的内容(特殊功能寄 存器 sfr 区中 r2 寄存器的内容) ,在整个访问期间不改变。flash 编程和程序校验期 间,p2 亦接受高位地址和其他控制信号。 p3 口:p3 口是一组带有内部上拉电阻的 8 位双向 i/o 口。它的输出缓冲级可驱 动(吸收或输出电流)4 个 ttl 逻辑门电路。对 p3 口写入“1”时,他们被内部上拉电 阻拉高并可作为输入端口。作输入端时,被外部拉低的 p3 口将用上拉电阻输出电流。 p3 口除了作为一般的 i/o 口线,更重要的是它的第二功能,如表 2-2 所示。 表表 2-2 p3 口的第二功能口的第二功能 端口引脚第二功能 p3.0rxd(串行输入口) p3.1txd(串行输出口) p3.2int0(外中断 0) p3.3int1(外中断 1) p3.4t0(定时/计数器 0) p3.5t1(定时/计数器 1) p3.6wr(外部数据存储器写选通) p3.7rd(外部数据存储器读选通) :复位输入。晶振工作时,脚持续 2 个机器周期高电平将使单片机复位。rstrst 6 看门狗计时完成后,脚输出 96 个晶振周期的高电平。特殊寄存器 auxr(地址rst 8eh)上的 disrto 位可以使此功能无效。disrto 默认状态下,复位高电平有效。 ale/prog:当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输 出脉冲用于锁存地址的低 8 位字节,即使不访问外部存储器,ale 仍以时钟震荡频率 的 1/6 输出固定的正脉冲信号,因此它可对外输出始终或用于定时目的。要注意的是: 每当访问外部数据存储器时将跳过一个 ale 脉冲。对 flash 存储器编程期间,该引脚 还用于输入编程脉冲(prog) 。如有必要,可通过对特殊功能寄存器(sfr)区中的 8eh 单元中的 d0 位置位,可禁止 ale 操作。该位置位后,只有一条 movx 和 movc 指令 ale 才会被激活。单片机执行外部程序时,应设置 ale 无效。 psen:程序存储允许(psen)输出是外部程序存储器的读选通信号,当 stc89c58rd+由外部程序存储器取指令或数据时,每个机器周期两次 psen 有效,即 输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的 psen 信号不出 现。 ea/vpp:外部访问允许。欲使 cpu 仅访问外部程序存储器(地址为 0000h- ffffh)ea 端必须保持低电平(接地) 。需注意的是如果加密位 lb1 被编程,复位时 内部会锁存 ea 状态。如 ea 为高电平,cpu 则执行内部程序存储器中的指令。flash 存储器编程时,该引脚加上编程允许电源 vpp。 xtal1:震荡器反向放大器及内部时钟发生器的输入端。 xtal2:震荡器反向放大器的输出端。 2.1.2 复位电路 复位电路如图 2-2 所示4。 7 k 200 r1 1k r2 22uf c vcc 图 2-2 复位电路 单片机的外部复位电路有上电自动复位和按键手动复位两种,本设计采用的是按 键手动复位。按复位键后,复位端通过电阻与 vcc 电源接通。复位电路关系到一个系 统能否可靠地工作,由阻容元件以及门电路组成的复位电路在多数情况下均能良好工 作,但是阻容复位电路的复位触发门限较难在设计时确定,这与电阻、电容的精度, 电源的精度有关,而且受温度的影响较大。所以,如果发现设计的复位电路不起作用 时,可以适当调整一下电阻、电容的大小,使复位高电平能够持续 2 个机器周期。 2.2 液晶 12232 模块 显示部分采用点阵式液晶 lcd12232-2,可以显示汉字和阿拉伯数字。 (1)该液晶的基本特性如下5: 具有低功耗、供应电压范围宽等特点; 具有 16common 和 61segment 输出,并可外接驱动来扩展驱动; 具有 2560 位显示 ram,即 8084 位; 具有与 68 系列或 80 系列相适配的 mpu 接口,并有专用的指令集,可以完成文本 显示或功能显示的功能设置。 (2)工作参数 逻辑工作电压:2.6-6.0v lcd 的驱动电压:3.0-13.5v 工作温度:0-55(常温)/-20- 70(宽温) 保存温度:-10-70 2.2.1 引脚定义及功能说明 8 vdd:逻辑电源正 vss:逻辑电源地 v0:lcd 驱动电源 a0: 数据指令选择。高电平:表示出现在数据总线上的是数据;低电平:表示出 现在数据总线上的是指令或读书的状态。 cs1/cs2:读写使能,对于 68 系列的 mpu,高电平有效;对于 80 系列的 mpu, 低电平有效。 cl: 外振时钟 rd: 读允许,低电平有效 wr: 写允许,高电平有效 d0-d7: 数据输入输出引脚 res: 复位端,68 系列的 mpu,上升沿复位;80 系列的 mpu,下降沿复位 led+/led- : 背光正极电源,背光负极电源 12232 引脚如图 2-3 所示。 vss 1 vdd 2 vlcd 3 cl 7 rd 8 wr 9 ret 18 vled+ 19 vled- 20 db0 10 db1 11 db2 12 db3 13 db4 14 db5 15 db6 16 db7 17 a0 4 cs1 5 cs2 6 u? 12232-2 图 2-3 液晶 12232 引脚图 2.2.2 指令描述 1)显示模式设置 a0rdwrdb7db6db5db4db3db2db1db0 0101010111d 功能:开关屏幕显示,不改变显示 ram 中的内容,也不影响内部状态。d=1,开 显示;d=0,关显示。如果在显示关闭的状态下,选择静态驱动模式,那么内部电路将 处于安全模式。 9 2)设置显示起始行 a0rdwrdb7db6db5db4db3db2db1db0 010110a4a3a2a1a0 功能:执行该命令后,所设置的行将显示在屏幕的第一行。起始行可以是 0-31 范 围内的任意一行。行地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完 一行后自动加一。 3)页地址设置 a0rdwrd7d6d5d4d3d2d1d0 010101110a1a0 功能:设置页地址。当 mpu 要对 dd ram 进行读写操作时,首先要设置列地址 和页地址。 a1 a0页地址 0 0 0 0 1 1 1 0 2 1 1 3 4)列地址设置 a0rdwrd7d6d5d4d3d2d1d0 0100a6a5a4a3a2a1a0 当 mpu 要对 dd ram 进行读写操作前,首先要设置页地址和列地址。 执行读写命令后,列地址会自动加 1,直到达到 50h 才会停止,但页地址不变。 a6a5a4a3a2a1a0列地址 0 0 1 0 1 1 1 04e 10 1 0 1 1 1 14f 5)读状态指令 a0rdwrd7d6d5d4d3d2d1d0 001busyadcon/ofreset0000 功能:检测内部状态 busy 为忙信号,busy=1:内部正在执行操作;busy=0:空闲状态。 adc:为显示方向,adc=0:反向显示;adc=1:正向显示 on/of:显示开关状态,on/of=0:显示打开;on/of=1:显示关闭。 reset:复位状态,reset=0,正常;reset=1:内部处于复位初始化状态。 6)写显示数据 a0rdwrd7d6d5d4d3d2d1d0 110write data 将 8 位数据写入 dd ram ,执行该指令后,列地址自动加 1,所以可以连续将数 据写入 dd ram 而不用重新设置列地址。 7)读显示数据 a0rdwrd7d6d5d4d3d2d1d0 101read data 功能:读出页地址和列地址限定的 dd ram 中的数据。当“读-修-改-写”模式关闭 时,每执行一次读指令,列地址自动加一,所以可以连续从 dd ram 中读出数据而不 用设置列地址。 8)设置显示方向 a0rdwrd7d6d5d4d3d2d1d0 0101010000d 功能:该指令设置 dd ram 中的列地址与段驱动输出的对应关系 当 d=0 时,反向;d=1 时,正向。 9)开关静态驱动模式设置 a0rdwrd7d6d5d4d3d2d1d0 0101010010d 功能:d=0 表示关闭静态显示,d=1 表示打开静态显示 11 10)占空比选择 a0rdwrd7d6d5d4d3d2d1d0 0101010100d 功能:d=0 表示 1/16duty,d=1 表示 1/32 duty 11) “读-修-改-写”模式设置 a0rdwrd7d6d5d4d3d2d1d0 01011100000 功能:执行该指令后,每执行一次写数据指令,列地址自动加一;但执行读数据 指令时列地址不会改变。这个状态一直持续到执行结束 end 指令。 12)end 指令 a0rdwrd7d6d5d4d3d2d1d0 01011101110 功能:关闭“读-修-改-写”模式,并把列地址指针恢复到打开“读-修-改-写”模式前的 位置。 13)复位指令 a0rdwrd7d6d5d4d3d2d1d0 01011100010 功能:使模块内部初始化 2.2.3 lcd12232 的写规则 在液晶屏上横向 8 个点为一个字节数据,汉字在液晶屏上的显示为 1616(宽高) ,通过字模提取软件按照先左后右,先上后下的方式对汉字进行字模提取,可获得该 字模对应的 32 个字节值;阿拉伯数字在液晶屏上的显示为 816(宽高) ,字模提取 的方式与汉字相同,可获得该字模对应的 16 个字节值。 一个 1616 的汉字的存放方式如下: 0 16 1 17 15 32 12 一个 816 的阿拉伯数字的存放方式如下: 0 1 15 通过单片机将已提取的汉字的字模输入液晶控制器,即可按设定的液晶模块显示 需要的汉字或数字。 2.2.4 lcd12232 与单片机接口 lcd12232 与单片机的接口电路如图 2-4 所示。 ea/vpp 31 xtal1 19 xtal2 18 rst 9 p3.7(rd) 17 p3.6(wr) 16 p3.2(int0) 12 p3.3(int1) 13 p3.4(t0) 14 p3.5(t1) 15 p1.0(t2) 1 p1.1(t2ex) 2 p1.2 3 p1.3 4 p1.4 5 p1.5(mosi) 6 p1.6(miso) 7 p1.7(sck) 8 (ad0)p0.0 39 (ad1)p0.1 38 (ad2)p0.2 37 (ad3)p0.3 36 (ad4)p0.4 35 (ad5)p0.5 34 (ad6)p0.6 33 (ad7)p0.7 32 (a8)p2.0 21 (a9)p2.1 22 (a10)p2.2 23 (a11)p2.3 24 (a12)p2.4 25 (a13)p2.5 26 (a14)p2.6 27 (a15)p2.7 28 psen 29 ale/prog 30 (txd)p3.1 11 (rxd)p3.0 10 gnd 20 vcc 40 stc89c58rd+ vss 1 vdd 2 vlcd 3 cl 7 rd 8 wr 9 ret 18 vled+ 19 vled- 20 db0 10 db1 11 db2 12 db3 13 db4 14 db5 15 db6 16 db7 17 a0 4 cs1 5 cs2 6 12232-2 vcc 10k r6 0.5k r7 p3.7 p3.6 p0.5 p0.6 p0.3 4.7k r17 vcc 1a 1 1y 2 2a 3 2y 4 3a 5 3y 6 gnd 7 4y 8 4a 9 5y 10 5a 11 6y 12 6a 13 vcc 14 74hc14 c6 r18 vcc vcc p0.4 图 2-4 液晶 12232 与单片机接口电路 在图 2-4 中,db0db7 作为数据口,与单片机的 p1 口相连;液晶 12232 的 rd、wr 端分别接到单片机的 p3.7、p3.6 端口上,由单片机的这两个端口提供液晶的 读写信号;液晶的外部晶振由 74hc14 与 r、c 组成的振荡电路提供,具体的内容将在 下一章做介绍;液晶的两个读写使能端口 cs1、cs2,与单片机的 p0.5、p0.6 相连, 这样可以在程序中对液晶的忙、闲状态进行判别以及控制液晶的读写;res 端接到 p0.4 上,这样在程序中可以灵活的选择液晶的时序。 13 第 3 章 硬件设计 硬件电路是一个单片机系统的躯壳,没有了躯壳,系统会是一个完全瘫痪的系统。 本章会向读者讲述整个系统硬件的设计思路和方法,另外还会向大家介绍时钟模块、 液晶的外部时钟产生电路等硬件电路。 3.1 芯片及硬件模块 3.1.1 时钟芯片模块 ds1302 美国 dallas 公司的 ds1302 是一种高性能、低功耗、带 ram 的实时时钟芯片, 它采用 spi 串行总线接口与单片机连接6。 spi 是由 motorola 公司提出的一种同步串行外围接口,采用 3 根或 4 根信号 线进行数据传输,所需要的信号包括使能信号、同步时钟、同步数据(输入和输出) 。 采用 spi 接口可以方便地与许多厂家的各种标准外围器件直接连接。采用 spi 总线可 以简化系统结构,降低系统成本,使系统具有灵活的可扩展性。spi 串行总线有如下一 些主要特点: 全双工,三线同步传输。 主机或从机操作。 1.05mbit/s 的最大主机数据传输速率。 4 种可编程主机数据传输速率。 可编程串行时钟极性与相位。 发送结束中断标志。 定开发冲突保护。 14 总线竞争保护。 spi 从设备一般使用 1 根数据线(i/o)和 2 根控制线(、sclk) 。其中,数rst 据线不仅用于从设备向系统主机返回数据,还可以用作多个从设备之间的级联,当前 从设备的 i/o 输出端可以连接到下一级设备的 i/o 输入端。 spi 串行接口设备既可以工作在主设备模式下,也可以工作在从设备模式下。系统 主设备为 spi 总线通信过程提供同步时钟信号,并决定从设备片选信号的状态,使能 将要进行通信的设备。spi 从器件则从系统主设备获取时钟及片选信号,因此从器件的 控制信号、sclk 都是输入信号。rst 在系统主机与 spi 从设备之间进行通信时,不论是命令还是数据都以串行方式传 送,串行传送的数据被泵入到一个移位寄存器,并转换为并行数据格式。须指出的是, 移位寄存器的位数并不是固定的,它根据不同的设备而各不相同。大多数设备的移位 寄存器是 8 位或 8 位的整数倍。 如果一个 spi 从设备没有被选中,它的数据输出端将处于高阻状态,从而与当前 处于激活状态的器件隔离。当多个 spi 从设备级联使用时,将它们的使能端连接到同 一个片选信号上,当作一个从设备来处理。级联的 spi 从设备被看作是一个大的设备 并使用相同的片选信号,从设备的数据输出端分别被连接到下一个从设备的数据输入 端,并将最后一个从设备的数据输出端连接到系统主机的数据输入端。当系统中所有 的 spi 从设备都需要独立地连接到系统主机时,所有的从设备仍然使用相同的时钟信 号 sclk,并将所有 spi 从设备的数据输入引脚连接到系统主机的数据输出引脚,从设 备的数据输出引脚连接到主机的数据输入引脚,但每个 spi 从设备采用相互独立的片 选信号来控制芯片使能端,这样系统主机可以通过片选信号来选通其中一个从设备进 行读写操作访问,而未被选中的其它所有器件处于高阻隔离状态。 在 spi 串行总线通信过程中,用来控制外围设备的选通(低电平有效) ,未选rst 通器件的数据输出端信号线将处于高阻状态。sclk 则用来为数据通信提供同步时钟, 不论 spi 从设备是否处于选通状态,系统主设备都会为所有 spi 从设备提供 sclk 信 号。spi 串行数据通信接口可以配置为 4 种不同的工作模式,它们如表 3-1 所示。 表表 3-1 spi 串行通信接口模式串行通信接口模式 spi 模式cpolcpha 000 15 11 210 311 cpha 用来表示同步时钟信号的相位,cpol 用来表示同步时钟信号的极性。当同 步时钟信号的相位为 0、极性也为 0 时,通信过程中的数据位在同步信号的上升沿锁存; 当相位为 0,极性为 1 时,数据位在同步时钟信号的下降沿锁存。在同步时钟信号相位 为 1 的情况下,同步时钟信号的相位会翻转 180。 采用 ds1302 作为主要计时芯片,可做到计时准确。更重要的是,ds1302 可以在 很小电流的后备电源(2.55.5v 电源,在 2.5v 时功耗小于 300na)下继续计时,并 可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。 它具有以下性能特性: 1)实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数; 2)用于高速数据暂存的 31x8 位 ram; 3)最少引脚的串行 i/o; 4)2.55.5v 电压工作范围; 5)用于时钟或 ram 数据读/写的单字节或多字节(脉冲方式)数据传输方式; 6)简单的 3 线接口; 7)可选的慢速充电(至 vcc1)的能力。 ds1302 与单片机之间能简单地采用 spi 同步串行的方式进行通信,仅需用到 3 根 信号线:(复位) 、i/o(数据线) 、sclk(同步串行时钟) 。单片机通过串行口实rst 现对 ds1302 的控制和从 ds1302 中读取时钟信息。时钟/ram 的读/写数据以一个字节 或多达 31 个字节的字符组方式通信。 ds1302 时钟芯片包括实时时钟/日历和 31b 的静态 ram,实时时钟/日历提供秒、 分、时、日、周、月、年等信息,对于小于 31 天的月和月末的日期自动进行调整,还 包括闰年校正功能。时钟的运行可以采用 24h 或带 am(上午)/pm(下午)的 12h 格 式。采用三线接口与 cpu 进行同步通信,并可采用突发方式一次传送多个字节的时钟 信号或 ram 数据。 ds1302 是由 ds1202 改进来的,增加了双电源管脚用于主电源和备份电源供电, 其中 vcc1 为可编程涓流充电电源:vcc1 在单电源与电池供电的系统中提供低电源及 16 低功率的电池备份;vcc2 在双电源系统中提供主电源,在这种运行方式中,vcc1 连接 到备份电,以便在没有主电源的情况下能保存时间信息以及数据。ds1302 由 vcc1 或 vcc2 中较大者供电,当 vcc2 大于 vcc1+0.2v 时,vcc2 给 ds1302 供电;当 vcc2 小 于 vcc1 时,ds1302 由 vcc1 供电。 ds1302 有 3 种不同的引脚封装形式,它们分别是双列直插的 dip8 和表面贴装的 soic8(150mil) 、soic8(200 mil) ,与这 3 种封装相对应的芯片型号分别是 ds1302、ds1302z 和 ds1302s。ds1302 引脚如图 3-1 所示。 图 3-1 ds1302 引脚图 x1、x2:32.768khz 晶振引脚。 gnd:信号地。 :复位引脚。rst i/o:数据输入输出引脚。 sclk:同步串行时钟输入引脚。 vcc2:主电源。 vcc2:备份电源。 1ds1302 的内部结构及工作原理:ds1302 串行时钟芯片由电源、移位寄存器、 命令控制逻辑、震荡器、实时时钟及 ram 组成。 输入移位寄存器模块用于完成串行数据的输入输出,数据在同步串行时钟 sclk 的上升沿串行输入。无论是读周期还是写周期,也无论是单字节传送方式还是多字节 传送方式,数据传送开始的 8 个数据位用于指定 ds1302 中哪个字节被访问。在开始的 8 个时钟周期将命令字节装入移位寄存器之后,另外的时钟在读操作时输出数据,在写 操作时输入数据。 输入移位寄存器模块的所有串行数据输入/输出都必须通过把驱动至高电平状rst 态来启动。复位引脚输入与控制逻辑相连,用于允许或禁止地址/命令序列送入移rst 位寄存器;同时,还提供了中止单字节或多字节数据传输的手段,如输入为rstrst 低电平,那麽所有的数据传输将被中止并且 i/o 引脚变为高阻态。在 ds1302 的上电过 17 程中,当 vcc2.5v 之前,必须为逻辑 0。rst 在 ds1302 内部共包含 40 个数据节,其中 7 个时钟/日历字节,1 个时钟写保护控 制字节,1 个涓流充电控制字节和 31 个 ram 字节。在对这些字节进行读写访问时, 由命令字节中的数据位 a0a5 控制。 2ds1302 的控制字如表 3-2 所示。 控制字节的最高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入到 ds1302 中,位 6 如果为 0,则表示存取日历时钟数据,为 1 表示存取 ram 数据;位 5 至 位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表示进行 读操作,控制字节总是从最低位开始输出。 表表 3-2 控制字节的含义控制字节的含义 7 6 5 4 3 2 1 0 1ram/cka4a3a2a1a0ram/ck 3. 复位 通过把输入驱动置高电平来启动所有的数据传送。输入有两种功能:首rstrst 先, 接通控制逻辑,允许地址命令序列送入移位寄存器;其次, 提供了终止单rstrst 字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对rst ds1302 进行操作。如果在传送过程中置为低电平,则会终止此次数据传送,并且 i/orst 引脚变为高阻态。上电运行时,在 vcc2.5v 之前, 必须保持低电平。只有在 sclkrst 为低电平时,才能将置为高电平。rst 4. 数据输入输出 在单片机对 ds1302 进行数据读写操作时,所有的读写操作都必须由命令字节来初 始化。命令字节的 d7 必须为逻辑 1,如果它为 0,将禁止 ds1302;d6 为逻辑 0 时指 定访问时钟/日历数据;为逻辑 1 时指定访问 ram 数据;d5-d1 指定进行输入或输出 的特殊寄存器单元地址;d0 为逻辑 0 时指定进行写操作,为逻辑 1 时指定进行读操作。 外部处理器向 ds1302 写数据时,在写命令字节 8 个 sclk 周期之后,ds1302 会 在下 8 个 sclk 周期的上升沿输入数据字节,如果有更多的 sclk 周期,它们将会被 忽略。外部芯片从 ds1302 读数据时,跟随在读命令字节 8 个 sclk 周期之后 ds1302 会在下 8 个 sclk 周期的下降沿输出数据。需要注意的是:从 ds1302 输出的第一个 18 数据位发生在命令字节最后一位后的第一个下降沿处,而且在读操作过程中只要保持 为高电平状态,如果有额外的 sclk 时钟周期,ds1302 将重新发送数据字节,这rst 一操作特性使得 ds1302 具有多字节连续读取能力。 除了采用单字节方式进行数据读写外,也可以采用突发方式多字节连续读写。通 过对地址 31 寻址(命令位的 d1-d5 均为逻辑 1) ,可以把时钟/日历或 ram 寄存器规 定为多字节方式。在多字节方式中读或写从地址 0 的位 0 开始,当以多字节方式写时 钟寄存器时,必须按照数据传送的次序写最先的 8 个寄存器。但以多字节方式写 ram 时,不必写所有的 31 个字节,不管是否写齐了 31 个字节,所写的每一个字节都会被 传送到 ram。 在控制指令字输入后的下一个 sclk 时钟的上升沿时数据被写入 ds1302,数据输 入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 sclk 脉冲的下降沿 读出 ds1302 的数据,读出数据时从低位 0 位至高位 7,数据读写时序如图 3-2 所示。 图 3-2 数据读写时序 5. ds1302 的寄存器 ds1302 共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 bcd 码形式。其日历、时间寄存器及其控制字见表 3-3。 此外,ds1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 ram 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存 19 器内容。ds1302 与 ram 相关的寄存器分为两类,一类是单个 ram 单元,共 31 个,每个 单元组态为一个 8 位的字节,其命令控制字为 cohfdh,其中奇数为读操作,偶数为写操 作;再一类为突发方式下的 ram 寄存器,此方式下可一次性读写所有的 ram 的 31 个字 节,命令控制字为 feh(写) 、ffh(读) 。 表表 3-3 ds1302 的日历的日历时钟寄存器及其控制字时钟寄存器及其控制字 命令字各位内容寄存器名 写操作读操作 取值范围 76543210 秒寄存器80h81h00-59ch10sec sec 分寄存器82h83h00-59010min min 时寄存器84h85h01-12 或 00-23 12/24010 ap hr hr 日寄存器86h87h01-28,29 30,31 0010datedate 月寄存器88h89h01-1200010mmonth 周寄存器8ah8bh01-0700000day 年寄存器8ch8dh00-9910 year year 秒寄存器的 d7 定义为时钟暂停位,当此位设置为逻辑 1 时时钟振荡器停止使 ds1302 进行低功率倍份方式,其消耗电流小于 100na;当此位设置为逻辑 0 时,时钟 将被启动。 小时寄存器的 d7 定义为 12 或 24 小时方式选择位,当它为高电平时,选择 12 小 时方式;当它设置为低电平时表示选择 24 小时方式。在 12 小时方式下,小时寄存器 的 d5 用于 am/pm 指示,d5 为逻辑高电平表示 pm,在 24 小时方式下,d5 则是第二 个小时位。 写保护寄存器的 d7 是写保护位,其余低 7 位置为 0。在对时钟或内部 ram 单元 进行写操作前 d7 必须为 0,当 d7 处于高电平状态时,写保护位防止对其它寄存器进 20 行写操作。 涓流充电寄存器用于控制 ds1302 的涓流充电特性。其中,涓流充电选择(tcs) 位 d7-d4 控制涓流充电器的选择,只有当 d7-d4 处于 1010 模式时才能使涓流充电器 工作,其它所有的模式都将禁止涓流充电。涓流充电二极管选择(ds)位 d3-d2 用于 选择连接在 vcc2 和 vcc1 之间的二极管数目,当 ds 为 01 时选择一个二极管,如果 为 10 则选择 2 个二极管,ds 为 00 或 11 时涓流充电器被禁止,与 tcs 无关。涓流充 电电阻选择(rs)位 d1-d0 用于选择连接在 vcc2 和 vcc1 之间的电阻,rs 为 00 时 无电阻连接,rs 为 01 时电阻值为 2k,rs 为 10 时为 4k,rs 为 11 时电阻值为 8k。 如果 rs 设定为无电阻的 00,那么涓流充电器将被禁止,与 tcs 无关。 涓流充电器的二极管和电阻的选择由用户根据电池或超容量电容充电所需的最大 电流决定。假定 5.0 系统电源加到 vcc2,而超容量电容接至 vcc1,并编程设置 vcc2 和 vcc1 之间连接一个二极管和一个 2k 的电阻,可得到最大电流为: imax=(5.0v-0.7v)/2k=2.2ma 时钟/日历和控制寄存器的最后一个单元是时钟/日历突发多字节方式控制字。当时 钟/日历字节在多字节方式下工作时,最先的 8 个时钟/日历寄存器可以从地址为 0 的第 0 位开始连续地读或写。在指定突发方式多字节连续写时钟/日历寄存器时,如果写保 护位设置为高电平,那么没有数据会传送到 8 个时钟/日历寄存器中的任一个。 ds1302 与单片机的接口如图 3-3 所示。 21 ea/vpp 31 xtal1 19 xtal2 18 rst 9 p3.7(rd) 17 p3.6(wr) 16 p3.2(int0) 12 p3.3(int1) 13 p3.4(t0) 14 p3.5(t1) 15 p1.0(t2) 1 p1.1(t2ex) 2 p1.2 3 p1.3 4 p1.4 5 p1.5(mosi) 6 p1.6(miso) 7 p1.7(sck) 8 (ad0)p0.0 39 (ad1)p0.1 38 (ad2)p0.2 37 (ad3)p0.3 36 (ad4)p0.4 35 (ad5)p0.5 34 (ad6)p0.6 33 (ad7)p0.7 32 (a8)p2.0 21 (a9)p2.1 22 (a10)p2.2 23 (a11)p2.3 24 (a12)p2.4 25 (a13)p2.5 26 (a14)p2.6 27 (a15)p2.7 28 psen 29 ale/prog 30 (txd)p3.1 11 (rxd)p3.0 10 gnd 20 vcc 40 stc89c58rd+ x1 2 x2 3 vcc2 1 gnd 4 rst 5 i/o 6 sclk 7 vcc1 8 ds1302 12 32.768k 15pf c1 15pf c2 vcc 3v 4.7k r1 4.7k r2 4.7k r3 vcc 图 3-3 ds1302 与单片机接口电路 在图 3-3 中,由于 ds1302 采用的是同步串行的工作方式,它与单片机的相接的端 口只有三个:sclk,i/o,相对应的接到单片机的 p0.2,p0.1,p0.0,单片机的rst p0 口在用作 i/o 口的时候要接上拉电阻;x1 ,x2 端接的是 32.768khz 的外部晶振; vcc2 作为主电源接到+5v 电源上,而 vcc1 是 ds1302 的后备电源,具有涓流充电的 特性,接的是+3v 的电池。 基于前述的内容,系统在设计时时钟模块选择了 ds1302。 3.1.2 液晶外部时钟模块 液晶 12232 要正常工作需要接入频率为 2khz 的外部时钟信号,在本系统中,由 74hc14 和电阻 r、电容 c 组成的振荡电路为 12232 提供时钟信号。74hc14 的引脚如 图 3-4 所示。 22 1a 1 1y 2 2a 3 2y 4 3a 5 3y 6 gnd 7 4y 8 4a 9 5y 10 5a 11 6y 12 6a 13 vcc 14 u? 74hc14 图 3-4 74hc14 引脚图 74hc14 为有施密特触发器的六反相器,其主要电特性的典型值如表 3-4 所示。 表表 3-4 74hc14 电特性电特性 型号vt tplhtphlpd 54/74140.8v15ns15ns15.3mw 引出端符号 :1a6a 输入端 1y6y 输出端 逻辑图如图3-5所示。 图3-5 74hc14逻辑图 极限值: 电源电压 . 7v 输入电压: 74hc14. 5.5v 23 工作环境温度: 74hc14 070 存储温度 . -65150 功能表如表 3-

温馨提示

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

评论

0/150

提交评论