智能仪器课程设计报告_第1页
智能仪器课程设计报告_第2页
智能仪器课程设计报告_第3页
智能仪器课程设计报告_第4页
智能仪器课程设计报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能仪器课程设计报告题目基于单片机的智能温度控制系统院系xxxxx专业xxxxxxxxxxxx学生姓名xx学号xxxxxxxxx指导教师xxx二O一二年十二月一日一、设计目的通过单片机STC12C56A600S2和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,数码显示管的使用,汇编语言的设计;并且把我们这一年所学的数字和模拟电子技术、检测技术、单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实际问题,以达到提升学生的综合能力、动手能力、文献资料查阅能力的作用,为毕业设计和以后工作打下一个良好的基础。二、设计任务和要求以单片机为核心器件,组成一个数字温度计,采用数字温度传感器DS18B20为检测器件,进行单点温度检测,检测精度为0.5摄氏度。温度显示采用3位LED数码管显示,两位整数,一位小数。测温范围-20℃-60℃,精度误差小于0.5℃。三、功能需求和总体思路本设计是一个数字温度测量及控制系统,能测柜内的温度,并能在超限的情况下进行控制、调整并报警。保证环境保持在限定的温度中。该系统的总体设计思路如下:温度传感器DS18B20把所测得的温度发送到STC12C56A600S2单片机上,经过STC12C56A600S2单片机处理将把温度在显示电路上显示。本系统除了显示温度以外还可以设置一个温度值,对所测温度进行监控。当温度高于或低于设定温度时,开始报警并启动相应程序。K1是用来进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限调节模式,再按一下退出调节模式。在调节上下限温度模式下,K2是实现加1功能,K1是实现减1功能,K3是用来设定上下限温度正负的。在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动退出;按一下K3进入查看下限温度模式,显示1s左右自动退出。K4正常模式下用来设置和取消按键音。上下限设置模式下是用来设置温度的正负。四、硬件部分设计1.单片机最小系统的设计单片机的工作就是执行用户程序,指挥各部分硬件完成既定任务。如果一个单片机芯片没有烧录用户程序,显然它就不能工作。可是,一个烧录了用户程序的单片机芯片。给它上电后就能工作吗?也不能。原因是除了单片机外,单片机能够工作的最小电路还包括时钟和复位电路。即单片机的最小系统。单片机是一个复杂的同步时序电路。为了保护同步工作方式的实现,电路应在唯一的时序信号控制下严格地按时序进行工作。时钟电路用于产生单片机工作所需要的时钟信号。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。单片机的复位是使CPU和系统中的其他功能部件都回复到一个确定的初始状态,并从这个状态开始工作。2.DB18B20功能简介DS18B20数字式温度传感器与传统的热敏电阻温度传感器不同,它能够直接读出被测温度。并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75ms和750ms内将温度值转化9位和12位的数字量。因而使用DS18B20可使系统结构更简单,可靠性更高。芯片的耗电量很小,从总线上“偷”一点电存储在片内的电容中就可正常工作,一般不用另加电源。最可贵的是这些芯片在检测点已把被测信号数字化了。因此在单总线上传送的是数字信号这使得系统的抗干扰性好、可靠性高、传输距离远。DS18B20传感器有如下特点:●单线接口,只有一根信号线与CPU连接;●不需要备份电源,可通过信号线供电,电源电压范围从3.3-5V;●传送串行数据,不需要外部元件;五、系统程序流程图主程序是系统的监控程序,在程序运行的过程中必须先经过初始化,包括键盘程序。中断程序,以及各个控制端口的初始化工作。系统软件设计的总体流程图:主程序流程图DS18B20流程图Protel电路图软件仿真图六软件程序设计#include<reg51.h>#include<stdio.h>#defineucharunsignedchar#defineuintunsignedintsbitds=P2^2;sbitdula=P2^6;sbitwela=P2^7;sbitbeep=P2^3;uinttemp;floatf_temp;uintwarn_l1=270;uintwarn_l2=250;uintwarn_h1=300;uintwarn_h2=320;sbitled0=P1^0;sbitled1=P1^1;sbitled2=P1^2;sbitled3=P1^3;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voiddsreset(){uinti;ds=0;i=103;while(i>0)i--;ds=1;i=4;while(i>0)i--;}bittempreadbit(){uinti;bitdat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8;while(i>0)i--;return(dat);}uchartempread(){uchari,j,dat;dat=0;for(i=1;i<=8;i++){j=tempreadbit();dat=(j<<7)|(dat>>1);}return(dat);}tempwritebyte(uchardat){uinti; ucharj; bittestb; for(j=1;j<=8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) { ds=0; i++;i++; ds=1; i=8;while(i>0)i--; } else { ds=0; i=8;while(i>0)i--; ds=1; i++;i++; } }}tempchange(){dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0x44);}uintget_temp(){uchara,b;dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();b=tempread();temp=b;temp<<=8;temp=temp|a;f_temp=temp*0.0625;temp=f_temp*10+0.5;f_temp=f_temp+0.05;returntemp;}display(ucharnum,uchardat){uchari;dula=0;P0=table[dat];dula=1;dula=0;wela=0;i=0xff;i=i&(~((0x01)<<(num)));P0=i;wela=1;wela=0;delay(50);}dis_temp(uintt){uchari;i=t/100;display(0,i);i=t%100/10;display(1,i+10);i=t%100%10;display(2,i);}warn(uints,ucharled){uchari;i=s; beep=0; P1=~(led); while(i--) { dis_temp(get_temp()); } beep=1; P1=0xff; i=s; while(i--) {dis_temp(get_temp()); } }deal(uintt){uchari; if((t>warn_l2)&&(t<=warn_l1)) { warn(40,0x01); } elseif(t<=warn_l2) { warn(10,0x03); } elseif((t<warn_h2)&&(t>=warn_h1)) { warn(40,0x04); } elseif(t>=warn_h2) { warn(10,0x0c); } else { i=40; while(i--) { dis_temp(get_temp()); } }} init_com() { TMOD=0x20; PCON=0x00; SCON=0x50; TH1=0xfd; TL1=0xfd; TR1=1; }comm(char*parr){do { SBUF=*parr++; while(!TI); TI=0; }while(*parr);}main(){ucharbuff[4],i;dula=0;wela=0;init_com();while(1){tempchange(); for(i=10;i>0;i--) { dis_temp(get_temp()); } deal(temp); sprintf(buff,"%f",f_temp); for(i=10;i>0;i--) { dis_temp(get_temp()); } comm(buff); for(i=10;i>0;i--) { dis_temp(get_temp()); }}} 七设计中遇到的问题及解决方法:首先,将数码管显示电路连接好后,为了检查连线是否正确,可将电源负极与各接地端链结好,用电源正极试探LED数码管个管脚与CD40110是否正确连接,若出现笔段不亮的情况,应该仔细检查该线路。若各LED数码管的引脚与CD40110连接线路正确且完好,下一步则是验证CD40110能否驱动显示LED数码管,将CD4011LE、CRCRDVSS都接地,VCC接高电平,接通电路后,LED数码管亮且显示0,说明该线路正确。接着,将待测方波按电路图接好后,为了检查该电路是否产生脉冲,将输出端接至右边第一片CD40110的CPU端,LED数码管显示技数值,说明该电路连接正确且符合实际标准要求。其次,对于控制电路的调试,其方法和待测方波发生电路调试相同,即检测输出是否产生及输出满足设计要求,将控制电路按电路图连接好,把反向后输出信号接至CD40110的CP-U端,观察是否在计数,若不能则说明电路连接有问题,纠正后再观察,直至产生1.5S左右计数的脉冲,另外,经微电路后的输出接至CP-U端,观察是否有脉冲产生且每隔1.5S左右计数加1,若计数正确,说明电路完好,最后对于总电路的调试,因各单元电路调试好后,只需按原电路图链接正确后,观察结果是否符合设计要求,并且要求电路能稳定,按总电路图接好后,首先检查清零信号是否符合设计要求,并且要求电路能稳定,按总路图连接好后,首先检查清零信号是否能有效的清零,将CT接地,清零信号接CR端,待测信号接CP-U端其余接总电路图连接,观察每隔1.5S计数后立即清零,说明清零有效,其次将闸门信号接CT端,CR接地。其余按总电路图连接,观察每隔1S计数停止,约0.5s继续计数,说明闸门信号设计正确,最后按电路图连接好后,接通电源,观察到计数1S停顿一段时间后清零并继续进行1S继续计数,也完成频率的测量。八分工与合作xx负责电路图设计和软件程序设计、xx负责电路图和程序的检查,报告的完成。总结本温度测量系统设计,是采用DS18B20温度传感器经过放大和送到单片机进行控制温度显示和时间显示。另外本系统还可以通过外接电路扩展实现温度报警功能,从而更好的实现温度现场的实时控制。经过多次的修改和调试测量,本设计基本符合设计要求,由于受人为因素和软硬件的限制,系统难免不了带来一些误差,但通过调节和精确计算可以减小误差。这次课程设计历时2个星期,从一开始的课题确定,到后来的资料查找、理论学习,然后调试和测试过程,这一切都使我们的理论知识和动手能力进一步得到提升。在画原理图、电路仿真和调试过程中不可避免地遇到各种问题,这要求保持沉着冷静,联系书本理论知识积极地思考,实在解决不了时候可以请教同学或指导老师。虽然在制作过程中不可避免地遇到很多问题,但是最后还是在老师以及同学的帮助下圆满解决了这些问题,实现了整个系统设计与最后调试,相关指标达到预期的要求,很好地完成了本次设计任务。通过本次课程设计,对温度测量控制有了进一步的熟悉和更深入的学习。在整个设计的过程中,本设计的重点和难点是:将DS18B20的非电量信号转换为单片机单片机能识别的电量信号,其中的信号如何放大及放大倍数的确定等等。了解并掌握了传感器的基本理论知识,更深入的掌握单片机的开发应用和编程控制。为以后从事单片机软硬件产品的设计开发、打下了良好的基础,树立独立从事产品研发的信心,并在这种能力上得到了比较充分的锻炼。利用Proteus与KEILC51对单片机多点温度测量系统进行了仿真设计。从本文结果可以看出,利用Proteus进行单片机系统的仿真设计可以极大地简化单片机程序在目标硬件上的调试工作,大幅度节省制作电路板的时间,对于提高产品的开发效率、降低开发成本等有重要作用。在程序编写和调试的过程中稍一粗心就会出现错误,包括时间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论