电铃控制系统毕业论文.doc_第1页
电铃控制系统毕业论文.doc_第2页
电铃控制系统毕业论文.doc_第3页
电铃控制系统毕业论文.doc_第4页
电铃控制系统毕业论文.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

- I 摘摘 要要 本文介绍了作息时间电铃控制系统的设计制作过程、主要功能及 其实现方法。硬件电路主要由四个模块组成,AT89C51 和必要电路 组成核心控制模块,DS1302 时钟芯片构成时钟电路模块,由八位数 码管 LED 构成显示电路,键盘调节电路由单片机外接按键构成。单 片机从 DS1302 中读取时间日期数据送往八八位数码管 LED 显示,如 果显示不正确通过按键调节时间和日期。当到达作息时间就打铃。 AT89C51 单片机是整个设计的核心控制器件,根据从键盘接受 的数据控制整个系统的工作流程。整体性好,人性化强、可靠性高, 实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的 不便,是现代学校必不可少的设备。 关键词:作息时间;电铃控制;DS1302;AT89C51 - II 目目 录录 第一章第一章 概概 述述 .1 第二章第二章 总体方案设计与要求总体方案设计与要求 .2 2. 1 设计的任务及要求2 22 设计方案论证3 第三章第三章 系统硬件的设计系统硬件的设计 .4 31 总体方案设计方框图4 3.2 数码管驱动电路.5 3.3 按键电路.5 3.4 时钟电路时钟芯片 DS1302.6 3.5 数码管显示电路.9 3.5.1 数码管扫描原理.9 3.5.2数码管显示9 3.6 整机原理图.11 第四章第四章 系统软件的设计系统软件的设计 .12 4.1 软件电路设计.12 4.2 程序功能流程图.13 第五章第五章 软硬件综合调试软硬件综合调试 .14 5.1 软件仿真.14 5.1.1 Keil uVsion2软件仿真14 5.1.2 Protues 7 professional软件仿真.15 5.2 硬件测试.17 总结总结 .17 致致 谢谢 .18 参考文献参考文献 .19 附件附件 .20 系统原理图.20 (2)程序清单.21 - 1 第一章 概 述 随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、 智能化发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使 用灵活等优势,显示出了很强的生命力。进入21世纪以来,开发推出单片机的 公司很多,各种高性能单片机芯片市场也异常活跃,新技术的不断采用,更加 使单片机的种类、性能以及应用领域不断扩大和提高。16位单片机的问世,使 得单片机的科技含量及应用跃上一个新的台阶。因其功耗低,超高型,低成本, 功能完整,在国内越来越受到用户的重视和广泛使用。 本设计是一个具有报时功能的作息时间控制钟。它利用AT89C51单片机的定 时器计时,进行时间计算;在进行时间计算,分每加一时,都与规定的作息时 间比较,如果相等则进行相应的控制或动作。由键盘和显示部分组成,系统扩 展六个按键用于报时及校正时间。现代机关企业,特别是学校要求对时间加以 控制,要按时打铃及播放广播,以保证学习与工作的正常运行。本设计实现了 这些功能,给学校及其他机关企业带来方便,整体性好,人性化强、可靠性高, 实现了对时间控制的智能化。 - 2 第二章 总体方案设计与要求 2. 1 设计的任务及要求 1作息时间能控制电铃 2作息时间能启动和关闭电铃,单片机作息时间控制的功能如下: 使用 8 位七段显示器来显示现在的时间。显示格式为“时分秒” 具有 6 个按键来作功能设置,可以设置现在的时间及显示定时设置时间 一旦时间到则发出一阵声响,同时继电器启动,可以控制电铃开启和关闭。 3.按下表表1的作息时间设计程序: 8:00:00第一节上课响铃12S8:45:00第一节下课响铃12S 8:55:00第二节上课响铃12S9:40:00第二节下课响铃12S 10:05:00第三节上课响铃12S10:50:00第三节下课响铃12S 11:00:00第四节上课响铃12S11:45:00第四节下课响铃12S 11:45:00至 14:00:00 午休 14:00:00第五节上课响铃12S14:45:00第五节下课响铃12S 14:55:00第六节上课响铃12S15:40:00第六节下课响铃12S 16:00:00第七节上课响铃12S16:45:00第七节下课响铃12S 16:55:00第八节上课响铃12S17: 40:00第八节下课响铃12S 19:30: 00第九节上课响铃12S20: 15: 00第九节下课响铃12S 20: 25: 00第十节上课响铃12S21:00: 00第十节下课响铃12S 表1 - 3 22 设计方案论证 石英晶体振荡器产生的时脉冲送到分频器,分频电路将时标信号分成每秒 一次的方波信号。秒脉冲发生器产生频率稳定性很高的的秒脉冲,秒脉冲被送 到一个六十进制秒计数器计数,将计数结果送至秒个位和十位译码器,译码结 果分别由两只七段半导体数码管以十进制数形式显示出来,当秒六十进制计数 器累计到第 59 秒时,弱再来一个秒脉冲,秒计数器的进位输出就产生进位脉冲 (分计数脉冲) ,同时,秒计数器的十位和个位都复位到零。分计数脉冲又被送 到分六十进制计数器计数,经译码电路译码后数码管显示相应的分数,当计满 59 分 59 秒时,若再来一个秒脉冲,则分计数器便向时计数器送出时计数脉冲, 同时,分秒计数器均复位到零。时计数器是一个二十四进制计数器,当计数显 示 23 时 59 分 59 秒时,若再来一个秒脉冲,则时分秒计数器都回到零,并显示 “00-00-00”表示第二天开始。 - 4 第三章 系统硬件的设计 31 总体方案设计方框图 按键电路 晶振电路 复位电路及复位电路及 断电保护断电保护 电源 A T 89C51 驱 动 电 路 LED 数码管 电铃及驱动电铃及驱动 按键电路 图 3.1 该系统是由微处理器、时钟控制芯片、蜂鸣器、扩音设备、数码显示部分 以及键盘输入部分所组成。该控制系统设有八位数码管,可以实时显示时间; 系统还设有输入键盘,用以校正实时时钟。 系统采用 AT89C51 作为处理器,用 DS1302 实时时钟芯片作时钟计时单元, 可以保证时钟及内部 RAM 内的数据不受停电的影响,保护数据不丢失。 输出驱动电路部分,利用 220V 电源为系统提供供电,利用继电器驱动,便 于控制 220V 的电铃。同时利用直流交流转换模块为整个系统提供电源,更 方便实际应用。 时钟芯片 - 5 3.2 数码管驱动电路 图 3.2 数码管驱动电路 3.3 按键电路 如图 3.3 所示,单片机初始化后, 默认 P1 口输出为高电平,当有按键 S0,S1,S2,S3,S4,S5 分别按下, P1.0,P1.1,P1.2,P1.3,P3.4,P3.5 输入一定分别 为低电平,于是单片机根据 P1,P3 口电平的突变作出相应的处理。 图 3.3 按键电路 - 6 3.4 时钟电路时钟芯片 DS1302 时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准, 有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电 路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种 是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。 MCS-51 单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益 反向放大器的输入端为芯片引脚 XTAL1,输出端为引脚 XTAL2。这两个引脚跨接 石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。 DS1302 中文资料 DS1302(下图所示)是 介绍美国 DALLAS 公司推出的具有涓细电流充 电能力的低功耗 时钟芯片,它可以对年月日、 星期、时分秒进行计时,且 具有闰年补偿等多种功能。 图 3.4(1) DS1302 引脚图 图 3.4(2) DS1302 内部结构图. - 7 各引脚功能: 1、Vcc1: 备份电源;在 Vcc2 不能供电的情况下为芯片供电。 2、X1 振荡源;和 X2 外接 32.768kHz 的晶振。 3、X2 振荡源。 4、GND 接地端。 5、RST RST 是复位/片选线;通过把 RST 输入驱动置高电平来启动所 有的数据传送。 RST 输入有两种功能:首先, RST 接通控制逻辑, 允许地址/命令序列送入移位寄存器;其次, RST 提供终止单字节或 多字节数据的传送手段。当 RST 为高电平时,所有的数据传送被初 始化,允许对 DS1302 进行操作。如果在传送过程中 RST 置为低电 平,则会终止此次数据传送 。 6、I/O I/O 为串行数据输入输出端 (双向)。 7、SCLK 时钟输入端。 8、Vcc2 主电源;Vcc2 大于 Vcc10.2V 时,Vcc2 给 DS1302 供电。 DS1302 的几组寄存器: DS1302有关日历、 时间的寄存器共有12个, 其中有7个寄存器 (读时81h8Dh, 写时80h8Ch, 存放的数据格式为 BCD 码形式, 如下图所 示。 图图3.4(3) DS1302有关日历、时间的寄存器 小时寄存器(85h、84h)的位7用于定义 DS130是运行于12小时 模式还是24小时模式。 当为高时, 选择12小时模式。 在12小时模式时,位5是,当为1时,表示 PM。在24小时模式时,位5是第二 个10小时位。 秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH。当该 位置为 1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为 0时,时钟开始运行。 控制寄存器(8Fh、8Eh)的位7是写保护位(WP,其 它7位均置 为0。在任何的对时钟和RAM 的写操作之前,WP 位必须为0。当 - 8 WP 位为1时,写保护位防止对任一寄存器的写操作。 DS1302 有关RAM 的地址 DS1302中附加31字节静态RAM 的地址如图3.4(4)所示。 图 3.4(4) DS1302的工作模式寄存器 所谓突发模式是指一次传送多个字节的时钟信号和RAM 数据。 突发 模式寄存器如图3.4(5)所示。 图 3.4(5) 如图 3.4(6)所示,其中 VCC1 为后备电源,VCC2 为主电源。在主电源关闭 的情况下,也能保持时钟的连续运行。DS1302 由 VCC1 或 VCC2 两者中的较大者 供电。当 VCC2 大于 VCC1+0.2V 时,VCC2 给 DS1302 供电。当 VCC2 小于 VCC1 时, DS1302 由 VCC1 供电。X1 是振荡源,外接 32.KHz 晶振。RST 是复位/片 选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。RST 输入有两种 功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次, RST 提供终止单字节或多字节数据的传送手段。当 RST 为高电平时,所有的数 据传送被初始化,允许对 DS1302 进行操作。如果在传送过程中 RSTS 置为低电 平,则会终止此次数据传送,I/O 引脚变为高阻态。上电动行时,在 VCC 大于 等于 2.5V 之前,RST 必须保持低电平。中有在 SCLK 为低电平时,才能将 RST 置为高电平,I/O 为串行数据输入端(双向) 。SCLK 始终是输入端。 - 9 图 3.4(6)时钟电路 3.5 数码管显示电路 3.5.1 数码管扫描原理数码管扫描原理 在 ME500B, ME300B 开发系统中,均采用了 8 位数码管动态扫描,它将所以 数码管的 8 个段线相应的并接在一起,并接到 AT89C51 的 P0 口,由 P0 口控制 字段输出。而各位数码管的共阴极由 AT89C51 的 P3 口控制来实现 8 位数码管的 位输出控制。 这样,对于一组数码管动态扫描显示需要由两组信号来控制:一组是字段 输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口 输出的控制信号,用来选择第几位数码管工作,称为位码。 由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的, 因此,在同一时刻,如果各位数码管的位选线都处于选通状态的话,8 位数码 管将像是相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须 采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其 他各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。 这样在同一时刻,只有选通的那一位显示出字符,而其他各位则是熄灭的,如 此循环下去,就可以使各位数码管显示出将要显示的字符。 虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其他 各位熄灭,但是由于数码管具有余辉特性和人眼有视觉暂留现象。只要每位数 码管显示间隔足够短,给人眼的视觉印象就会是连续稳定的显示。 数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成,数码管显示 的时间间隔也能够确定数码管显示时的亮度,若显示时间间隔长,显示时数码管的亮度就 - 10 亮一些,若显示时间间隔短,显示时数码管的亮度就暗一些,若显示时间间过长,数码管 显示将会产生闪烁现象,所以,在调整显示的时间间隔时,既要考虑显示时数码管的亮度, 也要数码管显示时不产生闪烁现象。 3.5.2 数码管显示数码管显示 共阴极 LED 数码管,它是将发光二极管的阴极(负极)短接后作为公共阴极。 数码管用来显示时分秒,而且各用两位数码管显示。但由于我选用这种数 码功耗大,而且共阳,因此单单依靠单片机 I/O 口的拉电流驱动不了。因此我 一开始就选用了 15 个三极管用来驱动各个数码管的位选端。经过一番摸索,结 果数码管显示正常。参考详图如下图: 启动时: 运行时: - 11 图 3.5.2 数码管动态显示电路 3.6 整机原理图 - 12 图 3.6 整机原理图 第四章 系统软件的设计 4.1 软件电路设计 利用 AT89C51 内定时器 T0 的中断来实现数字钟功能。T0 定时时间 50ms 每隔 50ms 一次中断,20 次为 1 秒。预先安排时分秒内存单元,在中断服务器中根据 中断次数来决定秒单元是否加一,当秒单元达到 60 时,分单元加一,同时秒单 元清零;当分单元达到 60 时,时单元加一,同时分单元清零;当时单元达到 24 时,回到初始状态,从头开始循环。 根据设计任务的要求明确系统程序的完整结构,尽可能采用模块化程序设计 方法,将任务划分为相对独立的功能模块,明确个模块的功能、时间顺序和相 互关系,系统的软件设计可以分为几个部分,首先,是各个模块的底层驱动程 序编写,而后是系统联机调试,编写上层的系统程序。建议在编写和调试一个 大的项目软件程序时,先编写各个子模块的驱动程序,保证每个模块都可以正 常工作,做好备份工作。之后再来编写整机程序。本系统软件程序主要包括: 数码管 7SEG-MPX8-CC-BLUE 的底层驱动模块、定时器 0 定时检查系统变量模块、 定时器 1 按键扫描模块等。 - 13 4.2 程序功能流程图 主程序 y 调整作息时间 开始 初始化 从 DS1302 取时间 当前时间变量送显示 从 DS1302 取时间送显 示 判断分是否加 1 取出时间与作 息时间表对比 是否是打铃时间 开始 指针指向表首 显示打铃时间 查键盘 键值处理 指针下移 - 14 Yes No 图 4.2 程序功能流程图 第五章 软硬件综合调试 5.1 软件仿真 为了更好地完成课程设计这一重要教学环节,我们采用 Proteus 软件与 Keil 软件整合构建单片机虚拟实验平台。首先在 PC 上利用 Proteus 软件自己搭建硬 件电路,并利用系统提供的功能完成电路分析、系统调试和输出显示的硬件设 计部分;同时在 Keil 软件中编制程序,进行相应的编译和仿真,完成系统的软 件设计部分。当系统的设计工作完成后,我们可以在 PC 上看到最终的运行效果。 最后再通过 proteus 设计 PCB,再完成真正硬件的调试。 采用以上方案具有以下优势:有利于促进课程和教学改革,更有利于人才的 培养;从经济性、可移植性、可推广性角度讲,建立这样的课程设计平台是非 常有意义的;利用仿真系统,可以节约开发时间和开发成本;利用仿真系统, 具有很大的灵活性和可扩展性。 5.1.1 Keil uVsion2 软件仿真软件仿真 Keil C51 标准 C 编译器为 8051 微控制器的软件开发提供了 C 语言环境,同时 保留了汇编代码高效,快速的特点。C51 编译器的功能不断增强, 使你可以更加 贴近 CPU 本身,及其它的衍生产品。C51 已被完全集成到 uVision2 的集成开发 取出时间送显示 开 启 打 铃 查键盘 键值处理 - 15 环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调 试器。uVision2 IDE 可为它们提供单一而灵活的开发环境。C51 V7 版本是目前 最高效、灵活的 8051 开发平台。它可以支持所有 8051 的衍生产品,也可以支持 所有兼容的仿真器,同时支持其它第三方开发工具。因此,C51 V7 版本无疑是 8051 开发用户的最佳选择。 图 5.11 Keil uVsion2 仿真图 5.1.2 Protues 7 professional 软件仿真软件仿真 Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件。它运 行于 Windows 操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路, Proteus 是目前最好的模拟单片机外围器件的工具,它可以仿真 51 系列、 AVR,PIC 等常用的 MCU 及其外围电路(如 LCD,RAM,ROM,键盘,马达, LED,AD/DA,部分 SPI 器件,部分 IIC 器件.) Proteus 与其它单片机仿真 软件不同的是,它不仅能仿真单片机 CPU 的工作情况,也能仿真单片机外围电 路或没有单片机参与的其它电路的工作情况。该软件的特点是: - 16 实现了单片机仿真和 SPICE 电路仿真相结合。具有模拟电路仿真、数字电路 仿真、单片机及其外围电路组成的系统的仿真、RS232 动态仿真、I2C 调试器、 SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑 分析仪、信号发生器等。 支持主流单片机系统的仿真。目前支持的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12 系列、PIC16 系列、PIC18 系列、Z80 系列、HC11 系列 以及各种外围芯片。 提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功 能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中, 也必须具有这些功能;同时支持第三方的软件编译和调试环境,如 Keil C51 uVision2 等软件。 具有强大的原理图绘制功能。总之,该软件是一款集单片机和 SPICE 分析于 一身的仿真软件,功能极其强大。 图 5.12仿真图 - 17 5.2 硬件测试 可以通过观察整个硬件电路检查硬件是否存在元件顺坏或者导线错连造 成的短路,也可以借助万用表等检测工具对硬件电路进行静态检查,还可以通 过编写测试程序对硬件电路进行动态检查。 图 5.2 成品实物结果图 总结 通过此次毕业设计使得自己得到了很好的锻炼各个方面的能力得到提升。 首先,在这次毕业设计中我学到很多平常不可以学到知识,锻炼了个人实 践操作能力,培养了我的独立思考问题的能力和资料查找能力。 再次,在整个设计过程中自己逻辑思维能力得到了很大的提高,在完成一 个项目时学会了用流程图来规划整个项目的设计和制作这是从前没有过的。 - 18 最后,在电路设计和元件器的选择上能够结合生活实际和市场的供需要求 合理的规划。使自己在书本所学知识到生活实际应用有一个明显过度和渗透。 - 19 致 谢 在大学三年的时间大多在学习理论基础知识,实践的不并是太多。经过这 次毕业设计,我接触到了更多元器件以及相关的使用调试经验,发现了自己很 多不足之处,体会到了所学理论知识的重要性。理论知识结合实践操作加深了 对理论知识的理解,而且知识掌握得越多,设计的会更好,更全面。 在设计过程中,通过针对性地查找资料,了解了些电子方面的资料,既增 长了自己见识,补充最新的专业知识,又提高了自己的应用能力。 通过校园作息时间控制钟的设计,让我体会到单片机使用的广泛性以及其 重要性,单片机技术的出现给现代控制领域带来了一项新的改变。目前,单片 机在控制系统诸多领域中得到了极为广泛的应用,特别是其中 S51 系列的单片 机的出现,具有很好的稳定性,更快和更准确的运算精度,推动了工业生产, 影响着人们的工作和学习。所以我们要不断学习加强这方面的知识以及相关的 知识,比如 PCB 电路板设计、汇编语言编程、C 语言等。 总之这次毕业设计让我把理论设计和工程实践相结合、巩固基础知识与培 养创新意识相结合、个人作用和集体协作相结合等方面全面的培养学生的全面 素质。这些在我今后的学习和工作当中都会有很大的帮助。 最后,要感谢我的毕业设计的指导老师文其知老师。在整个毕业设计的过 程中正是由于文老师的指导才让我所做课题得到成功。三年的大学生活即将结 束,在离开学校之前能够作一次毕业设计我很开心,因为我觉得从中我学到了 不少东西。 - 20 参考文献 1谭浩强 张基温.C 语言程序设计教程(第三版).北京:高等教育出版社 2006.8 233288 页 2汤竞南 沈国琴.51 单片机 C 语言开发与实例.北京:人民邮电出版社 331332 页 3胡宴如.模拟电子技术M.北京:高等教育出版社 2006. 237258 页 4赵伟军.Protel 99 SE 教程.人民邮电出版社 2007.12 122138 页 5楼然苗等.单片机课程设计指导M.北京:北京航空航天大学出版社,2007 6中国电子网. 751 单片机学习网. 8边春元等.c51 单片机典型模块设计及应用M.北京:机械工业出版社,2008 9电子电路图网. 10徐爱钧等.Keil C51 V7.0 单片机高级语言编程与 Vision2 应用实践M.北京: 电子工业出版社,2008 11闻新等.MCS-51/52 单片机原理与应用M.北京.科学出版社,2008 12 赵伟,吕鸿莉,郭蕴蛟编著电子电能表及其在现代用电管理中的应用.第一 版.北京:中国电力出版社,1999, 121-139 - 21 附件 系统原理图 - 22 (2)程序清单 #include #define uchar unsigned char #define uint unsigned int uchar s,s1,sec0,sec1,sec2, sec3,sec4,sec5,sec6, biaozhi,kj,k3j,kj1,k j2,k4j,kpan1,kpan3,k pan5,kpan6,kpan7,pan duan,jjj,bianliang,b ianliang1,guo1,guo; int h,x1,x2,x3,x4,x5,x6; void writebyte(unsigned char wdat);/写一 字节到 ds1302 unsigned char readbyte(); /从 ds1302 中读一字 节 unsigned char readdat(unsigned char raddr); /读 ds1302 某地址数 据 void writedat(unsigned char waddr,unsigned char x); /写数据到 ds1302 的某地址 void ifprotect(flag); /是否写允许 uchar dis_cod=0xc0,0xf9,0 xa4,0xb0,0x99,0x92,0 x82,0xf8,0x80,0x90,0 xbf,0xff; signed char time=0,0,0; int kpan,x11,y11; x11=-2; y11=-1; z11=-2; w11=-1; signed char daling=0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0; sbit dd=P37; sbit k1=P10; sbit k2=P11; sbit k3=P12; sbit k4=P13; sbit k5=P34; sbit k6=P35; sbit io=P15; /ds1302 的串行数据 I/O 口 sbit clk=P16; /ds1302 的时钟口 sbit rst=P17; sbit acc0=ACC0; /移位时的第 0 位 sbit acc7=ACC7; /移位时用的第 7 位 /ds1302 的复位口 void delay(uint h) uint i,j; for(j=h;j0;j-) for(i=125;i0;i-); /* *ds1302 函数部分 * */ void delay1(unsigned char ms) /延时函数 uchar i; uchar m=4; while(ms-) for(i=0;i0;i-) io=acc0; / 从最低位开始传送 clk=1; / 产生一个边沿 在写 指令时供产生上升沿, 在写数据时供产生紧挨 着的下降沿 clk=0; ACC=1; - 23 unsigned char readbyte() /从 ds1302 中读一字 节 unsigned char i1; for(i1=8;i10;i1-) ACC=1; /保证最低位传送至最 低位 acc7=io; /从最低位开始传送 clk=1; /产生一个边沿 在 读数据时供产生上升沿 clk=0; return(ACC); unsigned char readdat(unsigned char raddr)/读 ds1302 某地址数据 unsigned char value; rst=0; /在读写前何证 rst 为 低电平 clk=0; rst=1; /在读写期间保证 rst 为高电平 且只有在 clk 为低 电平时才能变为 高电平 writebyte(raddr); value=readbyte(); rst=0; /读写完毕后保证 rst 为低,clk 为高 clk=1; return(value); /*写数据到 ds1302 的某地址 */ void writedat(unsigned char waddr,unsigned char x) rst=0; clk=0; rst=1; writebyte(waddr); writebyte(x); rst=0; clk=1; void ifprotect(flag) if(flag) /flag=1 时禁止写入 writedat(0x8e,0x10); else /flag=0 时允许写入 writedat(0x8e,0x00); void xia

温馨提示

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

评论

0/150

提交评论