已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子万年历的设计与实现 i 目目 录录 1 绪论 .1 1.1 课题研究的背景.1 1.2 课题的研究目的与意义.1 1.3 课题研究的主要内容.1 2 系统功能要求与总体设计 .3 2.1 系统功能要求.3 2.2 系统方案选择.3 2.3 系统总体设计 .4 3 系统硬件设计 .6 3.1 单片机主控模块的设计 .6 3.1.1 at89s52 功能特性.6 3.1.2 at89s52 引脚结构介绍.6 3.1.3 单片机最小系统.9 3.2 时钟电路模块的设计 .10 3.2.1 ds1302 简介.10 3.2.2 ds1302 与单片机接口电路.11 3.3 温度采集模块的设计 .13 3.3.1 ds18b20 简介.13 3.3.2 ds18b20 与单片机接口电路.14 3.4 键盘显示模块的设计 .15 3.4.1 按键电路的设计.15 3.4.2 显示电路的设计.16 3.5 电源电路设计 .18 4 系统软件设计.20 4.1 主程序设计 .20 电子万年历的设计与实现 ii 4.2 时钟子程序的设计 .21 4.3 测温子程序 .22 4.4 显示子程序 .23 5 系统仿真与测试.24 5.1 proteus isis 简介 .24 5.1.1 启动 proteus.24 5.1.2 proteus 运行界面.25 5.1.3 proteus 功能仿真.25 5.2 系统仿真结果 .26 5.3 系统测试 .28 结束语.30 致 谢.31 参考文献.32 附 录.33 附录一:整机原理图.33 附录二:整机 pcb 图.34 附录三:部分源程序.35 电子万年历的设计与实现 iii 电子万年历的设计与实现 摘 要 本文介绍一种基于 at89s52 单片机的带温度显示的数字万年历的实现方法,系 统包括单片机最小系统模块、时钟计时模块、温度采集模块、键盘显示模块。时钟 模块采用高性能时钟芯片 ds1302,温度采集模块采用 ds18b20 集成温度传感器, 显示模块以 lcd1602 液晶屏作为显示。能够实现年、月、日、时、分、秒、星期、 温度同时显示,而且能区分平年、闰年和月份的大小并带有掉电保护、整点报时及 闹钟等功能。该系统具有电路设计新颖、功耗低、体积小、显示清晰等优点。 关键字: at89s52/万年历/ds1302/ds18b20 电子万年历的设计与实现 iv the design and implementation of the electronic calendar abstarct this paper introduces a at89s52 scm with temperature of based on the digital display calendar design, system including single chip minimize system module, clock module, temperature acquisition module, keyboard display module. the clock module by high performance clock chip ds1302, temperature gathering module uses integrated temperature sensor ds18b20, display module to lcd1602 as display lcd screen. to realize the date and time, minutes and seconds, week, temperature shows at the same time, and can distinguish between ping nian, leap year and the size of the month with power lost protection, on the hour and the alarm clock time etc. function. the system has a circuit design novel, low power consumption, small volume, showed clear advantages. key word: at89s52, calendar, ds1302, ds18b20 电子万年历的设计与实现 1 1 绪论 1.1 课题研究的背景 二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟 表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源 使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟 或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表, 使钟表的工作时日差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应 用(电子万年历) ,使计时产品的走时日差从分级缩小到 1/600 万秒,从原有传统指 针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了 全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生 活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步1。 随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电 产品陆续出现在我们的生活中。日历是人们不可或缺的日常用品。万年历目前已经 不再局限于以纸质形式出现。以电脑软件或者电子产品形式出现的万年历被称为电 子万年历。与传统纸质形式的万年历相比,电子万年历得到了越来越广泛的应用, 采用电子时钟作为时间显示已经成为一种时尚。目前市场上各式各样的电子时钟数 不胜数,但多数是只针对时间显示,功能单一,使用不便,寿命不长不能满足人们 日常生活需求。而电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺 陷。 1.2 课题的研究目的与意义 二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代 扮演着极为重要的角色。电子万年历的开发与研究在信息化时代的今天亦是当务之 急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共 场地等场合,可以说遍及人们生活的每一个角落。所以说电子万年历的开发是国家 之所需,社会之所需,人民之所需。 由于社会对信息交换不断提高的要求及高新技术的逐步发展,数字万年历具有 读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器 仪表的发展趋势,促使电子万年历发展并且投入市场得到广泛应用,具有广阔的市 电子万年历的设计与实现 2 场前景。 1.3 课题研究的主要内容 本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容 包括以下几个方面: (1) 选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低 功耗、抗断电的器件。 (2) 根据选用的电子万年历芯片设计外围电路和单片机的接口电路。 (3) 在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。 (4) 根据设计的硬件电路,自制 pcb 电路板完成器件的焊接,并编写控制 at89s52 芯片的单片机程序。 (5) 通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。 (6) 软件设计时必须要有完善的思路,要做到程序简单,调试方便。 电子万年历的设计与实现 3 2 系统功能要求与总体设计 2.1 系统功能要求 设计一个能显示年、月、日、时、分、秒、星期和当前温度的数字万年历,采 用 lcd 显示并具备以下功能: 一、 基本功能 能够任意设定年、月、日、时、分、秒、星期。 二、 发挥功能 (1) 任意设定报时时间; (2) 带有温度显示; (3) 能够区分平年、闰年和月份的大小; (4) 带有掉电保护(停电后时钟正常运行,可以不显示) 。 (5) 有整点提示和闹钟。 2.2 系统方案选择 根据系统功能要求,初步确定系统由主控模块、时钟模块、显示模块、按键接 口模块、电源模块 5 部分模块组成,另外再扩充一个温度检测模块,用于显示测的 实时的温度,具体可由以下两种方案实现。 方案一:单片机为主控制核心,时间和温度数据是通过时钟芯片 ds1302 和数 字温度传感器 ds18b20 来读取的,通过液晶显示器显示出来,并采用按键来完成对 当前时间的调整和定时时间的设定。 方案二:以单片机为住控制核心,时间通过软件编程来实现,通过单片机的定 时器,得出一秒的时间,再根据秒、分、时、日、星期、年之间的进制关系,完成 基本的时钟功能,再通过 led 显示模块显示出来。温度检测部分有热敏电阻将温度 转换成模拟量的电压信号,经 a/d 转换器,将其转换成对应的数字量,再通过单片 机把温度值传给 led 显示模块显示出来,并用按键来完成对当前时间的调整和定时 时间的设定。 方案一和方案二的比较:时钟设计可以用软件编程或硬件实现,若用软件设计 误差相对于硬件设计略大,在软件设计中定时器如采用软件查询的方法占用大量的 cpu 资源,所以最好采用中断的方式以节约资源,但用软件编程的方法对晶振要求 电子万年历的设计与实现 4 很高。因为时间的误差主要来源于理想机器周期和实际周期之间的微小差距,此外 还有送定时器初值时产生的误差,况且用软件编程比较复杂,所以本设计采用日历 时钟芯片。时钟芯片时间精确度高,性价比高,相对于软件编程性能有很大提高, 且可二次开发,用于实时记录一些重要的数据。为了增加设计的实用性方案一和方 案二都增加了温度显示模块,采用数字温度芯片具有体积小、抗干扰能力强、调试 方便或不用调试、易于实现群测等优点,而且直接输出数字量的温度值,简化了测 量电路的同时又保证了测温精度。采用热敏电阻检测温度,其原理是热敏电阻的阻 值随温度的变化而变化,从而改变电路电压或电流,这样就得出与温度有对应电压 或电流的信号,再经计算,就可得出被测温度。由于电压或电流量都是模拟量,易 于受外界干扰,并且热敏元件存在非线性误差,这都将影响温度的测量精度,还给 计算带来了麻烦。显示模块采用 lcd 能同时显示所有信息,显示直观,软件易于实 现。 综合上面比较论证,本设计采用方案一来实现。 2.3 系统总体设计 系统包括单片机主控模块、时钟模块、温度采集模块、显示模块、按键接口模 块、电源模块。框图如图 2-1 所示。 单 片 机 lcd1602 时钟模块 数字温度模 块 按键 电源模块 蜂鸣器 系统主控模块由 at89s52 单片机组成,完成整个系统的信息采集和控制。时 钟模块采用的是 ds1302 数字时钟芯片,主要为万年历提供系统时钟,并 带有 图 2-1 系统框图 电子万年历的设计与实现 5 掉电保护。外接电源为一个 3.6 伏的纽扣电池,以保证系统电源掉电后 时钟正常 运行,可以不显示。按键有四个独立按键组成。显示模块选用的是 lcd1602 做显示, 完成系统时间和温度的显示。温度采集选用的是 ds18b20,主要完成实时温度的采 集。蜂鸣器完成整点提示和闹钟功能。电源模块为经典的 7805 稳压模块,为整个系 统提供电源。 本系统由 ds1302 提供万年历系统时钟,ds18b20 采集实时温度,经单片机由 软件处理后显示实时时钟和实时温度。并且通过按键对时钟和闹钟的调整,有蜂鸣 器完成闹钟提示。 电子万年历的设计与实现 6 3 系统硬件设计 3.1 单片机主控模块的设计 3.1.1 at89s52 功能特性 at89s522是一种低功耗、高性能 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 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬 件复位为止。 同时该芯片还具有 pdip、tqfp 和 plcc 等三 种封装形式,以适应 不同产品的需求。 3.1.2 at89s52 引脚结构介绍 at89s52 单片机引脚图如图 3-1 所示: 电子万年历的设计与实现 7 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 ret 9 p3.0 10 p3.1 11 p3.2 12 p3.3 13 p3.4 14 p3.5 15 p3.6 16 p3.7 17 xtal2 18 xtal1 19 gnd 20 p2.0 21 p2.1 22 p2.2 23 p2.3 24 p2.4 25 p2.5 26 p2.6 27 p2.7 28 psen 29 ale/prog 30 ea/vpp 31 p0.7 32 p0.6 33 p0.5 34 p0.4 35 p0.3 36 p0.2 37 p0.1 38 p0.0 39 vcc 40 u1 at89s52 at89s52 单片机共有 40 个引脚,主电源引脚 vcc 和 gnd,外部晶振引脚 xatl1 和 xatl2,控制和复位引脚,输入/输出引脚。输入/输出有 4 个准双向并行 的 8 位 i/o 口 p0p3,p0 口为三态双向口,可以驱动 8 个 ttl 电路,p1,p2,p3 口为准双向口(作为输入时,口线被拉成高电平故称为准双向口) ,其负载能力为 4 个 ttl 电路。 vcc(40 脚):电源端,接+5v。 gnd(20 脚):接电源地。 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 位地址字节。 p2 口:p2 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p2 输出缓冲器能驱 图 3-1 at89s52 单片机引脚图 电子万年历的设计与实现 8 动 4 个 ttl 逻辑电平。对 p2 端口写“1”时,内部上拉电阻把端口拉高,此时可 以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将 输出电流(ttl)。在访问外部程序存储器或用 16 位地址读取外部数据存储器(例 如执行 movx dptr)时,p2 口送出高八位地址。在这种应用中,p2 口使用很 强的内部上拉发送“1”。在使用 8 位地址(如 movx ri)访问外部数据存储器 时,p2 口输出 p2 锁存器的内容。在 flash 编程和校验时,p2 口也接收高 8 位地址 字节和一些控制信号。 p3 口:p3 口是一个具有内部上拉电阻的 8 位双向 i/o 口,p2 输出缓冲器能驱 动 4 个 ttl 逻辑电平。对 p3 端口写“1”时,内部上拉电阻把端口拉高,此时可 以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将 输出电流(iil)。p3 口亦作为 at89s52 特殊功能(第二功能)使用,如下表 3-1 所示。在 flash 编程和校验时,p3 口也接收一些控制信号。 引脚号引脚号第二功能第二功能 p3.0rxd(串行输入) p3.1txd(串行输出) p3.2int0(外部中断 0) p3.3int0(外部中断 0) p3.4t0(定时器 0 外部输入) p3.5t1(定时器 1 外部输入) p3.6wr(外部数据存储器写选通) p3.7rd(外部数据存储器写选通) rst(9 引脚):复位输入。晶振工作时,rst 脚持续 2 个机器周期高电平将 使单片机复位。看门狗计时完成后,rst 脚输出 96 个晶振周期的高电平。特殊寄 存器 auxr(地址 8eh)上的 disrto 位可以使此功能无效。disrto 默认状态下, 复位高电平有效。 ale/prog(30 引脚):地址锁存控制信号(ale)是访问外部程序存储器时, 表 3-1 p3 口第二功能表 电子万年历的设计与实现 9 锁存低 8 位地址的输出脉冲。在 flash 编程时,此引脚(prog)也用作编程输入脉 冲。在一般情况下,ale 以晶振六分之一的固定频率输出脉冲,可用来作为外部定 时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ale 脉冲将会 跳过。如果需要,通过将地址为 8eh 的 sfr 的第 0 位置 “1”,ale 操作将无效。 这一位置 “1”,ale 仅在执行 movx 或 movc 指令时有效。否则,ale 将被 微弱拉高。这个 ale 使能标志位(地址为 8eh 的 sfr 的第 0 位)的设置对微控制 器处于外部执行模式下无效。 psen(29 引脚):外部程序存储器选通信号(psen)是外部程序存储器选通 信号。当 at89s52 从外部程序存储器执行外部代码时,psen 在每个机器周期被激 活两次,而在访问外部数据存储器时,psen 将不被激活。 ea/vpp(31 引脚):访问外部程序存储器控制信号。为使能从 0000h 到 ffffh 的外部程序存储器读取指令,ea 必须接 gnd。为了执行内部程序指令,ea 应该接 vcc。在 flash 编程期间,ea 也接收 12 伏 vpp 电压。 xtal1(19 引脚):振荡器反相放大器和内部时钟发生电路的输入端。 xtal2(18 引脚):振荡器反相放大器的输出端。 3.1.3 单片机最小系统 单片机最小系统电路主要有晶体振荡电路和复位电路组成。 (1) 振荡电路 石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可 以取代lc谐振回路的晶体谐振元件。 本设计所用的晶体振荡电路如图3-2所示。 12 y1 11.0592m 30p c1 cap 30p c2 cap xtal1 xtal2 图 3-2 晶体振荡电路 此晶振电路所选用的石英晶振频率为11.0592mhz。时钟周期就是单片机外接晶 振的倒数,它的时间周期就是(1/12 us),是计算机中最基本的、最小的时间单位。 电子万年历的设计与实现 10 在一个时钟周期内,cpu仅完成一个最基本的动作。对于某种单片机来说,若 采用了1mhz的时钟频率,则时钟周期为1us;若采用4mhz的时钟频率,则时钟周期 为250s。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使 计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频 率越高,计算机的工作速度就越快。但是,由于不同的计算机硬件电路和器件的不 完全相同,所以其所需要的时钟周频率范围也不一定相同。一般的设计中使用到的 单片机的时钟范围是12mhz或11.0592mhz。 (2) 复位电路 单片机复位是使cpu和系统中的其他功能部件都处在一个确定的初始状态,并 从这个状态开始工作,例如复位后pc0000h,使单片机从第一个单元取指令。无 论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以必须 弄清楚at89s52型单片机复位的条件、复位电路和复位后状态。 单片机复位的条件是:必须使rst/vpd或rst引脚(9)加上持续两个机器周期(即 24个振荡周期)的高电平。例如,若时钟频率为12mhz,每机器周期为1us,则只需 2us以上时间的高电平,在rst引脚出现高电平后的第二个机器周期执行复位。单片 机常用的复位电路如图3-3所示。 r1 200 r2 10k c3 10u s1 位位 vcc ret 图3-3 复位电路 图3-3为复位电路也是本次设计所用的复位电路,其复位方法为只要单片机一上 电rest为高电平单片机即复位。除此之外我们所学的电路还有手动复位电路和自动 复位电路。 电子万年历的设计与实现 11 3.2 时钟电路模块的设计 3.2.1 ds1302 简介 ds130234是美国 dallas 公司推出的一种高性能、低功耗、带 ram 的实时 时钟芯片,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能, 工作电压为 2.5v5.5v。采用三线接口与 cpu 进行同步通信,并可采用突发方式 一次传送多个字节的时钟信号或 ram 数据。ds1302 内部有一个 318 的用于临时 性存放数据的 ram 寄存器。ds1302 是 ds1202 的升级产品,与 ds1202 兼容,但 增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓泳电流充电的能 力。 ds1302 的引脚排列如图 3-4,其中 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 进行操作。如果在传送过程中 rsts 置为低电平,则会终 止此次数据传送,i/o 引脚变为高阻态。上电动行时,在 vcc 大于等于 2.5v 之前, rst 必须保持低电平。中有在 sclk 为低电平时,才能将 rst 置为高电平,i/o 为 串行数据输入端(双向) 。sclk 始终是输入端。 3.2.2 ds1302 与单片机接口电路 ds1302 与单片机接口电路如图 3-5 所示。电路原理图如图,ds1302 与单片机 图 3-4 ds1302 引脚图 电子万年历的设计与实现 12 的连接也仅需要 3 条线:ce 引脚、sclk 串行时钟引脚、i/o 串行数据引脚,vcc2 为备用电源,外接 32.768khz 晶振,为芯片提供计时脉冲。 ds1302 在任何数据传送时必须先初始化,把 rst 脚置为高电平,然后把 8 位 地址和命令字装入移位寄存器,数据在 sclk 的上升沿被访问到。在开始 8 个时钟 周期,把命令字节装入移位寄存器后,另外的时钟周期在读操作时输出数据,在写 操作时写入数据。时钟脉冲的个数在单字节方式下为 8+8,在多字节方式下为 8+字 节数,最大可达 248 字节数。如果在传送过程中置 rst 脚为低电平,则会终止本次 数据传送,并且 i/o 引脚变为高阻态。上电运行时,在 vcc2.5v 之前,rst 脚必须 保持低电平。只有在 sclk 为低电平时,才能将 rst 置为高电平。 ds1302 的控制字如表 3-2 所示。控制字节的最高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入到 ds1302 中。位 6 如果为 0,则表示存取日历 时钟数据;为 1 则表示存取 ram 数据。位 51(a4a0)指示操作单元的地址。最 低有效位(位 0)如果为 0,则表示药进行写操作;为 1 表示进行读操作。控制字节 总是从最低位开始输入/输出。 x1 2 x2 3 vcc2 1 gnd 4 rst 5 i/o 6 sclk 7 vcc1 8 u2 ds1302 12 y2 32.768k 30p c4 30p c5 vcc r9 10k r10 10k r11 10k p10 p11 p12 bt1 3.6v 为了提高对 32 个地址寻址能力(地址/命令位 15=逻辑 1) ,可以把时钟/日历 或 ram 寄存器规定为多字节(burst)方式。位 6 规定时钟或 ram,而位 0 规定读 或写。在时钟/日历寄存器中的地址 931 或 ram 寄存器中的地址 31 不能存储数据。 在多字节方式下,读或写从地址 0 的位 0 开始。必须按数据传送的次序写最先的 8 个寄存器。但是,当以多字节方式写 ram 时,为了传送数据不必写所有的 31 字节, 不管是否谢了全部 31 字节,所写的每一字节都将传送至 ram。 ds1302 共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据 图 3-5 ds1302 接口电路 电子万年历的设计与实现 13 位为 bcd 码形式。其日历、时间寄存器及其控制字如下表所示,其中奇数为读操作, 偶数为写操作。 时钟暂停:秒寄存器的位 7 定义位时钟暂停位。当它为 1 时,ds1302 停止振 荡,进入低功耗的备份方式,通常在对 ds1302 进行写操作时(如进入时钟调整程 序) ,停止振荡。当它为 0 时,时钟将开始启动。 am-pm/12-24 小时方式:小时寄存器的位 7 定义为 12 或 24 小时方式选择位。 它为高电平时,选择 12 小时方式。在此方式下,位 5 为第二个 10 小时位 (2023h) 。 ds1302 有主电源/后备电源双电源引脚:vcc1 在单电源与电池供电的系统中提 供低电源,并提供低功率的电磁备份;vcc1 在双电池系统中提供主电源。在这种运 行方式中,vcc1 里连接到后备电源,以便在没有主电源的情况下能保存时间信息以 及数据。ds1302 由 vcc1 或 vcc2 中较打大者供电。当 vcc2(vcc1+0.2v)时, vcc2 给 ds1302 供电;当 vcc2vcc1 时,ds1302 由 vcc1 供电。vcc1 为后备电源, vcc2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。实现停电后时 钟正常运行,可以不显示,实现掉电保护5。 3.3 温度采集模块的设计 3.3.1 ds18b20 简介 系统采用数字式温度传感器 ds18b206,它是数字式温度传感器,具有测量精 度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,ds18b20 引脚功能如表 3-6 所示。独特的一线接口,只需要一条口线通信多点能力,简化了 表 3-2 ds1302 控制字 电子万年历的设计与实现 14 分布式温度传感应用无需外部元件可用数据总线供电7,电压范围为 3.0v 至 5.5v 无需备用电源测量温度范围为-55 度至+125 度。-10 度至+85 度范围内精度为0.5 度 温度传感器可编程的分辨率为 912 位89。 ds18b20的主要特征: (1) 全数字温度转换及输出。 (2) 先进的单总线数据通信。 (3) 最高12位分辨率,精度可达土0.5摄氏度。 (4) 12位分辨率时的最大工作周期为750毫秒。 (5) 可选择寄生工作方式。 (6) 检测温度范围为55c +125c (67f +257f) (7) 内置eeprom,限温报警功能。 (8) 64位光刻rom,内置产品序列号,方便多机挂接。 (9) 多样封装形式,适应不同硬件系统。 ds18b20芯片封装结构如图3-6: 图3-6 ds18b20芯片封装 ds18b20引脚功能: (1) gnd 电压地; (2) dq 单数据总线;(3) vdd 电源电 压 3.3.2 ds18b20 与单片机接口电路 如图3-7所示,ds18b20只需要接到控制器(单片机)的一个i/o口上10,由于 单总线为开漏所以需要外接一个4.7k的上拉电阻。如要采用寄生工作方式,只要将 vdd电源引脚与单总线并联即可。但在程序设计中,寄生工作方式将会对总线的状 态有一些特殊的要求。 ds18b20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更 电子万年历的设计与实现 15 强。一个工作周期可分为两个部分,即温度检测和数据处理11。在讲解其工作流程 之前我们有必要了解ds18b20的内部存储器资源。ds18b20共有三种形态的存储器 资源,它们分别是: rom 只读存储器:用于存放ds18b20id编码,其前8位是单线系列编码 (ds18b20的编码是19h) ,后面48位是芯片唯一的序列号,最后8位是以上56的位 的crc码(冗余校验) 。数据在出产时设置不由用户更改。ds18b20共64位rom。 vcc 1 i/o 2 gnd 3 q0 ds18b20 r13 10k vcc p24 ram 数据暂存器:用于内部计算和数据存取,数据在掉电后丢失,ds18b20 共 9 个字节 ram,每个字节为 8 位。第 1、2 个字节是温度转换后的数据值信息, 第 3、4 个字节是用户 eeprom(常用于温度报警值储存)的镜像。在上电复位时 其值将被刷新。第 5 个字节则是用户第 3 个 eeprom 的镜像。第 6、7、8 个字节为 计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转 换、计算的暂存单元。第 9 个字节为前 8 个字节的 crc 码。eeprom 非易失性记 忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,ds18b20 共 3 位 eeprom,并在 ram 都存在镜像,以方便用户操作。 3.4 键盘显示模块的设计 3.4.1 按键电路的设计 本系统按键采用独立按键设计,具有电路简单,软件实现简单等有点。按键电 路设计如图 3-8 所示。 系统共有四个独立按键,分别为“闹钟停止键”、“设置键”、“增加键”、 “减小键”,当闹钟响起后只能手动关闭,即按下“闹钟停止键”闹钟停止;当调 整时间或者调整闹钟时间时按“设置键”选择要设置的选项,本系统“设置键”采 用循环选择被调对象的模式,选中要调整的对象后按“增加键”或“减小键”调整 图 3-7 ds18b20 温度采集原理图 电子万年历的设计与实现 16 完成后按“设置键”确认。 r5 10k r6 10k r7 10k r8 10k s2位位位 s3位位 s4位 s5位 vcc p23 p22 p21 p20 图 3-8 按键电路 3.4.2 显示电路的设计 一、lcd1602 简介 液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各 类仪表和低功耗系统中得到广泛的应用12。根据显示内容可以分为字符型液晶,图 形液晶。根据显示容量又可以分为单行 16 字,2 行 16 字13,两行 20 字等等。这里 介绍常用的字 16 字 x2 行的字符型液晶模块的使用方法。这是一种通用模块。与数 码管相比该模块有如下优点: (1) 位数多,可显示 32 位,32 个数码管体积相当庞大了。 (2) 显示内容丰富,可显示所有数字和大、小写字母。 (3) 程序简单,如果用数码管动态显示,会占用很多时间来刷新显示,而 1602 自动完成此功能。 1602 采用标准的 16 脚接口,其外观图如图 3-9 所示,其中引脚如图 3-10 所示 (模块背面有标注)。 第 1 脚:vss 为地电源 第 2 脚:vdd 接 5v 正电源 图 3-9 lcd1602 液晶外观图 电子万年历的设计与实现 17 第 3 脚:v0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时 对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个 10k 的电位器调整 对比度(建议接地,弄不好有的模块会不显示) 第 4 脚:rs 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存 器。 第 5 脚:rw 为读写信号线,高电平时进行读操作,低电平时进行写操作。 第 6 脚:e 端为使能端,当 e 端由高电平跳变成低电平时,液晶模块执行命令。 第 714 脚:d0d7 为 8 位双向数据线。 第 1516 脚:空脚(有的用来接背光) 二、lcd1602 与单片机接口电路 1602 液晶模块内部的控制器共有 11 条控制指令,如表 3-3 所示: 1602 液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 (说明:1 为高电平、0 为低电平) 序号指令rsr/wd7d6d5d4d3d2d1d0 1清显示0000000001 2光标返回000000001* 3置输入模式00000001i/ds 4显示开/关控制0000001dcb 5光标或字符移位000001s/cr/l* 6置功能00001dlnf* 7置字符发生存贮器地址0001字符发生存贮器地址 图 3-10 lcd1602 液晶引脚 图 表 3-3 1602 液晶模块控制指令 电子万年历的设计与实现 18 8置数据存贮器地址001显示数据存贮器地址 9读忙标志或地址01bf 计数器地址 10 写数到 cgram 或 ddram) 10 要写的数据内容 11 从 cgram 或 ddram 读 数 11 读出的数据内容 指令 1:清显示,指令码 01h,光标复位到地址 00h 位置。 指令 2:光标复位,光标返回到地址 00h。 指令 3:光标和显示模式设置 i/d:光标移动方向,高电平右移,低电平左移 s:屏 幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。 指令 4:显示开关控制。 d:控制整体显示的开与关,高电平表示开显示,低 电平表示关显示 c:控制光标的开与关,高电平表示有光标,低电平表示无光标 b:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令 5:光标或显示移位 s/c:高电平时移动显示的文字,低电平时移动光标。 指令 6:功能设置命令 dl:高电平时为 4 位总线,低电平时为 8 位总线 n: 低电平时为单行显示,高电平时双行显示 f: 低电平时显示 5x7 的点阵字符,高电 平时显示 5x10 的点阵字符。 指令 7:字符发生器 ram 地址设置。 指令 8:ddram 地址设置。 指令 9:读忙信号和光标地址 bf:为忙标志位,高电平表示忙,此时模块不能 接收命令或者数据,如果为低电
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院医用直线加速器机房混凝土浇筑施工作业指导书
- 医院反物质治疗知情同意书签署指南
- 在线支付平台服务流程升级沟通函7篇
- 物流仓库设备维修预约确认信息管理系统应用6篇
- 关于新办公用品采购事宜回复函7篇范本
- 二年级数学(上)计算题专项练习
- 小学主题班会课件:感悟自然的神奇,了解生态的意义
- 道德教育成长之路-小学主题班会课件
- 危险品仓库安全管理员培训通知(4篇)范文
- DB52-T 1688-2022 高速公路入口治超系统数据
- 2026山东烟台市壹通无人机系统有限公司暨三航无人系统技术(烟台)有限公司社会招聘40人笔试备考试题及答案详解
- 2026广西投资集团咨询有限公司社会招聘1人笔试历年难易错考点试卷带答案解析
- 2026年湖北省人民法院聘用书记员考试试题及答案
- 2026广东揭阳市惠来县卫生健康事业单位招聘综合类18人笔试题库附参考答案详解【A卷】
- 临床内科151种常见病诊断及治疗要点
- 闵行区2025-2026学年六年级上学期期末考试数学试卷及答案(上海新教材沪教版)
- 心房颤动诊疗中国指南(2026 版)
- 2026年广东中山市中考化学试题(附答案)
- 塑胶配色外包合同
- 浙江省绍兴市稽阳联谊学校2026年4月高三年级联考思想政治试卷(含答案)
- 热电厂中低压管道施工组织设计
评论
0/150
提交评论