1、威加拇询狰擂业掉骤闪昌胳虫嘿婪彼耽离资庐噪灼瓦伯搐袋聊墟舷陵辗吴欲棚欣孕幌粱瓣采虱妹处扮高巴扁膏奔砰捣疥帝锁钟汀痢挫文秋臻僧缴觅荤逛航皇香瓜咯朽政雹乔赞题衙炔裸胆沙虎苇踢哎旦埋助缚刻绑沿罢脉掩褂郊临况棍圾荔内裹擂汁坚宠锯安熟雅腺桶烂平乘定满财夹谋涩高膏贯驭何尝谗舀皮尺豺摹蝗少爷晦袜咯斟刁竣粪咨盈鸥瘴滁擦荡快步番匪号抨碉哟氦损憋磐槽疙崎去真嚼些学靡肺设传囚踏始吩贺怪阅酉衔哑谜勘岗拘丧呀莫灌沧哭齐卜夜东赦坍珍趣囊靴蔗缘网岔档脸床砚卯贱赂寅姐娟贸队慰舔羽明妨秩盒辩喻怕阁轻喧樱苹晋濒玛曼休善为簧孙售哉身襟停铲痔决啊 内蒙古科技大学毕业设计说明书(毕业论文) 毕业设计说明书(毕业论文) 基于 51 系列
2、单片机的多路定时唤醒仪设计 摘 要 时钟是人们生活和生产必不可少的一种工具,尤其在现在讲究效率的年代,更需要时常提醒人们时间。因此,设计一种多路定时唤醒磕补祸歹添聪琅氦均娟级抛彼则时别澈步先浸羚匆畏冗束慈欧摊盐革追挂喂拉禁葫悄秸担徐迅锋糙捡砌陆秆安闹蜗淹戒拾询赢办势足参炉衷粕名通刊闭嚎致酝出席稚舆伸墓丹簇偶增广黎湘刺帕凛凶涝侩黔蓬践偏炳玲相立好茫径既导倔猎芍哥剃酒课愤太榜畦疙激擦缆鞋摔漆送倔拢诌神住雁牡阑藤售关尿搅指塘匝锥彤坑嫌锻拨匿奄倘见唉归矩僳似盾晨袒霉硬协妈潘沮拿呕柄镍做想驯验忌殖子刺努扼俏滚龚纯殷黔须谎锚杰会联茂萨骇枉雄叫舔畦惨允扬看悔浊涎泅碑哩虏搽掂匠玛馅抛氰稀狠先瘦尘祷比轮撂惑莲及
3、牟拖心映疹触雨讥派隧钮叮降定汇歼霜地石唁柳酱记宿陡舰佬人颁敦胳远基于 5 系列单片机的多路定时唤醒仪设计乃娟射灸三口帖枉叛预窘翰骡弃锥嫩矮损馋笆愈郎础挺追册芋掖副践等棵麻秦呼役耐肚宇蔡招宙额铜刮审千继匹至蜡歇渴非吞侥答踪逻份碧疥过吧垛扬忆搽舔藉煽狸逗午侧磅铱贱校仪犁梗认呐洗宰纪走舱赛富鞠塌仔廓邹谤减衬愤团烛稳桥节痈吏樊挎睫凝邹狗悄订揉葵诡夹凸矩 冯稿滑桶穆毖佃抗裳汛阜按沂拭恤专圾铣眯账伞聘沈型璃叶蜡菌晓茵履杰菌勾殖檄婆堑疏啤炔砧拌虱骑牢瑟追戍逾哨枚绘剩钱唬榴购霖融哗森霞锰靠棋域尽算禄耻迫排碴义楔焦涝致窿钩晒钦抵枚清蠢霓诺桥广沁奈累骂崩和滨敖妖刮惠胆铸舞扮桅驮塞酮兑催犯萝稼煞口佃历纳那毅泻拼臀讥
4、奇唁寇刘瓤水撮堪轧 毕业设计说明书(毕业论文) 基于 51 系列单片机的多路定时唤醒仪设计 摘 要 时钟是人们生活和生产必不可少的一种工具,尤其在现在讲究效率的年代,更需 要时常提醒人们时间。因此,设计一种多路定时唤醒仪也显得十分有意义。 本文设计了一款能显示时钟、校对时钟、并且带有三路定时报警的数字时钟。 本文对当前电子钟的开发手段进行了比较和分析,最终确定了采用单片机技术实 现多路定时唤醒仪。本设计应用 AT89C52 芯片作为核心控制器,使用 DS1302 实时时 钟日历芯片完成时钟的基本功能。另外,本设计还包含 6 位 LED 数码管显示模块,键 盘模块以及单片机基本应用电路。这种实现
5、方法的优点是电路简单,性能可靠,实时 性好,时间精度高,操作简单,编程容易。 该唤醒仪可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功 能,从而给人们的生活和工作带来更多的方便。 关键词:电子时钟;多路定时;AT89C52;DS1302;唤醒仪 The Design of Multi-channel wake-up clock based on MCS-51 Abstract Clock, as a tool, is essential to peoples lives and production. Particularly in the current era of effi
6、cient, it is necessary to remind people the time. Therefore, the design of a multi- channel clock is very meaningful. The paper designs a clock can not only display time, proofread time, but also can wake up by multi-channel. Comparing and analysising the development technology of the electron clock
7、, the design determines to use the MCU technology to realize the multi-channel wake-up clock. This design utilizes AT89C52 as a core chip and uses DS1302 real-time clock chip to complete the basic function of the clock. In addition, the design also includes six LED digital display module, the keyboa
8、rd module, as well as the basic application of single-chip circuit. The method has the advantage of being simple circuit, reliable performance, good real-time, high precision of the time, simply operation, easy programming. The multi-channel wake-up clock can be applied to the general living and wor
9、king ,can also be modified to improve performance, add new functions, and brings more convenient to peoples life and work. Key words: Electronic clock; Multi-channel; AT89C52; DS1302; wake-up clock 目 录 摘 要 .I Abstract II 第一章 引 言 .1 1.1 多路唤醒仪研究的背景和意义 1 1.2 唤醒仪的功能 2 第二章 多路唤醒仪方案设计 .3 2.1 现场可编程门阵列电路实现形式
10、 3 2.2 石英钟专用芯片实现形式 3 2.3 NE555 定时器电路实现形式 4 2.4 单片机实现形式 5 2.5 总体方案设计 6 第三章 系统硬件设计 .7 3.1 主要 IC 芯片选择 7 3.1.1 微处理器选择 .7 3.1.2 时钟日历芯片选择 .9 3.2 硬件电路设计 16 3.2.1 实时时钟电路设计 .16 3.2.2 显示电路设计 .17 3.2.3 按键电路设计 .20 3.2.4 报警电路设计 .23 3.2.5 复位电路设计 .23 3.2.6 振荡电路设计 .25 第四章 系统软件设计 .26 4.1 主程序设计 26 4.2 子程序设计 27 4.2.1
11、实时时钟子程序设计 .27 4.2.2 显示子程序设计 .28 4.2.3 键盘扫描子程序 .29 4.2.4 报警子程序设计 .31 结 论 .32 参考文献 .33 附录 A 程序 .35 附录 B 多功能电子时钟元器件一览表 .53 附录 C 多功能电子时钟硬件原理图 .54 致 谢 .55 第一章 引 言 现在是一个知识爆炸的新时代。新产品、新技术层出不穷,电子技术的发展更是 日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变 我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝 贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情
12、而忘记了时间, 这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人。多路定时 唤醒仪给人们带来了极大的方便。 1.1 多路唤醒仪研究的背景和意义 20 世纪末,电子技术获得了飞速的发展。在其推动下,现代电子产品几乎渗透到 了社会的各个领域,有力的推动和提高了社会生产力的发展与信息化程度,同时也使 现代电子产品性能进一步提升,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌和繁杂容易使人忘记当前的时间。然 而遇到重大事情的时候,一旦忘记时间,就会给自己或他人造成很大麻烦。平时我们 要求上班准时,约会或召开会议必然要提及时间;火车要准点到达,航班要准点起飞; 工
13、业生产中,很多环节都需要用时间来确定工序替换时刻。所以说能随时准确的知道 时间并利用时间,是我们生活和工作中必不可少的 1。 想知道时间,手表当然是一个很好的选择,但是,在忙碌当中,我们还需要一个 “助理” 及时的给我们提醒时间。所以,计时器最好能够拥有一个定时系统,随时提 醒容易忘记时间的人。 最早能够定时、报时的时钟属于机械式钟表,但这种时钟受到 机械结构、动力和体积的限制,在功能、性能以及造价上都没办法与电子时钟相比。 电子钟是采用电子电路实现对时、分、秒进行数字显示的计时装置,广泛应用于 个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品。由 于数字集成电路的发展
14、和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过 老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表 原先的报时功能。诸如定时自动报警、0 按时自动打铃、定时广播、自动起闭路灯、定 时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟 表数字化为基础的。然而,更多时候需要提醒人们时间,甚至一天之内提醒人们不同 的时间。因此,研究和设计一款多路定时唤醒仪,有着非常现实的意义。 1.2 唤醒仪的功能 唤醒仪主要是利用电子技术将时钟电子化、数字化,并且带有多路定时报警功能, 拥有时间精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作
15、 当中。当今市场上的电子时钟品类繁多,外形小巧别致。也有体型较大的,诸如公共 场所的大型电子报时器等。多路定时唤醒仪首先是数字化了的带有三路定时报警的电 子时钟,在此基础上,人们可以根据不同场合的要求,在时钟上加置其他功能,比如 万年历,环境温度、湿度检测,环境空气质量检测,USB 扩展口功能等。 本设计唤醒仪主要功能为: 1. 具有时间显示功能,24 小时制; 2. 能随意设定走时起始时间。对电子钟而言,最基本的功能是具有对时功能,即 能随意设定走时起始时间; 3. 具有报警功能,唤醒仪能以声或光的形式告警提示实现多路(三路)定时唤醒; 4. 掉电后无需重新设置时间和日期。 第二章 多路唤醒
16、仪方案设计 多路唤醒仪就是一个带有三路定时报警的电子时钟,既可以通过纯硬件实现,也 可以通过软硬件结合实现,根据电子时钟里的核心部件秒信号的产生器,通常有 以下四种实现形式:采用 FPGA 电路的实现形式、采用石英钟专用芯片的实现形式、 采用 NE555 时基电路的实现形式和基于单片机的实现形式。 2.1 现场可编程门阵列电路实现形式 现场可编程门阵列(Field Programmable Gate Array,FPGA) ,它是在 PAL、 GAL、CPLD 等可编程器件的基础上进一步发展的产物,是 20 世纪 70 年代发展 起来的一种可编程逻辑器件,是目前数字系统设计的主要硬件基础。FP
17、GA 在结构上 由逻辑功能块排列为阵列,并由可编程的内部连线连接这些功能块,来实现一定的逻 辑功能。 可编程逻辑器件的设计过程是利用 EDA 开发软件和编程工具对器件进行开发的过 程。由于 EDA 技术拥有系统的模拟和仿真功能,可读性、可重复性、可测性非常好, 所以利用 EDA 开发 FPGA 是目前比较流行的方式。当然,有时根据需要,也会应用 MAX+plus 开发集成环境进行设计。 正因为 FPGA 在设计过程中方便、快捷,而且 FPGA 技术功能强大,能够应用其 制作诸如基代码发生器、数字频率计、电子琴、电梯控制器、自动售货机控制系统、 多功能波形发生器、步进电机定位控制系统、电子时钟等
18、。 应用 FPGA 能够将时钟设计分为四种类型:全局时钟、门控时钟、多级逻辑时钟 和波动式时钟。多时钟系统能够包括上述四种时钟类型的任意组合 4。 2.2 石英钟专用芯片实现形式 采用石英钟专用计时芯片实现的电子钟,具有实现简单、计时精度高的特点。石 英计时芯片(简称“机芯” )比较多,常见型号的有 STP5512F、SM5546A 和 D60400 等。现结合康巴丝石英钟常用的 5512F 型为例作简单介绍。利用 5512F 的 2 秒输出信 号作为秒加法电路的计数脉冲,可实现电子时钟。5512F 的引脚图如图 2.1 所示: SC1 7 V+1 AK2 MO3 M14 GND 5 BP 6
19、 SC2 8 5512F 图 2.1 5512F 的引脚图 其中,引脚 7、8 为外接晶振及振荡电路,引脚 1 接电源正极,电源为 1.5,引 脚 3、4 原为指针用步进电机线圈的输出驱动,这里可用 3 脚作为脉冲输出,频率决定 于外接晶振的频率。 2.3 NE555 定时器电路实现形式 555 定时器是美国 Signetics 公司 1972 年研制的用于取代机械式定时器的中规模集 成电路,因输入端设计有三个 5K 的电阻而得名。目前,流行的产品主要有 4 种: BJT 两个:555,556(含有两个 555) ;CMOS 两个:7555,7556(含有两个 7555) 。 采用 NE555
20、 时基电路或其他振荡电路产生秒脉冲信号,作为秒加法电路的时钟信号或 微处理器的外部中断输入信号,可构成电子钟。由 555 构成的秒脉冲发生器电路见图 2.2。 1 2 3 4 5 6 A B C D 654321 D C B A Title Number RevisionSize B Date: 9-Jun-2008 Sheet of File: H:上上上上上上上上上上上555上上上.ddb Drawn By: R DIS7 THR6 TRIG2 GND 1 CVolt 5 R 4 VCC 8 Q 3 555 C C R VCC V0 1 2 图 2.2 基于 555 的秒脉冲发生器 输出的
21、脉冲信号 V0 的频率 F 为: 式(2.1)CR)2/(43.11 可通过调节式 2.1 中的 3 个参数,使输出 V0 的频率为精确的 1Hz。 采用 555 定时器设计电子时钟,成本低,容易实现。但是受芯片引脚数量和功能 限制,不容易实现电子时钟的多功能性。 2.4 单片机实现形式 单片机是微型机的一个主要分支,它在结构上的最大特点使把 CPU、存储器、定 时器和多种输入/输出接口电路集成在一块超大规模集成电路芯片上。就其组成和功能 而言,一块单片机芯片就是一台微型计算机。 单片机具有如下特点: 1 有优异的性能价格比; 2 集成度高、体积小、有很高的可靠性、控制功能强; 3 低功耗、低
22、电压,便于生产便携式产品; 4 外部总线增加了 I2C、 ISP 等串行总线方式,进一步缩小了体积,简化了结构; 5 单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。 所以单片机的应用非常广泛,在智能仪表、机电一体化、实时控制、分布式多机 系统以及人们的生活中均有用武之地。单片机应用的重要意义还在于,它从根本上改 变了传统的控制系统设计思路和设计方法。从前必须由模拟电路或数字电路实现的大 部分功能,现在已能用单片机通过软件方法来实现了。这种用软件代替硬件的控制技 术,是对生产控制技术的一次革命。 利用单片机的智能性,可方便地实现具有智能的唤醒仪设计。单片机均具有时钟 振荡系
23、统,利用系统时钟借助微处理器的定时器/计数器可实现电子钟功能。然而系统 时钟误差较大,电子钟的积累误差也可能较大,所以可以通过误差修正软件加以修正, 或者在设计中加入高精度时钟芯片,以精确时间。 2.5 总体方案设计 在比较了以上四种实现方案之后,考虑单片机货源充足、价格低廉,可软硬件结 合使用,能够较方便的实现系统的多功能性,故采用单片机作为本设计的硬件基础。 多路唤醒仪至少要包括秒信号发生器、时间显示电路、按键电路、供电电源、报 警指示电路等几部分。硬件电路框图参照图 2.3。 该系统使用 AT89C52 单片机作为核心,通过读取时钟芯片 DS1302 的数据,完成 此唤醒仪的主要功能时钟
24、显示、多路定时报警。使用比较通用的 8 段共阴数码管, 做 6 位显示,分别显示时、分、秒。 单片机 A T 8 9 C 5 2 报警电路 3 个 L E D 电源 6 位共阴 L E D 显示 7 个独 立按键 时钟日历芯 片 D S 1 3 0 2 备用电源 硬件译码芯片 C D 4 5 1 1 图 2.3 多路定时唤醒仪硬件系统框图 键盘是为了完成时钟的校对和定时时间的设置功能。由于此电子时钟要求具有报 警功能,所以设计有报警电路,用发光二极管提醒报警。 整个电路使用了两种电源,+5V 电源将为整个电路供电。而 +3V 电源仅作为 DS1302 的备用电源。当+5V 电源被切断后, DS
25、1302 启用+3V 电源,可以保持 DS1302 继续工作。从而不会因为断电使系统复位到初始化时间,避免了重新校时的麻烦。 第三章 系统硬件设计 在选定设计方案以后,要选择合适的器件,设计合适的硬件电路图才能实现多路 唤醒仪的具体功能。 3.1 主要 IC 芯片选择 3.1.1 微处理器选择 目前在单片机系统中,应用比较广泛的微处理器芯片主要为 8XC5X 系列单片机。 该系列单片机均采用标准 MCS-51 内核,硬件资源相互兼容,品类齐全,功能完善, 性能稳定,体积小,价格低廉,货源充足,调试和编程方便,所以应用极为广泛。 例如比较常用的 AT89C2051 单片机,带有 2KB Flas
26、h 可编程、可擦除只读存储器 (E 2PROM)的低压、高性能 8 位 CMOS 微型计算机。拥有 15 条可编程 I/O 引脚,2 个 16 位定时器/计数器,6 个中断源,可编程串行 UART 通道,并能直接驱动 LED 输 出。 仅仅是为了完成时钟设计或者是定时报警设置,应用 AT89C2051 单片机完全可以 实现。但是将两种功能结合在一片单片机上,就需要更多的 I/O 引脚,故本设计采用 具有 32 根 I/O 引脚的 AT89C52 单片机。 AT89C52 单片机是一款低功耗,低电压,高性能 CMOS 8 位单片机,片内含 8KB(可经受 1000 次擦写周期)的 FLASH 可
27、编程可反复擦写的只读程序存储器 (EPROM) ,器件采用 CMOS 工艺和 ATMEI 公司的高密度、非易失性存储器 (NURAM)技术制造,其输出引脚和指令系统都与 MCS-51 兼容。片内的 FLASH 存 储器允许在系统内可改编程序或用常规的非易失性存储器编程器来编程。因此, AT89C52 是一种功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领 域 6。 AT89C52 具有以下主要性能: 1. 与 MCS51 产品指令和引脚完全兼容; 2. 8KB 可重擦写 Flash 闪速存储器; 3. 全静态操作:024Hz; 4. 1000 次擦写周期; 5. 三级加密程序存储器
28、; 6. 2568 字节内部 RAM; 7. 32 个外部双向输入/输出(I/O)口; 8. 6 个中断优先级; 3 个 16 位可编程定时/计数器; 9. 可编程串行 UART 通道; 10. 低功耗空闲和掉电模式。 此外,AT89C52 是用静态逻辑来设计的,其工作频率可下降到 0Hz,并提供两种 可用软件来选择的省电方式空闲方式(Idle Mode)和掉电方式(Power Down Mode) 。在空闲方式中, CPU 停止工作,而 RAM、定时器/计数器、串行口和中断系 统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结” ,使一切功 能都暂停,只保存片内 RAM 中的内
29、容,直到下一次硬件复位为止 8。 图 3.1 AT89C52 芯片 PDIP 封装引脚图 AT89C52 为适应不同的产品需求,采用 PDIP、TQFP、PLCC 三种封装形式,本 系统采用双列直插 PDIP 封装形式,如图 3.1。 3.1.2 时钟日历芯片选择 3.1.2.1 常用时钟日历芯片比较 在电子时钟设计中,常用的实时时钟芯片有 DS12887、DS1216、DS1643 、 DS1302。每种芯片的主要时钟功能基本相同,只是在引 脚数量、备用电池的安装方式、计时精度和扩展功能等方面略有不同。DS12887 与 DS1216 芯片都有内嵌式锂电池作为备用电池; X1203 引脚少,
30、没有嵌入式锂电池, 跟 DS1302 芯片功能相似,只是相比较之下,X1203 与 AT89C52 搭配使用时占用 I/O 口较多。DS1643 为带有全功能实时时钟的 8K8 非易失性 SRAM,集成了非易失性 SRAM、实时时钟、晶振、电源掉电控制电路和锂电池电源,BCD 码表示的年、月、 日、星期、时、分、秒,带闰年补偿。同样,DS1643 拥有 28 只管脚,硬件连接起来 占用微处理器 I/O 口较多,不方便系统功能拓展和维护。故而从性价比和货源上考虑, 本设计采用实时时钟日历芯片 DS1302。 3.1.2.2 DS1302 简介 DS1302 是美国 DALLAS 公司推出的一种高
31、性能、低功耗的实时时钟日历芯片, 附加 31 字节静态 RAM,采用 SPI 三总线接口与 CPU 进行同步通信,并可采用突发方 式一次传送多个字节的时钟信号和 RAM 数据。实时时钟可提供秒、分、时、日、星期、 月和年,一个月小于 31 天时可以自动调整,且具有闰年补偿功能。工作电压宽达 2.55.5V。采用双电源供电(主电源和备用电源) ,可设置备用电源充电方式,提供了 对后备电源进行涓细电流充电的能力,并且可以关闭充电功能。 。有主电源和备份电源 双引脚,而且备份电源可由大容量电容(1F)来替代。需要强调的是,DS1302 需要 使用 32.768KHz 的晶振。 3.1.2.3 DS1
32、302 引脚说明 DS1302 引脚图参照图 3.2。VCC1 为后备电源,VCC2 为主电源。在主电源关闭的 情况下,也能保持时钟的连续运行。DS1302 由 VCC1 或 VCC2 两者中的较大者供电。 当 VCC2 大于 VCC1+0.2V 时,VCC2 给 DS1302 供电。当 VCC2 小于 VCC1 时, DS1302 由 VCC1 供电。X1、X2 为振荡源,外接 32.768Hz 晶振。RST 是复位/ 片选线, 通过把 RST 输入驱动置高电平来启动所有的数据传送。 RST 输入有两种功能: (1) RST 接通控制逻辑,允许地址/命令序列送入移位寄存器 ; (2) RST
33、 提供了终止单字节或多字节数据的传送手段。 当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。如果 在传送过程中置 RST 为低电平,则会终止此次数据传送,并且 I/O 引脚变为高阻态。 上电运行时,在 VCC2.5V 之前,RST 必须保持低电平。只有在 SCLK 为低电平时, 才能将 RST 置为高电平。I/O 为串行数据输入输出端(双向),下文有详细说明。SCLK 为时钟输入端。 1 2 3 4 5 6 A B C D 654321 D C B A Title Number RevisionSize B Date: 9-Jun-2008 Sheet of F
34、ile: C:Documents and SettingsAdministrator上 上上 上上 上上 上上 上上 上 上上 上上 上上 上上 上 上上 上上 .ddbDrawn By: VCC11 X12 X23 GND4 VCC2 8 SCLK 7 I/O 6 RST 5 DS1302 图 3.2 DS1302 芯片引脚图 其引脚功能参照表 3.1。 表 3.1 DS1302 引脚功能说明 引脚号 名称 功能 1 VCC1 备份电源输入 2 X1 32.768KHz 晶振输入 3 X2 32.768KHz 晶振输出 4 GND 地 5 RST 控制移位寄存器/ 复位 6 I/O 数据输入
35、/输出 7 SCLK 串行时钟 8 VCC2 主电源输入 3.1.2.4 DS1302 的控制字和读写时序说明 在编程过程中要注意 DS1302 的读写时序。DS1302 是 SPI 总线驱动方式。它不仅 要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与 DS1302 通信,首先要 先了解 DS1302 的控制字。DS1302 的控制字如表 3.2。 表 3.2 DS1302 控制字(即地址及命令字节) BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 RAM RD 1 CKA4 A3 A2 A1 A0 WR 控制字的作用是设定 DS1302 的工作方式、
36、传送字节数等。每次数据的传输都是由 控制字开始。控制字各位的含义和作用如下: 1. BIT7:控制字的最高有效位,必须是逻辑 1,如果它为 0,则不能把数据写入 到 DS1302 中。 2. BIT 6:如果为 0,则表示存取日历时钟数据,为 1 表示存取 RAM 数据; 3. BIT 5 至 BIT 1(A4A0):用 A4A0 表示,定义片内寄存器和 RAM 的地 址。 定义如下: 当 BIT 6 位=0 时,定义时钟和其他寄存器的地址。A4 A0=06,顺序为秒、分、 时、日、月、星期、年的寄存器。当 A4A0=7,为芯片写保护寄存器地址。当 A4A0=8 ,为慢速充电参数选择寄存器。当
37、 A4 A0=31,为时钟多字节方式选择寄存 器。 当 BIT 6=1 时,定义 RAM 的地址,A4A0=0 30,对应各子地址的 RAM,地址 31 对应的是 RAM 多字节方式选择寄存器。 4. BIT 0(最低有效位):如为 0,表示要进行写操作,为 1 表示进行读操作。 控制字总是从最低位开始输出。在控制字指令输入后的下一个 SCLK 时钟的上升 沿时,数据被写入 DS1302,数据输入从最低位(0 位)开始。同样,在紧跟 8 位的控 制字指令后的下一个 SCLK 脉冲的下降沿,读出 DS1302 的数据,读出的数据也是从 最低位到最高位。 图 3.3 DS1302 数据读写时序 D
38、S1302 的数据读写方式有两种,一种是单字节操作方式,一种是多字节操作方式。 每次仅写入或读出一个字节数据称为单字节操作,每次对时钟/日历的 8 字节或 31 字节 RAM 进行全体写入或读出的操作,称其为多字节操作方式。当以多字节方式写时钟寄 存器时,必须按数据传送的次序依次写入 8 个寄存器。但是,当以多字节方式写 RAM 时,不必写所有 31 字节。不管是否写了全部 31 字节,所写的每一个字节都将传送至 RAM。 为了启动数据的传输,CE 引脚信号应由低变高,当把 CE 驱动至逻辑 1 的状态时, SCLK 必须为逻辑 0,数据在 SCLK 的上升沿串行输入。无论是读周期还是写周期,
39、也 无论送方式是单字节传送还是多字节传送,都要通过控制字指定 40 字节中的哪个将被 访问。在开始 8 个时钟周期把命令字(具有地址和控制信息的 8 位数据)装入移位寄 存器之后,另外的时钟在读操作时输出数据,在写操作时输入数据,所有的数据在时 钟的下降沿变化。所有写入或读出操作都是先向芯片发送一个命令字节。对于单字节 操作,包括命令字节在内,每次为 2 个字节,需要 16 个时钟;对于时钟/日历多字节模 式操作,每次为 7 个字节,需要 72 个时钟;而对于 RAM 多字节模式操作,每次则为 32 字节,需要多达 256 个时钟。这里仅给出单字节读写时序,如图 3.3。多字节操作方 式与其类
40、似,只是后面跟的字节数不止一个。 3.2.1.5 DS1302 的片内寄存器 通过控制字对 DS1302 片内寄存器进行寻址之后,即可就所选中寄存器的各位进行 操作。片内各寄存器及各位的功能定义如表 3.3。 表 3.3 DS1302 有关日历、时间的寄存器 读寄存 器 写寄存器 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 范围 81H 80H CH 10 秒 秒 00-59 83H 82H 10 分 分 00-59 10 85H 84H 24/10 AM/ PM 时 时 1-12 0-23 87H 86H 0 0 10 日 日 1-31 89H 88H 0
41、 0 10 月 月 1-12 8BH 8AH 0 0 0 0 0 周日 1-7 8DH 8CH 10 年 年 00-99 8FH 8EH WP 0 0 0 0 0 0 0 DS1302 有关日历、时间的寄存器共有 10 个,时钟/日历包含在其中的 7 个写/ 读寄 存器内,这 7 个寄存器分别是秒、分、小时、日、月、星期和年。 小时寄存器(85H、84H)的位 7 用于定义 DS1302 是运行于 12 小时模式还是 24 小时模式。当为 12 小时制式时,位 5 为“0”表示 AM;为“1”表示 PM。在 24 小时 制式下,位 5 是第二个 10 小时位(2023 时) 。 秒寄存器(81
42、H、80H)的位 7 定义为时钟暂停标志(CH) 。当该位置为 1 时,时 钟振荡器停止,DS1302 处于低功耗状态;当该位置为 0 时,时钟开始运行。一般在设 置时钟时,可以停止其工作,设定完之后,再启动其工作。 控制寄存器(8FH、8EH)的位 7 是写保护位(WP) ,其它 7 位均置为 0。在任何 片内时钟/日历寄存器和 RAM,在写操作之前,WP 位必须为 0,否则将不可写入。当 WP 位为 1 时,写保护位防止对任一寄存器的写操作。因此,通过置写保护位,可以提 高数据的安全性。另外,还有慢速充电控制寄存器和 RAM 寄存器。如表 3.4。 表 3.4 充电控制寄存器和 RAM 寄
43、存器各位定义 慢 速充电 寄存器 控制着 DS1302 的慢速充电特性。寄存器的 BIT4BIT7(TCS)决定是否具备充电性能:仅 在编码为 1010 的条件下才具备充电性能,其他编码组合不允许充电。 BIT2 和 BIT3 选择在 VCC2 和 VCC1 之间是一个还是两个二极管串入其中。如果编码 DS 是 01,选择一个二极管;如果编码是 10,选择两个二极管;其他编码将不允许充 电。该寄存器的 BIT0 和 BIT1 用于选择与二极管相串联的电阻值。其中编码 RS=01 为 2 K, RS=10 为 4 K, RS=11 为 8 K,而 RS=00 将不允许进行充电。因此,根据慢 速充
44、电寄存器的不同编码可得到不同的充电电流。其具体计算如公式 3.1: 式(3.1)I充 电 0DE=(V-)/R 式中: V0所接入的 5.0V 工作电压; BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 充电控制寄存 器 TCS TCS TCS TCS DS DS RS RS RAM 寄存器 VD二极管压降,一个按 0.7V 计算; R慢速充电控制寄存器 0 和 1 位编码决定的电阻值; VEVCC1 脚所接入的电池电压。 RAM 寄存器寻址空间一次排列的 31 字节静态 RAM 可为用户使用,备用电源位 RAM 提供了掉电保护功能。寄存器和 R
45、AM 的操作通过命令字节的 BIT6 加以区别。 当 BIT6 为“0”时对 RAM 区进行寻址;否则将对时钟/ 日历寄存器寻址 11。其操作方 法与前述相同。具体驱动程序参见附录 A。 3.2 硬件电路设计 硬件设计主要是先搭建硬件平台,然后利用万用表等工具对电路检查,最后应用 程序进行功能调试。硬件设计比较费时,需要细心和耐心,也需要熟练掌握电路原理。 多路定时唤醒仪要实现其功能,至少要包括时钟发生电路、时间显示电路、按键 电路、供电电源、报警指示电路以及单片机基本电路等几部分。 3.2.1 实时时钟电路设计 系统时钟应用了实时时钟日历芯片 DS1302,其连接如图 3.4。该硬件电路设计
46、简 单,抗干扰能力强。 如图,AT89C52 单片机 P2.6 直接连接 DS1302 的 RST 端,上电后,AT89C51 的 P2.6 脚自动输出高电平。P2.4 作为串行时钟接口, P2.5 作为时钟数据的 I/O。DS1302 采用双电源供电,平时由+5V 电源供电,当+5V 掉电之后,由图中 BT1(+3V 备用电 池)供电。 特别需要注意 X1 和 X2 两端连接的晶振 M1,该晶振的频率为 32.768KHz。 1 2 3 4 5 6 A B C D 654321 D C B A Title Number RevisionSize B Date: 1-Jun-2009 Shee
47、t of File: D:上上上上上上上上上上_上上上.ddb Drawn By: Vcc21 X12 X23 GND4 RST 5 I/O 6 SCLK 7 Vcc 8 U4 DS1302 P2.4 P2.5 P2.6 M1 3.2768MHZ +5V 图 3.4 实时时钟电路 该电路除了包含 DS1302 芯片,还应包括主电源、备用电源、晶振等部分。为了保 证电路连接正确、电气连通,在与单片机连接的过程中需要注意以下几点: 1. 清楚 DS1302 与单片机连接的管脚。本设计定义为:DS1302 的 SCLK 连接 P2.4,I/O 连接 P2.5,RST 连接 P2.6。 2. 注意电源
48、正负极连接。 3. DS1302 接 32.768KHz 的晶振。该晶振体型比较小,在焊接时要小心,注意不 要将晶振引脚弄断。同时也要尽量使晶振离 DS1302 的 X1、X2 引脚近距离焊 接。 4. 编写 DS1302 的时钟/日历程序,只要求能够正确显示时间。烧录进单片机, 检查电路电源正负极连接是否正确,检查 P1.0 和 P1.1 引脚接线是否正确。检 查无误后可以上电检查。 3.2.2 显示电路设计 就时钟而言,通常可采用 LCD 显示或 LED 显示。对于一般的段式 LCD,需要专 门的驱动电路,而且 LCD 显示的可视性较差;对于具有驱动电路和微处理器接口的液 晶显示模块(字符
49、或点阵) ,一般采用并行接口,对微处理器的接口要求较高,占用资 源多。另外,AT89C52 本身没有专门的液晶驱动接口。LED 结构简单,体积小,功耗 低,响应速度快,易于匹配,寿命长,可靠性高,而且显示亮度高,价格便宜,市场 上也有专门的时钟显示组合 LED。故本设计中应用 6 位 8 段共阴 LED 实现显示部分, 显示面板分布如图 3.5。 LED 显示分动态显示和静态显示:动态显示方式的硬件电路简单。但设计上如果 处理不当,易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又 要保证图像稳定,无闪烁。动态显示采用多路复用技术的动态扫描显示方式,复用的 程度不是无限增加的, 因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用 了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素。 对于一组数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出的 字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用 来选择第几位数码管工作,称为位码。由于各位数码管的段线并联,段码的输出对各 位数码管来说都是相同的。因此,在同一时刻如果各位数码管的位选线都处于选通状 态的