




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学士学位论文(设计) Bachelors Thesis 论文题目基于 DS1302 实时时钟系统的设计 目目 录录 1绪论.1 2方案对比与选择分析介绍.2 2.1 单片机控制器的选择与对比.2 2.2 实时时钟芯片的选择与对比.3 2.3 显示器件的选择与对比.3 3系统设计概述.4 3.1 设计内容及要求 4 3.2 系统框架及说明 4 4硬件电路设计分析.5 4.1 STC89C52 单片机简介 5 4.2 STC89C52 单片机内部结构 6 4.3 MCU 控制电路设计分析 .7 4.4 数码管显示设计分析 8 4.5 DS1302 时钟电路设计分析 .10 4.6 蜂鸣器报警电路设计分析 .15 4.7 电源部分设计分析 .15 5系统软件设计分析16 5.1 DS1302 模块程序设计 .16 5.2 定时器模块程序设计 .16 5.3 按键模块程序设计 .17 5.4 数码管显示模块程序设计 .19 5.5 蜂鸣器报警模块程序设计 .20 5.6 主程序设计 .20 6总结21 7参考文献22 8致谢.1 附录 .错误!未定义书签。错误!未定义书签。 附录 1 作品(设计)原理图 .错误!未定义书签。错误!未定义书签。 附录 2 作品(设计)实物图 .错误!未定义书签。错误!未定义书签。 基于基于 DS1302DS1302 实时时钟系统的设计实时时钟系统的设计 摘要: 本论文(设计)采用 STC89C52 单片机和 DS1302 实时时钟芯片为主要器件设计的 实时时钟系统。能够准确的显示实时时间、日期、星期。通过 8 位低功耗数码管 将时间信息显示出来,数码管由单片机直接驱动,无需其他驱动芯片,通过按键 切换显示时间、日期、星期、闹钟等信息。系统设计有闹钟报警功能,当实时时 间到达闹钟设计时间时,闹钟就会蜂鸣器报警,报警时间可通过按键自行设定。 DS1302 芯片配备有备用电池,可确保即便是掉电的情况下也能继续走时,无需 人工重新设定时间。 关键词: 单片机;DS1302;实时时钟; 中图分类号: : TP Design of Real-Time Clock System Based on DS1302 Abstract :This thesis (design) STC89C52 microcontroller and DS1302 real time clock chip real-time clock system design for the main device. Able to accurately display real-time time, date, day of the week. 8-bit low-power digital tube display time information, the digital tube directly driven by the microcontroller, without additional driver chips, display time, date, week, alarm clock and other information through the key switch. The system is designed to have an alarm clock alarm function, real-time to reach the alarm design time, the alarm will be buzzer alarm, set alarm time by pressing a button. The DS1302 chip equipped with battery backup to ensure that even the case of power failure can continue to walk, you do not need to manually reset the time. Keywords : MCU ; DS1302 ; Real-Time Clock; 1 基于基于 DS1302DS1302 实时时钟系统的设计实时时钟系统的设计 1绪论 20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透 了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时 也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。 忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要 事情,一时的 耽误可能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋 势将是进一步向着 CMOS 化、低 功耗、小体积、大容量、高性能、低价格和外围电路 内装化等几个方面发展。下面是单片机的主要发展趋势,单片机应用的重要意义还在于, 它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字 电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬 件的控制技术也称为微控制技术,是传统控制技术的一次革命。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒 计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更 长的使用寿命,因此得到了广泛的使用。将单片机嵌入时钟构成一体,开发出多功能 时钟,可以让人们对于时间更好的把握,是发展的必然结果。 现代的数字钟不仅需要数字电路技术而且需要模拟电路技术和单片机技术,增加 了数字钟的功能。其电路可以由实时时钟模块、环境温度检测模块、人机接口模块、 报警模块等部分组成。利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其 他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差,但是数 字钟还是可以改进和提高如选用更精密的元器件。但与机械式时钟相比已经具有更高 的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。 数字钟是采用数字电路实现对时、分、秒、日期数字显示的计时装置,广泛用于个 人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字 集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时 功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭 路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些, 都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 2 本文就是基于以上的选题背景和研究意义,研究设计的基于 DS1302D 的实时时 钟系统。 2方案对比与选择分析介绍 2.1单片机控制器的选择与对比 目前在单片机系统中,低端控制其中应用比较广泛的微处理器芯片主要为 8 位单 片机。新型单片机层出不穷,硬件资源相互兼容,品类齐全,功能完善,性能稳定, 体积小,价格低廉,货源充足,调试和编程方便,所以应用极为广泛。 ATmega16 是基于增强的 AVR RISC 结构的低功耗 8 位 CMOS 微控制器。由于其先进 的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达 1 MIPS/MHz,从 而可以减缓系统在功耗和处理速度之间的矛盾。ATmega16 有如下特点:16K 字节的系统 内可编程 Flash(具有同时读写的能力,即 RWW),512 字节 EEPROM,1K 字节 SRAM,32 个通用 I/O 口线,32 个通用工作寄存器,用于边界扫描的 JTAG 接口,支持片内调试 与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行 USART,有起始条件检测器的通用串行接口,8 路 10 位具有可选差分输入级可编程增益 (TQFP 封装) 的 ADC ,具有片内振荡器的可编程看门狗定时器,一个 SPI 串行端口, 以及六个可以通过软件进行选择的省电模式。 STC12C5A60S2/AD/PWM 系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片 机,是高速/低功耗/超强抗干扰的新一代 8051 单片机,指令代码完全兼容传统 8051, 但速度快 8-12 倍。内部集成 MAX810 专用复位电路,2 路 PWM,8 路高速 10 位 A/D 转换 (250K/S,即 25 万次/秒)针对电机控制,强干扰场合。 STC89C52 单片机是一款低功耗,低电压,高性能 CMOS 8 位单片机,片内含 8KB(可经受 1000 次擦写周期)的 FLASH 可编程可反复擦写的只读程序存储器,器件 采用 CMOS 工艺和高密度、非易失性存储器(NURAM)技术制造,其输出引脚和指令系 统都与 MCS-51 兼容。片内的 FLASH 存储器允许在系统内可改编程序或用常规的非易失 性存储器编程器来编程。因此,STC89C52 是一种功能强,灵活性高且价格合理的单片 机,可方便的应用在各个控制领域。 本设计本着实用、够用、方便、降低成本的原则,本设计中需要更多的 I/O 引脚 驱动数码管,在众多的单片机中选用具有 32 根 I/O 引脚的 STC89C52 单片机。 3 2.2实时时钟芯片的选择与对比 在电子时钟设计中,常用的实时时钟芯片有 DS12887、DS1216、DS1643、DS1302。 每种芯片的主要时钟功能基本相同,只是在引脚数量、备用电池的安装方式、计时精 度和扩展功能等方面略有不同。DS12887 与 DS1216 芯片都有内嵌式锂电池作为备用电 池;X1203 引脚少,没有嵌入式锂电池,跟 DS1302 芯片功能相似,只是相比较之下, X1203 与 STC89C52 搭配使用时占用 I/O 口较多。DS1643 为带有全功能实时时钟的 8K8 非易失性 SRAM,集成了非易失性 SRAM、实时时钟、晶振、电源掉电控制电路和 锂电池电源,BCD 码表示的年、月、日、星期、时、分、秒,带闰年补偿。同样, DS1643 拥有 28 只管脚,硬件连接起来占用微处理器 I/O 口较多,不方便系统功能拓展 和维护。故而从性价比和货源上考虑,本设计采用实时时钟日历芯片 DS1302。 2.3显示器件的选择与对比 显示部分是本次设计的重要部分,一般有 LED 数码管和 LCD 液晶显示器两种方案。 方案一:采用 LED 数码管显示。 LED 的结构及连接如图 2.1 所示: 图 2.1 LED 数码管结构与连接图 LED 显示器可以分为有静态显示方式和动态显示方式两种。静态显示就是当数码管 显示某个字符时,相应的段恒定的导通,直到要显示下一个字符为止。数码管工作在 静态显示方式时,共阴极 COM 端要接地;若为共阳极 COM 端接在+5V 电源。每位的段选 线应分别与一个 8 位数据口的输出端相连,数码管的各位是相互独立的,且要显示字 符一经确定,相应数据的输出将必须维持不变。静态显示数码管一直在工作,因而数 4 码管静态显的亮度较高。在这种显示方式编程比较容易,管理也较简单,但占用 I/O 口线资源较多,因而在显示位数较多的情况下,我们大都都采用数码管动态显示方式 进行显示。而对于动态显示方式,虽可以避免静态显示的问题,但设计上如果处理不 当,易造成亮度低,有闪烁等问题。 方案二:采用 LCD 显示。 LCD 液晶显示具有丰富多样性、灵活性、电路简单、易于控制而且功耗小等优点, 对于一般的段式液晶屏,需要专门的驱动电路,而且也经显示作为一种被动显示,可 视性相对较差;对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵) ,一 般多采用并行机接口,对于微处理器的接口要求较高,占用资源多。另外,89C52 本身 没有专门的液晶驱动接口。 鉴于上述原因,我们采用方案一,采用了数码管显示方式。数码管作为一种主动 显示器件,具有亮度高、价格便宜、功耗低、驱动简单等优点,而且市场上也有专门 的时钟显示组合数码管。 3系统设计概述 3.1 设计内容及要求 1.采用 STC89C52 单片机作为主控制器; 2.采用 DS1302 作为实时时钟芯片,实现精确走时; 3.通过数码管显示时间、日期、星期、闹钟等信息,通过按键切换显示内容; 4.时间具有掉电保持功能; 5.通过按键设定闹钟时间和关闭闹钟报警,闹钟通过蜂鸣器报警; 6.系统电源设计。 3.2 系统框架及说明 5 MCU主控系统 LED显示 按键实时时钟 电 源 报警器 图3.1 系统框图 图 3.1 所示为实时时钟系统的整体框图,系统由 6 部分组成,其中包括 MCU 主控 系统部分、LED 数码管部分、按键部分、实时时钟部分、蜂鸣器报警部分及电源部分。 其中 MCU 核心控制部分采用 STC89C52 单片机为核心控制器,主要负责 DS1302 数据的 读写、数码管扫描显示、按键响应、报警控制;按键部分采用 4 个独立按键,用于数 码管显示内容的切换和闹钟时间的设定;实时时钟部分主要由 DS1302 和晶振组成,提 供精确时间;报警器部分主要由蜂鸣器组成,当实时时间到达设定时间时,单片机控 制蜂鸣器报警,蜂鸣器发出尖锐刺耳的报警声音,起到很好的报警作用;电源部分主 要由 78XX 三端稳压集成芯片组成,为整个系统提供所需的 5V 工作电源。总的来说, 由于采用了较好的方案和相关器件的选择,使得整个系统具有性价比高、成本低、具 有很高的实用性等优点。 4硬件电路设计分析 4.1 STC89C52单片机简介 STC89C52单片机是STC推出的新一代高速、低功耗、超强抗干扰单片机,指令代码 完全兼容传统的8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择,下面为 STC89C52单片机的主要参数。 1. 增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机器周期可以任意选择,指 令代码完全兼容传统 8051. 2. 工作电压:5.5V3.3V(5V 单片机)/3.8V2.0V(3V 单片机) 6 3. 工作频率范围:040MHz,相当于普通 8051 的 080MHz,实际工作 频率可 达 48MHz 4. 用户应用程序空间为 8K 字节 5. 片上集成 512 字节 RAM 6. 通用 I/O 口(32 个) ,复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口 是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉 电阻。 7. ISP(在系统可编程)/IAP(在应用可编程) ,无需专用编程器,无 需专用仿 真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片 8. 具有 EEPROM 功能 9. 具有看门狗功能 10. 共 3 个 16 位定时器/计数器。即定时器 T0、T1、T2 11. 外部中断 4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部 中断低电平触发中断方式唤醒 12. 通用异步串行口(UART) ,还可用定时器软件实现多个 UART 13. 工作温度范围:-40+85(工业级)/075(商业级) 4.2 STC89C52单片机内部结构 STC89C52 单片机内部结构框图如下图所示,其中包括中央处理器 MCU、程序存储 器 Flash、数据存储器 SRAM、定时/计数器、串口、I/O 口、EEPROM、看门狗等。 7 图 4.1 STC89C52 单片机内部结构框图 4.3 MCU控制电路设计分析 本系统所使用的单片机最小系统原理图如下图所示,其中包括STC89C52单片机、晶 振电路、复位电路、按键、上拉电阻、数码管等。其中本设计采用的晶振为 22.1184M,复位电路采用上电复位方式,上拉电阻为1K 9P排阻,4个按键分别接 P32、P33、P34、P35,功能分别为显示模式切换、闹钟设定取消、时间值设置加(+) 按键、时间值减(-)按键。单片机P0口接数码管段选端,单片机P2口接数码管位选端。 8 P1.0/T2 1 P1.1/T2EX 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 RST 9 P3.0/RxD 10 P3.1/TxD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.5/T1 15 P3.6/WR 16 P3.7/RD 17 XTAL2 18 XTAL1 19 VSS 20 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P2.7/A15 28 PSEN 29 ALE 30 EA/VPP 31 P0.7/AD7 32 P0.6/AD6 33 P0.5/AD5 34 P0.4/AD4 35 P0.3/AD3 36 P0.2/AD2 37 P0.1/AD1 38 P0.0/AD0 39 VCC 40 U2 STC89C5X 1 2 ET2 1 2 INT1 1 2 INT2 1 2 ET1 22p C4 22p C8 22.1184M Y2 R6 10k VCC P01 P02 P03 P04 P05 P06 P07 P00 P21 P22 P23 P24 P25 P26 P27 P20 P10 P12 P13 P14 P15 P16 P17 GND ALE GND P30 P31 P32 P33 P34 P35 P36 P37 GND VCC 1 2 3 4 5 6 7 8 9 R31kX8 VCC 10uF C12 P00 P01 P02 P03 P04 P05 P06 P07 P11 R5 4.7k EA PSEN GND 0.1uF C3 VCC 图4.2 单片机系统原理图 4.4 数码管显示设计分析 4.4.1 数码管的工作原理介绍 单片机 I/O 的应用最典型的是通过 I/O 口与 7 段 LED 数码管构成显示电路,7 段 LED 数码管,在一定形状的绝缘材料上,利用单只 LED 组合排列成“8”字型的数码管, 分别引出它们的电极,点亮相应的点划来显示出 0-9 的数字。LED 数码管根据 LED 的接 法不同分为共阴和共阳两类,了解 LED 的这些特性,对编程是很重要的,因为不同类 型的数码管,除了它们的硬件电路有差异外 ,编程方法也是不同的。下图 4.3 是共阴 和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而 已。 9 图 4.3 数码管内部原理图 将多只 LED 的阴极连在一起即为共阴式,而将多只 LED 的阳极连在一起即为共阳 式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当 然,LED 的电流通常较小,一般均需在回路中接上限流电阻。假如我们将“b“和“c“段接 上正电源,其它端接地或悬空,那么“b“和“c“段发光,此时,数码管显示将显示数字 “1” 。而将“a“、“b“、“d“、“e“和“g“段都接上正电源,其它引脚悬空,此时数码管将 显示“2” 。其它字符的显示原理类同。 用单片机驱动 LED 数码管有很多方法,按显示方式分,有静态显示和动态(扫描) 显示,按译码方式可分硬件译码和软件译码之分。静态显示就是显示驱动电路具有输 出锁存功能,单片机将所要显示的数据送出后就不再控制 LED,直到下一次显示数据需 要更新时再传送一次新数据,显示数据稳定,占用很少的 CPU 时间;动态显示需要 CPU 时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的 CPU 时间多。 这两种显示方式各有利弊:动态显示虽然有闪烁感,占用的 CPU 时间较多,但是 用的硬件少,能节省线路板的空间。动态扫描显示接口是单片机种应用最广泛的一种 显示方式。其接口电路是把所有的 LED 显示器的 8 个笔画段 AG、DP 的同名端连在一 起,而每一个数码管的位选端是各自独立地受 I/O 线控制。CPU 向字段输出口送出字形 码时,所有显示器接收到相同的字形码,但究竟是哪个显示器亮,则取决于位选端, 而这一端由 I/O 控制的,可以自行决定何时显示哪一位。而所谓动态扫描就是指我们 采用分时的方法,轮流控制各个显示器的位选端,使各个显示器轮流点亮。在轮流点 10 亮扫描过程中,每位显示器的点亮时间是极为短暂的,约 1ms 左右,但是由于人的视 觉暂留现象及发光余晖效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速 度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。 静态显示虽然数据稳定,占用很少的 CPU 时间,但每个显示单元都需要单独的显 示驱动电路,使用的硬件较多,但是编程相对于动态显示比较简单,本设计采用的是 静态显示方案。单片机对 LED 数码管的驱动方法可以分为串行和并行两种,分别适用 于不同的使用场合,两者的硬件电路和程序区别也很大。在一般情况下,单片机使用 并行驱动的方式进行 LED 的显示,并行驱动的结构较简单。 4.4.2 数码管的驱动电路设计分析 本设计数码管采用两个4位的共阴数码管组成8位数码管,采用的上面所说的单片 机并行的驱动方式。段选端接到P0口,位选端接到P2口,虽然使用的IO口比较多,因 为本系统的电路不是很复杂,所有做到了充分利用单片机资源,减少硬件成本。数码 管电路原理图如下图4.4。 S1 f S2 S4 e c DP b a g S3 d DISP1 S1 f S2 S4 e c DP b a g S3 d DISP2 P00 P01 P02 P03 P04 P05 P06 P07 P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 图 4.4 数码管内部原理图 4.5 DS1302时钟电路设计分析 4.5.1 DS1302芯片介绍 低功耗时钟芯片 DS1302 可以对年、月、日、时、分、秒进行计时,且具有闰年补 偿等多种功能。DS1302 用于数据记录,特别是对某些具有特殊意义的数据点的记录上, 能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的 分析以及对异常数据出现的原因的查找有重要意义。 (1) DS1302 的性能特性 实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数; 用于高速数据暂存的 318 位 RAM; 11 最少引脚的串行 I/O; 2.55.5V 电压工作范围; 2.5V 时耗电小于 300nA; 用于时钟或 RAM 数据读/写的单字节或多字节(脉冲方式)数据传送方式; 简单的 3 线接口; 可选的慢速充电(至 VCC1)的能力。 DS1302 时钟芯片包括实时时钟/日历和 31 字节的静态 RAM。它经过一个简单的串行 接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于 小于 31 天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以 采用 24h 或带 AM(上午)/PM(下午)的 12h 格式。采用三线接口与 CPU 进行同步通信, 并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。DS1302 有主电源/后备电 源双电源引脚:VCC1 在单电源与电池供电的系统中提供低电源,并提供低功率的电池 备份;VCC2 在双电源系统中提供主电源,在这种运用方式中,VCC1 连接到备份电源, 以便在没有主电源的情况下能保存时间信息以及数据。DS1302 由 VCC1 或 VCC2 中较大 者供电。当 VCC2 大于 VCC1+0.2V 时,VCC2 给 DS1302 供电;当 VCC2 小于 VCC1 时, DS1302 由 VCC1 供电。 (2) DS1302 数据操作原理 DS1302 在任何数据传送时必须先初始化,把 RST 脚置为高电平,然后把 8 位地址和 命令字装入移位寄存器,数据在 SCLK 的上升沿被输入。无论是读周期还是写周期,开 始 8 位指定 40 个寄存器中哪个被访问到。在开始 8 个时钟周期,把命令字节装入移位 寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲 的个数在单字节方式下为 8 加 8,在多字节方式下为 8 加字节数,最大可达 248 字节数。 如果在传送过程中置 RST 为低电平,则会终止本次数据传送,并且 I/O 引脚变为高 阻态。上电运行时,在 VCC =2.5V 之前,RST 脚必须保持低电平。只有在 SCLK 为低电 平时,才能将 RST 置为高电平。DS1302 的管脚图如图 4.6 所示,表 4.1 为各引脚的功 能,内部结构图如图 4.7 所示。 12 Vcc2 1 X1 2 X2 3 GND 4 RST 5 I/O 6 SCLK 7 Vcc1 8 DS1302U3 图 4.6 DS1302 管脚图 引脚号引脚名称功能 1VCC2 主电源 2,3X1,X2振荡源,外接 32768HZ 晶振 4GND 地线 5RST 复位/片选线 6I/O 串行数据输入/输出端(双向) 7SCLK 串行数据输入端 8VCC1 后备电源 表 4.1 DS1302 引脚功能表 图 4.7 DS1302 内部结构图 DS1302 的控制字如图 4.8 所示。控制字节的最高有效位(位 7)必须是逻辑 1;如 果它为逻辑 0,则不能把数据写入到 DS1302 中。位 6 如果为 0,则表示存取日历时钟 13 数据;为 1 表示存取 RAM 数据。位 51(A4A0)指示操作单元的地址。最低有效位 (位 0)如为 0,表示要进行写操作;为 1 表示进行读操作。控制字节总是从最低位开 始输入/输出。 图 4.8 控制字节的含义 为了提高对 32 个地址的寻址能力(地址/命令位 15逻辑 1) ,可以把时钟/日 历或 RAM 寄存器规定为多字节(burst)方式。位 6 规定时钟或 RAM,而位 0 规定读或 写。在时钟/日历寄存器中的地址 931 或 RAM 寄存器中的地址 31 不能存储数据。在 多字节方式中,读或写从地址 0 的位 0 开始。必须按数据传送的次序写最先的 8 个寄 存器。但是,当以多字节方式写 RAM 时,为了传送数据不必写所有 31 字节。不管是否 写了全部 31 字节,所写的每一字节都将传送至 RAM。数据读写程序如图 4.9 所示。 图 4.9 数据读写程序 DS1302 共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式,其日历、时间寄存器及其控制字见表 4.2,其中奇数为读操作,偶数为写 操作。 14 命令字各位内容寄存器 名写操作读操作 取值 范围 76543210 秒寄存器 80H81H00-59CH10SECSEC 分钟寄存 器 82H83H00-59010MINMIN 小时 寄存器 84H85H 01-12 或 00-23 12/ 24 0 10 AP HRHR 日期 寄存器 86H87H 01-28,29, 30,31 0010DATEDATE 月份寄存 器 88H89H01-12000IOMMONTH 周日寄存 器 8AH8BH01-0700000DAY 年份寄存 器 8CH8DH00-9910YEARYEAR 表 4.2 DS1302 的日历、时钟寄存器及其控制字 时钟暂停:秒寄存器的位 7 定义位时钟暂停位。当它为 1 时,DS1302 停止振荡, 进入低功耗的备份方式。通常在对 DS1302 进行写操作时(如进入时钟调整程序) ,停 止振荡。当它为 0 时,时钟将开始启动。 AM-PM/12-24小时方式:小时寄存器的位 7 定义为 12 或 24小时方式选择位。 它为高电平时,选择 12小时方式。在此方式下,位 5 是 AM/PM 位,此位是高电平时 表示 PM,低电平表示 AM,在 24小时方式下,位 5 为第二个 10小时位(2023h) 。 4.5.2 DS1302电路设计分析 实时时钟芯片 DS1302 采用串行数据传输,可为掉电保护电源提供可编程的充电功 能,也可以关闭充电功能,芯片采用 32768Hz 晶振。备用电源 BT1 可以用电池或超级 电容,虽然 DS1302 在主电源掉电后耗电很小,但如果要长时间保证时钟正常,最好选 用小型充电电池,如果断电时间较短(几小时或几天) ,可以用漏电较小的普通电解电 15 容代替,本设计选用的是一颗 3V 纽扣电池作为备用电源,一般情况下可以使用几年。 DS1302 的三个接口分别接单片机的 P12、P13、P14。DS1302 时钟电路原理图如图 4.10 所示。 X1 2 X2 3 VCC2 1 GND 4 RST 5 I/O 6 SCLK 7 VCC1 8 U1DS1302VCC P14 P13 P12 12 Y1 32.768K 0.1uF C1 GND VCC GND BT1 3V 图 4.10 DS1302 时钟电路原理图 4.6 蜂鸣器报警电路设计分析 闹铃声音可以直接采用蜂鸣器闹铃,如当前时刻与闹铃设定时间相同,单片机向 蜂鸣器送出低电平,蜂鸣器发声。采用蜂鸣器闹铃结构简单,控制方便,但是发出的 闹铃声音单一。闹铃的音乐不是本设计中的重点,故采用最简单的方法,占用单片机 一根 I/O 口 P10,中间用 PNP 型三极管 S8550 连接 P10 和蜂鸣器。当 P10 引脚为低电平 时,S8550 的发射极和集电极导通,使蜂鸣器发声。其中二极管 4148 起续流作用。正 向导通,逆向电阻无限大。因为可能在蜂鸣器断开的瞬间,蜂鸣器会会产生感应电动 势(电压) ,需要一个二极管将其储存的电流消耗掉,否则可能会烧掉蜂鸣器,起到保 护蜂鸣器的作用。蜂鸣器原理图如图 4.11 所示。 2 LS1 P10 VCC R2 10 R1 1k Q1 S8550 1 D2 4148 GND 图 4.11 蜂鸣器报警电路原理图 16 4.7 电源部分设计分析 电源是整个系统的能量来源,它直接关系到系统能否正常稳定的运行,电源的稳 定性和效率是电源的两个重要因素。本系统所需的电源有为 5V。5V 采用 7805 三端稳 压芯片经过 7-12V 稳压提供。78XX 三端稳压集成芯片芯片采用 TO-220 封装 ,最大输 出电流 1A,满足系统要求,最大输入电压 35V,具有过流过热短路保护功能。电源模块 电路原理图如图 4.12 所示。 R4 1k VCCS1 C11 1 LED1 GND 0.1uF C9 12V D3 1N4007 J1 PWR2.5 IN 1 3 OUT 2 GND U3 LM7805 C100.1uF C5 图 4.12 电源模块电路原理图 5系统软件设计分析 5.1 DS1302模块程序设计 在首次对 DS1302 进行操作之前,必须对它进行初始化,本设计采用的做法是第一 次设定好一个准确的时间后,由于备用电池的存在掉电后时间信息也不会丢失,所以 以后只需从 DS1302 中读出数据,程序只需从 DS1302 各寄存器中读出年、周、月、日、 时、分、秒等数据,再处理即可,送给显示缓冲单元。DS1302 模块的读、写流程图如 图 5.1 所示。 写寄存器地址 数据十进制-BCD转换 写入数据 写寄存器地址 读出数据 数据BCD-十进制转换 返回数据 图 5.1 DS1302 模块的读、写流程图 17 5.2 定时器模块程序设计 本系统软件程序的设计采用实时操作系统的程序设计思想,定时器用来产生1ms时 基,通过计数器cnt计数产生不同是时基从而分时执行不同的任务,系统中用到了3个 时基,分别是10ms、100 ms、500ms,同时数码管扫描函数display( )在定时器中2ms执 行一次循环扫描,通过iloop+循环移位扫描数码管。通过此外定时器还用于按键软件 去抖。定时器模块流程图如下: 定时器初始化 cnt+ cnt%2 = 0 ? cnt%10 = 0 ? cnt%100 = 0 ? cnt%500 = 0 ? 数码管扫描 10ms标志 = 1 100ms标志 = 1 500ms标志 = 1 cnt清零 Y Y Y 定时器赋初值 Y N N N N 图5.2 定时器模块流程图 18 5.3 按键模块程序设计 本系统共有4个按键,分别为KEY1-P32、KEY2-P33、KEY3-P34、KEY4-P35。系统的 设定及显示状态通过按键实现。KEY1键切换循环显示时间、日期、星期、闹钟;按 KEY2键时如果有闹钟报警按下则关闭闹钟,如果没有闹钟则进入闹钟设置模式;KEY3 和KEY4分别在进入闹钟设置模式时进行时间的加减。其中按键函数分为按键扫描函数 和按键功能执行函数, 按键扫描函数用于按键去抖判断按键是否有效,按键有效后按 键执行函数执行相应的按键设定功能。按键流程图如下: 是否有按键按下? Key_cnt=10? 对应按键标志置1 Y Y Key_cnt清零N 图5.3 按键扫描函数流程图 19 disp_mode=0? KEY1_F标志清零 disp_mode+ KEY1_F标志=1? disp_mode=1? 显示时间显示日期 disp_mode=2?disp_mode=3? 显示星期显示闹钟 disp_mode=4? disp_mode清零 闹钟是否报警? KEY2_F标志清零 KEY2_F标志=1? 关闭闹钟 key2_flag+ Y N key2_flag=1?key2_flag=2? disp_mode=3 设置闹钟时 KEY3、KEY4加减 设置闹钟分 KEY3、KEY4加减 key2_flag=3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 疫情期间德育班会课件
- 二零二五年度第五章担保合同标的文化遗产保护项目资金担保协议
- 二零二五年度进口货物保险代理与货物运输合同
- 二零二五年度出租房屋消防安全风险评估及整改服务合同
- 工程规范课件
- 工程结算难点课件
- 票据背书委托业务合同书
- 餐饮设备采购安装合同
- 广州铁一中学数学试卷
- 国际小学入学数学试卷
- GB/T 19869.1-2005钢、镍及镍合金的焊接工艺评定试验
- GB/T 1796.4-2017轮胎气门嘴第4部分:压紧式无内胎气门嘴
- 中考语文非连续性文本阅读10篇专项练习及答案
- 上海高一数学教材电子版
- GB 17324-2003瓶(桶)装饮用纯净水卫生标准
- 医院患者自杀应急预案
- 湘教版高中地理知识点归纳汇总
- CFG桩施工技术培训课件(-40张)
- ISO 31000-2018 风险管理标准-中文版
- 河北省廊坊市各县区乡镇行政村村庄村名居民村民委员会明细
- 岗位技能评定机考考场规则
评论
0/150
提交评论