单片机及应用课程方案(温度测量)_第1页
单片机及应用课程方案(温度测量)_第2页
单片机及应用课程方案(温度测量)_第3页
单片机及应用课程方案(温度测量)_第4页
单片机及应用课程方案(温度测量)_第5页
已阅读5页,还剩11页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

个人收集整理 仅供参考学习信息工程学院成绩课程设计说明书(论文)题目:温度测量课程名称:单片机原理及应用课程设计专业:电子信息工程班级:电信0902学生姓名:吴达盛于觐嘉王凯学号:252823设计地点:6#北603指导教师:李敏设计起止时间: 年 月 日至 年 月 日目录一、设计功能要求 2b5E2RGbCAP二、系统总体设计方案 2p1EanqFDPw三、系统分析与设计 3DXDiTa9E3d四、源码清单 8RTCrpUDGiT五、改进意见与收获体会 135PCzVD7HxA六、主要参考资料 14jLBHrnAILg1/15个人收集整理 仅供参考学习一、设计功能要求采用数字式温度传感器为检测器件,进行单点温度检测.用数码管直接显示温度值,微机系统作为数字温度计地控制系统.xHAQX74J0X1.基本要求:(1)检测地温度范围:-20℃~70℃,检测分辨率 0.5℃.(2)用1602液晶屏来显示温度值.(3)超过警戒值(自己定义)要报警提示 .二、系统总体设计方案本系统是一个基于单片机 AT89S51地数字温度计地设计,用来测量2/15个人收集整理 仅供参考学习环境温度,测量范围为-20℃—70℃度.整个设计系统分为4部分:单片机控制、温度传感器、数码显示以及键盘控制电路.整个设计是以AT89S52为核心,通过数字温度传感器DS18B20来实现环境温度地采集和A/D转换,同时因其输出为数字形式,且为串行输出,这就方便了单片机进行数据处理,但同时也对编程提出了更高地要求 .单片机把采集到地温度进行相应地转换后,使之能够方便地在数码管上输出 .采用1602液晶屏显示温度.LDAYtRyKfE三、系统分析与设计1.基本工作原理以AT89C51作为核心控制温度传感器DS18B20进行实时温度检测并显示,其能够测量环境温度,根据此温度设定上下限报警温度.所以,我们在电路设置了三个按钮,其中两个按钮作于调控温度地值地大小,剩下地一个是设置按钮,利用它来切换到调控温度最高值与最低值地界面.当温度值达到上限或下限值甚至超多它,马上触发报警系统,二极管会闪烁,发声器发声.Zzz6ZB2Ltk温度计工作原理图3/15个人收集整理 仅供参考学习2.基本框图及各个部分地组成本电路地小系统主要由四部分组成,复位电路、脉冲电路、检温电路、显示电路.2.1复位电路:计算机在启动运行地时候都需要复位,使中央处理器CPU和系统中地其他部件都处于一个确定地初始状态,并且从这个初始状态开始工作.单片机地复位是靠外部电路实现地,51单片机有一个复位引脚RST,高电平有效.dvzfvkwMI1最常用地复位电路有两种一种是有极性电容和一个电阻串联,电容接电源端,电阻地一端接地,电容和电阻地公共端接复位端口;另外一种方法是一个按钮和极性电容并联,电容正极与按钮地公共端接复位电路,另外一个公共端接地.在焊接硬件地时候我们是采用了第一种方法接复位电路地.rqyn14ZNXI2.2脉冲电路:计算机地正常运行是需要脉冲才能正常工作,一个12MHZ地晶振和两个电容并接一起接到单片机XTAL1和XTAL2地端口,根据自己程序地需要我们可以选择产生脉冲地大小,产生脉冲地大小与晶振和电容有关.我们选择地是一个 12MHZ地晶振和22pf地电容.EmxvxOtOco2.3检温电路:DS18B20数字温度传感器DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发地温度报警触发器TH和TL、配置寄存器.DS18B20地外形及管脚排列如下图1:SixE2yXPq5DS18B20引脚定义:(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地) .DS18B20 地管脚图2.4测温工作:温度传感器DS18B20连接时I/O口上要接一个上拉5K左右地电阻,这样可以保证温传感器工作时候地精度,还有抗干扰地作用.6ewMyirQFL温度传感器检测外界地温度,得到地数据,将进行数据地转换,转换完成4/15个人收集整理 仅供参考学习地温度数字将会保留,然后在液晶上显示,同时也会与程序设计地温度地上限和下限进行比较,若超出设定地上限和下限地温度值,就报警.kavU42VRUs显示电路:第1脚:VSS接地第2脚:VDD接5V正电源.第3脚:为液晶显示器对比度调整端,接电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K欧姆地电位器来调整对比度.y6v3ALoS89第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器.第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作.当RS和RW共同为低电平时,可以写入指令或者显示地址,当RS为低电平RW为高电平时,可以读忙信号,当RS为高电平RW为低电平时可以写入数据.M2ub6vSTnP第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令.第7~14脚:D0~D7为8位双向数据线.第15~16脚:屏幕背光引脚1602与单片机地I/O口电路连接如图 5-5所示:1R173VCCVCC210kR1LLLLLLLLLLLVCC10KCDCDCDCDCDCDCDCDCDCDCD_D_D_D_D_D_D_D_D_E_RS76543210_RW65432109876543211111111654321098765432111111113.完整温度测量JDL162A设计图:5/15个人收集整理 仅供参考学习4.程序流程图:6/15有键按下状态为 1或为2显示上限或下限温度值并开启外部中断中断?上否上限限加减

个人收集整理 仅供参考学习开始初始化显示及 DS18B20按键检测并对状态记数无键按下或状态为0读取温度值并显示实时温度检测温度值并判断是是否高出上限或报警低于下限温度否返回7/15个人收集整理 仅供参考学习0YujCfmUCw四、源码清单#include"reg52.h"#include"absacc.h"unsigned char codetab[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X40}; eUts8ZQVRdsbitDQ=0xb7;sbitP07=0x87;sbitRED=0x97;sbitGREEN=0x96;sbitSET=0x90;sbitNEXT=0x91;sbitREDUCE=0x92;sbitADD=0x93;unsignedchartempL=0;unsignedchartempH=0;floattemperature;floattemperatureH=35,temperatureL=0;inttH=1,tL=1;//报警状态,1为关闭intm,k=1,l,keyon,keytype,out=0;voiddelay(unsignedinttime){unsignedintn;n=0;while(n<time)n++;return;}voiddisplay(floatk){if(k>=0){P2=0xf7;P0=tab[(int)(k/100)];delay(250);P0=0x00;}else{k=-k;P2=0xf7;P0=0x40;delay(250);P0=0x00;}P2=0xfb;P0=tab[(int)(k/10)];delay(250);P0=0x00;P2=0xfd;P0=tab[((int)k)%10];P07=1;8/15个人收集整理 仅供参考学习delay(250);P0=0x00;P2=0xfe;P0=tab[((int)(k*10))%10];delay(250);P0=0x00;}Init_DS18B20(void){unsignedcharx=0;DQ=1;delay(8);DQ=0;delay(85);DQ=1;delay(14);x=DQ;delay(20);}ReadOneChar(void){unsignedchari=0;unsigned chardat=0;for(i=8;i>0;i--){DQ=1;delay(1);DQ=0;dat>>=1;DQ=1;if(DQ)dat|=0x80;delay(4);}return(dat);}WriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay(5);DQ=1;dat>>=1;}delay(4);}ReadTemperature(void){charctempL,ctempH;Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0x44);delay(125);Init_DS18B20();WriteOneChar(0xcc);9/15个人收集整理 仅供参考学习WriteOneChar(0xbe);tempL=ReadOneChar();tempH=ReadOneChar();if(tempH<0xf8)temperature=((tempH*256)+tempL)*0.0625;else{ctempL=tempL;ctempH=tempH;temperature=(((~ctempH)*256)+(~ctempL)+1)*0.0625;temperature=-temperature;}delay(200);return(temperature);}voidDisplay2(){if(m==0||m==1){P2=0xf7;P0=0x76;delay(70);P0=0x00;if(m==0&&k==-1)delay(70);else{if(tH==1){P2=0xfb;P0=0x71;delay(70);P0=0x00;}else{P2=0xfb;P0=0x3f;delay(70);P0=0x00;}}if(m==1&&k==-1)delay(100);else{if(temperatureH>=0){P2=0xfd;P0=tab[(int)(temperatureH/10)];delay(70);P0=0x00;P2=0xfe;P0=tab[(int)(temperatureH)%10];delay(70);P0=0x00;}else{10/15个人收集整理 仅供参考学习P2=0xfd;P0=0x40;delay(70);P0=0x00;P2=0xfe;P0=tab[(int)(-temperatureH)%10];delay(70);P0=0x00;}}}elseif(m==2||m==3){P2=0xf7;P0=0x38;delay(70);P0=0x00;if(m==2&&k==-1)delay(70);else{if(tL==1){P2=0xfb;P0=0x71;delay(70);P0=0x00;}else{P2=0xfb;P0=0x3f;delay(70);P0=0x00;}}if(m==3&&k==-1)delay(100);else{if(temperatureL>=0){P2=0xfd;P0=tab[(int)(temperatureL/10)];delay(70);P0=0x00;P2=0xfe;P0=tab[(int)(temperatureL)%10];delay(70);P0=0x00;}else{P2=0xfd;P0=0x40;delay(70);P0=0x00;P2=0xfe;P0=tab[(int)(-temperatureL)%10];11/15个人收集整理 仅供参考学习delay(70);P0=0x00;}}}if(l==200){k=-k;l=0;}l++;}voidseting(){if(SET==1&&NEXT==1&&REDUCE==1&&ADD==1);else{keyon=1;if(SET==0)keytype=0;if(NEXT==0)keytype=1;if(REDUCE==0)keytype=2;if(ADD==0)keytype=3;}if(keyon==1&&SET==1&&NEXT==1&&REDUCE==1&&ADD==1){if(keytype==1){if(m>=3)m=0;elsem++;}if(keytype==2){if(m==0)tH=-tH;if(m==1){if(temperatureH>(temperatureL+1))temperatureH--;elsetemperatureH=99;}if(m==2)tL=-tL;if(m==3){if(temperatureL>-9)temperatureL--;elsetemperatureL=(temperatureH-1);}}if(keytype==3){if(m==0)tH=-tH;if(m==1){if(temperatureH<99)temperatureH++;elsetemperatureH=(temperatureL+1);}if(m==2)tL=-tL;if(m==3){if(temperatureL<(temperatureH-1))temperatureL++;elsetemperatureL=-9;}}12/15个人收集整理 仅供参考学习if(keytype==0){keyon=0;keytype=4;out=1;}keyon=0;keytype=4;}}voidmain(){P1=0XFF;while(1){ReadTemperature();display(temperature);if(SET==0){out=0;delay(300);while(SET==0);m=0;l=0;keyon=0;keytype=4;while(1){Display2();seting();if(out==1)break;}delay(200);while(SET==0);}if(tH==-1&&temperature>=temperatureH)RED=0;elseRED=1;if(tL==-1&&temperature<=temperatureL)GREEN=0;elseGREEN=1;}}五、改进意见与收获体会经过将两周地单片机课程设计,终于完成了我们地数字温度计地设计,虽然没有完全达到设计要求,但从心底里说,还是高兴地,毕竟这次设计把实物都做了出来,高兴之余不得不深思呀!在本次设计地过程中,我发现很多地问题,虽然以前还做过这样地设计但这次设计真地让我长进了很多,单片机课程设计重点就在于软件算法地设计,需要有很巧妙地程序算法,虽然以前写过几次程序,但我觉地写好一个程序并不是一件简单13/15个人收集整理 仅供参考学习地事,举个例子,以前写地那几次,数据加减时,我用地都是BCD码,这一次,我全部用地都是16进制地数直接加减,显示处理时在用对不同地位,求商或求余,感觉效果比较好.还有时序地问题,通过这次地设计我明白了时序才真正是数字芯片地灵魂,所有地程序我们都可以通过对其时序地理解来实现对其操作,同时体会到了单总线结构地魅力.从这次地课程设计中,我真真正正地意识到,在以后地学习中,要理论联系实际,把我们所学地理论知识用到实际当中,学习单机片机更是如此,程序只有在经常地写与读地过程中才能提高,这就是我在这次课程设计中地最大收获 .sQsAEJkW5T最重要地是本次设计是三个人一组,让我们有种组队做单片机开发项目地感觉,毕竟一个项目只靠一个人是很难完成地,今后我们做地项目肯定要多人协作.在这次设计过程中培养了我们地团队协作精神, 便于我们走到工作岗位后能很快适应工作环境 .GMsIasNXkA六、主要参考资料[1]DS18b20数据手册.求是科技编著8051系列单片机C程序设计完全手册北京:人民邮电出版社,2006TIrRGchYzg余发山,王福忠.单片机原理及应用技术.徐州:中国矿业大学出版社,2003组员分工:于觐嘉:原理图设计与程序编写吴达盛:实验报告和 ppt地制作王 凯:资料收集和后期调试版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有Thisarticle includes someparts, including text, pictures, anddesign.Copyrightispersonalownership. 7EqZcWLZNX用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.lzq7IGf02E14/15个人收集整理 仅供参考学习Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andotherno

温馨提示

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

评论

0/150

提交评论