电子时钟毕业设计含外文翻译(编辑修改稿)内容摘要:

或 VCC2 两者中的较大者供电。 所以在主电源关闭的情况下,也能保持时钟的连续运行。 X1 和 X2 是振荡源,外接 晶振用来为芯片提供计时脉冲。 RST 是复位 /片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。 RST 输入有两种功能:首先, RST 接通控制逻辑,允许地址 /命令序列送入移位寄存器;其次, RST 提供终止单字节或多字节数据的传送手段。 当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302 进行操作。 如果在传送过程中 RST 置为低电平,则会终止此次数据传送, I/O 引脚变为高阻态。 上电行动时,在 VCC 大于等于 之前, RST 必须保持低电平。 在 SCLK 为低电平时,才能将RST 置为高电平, I/O 为串行数据输入端(双向)。 SCLK 始终是输入端 [8]。 图 DS1302的 硬件接线图 时钟芯片 DS1302 的工作原理: a) DS1302 的控制字节 DS1302 控制字节的高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 DS1302 中,位 6 如果 0,则表示存取日历时钟数据,为 1 表示存取 RAM 数据;位 5至位 1 指示操作单元的地址;最低有效位(位 0)如为 0 表示要进行写操作,为 1 表 示进行读操作,控制字节总是从最低位开始输出 b) 数据输入输出( I/O) 在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从低位即位 0 开始。 同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 0 位到高位 7。 c) DS1302 的寄存器 DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD码形式。 “CH” 是时钟暂停标志位,当该位为 1 时,时钟振荡器停止, DS1302 处于低功耗状态;当该位为 0 时,时钟开始 运行。 “WP” 是写保护位,在任何的对时钟和 RAM的写操作之前, “WP” 必须为 0。 当 “WP” 为 1 时,写保护位防止对任一寄存器的写操作。 此外, DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM 相关的寄存器等。 时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0H~ FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性 读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写 )、 FFH(读 )。 温度传感器电路设计 本设计的测温元件采用 DS18B20 数字温度传感器,使用 DS18B20 数字温度传感器,可以感测周围环境温度变化,并将数据传送给单片机进行处理,实现周围环境实时温度的监测。 DS18B20 具有独特的单线接口,只需 1 个接口引脚即可通信;多点能力使分布式温度检测应用得以简化;不需要外部元件;可用数据线供电,不需备份电源;测量范围从 55℃ 至 +125℃ ,增量值为 ℃。 等效的华氏温度范围是 67176。 F 至 257176。 F ;以 9 位数字方式读出温度;在 1 秒(典型值)内把温度变换为数字;用户可定义的,非易失性的温度告警设置;告诫搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况);应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统 [9]。 下图(图 )为 DS18B20 硬件接线图 图 DS18B20 引脚接线 引脚说明: GND 为接地引脚; DQ 为数据输入输出脚。 用于单线操作,漏极开路; VCC接电源正; a) DS18B20 的主要特性  适应电压范围更宽,电压范围: ~ ,在寄生电源方式下可由数据线供电。  独特的单线接口方式, DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。  DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点测温。  DS18B20 在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内。  温范围- 55℃ ~+ 125℃ ,在 10~ +85℃ 时精度为 177。 ℃。  可编程 的分辨率为 9~ 12位,对应的可分辨温度分别为 ℃ 、 ℃ 、℃ 和 ℃ ,可实现高精度测 温。  在 9 位分辨率时最多在 内把温度转换为数字, 12 位分辨率时最多在 750ms 内把温度值转换为数字,速度更快。  测量结果直接输出数字温度信号,以 一 线总线 串行传送给 CPU,同时可传送 CRC 校验码,具有极强的抗干扰纠错能力。  负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。 DS18B20 只需要接到控制器(单片机)的一个 I/O 口上,由于单总线为开漏所以需要外接一个 的上拉电阻。 DS18B20 数据线是开漏结构,这就意味着 ,在没有数据的时候 ,总线处于什么样的状态是不 确定的 .加一个上拉电阻就可以使总线在空闲的时候处于高电平状态 . b) DS18B20 的供电方式 DS18B20 的供电方式有两种:寄生电源供电方式和外部电源供电方式。 本设计采用外部电源供电方式(如图 ), DS18B20 工作电源由 VDD引脚接入,此时 I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度。 外部电源供电方式是 DS18B20 最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。 独立式键盘设计 实现键盘控制的方法有多种,它可以 用 FPGA 来进行控制,也可以用单片机来进行控制。 在本系统中,我们采用了单片机来进行控制,因为单片机可以很好的解决键抖动。 由若干个按键组成一个键盘,其电路结构可分为独立式键盘和矩阵式键盘两种。 独立式键盘每个键单独占用一根 I/O 口线,每根 I/O 口线上的按键工作状态不会影响其他I/O 口线上的状态,矩阵式键盘按键排列为行列式矩阵结构,也称行列式键盘结构。 4行 4 列共 16 个键,只占用 8 根 I/O 口线,键数目较多,可节省口线。 本设计采用的是独立式键盘。 键盘的工作方式可分为编程控制方式和中断控制方式。 CPU 在一个工作周期 内,利用完成其他任务的空余时间,调用键盘扫描子程序,经程序查询,若无键操作,则返回;若有键操作,则进而判断是哪个键,并执行相应的键处理程序。 这种方式为编程扫描方式。 由于单片机在正常应用过程中,可能会经常进行键操作,因而编程控制方式使 CPU 经常处于工作状态, 在进行本次设计中,只涉及到了设置、上调、下调、确定四个功能。 因此采用独立式键盘。 如图 所示 图 按键设计 显示模块的设计 本设计中由于要对时间、温度进行显示,所以选择液晶显示屏 1602 模块作为输出。 1602 字符型 LCD 通常有 14 条 引脚线或 16 条引脚线的 LCD,多出来的 2 条线是背光电源线。 它可以显示两行,每行 16 个字符,采用单 +5V 电源供电,外围电路配置简单,价格便宜,具有很高的性价比。 1602 液晶模块内部的字符发生存储器( CGROM)已经存储了 160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母 “A” 的代码是 01000001B( 41H),显示时模 块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母 “A”。 管脚功能 如表 所示 : 表 31 LCD1602 引脚功能 引脚 符号 功能说明 1 VSS 一般接地 2 VDD 接电源( +5V) 3 V0 液晶显示器对比度调整端。 4 RS RS 为寄存器选择。 5 R/W R/W 为读写信号线。 6 E E(或 EN)端为使能 (enable)端,下降沿使能。 7 DB0 底 4 位三态、 双向数据总线 0 位(最低位) 8 DB1 底 4 位三态、 双向数据总线 1 位 9 DB2 底 4 位三态、 双向数据总线 2 位 10 DB3 底 4 位三态、 双向数据总线 3 位 11 DB4 高 4 位三态、 双向数据总线 4 位 12 DB5 高 4 位三态、 双向数据总线 5 位 13 DB6 高 4 位三态、 双向数据总线 6 位 14 DB7 高 4 位三态、 双向数据总线 7 位(最高位) 图 LCD液晶与单片机硬件连线图 第四章 软件设计 软件部分主要包括:  主程序,主流程图  温度检测流程图和温度检测程序  DS1302 时钟流程图和时钟程序  LCD 显示程序和 LCD 显示流程图 主流程图 主流程图 如图 所示。 流程图分析:首先系统初始化,系统开始运行,当有设置键按下时进入 修改时间模式,无按键按下时读取时间、温度等数据送入液晶屏显示;在修改时间模式下设置时间完成后再送数据到液晶屏显示。 图 系统初始化 显 示 读时间 设置时间 读温度 进入修改时间模式 开 始 设置键 有否按下 设置完成 N Y Y N 温度程序流程图 温度读取流程图如图 所示。 流程图分析:开始进入初始化 DS18B20,就是通过主机拉低单线产生复位脉冲然后释放该线,如果有应答脉冲,即发起 ROM 命令当成功的执行操作命令后,就使用 Convert T 命令即开始温度转换,当转换完后,又初始化DS18B20 是否有应答脉冲,若有,就发起 Read Scratchpad(读取暂存器和 CRC 字节)命令,既同时读出第 1, 2 个字节,即为温度的数据。 图 流程图 DS1302 时钟程序流程图 时钟流程图如图 所示。 流程图分析: DS1302 开始计时时,首先进行初始化,当有中断信号时,读取时钟芯片的数据送入液晶屏显示。 这时若有设置键按下时,进行Y N 初始化 DS18B20 初始化 DS18B20 读取第 1,2 字节极为温度数据 发起 convert 命令 发起 Read Scrtchpad 命令 发起 skip Rom 命令 开 始 应答脉冲 N Y 应答脉冲 延时 1s 等待温度转换完成 时间修改,完成后将数据送入时钟芯片;若没有按键按下,则直接存入 EPROM,送入液晶屏显示。 图 DS1302时钟 流程图 LCD 显示程序流程图 显示程序流程图如图。 流程图分析:首先对 1602 显示屏进行初始化(初始化大约持续 10ms 左右),然后检查忙信号,若 BF=0,则获得显示 RAM 的地址,写入相应的数据显示;若 BF=1,则代表模块正在进行内部操作,不接受任何外部指令和数据,直到 BF=0 为止。 初始化 送 EPROM 读时钟芯片送显示 送时钟芯片 开中断 开 始 设置键 有否按下。 是否修改当前时间。 N Y Y N 图 LCD 显示程序流程图 对 1602 初始置命令 延时 5ms 延时 5ms 获得显示 RAM 地址 写入相应的数据 检查忙信号 开 始 数据显 示完毕。 BF=0。 N Y Y N 结 束 第五章 软件仿真与程序调试 Keil 软件调试流程 首先选择菜单 FileNew„ ,在源程序编辑器中 输入汇编语言或 C 语言源程序并保存,注意保存时必须在文件名后加上扩展名 .asm( .a51)或 .c。 然后选择菜单 ProjectNew Project„ ,建立新工程并保存 (保存时无需加扩展名 ,工程保存后会立即弹出一个设备选择对话框,选择 CPU 后点确定返回主界面。 这时工程管理窗口的文件页( Files)会出现 “Target1” ,将其前面 +号展开,接着选择 Source Group1,右击鼠标弹出快捷菜单,选择 “Add File to Group ‘Source Group1’” , 出现一个对话框,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。