基于单片机温度控制电路的报告.doc

上传人:精*** 文档编号:828614 上传时间:2023-09-06 格式:DOC 页数:32 大小:758.37KB
下载 相关 举报
基于单片机温度控制电路的报告.doc_第1页
第1页 / 共32页
基于单片机温度控制电路的报告.doc_第2页
第2页 / 共32页
基于单片机温度控制电路的报告.doc_第3页
第3页 / 共32页
基于单片机温度控制电路的报告.doc_第4页
第4页 / 共32页
基于单片机温度控制电路的报告.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、单片机课程设计目 录 摘 要41前言51.1概述51.2课题分析51.3设计思路52硬件电路设计描述62.1系统的基本组成62.2系统框图62.3温度控制模块62.4温度采集模块72.5液晶显示模块72.6按键模块82.7 ISP模块82.8单片机模块82.9单片机最小系统93软件设计流程114组装和调试125课程设计中存在的问题和解决方案存在问题及解决方案135.1 PCB布线问题135.2 编程问题135.3 LCD显示问题135.4 PCB制作过程135.5调试过程13参考文献15致谢16附录:17附录一:水温控制原理图17附录二:PCB图18附录三: 实物图19附录四:元件清单20附录

2、五:源程序代码21摘 要该系统采用AT89S51单片机实现温度控制,并且通过LCD1602显示。在硬件实现方面,温度测量使用DS18B20温度传感器,控制部分使用固态继电器,通过和软件设计相结合,使系统在较短的时间内达到稳定。再由软件来补偿器件的固有误差,是温度的控制达到较高的精度,满足要求。 关键字:单片机;DS18B20;LCD1602;固态继电器1前言1.1概述现代信息技术的三大基础是信息采集控制(即温控技术)、信息传输(通信技术)和信息处理(计算机技术)。温控器属于信息技术的前沿尖端产品,尤其是温控器被广泛用于工农业生产、科学研究和生活等领域,数量日渐上升。近百年来,温控器的发展大致经

3、历了以下二个阶段; (1)模拟、集成温度控制器;(2)智能数码温控器。目前,国际上新型温控器正从模拟式向数字式、由集成化向智能化、网络化的方向发展。 本设计的温度控制器是以单片机为核心的。单片微型计算机称为单片机,它在一片芯片上集成了中央处理器、存储器、定时器/计数器和各种输入输出设备等接口部件。采用单片机对温度进行控制不仅具有控制方便、简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。1.2课题分析单片机控制系统由微机和工农业生产对象两部分组成,其中包括硬件电路和软件程序,整个控制系统是通过接口将计算机和生产过程中产生的温度联系起来实现计算机对生

4、产过程中的数据处理和控制。本文介绍了MCS51单片机对温度控制系统硬件接口和软件设计的基本思想。包括单片机系统的程序设计、输入输出接口设计、温度控制电路的设计及键盘显示电路的设计。1.3设计思路此外整个控制系统可分为硬件电路设计和软件程序设计两大部分。可分别对它们进行分析设计。当确定好自己的方案后,就分模块进行软件和硬件的设计与调试。当个模块都调试完毕后,最后将所有模块组合在一起进行总调,直到达到理想的效果为止。2硬件电路设计描述2.1系统的基本组成本系统是由核心处理器模块、温度采集模块、复位模块、控制执行模块等组成。采用用AT89S51单片机作为控制核心,使用DS18B20温度传感器接收温度

5、,同时用LCD1602显示温度,三个独立按键,以及温度控制模块(用固态继电器控制温度)。2.2系统框图我们此次水温控制的设计理念是,以单片机89S51为控制核心,通过温度传感器感受温度,从LCD1602中显示,通过编程,与参考温度进行比较,再控制固态继电器的通断,控制加热管是否工作。按键设置时对参考温度进行加减,从而将水温控制再40C100C。系统框图(见图1)。Lcd显示温度及最高、低温度按键输入设置单片机89S51DS18B20温度传感器采集温度模块温度控制加热、降温保温模块加热管 图1:系统框图2.3温度控制模块固特牌小功率单相交流固态继电器,采用国际上SSR最新设计线路,输入采用直流控

6、制型式,输出端由双向可控硅交流开关组成,内置瞬态TVS保护和高I2T技术,有效保护过压过流,交流过零通断。采用国际顶尖品牌元器件,光电隔离,双硅增强输出或单硅反并联增强输出,输出LED显示,开关型式分为过零导通型和随机导通型。温度控制模块是通过P1.0端口输入数据,控制继电器的通断,继电器的1、2引脚连接加热管,对所测温度进行控制。图2:温度控制模块2.4温度采集模块 DS18B20主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警除法器TH和TL、配置寄存器。ROM中的64位序列号是出厂前被光刻好的,它可以看做是DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。

7、ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。温度传感器DS18B20对外界水温进行采集,通过P3.5端口传送给单片机,见图3。图3:温度采集模块2.5液晶显示模块液晶显示以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。液晶LCD1602显示预设的参考温度和测得的实际温度,见图4。 图4:液晶显示模块2.6按键模块按键模块对预设温度进行加减,从而控制温度的范围,见图5。图5:按键模块2.7 ISP模块ISP插口外界数据线下载信息到单片机,见图6。图6:ISP模块2.8单片机模块AT

8、89S51是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程 、Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶

9、振及时钟电路。另外,AT89S52可降0HZ静态逻辑操作,支持两种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。对于本设计,单片机起中央处理的作用,由于可以通过编程对其进行控制,所以利用KEIL与其结合,很方便就可以对电路进行调整和控制,具体电路如图7:图7: 单片机模块2.9单片机最小系统8051片内有4KB的ROMEPROM,因此,只需要外接晶体振荡器和复位电路就可以构成最小系统。该最小系统可供使用的资源有以下4种:(1) 由于片外没有扩

10、展存储器和外设,P0、P1、P2、P3都可以作为用户IO口使用。(2) 片内数据存储器有128B,地址空间为00H7FH。(3) 内部有4KB程序存储器,地址空间为0000H0FFFH。(4) 有两个定时器计数器T0和T1、一个全双工的串行通信接口、5个中断源。 图8:单片机最小系统3软件设计流程 主程序流程图见图9。先预设一个参考温度,通过温度传感器感受温度,进行温度比较,通过继电器通断对被测液体加热,达到我们的预设温度。开始结束感受外界温度温度比较控制继电器通断图9 :主程序流程图 4组装和调试将硬件各模块组合,便形成了最后的系统总图,水温控制电路(具体电路见附录- 水温控制原理图)。根据

11、器件的尺寸和大小(具体见附录-元件清单),找到和做出其封装,导入PCB,手动布线,生成PCB板(具体电路见附录-水温控制的PCB图)。再通过打孔、腐蚀、焊接等步骤,并且做的过程中要进行不断的调试,利用万用表首先检查是否共地,同时检查线路的导电性能,是否有短路和断路的情况。调试过程,由于本次设计采用模块化,在组装过程中,可以同时进行调试,大大降低了调试的难度,也提高了调试的效率。具体实现如下:首先将各个过孔焊接,运用万能表,检查线路是否连通,如果出现问题便开始查找问题原因,直到问题全部解决为止。然后焊接电阻等小型元器件。同样重复上述步骤,直到所有器件全部焊接成功和所有问题全部解决为止。最后得到水

12、温控制实物(具体见附录-水温控制的实物图)。5课程设计中存在的问题和解决方案存在问题及解决方案5.1 PCB布线问题 PCB布线的时候,因为LCD1602占地面积大,没考虑到下面可以隐藏器件,占的板子打,在同学的帮助下降这个问题解决了。5.2 编程问题由于DS18B20、LCD1602从来没有接触过,需要大量查阅资料进行编程。5.3 LCD显示问题 前期LCD不显示字符,后面发现硬件出错了,及时改正。最终解决了问题。5.4 PCB制作过程PCB是我们制板子前的一个必不可少的内容,只有当你PCB走线布局做得好,后面制板和调试才能达到事半功倍的效果;解决方案:由于对PCB的接触并不深,导致布局连线

13、很多方面并不理想,后来在老师的指导下,对PCB重新布局,同时对原理图进行了一些修改,来达到布线的方便和可靠。5.5调试过程在调试的过程中发现功能一直不能实现,就挨个模块进行屏蔽,挨个儿调试。最让我们苦恼的就是液晶显示这部分的程序,因为从来没有接触过液显,于是大量翻阅资料,请老师同学帮忙。6设计感想本次课程设计共经历了一个多星期的时间。虽然期间遇到的困难重重,但在老师们及同学的无私帮助下终于得以顺利完成。在这段时间里,每天都沉浸在课程设计的乐趣中让我感觉过得很充实,也学到了很多课堂上没有学到的东西。通过对各个模块的研究,让我接触到了很多课本上不曾有但非常实用的知识,让我开拓了视野、增广了知识面,

14、我深刻的理解到了“学海无涯”的真正含义。本次设计由于很多知识都是以前未见过的,都需要自己学会并运用。所以学会利用信息资源找到自己所需的资料,提升了自学能力,是这段时间我得到的另一个巨大的收获。以前对课本知识掌握的很模糊,但通过本次设计,让我对单片机知识,尤其是C语言编程有了重新的认识。虽然离专业水平还差的很远,但我相信“有志者,事竟成”,只要努力,就会有进步。参考文献1 李建忠.单片机原理及应用M.西安:西安电子科技大学出版社,2004.2 胡辉.单片机原理与应用M.北京:中国水利水电出版社,2007.3 谢维成,杨加国.单片机原理与应用及C51程序设计M.北京:清华大学出版社,2006.4

15、谭浩强.C程序设计M.北京:清华大学出版社,1999.5 冯博琴,刘路放.精讲多练C语言M.西安:西安交通大学出版社,1997. 致谢衷心感谢我的指导老师许立志在前期准备工作中对我的悉心指导和给的忠诚的建议,感谢在制作板子的过程中,薛世华老师的耐心指导,他严谨精细的治学态度,渊博的知识,孜孜不倦的工作热忱和诲人不倦的精神,我将铭记在心,感谢程序调试过程中任涛和何敏同学的帮助;最后感谢图书馆、电子阅览室为我提供查找资料的场所和优质的服务。附录:附录一:水温控制原理图 附录二:PCB图 附录三: 实物图 附录四:元件清单1Part TypeDesignatorfootprint20.1uC4RAD

16、0.231kR5AXIAL0.341kR4VR5510kR1AXIAL0.3610uC3RB.2/.41712MHZX1XTAL1833pC1RAD0.2933pC2RAD0.210AT89S51U1DIP4011CON2CZ12CON2J2SIP213DS18B20J1SIP314HEADER 5*2JP1ISP15PZRP1SIP916SSRR6SSR17SW-PBS2SW-PB18SW-PBS1SW-PB19SW-PBS4SW-PB20SW-PBS3SW-PB21U2LCDLCD1602 附录五:源程序代码 /* 名称 : 单片机水温控制器*/#include#define uchar

17、unsigned char#define uint unsigned int#define jump_ROM 0xCC#define start 0x44#define read_EEROM 0xBEuchar wendumin=10;uchar wendumax=60;uchar current=10;uchar msg116= cankao: - C ;uchar msg216=temperature:10 C;uchar flag=0;uchar time=0;uchar setflag=0;/uchar postive=0;/uchar wendu;/uchar function=0;

18、sbit E=P13;sbit RW=P12;sbit RS=P11;sbit DQ=P20;sbit P1_0=P10;sbit P2_1=P21;sbit P2_2=P22;/* 名称 : delay()* 功能 : 延时,延时时间大概为100US。/*/void delay_1()int i,j;for(i=0; i=10; i+)for(j=0; j=2; j+);/* 名称 : delay()* 功能 : 延时函数* 输入 : 无* 输出 : 无*/void delay(uint N)int i;for(i=0; iN; i+);/* 名称 : Delay_1ms()* 功能 : 延

19、时子程序,延时时间为 1.5ms * x*/void Delay_1ms(uint i)/1ms延时uchar x,j;for(j=0;ji;j+)for(x=0;x=148;x+);/* 名称 : Reset()* 功能 : 复位DS18B20*/uchar Reset(void)uchar deceive_ready;DQ=0;delay(29);DQ=1;delay(3);deceive_ready=DQ;delay(25);return(deceive_ready);/* 名称 : read_bit()* 功能 : 从DS18B20读一个位值*/uchar read_bit(void)

20、uchar i;DQ=0;DQ=1;for(i=0;i3;i+);return(DQ);/* 名称 : write_bit()* 功能 : 向DS18B20写一位*/void write_bit(uchar bitval)DQ=0;if(bitval=1)DQ=1;delay(5);DQ=1;/* 名称 : read_byte()* 功能 : 从DS18B20读一个字节*/uchar read_byte(void)uchar i,m,receive_data;m=1;receive_data=0;for(i=0;i8;i+)if(read_bit()receive_data=receive_d

21、ata+(mi);delay(6);return(receive_data);/* 名称 : write_byte()* 功能 : 向DS18B20写一个字节*/void write_byte(uchar val)uchar i,temp;for(i=0; i i;temp=temp&0x01;write_bit(temp);delay(5);/* 名称 : Retemp()* 功能 : 读取温度*/void Retemp()uint TMPH,TMPL;Reset();write_byte(jump_ROM);write_byte(start);Reset();write_byte(jump

22、_ROM);write_byte(read_EEROM);TMPL=read_byte();TMPH=read_byte();current=TMPL/16+TMPH*16; /-void Delay8(uchar a) / delay 40usfor(;a!=0;a-) ;/=void SendCommandByte(unsigned char ch) RS=0; RW=0; P0=ch; E=1; Delay8(20); E=0; Delay8(500); /delay 40us/-void SendDataByte(unsigned char ch) RS=1; RW=0; P0=ch;

23、 E=1; Delay8(20); E=0; Delay8(500); /delay 40us/-void InitLcd()SendCommandByte(0x30); SendCommandByte(0x30); SendCommandByte(0x30); SendCommandByte(0x38);/设置工作方式 SendCommandByte(0x0c); /显示状态设置 SendCommandByte(0x01); /清屏 SendCommandByte(0x06); /输入方式设置/=void DisplayMsg1(uchar *p) unsigned char count;

24、SendCommandByte(0x80); /设置DDRAM地址 for(count=0;count16;count+) SendDataByte(*p+); /=void DisplayMsg2(uchar *p) unsigned char count; SendCommandByte(0xc0); /设置DDRAM地址 for(count=0;count0;j-) for(i=249;i0;i-);void scankey()uchar temp=0xFF;P3=0XFF;if(P3&0X54)!=0X54)delay1(2);if(P3&0X54)!=0X54)temp=P3&0x5

25、4;switch(temp)case 0x14:flag=1;break;case 0x44:flag=2;break;default:time+;if(time=3)time=0;break;while(P3&0X54)!=0X54);/*void datahandle()if(setflag=1)switch(flag)case 1:wendu+=1;if(wendu=99)wendu=99;flag=0;break;case 2:wendu-=1;if(wendu=30)wendumin=30;flag=0;break;case 2:wendumin-;if(wendumin=99)we

26、ndumax=99;flag=0;break;case 2:wendumax-;if(wendumax=wendumax)P1_0=1;P2_1=0;P2_2=1;else if(current=wendumin) P1_0=0; P2_2=0; P2_1=1;elseP1_0=1;P2_2=1;P2_1=1;void time0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;scankey();Retemp();if(time!=0)datahandle();void time1() interrupt 3TH1=(65536-50000)/256;TL1=(65536-50000)%256;msg18=wendumin/10+0x30;msg19=wendumin%10+0x30;msg112=wendumax/10+0x30;msg113=wendumax%10+0x30;msg212=current/10+0x30;msg213=current%10+0x30;DisplayMsg1(msg1);DisplayMsg2(msg2);32

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 研究报告

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922