




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 毕业实习报告题目:多路温度采集系统学 院 电子与信息工程专 业 电子信息工程班级学号 0910910114姓 名 指导教师 完成时间 2013-3-6 成 绩2013年 3 月一、摘要:本次设计介绍了基于单片机at89c51控制ds18b20的智能温度显示,给出了该显示仪的硬件电路及详细说明,重点介绍了ds18b20与单片机的接口设计以及数字温度计的软件的主程序、ds18b20读写程序和显示程序,并给出了基于proteus软件的电路仿真图。该仪表具有简单、稳定、实用、精度高等优点二、实习的内容、安排本次实习分5次实验室时间第一次:查阅资料,为确定方案建立基础。第二次:整理资料,确立方案。第三
2、次:画原理图,写仿真。最后两次:查漏补缺,完善成果。三、实习的具体实现本系统中温度传感器获取较高精确度的温度值并将其传至单片机中处理并能将测得的温度在数码管中显示。还从键盘上输入需要设定的温度范围。当高与上限温度时定时触发蜂鸣器报警。需用户手动停止报警或者当温度回落至用户设定的上下限温度范围内时能自动停止报警。根据系统的设计要求,当温度传感器ds18b20把所测得的温度发送到at89c51单片机上,经at89c51处理,将把温度在显示电路上显示。当开机后,显示屏和计时器进行初始化设置。 利用at89c51芯片控制温度传感器ds18b20进行实时温度检测并显示,能够实现快速测量环境温度。 系统框
3、图如下图: 图1.1 系统框图 选择ds18b20作为本系统的温度传感器,选择单片机at89c51为测控系统的核心来完成数据采集、处理、显示、报警等功能。选用数字温度传感器ds18b20,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路,省却了采样保持电路、运放、数模转换电路以及进行长距离传输时的串并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。 当lcd液晶显示器接收到来自at89c51单片机传送来的温度信息后,分别显示了当前的温度 词系统采用数码管显示,是考虑到其简单易实现,单片机选择89c51.电路连接图与仿真图如下。五、附录单片机(at89c
4、51),数码管,温度传感器18b20 (12个),键盘(2),蜂鸣器1个锁存器(2个)6、 心得体会本次课程设计中,本人就采用了这种已经相当普及的方法设计了一个基于单片机和温度传感器的多路温度采集系统,并通过了软件仿真,最后得出了设计结果的可行性,设计过程中,首先,要对ds18b20做一个详细的了解,作为设计中一个重要的元件,要知道它的一般流程:初始化rom操作指令存储器操作指令数据传输。然后必须掌握它的每个端口的作用,并用单片机通过高低电平来控制它的工作过程,不一样的模块它的工作时序是不同,这里要通过软件正确的编写出读写时序,才能确保在测量温度的环节中不出问题。一个完整的系统同样也需要一个人
5、机界面才能便于使用者读出数据,所以这里用到了lcd1602液晶屏,这个液晶屏的优点在于自带字库,且易于控制显示位置,基本上达到了设计的要求。 同时,在做整个课程论文的过程中,也遇到了诸多问题: 第一,不能灵活自如的运用c51语言。 第二,对某些硬件的功能不太熟悉。 第三,缺乏一定的理论基础。 但是,通过老师和同学们的帮助,最终还是取得了一个令人满意的结果,再次对帮助过我的老师和同学们表示感谢,我也会在以后的学习工作中,逐步弥补自己的不足。7 程序代码#include lcd1602.h#include ds18b20.h#include unsigned char temp5;extern c
6、har xiaoshu_temp5,zhen_temp4;extern bit flag;extern bit dot_dis;/uchar ds18b20_num18=0x25,0x00,0x00,0x00,0xb8,0xc5,0x45,0x28;code uchar ds18b20_num18=0xfd,0x00,0x00,0x00,0xb8,0xc5,0x45,0x28;code uchar ds18b20_num28=0x8e,0x00,0x00,0x00,0xb8,0xc5,0x30,0x28;code uchar ds18b20_num38=0xb9,0x00,0x00,0x00,
7、0xb8,0xc5,0x31,0x28;code uchar ds18b20_num48=0xe0,0x00,0x00,0x00,0xb8,0xc5,0x32,0x28;code uchar ds18b20_num58=0xd7,0x00,0x00,0x00,0xb8,0xc5,0x33,0x28;code uchar ds18b20_num68=0x52,0x00,0x00,0x00,0xb8,0xc5,0x34,0x28;code uchar ds18b20_num78=0x65,0x00,0x00,0x00,0xb8,0xc5,0x35,0x28; code uchar ds18b20_
8、num88=0x3c,0x00,0x00,0x00,0xb8,0xc5,0x36,0x28; uchar my_temp9;void get1_ds18b20(void);void get2_ds18b20(void);void get3_ds18b20(void);void get4_ds18b20(void);void get5_ds18b20(void);void get6_ds18b20(void);void get7_ds18b20(void);void get8_ds18b20(void);void es_isr (void) ; uchar i; / uchar *ds18b20
9、_rom; char *str1=1:;char *str2=2:;char *str3=3:; char *str4=4:;char *str5=5:;char *str6=6:;char *str7=7:;char *str8=8:;void delay(unsigned int time)unsigned int i,j;for(i=0;itime;i+)for(j=0;j200;j+);void main(void) scon = 0x50; /串口方式1,允许接收tmod = 0x20; /定时器1定时方式2 pcon=0x00;th1 = 0xfd; /11.0592mhz 480
10、0波特率tl1 = 0xfd;et1=0;es=1;ea=1; /4800*2=9600波特率tr1 = 1; /* while(1)sbuf=1;while(!ti);ti=0;delay(1000); */serial_set(); lcd_init(); clrscreen();/gotoxy(0,0); /dot_dis=1;/ds18b20_rom=read_rom(); /读序列号/for(i=0;i8;i+) /ds18b20_num2i=*ds18b20_rom;/ds18b20_rom+;/gotoxy(0,1);/for(i=0;i8;i+) /显示序列号/print_ch
11、ar(ds18b20_num2i/16);/print_char(ds18b20_num2i%16);/while(1)get1_ds18b20();get2_ds18b20(); get3_ds18b20(); get4_ds18b20(); delay(1000); clrscreen(); get5_ds18b20(); get6_ds18b20();get7_ds18b20();get8_ds18b20();delay(1000); clrscreen(); void get1_ds18b20(void)ds18b20_init(); ds18b20_writecommand(0xcc
12、); ds18b20_writecommand(0x44); /转换delay(500);match_rom(ds18b20_num1); /匹配第一路 ds18b20_writecommand(0xbe); /读 for(i=0;i2;i+) tempi=ds18b20_readdata(); my_temp1= (temp1&0x7)*0x10+(temp0&0xf0)/0x10;temperature_process(temp0,temp1);screen_home();print(str1);if(!flag) /正print(zhen_temp);if(dot_dis)print(.
13、);print(xiaoshu_temp);else /负print(-);print(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp); print( );void get2_ds18b20(void)ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); /转换delay(500);match_rom(ds18b20_num2); /匹配第二路 ds18b20_writecommand(0xbe); /读 for(i=0;i2;i+) tempi=ds
14、18b20_readdata(); my_temp2= (temp1&0x7)*0x10+(temp0&0xf0)/0x10;temperature_process(temp0,temp1);gotoxy(9,0);print(str2);if(!flag) /正print(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp);else /负print(-);print(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp);print( );void get3_ds18b20(void)ds18b2
15、0_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); /转换delay(500);match_rom(ds18b20_num3); /匹配第三路 ds18b20_writecommand(0xbe); /读for(i=0;i2;i+) tempi=ds18b20_readdata(); my_temp3= (temp1&0x7)*0x10+(temp0&0xf0)/0x10;temperature_process(temp0,temp1);gotoxy(0,1);print(str3);if(!flag) /正pri
16、nt(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp);else /负print(-);print(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp); print( );void get4_ds18b20(void)ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); /转换delay(500);match_rom(ds18b20_num4); /匹配第四路 ds18b20_writecommand(0
17、xbe); /读for(i=0;i2;i+) tempi=ds18b20_readdata(); my_temp4= (temp1&0x7)*0x10+(temp0&0xf0)/0x10; temperature_process(temp0,temp1);gotoxy(9,1);print(str4);if(!flag) /正print(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp);else /负print(-);print(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp);print(
18、 );void get5_ds18b20(void)ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); /转换delay(500);match_rom(ds18b20_num5); /匹配第五路 ds18b20_writecommand(0xbe); /读 for(i=0;i2;i+) tempi=ds18b20_readdata(); my_temp5= (temp1&0x7)*0x10+(temp0&0xf0)/0x10; temperature_process(temp0,temp1);scree
19、n_home();print(str5);if(!flag) /正print(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp);else /负print(-);print(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp); print( );void get6_ds18b20(void)ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); /转换delay(500);match_rom(ds18b20_
20、num6); /匹配第六路 ds18b20_writecommand(0xbe); /读 for(i=0;i2;i+) tempi=ds18b20_readdata(); my_temp6= (temp1&0x7)*0x10+(temp0&0xf0)/0x10; temperature_process(temp0,temp1);gotoxy(9,0);print(str6);if(!flag) /正print(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp);else /负print(-);print(zhen_temp);if(dot_di
21、s)print(.);print(xiaoshu_temp); print( );void get7_ds18b20(void)ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); /转换delay(500);match_rom(ds18b20_num7); /匹配第七路 ds18b20_writecommand(0xbe); /读 for(i=0;i2;i+) tempi=ds18b20_readdata(); my_temp7= (temp1&0x7)*0x10+(temp0&0xf0)/0x10; temperature_process(temp0,temp1);gotoxy(0,1);print(str7);if(!flag) /正print(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp);else /负print(-);print(zhen_temp);if(dot_dis)print(.);print(xiaoshu_temp); print( );void get8_ds18b20(void)ds18b20_init(); ds18b20_write
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中介门店装修升级合同范例
- 企业管理课程故事
- 2025《采购代理合同》
- 2025年中外合资企业土地使用权合同书
- 体育培训新合同标准文本
- 公司对接合同范例
- 幼儿园动手能力发展教育
- 个人借款协议合同标准文本
- 2025年合同押运驾驶员年度总结与担保行业合同监管调研报告汇编
- it外包结算合同标准文本
- 2024年海城市属事业单位考试试卷
- 《休闲农业》课件 项目三 休闲农业资源及开发
- 数学-江西省萍乡市2024~2025学年度2025届高三一模考试试卷(萍乡一模)试题和答案
- 2025年全国体育单招高三模拟冲刺政治试题(三)(解析版)
- 宁波十校2025届高三3月联考地理试卷(含答案)
- T-SZSA 021-2024 小型离网式家用光伏发电系统技术规范
- 利用DeepSeek优化水资源管理
- 2025年合作经营民宿合同模板
- 部编版三年级语文下册《蜜蜂》作业设计
- 三基三严习题库(含答案)
- 2025年江苏南通职业大学招聘事业编制人员34人历年高频重点提升(共500题)附带答案详解
评论
0/150
提交评论