摘要:为了检测现场温度,并直观反映其变化趋势,设计了基于STC89C52单片机的温度检测系统。利用数字温度传感器DS18B20采集温度信号,该信号送入STC89C52单片机处理,后由液晶显示器LCD12864(ST7920)显示温度值,并绘制出温度变化曲线。实测结果表明,系统可靠性、测试精度及温度趋势曲线绘制达到设计要求。

关键词:STC89C52单片机;DS18B20;LCD12864(ST7920);温度检测系统

0 引言在某些检测领域将被测温度数字化显示还不足以完全反应其变化过程和变化规律,而绘制出趋势曲线是有效方法之一。其中一种解决方案是将单片机作为下位机采样现场温度,将其上传给PC机绘制曲线。有鉴于点阵型图形液晶显示器成本逐年降低、显示容量越来越大、工耗越来越小、而且可以方便地与单片机接口,本文设计了一种温度检测系统。利用DS18B20采集温度,LCD12864(ST7920)液晶显示器直接与STC8 9C52单片机接口,在LCD12864(ST7920)上显示被测温度和温度曲线。

1 系统组成系统主要由单片机STC89C52,温度传感器DS18B20,点阵型液晶显示器LCD12864(ST7920),键盘电路和报警电路组成(如图1所示)。

STC89C52用于实现算法、是整个系统的主控核心;LCD12864用于显示实测温度、温度曲线、时间和日期等参数;DS18B20用于温度采集;键盘电路用于设定相关参数(上下限温度值、时间);报警电路用于温度超限报警。

2 主要硬件设计

2. 1 STC89C52单片机系统STC89C52单片机系统由单片机,时钟电路,复位电路组成。单片机系统如图2所示。

STC89C52单片机具有抗干扰性能强、速度快、功耗低和指令代码完全兼容8051单片机等特点。其主要参数为:时钟频率最高可达80MHz;内置8 KB的FLASH ROM,512 B的RAM和2 KB的E2PROM;3个16位定时器/计数器,一个6向量2级中断结构。

STC89C52的P0口作为普通I/O口使用,与12864液晶显示器DB0~DB7数据口相连,根据P0口硬件特点在其外部必须接上上拉电阻。

时钟电路采用内部时钟方式,为单片机系统提供时钟信号。

复位电路采用上电自动复位和按键复位的方式,只要保证加到RST引脚的高电平持续时间大于2个机器周期就能使单片机正常复位。

2.2 DS18B20数字测温电路测温电路的传感器选用DS18B20数字式温度传感器,它具有特点为:可通过编程的方式实现9~12位的数字温度直读;测温范围为-55~125℃,最高12位分辨率,精度可达±0.5℃;可设置超限温度报警,并有搜索命令识别报警条件;单总线接口,仅需一条输入输出线(DQ)就能与单片机(P2.0)进行通信。DS18B20数字测温电路如图3所示。

2.3 LCD12864显示电路显示电路是人机交互的核心,本系统需同时显示实测温度、上限温度、温度曲线,时间和日期,信息量大,故选择点降图形液晶显示器LCD12864(ST7920)。

LCD12864(ST7920)具有特性为:4位/8位并行、2线或3线串行等多种接口方式;显示分辨率为128x64,内置8 192个16x16点汉字,和128个16×8点ASCII字符集;接口方式灵活、简单,可方便的构成中英文式人机交互图形界面。LCD12864与单片机接口电路如图4所示。

LCD12864(ST7920)由DDRAM(显示数据RAM,CGROM(字型产生ROM)和CGRAM(自定义字型产生RAM)和GDRAM(绘图RAM)等组成,实现显示字符和图形的功能。

DDRAM模块提供64×2个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示HCGROM字型(半角)、CGRAM字型及CGROM的中文字型3种字型。液晶显示器屏幕坐标(AC地址)与DDRAM地址的对应关系如表1所示。

CGRAM模块提供4组16×16点的自定义图像空间,可以将内部字型没有提供的图像字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。

GDRAM提供64×32个字节的空间,实际可控制128×64点阵的二维绘图缓冲空间。GDRAM的二维地址与液晶屏幕坐标的对应关系如图5所示。

2.4 其他电路

2.4.1 报警电路报警电路由PNP三极管(9012),蜂鸣器及单片机的控制引脚(P21)组成。当温度超限,P21引脚输出一定频率的信号,触发蜂鸣器工作从而实现报警。报警电路如图6所示。

2.4.2 键盘电路键盘电路采用中断和查询相结合的方式设定温度和调整时间。系统由4个按键组成,分别对应温度/时间设定的功能选择,数字增加和减少的调节。当有键按下时,负跳变引起INT1中断,再查询具体按键,并执行相应功能。这种结构既扩充了外部中断源,减少了CPU的工作负担,又能对按键进行实时处理。键盘电路如图7所示。

2.4.3 电源电路LM7805三端集成稳压器和滤波电容组成电源电路,为整个系统提供稳定的工作电压。电源电路如图8所示。

3 软件设计    主程序流程如图9所示。

3.1 液晶显示器函数液晶显示器的读/写数据和数字/字符、温度显示、曲线绘制和时钟显示等功能由驱动函数和界面显示函数完成。

驱动函数包括:

界面显示函数包括:

3.2 温度采集函数启动DS18B20温度转换和数据传输必须严格按照其时序进行,温度采集函数包括:

3.3 主函数主函数包括初始化液晶显示器,定时/计数器等模块,而后调用温度采集,界面显示等函数。

每50 ms采样一次(即每50 ms调用上述温度采集函数),共采样6次,利用去极值平均值滤波法得到实测温度(采样的6个数据排序后去掉最大值和最小值再平均),显示实测温度,绘制曲线,并判断是否超限。

4 实验系统实际运行结果如图10~图13所示。

左边显示包括:

(1)“12/06/21”为阳历日期,格式为年/月/日。

(2)“16:59:09”为数字时钟,格式为小时:分钟:秒。

(3)“S:30℃”代表设定的上限温度;“”代表上限温度与实测温度的大小关系。

(4)“46.84℃”,“26.35℃”,“31.23℃”,“40.99℃”等代表实测温度。

图中右边为温度曲线和上限温度线。

时间和温度上限值可通过程序或键盘设定。

实测温度的误差范围(单位:℃)在(-0.5~0.5)/100内,绘制的温度曲线能够直观地反映其变化情况。

5 结论利用点阵型液晶显示器和单片机直接接口显示被测温度和绘制曲线,可以更直观地反映其变化趋势,为后续研究其变化规律奠定基础。实际运行表明,系统测试精度、曲线绘制、超限报警等功能达到设计要求,整个电路简单实用,稳定可靠。

温度检测单片机c语言程序设计,基于STC89C52单片机的温度检测系统设计相关推荐

  1. 烟雾检测电路c语言程序,基于51单片机火灾报警器系统烟雾检测温度检测设计(原理图+程序仿真+论文)...

    课题题目基于单片机的火灾自动报警系统 课题的目的.意义以及和本课题有关的国内外现状分析:1.目的:本系统以单片机为主控单元,能够及时监测到系统故障和环境中有无火灾,火灾一旦发生将实现声光报警,并采取有 ...

  2. c51单片机时钟c语言程序设计,基于51单片机的电子时钟设计..doc

    -- I -- - - I -- 设计题目: 基于 51 单片机的电子时钟设计 摘要 单片机,是集 CPU ,RAM ,ROM ,定时器,计数器和多种接口于一体的微控制器.自 20 世纪 70 年代问 ...

  3. 单片机万年历c语言程序设计,基于AT89C51单片机的多功能

    基于AT89C51单片机的多功能电子万年历的设计(附程序)(12000字) AT89C51 SCM-BASED ELCTRONIC DESIGN CALENDAR 摘要 本文介绍了基于AT89C51单 ...

  4. 单片机万年历c语言程序设计,基于AT89C51单片机的多功能电子万年历的设计(附程序)...

    基于AT89C51单片机的多功能电子万年历的设计(附程序)(12000字) AT89C51 SCM-BASED ELCTRONIC DESIGN CALENDAR 摘要 本文介绍了基于AT89C51单 ...

  5. EEPW单片机C语言程序设计,基于CH340T的STC89C52RC编程器设计

    2.3 系统原理图 原理图如图2 所示. 图中,USB 接口P1 除用于数据传输外,还经过LM7805 稳压后为CH340T 芯片和单片机和其他部件供电,当使用5V 工作电压时,CH340 芯片的VC ...

  6. 单片机6路抢答器c语言程序设计,基于51单片机六路抢答器DIY电子设计(原理图、源程序、PCB等)...

    主要功能: 1.采用4位数码管设计. 2.下排按键一一对应六位选手. 3.上排三个按键,从左到右依次为:开始.暂停.复位. 4.操作流程:上电后数码管显示"----"当主持人按下& ...

  7. 压力传感器与51单片机C语言程序,基于51单片机的智能压力传感器设计

    图1 硅压力传感器的电路图 功能多是智能压力传感器的重要特点,可采用两种方式执行: ①所选功能的指令由用户通过键盘发出:② 自动式,已编制好的数据采集与处理程序工作由内部功能控制程序协调,或者外部信号 ...

  8. C语言智能窗帘编码,基于STC89C52单片机智能窗帘控制系统.doc

    基于STC89C52单片机智能窗帘控制系统 基于STC89C52单片机智能窗帘控制系统 [摘要] 本设计以STC89C52单片机为主控芯片,接收并处理BH1750FVI光照传感器的光强信号.DS18B ...

  9. 郭惠,吴迅.单片机c语言程序设计完全自学手册出版时间,基于单片机的多路温度采集器设计...

    时永宝 摘 要:伴随着时代的快速发展,智能将会成为今后的主流方向,按照设定好的思路,在特定的环境里自主工作,不需要人为的操控.在本次研究中,以STC89C51单片机作为核心控制器,用DS18B20温度 ...

  10. 温度警报c语言,基于STC89C52单片机温度报警器.doc

    基于STC89C52单片机温度报警器 摘 要 温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的测试与控制得到更快 ...

最新文章

  1. 被称为“第五代 AI”的神经形态计算进展到哪一步了?
  2. [android] setOnTouchEvent 设置返回值为true 和 false的区别
  3. Part8 多态性 8.2虚函数
  4. dw自动滚动图片_3分钟搞定图片懒加载
  5. 将阿拉伯数字转换成中文大写的好算法
  6. 稳压电源的设计与制作_直流稳压电源设计
  7. 配置centos7下的Apache服务
  8. 2015最新安卓例子自定义控件等分类源码免费下载
  9. 电子计算机为什么123安不出来,方正软件常见问题及其解决办法-精.doc
  10. 微信小程序前台开发——实现登录,底部导航栏,顶部导航栏(分类显示)
  11. mysql订单迁移es_京东到家订单中心系统mysql到es的转化之路
  12. ios微信抓https包提示证书安全警告解决办法
  13. Building Maintainable Software-java篇之Couple Architecture Components Loosely
  14. 2022-雨课堂-工程伦理期末考试答案
  15. 【patch】x64dbg_2018_10_11导出的内存补丁文件内容如何理解地址偏移(va内存,Rva相对,Fva文件)
  16. 参加面试除了带简历外还要带哪些去面试
  17. 【已解决】海康威视MFC综合示例(C++ 官网Demo)采用VS2019编译异常如何解决?
  18. T-Pot 19.03蜜罐的安装记录
  19. 吐血推荐珍藏的IDEA插件
  20. Typescript面向对象---上篇

热门文章

  1. 基于java网上商城源码设计
  2. Java 编码规范10(单元测试)
  3. 谷歌卫星地图下载器与万能地图下载器功能比较
  4. odoo 14 手册 客户 报价单 销售订单
  5. 基于ssm的城市公交查询系统的设计与实现(附源码)
  6. matlab拟合不显示直线,新人求助一下MATLAB直线拟合问题
  7. java飞机大战强化版_java飞机大战升级版源码(全彩,背景音乐,各种音效,不同僚机,子弹特效以及技能系统)...
  8. 【实用软件】蓝奏云批量下载工具
  9. 读书笔记之大数据采集与预处理
  10. 大一计算机引论知识点,计算机引论知识点2015.doc