2022年单片机课程设计-——多路温度检测及报警系统.pdf

上传人:Che****ry 文档编号:14514548 上传时间:2022-05-05 格式:PDF 页数:26 大小:976.04KB
返回 下载 相关 举报
2022年单片机课程设计-——多路温度检测及报警系统.pdf_第1页
第1页 / 共26页
2022年单片机课程设计-——多路温度检测及报警系统.pdf_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《2022年单片机课程设计-——多路温度检测及报警系统.pdf》由会员分享,可在线阅读,更多相关《2022年单片机课程设计-——多路温度检测及报警系统.pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、辽东学院信息技术学院微控制器原理与接口技术课程设计报告设计题目:多路温度检测及报警系统专业班级:电子信息工程、 B1006姓名:田 洪 雨教师评语:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 26 页 - - - - - - - - - - 一、摘要本课程设计是基于DS18B20 在 LCD1602 液晶显示的多路温度检测及报警系统。 本课题以 AT89C51 单片机系统为核心, 能对多点温度进行实时巡检。 DS18B20 是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,

2、可以使用户轻松的组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,介绍了 DS18B20 温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。关键词: DS18B20 、LCD1602 、高低温报警二、课程设计目的通过单片机原理与应用课程设计,使学生掌握单片机及其扩展系统设计的方法和设计原则及相应的硬件调试的方法。进一步加深单片机及其扩展系统设计和应用的理解。三、课程设计题目多路温度检测及报警系统四、课程设计内容及要求1、设计内容:1)有上电指示灯;2)能正确手动复位;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名

3、师归纳 - - - - - - - - - -第 2 页,共 26 页 - - - - - - - - - - 3)有 4 位数码管显示,能按照分秒进制显示时间;4)自定义的扩展功能。2、设计要求:1)独立设计原理图及相应的硬件电路。2)针对选择的设计题目,设计系统软件。软件要做到:操作方便,实用性强,稳定可靠。3)设计说明书格式规范,层次合理,重点突出。并附上设计原理图及相应的源程序。五、系统硬件电路设计系统主要由硬件和软件两大部分构成,当接收到系统发出的温度转换命令后, DS18B20 开始进行温度转换操作并把转化后的结果放到 16 位暂存寄存器中的温度寄存器内,然后与系统进行数据通信,

4、系统将温度读出并驱动LED 数码管显示。如果温度值低于设定下限值或高于设定上限值,则自动启动报警装置。由于 DS18B20 单总线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。该系统结构图单片按键电路显示电路精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 26 页 - - - - - - - - - - 1、单片机最小系统电路设计AT89S51 是低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的Flash 只读程序存储器和256 bytes 的随

5、机存取数据存储器( RAM ) ,器件采用高密度、非易失性存储技术生产,与标准MCS-51 指令系统及 8052 产品引脚兼容,片内置通用 8 位中央处理器(CPU )和 Flash 存储单元,功能强大 AT89S51 单片机适合于许多较为复杂控制应用场合。 AT89S51单片机为 40 引脚双列直插芯片 , 有四个 I/O 口 P0、P1、P2、P3,每一条 I/O 线都能独立地作输出或输入。AT89S51 DIP管脚封装复位电路报警电路测温电路精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共

6、 26 页 - - - - - - - - - - AT89S51其结构图如图所示(1)一个 8 位微处理器 CPU(2)片内数据存储器RAM 和特殊功能寄存器SFR(3)片内程序存储器ROM(4)两个定时 / 计数器T0、T1,可用作定时器,也可用以对外部脉冲进行计数(5)四个 8 位可编程的并行I/O 端口,每个端口既可作输入,也可作输出(6)一个串行端口,用于数据的串行通信(7)中断控制系统(8)内部时钟电路功能特性概述: AT89S51 提供以下标准功能: 8k 字节 Flash 闪速存储器, 256 字节内部 RAM ,32 个 I/O 口线,3 个 16 位定时 /计数器,一个 6

7、 向量两级中断结构,一个全双工串行通信口,片内精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 26 页 - - - - - - - - - - 振荡器及时钟电路。同时,AT89S52 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM ,定时 /计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。单片机 AT89S52的 P0口作为输入口。 P0与 DS128

8、87的 AD相连,进行时间图 2-3 数据的采集; (RD)与 DS12887的 17 脚 DS相连,与DS12887的 19 脚 IRQ相连,与 DS12887的 13 脚 CS相连;30 脚 ALE与 DS12887的 14 脚 AS相连。单片机的第 18 引脚和 19 引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,XTAL2接外部晶振和微调电容的另一端。对外接电容的值虽然没图 2-4 主控电路及其最小系统电路图有严格的要求, 但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为,电容应尽可能的选择陶瓷电容,电容值约为2

9、2F。第 9精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 26 页 - - - - - - - - - - 引脚为复位输入端,接上电容,电阻后构成上电复位电路。20 引脚为接地端, 40 引脚为电源端。 /EA 端(31 引脚)接+5V电压。由此就构成了单片机主控模块的最小系统,如图2-4 所示。2、DS18B20 电路设计DSl820数字温度计是美国Dallas 公司生产的数字温度计,它提供 9 位(二进制 ) 温度读数,指示器件的温度。 信息经过单线接口送入 DSl8B20或从 DSl8

10、B20送出,因此从主机 CPU 到 DSl8B20仅需一条线。DSl820的电源可以由数据线本身提供而不需要外部电源。因为每一个 DSl820在出厂时已经给定了唯一的序号,因此任意多DSl820可以存放在同一条单线总线上。 这允许在许多不同的地方放置温度敏感器件。 DSl820的测量范围从 -55 到+125,增量值为,可在l s(典型值)内把温度变换成数字。每一个DSl820包括一个唯一的 64 位长的序号,该序号值存放在 DSl820 内部的 ROM( 只读存贮器 ) 中。开始 8位是产品类型编码 (DSl820 编码均为 10H)。接着的 48 位是每个器件唯一的序号,最后8 位是前面

11、56位的 CRC( 循环冗余校验 )码。以下是 DS18b20的内部结构图。DS18B20 有 4 个主要的数据部件:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 26 页 - - - - - - - - - - 64 位激光 ROM 。64 位激光 ROM 从高位到低位依次为8 位 CRC 、48位序列号和 8 位家族代码 (28H)组成。 温度灵敏元件。 非易失性温度报警触发器TH和 TL。可通过软件写入用户报警上下限值。 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B

12、20 在 0 工作时按此寄存器中的分辨率将温度转换成相应精度的数值 DS18B20 的测温范围为 -55+125, 在-10+85范围内,精度为 0.5。在电压低于时精度误差较大。在本系统中使用了两个DS18b20温度传感器,测温范围为0100,另外根据器件稳定工作的特点,考虑到驱动能力的不足,采用外加5V电源以满足传感器精度高的要求。本系统为多点温度测试。DS18B20 采用外部供电方式,理论上可以在一根数据总线上挂256 个 DS18B20 ,但实际应用中发现,如果挂接 20 个以上的 DS18B20 就会产生功耗问题。另外单总线长度也不宜超过,否则会影响到数据的传输。 在这种情况下我们可

13、以采用分组的方式,用单片机的多个I/O 来驱动多路 DS18B20 。在实际应用中还可以使用一个 MOSFET 将 I/O 口线直接和电源相连,起到上拉的作用。在本电路板的设计中考虑到初步实践的准确性,暂使用2 个 DS18B20连接单片机的口。对 DS18B20 的设计,需要注意以下问题精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 26 页 - - - - - - - - - - (1)对硬件结构简单的单线数字温度传感器DS18B20 进行操作,需要用较为复杂的程序完成。 编制程序时必须严

14、格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。尤其在使用 DS18B20 的高测温分辨力时,对时序及电气特性参数要求更高。(2)有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动 DS18B20 序列号和自动排序,以减少调试和维护工作量。(3)测温电缆线建议采用屏蔽4 芯双绞线,其中一对线接地线与信号线,另一组接 VCC 和地线,屏蔽层在源端单点接地。 DS18B20 在三线制应用时,应将其三线焊接牢固;在两线应用时,应将VCC 与GND接在一起,焊接牢固。若VCC 脱开未接,传感器只送的温度值。(4) 实际应用时,要注意单线的驱动能力, 不能挂接过多的D

15、S18B20 ,同时还应注意最远接线距离。 另外还应根据实际情况选择其接线拓扑结构。3、LCD1602电路设计由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT )那样需要不断刷新新亮点。因此, 液晶显示器画质高且不会闪烁。数字式接口液晶显示器都是数字式的, 和单片机系统的接口更加简单可靠,操作更加方便。体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的, 在重量上比相同显示面积的传统显示器要轻得多。功耗低相对而言, 液晶显示器的功耗主要消耗在其内部的电极和驱动 IC 上,因而耗电量比其它显示器要少得多。LCD1602的

16、实物图如图 4,主要参数如下:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 26 页 - - - - - - - - - - 显示容量 :162个字符芯片工作电压 : 工作电流 :模块最佳工作电压 :字符尺寸 : (W H)mm1602液晶显示采用标准的16 脚接口,其中:(模块背面有标注)第 1 脚:VSS为地电源第 2 脚:VDD 接 5V正电源第 3 脚: V0为液晶显示器对比度调整端, 接正电源时对比度最弱,接地电源时对比度最高, 对比度过高时会产生“鬼影”,使用时可以通过一个 10

17、K的电位器调整对比度第 4 脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 26 页 - - - - - - - - - - 第 5 脚:RW 为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和 RW 共同为低电平时可以写入指令或者显示地址;当RS为高电平、 RW 为低电平时可以写入数据。第 6 脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第 714 脚:D0D7为 8 位双向数据线。第

18、 1516 脚:空脚1602液晶模块内部的字符发生存储器 (CGROM)已经存储了不同的点阵字符图形,这些字符有,阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,其中数字与字母同 ASCII 码兼容。它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明: 1 为高电平、 0 为低电平)指令 1:清显示,指令码01H,光标复位到地址 00H位置指令 2:光标复位,光标返回到地址00H 指令 3: 光标和显示模式设置I/D : 光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效指令 4:显示开关控制。

19、D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C :控制光标的开与关,精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 26 页 - - - - - - - - - - 高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁指令 5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标指令 6:功能设置命令DL :高电平时为 4 位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F: 低电平时显示 5x7 的点阵字符,高电平时显

20、示5x10 的点阵字符(有些模块是DL:高电平时为 8 位总线,低电平时为4 位总线)指令 7: 字符发生器 RAM 地址设置指令 8: DDRAM地址设置指令 9:读忙信号和光标地址BF :为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令 10:写数据指令 11:读数据指令表:序号指令RS RW D7 D6 D5 D4 D3 D2 D1 D01清屏0 0 0 0 0 0 0 0 0 12光标返回0 0 0 0 0 0 0 0 1 *3输入模式0 0 0 0 0 0 0 1 I/D S精品资料 - - - 欢迎下载 - - - - - - - - - - -

21、欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 26 页 - - - - - - - - - - 4显示控制0 0 0 0 0 0 1 D C B5光标/ 字符移位0 0 0 0 0 1 S/C R/L * *6功能0 0 0 0 1 DL N F * *7置字符发生器地址0 0 0 1 字符发生存贮器地址8置数据存贮器地址0 0 1 显示数据存贮器地址9读忙标志和地址0 1 BF 计数器地址10写数据到指令所设地址1 0 要写的数据11从指令所设的地址读数据1 1 读出的六、系统软件设计精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢

22、迎下载 名师归纳 - - - - - - - - - -第 13 页,共 26 页 - - - - - - - - - - 软件是系统的主要组成部分,也是整个调试的重点和难点工作。本系统的软件由C 语言编写,程序的主要功能是负责温度的实时显示、读出并处理 DS18B20 的测量的当前温度值。发出跳过延时 750mS发 出 匹CRC 校读 取 便 笺 存 储 器发 出 读精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 26 页 - - - - - - - - - - 七、实验结果当温度小于 1

23、0 度或者高于 60 度时,报警灯亮。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 26 页 - - - - - - - - - - 八、心得体会本次课程设计再一次的加深了我们对控制理论与单片机控制技术的理解,锻炼了我们的实践能力。在本次课程设计以前,我一直认为我已经把单片机学懂了, 谁知道到了课程设计的时候才发现原来并不是那么一回事,学海无涯,我也终于对这句话有了更深刻的认识。通过两周的单片机综合课程设计,我巩固了以前学的知识,并学了些新的东西, 做课设之前我们找了很多的资料,仔细研究了

24、所需器件的说明书, 通过看说明书我知道了各个部件的连线,主要是串口通信的研究,以前我们做系统都是由单机组成的,这种只能是很小的系统,大系统为了实现其功能常常需要多机通信。从做这次课设,我收获还是很多的,要问从这次课设学到什么,那就是持之以恒,无论遇到多大的难题都要想办法去解决。而且任何难题都有解决的办法,只要你坚持不懈,努力探索,终会找到。通过这次课设, 我们学到的不仅是理论知识, 并且学到了很多的精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 26 页 - - - - - - - - -

25、- 生活知识,每天我都在付出没有浪费这三周的时间,付出才有收获,当我们成功时内心很高兴。 我们只有把所学的理论知识与实践相结合起来,从理论中得出结论, 才能提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做多机通信, 难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处, 对以前所学过的知识理解得不够深刻,掌握得不够牢固, 通过这次课程设计之后, 一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在此要感谢胡老师对我们悉心的指导与帮助。 在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并上网查找等方式,使自己学

26、到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力。 相信会对今后的学习工作生活有非常重要的影响。而且大大提高了缜密思考的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次课程设计的最大收获和财富,使我受益颇多。附录 A:电路原理图精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 17 页,共 26 页 - - - - - - - - - - 精品资料 - - - 欢迎下载 - - -

27、- - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 18 页,共 26 页 - - - - - - - - - - 附录 B:程序清单#include#include#define uint unsigned int#define uchar unsigned char#define data 1000#define lcd_date P0sbit lcd_en=P22;sbit lcd_rw=P21;sbit lcd_rs=P20;sbit key0=P10;sbit key1=P11;sbit led=P17;uchar code lcdtable

28、=09- ;uchar code error12=no facility;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 19 页,共 26 页 - - - - - - - - - - ucharrom_id38= 0 x28,0 xc4,0 x14,0 x11,0 x00,0 x00,0 x00,0 x89,0 x28,0 xc4,0 x14,0 x10,0 x00,0 x00,0 x00,0 x06; uchar dispbuf8; uchar dispbuf18;uint data1=50000;u

29、char tem1,tem2,temt1,temt2;uint temper1;Write_dat(lcdtabledispbuf3);Write_com(0 xc9);Write_dat(2);Write_dat(:);Write_dat(lcdtabledispbuf4);Write_dat(lcdtabledispbuf5);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 20 页,共 26 页 - - - - - - - - - - Write_dat(lcdtabledispbuf6);Writ

30、e_dat(.);Write_dat(lcdtabledispbuf7); Write_com(0 x80);Write_dat(L);Write_dat(:);Write_dat(lcdtabledispbuf10);Write_dat(lcdtabledispbuf11);Write_dat(lcdtabledispbuf12);Write_dat(.);Write_dat(lcdtabledispbuf13);Write_com(0 x89);Write_dat(H);Write_dat(:);Write_dat(lcdtabledispbuf14);精品资料 - - - 欢迎下载 -

31、- - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 21 页,共 26 页 - - - - - - - - - - Write_dat(lcdtabledispbuf15);Write_dat(lcdtabledispbuf16);Write_dat(.);Write_dat(lcdtabledispbuf17);key() interrupt 3TH1=(65536-data1)8;TL1=(65536-data1)%256;if(key0=0)tempert1+=10;if(tempert11280)tempert1=0;while(key

32、0=0);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 22 页,共 26 页 - - - - - - - - - - if(key1=0)tempert2-=10;if(tempert21280)tempert2=1280;while(key1=0);void init_mcu()TMOD=0 x01; TH1=(65536-data1)8;TL1=(65536-data1)%256; ET1=1;TR1=1;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归

33、纳 - - - - - - - - - -第 23 页,共 26 页 - - - - - - - - - - EA=1;void alarm()if(temper1tempert2)|(temper2tempert2) led=1;else led=0; / 主函数void main() uchar i;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 24 页,共 26 页 - - - - - - - - - - init_mcu();ds_inti();close_led();lcd_init();wh

34、ile(1)reset();if(flag_init)/不存在时Write_com(0 x80);for(i=0;i12;i+)Write_dat(errori);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 25 页,共 26 页 - - - - - - - - - - else/存在时get_tem();get1_tem();update();update_1();disp();alarm();精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 26 页,共 26 页 - - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁