基于单片机的电子万年历的设计_毕业设计(编辑修改稿)内容摘要:

块 DS18B20 模块 报警响铃模块 电源模块 LCD 显示模块 毕业设计(论文) 7 存储器,所以直接接电源; ALE/PROG:在访问外部程序存储器时,不读取片外时以时钟 图 3— 2单片机最小系统 的原理图 振荡频率的 1/6 输出固定的正脉冲信号,故它可以对外输出时序或用于定时。 P0 口即可用地址 /数据总线复用口,有可作通用的 I/O 口使用。 它是一组 8 位漏极开路型双向 I/ O 口作为输出口用时。 P2 是一个带内部上拉电阻的 8 位双向 I/ O 端口,它即可作通用的 I/O 口使用,也可与 P0 口相配合,作为片外存储器的高 8 位地址总线。 它可以根据系统要求,可全部当做于 I/O 口使用,也可以全部当做地址总线使用,或者部分作地 表 31单片机 第二功能图 端口引脚 第二功能 RXD(串行输入 ) TXD(串行输出 ) INT0(外中断 0) INT1(外中断 1) T0(定时 /计 数器 0 外部输入) T1(定时 /计数器 1 外部输入) WR(外部数据存储器写选通 信号出口 ) RD(外部数据存储器读选通 信号出口 ) T2(定时 /计数器 2 外部计数输入) T2 EX(定时 /计数器 2 外部触发输入) 址总线使用部分作 I/O 口使用,用户自己灵活使用。 P1 主要用于单片机的用户的控制量毕业设计(论文) 8 的输入或数据的输出,它是一个通用准双向 I/O 口,但它与 AT89C51 略有区别,它的 与 有第二功能。 P3 口即可作通用的 I/O 口使用,但常使用的是其第二功能。 其第二功能如表 31所示。 此电路用来产生时钟信号,以提供单片机内部各种数字逻辑电路的工作的时间基准。 55 单片机可内部振荡方式和外部振荡方式两种电路形式,本设计采用的是内部振荡方式。 单片机的内部 XTAL1( 19 脚)与 XTAL2( 18 脚)之间有一个高增益的放大器,在19 脚和 18 脚外接谐振电路,就构成内部振荡方式的自激振荡器,并产生时钟脉冲,本次设计的单片机工作频率为 12MHz,振荡频率由晶振的谐振频率来确定,电容器 C C2起稳定频率、快速起振的作用,其电容值为 30pF, 设计电路时应将 C C2 尽量靠近单片机芯片, 由于内部振荡方式电路简单,信号稳定,是独立的单片机系统首选。 最小系统的复位电路 和电源 单片机的 复位电路的设计 ,其 第 9 引脚为复位输入端 , 20 引脚为接地端 ,40 引脚为电源端 .此系统的 的复位电复位路设计两种情况,一为上电复位电路,一为手动复位。 这种设计比单一的上电复位更符合实际,也是操作方便。 电源的连接,把单片机 20 引脚接地,单片机 40 引脚接 +5V 电压,完成电源的连接。 . DS18B20测温原理 测温原理如图 33 所示, 由于 DS18B20 的晶振的振荡频率是低温度系数的,因此在受到温度的影响时变化较小, 故它可用于当作稳定频率,而 减法计数器 1 的脉冲信号可以由 它可 提供,由于它的的晶振的振荡频率 在 高温 系数 时随温度变化很明显,故 产生的脉冲 信号 可 作为减法计数器 2 的脉冲 信号 输入, 从原理图看,还含有 计数门,当计数门打开时, DS18B20 温度传感器就对低温度系数振荡器 生 成 的时 钟脉冲进行计数,从 而 实现环境温度的检测。 计数门开启 的 时间 是由 (高温系数)振荡器 来确 定, 在 每次检测之前, 先将 基准温度 55 ℃ 存入温度的寄存器和减法计数器 1 中 , 使温度寄存器与减法计数器 1 被初始化,低温系数的晶振产生的脉冲信号由减法计数器 1 进行减法计数,当其值减至 0 时,温度寄存器中的数值将进行加 1 操作,而减法计数器 1 将重新赋值,它 又重新开始对低温系数振荡器产生的信号脉冲进行计数,一直重复下去直到(减法)计数器 2 中的值减到 0 时,终止温度寄存器中的数值的增加,此时它内部的数值就是所检测的温度值。 测温过程产生的非线性变化就靠其内部的斜率累加器进行修正和补偿 ,对减毕业设计(论文) 9 法计数器的预置温度实行修改。 只要没有关闭计数门就一直重复上述处理,直到(温度)寄存器中的温度值达到被检测的温度 值, 此来 DS18B20 温 度检测 原理。 . DS18B20与单片机的接口电路 DS18B20 与单片机的连接有两种接法,一种是寄生电源供电,另一种是外部电源供电。 寄生电源供电时, VDD、 GND 接地, DQ 接单片机的 I/O 口,为了 确保 在有效的DS18B20 时钟周期内提供足够的电流, 一般要 用一个 MOSFET 来完成对总线的上拉;外部电源供电时, VDD 接电源,在它和电源之间接一个 的电阻, GND接地, DQ 接单片机的 I/O 口。 此设计采用的是 后者即外 部电源供电方式 , DQ( 2 脚) 接 AT89C55 单片机 的 脚进行通信。 如图 3— 4所示: 图 3— 4 DS18B20 测温模块的原理图 斜率 累加器 预置 计数比较器 减法计数器 1 温度寄存器 高温系数振荡器 减法计数器 2 减到 0 预置 减到 0 低温系数振荡器 增加 停止 图 33 DS18B20测温原理图 毕业设计(论文) 10 . DS12887芯片 的引脚功能 管脚功能: GND 接地 , VCC 接 +5V 的 电源 , 当 +5V 电压在正常范围内,数据 能 读写;当 VCC 低于 ,读写 操作 被禁止,计时功能 正常进行 ;当 VCC 下降 至 3V 以下时, 随机存储器 RAM 和计时器 的供电 被切换到内部锂电池 ; MOT(模式选择 )接 VCC 时,选择Motorola 时序,当接 GND 时,选择 Intel 时序 ; SQW(方波信号同 )能从 RTC 内部 15 级分频器的 13 个 分频 中选择一个输出,其输出频率 通过对寄存器 A 编程 来控制; AD0—AD7(双向地址 /数据复用线 )总线接口,可与 Motorola各种类型的微机和 Intel 各种类型的微机 接口 AS 即地址信号选通的输入端口 用 来 实现信号 的 分离, 可 在 AD/ALE 下降沿把地址 写 入 DS12887 芯片; DS 脚表示数据的选择端或读信号的输入,它有两种类型的操作模式,它 由 MOT 的电平决定的, 当 MOT 接高电平时 , DS 为 正脉冲,出现 于 总线周期之后, 称 作 数据选通 , 在读周期 时 , DS 指示 芯片 双向驱动总的 时刻 ,在写周期 时 , DS 的下降沿 使 芯片 写入数据, 当 MOT 接低电平时 , DS( RD)当作与储存器的信号允许( OE)有 相同 的定义 ; R/W(读 /写输入 )的操作模式有两种。 当 MOT 管脚 接高电平时 , R/W 是 电平信号, 表明当前周期为读信号周期或者为写信号周期 , 当 DS 为 1 时, R/W 高 电平 1表明是读信号周期, R/W 为低电平 0 表明写信号周期; 当 MOT 管脚 接低电平时 , R/W 信号是低电平信号, 与通用 RAM 的写允许信号 (WE)有 相同 的含义 ; CS 表示片选信号输入端,它访问 DS12887 时钟 芯片 总线 的 周期内 ,片选信号 只能 保持为低 ; IRQ 表示的是中断输入端,它在低电平有效, 通常 作 为 单片机的外部中断的 输入。 在无 中断 产生时, IRQ 一直 保持为高阻态, 由于 IRQ 端口内部的结构是 漏极开路 , 故 它工作时 要求 接 上 拉电阻 ; RESET表示复位端它复位时低电平的持续时间应大于 200ms, 才能使 DS12887 实时时钟芯片复位成功。 . DS12887芯片与单片机的接口电路 本设计采用的是 Intel总线 时序 ,故 MOT脚 直接接地 地。 其它引脚的连接如下: GND接地; RESET 和 VCC 接电源, 选择 DS12887 时钟芯片的地址总线 AS 端口和 AT89C55 单 片机的 直接相联; 而 IRQ、 R/W、 DS、 CS 读写控制线 分别 与单片机的 、 、 口 相连; DS12887 芯片 的 SQW 端口可编程产生方波输出信号 ,在本设计中没有使用 , NC 不接 ; AD0— AD7(双向地址 /数据复用线 )总线接口 与 AT89C55 单片机的 P2口相接。 所以 DS12887时钟芯片和 AT89C55单 片 机的接口电路如图 3— 5所示。 毕业设计(论文) 11 图 3— 5 时钟模块的原理图 . LCD1602芯片的引脚功能 LCD1602 采用标准 16 脚接口 ,分别为: VSS( 1 脚 ) 为电源地 ; VDD( 2 脚 ) 接 +5V电源 ; V0( 3 脚 ) 为 对比度调整端, 使 LCD1602 液晶显示器显示达到最佳效果, 在 接 电源正极时对比度 是 最弱 的 , 在 接 电源负极时对比度 是 最高 的 ,对比度不宜过高也不宜过低,过高 会 产生 “ 鬼影 ” ,过低会很模糊, 使用时可 接 一个 10K 的 可变电阻 调整对比度 ; RS( 4 脚 ) 为寄存器 功能 选择, 在 高电平 时表示选择了操作存放数据的寄存器, 在低电平 时表示选择了指令代码寄存器; RW( 5 脚 ) 表示读 /写信号选择端, 高电平时 表示读操作,而 低电平 表示 写操作 ; EN 或 E 端 ( 6 脚 ) 为使能端 ; 第 DB0~ DB7( 7~ 14脚 ) 为 8 位 I/O 口(一字节的双向数据端); 15~ 16 脚 为 背景灯光电源接口, 当为 背 景灯 光 电源 时, 15 脚 为 背 景 灯 光电源 正极, 16为 脚 为 背 景 灯 光电源负极。 . LCD1602与单片机的接口电路 本设计没有对 LCD1602 的 寄存器 进行过读操作,因此,可以简化电路,把 RW 直接接毕业设计(论文) 12 地,低电平时是对寄存器进行写操作, 显示器的 背灯电源 与电源按要求接好即可,对比度 V0 通过可变电阻与地连接, RS、 E 分别与 AT89C55 单片机的 、 相接 ,DB0~DB7 与 AT89C55 单片机的 P0口按顺序连接。 如图 3— 6所示 图 3— 6 显示模块的原理图 键盘 根据它是硬件编码,还是软件编程实现 可 分 两类,一为编码键盘,一为非编码键盘,编码键盘是指键的闭合识别是由专用的硬件电路实现,并产生键值或编码,例如电脑键盘; 非编码键盘是指键的闭合由软件编程的方式来识别;在单片机应用系统中,非编码键盘用的非常广泛,编码键盘用的很少。 非编码键盘根据其接入方式与扫描方式又可分为矩阵键盘即行列式键盘和独立键盘。 由于独立键盘在按键少时实现容易,电路简单,编程方便。 故本设计采用的是独立键盘。 时间设置键( SET)接单片机的 ,确定 /闹钟( OK)接单片机的 ,加键( +)接单片机的 ,减键( — )接单片机的。 如图 3— 7所示: 毕业设计(论文) 13 图 3— 7 键盘模块的原理图 本系统的闹钟 与温度的二级报警 的设计采用了简单的 电路,它是由 NPN 型三极管 集电极 驱动蜂鸣器, 发射极接 +5V 电源,基极接 100 欧姆的电阻作限流电阻,再与单片机的 连接,温度的一级报警采用的是发红光的 LED 接上限流电阻与单片机的 连接,原理图如图 3— 8所示: 图 3— 8 报警模块的原理图 毕业设计(论文) 14 第 四 章 系统软件设计 智能数字 电子万年历 是多 功能 的系统,各功能 是在程序 的控制下实现的。 本系统的软件设计方法与硬件设计一一 对应,按照整体功能分 割 成多个程序模块, 它们是 分别进行设计、编程和调试 出来的 ,最后通过主程序将各 子 程序模块 结合。 这样 将方便 程序的修改 与调试,最终完成系统的整体设计,达到设计要求。 此外本章的软件设计说的是一种设计的思路,或者方法,因此并没有把所设计好的程序写入下列各节,全部放在附录二 中。 主程序的主要功能是 LCD160温度测试系 统、实时时钟系统的初始化,键盘的扫描(包括时间校准键盘和闹钟设置键盘),闹钟判断, 温度报警的查询, 星期转换与月末天数调整,以及温度 与时间的实时显示,此外还有开中断。 主程序流程图如图 41 所示,程序见附录 二。 模块 程序 模块包含五个函数分别是初始化 DS18B20 函数,读 /写一字节数据函数,读温度函数,实时显示温度函数。 各函数的名字为:初始化函数 init_1820()。 ,写一字节数据函数 void write_bit(uchar dat)。 ,读一字节数据函数 uint read_bit()。 ,读温 度函数uint read_wdu()。 ,实时显示温度函数 void display_wdu(uint ii)。 具体内容见附录三源程序。 流程图如图 42所示。 对初始化 DS18B20 函数的编程时,要严格的遵守初始化时序。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。