智能温度报警系统的软件设计毕业论文及程序(编辑修改稿)内容摘要:
和 MSSP 模块等其他 模块。 其常用的 PDIP40 引脚排列如图 [5]。 图 脚的 PIC16F877 引脚全功能图 设计中的应用 本次设计主要用到 PIC16F877 芯片外围功能模块有 RA、 RB、 RC 和 RD 端口, RA 和RD 端口用于与 液晶显示器相连, RB 端口作为按键输入端, RC端口用于与报警模块、温度模块和时钟模块相连。 最小系统的仿真电路的复位方式使用的是人工复位, PIC16F877的工作电压为 到。 时钟电路本应该使用的是 XT 模式下用震荡频率为 4MHz 的XXX:智能温度报警系统的软件设计 10 石英晶体和两个电容构成,但因为是仿真电路,所以可以不用画出,可直接在加载程序时设定时钟频率。 因此本设计中的最小系统模块的仿真电路如下图。 图 最小系统模块的仿真电路 液晶显示模块仿真电路 LCD1602 简介 LCD1602 液晶显示器是一种功耗低、体积小以及具有数字式接口等优点工业字符型液晶,他能够显示出 160 个不同的字符图形包括字母、数字、符号等 [6]。 LCD1602 液晶显示器分为两行显示,每一行能够显示 16个字符图形,一共能显示 32个字符。 它共有16 个引脚,其第 15和第 16引脚为空脚不需要链接,第 7到第 14 引脚为双向数据引脚。 LCD1602 在设计中的应用 在仿真电路中 LCD1602 液晶显示器的第 1脚接地,第 2脚接 5V 正电源,第 3 脚空置,第 4 脚、第 5脚和第 6脚分别与 PIC16F877 的 RA RA2 和 RA3 引脚相连。 第 7到第 14 引脚分别与 PIC16F877 的 RD 端口引脚按顺序相连。 其连接图如图。 第三章 仿真电路设计 11 温度采集模块仿真电路 本设计采用的是半导体数字式温度传感器 DS18B20,它属于接触式温度传感器能测量的温度范围 为 55℃~ +125℃。 其内部就能完成 A/D 转换,可根据用户自己定义转为9 位到 12 位的精度,所以不需要利用 PIC16F877 的 ACD 功能,可直接接收温度传感器DS18B20采集转换的数据,再经过程序转为十进制数在 LCD1602液晶显示器上输出显示。 温度传感器 DS18B20 的数据输入和输出都是通过其数据总线 (DQ)引脚传输,所以在本设计中 DQ 引脚是与 PIC16F877 的 RC4 引脚相连。 VCC 接入的是寄生电源,其具体的仿真电路设计如下图 所示。 图 DS18B20 仿真电路连接图 时钟模块仿真电路 DS1302 时钟芯片 能够提供 年月日、时分秒和星期 BCD 码数据 , 而且它的时间能够自动计时增加,能实现自动判断润平年同时 可自动调整 年月日。 对于年 DS1302 时钟芯片 只能从 00 年到 99 年,存储年的寄存器只是一个 8位的字节,所以它保存的 BCD 码只能表示两位数。 月、日、时、分、秒和星期也只有一个与自己对应的数据寄存器,都是以 BCD 码的形式来保存数据。 DS1302 时钟芯片 除了这些寄存器之外还有其他 5 个寄存器。 本次设计是利用 DS1302 时钟芯片 的简单串行接口跟 PIC16F877 单片机进行数据通信,实现课题中增加的实时时钟内容。 在设计仿真电路中为 DS1302 时钟芯片 供电的主电源和后备电源都使用同一个电源供电,其工作电压为 到。 芯片的振荡源使用 的是外接一个 的晶振 [7]。 实时时钟模块的仿真电路的具体连接如下图图 所示。 图 XXX:智能温度报警系统的软件设计 12 图 时钟模块仿真电路连接图 按键控制模块仿真电路 按键模块的设计主要是用 PIC16F877 单片机 RB口的弱上拉功能来判断按键是否有下。 在设计中采用了 5个按键开关来实现设计的控制模块功能,每个开关所控制的功能分别是:进入 /退出修改功能、选择所修改参数功能、加的功能、减的功能和屏幕切换功能。 具体的仿真电路如图 所示。 图 按键控制模块仿真电路 报警模块仿真电路 本设计的报警模块采用的是蜂鸣器和发光二极管共同构成,当系统判断出温度传感器所采集的温度超过上下限温度时,蜂鸣器就能发出嘀嘀地警报声音,之后发光二极管发出闪烁的红色 [8]。 通过这种形式的循环报警,来提醒周围的人温度超过了限定,需要采取降温措施来降低温度。 直到温度降低到警戒线内,报警信号才会停止。 报警模块的仿真电路连接图如图 所示。 第三章 仿真电路设计 13 图 报警模块的仿真电路 总体仿真电路 设计图 图 总体仿真电路连接图 XXX:智能温度报警系统的软件设计 14 第四章 系统软件设计 15 第四章 系统软件设计 编程前的准备 在开始编写代码之前,我们要先确定编程所需的数据类型和各个数据类型所占用的字节长度以及它们的值域是多少。 因为本设计所用的主控芯片是 PIC16F877,它是一款8 位的单片机,所以在编写程序时所用的数据类型、数据长度和值域如表 所示。 表 设计所需的数据类型表 数据类型 数据长度(位 数) 值域 char 8 128~127 int 16 32768~32767 long int 32 2147483648~2147483647 unsigned char 8 0~255 unsigned int 16 0~65535 unsigned long int 32 0~4294967295 系统主程序设计 在本设计的软件系统主函数除了对 PIC16F877 单片机中所要用到的端口,以及 LCD液晶显示器进行初始化外,还包括需要调用的 8 个相应的子程序。 这些子程序分别是:温度采集和转化子程序、 DS1302 初始化子程序、判断 温度报警子程序、切屏控制功能子程序、修改设定功能子程序、实时温度显示子程序、上下限温度显示子程序、实时时钟显示子程序。 对单片机中所要用到端口的具体初始化内容为:设置 RA 口全部为普通数字 IO 端口且 A口的方向为输出,用于控制液晶显示器的读写功能;设置 RB 端口为弱上拉功能,用于实现按键控制模块与单片机的功能联系;定义 RC 口的 RC4 引脚作输入口,其它作为为输出口,用于实现单片机与温度采集模块、实时时钟模块和报警模块的功能联系。 对于用到的子程序:温度采集和转化子程序用于启动温度传感器采集外界温 度并将温度值送给单片机用于下一步处理; DS1302 初始化子程序是用于初始化 DS1302 的日历和时钟内容;判断温度报警子程序是实现判断温度是否超过上下限,若超过则会掉用与报警有关的函数实现报警;切屏控制功能子程序和修改设定功能子程序都属于系统的控制功能模块,用于对系统的控制;实时温度显示子程序和上下限温度显示子程序以及实时时钟显示子程序,都是处理需要显示的数据,并显示在液晶显示器的相应位置。 整个软件系统的主函数通过如图 的循环结构,实现了各个模块在设计中的功能。 XXX:智能温度报警系统的软件设计 16 图 系统主程序流程图 液晶显示程序设计 设计液晶显示相关程序之前,我们先要了解 LCD1602 的控制指令。 其具体的指令如图 所示。 第四章 系统软件设计 17 图 LCD1602 控制命令 其中, 指令 3是通过高低电平来设置 光标和显示模式 I/D; 指令 4是 高 电平工作 ,低 电平不工作; 指令 5的 D3位为 1时移动文字, 为 0 时移动光标。 因此根据 LCD1602 控制命令, 在主程序的 LCD 初始化语句为: PORTD=1。 //清屏 ENABLE()。 //LCD写入控制命令的子程序 PORTD=0x38。 //8 位 2 行 5x7 点阵 ENABLE()。 PORTD=0x0c。 //显示器开、光标关、闪烁关 ENABLE()。 PORTD=0x06。 //文字不动,光标自动右移 ENABLE()。 因为 LCD1602 只能显示 32 个字符,而需要显示的内容又比较多,又要考虑到显示字符位置的合理性和美观性,所以液晶显示的程序内容分为两大部分。 一部分用于显示与温度有关的内容,另一部分用于显示与 DS1302 有关的内容,它们通过按键控制模块来控制显示 内容。 显示与温度有关的内容时 , LCD 的显示格式如下图图 所示,其中以 H 开头的数字为上限温度 值 , L 开头的数字为 下限温度值。 第一行为温度传感器采集到的温度值,这 里 只显 示 到十 分 位。 调用 显 示这 些 内容 的子 函 数为 display_18b20() 和display_Temperature(),程序流程图分别如图 和 所示。 图 显示与温度有关的内容 XXX:智能温度报警系统的软件设计 18 图 display_18b20()程 序流程图 图 display_Temperature()程序流程图 显示与 DS1302 有关的内容时, LCD 的显示格式如下图图 所示。 其调用子函数为 display_ds1302(),其程序流程图如图 所示。 第四章 系统软件设计 19 图 显示与 DS1302 有关的内容 图 display_ds1302()程序流程图 温度采集和转换程序设计 完成温度采集和转换程序设计之前 ,要先了解 DS18B20 的复位时序图和读写时序图。 在其可工作的时序内编写程序,就能正确的实现对 DS18B20 读数据和写命令,驱动DS18B20 工作。 其各个时序图如下图 、 、 所示。 图 DS18B20 复位时序图 XXX:智能温度报警系统的软件设计 20 图 DS18B20 写 0 和写 1时序图 图 DS18B20 读 0和读 1 时序图 因此,在本设计中的对 DS18B20 的复位程序具体如下,而对 DS18B20 的读 写程序具体内容见附录源程序的 read_byte()和 write_byte()函数。 DS18B20 复位程序 : void reset()// { char presence=1。 while(presence) { DQ_HIGH()。 //拉高电平 delay(1)。 //稍作延时 DQ_LOW()。 //主机拉至低电平 delay(63)。 //延时 773us DQ_HIGH()。 //释放总线等电阻拉高总线 , delay(2)。 //延时 41us if(DQ==0) { presence=0。 //接收到应答信号 delay(40)。 //延时 496us DQ_HIGH()。 //再次拉高电,释放总线平。 } 第四章 系统软件设计 21 else presence=0。 //没有接收到应答信号,继续复位 } } 本设计中 DS18B20 采用的是出厂配置位为 12 位,即将采集到的温度转换为 12 位的数字信号,此时的温度分辨率为 ℃,转化温度的最大时间需要 750ms。 其存储格式如下图 所示,其中高 8位的前 5位即 bit15 到 bit10 表 示符号位。 如果 S=0 则温度大于 0,否则温度小于 0。 温度大于 0时,只要将数值乘于 就能得到实际的温度值 [9]。 小于 0时,就需要先取反加一,再按大于零的情况处理。 图 温度值存储格式 下表 是 DS18B20 的部分温度值和与之对应的数字输出内容。 由表中的 二进制数据可以看出数据的第十一位到第五位表示温度值的整数部分,第四位表示温度的小数部分。 表 温度值和与。智能温度报警系统的软件设计毕业论文及程序(编辑修改稿)
相关推荐
IRQ4(void) __attribute__ ((ISR))。 void IRQ4(void) { if(*P_INT_Ctrl amp。 C_IRQ4_1KHz) { *P_INT_Clear |=C_IRQ4_1KHz。 dd++。 if(dd=100) //100ms检测一次 { dd=0。 biya()。 } 9 } if(*P_INT_Ctrl amp。 C_IRQ4_2KHz)
............................................. 27 图 31 水温调节仿真图 ............................................................................................ 27 图 32 按确定键后的水温调节界面 .......................
v+5v+5v+5vHREFFODDVSYNCPWDNGNDGNDGNDGNDGNDVTO+5VRSTSDASCLY0Y1Y2Y3Y4Y5Y6Y7PCLKVACAP2 VACAP3VACAP1FREXMULTAGCENIICBASUBAGNDSGNDADGNDDEGNDDOGNDDGND1 23 45 67 89 1011 1213 1415 1617 1819 2021 2223
码、单位名称、火情级别以及报警时间等 ),同时产生声光报警信号,并按事先预留的电话号 码自动拨号通知单位有关负责人。 消防指挥中心根据接收到的火警信息,立即在消防信息数据库中查询单位位置、周围道路、交通、水源情况等基本信息,根据所获得的信息迅速确定最佳救火方案,通过网络将出警命令直接下达各消防中队。 6 小结 随着科学技术水平迅猛发展,安全防范技术也得到迅速发展。
建立连接 ................................................. 21 建立变量表 .............................................. 22 组态画面 .................................................. 22 下载调试 .....................
或设置,使得软件编程相对简单。 为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。 当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。 而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。 ⑵ 方案二 采用了单片机( STCAT89C52)系统为核心,用温度采集芯片 DS18B20 来采集温度 [4~5],用