基于单片机的电子式智能温度计设计 嵌入式系统课程设计_第1页
基于单片机的电子式智能温度计设计 嵌入式系统课程设计_第2页
基于单片机的电子式智能温度计设计 嵌入式系统课程设计_第3页
基于单片机的电子式智能温度计设计 嵌入式系统课程设计_第4页
基于单片机的电子式智能温度计设计 嵌入式系统课程设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的电子式智能温度计设计嵌入式系统课程设计第1页共15页计算机科学系课程设计报告环节名称:嵌入式系统课程设计姓名:学号:班级:时间:2011-07-9地点:1408/科技制作中心指导教师:一、任务和要求1、课程设计任务:(1).分组完成一个课题的制作。(2).按要求完成课题的功能。(3).绘制电路的原理图,使用Protues仿真软件进行仿真调试。(4).利用ProtelDXP2004设计PCB电路图,并进行PCB板子的制作。(5).进行元器件的焊接、装配,并进行硬件测试。(6).进行软、硬件联机调试。(7).安装成产品。2、课程设计要求:本设计通过理论学习,资料查阅,软、硬件设计,系统调试等环节,巩固和提高所学的知识和应用水平,进一步学习和领会嵌入式电子产品开发方法和技巧,提高自己的分析问题和解决问题的能力,提高学生的实际动手能力。学会提出问题,观察和分析问题,得到最终的科学方法。培养团队合作精神,严谨的工作作风,务实的工作态度。为今后的毕业设计,及从事嵌入式电子产品的设计与维护奠定坚实的基础。二、内容和结果(1)设计意义:温度计是日常生活、工业、医学、环境保护、化工、石油等领域最常遇到的一个物理量。测量温度的基本方法是使用温度计直接读取温度。最常见到的测量温度的工具是各种各样的温度计,例如,水银玻璃温度计,酒精温度计,热电偶或热电阻温度计等。它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。但是传统的温度计还不够准确,并且不太方便查看,所以数字的温度计开始应运而生,也开始扩大了使用的范围,所以这种温度计不仅有很大的市场,同时还有很大的使用价值。利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,又直观准确。(2)本人所做工作:1.首先是计划任务书的编写,然后进行protues原理图的绘制。2.进行电源部分的设计。3.显示与温度计算和主函数部分的程序编辑。4.后续的PCB转印、焊接、调试修改。(3)主要功能:本次的课程设计的产品本来应该具有的功能是:首先,具有上下限报警温度的调节,同时还具有温度报警的功能,但是只有在一定情况下才能够运行报警的功能,否则只是一个很普通的温度计;然后就是具有断电后记忆上下限温度的功能,同时具有在不掉电的情况下对调节的温度进行复位;最后就是对于实时温度的显示。但是后期的制作过程中,出现了很多问题,不仅有硬件方面的还有软件方面的问题,同时在最后时,没有了单片机,电源线也出现了断裂。实现的功能就只有:1、上下限报警温度的调节,同时还具有温度报警的功能。2、在一定情况下才能够运行报警的功能,否则只是一个很普通的温度计。3、在不掉电的情况下对调节的温度进行复位。4、对于实时温度的显示。设计方案以及思路:单片机的性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。而现在单片机在农业上也有了很多的应用。所以此次的课程设计的东西还可以运用在农业上,特别是对于温度湿度要求较高的大棚当中,这样的一个温度报警就是非常实用的。同时单片机控制的方便,快捷。(1)电路原理图:1.Protues仿真图:2.Protel原理图:(2)PCB图4、原器件清单:元件名称元件数值元件备注元件数量元件价格单片机AT89C5240引脚17电源连接线USB接口1充电器220V交流输入5V直流输出不带线5数码管共阴极四位一体14蜂鸣器直流10.5电阻100Ω180Ω200Ω1K10K两脚各一个0.5瓷片电容30PF30PF0.1UF两脚各一个0.3晶振12MHZ两脚10.5极性电容470uF/16v150uF/5v两脚各一个1温度传感器DS18B20三脚15存储器24C02八脚11.5排阻内8电阻1K共9针10.3发光二极管最好是两种颜色(0.5mm)两脚20.5三极管NPNPNP三脚各一个0.2按键按下自动恢复(四脚)50.2运行开关按下不恢复(六脚)10.1八脚底座八脚11.5四十脚底座四十脚13PCB版覆铜板9*10CM29*10CM22塑料板10*11CM210*11CM20.5螺丝钉40.5总价:35.15、(1)程序思路:程序利用单片机89C52来控制,同时辅助的还有独立按键,温度传感器DS18B20,共阴极数码管显示。开启本产品就进行温度的测试并且还进行温度的实时显示。当运行按键按下时,进行报警的查找,当达到报警的条件就报警,否则就只是对实时温度的检测和对实时温度的显示。(2)功能模块:电源部分:(220V交流输入5V直流输出)显示部分:(共阴极数码管)控制部分:报警部分:(一个LED灯一个蜂鸣器)(3)流程图:主程序(DS18B20.C):DS18B20.H把DATA数据传给DQDATA=1;初始化传感器voiddelay(uintnum)延时宏定义端口定义开始开始开中断开定时器关闭报警把DATA数据传给DQDATA=1;初始化传感器voiddelay(uintnum)延时宏定义端口定义开始开始开中断开定时器关闭报警显示开机画面等待按键结束读取DS18B20读取DS18B20字节KEYSCAN.H开始DATA=0;开始DATA=0;dat>>=1;DATA=1;if(DATA)dat|=0x80;宏定义端口定义宏定义端口定义return(dat)返回值return(dat)返回值voiddelay1(uintz)延时voiddelay1(uintz)延时if(shangxian<0)上限显示处理if(shangxian<0)上限显示处理写入DS18B20字节DATA=0;DATA=dat&0x01;DATA=0;DATA=dat&0x01;DATA=1;dat>>=1;if(DATA)dat|=0x80;shang_f[1]=shangxianf%100/10;shang_f[1]=shangxianf%100/10;shang_f[2]=shangxianf%10;shangxianf=-(shangxian);if(shangxian>=0)ReadTemperature(void)读温if(shangxian>=0)ReadTemperature(void)读温a=Readonuchar();低位给ab=Readonuchar(); a=Readonuchar();低位给ab=Readonuchar(); 高位给bshang[0]=shangxian/100;shang[0]=shangxian/100;shang[1]=shangxian%100/10;shang[2]=shangxian%10;tvalue=b;tvalue=b;高位赋给tvalueif(xiaxian<0)下if(xiaxian<0)下限显示处理tvalue<<=8;tvalue=tvalue|a;左移八位,与a整合xiaf[1]=xiaxianf%100/10;xiaf[1]=xiaxianf%100/10;xiaf[2]=xiaxianf%10;xiaxianf=-(xiaxian);tt=tvalue*(0.0625);tt=tvalue*(0.0625);tvalue=tt;return(tvalue);返回值return(tvalue);返回值if(xiaxian>=0)if(xiaxian>=0)#endif结束宏定义#endif结束宏定义xia[0]=xiaxian/100;xia[1]=xiaxian%100/10;xia[0]=xiaxian/100;xia[1]=xiaxian%100/10;xia[2]=xiaxian%10;结束voidAlarm()voidAlarm()报警程序if(((tvalue>shangxian)&&(set_st==0))||((tvalue<xiaxian)&&(set_st==0)))if(((tvalue>shangxian)&&(set_st==0))||((tvalue<xiaxian)&&(set_st==0)))报警否则不报警报警否则不报警检测实时温度显示检测实时温度显示如果voiddisplay_fu()如果voiddisplay_fu()wenduf[0]=aa/100;wenduf[0]=aa/100;wenduf[1]=aa%100/10;wenduf[2]=aa%10;aa=-(temp);结束结束#endif结束宏定义如果voiddisplay()#endif结束宏定义如果voiddisplay()if(xiaxian<-50)xiaxian=-50;wenduf[0]=aa/100;if(xiaxian<-50)xiaxian=-50;wenduf[0]=aa/100;wenduf[1]=aa%100/10;wenduf[2]=aa%10;shangxian--;if(shangxian<xiaxian)shangxian--;if(shangxian<xiaxian)shangxian=xiaxian;if(DEC==0)delay1(5);if(DEC==0)delay1(5);消抖按键函数程序if(shangxian>128)shangxian=128;if(SET==0)if(shangxian>128)shangxian=128;if(SET==0)调整键按下if(ADD==0)delay1(5);if(ADD==0)delay1(5);消抖delay1(5);消抖if(set_st==1)调节上限if(set_st==1)调节上限和下限set_st++;if(set_st>2)set_st=0;if(START==0)运行键按下查找报警while(!SET);等待松手if(START==0)运行键按下查找报警while(!SET);等待松手temp=ReadTemperature();读温度if(set_st==0)temp=ReadTemperature();读温度if(set_st==0)状态标志位为06、(1)外观设计图:显示显示按按键部分这是最开始的外观设计图,本来是想做一个体温计,但是由于某些原因改为了现在的。(2)制作工艺:外观利用塑料的板子和螺丝钉制作而成,但是由于具体的情况限制,只是做了一边,还不算得上是外壳。首先裁剪一块大小和电路板差不多大小的塑料板子,然后用打磨的方式把边距弄得平整光滑,最后依次上螺丝钉。7、产品样图:8、其他:DS18B20:宽电压范围3.0——5.5V,在寄生电源方式下可由数据线供电。采用单总线接口,只需要一个I/O口即可。多点组网,多个DS18B20可以同时挂接在总线上。体积小巧,犹如一只三极管。测量温度范围在—55到+125℃,在—10到+85℃的时候精度为±0.5℃。可编程分辨率:9—12位,对应的可分辨温度为0.5℃,0.25℃、0.125℃和0.0625℃。在9位分辨率时,最多在93.75ms内把温度转换为数字,在12位分辨率时,最多在750ms内把温度转换为数字。测量结果以数字信号输出,以单总线进行串行传送。并且可以传送CRC校验码,具有极强的抗干扰纠错能力。负压特性:电源极性接反时,芯片不会因发热而烧毁,但是不能够正常工作。三、课程设计体会:本次的课程设计对我的提高很大,可以说是第一次制作这样的东西,不见你要考虑到产品的功能,同时还应该考虑到产品的外观设计,可以说是比较全面的设计了。最主要还有就是要合理的布局硬件电路才能够做到一个好的产品。当然在这次的课程设计当中遇到的困难对

温馨提示

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

评论

0/150

提交评论