《2022年多路温度检测及报警系统_单片机课程设计.docx》由会员分享,可在线阅读,更多相关《2022年多路温度检测及报警系统_单片机课程设计.docx(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源辽东学院信息技术学院微掌握器原理与接口技术课程设计报告设计题目: 多路温度检测及报警系统专业班级: 电子信息工程、 B1006 姓 名: 田 洪 雨老师评语:成果评阅老师 张俊芳日期欢迎下载精品学习资源一、摘要本课程设计是基于DS18B20 在 LCD1602 液晶显示地多路温度检测及报警系统.本课题以 AT89C51 单片机系统为核心,能对多点温度进行实时巡检.DS18B20 是一种可组网地高精度数字式温度传感器,由于其具有单总线地特殊优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简洁、牢靠.本文结合实际使用体会,介绍了DS18B20温度传感器在单片机下地硬件
2、连接及软件编程,并给出了软件流程图.关键词: DS18B20 、LCD1602 、高低温报警二、课程设计目地通过单片机原理与应用课程设计,使同学把握单片机及其扩展系统设计地方法和设计原就及相应地硬件调试地方法.进一步加深单片机及其扩展系统设计和应用地懂得.三、课程设计题目多路温度检测及报警系统四、课程设计内容及要求1、设计内容:1) 有上电指示灯;2) 能正确手动复位;3) 有 4 位数码管显示,能依据分秒进制显示时间;4) 自定义地扩展功能 .2、设计要求:1) 独立设计原理图及相应地硬件电路.2) 针对挑选地设计题目,设计系统软件.软件要做到:操作便利,有用性强,稳固牢靠.3) 设计说明书
3、格式规范,层次合理,重点突出.并附上设计原理图及相应地源程序.五、系统硬件电路设计系统主要由硬件和软件两大部分构成,当接收到系统发出地温度转换命令后,DS18B20 开头进行温度转换操作并把转化后地结果放到16 位暂存寄存器中地温度寄存器内, 然后与系统进行数据通信,系统将温度读出并驱动LED数码管显示 .假如温度值低于设定下限值或高于设定上限值,就自动启动报警装置 .按键电路单显示电路片复位电路机AT89S51由于 DS18B20 单总线通信功能是分时完成地,它有严格地时隙概念,因此读写时序很重要 .该系统结构图欢迎下载精品学习资源欢迎下载精品学习资源报警电路测温电路欢迎下载精品学习资源1、
4、单片机最小系统电路设计AT89S51 是低电压,高性能CMOS 8 位单片机,片内含8k bytes 地可反复擦写地 Flash 只读程序储备器和256 bytes 地随机存取数据储备器(RAM ),器件采纳高密度、非易失性储备技术生产,与标准MCS-51指令系统及 8052 产品引脚兼容,片内置通用8 位中心处理器( CPU )和 Flash 储备单元,功能强大AT89S51 单片机适合于很多较为复杂掌握应用场合 .AT89S51 单片机为 40 引脚双列直插芯片,有四个 I/O 口 P0、P1、P2、P3,每一条 I/O 线都能独立地作输出或输入.AT89S51 DIP 管脚封装AT89S
5、51 其结构图如下列图欢迎下载精品学习资源(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 向量两级中断结构
6、,一个全双工 串行通信口,片内振荡器准时钟电路.同时, AT89S52 可降至 0Hz 地静态规律操作,并支持两种软件可选地节电工作模式.闲暇方式停止 CPU 地工作,但答应 RAM ,定时 /计数器,串行通信口及中断系统连续工作.掉电方式储存RAM中地内容,但振荡器停止工作并禁止其 它全部部件工作直到下一个硬件复位.单片机 AT89S52 地 P0 口作为输入口 .P0 与 DS12887 地 AD 相连,进行时间图2-3 数据地采集; P3.7RD 与 DS12887 地 17 脚 DS 相连, P3.3 与 DS12887 地 19 脚 IRQ 相连, P2.7与 DS12887 地 1
7、3 脚 CS 相连; 30 脚 ALE 与 DS12887 地 14 脚 AS 相连 .单片机地第 18 引脚和 19 引脚接时钟电路, XTAL1 接外部晶振和微调电容地一端,XTAL2 接外部晶振和微调电容地另一端 .对外接电容地值虽然没图 2-4 主控电路及其最小系统电路图欢迎下载精品学习资源有严格地要求,但电容地大小会影响震荡器频率地高低、震荡器地稳固性、起振地快速性和温度地稳固性.因此,此系统电路地晶体振荡器地值为11.0592MHz ,电容应尽可能地选择陶瓷电容,电容值约为22F第.9 引脚为复位输入端,接上电容,电阻后构成上电复位电路.20 引脚为接地端, 40 引脚为电源端 .
8、/EA 端( 31 引脚)接 +5V 电压 .由此就构成了单片机主控模块地最小系统,如图2-4 所示.2、DS18B20 电路设计DSl820 数字温度计是美国Dallas 公司生产地数字温度计,它供应9 位二进制 温度读数,指示器件地温度 .信息经过单线接口送入DSl8B20 或从 DSl8B20 送出,因此从主机CPU 到 DSl8B20 仅需一条线 .DSl820 地电源可以由数据线本身供应而不需要外部电源.由于每一个 DSl820 在出厂时已经给定了唯独地序号,因此任意多DSl820 可以存放在同一条单 线总线上 .这答应在很多不同地地方放置温度敏锐器件.DSl820 地测量范畴从 -
9、55 到+125,增量值为 0.5,可在 l s典型值 内把温度变换成数字 .每一个 DSl820 包括一个唯独地 64 位长地序号,该序号值存放在DSl820 内部地 ROM 只读存贮器 中.开头 8 位是产品类型编码DSl820 编码均为 10H. 接着地 48 位是每个器件唯独地序号,最终8 位是前面 56 位地CRC 循环冗余校验 码.以下是 DS18b20 地内部结构图 .DS18B20 有 4 个主要地数据部件: 64 位激光 ROM.64 位激光 ROM 从高位到低位依次为8 位 CRC、48 位序列号和 8 位家族代码 28H 组成 . 温度灵敏元件 . 非易失性温度报警触发器
10、TH 和 TL. 可通过软件写入用户报警上下限值. 配置寄存器 .配置寄存器为高速暂存储备器中地第五个字节.DS18B20 在 0 工作时按此寄存器中地辨论率将温度转换成相应精度地数值欢迎下载精品学习资源DS18B20 地测温范畴为 -55 +125 ,在-10 +85范畴内,精度为0.5 .在电压低于3.4v 时精度误差较大 .在本系统中使用了两个DS18b20 温度传感器,测温范畴为0 100,另外依据器件稳固工作地特点,考虑到驱动才能地不足,采纳外加5V 电源以满意传感器精度高地要求.本系统为多点温度测试.DS18B20 采纳外部供电方式,理论上可以在一根数据总线上挂256 个 DS18
11、B20 ,但实际应用中发觉,假如挂接20 个以上地 DS18B20 就会产生功耗问题. 另外单总线长度也不宜超过0.5M ,否就会影响到数据地传输.在这种情形下我们可以采纳 分组地方式,用单片机地多个I/O 来驱动多路 DS18B20. 在实际应用中仍可以使用一个MOSFET 将 I/O 口线直接和电源相连,起到上拉地作用.在本电路板地设计中考虑到初步实践地精确性,暂使用2 个 DS18B20 连接单片机地 P3.2 口.对 DS18B20 地设计,需要留意以下问题(1) 对硬件结构简洁地单线数字温度传感器DS18B20 进行操作,需要用较为复杂地程序完成 .编制程序时必需严格按芯片数据手册供
12、应地有关操作次序进行,读、写时间片程序要严格按要求编写 .特别在使用 DS18B20 地高测温辨论力时,对时序及电气特性参数要求更高 .(2) 有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动DS18B20序列号和自动排序,以削减调试和保护工作量.(3) 测温电缆线建议采纳屏蔽4 芯双绞线,其中一对线接地线与信号线,另一组接VCC 和地线,屏蔽层在源端单点接地.DS18B20 在三线制应用时,应将其三线焊接坚固;在两线应用时,应将 VCC 与GND 接在一起,焊接坚固 .如VCC 脱开未接,传感器只送 85.0 地温度值 .(4) 实际应用时,要留意单线地驱动才能,不能挂接过多地D
13、S18B20 ,同时仍应留意最远接线距离 .另外仍应依据实际情形挑选其接线拓扑结构. 3、LCD1602 电路设计由于液晶显示器每一个点在收到信号后就始终保持那种颜色和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点.因此,液晶显示器画质高且不会闪耀.数字式接口液晶显示器都是数字式地,和单片机系统地接口更加简洁牢靠,操作更加方便.体积小、重量轻液晶显示器通过显示屏上地电极掌握液晶分子状态来达到显示地目地,在重量上比相同显示面积地传统显示器要轻得多.功耗低相对而言,液晶显示器地功耗主要 消耗在其内部地电极和驱动IC 上,因而耗电量比其它显示器要少得多.LCD1602地实物图
14、如图 4,主要参数如下:显示容量 :16 2 个字符欢迎下载精品学习资源芯片工作电压 :4.5 5.5V工作电流 :2.0mA5.0V模块正确工作电压 :5.0V字符尺寸 :2.95 4.35W Hmm1602 液晶显示采纳标准地16 脚接口,其中:(模块背面有标注) 第 1 脚: VSS 为地电源第 2 脚: VDD 接 5V 正电源第 3 脚: V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影 ”,使用时可以通过一个10K 地电位器调整对比度第 4 脚: RS 为寄存器挑选,高电平常挑选数据寄存器、低电平常挑选指令寄存器.第 5 脚: R
15、W 为读写信号线,高电平常进行读操作,低电平常进行写操作.当 RS 和RW 共同为低电平常可以写入指令或者显示地址;当RS 为高电平、 RW 为低电平常可以写入数据 .第 6 脚: E 端为使能端,当 E 端由高电平跳变成低电平常,液晶模块执行命令.第 7 14 脚: D0 D7 为 8 位双向数据线 .第 15 16 脚:空脚1602 液晶模块内部地字符发生储备器(CGROM 已经储备了不同地点阵字符图形,这些字符有,阿拉伯数字、英文字母地大小写、常用地符号、和日文假名等,每一个字符都有一个固定地代码,其中数字与字母同ASCII 码兼容 .它地读写操作、屏幕和光标地操作都是通过指令编程来实现
16、地.(说明: 1 为高电平、 0为低电平)指令 1:清显示,指令码01H, 光标复位到地址00H 位置指令 2:光标复位,光标返回到地址00H指令 3:光标和显示模式设置I/D :光标移动方向,高电平右移,低电平左移S:屏幕上全部文字是否左移或者右移.高电平表示有效,低电平就无效欢迎下载精品学习资源指令 4:显示开关掌握 . D :掌握整体显示地开与关,高电平表示开显示,低电平表示关显示 C :掌握光标地开与关,高电平表示有光标,低电平表示无光标B : 掌握光标是否闪耀,高电平闪耀,低电平不闪耀指令 5:光标或显示移位S/C:高电平常移动显示地文字,低电平常移动光标指令 6:功能设置命令 DL
17、 :高电平常为 4 位总线,低电平常为8 位总线 N :低电平常为单行显示,高电平常双行显示F: 低电平常显示5x7 地点阵字符,高电平常显示 5x10 地点阵字符 (有些模块是 DL :高电平常为 8 位总线,低电平常为 4 位总线)指令 7:字符发生器 RAM 地址设置 指令 8: DDRAM地址设置指令 9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,假如为低电平表示不忙.指令 10:写数据指令 11:读数据R/L*6功能00001DLNF*7置字符发生器地址0001字符发生存贮器地址8置数据存贮器地址00 1显示数据存贮器地址指令表:序号指令RSRW
18、D7D6D5D4D3D2D1D01清屏00000001002光标返回0000010*003输入模式00010I/D0S004显示掌握000D0C0B015光标 /字符移位000001S/C欢迎下载精品学习资源10写数据到指令10要写地数据7.8 所设地址11从指令 7.8 所设地地址读数据11读出地9读忙标志和地址01BF计数器地址六、系统软件设计软件是系统地主要组成部分,也是整个调试地重点和难点工作.本系统地软件由C 语言编写,程序地主要功能是负责温度地实时显示、读出并处理DS18B20 地测量地当前温度值 .欢迎下载精品学习资源ROM 命令温度数据格式转换1终止七、试验结果当温度小于 10
19、 度或者高于 60 度时,报警灯亮 .欢迎下载精品学习资源八、心得体会本次课程设计再一次地加深了我们对掌握理论与单片机掌握技术地懂得,锤炼了我们地实践才能 .在本次课程设计以前,我始终认为我已经把单片机学懂了,谁知道到了课程设计地时候才发觉原先并不是那么一回事,学海无涯,我也最终对这句话有了更深刻地熟悉.通过两周地单片机综合课程设计,我巩固了以前学地学问,并学了些新地东西,做课设之前我们找了很多地资料,认真讨论了所需器件地说明书,通过看说明书我知道了各个部件地连线,主要是串口通信地讨论,以前我们做系统都是由单机组成地,这种只能是很小地系统,大系统为了实现其功能经常需要多机通信.从做这次课设,我
20、收成仍是很多地,要 问从这次课设学到什么,那就是持之以恒,无论遇到多大地难题都要想方法去解决.而且任何难题都有解决地方法,只要你坚持不懈,努力探究,终会找到.通过这次课设,我们学到地不仅是理论学问,并且学到了很多地生活学问,每天我都在付出没有铺张这三周地时间,付出才有收成,当我们胜利时内心很兴奋.我们只有把所学地理论学问与实践相结合起来,从理论中得出结论,才能提高自己地实际动手才能和独立摸索地才能 .在设计地过程中遇到问题,可以说得是困难重重,这究竟第一次做多机通信, 难免会遇到过各种各样地问题,同时在设计地过程中发觉了自己地不足之处,对以前所学 过地学问懂得得不够深刻,把握得不够坚固,通过这
21、次课程设计之后,肯定把以前所学过 地学问重新温故 .这次课程设计最终顺当完成了,在此要感谢胡老师对我们尽心地指导与帮欢迎下载精品学习资源助.在设计过程中,我通过查阅大量有关资料,与同学沟通体会和自学,并上网查找等方式,使自己学到了不少学问,也经受了不少艰辛,但收成同样庞大.在整个设计中我懂得了 很多东西,也培育了我独立工作地才能.信任会对今后地学习工作生活有特别重要地影响.而且大大提高了缜密摸索地才能,使我充分体会到了在制造过程中探究地艰巨和胜利时地喜悦.虽然这个设计做地也不太好,但是在设计过程中所学到地东西是这次课程设计地最大收成和财宝,使我受益颇多.附录 A:电路原理图欢迎下载精品学习资源
22、欢迎下载精品学习资源附录 B:程序清单#include #include #define uint unsigned int#define uchar unsigned char #define data 1000#define lcd_date P0 sbit lcd_en=P22 ;sbit lcd_rw=P21 ;sbit lcd_rs=P20 ;sbit key0=P10 ;sbit key1=P11 ;sbit led=P17 ;uchar code lcdtable=0123456789- ;uchar code error12=no facility;ucharrom_id38=
23、 0x28,0xc4,0x14,0x11,0x00,0x00,0x00,0x89,0x28,0xc4,0x14,0x10,0x00,0x00,0x00,0x06;uchar dispbuf8 ;uchar dispbuf18 ;uint data1=50000 ;uchar tem1,tem2,temt1,temt2 ;uint temper1 ;/ 温度寄存器uint temper11 ;uint temper22 ;uint temper2 ;uint tempert1 ;/温度阀值 R-min uint tempert2 ;/温度阀值 R-max uint tempert11 ;uint
24、 tempert22 ;#define NOP3 _nop_ ;_nop_; _nop_ sbit DQ=P33 ;bit flag_init ; /DS18B20 是否存在标志void delay_usunsigned int ttwhilett-;void delay_msunsigned int tmsunsigned char i;whiletms- fori=123 ;i0 ;i-;欢迎下载精品学习资源void Write_comuchar comlcd_rs=0 ;lcd_rw=0 ;lcd_date=com ;delay_ms2 ;lcd_en=1;delay_ms2 ;lcd_
25、en=0;void Write_datuchar datlcd_rs=1 ;lcd_rw=0 ;lcd_date=dat;delay_ms2 ;lcd_en=1;delay_ms2 ;lcd_en=0;void lcd_initlcd_rw=0 ;lcd_en=0;delay_ms15 ;Write_com0x38 ;delay_ms5 ;Write_com0x38 ;delay_ms5 ;Write_com0x38 ;/显示模式设置Write_com0x08 ;/显示关闭Write_com0X01 ;/清屏Write_com0x06 ;/显示光标移动设置Write_com0X0c ;/显示开
26、及光标设置/*DS18B20初始化 */ void resetflag_init=1 ;EA=0 ;DQ=1 ;NOP3 ;DQ=0 ;delay_us60;/480960us 556 DQ=1 ;delay_us5 ;/60us flag_init=DQ ;delay_us25;/241us EA=1 ;欢迎下载精品学习资源/*写一个字节函数 */ void Write_Byteuchar datuchar i;DQ=1 ;EA=0 ;fori=8 ; i0 ;i-DQ=0 ;DQ=bitdat&0x01;delay_us5 ;/61us DQ=1 ;dat=1 ;EA=1 ;/*读数据函数
27、 */ uchar Read_Byteuchar i,date;date=0;DQ=1 ;EA=0 ;/ 关中断fori=8 ; i0 ;i-DQ=0 ;date=1;DQ=1 ;NOP3 ;ifDQdate|=0x80;delay_us5 ;/61usEA=1 ;/ 开中断returndate ;void match_romuchar rom_iduchar n;reset; Write_Byte0x33 ;forn=0 ;n8 ;TL1=65536-data1%256 ;ifkey0=0tempert1+=10 ;iftempert11280tempert1=0;whilekey0=0 ;
28、ifkey1=0tempert2-=10 ;iftempert21280tempert2=1280 ;whilekey1=0 ;void init_mcuTMOD=0x01 ;TH1=65536-data18 ;TL1=65536-data1%256 ;ET1=1 ; TR1=1 ;EA=1 ;void alarm欢迎下载精品学习资源iftemper1tempert2|temper2tempert2led=1 ;elseled=0 ;/主函数void mainuchar i;init_mcu ;ds_inti ;close_led;lcd_init ;欢迎下载精品学习资源while1reset; ifflag_init/不存在时Write_com0x80 ;fori=0 ;i12 ;i+欢迎下载精品学习资源Write_daterrori ;else/存在时get_tem ;get1_tem ;update;update_1;disp ;alarm ;欢迎下载