您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于51单片机的多路温度采集系统
基于单片机的多路温度采集系统一、摘要:本设计利用单片机及Keil编程软件编程和PROTEUS单片机仿真软件和电子电工等方面知识,用Keil编程软件编程,用PROTEUS单片机仿真软件仿真。最后制作实物,将程序下载到单片机中,利用(I/O)口采集来自多路温度的数据,根据各路温度的不同,集中准确的显示出来,并且根据所设温度的上下限通过驱动蜂鸣器进行听觉上的报警,同时还可以通过LED灯协助进行视觉上的报警,从而达到多点温度的采集和报警的目的。以Keil编程软件和PROTEUS软件来进行仿真、分析,调试,为设计提供了一个方便、快捷的途径,为设计节约了设计时间。关键词:AT89S52单片机温度采集报警二、设计要求1、检测的温度范围:0℃~100℃。2、检测分辨率0.1℃。3、显示的多路的温度值不相互干扰,而且对各个传感器的所属温度都能进行报警。三、硬件电路设计1、系统的设计思路本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LCD进行显示。本系统可以实现多路温度信号采集与显示,可以使用程序来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和LED进行报警。2、系统总体设计方案系统总体主要由对单片机进行编程后得到控制,系统的其他功能部件分别接至单片机的对应I/O口。整体模块如图:23、主控制器本次设计选择Atmel公司生产的AT89C51作为控制芯片。AT89C51是高性能的CMOS8位单片机,片内含有4Kbytes的可反复擦写的只读程序存储器和128的随机存取数据存储器。AT89系列与MCS-51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个电路体积更小。它以较小的体积、良好的性价比倍受青睐。51单片机管脚图:单片机系统报警电路晶振.复位多路温度传感器LED显示电路报警电路按键电路34、温度采集电路本系统采用DS18B20作温度采集器。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。硬件电路图如下:5、温度显示电路LED显示器的驱动是一个非常重要的环节,用来显示采集到的信号。显示电路由LED液晶屏、段驱动电路和位驱动电路组成。此设计不采用段驱动芯片和位驱动芯片,直接由单片机的P1口驱动,实现动态显示。硬件电路图如下:6、报警电路此系统的报警电路采用两个LED和一个蜂鸣器来模拟实现,当所采集的四路温度4都处于安全温度范围内时D1和D2都不亮,当其中有任何一路温度低于安全稳定范围内时,D1亮而且蜂鸣器响。同理当其中有任何一路温度高于安全稳定范围内时,D2亮而且蜂鸣器响。7、本系统的优点(1)线路简单DS18B20与单片机之间一根导线进行数据传输,不需要对数据进行转换,接线简单。(2)温度测量准确DS18B20的温度分辨率为0.0625,所以对温度值可以进行准确的温度转换。(3)报警温度的范围可调此系统的报警温度的范围是通过软件设定的,因此想要改变不需要任何硬件上的改变,只需要对程序进行简单的改变,非常方便。四、总体硬件电路图5五、软件程序设计由于在此次系统设计中,我主要进行硬件系统的设计,所以在软件程序设计方面参与较少。程序见附录。六、电路调试与故障排除(1)调试时主要用到的仪表是直流稳压电源和万用表,为了增加报警功能,使用了蜂鸣器,刚开始时直接把蜂鸣器接在单片机上,调试之后发现蜂鸣器不会响,后来经过检查发现是驱动电压过低,经过改进,我们使用了三极管放大,蜂鸣器可以正常工作。(2)接上电源后发现LED显示屏显示乱码,我们又仔细检查电路硬件,重新编写程序,又重新烧录,后来LED显示屏可以正常显示。七、心得体会单片机课程设计为其将近一个月,我受益匪浅。单片机课是上学期的内容,有很多知识点都遗忘了,所以在做此次课程设计的时候,又去翻阅以前的课本。通过此次课程设计,我对单片机有了更深刻的认识和理解。光有课本上的知识是不够的,一定要理论结合实践,在实践中把理论知识具体化,这样才能更好的掌握好知识。6刚开始以为这次课程设计的电路会比较简单,可是入手后还是感到无从下手。后来在每个阶段我都有不小的收获,熟练了在Proteus软件上设计仿真电路,掌握了书本以外的电子技术知识,培养了专心致志的工作学习习惯,可谓获益匪浅。在摸索该如何设计电路使之实现所需功能的过程中,培养了我的设计思维,增强了动手能力。在改进电路的过程中,我们共同探讨,最后的电路已经比初期设计有了很大提高。在让我们体会到了设计电路的艰辛的同时,也让我体会到成功的喜悦和快乐。八、参考文献[1]张俊谟.单片机中级教程—原理与应用.北京航天航空大学出版社[2]刘大茂.智能仪器与设计.国防工业出版社[3]谭浩强.C程序设计.北京:清华大学出版社[4]李伯成.微型计算机原理及应用技术.西安电子科技大学附录程序#includereg52.h#includelcd1602.h#includeds18b20.h#includeds18b20_2.h#includeds18b20_3.h#includeds18b20_4.h#defineucharunsignedchar#defineuintunsignedint#defineTIMER0_COUNT0xEE11sbitSPK=P3^5;sbitLED1=P3^6;sbitLED2=P3^7;bitflag;uintwendu;uintwendu1;uintwendu2;uintwendu3;ucharcount,timer0_tick,count=0;7staticvoidtimer0_initialize(void){EA=0;timer0_tick=0;TR0=0;TMOD=0X01;TL0=(TIMER0_COUNT&0X00FF);TH0=(TIMER0_COUNT8);PT1=1;ET0=1;TR0=1;EA=1;}voiddisplay_temp(){ucharA1,A2;ucharA3,A4;ucharA5,A6;ucharA7,A8;tmpchange();wendu=tmp();A1=wendu/10;A2=wendu%10;gotoxy(1,1);display_data(A1);display_string(.);write_date(int_to_char[A2]);tmpchange2();wendu1=tmp2();A3=wendu1/10;A4=wendu1%10;gotoxy(2,1);display_data(A3);display_string(.);8write_date(int_to_char[A4]);tmpchange3();wendu2=tmp3();A5=wendu2/10;A6=wendu2%10;gotoxy(1,7);display_data(A5);display_string(.);write_date(int_to_char[A6]);tmpchange4();wendu3=tmp4();A7=wendu3/10;A8=wendu3%10;gotoxy(2,7);display_data(A7);display_string(.);write_date(int_to_char[A8]);}voidtimer0(void)interrupt1{TR0=0;TL0=(TIMER0_COUNT&0X00FF);//设置Timer0低八位数值TH0=(TIMER0_COUNT8);//设置Timer0高八位数值TR0=1;count++;if(count==10)display_temp();}voidmain(){init_lcd();timer0_initialize();gotoxy(1,1);display_string(00.0C);gotoxy(2,1);9display_string(00.0C);while(1){if((wendu500)||(wendu1500)||(wendu2500)||(wendu3500)){SPK=~SPK;LED1=~LED1;delay(30);}elseif((wendu100)||(wendu1100)||(wendu2100)||(wendu3100)){SPK=~SPK;delay(20);LED2=~LED2;}
本文标题:基于51单片机的多路温度采集系统
链接地址:https://www.777doc.com/doc-2567833 .html