DS18B20温度测控-电子系统设计实践报告 - 图文

更新时间:2023-09-14 01:59:01 阅读量: 教学研究 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电子系统设计实践报告

所用仪器、仪表目录

DS18B20温度传感器,STC89C52单片机,LCD1602液晶显示器,蜂鸣器

实践设计任务

实践内容: 1、 基本功能:

1) 系统可以读取DS18B20的温度值; 2) 当测得的温度值超过预设的温度值时,会进行报警显示,蜂鸣器发出声音,1个红色LED

灯以1秒的间隔闪烁。 2、 扩展功能:

1) 可以同时读取2个DS18B20的温度值; 2) 采用液晶显示屏显示温度值;

3) 可以分别手动设定2个DS18B20的报警温度值,当实际测得的温度超过报警温度

时,会对超限的传感器进行报警显示;

1、 报警时采用播放音乐的方式。目的

通过基于AT89S51芯片和DS18B20温度传感器控制温度,熟悉芯片的使用,温度传感器的功能,实验电路板的焊接,LCD显示的使用,C51语言的设计。

方案设计与论证

单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。

DS18b20温度传感器温度的精确度高达0.1度,可以满足从-55摄氏度到+125摄氏度测量范围,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机可以直接从中读出数据转换成十进制就是温度,使用方便。

单片机从温度传感器读取温度后,把数据进行处理,转换成LCD显示的数据和控制信息,然后传送到LCD上面显示。 整体模块设整体模块设计

各模块的设计:

电路图设计文件

软件设计

软件设计流程图

程序附在最后

测试方法与数据分析

(1) 时间:10年8月31 日20:20

地点:18号楼320宿舍 测试对象:室内温度 设定警报温度:33℃

室内温度一直都保持在31℃,这时显示器准确的显示了当前的室内温度,然后自己用手捂热传感器,温度便会慢慢上升,当温度超过33摄氏度时,蜂鸣器会发出报警声,LED灯也会开始一闪一闪。

(2)时间1 0年9月1日9:20 地点: 物信楼实验室 测试对象:室内温度 设定警报温度:28℃

实验室的温度为30摄氏度左右,把传感器放在空调的冷风下吹,温度会迅速的降低,然后把传感器远离空调,温度会缓慢上升,当显示温度超过28摄氏度时,LED灯开始闪动,蜂鸣器也开始叫。

实践结论与实践体会及建设性建议

实验中最困难的,我想莫过于程序的编写。由于以前做实验很少用C语言编写程序,所以在编写程序的过程中,遇到了很多的问题,好在两个人一组的可以互相讨论,实践。同时还可以询问有类似经历的同学,在多方面的努力下,最终还是把程序写出来了。而在硬件上也遇到了一些小问题,主要是蜂鸣器的问题,一开始可能电路接了有问题,一直没有达到预期的报警的目的。后来重接之后就得以解决。

经过这两三天时间的研究和实践,终于做出了这个项目。在制作的过程中,我们感到了自己的各方面的能力上都有不足,但通过实践,增强了自己的动手能力,学到很多在课堂上学不到的知识。通过自己动手实践,在实践中发现问题,分析问题,最后达到解决问题的目的。

附录(实验程序)

/****************************************************************************** /*****************************************************************************/ #include #include #define uint unsigned int #define uchar unsigned char

sbit DS1302_CLK = P2^0; //实时时钟时钟线引脚 sbit DS1302_IO = P2^1; //实时时钟数据线引脚 sbit DS1302_RST = P2^2; //实时时钟复位线引脚 sbit wireless_1 = P3^4; sbit wireless_2 = P3^5; sbit wireless_3 = P3^6; sbit wireless_4 = P3^7; sbit ACC0 = ACC^0; sbit ACC7 = ACC^7;

char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; //秒,分,时到日,月,年位闪的计数

sbit Set = P3^0; //模式切换键 sbit Up = P3^1; //加法按钮 sbit Down = P3^2; //减法按钮

sbit out = P3^3; //立刻跳出调整模式按钮 sbit DQ = P2^3; //温度传送数据IO口 char done,count,temp,flag,up_flag,down_flag; int temp_value; //温度值 uchar TempBuffer[5],week_value[2]; void show_time(); //液晶显示程序

/***********1602液晶显示部分子程序****************/

//Port Definitions*************************************** sbit LcdRs sbit LcdRw

= P2^5; = P2^6;

//P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口

sbit LcdEn = P2^7; sfr DBPort = 0x80;

/内部等待函数*********************************************** unsigned char LCD_Wait(void) {

LcdRs=0;

本文来源:https://www.bwwdw.com/article/9vdh.html

Top