基于51的温度报警器设计.docx
《基于51的温度报警器设计.docx》由会员分享,可在线阅读,更多相关《基于51的温度报警器设计.docx(29页珍藏版)》请在三一办公上搜索。
1、基于51的温度报警器设计目 录 1 概述. 2 1.1 研究背景 . 2 1.2 设计思想及基本功能 . 2 2 总体方案设计. 3 2.1 方案选取 . 3 2.2 系统框图 . 5 2.3 总体方案设计 . 6 3 硬件电路设计. 6 3.1 电源电路设计 . 6 3.2 晶振电路 . 7 3.3 复位电路 . 7 3.4 矩阵键盘电路 . 8 3.5 温度检测电路 . 9 3.6 液晶显示电路 . 10 3.7 蜂鸣器报警电路 . 11 4 系统软件设计. 12 4.1 主程序软件设计 . 12 4.2 键盘扫描程序设计 . 14 4.3 温度上下限设定程序设计 . 15 4.4 延时程
2、序设计 . 16 5系统调试 . 16 6总结 . 18 参考文献. 18 附录1 系统原理图 . 19 附录2 程序清单 . 20 1 1 概述 1.1 研究背景 温度作为一种最基本的环境参数,和人们的安全、生活,工农业生产有着紧密的联系,因此在某些场合对温度进行检测,并且在温度超过期待范围后进行报警便显得尤为重要,对能实现温度检测并报警的装置的设计和研发也就有了特别的意义。 单片机作为一种微控制器,由于具有体积小,质量轻,功耗低,价格便宜,可靠性高,功能强大等特点,已经进入人们生活,工业生产的各个领域,现在很难在某个领域看不到单片机的痕迹。在智能仪表领域,由于单片机的上述优点,用单片机作为
3、控制平台,结合不同类型的传感器,可以很容易地对温度,湿度,流量等物理量进行检测。 针对在日常生活和工业生产中对温度进行检测和监控的需求,本课题以AT89C51单片机为核心设计了一种温度报警器,它可以通过键盘对温度进行上下限设置,用液晶进行温度显示,并且在超出温度设定范围后发声报警。本设计也具有一定的扩展性,例如可以再加一个烟尘传感器和光电传感器,扩展为火灾报警器。 1.2 设计思想及基本功能 本课题对温度报警器进行设计时,在满足温度检测和报警功能的基础上,为了增加其应用的灵活性,采用了矩阵键盘电路,从而可以对温度报警范围进行设定,以适应对温度有检测需求的不同应用场合。为了增加人机交互性,采用了
4、功耗低的字符型液晶显示汉字和温度。 该温度报警器具有以下基本功能: 手动设定温度范围:该功能使用户可以根据不同场合设定温度报警范围,增强了该设计的应用性。 温度采集:采用了数字温度传感器对现场温度在-55到+125范围内的应用场合进行温度采集。 液晶显示:通过常用的液晶模块对当前温度传感器采集的温度进行显示。 蜂鸣器报警:当温度传感器采集的温度不在设定范围内时,使蜂鸣器发2 声,进行报警。 2 总体方案设计 2.1 方案选取 在用单片机作为控制核心进行仪器设计时,附加的外围模块选择范围是很宽的,在选用时要多加比较,从而做出最合理的设计。 温度采集模块选择 方案一:非数字型温度传感器pt100,
5、精度高,稳定性好,测量范围大; 方案二:数字型温度传感器DS18B20,体积小,精度高,抗干扰能力强,硬件开销低; 这两个方案都是在对温度进行检测时经常使用的,考虑到DS18B20的精度和测温范围对本设计已经足够,且在使用时不需要进行AD转换,硬件电路简单,所以本设计采用DS18B20作为温度检测模块。 显示模块选择 方案一:三位数码管显示,数码管是单片机设计中常见的显示模块,可以显示0至9十个数字和小数点,价格便宜。 方案二:字符型液晶模块显示,液晶模块显示清晰,功耗低,可以显示数字,汉字,英文字符和某些特殊符号,人机交互性好。 考虑到使用数码管显示要占用大量的IO口引脚,且没有液晶显示内容
6、丰富,所以本温度报警器采用液晶模块显示当前温度。 2.2 系统框图 系统框图如图2.1 3 键盘模块电源模块温度采集模块显示模块AT89C51报警模块复位模块时钟模块图2.1 系统框图 2.3 总体方案设计 本课题设计的温度报警器是在满足基本功能的基础上,尽可能的简化电路,增加人机交互性。在温度传感器选择时,为了避免大量的硬件设计,增加成本,选择了数字型温度传感器,从而不用在使用时进行AD转换,附加复杂的信号调理电路;在液晶模块选择时,考虑到单片机IO口的利用率,舍弃了需占用大量IO口并行传输的1602,选择了可以进行串行传输的12864;在报警方式选择时,舍弃了液晶显示闪烁报警,选择了更能引
7、起用户注意的蜂鸣器发声报警方式。 3 硬件电路设计 3.1 电源电路设计 51单片机,温度传感器DS18B20,12864液晶模块所需正常的工作电压是5V,因此设计的电源应能够提供5V直流电,图3.1是设计的电源电路图。在该电源电路中使用了三端集成稳压芯片L M7805,可以输出5V直流电压。 4 D1-D4T14220V9VTRANS1BRIDGE1U4UA780521VinVCC+5V3C40.33uFC50.1uF图3.1 电源电路图 3.2 晶振电路 电路中的晶振就是石英晶体震荡器。石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器常用来产生基准频率的。此外它
8、还可以产生振荡电流,向单片机发出时钟信号。 图3.2是设计的单片机晶振电路。片内电路与片外器件构成一个时钟产生电路,晶振频率一般多在1.2MHz24MHz之间选取。C1、C2是反馈电容,其值在20pF100pF之间选取,一般为30pF左右。本电路选用的电容为33pF,晶振频率为12MHz。时钟周期为1us。 Y1C133PC233P12MHZX1X2图3.2 单片机晶振电路 3.3 复位电路 复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚上加大于2个机器周期的高电平。复位后的单片机地址初始化为0000H,然后单片机继续从0000H单元开始执行程序。单片机复位有上电复位和
9、手动复位5 两种方式,图3.3所示的复位电路可以实现上电复位和手动复位两种基本功能。 RESETVCCRESETR10.2KC322uFR21K图3.3 复位电路图 3.4 矩阵键盘电路 由于采用单个按键的方式会提高设计的复杂性,且占用IO口较多,本设计采用了4*4矩阵键盘,矩阵键盘的应用可以获取16个键值,降低了设计难度,节约了单片机IO口,提高了单片机IO口的利用率。 4*4矩阵键盘电路在本温度报警器设计中起到的作用是设定报警温度的上下限,它的四条行线和四条列线占用了单片机的P1口,如图3.4所示。其中S0至S9用于设定温度值,S10按下则启动设定温度下限,S11按下则启动设定温度上限。
10、6 S1S2S3S4P10P11P12P13P14P15P16P17S5S6S7S8S9S0S10S11S12S13S14S15 图3.4 矩阵键盘电路图 3.5 温度检测电路 温度检测电路采用的是单线数字型温度传感器DS18B20,其外形如图3.5所示。DS18B20独特的单总线接口使其仅通过一条数据线就可以完成数据传输。它的供电电压在3V至5.5V之间,感温范围在-55摄氏度至+125摄氏度之间,9至12位可调分辨率。 DS18B20有3条输出引线,分别接电源,地,单片机引脚,由于在正常工作时,该传感器需要约1mA的驱动电流,所以硬件电路需要在接电源和地的两条引线之间接一个约5K的电阻,硬
11、件电路图如图3.6所示 图3.5 DS18B20实物图 7 U2VCCDATAGND DS18B20VCC123R44.7KP06图3.6 温度检测电路 3.6 液晶显示电路 本课题设计的温度报警器显示模块采用的是字符型液晶QC12864B,带中文字库的128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192 个16*16 点汉字,和128 个16*8 点ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616
12、点 阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。 本设计采用的是该液晶的串行方式,其串行方式引脚接法如表1所示,硬件电路图如图3.7所示。 表1:QC12864B串行方式引脚接线图 管脚号 1 2 3 4 5 6 15 名称 VSS VDD Vo CS SID CLK PSB LEVEL 0V +5V - H/L H/L H/L L 功能 电源地 电源正 对比度调整 片选,高电平有效 串行数据输入 串行同步时钟,上升沿读取SID数据
13、 L:串行方式 8 19 20 A K VDD VSS 背光源电压+5V 背光源负端0V VCCR510K12345615VCC1920U3GNDVCCVoRSR/WEPSBBLABLKQC12864BP03P04P05图3.7 液晶显示电路 3.7 蜂鸣器报警电路 当温度超过设定范围时,采用蜂鸣器模块电路报警,电路中跳线帽的作用是可以人为地接通或断开该电路,电阻起到限流的作用。电路工作原理是当温度超出温度设定范围时,通过程序编程给P0口第7个引脚赋为低电平,三极管导通, 蜂鸣器发声。 VCCJP1JUMPERBUZZERR31KQ1PNPP079 图3.8 蜂鸣器报警电路 4 系统软件设计
14、系统软件设计主要包括键盘扫描子程序,温度上下限设定子程序,延时子程序等几部分构成。本章节系统的介绍了温度报警器的主程序和各主要功能子程序的设计流程,具体的程序代码见附录2。 4.1 主程序软件设计 主程序构成无限循环,主要完成相关模块初始化,温度采集,设定温度上下限,液晶显示,温度超出设定范围时蜂鸣器报警等功能,主程序的流程图如图4.1所示。 10 开始编写相关子函数主函数调用液晶初始化函数主函数调用温度采集函数主函数调用温度上下限函数否采集温度在设定范围是LCD显示温度LCD显示温度蜂鸣器报警图4.1 主程序流程图 程序首先进行相关宏定义,定义变量和数组,编写所需要的子函数,然后在主函数中调
15、用液晶初始化子函数对液晶进行初始化,并在液晶第一行显示温度11 显示四个汉字,调用温度采集函数对当前温度进行采集,调用温度上下限设定子函数设定适合现场的温度范围,然后将采集到的温度值同设定的温度上下限进行比较。若在设定范围内,则调用液晶显示函数显示当前温度并返回到温度采集子函数调用处;若不在设定范围内,则调用液晶显示函数显示当前温度,使蜂鸣器报警,程序返回温度采集子函数调用处。 4.2 键盘扫描程序设计 开始四行中只将第一行设为低电平否检测是否有键按下是延时5ms否检测是否有键按下是读IO口电平switch语句获取键值松手检测按上述方法扫描第二行按上述方法扫描第三行按上述方法扫描第四行结束图4
16、.2 键盘扫描程序流程图 该键盘扫描程序采用行扫描的方式,从第一行扫描到第四行,首先将第一行设为低电平,其余行为高电平,通过读取P1口高四位电平情况判断是否有键按下,若无键按下则扫描下一行,若有键按下,延时5ms消抖,再次判断是否有12 键按下,若无键按下则扫描下一行,若有键按下则通过switch语句获取相应键值,松手检测后扫描下一行。 4.3 温度上下限设定子程序设计 开始调用键盘扫描函数否键值是否为10是for循环执行三次获得三个键值计算温度下限调用键盘扫描函数是 键值是否为11否for循环执行三次获得三个键值计算温度上限结束图4.3 温度上下限设定子程序流程图 该程序功能是设定温度上下限
17、,程序开始,调用键盘扫描函数获取一个键值,通过第一个if语句判断该键值是否为10,若是则通过for循环执行三次依次获取三个键值并赋给数组b ,从而计算出温度下限l,然后再次调用键盘扫描函数通13 过第二个if语句进行所得键值是否为11的判断;在第一个if语句判断中若键值不为10,则通过第二个if语句进行所得键值是否为11的判断。在第二个if语句进行所得键值是否为11的判断中,若键值为11,则通过for循环执行三次依次获取三个键值并赋给数组c ,从而计算出温度上限h,然后程序结束;若不为11,则程序结束。 4.4 延时子程序设计 开始i=0是ix否跳出for循环执行空指令结束i+1 图4.4 延
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 温度 报警器 设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3384822.html