基于ds1820的室温监测装置的设计毕业设计说明书(编辑修改稿)内容摘要:

个 门限的电源故障报警电路,可用于检测电池电压和非 5V 的电源。 PFI 为电源故障电压监控输入,当 PFI 小于 时, PFO 变为低电平, PFO 为电源故障输出端,通过外接电阻 R1﹑ R2 可组成不同门限电压监视网络。 当电源电压低于容限电压时即视为报警输出。 监控电路还具有上电复位输出和外部手动复位输出功能,芯片内部有一个上电比较器,当电源电压上升到可靠的工 作电压后,即在 RESET 端输出一个 200ms 的复位信号,保持单片机系统的正常复位。 芯片内有一个看门狗定时器 WDT, WDI为看门狗输入,接单片机 ,其最短的状态改变周期为 秒,当 WDI 保持高电平或低电平达 时可使内部定时器完成计数,并置 WDO 为低。 WDO 为看门狗输出,如果连接到 MR将会触发复位信号使单片机系统复位。 声光报警 虽然单片机 AT89C2051 的 P1 口、 P3 口低电平时的吸收电流可达 20mA,不需要外接驱动电路,可直接驱动发光二极管,但是为了降低单片机本身的功耗提高其工作的 稳定性我们仍使用+ 12V 电源加限流电阻经单片机引脚控制的三极管开启点亮数码管。 所以选用 LED 共阳极发光二极管 BT311057,经限流电阻直接连到三极管的集电极上。 单片机高电平时,发光二极管不亮;低电平时点亮发光二极管。 发光二极管的发光亮度强弱由流过它的电流决定,通常 2mA 以上就能保证发光二极管可靠发光,它的正常工作电流为 8~10mA,发光二极管的压降为。 所以,选择发光二极管的正常工作电流为 10mA,则它的限流电阻可由以下公式计算: RL=( 2) V/10mA=900Ω,取限流电阻为 910Ω。 蜂鸣器用来作为报警指示,选用直流型 FM1212V 型号。 蜂鸣器工作电压为 +12V,工作电流在 20mA 以上。 单片机的驱动电流不够,不能直接驱动,必须外接功率驱动。 因此,选用 PNP 型三极管 9012 作为蜂鸣器的功率驱动,与基极相连的电阻取 2K 阻值,保证三极管工作在饱和状态。 继电器输出控制电路 继电器是感性元件,驱动电流较大,单片机不能直接驱动,必须经过电路的转换。 继电器选用 SRS12DCSL型号,用直流 +12V 供电。 三极管选用常用的 NPN 型 9013 作为继电器的功率开关。 为了起到隔离的作用,三 极管 9013 的基极通过光电耦合器进行隔离和驱动。 如图 6所示,当 为高电平时,光电耦合器不通,所以三极管 9013 也不通即继电器J 没有得电时可以控制被监测设备正常运转,当 为低电平时,光电耦合器导通,所以三极管 9013 也导通即继电器 J 得电时可以控制被监测设备紧急停止运转。 无锡职业技术学院毕业设计说明书 15 第五章 软件设计 软件设计流程图 概述 整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。 从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专 门用来协调各执行模块和操作者的关系。 二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。 每一个执行软件也就是一个小的功能执行模块。 这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。 各执行模块规划好后,就可以规划监控程序了。 首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。 主程序方案 主程序调用了 4个子程序,分别是数码管显示程序、键盘扫描以及按键处理程序、温度测试程序、中断控 制程序、单片机与 PC 机串口通讯程序。 键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及相关处理。 温度测试程序:对温度芯片送过来的数据进行处理,进行判断和显示。 数码管显示程序:向数码的显示送数,控制系统的显示部分。 中断控制程序:实现循环显示功能。 串口通讯程序:实现 PC 机与单片机通讯,将温度数据传送给 PC 机。 将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和 I/O 冲突即可。 程序应该尽可能多的使用调用指令代替跳转指令。 因为跳转指令 使得程序难以看懂各程序段之间的结构关系。 而调用指令则不同,调用指令使得程序结构清晰,无论是修改还是维护都比较方便。 将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块。 无锡职业技术学院毕业设计说明书 16 图 12 程序结构 图 主程序流程图如图 : 图 13 主程序流程图 无锡职业技术学院毕业设计说明书 17 各模块子程序的设计 下面对主要几个子程序的流程图做介绍: ( 1)温度测试子程序设计 见 附录一:温度测试子程序流程图 ( 2)中断控制程序设计 如下图: 中断入口2S到否定时器1重新赋值装下一个温度显示存储单元地址返回NY中断入口2S到否定时器1重新赋值装下一个温度显示存储单元地址返回NY 图 14 中断控制程序 流程图 ( 3)串行程序设计 本次通讯中,测控系统分位上位机和下位机之间的通信,系统中单片机负责数据采集、处理和控制,上位机进行现场可视化检测,通信协议采用半双工异步串行通信方式,通过RS232 的 RTS 信号进行收发转换,传输数据采用二进制数据,上位机与下位机之间采用主从式通讯。 本人采用的 VB 环境下 PC 机与单片机之间实现串行通讯的软硬件方案。 VB 是Microsoft 公司推出的 Windows 应用程序开发工具,因其具有界面友好,编程简便等优点而受到广泛的使用,而且 Visual Basic 版本带有专门实现串行通讯的 MSCOMM 控件。 MSComm控件串口具有完善的串口数据的发送和接收功能。 通过此控件, PC机可以利用串行口与其它设备实现轻松连接,简单高效地实现设备之间的通讯。 此控件的事件响应有两种处理方式。 事件驱动方式:由 MSComm控件的 OnComm事件捕获并处理通讯错误及事件;查询方式:通过检查 CommEvent属性的值来判断事件和错误。 无锡职业技术学院毕业设计说明书 18 1) MSComm 控件的主要属性和方法 a. CommPort:设置或返回串行端口号,其取值范围为 1— 99,缺省为 1 b. Setting:设置或返回串行端口的波特率、奇偶校验位、数据位数、停止位。 c. PortOpen:打开或关闭串行端口。 d. RThreshold:该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生 MSCommlOnComm 事件。 e. Input:从接收缓冲区移走一串字符。 f. Output:向发送缓冲区传送一字符串。 软件流程图如下: 开始自动接收数据子程序读 一个数据且存储回复 55 H接受字节数据是 联络信号 AAH。 返回8 个 字节到否。 NYNY开始自动接收数据子程序读 一个数据且存储回复接受字节数据是 联络信号。 返回个 字节到否。 图 15 PC 机软件 流程图 单片机程序流程图: 参数设定:通信 端口选择 COM1,波特率设定为 1200B/S =1 =“ 1200, n, 8, 1”。 无锡职业技术学院毕业设计说明书 19 START: MOV SP,60H MOV TMOD,20H MOV TH1,0E6H MOV TL1,0E6H。 1200B/S,晶振为 12MHZ MOV PCON,00H MOV SCON,50H SETB TR1 开始发联络信号 AAH发储存单元数据是 联络信号 55 H。 NY返回开始发联络信号发储存单元数据是 联络信号。 返回 图 16 单片机通讯程序 流程图 软件设计要求 ( 1)、整个程序延时地方较多, 因此设立了软件延时子程序和定时器中断两种延时方法 ( 2)、按钮检测中采用软件延时方法执行按键的去抖动 ( 3)、正常工作时:采用动态的显示方法显示当前温度,即高速循环点亮四位数码管中的每一位。 ( 4)、当转温度限时:秒循环显示。 1秒钟内,蜂鸣器报警 750ms,不报警 250ms,根据电路的实际连接情况,当蜂鸣器报警时的同时 LED 发光二极管也被点亮。 无锡职业技术学院毕业设计说明书 20 软件清单: 温度传感器 ds1820 的汇编程序。 ___________________________________________________________________________。 端口介绍: :加 :减 : DS1820 数据脚 P0:数码管 退出设定指示灯。 :数码管个位控制 :数码管十位控制 :数码管百位控制。 采用 AT89C51 单片机,晶振。 为温度测量芯片 DS18B20 的数据脚。 超限报警的标志位 0为允许 ,1 为禁止。 位地址 38H 是否检测到 DS18B20 标志位 ,1为检测到 ,0为检测不到。 位地址 39H 为温度过低标志位 ,1 为过低 ,0正常。 位地址 3AH 为温度过高标志位 ,1 为过高 ,0正常。 20H温度百位整数存放地址。 21H温度十位整数存放地址。 22H温度个位整数存放地址。 2FH温度超高预设值。 2EH温度过低预设值。 功能介绍:加减按键同。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。