课程设计-基于单片机的火灾报警器设计内容摘要:

原理及应用: DS18B20 的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。 其一个工作周期可分为两个部分,即温度检测和数据处理。 在讲解其工作东北大学 2020 届毕业设计说明书 第 14 页 共 37 页 流程之前我们有必要了解 18B20 的内部存储器资源。 18B20 共有三种形态的存储器资源,它们分别是: ROM 只读存储器,用于存放 DS18B20ID 编码,其前 8 位是单线系列编码( DS18B20 的编码是 19H),后面 48 位是芯片唯一的序列号,最后 8 位是以上 56的位的 CRC 码(冗余校验)。 数据在出产时设置不由用户更改。 DS18B20 共 64位 ROM。 RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失, DS18B20共 9 个字节 RAM,每个字节为 8 位。 第 2 个字节是温度转换后的数据值信息,第 4 个字节是用户 EEPROM(常用于温度报警值储存)的镜像。 在上电复位时其值将被刷新。 第 5 个字节则是用户第 3 个 EEPROM 的镜像。 第 8 个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。 第 9 个字节为前 8 个字节的 CRC 码。 EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20 共 3 位 EEPROM,并在 RAM 都存在镜像,以方便用户操作。 控制器对 18B20 操作流程: 1, 复位:首先我们必须对 DS18B20 芯片进行复位,复位就是由控制器(单片机)给 DS18B20 单总线至 少 480uS 的低电平信号。 当 18B20 接到此复位信号后则会在 15~60uS 后回发一个芯片的存在脉冲。 2, 存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在 15~60uS 后接收存在脉冲,存在脉冲为一个 60~240uS 的低电平信号。 至此,通信双方已经达成了基本的协议,接下来将会是控制器与 18B20 间的数据通信。 如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。 3, 控制器发送 ROM 指令:双方打完了招呼之后最要将进行交流了, ROM指令共有 5 条, 每一个工作周期只能发一条, ROM 指令分别是读 ROM 数据、指定匹配芯片、跳跃 ROM、芯片搜索、报警芯片搜索。 ROM 指令为 8 位长度,功能是对片内的 64 位光刻 ROM 进行操作。 其主要目的是为了分辨一条总线上挂接的多个器件并作处理。 诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的 ID 号来区别,一般只挂接单个 18B20 芯片时可以跳过 ROM 指令(注东北大学 2020 届毕业设计说明书 第 15 页 共 37 页 意:此处指的跳过 ROM 指令并非不发送 ROM 指令,而是用特有的一条 “跳过指令 ”)。 4, 控制器发送存储器操作指令:在 ROM 指令发送给 18B20 之后,紧接着(不间断) 就是发送存储器操作指令了。 操作指令同样为 8 位,共 6 条,存储器操作指令分别是写 RAM 数据、读 RAM 数据、将 RAM 数据复制到 EEPROM、温度转换、将 EEPROM 中的报警值复制到 RAM、工作方式切换。 存储器操作指令的功能是命令 18B20 作什么样的工作,是芯片控制的关键。 5, 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。 如执行温度转换指令则控制器(单片机)必须等待 18B20 执行其指令,一般转换时间为 500uS。 如执行数据读写指令则需要严格遵循 18B20 的读写时序来操作。 数据的读写方法将有下文有详细介绍。 若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过 ROM 指令、执行温度转换存储器操作指令、等待 500uS 温度转换时间。 紧接着执行第二个周期为复位、跳过 ROM 指令、执行读 RAM 的存储器操作指令、读数据(最多为 9 个字节,中途可停止,只读简单温度值则读前 2 个字节即可)。 其它的操作流程也大同小异,在此不多介绍。 单片机的选择 本设计的控制芯片使用的是 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片机 AT89C52. 其 片内含 8K bytes 的可反复擦写的只读程序存储器( PEROM)和 256 bytes 的随机存取数据存储器( RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,与标准 MCS51 指令系统及 8052 产品引 脚 兼容,片内置通用 8 位中央处理器( CPU )和 FLASH 由存储单元,功能强大 的 AT89C52单片适用于许多较为复杂控制应用场合。 AT89C52 提供以下标准功能: 8 字节 FLASH 闪速存储器, 256 字竹内部 RAM , 32 个 I/O 口线, 3 个 16 位定时/计数器,一个 6 向量两级中断结构,一个全双工串行通信口 ,片内振荡器及时钟电路。 同时, AT89C52 可降至 OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。 空闲方式停止 CPU 的工作,但允东北大学 2020 届毕业设计说明书 第 16 页 共 37 页 许 RAM,定时/计数器.串行通信口及中断系统继续工作。 掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位 . 3 火灾自动报警系统硬件设计 单片机系统基本电路 晶振电路 晶振电路为单片机 AT89C52 工作提供时钟信号,芯片中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出 端。 这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振荡器一起构成自激振荡器。 电路中的外接石英晶体及电容 C C2接在放大器的反馈回路中构成并联振荡电路,系统的晶振电路如图 所示。 由于外接电容 C C2的容量大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳 定性,如果使用石英晶体,电容的容量大小范围为 30 10pF pF ;如果使用陶瓷谐振,则电容容量大小为 40 10 FpF p。 本设计中使用石英晶体,电容的容值设定为30pF。 复位电路 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。 为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。 单片机在启动时都需要复位,以使 CPU 及系统各部件处于确定的初始状态,并从初态开始工作。 AT89C52的复位信号是从 RST 引脚输入到芯片内的施密特触发器中的。 当系统处于正常工作状态时,且振荡器稳定后,如果 REST 引脚上有一个高电平并维持 2 个机器周期(24 个振荡周期 )以上,则 CPU 就可以响应并将 系统复位。 单片机系统的复位方式有:手动按钮复位和上电复位,本设计采用的是手动按钮复位。 手动按钮复位需要人为在复位输入端 RST 上加入高电平 ,采用的办法是在RST 端和正电源 Vcc 之间接一个按钮。 当人为按下按钮时,则 Vcc 的 +5V 电平就东北大学 2020 届毕业设计说明书 第 17 页 共 37 页 会直接加到 RST 端,系统复位。 由于人的动作再快也会使按钮保持接通达数十毫秒,所以,设计完全能够满足复位的时间要求。 复位电路中 REST 为手动复位开关,电容 C3 可避免高频谐波对电路的干扰。 AT89C52 的复位电路如图 所示。 图 晶振电路与复位电路 传感器信息采集 电路 MQ2 气敏元件的对不同种类、不同浓度的气体有不同的电阻值,灵敏度的调整是很重要的。 烟雾传感器的外部电路设计图如图。 图 MQ2 外围电路 东北大学 2020 届毕业设计说明书 第 18 页 共 37 页 DS18B20 采用 单数据总线传送数据,即一个器件只占用一个 AT89C52 芯片的IO 引脚,本系统要最多检测 8 个位置,因此设计将 AT89C52 的 P2 口由于温度采集。 此设计图中,拨码开关 SW1 即模拟的是 8个烟雾传感器经过外部电路处理后传回来的电信号。 图 数据采集电路 声光报警显示电路 声光报警显示电路在 AT89C52 的控制下, 可在外部环境异常时蜂鸣器发出警报声,红色 led 灯点亮,红色数码管其位置信息。 AT89C52 的 P0 口加入了大小为 10K 欧姆的上拉电阻, 因 P0 口是地址数据复用口线,与其它口线不一样。 所以,当 P0作普通 IO 时,必须用上拉电阻将其电平拉高,上拉电阻不起限流作用。 以方便操作,选用了直流电压控制型的蜂鸣器、红色发光二级管以及红色 7段数码管作为声光报警显示设备。 东北大学 2020 届毕业设计说明书 第 19 页 共 37 页 为了简化电路节省单片机的管脚,采用了 74ls47 芯片为数码管编码,使得本来要占用的 7 个单片机管脚变为只占用 4个。 考虑到之后的检测点数目的显示也要用 7 段数码管 (本设计采用蓝色数码管),因此采用了两个 74hc573 芯片作为锁存器,分别于两个数码管连接,使得单片机只需要控制之前的 4个管脚和这两锁存器的两个使能管脚便能控制两个数码管的显示。 至此 P0 口的 8个管脚用掉了 6个,剩余的两个管脚分别连接蜂鸣器电路和红色 led 电路即可完成此部分的设计。 图 声光报警电路 系统控制电路 系统控制电路包含了 10个按键和一个蓝色数码管, 1~8号按键分别对应着 1~8号检测位置, 9号按键对应系统中的取消报警键, 10 号按键对应系统中的设置检测点数目功能键,蓝色数码管则实时地显 示当前监测点的个数,方便用户调整。 蓝色数码管的电路已在 中叙述。 出于节省单片机管脚的考虑, 10 个按键被连接在两个 83 编码器上。 这样使得被来要占用的 10个单片机管脚变为 5 个。 同时为了提高程序运行的效率,本设计将两个 83 编码器 GS输出端通过一个与门( 74LS08)连接到单片机的外部中断 0 口,这样把中断与管脚扫描结合一体,使得程序运行效率有了大大提高。 东北大学 2020 届毕业设计说明书 第 20 页 共 37 页 图 系统控制电路 4 火灾报警系统程序设计 软件开发环境 本系统摒弃了传统的汇编语言而采用 C 语言进行程序设计。 因为 C 语言的描述由函数组成,是一种结构化的程序设计语言,所以更容易实现模块化,而且具有可读性好,易于移植等优点,同时还有汇编语言一样的位操作功能的硬件详细东北大学 2020 届毕业设计说明书 第 21 页 共 37 页 控制指令 [29]。 数据结构方面,可以使用结构体和数组,能够处理复杂的数据,可用于实时处理系统。 本系统的软件编程使用的是美国 Keil Software 公司出品的 Keil C51,是 51系列兼容单片机 C 语言软件开发系统。 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。 另外重要的一点, Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 在开发大型软件时更能 体现高级语言的优势。 C52 工具包的整体结构中,μ Vision与 Ishell分别是 C52for Windows和 for Dos的集成开发环境 (IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。 开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件。 火灾报警系统程序设计 本系统主要包括数据采集子程序、火灾判断 /报警子程序与系统控制子程序等来实现设计任务的要求。 主要功能 要求:( 1)实时检测至多 8 个监测点的环境温度、烟雾浓度等因素变化,以。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。