二○一一~二○一二学年第一学期信息科学与工程学院自动化系课程设计报告书姓名:徐曙学号:200804134179班级:自动化0806课程名称:计算机控制与接口技术指导教师:潘炼2011年12月15日1设计题目:数字温度测量控制系统本设计是一个数字温度测量及控制系统,能测柜内的温度,并能在超限的情况下进行控制、调整,并报警。保证环境保持在限定的温度中。1.电路的总体工作原理温度控制系统采用AT89S51八位单片机作为微处理单元进行控制。采用4X4键盘把设定温度的最高值和最低值存入单片机的数据存储器,还可以通过键盘完成温度检测功能的转换。温度传感器把采集的信号与单片机里的数据相比较来控制温度控制器。系统框图如图1所示图1系统框图根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89S51为测控系统的核心来完成数据采集、处理、显示、报警等功能。选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。2.总体设计思路温度传感器DS18B20把所测得的温度发送到AT89S51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器为点阵字符LCD,1602AT89S51温度控制报警电路显示电路温度传感器键盘设定2液晶模块。检测范围5摄氏度到60摄氏度。本系统除了显示温度以外还可以设置一个温度值,对所测温度进行监控,当温度高于或低于设定温度时,开始报警并启动相应程序(温度高于设定温度时,风扇开;当温度低于设定温度时,加热器开)。3.系统的硬件设计3.1单片机最小系统,如图2所示图2单片机最小系统3.2温度传感器由于DS18B20芯片将温度传感器、信号放大调理、A/D转换、接口全部集成于一芯片,与单片机连接简单、方便,与AD590相比是更新一代的温度传感器,所以温度传感器采用DS18B20。DS18B20的性能特点:采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)测温范围为-55℃--+125℃,测量分辨率为0.0625℃3内含64位经过激光修正的只读存储器ROM适配各种单片机或系统机用户可分别设定各路温度的上、下限内含寄生电源。DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如图3.2所示。图3DS18B20管脚图CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。3.3温度控制电路的设计DS18B20123GNDI/OVCC12345678I/OGNDNCNCNCNCNCVCCDS18B2012345678401312VCCP10P11P12P13P14P15P16P17INT0INT131EA/VP1918XTAL1XTAL22017169RESETRDWRGND3938373635343332P00P01P02P03P04P05P06P072827262524232221P20P21P22P23P24P25P26P27291514T0T1301110RXTTXDALE/PROGPSENU2AT89S51Y111.0592MC122PC222PGNDC3106R18.2K+5VC5U1BUZZERD1LEDR51KQ1C9012Q2C9012R11470R12470GND加热器电风扇VC5Q3C9012VCCGND4图4温度控制电路3.4显示电路本设计显示电路采用两位共阳极LED数码管来显示测量得到的温度值。一个LED数码管只能显示一位的字符,如果字符位数不止一位,可以用几个数码管组成,但要控制多位的显示电路需要有字段控制和字位控制,字段控制是指控制所要显示的字符是什么,控制电路应将字符的七段码通过输出口连接到LED的a~g引脚,是某些段点亮,某些段处于熄灭状态。字位控制是指控制在多位显示器中,哪几位发光或那几位不发光,字位控制则需要通过字位码作用于LED数码管的公共引脚,是某一位或某几位的数码管可以发光。数码管显示电路分为动态显示和静态显示。在此选用动态显示方式.动态显示又称为扫描显示方式,也就是在某一时刻只能让一个字位处于选通状态,其他字位一律断开,同时在字段线上发出该位要显示的字段码,这样在某一时刻某一位数码管就会被点亮,并显示出相应的字符。下一时刻改变所显示的字位和字段码,点亮另一个数码管,显示另一个字符。绕后一次扫描轮流点亮其他数码管,只要扫描速度快,利用人眼的视觉残留效应,会使人感觉到几位数码管都在稳定的显示。本设计采用数码管动态显示,电路如图5所示:图5数码管显示电路5开中断4.系统的软件设计从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。主程序是系统的监控程序,在程序运行的过程中必须先经过初始化,包括键盘程序,中断程序,以及各个控制端口的初始化工作。流程图如4.1所示。系统在初始化完成后就进入温度测量程序,实时的测量当前的温度并通过显示电路在LCD上显示。程序中以中断的方式来重新设定温度的上下限。根据硬件设计完成对温度的控制。按下4*4键盘上的A键可以设定温度上限,按下B键可以设定温度下限。系统软件设计的总体流程图开始系统初始化Int0=0?温度上下限设定温度测量显示系统温度测量NY6图6系统总体设计流程图主要代码:DIEQUP3.3DOEQUP3.4CLKEQUP3.5CSEQUP3.6D2RSEQUP2.7D2RWEQUP2.6D2EEQUP2.5KEYPORTEQUP1;DS18B20端口定义TEMPER_LEQU36HTEMPER_HEQU35HTEMPER_NUMEQU38HFLAG1BIT00HDQBITP2.4ORG0000HLJMPMAINORG0003HJMPINT00ORG0038HMAIN:MOVSP,#60HSETBP2.0SETBP2.1SETBP2.2SETBEASETBEX0SETBP2.0SEETBP2.1SETBP2.27MOVR0,#01H;清屏并置地址计数器AC为0LCALLDIS_CMD_WRTMOVR0,#38H;8位数据接口,双行显示,5*7点阵LCALLDIS_CMD_WRTCALLDIS_CUR_OFFMOV42H,#20MOV43H,#32XIAN:LCALLGET_TEMPERLCALLDISPLCALLDELAY43MSMOVA,TEMPER_NUMSUBBA,42HJCZZZLMOVA,TEMPER_NUMSUBBA,43HJNCZZZ2SETBP2.0SETBP2.1SETBP2.2JMPXIANZZZL:CLRP2.0CLRP2.2JMPXIANZZZ2:CLRP2.0CLRP2.1JMPXIANINT0:;扫描键盘程序LCALLASKSAO:CLR01H8LCALLKEYJNB01H,SAOCJNEA,#10,PANLCALLANSWRETIPAN:CJNEA,#12,SAORETI;显示函数部分,可供调用5.设计小结温度传感器DS18B20外形像一个小三极管,硬件连接非常简单,应用非常方便。它不仅能测量温度,而且也是一个ADC转换器,它能将测得的温度信号直接转换成数字信号输入到单片机。硬件开销较小,相对需要复杂的软件进行补偿,DS18B20软件编程比较复杂,但是可以把复位、读和写3个基本操作的子程序看成是3个固定的基本模块。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。最后,还要感谢我的指导老师和热心的同学,在他们的帮助下我的毕业设计才能顺利完成,谢谢你们!6.参考文献[1]孙育才.《单片微型计算机及其应用》.东南大学出版社.2004[2]沈德金陈粤初.《单片机接口电路与应用程序实例》.北京航天航空大学出版社.1990.[3]潘新民王燕芳.《微型计算机控制技术》.电子工业出版社2003