《2022年多通道温度巡检系统设计方案课程设计方案说明书.docx》由会员分享,可在线阅读,更多相关《2022年多通道温度巡检系统设计方案课程设计方案说明书.docx(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源摘 要设计一个八路温度巡检系统,用八路DS18B20温度传感器分别检测外界八个不同地点的温度信息,通过AT89C51单片机接收八路温度传感器所返回的信息,经过单片机处理后将温度值和通道数等信息传输到LCD液晶显示器进行显示;文中具体论述了温度传感器 DS18B20的工作原理、温度信息处理过程、温度显示过程、系统的硬件设计方案以及软件程序设计;关键词: 八路温度巡检; DS18B20 ;AT89C51 ;LCD欢迎下载精品学习资源摘 要 I目录I / 46欢迎下载精品学习资源1 绪论 11.1 设计任务及意义 11.2 DS18B20 温度检测原理 12 系统总体方案设计 52.1
2、系统总体方案框图 52.2 各模块的功能 53 硬件电路的设计 63.1 温度检测电路63.2 液晶显示电路 63.2.1 LM016L 介绍63.2.2 LM01 与 51 单片机的连接 73.3 晶振电路 83.4 复位电路 83.5 电源电路94 系统软件设计 104.1 系统软件流程图 104.2 程序设计 104.2.1 DS18B20 的程序设计 104.2.2 LM017L 液晶的程序设计 114.2.3 主程序设计 125 系统仿真 135.1 仿真电路的设计 135.2 仿真结果13总 结15参 考 文 献16致 谢17附录 B 程序清单 19欢迎下载精品学习资源1 绪论1.
3、1 设计任务及意义本设计实现八路温度检测,要求检测温度范畴为-55 125摄氏度,用 LCD液晶显示器同时显示测量温度值和通道编号,每 3秒钟显示一路温度信息;以摄氏度为单位,要求能够实现小数的显示;温度检测在现实生活、生产当中应用比较普遍,而且起着相当大的作用,特殊是一些工业的应用当中,温度的检测更是重要的环节,温度的检测和掌握直接和安全生产、产品质量、生产效率、节约能源等重大技术指标相联系;而多路温度的检测在一些范畴比较大的施工场地或者监控现场的应用更是广泛,为应用者供应了现场多点的实时环境温度信息;1.2 DS18B20温度检测原理DS18B2是0 DALLAS公司生产的单总线式数字温度
4、传感器,它具有微型化、低功耗、高性能、抗干扰才能强、易配处理器等优点,特殊适用于构成多点温度测控系统,可直接将温度转化成串行数字信号供应9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片;它具有 3引脚TO-92小体积封装形式 如图1.1 ),测温范畴为 -55 +125,可编程为 9位 12位A/D转换精度,测温辨论率可达 0.0625 ,被测温度用符号扩展的 16位数字量方式串行输出,其工作电源既可在远端引入,也可采纳寄生电源方式产生,欢迎下载精品学习资源多个DS18B2可0 多个DS18B2通0 规律电路;DS18B2的08位是产品类型标号,对于 DS18B2来0 说就是
5、28H;接着的 48位是器件自身的序列号;最终 8位是前面 56位的循环冗余校验码欢迎下载精品学习资源CRC=X8+X5+X4+1光. 刻ROM的作用是使每个 DS18B20都不相同,这样可以实现一根总线上挂接多个 DS18B2的0 目的;对ROM操作的几种指令:2) RAM高速暂存储备器由 9个字节组成,包含了 8个连续字节,前面两个字节是测得的温度信息,第一个字节的内容是温度的低 8位,其次个字节是温度的高 8位;第三个和第四个字节是温度高限 TH和温度底限 TL的暂存区,第五个字节是配置寄存器暂存区,第6、欢迎下载精品学习资源7、8、9字节是系统保留用,相当于 DS18B2的0 RAM内
6、部字节分布如下表所示:运算内存,第 9个字节是冗余校验字节;欢迎下载精品学习资源表1-1 DS18B20 RAM字节分布欢迎下载精品学习资源对RAM操作的几种指令:3) E2 PROMEEPRO只M有三个字节,和 RAM的第2、3、4字节的内容相对应,它的作用就是储备 RAM第2、3、4字节的内容,以使这些数据在掉电后不丢失;可能通过几条命令将RAM的该3个字节内容复制到 EEPRO或M从EEPRO将M该3个字节内容复制到 RAM的第2、3、4字节欢迎下载精品学习资源去;由于我们从外部想改写报警值和器件的设置都是只对RAM进行操作的;要储存这些设置后的数据就仍要用相应的命令将 RAM的数据复制
7、到 EEPRO去M;DS18B20是单总线器件,通讯协议包括几种单线信号类型:复位脉冲、存在脉冲、写0、写1、读0、读1;全部这些信号,除存在脉冲外,其余都是由总线掌握器单片欢迎下载精品学习资源机)发出的;依据 DS18B2的0三个步骤:通讯协议,主机 以上,就 CPU就可以响应并将系统复位;单片机系统的复位方式有:手动按钮复位和上电复位,本设计中采纳的是手动按钮复位方式;手动按钮复位需要人为在复位输入端RESET上加入高电平;一般采纳的方法是在RESET端和正电源 Vcc 之间接一个按钮;当人为按下按钮时,就Vcc 的+5V 电平就会直接加到 RESET端, 也可以直接在另一端接一个 +5V
8、电源;手动按钮复位的电路如 3.5 所示;由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满意复位的时 间要求;欢迎下载精品学习资源欢迎下载精品学习资源3.5 电源电路图 3.5复位电路欢迎下载精品学习资源在本系统中,有很多芯片都需要电源,所以需要设计一个电源模块;电源电路原理 图如图 3.6 所示; 220V的沟通电经变压器 T1 降压后,得到 +9V的沟通电,再经过桥式整流和电容滤波的作用,最终得到 +5V的直流电,为系统供应电源;三端稳压器7805 在电路中起稳压作用,沟通电经整流滤波后,由三端稳压器稳压后,输出稳固的直流电;图 3.6电源电路欢迎下载精品学习资源4 系统软件
9、设计本次设计采纳的编程语言是 C51 语言,开发工具是 Keil Vision4 版本;4.1 系统软件流程图系统的软件流程图如下图所示:欢迎下载精品学习资源4.2 程序设计图 4.1系统软件流程图欢迎下载精品学习资源欢迎下载精品学习资源4.2.1 DS18B20的程序设计DS18B20 的程序中主要包含以下函数:extern void ds18b20_initvoid;/初始化extern unsigned char ds18b20_readdatavoid;/读 DS18b20 的温度数据欢迎下载精品学习资源欢迎下载精品学习资源extern void ds18b20_writecomman
10、dunsigned char command;字/向 DS18B20 写命令欢迎下载精品学习资源extern void temperature_processunsigned char,unsigned cha;r /数值处理 ,把读回的温度分解成整数和小数部分,并转换成ASIC 码存/ 放在 xiaoshu_temp5,zhen_temp4;extern unsigned char *read_romvoid;/读 DS18b20中 ROM extern bit match_romunsigned char *rom; /匹配 ROM具体程序内容见附录 B 中;4.2.2 LM017L液晶的
11、程序设计LM017L 的程序中主要包含以下函数:/* 功能:写 LCD 函数*/ void Lcd_Writebit style,unsigned char input;/* 功能: LCD 初始化*/ void Lcd_Initvoid ;/* 功能:显示位置设置* 参数: x-行; y-列*/ void GotoXYunsigned char x,unsigned char y;/* 功能: LCD 显示函数* 参数: str-要显示的字符串指针*/ void Printunsigned char *str;欢迎下载精品学习资源void print_charuchar ;/* 功能: LC
12、D 清屏函数 void ClrScreenvoid;具体程序内容见附录 B 中;4.2.3 主程序设计在主程序中,实现了对温度的巡检,并把实时测到的温度显示在液晶显示屏上, 在很多领域仍是比较有用的;每一片DS18B20 都有各自的固定的序列号,在仿真中, 事先设定好各个 DS18B20 的序列号,将其写进程序中,依次进行匹配,从而实现巡检;主程序具体内容见附录 B 中;5 系统仿真5.1 仿真电路的设计用 Proteus软件设计的方针电路图如下图所示:欢迎下载精品学习资源5.2 仿真结果图 5.1 Proteus仿真电路欢迎下载精品学习资源在 Keil 中编译程序直至通过,生成 HEX 文件
13、,将该 HEX 文件载入 Proteus中的AT89C51 芯片中,设置晶振为 12MHz ,运行仿真,结果如下图所示:欢迎下载精品学习资源图 5.2Proteus仿真结果总 结1)本次设计完成了要求的基本的功能,实现了八路温度传感器的实时巡检,但在软件的设计方面存在占用内存空间较大,程序的冗余度较大的问题;这是由于作者对 C语言的程序设计不够娴熟,在设计时,没有能够采纳一些更为敏捷的方法使程序简化所致;随着以后的学习,信任在这一方面可以有一个较大的进步,实现本设计的程序优化;欢迎下载精品学习资源 在此次设计用一个 I/O 同时并联 8 个 DS18B20,这样一来,导致软件程序的编写更加复杂
14、,耗费了较多的时间和精力;参 考 文 献1 黄惟公、邓成中、王燕,单片机原理与应用技术,西安电子科技高校出版社,20072 黄惟公、邓成中,单片机原理与接口技术unsigned int i,j;fori=0 ;i forj=0 ;j;void mainvoiduchar i;unsigned char a3=0xdf,C,0 ;char *str1=1: ;char *str2=2: ;char *str3=3: ;char *str4=4: ;Lcd_Init ;ClrScreen;dot_dis=1;欢迎下载精品学习资源while1/*The first page.*/ClrScreen;
15、ds18b20_init;ds18b20_writecommand0xcc;ds18b20_writecommand0x44;delay500;match_romds18b20_num1;/匹配第一路ds18b20_writecommand0xbe;fori=0 ;itempi=ds18b20_readdata;temperature_processtemp0,temp1;GotoXY12,0 ;Printa;GotoXY29,0 ;Printa;GotoXY12,1 ;Printa;GotoXY29,1 ;Printa;GotoXY2,0 ;Printstr1;if.flag / 正Prin
16、tzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;else/负欢迎下载精品学习资源Print- ;Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;ds18b20_init;ds18b20_writecommand0xcc;ds18b20_writecommand0x44;delay500;match_romds18b20_num2;/匹配其次路ds18b20_writecommand0xbe;fori=0 ;itempi=ds18b20_readdata;temperature_processte
17、mp0,temp1;GotoXY19,0 ;Printstr2;if.flag / 正Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;else/负Print- ;Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;欢迎下载精品学习资源ds18b20_init;ds18b20_writecommand0xcc;ds18b20_writecommand0x44;delay500;match_romds18b20_num3;/匹配第三路ds18b20_writecommand0xbe;fori=0
18、 ;itempi=ds18b20_readdata;temperature_processtemp0,temp1;GotoXY2,1 ;Printstr3;if.flag / 正Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;else/负Print- ;Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;ds18b20_init;ds18b20_writecommand0xcc;ds18b20_writecommand0x44;delay500;match_romds18b20_num4;/
19、匹配第四路ds18b20_writecommand0xbe;欢迎下载精品学习资源fori=0 ;itempi=ds18b20_readdata;temperature_processtemp0,temp1;GotoXY19,1 ;Printstr4;if.flag / 正Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;else/负Print- ;Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;delay1000;ClrScreen;ds18b20_init;ds18b20_writeco
20、mmand0xcc;ds18b20_writecommand0x44;delay500;match_romds18b20_num5;/匹配第五路ds18b20_writecommand0xbe;fori=0 ;itempi=ds18b20_readdata;欢迎下载精品学习资源temperature_processtemp0,temp1;GotoXY12,0 ;Printa;GotoXY29,0 ;Printa;GotoXY12,1 ;Printa;GotoXY29,1 ;Printa;GotoXY2,0 ;Print5: ;if.flag / 正Printzhen_temp;ifdot_di
21、s Print. ;Printxiaoshu_temp;else/负Print- ;Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;ds18b20_init;ds18b20_writecommand0xcc;ds18b20_writecommand0x44;delay500;match_romds18b20_num6;/匹配第六路ds18b20_writecommand0xbe;fori=0 ;i欢迎下载精品学习资源tempi=ds18b20_readdata;temperature_processtemp0,temp1;GotoXY19,
22、0 ;Print6: ;if.flag / 正Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;else/负Print- ;Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;ds18b20_init;ds18b20_writecommand0xcc;ds18b20_writecommand0x44;delay500;match_romds18b20_num7;/匹配第七路ds18b20_writecommand0xbe;fori=0 ;itempi=ds18b20_readdata;temp
23、erature_processtemp0,temp1;GotoXY2,1 ;Print7: ;欢迎下载精品学习资源if.flag / 正Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;else/负Print- ;Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;ds18b20_init;ds18b20_writecommand0xcc;ds18b20_writecommand0x44;delay500;match_romds18b20_num8;/匹配第八路ds18b20_writecom
24、mand0xbe;fori=0 ;itempi=ds18b20_readdata;temperature_processtemp0,temp1;GotoXY19,1 ;Print8: ;if.flag / 正Printzhen_temp;ifdot_dis Print. ;Printxiaoshu_temp;欢迎下载精品学习资源else/负Print- ;Printzhen_temp;ifdot_disPrint. ;Printxiaoshu_temp;delay1000;while1 ;/*lcd1602.h 头文件* 功能 LCD1602 驱动函数的申明* 创建人: xingyuegu*
25、创建日期: 2006-7-13* 版本: 1.0*/#ifndef _LCD1602_H_ #define _LCD1602_H_#include #include #define uchar unsigned char #define uint unsigned int/* 接口定义 */欢迎下载精品学习资源sbit LcdRs =P20;sbit LcdRw =P21;sbit LcdEn =P22;sfr DBPort =0x80;/* 功能:判定 LCD 忙* 参数:无*/ unsigned char Lcd_Waitvoid;/* 功能:写 LCD 函数* 参数: style 为写命令 /数据, 0-命令, 1-数据; input 为写入的 8 位 *命令/数据*/ #define Lcd_Command 0#define Lcd_Data 1#define Lcd_Clear_Screen 0x01 #define Lcd_Home 0x02void Lcd_Writebit style,unsigned char input;/* 功能:设置显示模式* 参数:*