欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

单片机课程设计报告远程智能温度采集和显示系统

  • 资源ID:148069224       资源大小:434.50KB        全文页数:15页
  • 资源格式: DOC        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

单片机课程设计报告远程智能温度采集和显示系统

单片机课程设计报告设计课题:远程智能温度采集和显示系统 专业班级: 08电子工程(2)班 学生姓名: xxx指导教师: xxx 设计时间:2011.4.72011.6.7 物理与电子工程学院远程智能温度采集和显示系统设计一、设计任务与要求1设计一个小型温度采集系统,具体要求如下:用数字温度传感器检测温度。单片机STC89C52从温度传感器读取温度数据,并送数码管显示,单片机再把数据传给MAX232进行电平转换,MAX232把转换后的数据传给PC机。数据可以双向传送,即PC机可以从单片机接收数据,也可以发送数据给单片机。温度采集系统可以设置温度的上、下限,当温度达到上、下限时能通过蜂鸣器和发光二极管报警。设计一个+5V的稳压电源给温度采集系统供电。2掌握PCB制板技术、焊接技术、电路检测以及单片机等集成电路的使用方法;3掌握远程智能温度采集显示系统的设计,组装与调试方法;二、方案设计与论证采用STC89C52芯片,该芯片内部有8K的ROM, STC89C52系列单片机是宏推出的新一代超强抗干扰、高速、低功耗的单片机,这个系列单片机在片内含有FLAH 存储器,因此有十分广泛的用途。特别是在便携式、省电和特殊信息保存的仪器中显得更为有用。由于STC89C52系列单片机的ISP在线编程功能优势在于改写单片机存储器的内的程序而不需要把芯片从工作环境中剥离,这是一个强大易用的功能,易于调试和修改。(2)、电源模块 用三端稳压芯片7805,即可为单片机提供稳定的5V电源。且成本低,接线方便。(3)显示模块 选用四位数码管作为显示输出。 由于本系统仅需要显示温度值,故选用四位数码管作为显示输出,操作方便。相比1602的操作繁琐,对时序要求严格,采用数码管动态扫描方式显示简单数据显得更加方便和灵活。降低了编程的难度,故选择用数码管作为显示输出。(4)温度检测模块采用集成温度传感器DS18B20作为温度测量的核心,具有接线简单,操作简单的优点。DS18B20 单线数字温度传感器,即“一线器件”,具有独特的优点:采用单总线的接口方式 与微处理器连接时 仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。 测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 + 125 ; 在 -10+ 85°C 范围内,精度为 ± 0.5°C 。鉴于方案二的电路更简单,成本也低,并且性能较好,故本设计采用此方案。三、硬件电路设计 设计的硬件电路主要包括以下几个部分:单片机、DS18B20测温电路、串口通信电路模块、MAX232电平转换电路、蜂鸣器报警及数码管显示电路MAX232电平转换蜂鸣器及发光二极管晶振复位电路DS18B20数码管显示PC机STC89C52 图1电路设计总体方框图(1)、测温电路:DS18B20的测温原理:内部计数器内部计数器对一个受温度影响的振荡器的脉冲计数,低温时振荡器的脉冲可以通过门电路,而当到达某一设置高温时,振荡器的脉冲无法通过门电路。计数器设置为55时的值,如果计数器到达0之前门电路未关闭,则温度寄存器的值将增加,这表示当前温度高于55。同时,计数器复位在当前温度值上,电路对振荡器的温度系数进行补偿,计数器重新开始计数直到回零。如果门电路仍然未关闭,则重复以上过程。温度转换所需时间不超过750ms,得到的温度值的位数因分辨率不同而不同。硬件电路图如下: 图2 DS18B20测温电路 (2)复位电路 单片机工作之后,只要在他的RST引线上加载10ms以上的高点平,单片机就能有效地复位。CS-51单片机通常采用自动复位和按键复位两种方式。这里采用按键复位和上电复位两种电路结合,电路图如下: 图3 复位电路 (3)、数码管显示电路 使用四位共阳数码管动态扫描的方式来显示温度值,数码管由PNP三级管9012来驱动。单片机与数码管间加限流电阻。电路图如下: 图4、显示电路 (4)报警与状态指示电路 由蜂鸣器与LED灯组成,指示温度状态及报警,电路图如下: 图5 报警及状态指示电路四、软件设计本次设计的软件部分主要在于STC89C52,主要包括温度采集,温度显示,串口通信,状态指示等。软件部分主要实现的功能是通过DS18B20将温度值采集进来,并显示在数码管上,同时判断当前的温度状态并指示或报警,同时由PC机通过串口进行温度读取,上下限设置等功能。五、安装与调试1焊接 查阅各种资料结合所学知识,规划好硬件设计与软件设计以后,就可以根据设计思路画出电路原理图。仔细检查,看是否与设计思路相同。画出原理图,再将原理图生成PCB图,调整元器件的位置,使整块PCB看起来更紧凑一些,尽量缩小板子的空间大小,再把元器件的各个管脚连接在一起,最后在适当的调整PCB图使图看起来更完美14。在画PCB图中遇到的最大问题就是:有些元器件的封装形式没有那要需要自己画。电路的可靠性以及抗干扰问题非常重要必须采取一定的措施。首先应考虑到元器件的选择,一定要选择抗干扰能力强的合适的元器件。当元器件确定之后,印刷电路板设计的好坏则直接影响着系统的稳定性和可靠性,规划电路板时应该做到:电路板的总体布局要合理;布线时走线尽可能的短、相邻线距离尽可能宽、过孔尽可能少;接地线应尽可能粗,要尽可能放在电路板的边缘部分;对于会产生干扰的元件,如按键、继电器等,应尽量放置在电路板的最边沿15,16。在焊接的时候要特别注意不要虚焊,焊接的温度不宜过高,若注意到在焊接的线路板附近有白烟冒出,说明温度偏高了。这个时候最好接触一些松香,等温度降下了再继续焊接。这样完成后的实物往往还存在着缺陷,在使用前应先进行硬件电路的调试。2调试调试对设计的完成来说无疑是非常重要的。这部分主要分为硬件调试和软件的调试。(1)硬件部分 硬件正常是软件调试及运行的前提,所以在硬件调试这一块要非常仔细认真。先大致观察整块板子有没有短路、虚焊、极性接错,核对元器件规格、型号,检查芯片间连线是否正确,尤其应该注意芯片放置时方向是否有误。再对照原理图和PCB图更加仔细的观察有没有地方漏焊或断路。最后用数字万用表进一步进行检测是否有虚焊、短路的情况。如果发现虚焊、短路、极性接错要及时扑救。加上电源进一步判断电路是否正常,并判断设计的电路是否正确。测量输出端的电压是否符合设计要求。一般情况下电路多很难设计的很完美,一次成功,往往需要不断的改进,不断完善。(2)软件部分 在某些电路中用小程序来检测硬件电路的好坏,会使硬件电路检测变的很简单,大大减少工作量。如:时钟显示电路、报警与状态指示电路等。时钟显示电路的检测小程序如下: P2=0x00;P0=0x00; 假如数码管的第一位不亮就说明控制第一位数码管的线路有问题。只要检查P2-0的输出电路就可以了。假如8个数码管的A段都不亮说明控制A段的线路有问题,只要检查P0-0就可以了。这样就可以使电路检测一目了然,方便硬件电路检测,达到软硬结合。 软件的调试是最后阶段。由于程序的编写的结构型的,一个个模块清清楚楚分开的,所以在调试的时候也按照这种方法调试。先独立地调试各个程序模块,如数码管显示程序、延时子程序、温度检测程序等。在确保这些独立的子程序没有出错或遗漏的情况下在主程序中调用它们,将它们连接在一起工作。在软件调试的过程中主要遇到以下一些问题:(1).芯片的引脚较多,容易搞混,所以在程序中的输入输出口要写清楚,仔细检查。(2). 数码管显示程序、温度检测等程序多应放在循环中,不来就会出错。 打开串口调试助手,建立温度采集系统的连接。设置相关的参数,设置通道为COM4,波特率为9600,数据位8,无奇偶校验,1位停止位,数据流控制为无。串口调试助手如图所示:向单片机发送命令字符w,获取当前温度值,发送h和l,分别设置温度的上下限值,发送g获取当前的上下限值。六、性能测试与分析本次设计的结果能比较准确的显示实时温度。能正常的设置温度报警的上下限值,并能复位,重新显示实时温度值。而且可以完成的比较好,蜂鸣器报警的正常。能正常的与PC机进行通信。七、结论与心得本次课程设计是利用STC89C52的优良性能开发了一款经济实用的远程智能温度采集和显示系统。实现了时钟显示,报警监控,温度采集,报警输出功能。通过在互联网上和书本上参考过其它一些相关方面的设计,并自己重新将主要部分的电路设计好且画好了,所以在刚接到这个设计的时候,感到这个设计应该会很快就能完成。但是结果却不是我们预料的那么顺利。从中我发现,在设计之前认真且比较完整得阅读相关芯片资料是非常关键的。不管是中文也好,英文也好(英文更是能提高阅读外文资料的能力),都要仔细研读。这样做对设计是百利而无害的。此次的课程设计让我了解了自己在设计方面的不足,尤其是需要更多的设计实践的经验来充实自己。但这次的设计总算是比较顺利地完成了,它是我在大学所学的知识的回顾和巩固,让我综合地系统地去复习并应用一些所学的理论知识,同时也为今后做毕业设计做了一个很好的热身和充分的准备,起到了非常大的帮助。八、参考文献 1 胡辉.单片机原理与应用M.中国水利水电出版社,2007.2 万光毅,严义,邢春香.单片机实验与实践教程M.北京:北京航空航天大学出版社,2006.43 李广弟.单片机基础M.北京:航空航天出版社,2003. 4谭浩强,C程序设计(第三版).清华大学出版社,2005.附 件附件1 总原理图附件2 PCB图附件3 元器件清单器件类别型号参数数量单片机STC89C521个插槽40p,16p各1个串口座DB91个电平转换芯片MAX2321个温度传感器DS18B201个蜂鸣器直流驱动1个电阻1K10个10K1个4.7k1个1009个普通电容30p2个1043个1054个电解电容10uF3个晶振11.0592M1个LED灯4个四连体共阳数码管1个按键1个三极管90125个三端稳压芯片78051个附件4 程序清单15#include "reg51.h"#include "intrins.h" #define Disdata P0 #define discan P2 #define uchar unsigned char#define uint unsigned intsbit DQ=P14; sbit DIN=P07; sbit h_led=P10; sbit n_led=P11; sbit l_led=P12; sbit beep=P13; uint h,bcount=0,count=0; uchar flag,bug=1,p=0;uchar cn;unsigned char tmp,bs=5;float tc,ht=30,lt=-5;uchar code word="Wrong Cmd "uchar code htemp="please input ceiling temperature! "uchar code ltemp="please input floor temperature! "uchar code ntemp="now the temperature is : "uchar code cf="ceiling and floor temperature is: "uchar code ts="wrong input"char b5='+','3','0','.','0'char k5='-','0','5','.','0'char ss5,sm5;uchar code ditab16=0x00,0x01,0x01,0x02, 0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07, 0x08,0x08,0x09,0x09;uchar code dis_712=0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0xff,0xbf;uchar code scan_con4=0xf7,0xfb,0xfd,0xfe; uchar data temp_data2=0x00,0x00; uchar data display5=0x00,0x00,0x00,0x00,0x00; void delay(uint t) for(;t>0;t-);void scan() char k; for(k=0;k<4;k+) Disdata=0xff; Disdata=dis_7displayk; if(k=1) DIN=0; discan=scan_conk;delay(90); discan=0xff; void ow_reset(void) char presence=1; while(presence) while(presence) DQ=1; _nop_(); _nop_(); DQ=0; delay(50); DQ=1; delay(6); presence=DQ; delay(45); presence = DQ; DQ=1; void write_byte(uchar val) uchar i; for (i=8; i>0; i-) DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_(); _nop_();_nop_();_nop_(); DQ = val&0x01; delay(6); val=val/2; DQ = 1; delay(1);uchar read_byte(void) uchar i; uchar value = 0; for (i=8;i>0;i-) DQ=1; _nop_();_nop_(); value>>=1; DQ = 0; _nop_();_nop_();_nop_();_nop_(); DQ = 1;_nop_();_nop_();_nop_();_nop_(); if(DQ)value|=0x80; delay(6); DQ=1; return(value);void read_temp() ow_reset(); write_byte(0xCC); write_byte(0xBE); temp_data0=read_byte(); temp_data1=read_byte(); ow_reset(); write_byte(0xCC); write_byte(0x44); void work_temp() uchar n=0; uchar doth,dotl; uchar flag3=1,flag2=1; if(temp_data1&0xf8)!=0x00) temp_data1=(temp_data1); temp_data0=(temp_data0)+1; n=1;flag=1; if(temp_data0>255) temp_data1+; display4=temp_data0&0x0f; display0=ditabdisplay4; doth=display0/10; dotl=display0%10; display4=(temp_data0&0xf0)>>4)|(temp_data1&0x07)<<4); display3=display4/100; display2=display4/10%10; display1=display4%10; if(!display3) flag3=0; if(!display2) display2=0x0a; flag2=0; if(n) display3=0x0b; flag3=0; void send_char(unsigned char txd) SBUF = txd;while(!TI);TI = 0;main() P1=0xff;TMOD = 0x20;TH1 = 0xFD;TL1 = 0xFD;SCON = 0x50;PCON &= 0xef; ES = 1; TR1 = 1; Disdata=0xff; discan=0xff; for(h=0;h<4;h+)displayh=8; ow_reset(); write_byte(0xCC); write_byte(0x44); for(h=0;h<500;h+) scan(); while(1) read_temp(); work_temp(); tc=display0*1.0/10+display1+display2*10+display3*100 ; if(tc>ht) h_led=0;l_led=1;n_led=1;beep=0; else if(tc<lt) l_led=0;h_led=1;n_led=1;beep=0; else n_led=0;h_led=1;l_led=1;beep=1; if(bug=1) if(RI) tmp = SBUF;if(tmp='w') RI=0;for(cn=0;cn<24;cn+) send_char(ntempcn); send_char(display3+48);send_char(display2+48);send_char(display1+48);send_char('.');send_char(display0+48);send_char(' '); send_char('n'); else if(tmp='h')p='h'RI=0; for(cn=0;cn<34;cn+) send_char(htempcn); send_char('n'); EA = 1; /开总中断 bug=0; else if(tmp='l') RI=0;p='l' for(cn=0;cn<32;cn+) send_char(ltempcn); send_char('n'); EA = 1; bug=0; else if(tmp='g') RI=0; for(cn=0;cn<34;cn+) send_char(cfcn); for(cn=0;cn<bs;cn+) send_char(bcn); send_char(' '); for(cn=0;cn<5;cn+) send_char(kcn); send_char('n');else RI=0; for(cn=0;cn<10;cn+) send_char(wordcn); send_char('n');scan(); void INT_UartRcv(void) interrupt 4 RI=0; if(p='l') sscount=SBUF; if(p='h') smcount=SBUF; count+; if(count=5) count=0; bug=1; if(p='h') if(sm0='+') ht=(sm4-48)*1.0/10+(sm2-48)+(sm1-48)*10;bs=5; else ht=-1*(sm4-48)*1.0/10+(sm2-48)+(sm1-48)*10);bs=5; if(ht<lt) for(cn=0;cn<11;cn+) send_char(tscn); send_char('n'); else for(cn=0;cn<bs;cn+) send_char(smcn); send_char('n'); for(cn=0;cn<5;cn+) bcn=smcn;EA=0;p=0; else if(p='l') if(ss0='+') lt=(ss4-48)*1.0/10+(ss2-48)+(ss1-48)*10; else lt=-1*(ss4-48)*1.0/10+(ss2-48)+(ss1-48)*10); if(ht<lt) for(cn=0;cn<11;cn+) send_char(tscn); send_char('n'); else for(cn=0;cn<5;cn+) send_char(sscn); send_char('n'); for(cn=0;cn<5;cn+) kcn=sscn; EA=0;p=0;

注意事项

本文(单片机课程设计报告远程智能温度采集和显示系统)为本站会员(沈***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!