基于51单片机的教学打铃控制器的设计毕业设计论文(编辑修改稿)内容摘要:

其中 VCC1 为后备电源, VCC2 为主电源。 在主电源关闭的情况下,也能保持时 钟的连续运行。 DS1302 由 VCC1 或 VCC2 两者中的较大者供电。 当 Vcc2 大于 Vcc1+ 时, Vcc2 给 DS1302 供电。 当 Vcc2 小于VCC1 时, DS1302 由 VCC1 供电。 X1 和 X2 是振荡源,外接 晶振。 RST 是复位 /片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。 RST输入有两种功能:首先, RST 接通控制逻辑,允许地址 /命令序列送入移位寄存器;其次, RST 提供终止单字节或多字节数据的传送手段。 当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。 如果 在传送过程中 RST置为低电平,则会终止此次数据传送, I/O 引脚变为高阻态。 上电运行时,在VCC 之前, RST 必须保持低电平。 只有在 SCLK 为低电平时,才能将 RST置为高电平。 I/O 为串行数据输入输出端 (双向 ),后面有详细说明。 SCLK 为时钟输入端。 下图为 DS1302 的引脚功能图: 图 24 DS1302引脚说明 DS1302 的控制字 DS1302 的控制字如 表 21 所示。 控制字节的最高有效位 (位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 DS1302 中,位 6 如果为 0,则表示存取日历时钟数据,为 1 表示存取 RAM数据。 位 5 至位 1 指示操作单元的地址。 最低有效位 (位0)如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总是从最低位开始输出。 华中科技大学毕业设计(论文) 7 表 21 DS1302 的控制字 1 RAM CK A4 A3 A2 A1 A0 RAM K 数据输入输出 (I/O) 在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从低位即位 0 开始。 同样,在紧跟 8 位的控制指令字后的下一个 SCLK脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 0 位到高位 7。 DS1302 的寄存器 DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式 ,其日历、时间寄存器及其控制字见表 21。 此外, DS1302 还有年份寄存器、控制 寄存器、充电寄存器、时钟突发寄存器及与 RAM 相关的寄存器等。 时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写 )、FFH(读 )。 时钟电路设计 图 25 DS1302时钟电路 DS1302 存在时钟精度不高,易受环 境影响,出现时钟混乱等缺点。 DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。 这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。 传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时华中科技大学毕业设计(论文) 8 间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。 但是,如果在系统中采用时钟芯片 DS1302,则能很好 地解决这个问题。 显示电路设计 单片机采用数字屏作为显示器件,实现时间、日期、温度的选择。 其中 P0口用于驱动 6 个数码管的段码输入端, P1 口通过同向驱动器用来驱动 6 个数码管的位选端。 另外,有四个 LED 灯通过 指示当前系统时钟电路的工作状态。 图 26 单片机显示电路 键盘电路设计 键盘是单片机应用中常用的一种输入器件,键盘的按键有触点式和非触点式之分,按接口原理有编码键盘和非编码键盘之分。 编码键盘主要用硬件来实现对按键的识别,非编码器件是由软件来实现键盘的定义和识别。 常用的按 键一般分为触点式按键,根据按键所连接的单片机引脚的电平高低来判断其是否按下。 按功能分,独立按键每一路按键就占用单片机的一个控制引脚,单片机直接获取其信息:矩形按键将按键排成由行和列组成的行列式,通过确认按键的行号和列号来确定每一路按键。 本设计按键电路图如下,由单片机的 P1 口控制按键电路。 本设计中按键用于设定定时时间,打铃时间间隔。 所以需 8 路按键即可实现所需功能,采用独立式按键即可。 实验中按键 0 代表时间设置,按键 1 代表取消闹铃设置,按键 2代表左移设置以便进行上一位时间设置,按键 3 代表增加时间数字,按键 4 代表减小时间数字,按键 5 代表右移设置以便进行上一位时间设置,按键 6 代表取消以上所有正在进行的设置,恢复原位,按键 7 代表确定以上设置。 华中科技大学毕业设计(论文) 9 图 27 单片机键盘设计 打铃电路设计 打铃电路一般用声音或音乐作为提醒,本设计选用蜂鸣器和灯实现声光双重打铃功能,电路如图,打铃时间到时,单片机 引脚置高, NPN 型三极管2N2222A 导通,使上面开关吸合,继电器导通, 220V电压进入,电铃响。 开关断开,继电器不导通, 220V电压无法进入,电铃不响。 图 28 单片机打铃电路 华中科技大学毕业设计(论文) 10 存储器 图 29 储存器电路 存储器用于存储设计时间、日期、以及温度等。 I2C 全称为芯片间总线,是目前使用广泛的芯片间串行扩展总线。 串行总线只有两条信号线,一条是数据线 SDA,另一条是时钟线 SCL。 SDA 和 SCL 是双向的, I2C 总线上各器件的数据线都接到 SDA 线上,各器件的时钟线均接到 SCL线上。 带有 I2C总线接口的单片机可直接与具有 I2C总线接口的各种扩展器件(如存储器、 I/O 芯片、 A/D、 D/A、键盘、显示器、日历 /时钟)连接。 由于 I2C 总线采用纯软件的寻址方法,无需片选的连接,这样就大大简化了总线数量。 I2C串行总线的运行由主器件控制。 主器件是指启动数据的发送(发出起始信号)、发出时钟信号、传送结束时发出终止信号的器件,通常由单片机来担当。 从器件可以是存储器、 LED 或 LCD 驱动器、 A/D 或 D/A 转换器、时钟 /日历器件等,从器件必须带有 I2C 串行总线接口。 当 I2C 总线空闲时, SDA 和 SCL 两条线均为高电平。 由于连接到总线上器件的输出级必须是漏极或集电极开路的,只要有一个器件任意时刻输出低电平,都将时总线上的信号变低,即各器件的 SDA 及 SCL 都是“线与”的关系。 由于各器件输出端为漏极开路,故必须通过上拉电 阻接正电源,以保证 SDA 和 SCL在空闲时被上拉为高电平。 SCL 线上的时钟信号对 SDA 线上的时钟信号对 SDA线上的歌器件间的数据传输起同步控制作用。 SDA 线上的数据起始、终止及数据的有效性均要根据 SCL 线上的时钟信号来判断。 在标准的 I2C 普通模式下,数据的传输速率为 100kbit/s,高速模式下可达400bit/s。 总线上扩展的器件数量不是由电流负载决定的,而是由电容负载确定华中科技大学毕业设计(论文) 11 的。 I2C 总线上的每个器件的接口都有一定的等效电容,连接的器件越多,电容值就越大,这会造成信号传输的延时。 总线上允许的器件数以器件的电 容量不超过 400pF 为宜,据此可计算出总线长度及连接器件的数量。 每个连到 I2C 总线上的器件都有一个唯一的地址,扩展器件时也要受到器件地址数目的限制。 温度显示电路 DSl820数字温度计提供 9位 (二进制 )温度读数指示器件的温度信息经过单线接口送入 DSl820 或从 DSl820 送出因此从主机 CPU 到 DSl820 仅需一条线 (和地线 )DSl820 的电源可以由数据线本身提供而不需要外部电源因为每一个 DSl820在出厂时已经给定了唯一的序号因此任意多个 DSl820 可以存放在同一条单线总线上这允许在许多不 同的地方放置温度敏感器件 DSl820 的测量范围从 55 到+125 增量值为 可在 ls(典型值 )内把温度变换成数字。 图 210 单片机温度显示设计 华中科技大学毕业设计(论文) 12 第三章 系统软件设计 软件设计流程图 N Y 图 31 软件设计流程图 定时器 1初始化, 1302 初始化,随后读取 1302 的时间或日期。 键盘扫描是对已知程序的扫描与认可。 读取已知信息之后就要判断时间是否与设定要求打铃时间一致,如果一致则进行上述后续步骤, P3口驱动,三极管 2N222A 导通即驱动继电器导通。 如果时间不一致直接跳步进行无限的循环,直到时间与设定打铃时间一致打铃为止。 读取 DS1302 时间程序设计 DS1302 的寄存器 有关日历、时间的寄存器共有 12 个,其中有 7 个寄存器(读时 81H~ 8DH,写时 80H~ 8CH),存放的数据格式为 BCD 码形式。 P3 口驱动 驱动继电器导通 开始 初始化 读取 DS1302 的 时间 /日期 键盘扫描 读取 24C02 信息 判断时间是否一致。 华中科技大学毕业设计(论文) 13 小时寄存器( 85H、 84H)的位 7 用于定义 DS1302 是运行于 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。 当 WP 位为 1 时,写保护位防止对任一寄存器的写操作。 DS1302 的工作原理 DS1302 工作时为了对任何数据传送进行初始化,需要将复位脚( RST)置为高电平且将 8 位地址和命令信息装入移位寄存器。 数 据在时钟( SCLK)的上升沿串行输入,前 8 位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。 时钟脉冲的个数在单字节方式下为 8+8( 8 位地址 +8 位数据),在多字节方式下为 8 加最多可达 248 的数据。 DS1302 的寄存器和控制命令 对 DS1302 的操作就是对其内部寄存器的操作, DS1302 内部共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式。 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 RAM相关的寄存器等。 时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。 表 31 日历、时间寄存器及控制字 7 6 5 4 3 2 1 0 寄存器名称 1 RAM/C K A4 A3 A2 A1 A0 RD/W 秒寄存器 1 0 0 0 0 0 0 分寄存器 1 0 0 0 0 0 1 小时寄存器 1 0 0 0 0 1 0 日寄存器 1 0 0 0 0 1 1 月寄存器 1 0 0 0 1 0 0 星期寄存器 1 0 0 0 1 0 1 年寄存器 1 0 0 0 1 1 0 写保护寄存器 1 0 0 0 1 1 1 慢充电寄存器 1 0 0 1 0 0 0 时钟突发寄存器 1 0 1 1 1 1 1 最后一位 RD/W 为 “0”时表示进行写操作,为 “1”时表示读操作。 华中科技大学毕业设计(论文) 14 DS1302 内部的 RAM 分为两类,一类是单个 RAM 单元,共 31 个,每个单元为一个 8 位的字节,其命令控制字为 COH~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的 RAM,此方式下可一次性读写所有的 RAM 的31 个字节,命令控制字为 FEH( 写)、 FFH(读)。 现在已经知道了控制寄存器和 RAM 的逻辑地址,接着就需要知道如何通过外部接口来访问这些资源。 单片机是通过简单的同步串行通讯与 DS1302通讯的,每次通讯都必须由单片机发起,无论是读还是写操作,单片机都必须先向。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。