温度控制系统课程设计_第1页
温度控制系统课程设计_第2页
温度控制系统课程设计_第3页
温度控制系统课程设计_第4页
温度控制系统课程设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

整理为word格式整理为word格式整理为word格式前言温度是一种最基本的环境参数,日常生活和工农业生产中经常要检测温度。传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过AD转换环节获得数字信号后才能与单片机等微处理器接口,使得硬件电路结构复杂,制作成本较高。近年来,美国DALLAS公司生产的DSI18B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于仓储管理、工农业生产制造、气象观测、科学研究以及日常生活中。随着科学技术的不断进步与发展,温度传感器的种类日益繁多,数字温度传感器更因适用于各种微处理器接口组成的自动温度控制系统具有可以克服模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端等优点,被广泛应用于工业控制、电子测温计、医疗仪器等各种温度控制系统中。其中,比较有代表性的数字温度传感器有DS1820、MAX6575、DS1722、MAX6635等。智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE_)的结晶。目前,国际上已开发出多种智能温度传感器系列产品。智能温度传感器内部包含温度传感器、A/D传感器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器能输出温度数据及相关的温度控制量,适配各种微控制器(MCU),并且可通过软件来实现测试功能,即智能化取决于软件的开发水平。为了准确获取现场的温度和方便现场控制,本系统采用了软硬件结合的方式进行设计,利用LED数码管显示温度,利用DS18B20检测当前的温度值,通过和设定的参数进行比较,若实测温度高于设定温度,则通过555定时器产生频率可变的报警信号,若实测温度低于设定温度,则加热电路自动启动,到达设定温度后停止。在软件部分,主要是设计系统的控制流程和实现过程,以及各个芯片的底层驱动设计已达到所要求的功能。在近端与远端通信过程中,采用串行MAX232标准,实现PC机与单片机间的数据传输。整理为word格式整理为word格式整理为word格式目录前言 1目录 21.总体方案设计 31.1系统的工作原理 31.2系统的方案比较 41.3系统方案的确定 41.3.1单片机芯片的选择 41.3.2显示模块的选择 51.3.3数据采集系统的选择 51.3.4复位电路 61.3.5通信接口电路的选择 71.3.6电路设计最终方案 72系统硬件设计 82.1系统硬件概述 82.2AT89S52最小系统模块设计 82.3振荡源和复位电路设计 112.3.1复位电路 112.3.2振荡源电路 122.4显示模块设计 122.5串行接口模块设计 142.6温度采集模块设计 152.7报警电路设计 172.8加热电路设计 183.系统软件设计 193.1主程序流程图 193.2外部中断的应用 203.3延时程序的处理 214.心得体会 22参考文献 23附录1:程序 24附录2:英文资料翻译 30整理为word格式整理为word格式整理为word格式1.总体方案设计随着电子产业的高速化发展,电子产品的集成化程度也越来越高,智能化的产品也日渐增多,温度测控系统也从传统化的产品向智能化的产品方向发展。本次课程设计中,我设计的就是一个温度控制系统,其设计思想是利用单片机作为主要的控制器件,LED数码管做为电路的显示部分,外加报警电路和自动加热电路,当温度低于设定值20度时,加热器加热。加热到20度时,加热器自动停止加热。当温度高于设定值25度时,报警电路报警。从而实现自动控制温度在20到25度之间。1.1系统的工作原理在温控系统中,需要将温度的变化转化为对应的电信号的变化,选用AT89S52单片机为中央处理器,通过温度传感器对空气进行温度采集,将采集到的温度信号传输给单片机,再由单片机控制显示器,并比较采集温度与设定温度是否一致,然后驱动电机加热或降温循环对空气进行处理,从而模拟实现空调控制单元的工作情况。工作流程说明如下:开始,先接通电源,LED就自动显示出当前温度。当温度值低于设定值20度时,加热器加热。加热到20度时,加热器自动停止加热。当温度高于设定值25度时,报警电路报警。系统的主要技术指标如下:测温范围:-10℃~+100℃;温度分辨率:正负0.5℃.系统的原理框架图,如图1所示。单片机单片机显示器报警电路加热电路温度传感器PC机整理为word格式整理为word格式整理为word格式图1系统原理框图1.2系统的方案比较在日常生活中,测量温度的方案有很多,智能温度测控系统的设计方法也不胜枚举。有工业级别的温度控制系统,有商业的温度控制系统以及民用的温度控制系统。由于身边的条件以及元器件的限制,在这里选择设计民用的智能温度控制系统。方案一:以热电偶作为温度传感器,AD模数转换,LED作为显示器,采用矩阵键盘,用AT89C51作为主控芯片。在该方案中,热电偶的测量范围广,而且精度也很好,其灵敏度也很高,但是其价格高,还需要增加相应的外围电路,给硬件电路的设计带来了一定的困难,该温度传感器实用于工业级别的温度控制,而本系统是民用级别的,测量的范围也不高;AD模数转换的转换速率和分辨率也会给测量的温度值带来一定的影响;LED显示,则过于传统化,价格也较贵,其显示的位数很有限,若要增加功能,会给设计带来很大的困难。方案二:以DS18B20作为温度传感器,LED数码管作为显示屏,用AT89S52作为主控芯片。在该方案中,温度传感器DS18B20在日常生活中应用很广泛,器价格较之热电偶也很便宜,测量的精度也能达到民用的要求,其集成化的程度更高,不需要外围的处理电路。即可将模拟信号转换为电信号;LED数码显示屏读数方便,而且比较清晰;主控芯片采用AT89S52的兼容的电平兼容性更好,可利用的资源也更多。1.3系统方案的确定1.3.1单片机芯片的选择在单片机控制中,常用的ATMEL公司单片机种类有AT89C51、AT89C52、AT89S51、AT89S52,都兼容MCS-51单片机。对于AT89C51,是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,128×8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源等主要特性。相比而言,AT89C52有8K的ROM,256B的RAM,还增加一个定时器/计数器2,自然价格比C51略高。而相对而言,S系列的单片机具有在线编程下载(ISP)功能和看门狗,而且运行的速度的最高频率达到33MHZ,使得运行速度更快,自然价格比C系列的要高2元左右。但是当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,S系列的不需要对芯片多次拔插,节省了调试的时间。整理为word格式整理为word格式整理为word格式综合考虑以上种种因素,由于考虑到产品的成本,在同样能完成我们所要求的功能时,自然会选择容易操作和扩展的AT89S52,这样更容易把产品推向市场。但是在实验室的的调试中,我们依然可以用AT89C51,这样就方便了我们的硬件调试,同样降低了开发产品的成本。1.3.2显示模块的选择常见的文字、图像显示屏主要有LED(LightEmittingDiode)显示屏,LCD(LiquidCrystalDisplay),LED点阵数码管显示。LED显示器与LCD显示器相比,LED在亮度、功耗、可视角度和刷新速率等方面,都更具优势。LED与LCD的功耗比大约为10:1,而且更高的刷新速率使得LED在视频方面有更好的性能表现,能提供宽达160°的视角,可以显示各种文字、数字、彩色图像及动画信息,也可以播放电视、录像、VCD、DVD等彩色视频信号,多幅显示屏还可以进行联网播出。因此本次显示模块设计中选用LED数码显示管。1.3.3数据采集系统的选择本课程设计要求对温度进行测量,待测量一般不能直接被转换成数字量,通常要进行放大、特性补偿、滤波等环节的预处理。被测信号往往因为幅值较小,而且可能还含有多余的高频分量等原因,不能直接送给A/D转换器,需对其进行必要的处理,即信号调理。如对信号进行放大、衰减、滤波等。为减少电路的繁复,故本测控系统数据采集系统中采用集成温度采集元件与A/D转换元件配合使用。硬件选择为DS18B20数字温度传感器。数据采集方式有顺序控制数据采集和程序控制数据采集。方案一:顺序控制数据采集,顾名思义,它是对各路被采集参数,按时间顺序依次轮流采样。系统的性能完全由硬件设备决定。在每次的采集过程中,所采集参数的数目、采样点数、采样速率、采样精度都固定不变。若要改变这些指标,需改变接线或更换设备方能实现。方案二:程序控制数据采集,由硬件和软件两部分组成。,据不同的采集需要,在程序存储器中,存放若干种信号采集程序,选择相应的采集程序进行采集工作,还可通过编新的程序,以满足不同采样任务的要求。由于顺序控制数据采集方式缺乏通用性和灵活性,所以本设计中选用程序控制数据采集方式。整理为word格式整理为word格式整理为word格式1.3.4复位电路1.复位电路单片机在开机时都需要复位,以便中央处理器CPU以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。AT89S51的RST引脚是复位信号的输入端。复位电平是高电平有效,持续时间要有24个时钟周期以上。本系统中单片机时钟频率为12MHz则复位脉冲至少应为2us。方案一:上电复位电路上电瞬间,RST端的的电位与Vcc相同,随着电容的逐步充电,充电电流减小,RST电位逐渐下降。上电复位所需的最短时间是振荡器建立时间加上二个机器周期,在这段时间里,振荡建立时间不超过10ms。复位电路的典型参数为:C取10uF,R取8.2k,故时间常数=RC=10108.210=82ms以满足要求。方案二:外部复位电路按下开关时,电源通过电阻对外接电容进行充电,使RES端为高电平,复位按钮松开后,电容通过下拉电阻放电,逐渐使RET端恢复低电平。方案三:上电外部复位电路典型的上电外部复位电路是既具有上电复位又具有外部复位电路,上电瞬间,C与Rx构成充电电路,RST引脚出现正脉冲,只要RST保持足够的高电平,就能使单片机复位。一般取C=22uF,R=200,Rx=1k,此时=2210110=22ms当按下按钮,RST出现5=4.2V时,使单片机复位。本设计采用方案三。2.振荡源在AT89S52内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1(19)、XTAL2(18)分别是此放大器的输入端和输出端。方案一:内部方式整理为word格式整理为word格式整理为word格式与作为反馈元件的片外晶体或陶瓷谐振器一起组成一个自激振荡器。方案二:外部方式外部振荡器信号的接法与芯片类型有关。CMOS工艺的MCU其XTAL1端接外部时钟信号,XTAL2端可悬空。HMOS工艺的MCU则XTAL2端接外部时钟信号,XTAL1端须接地。本设计采用方案一。1.3.5通信接口电路的选择1.传输方式的选择串行通信有同步和异步两种工作方式。方案一:同步方式要求发送与接受保持严格同步,由于串行传输逐位按顺序进行,为了约定数据是由哪一位开始传输,需设定同步字符。此方式传输速度快,但硬件复杂。方案二:异步方式,规定了数据传输格式,每个数据均以相同的帧格式传送,每帧信息由起始位、数据位、奇偶效验位和停止位组成。帧与帧间用高电平分隔开,但每帧均需附加位,降低了传输效率。异步通信依靠起始位、停止位保持通信同步。对硬件的要求低,实现起来比较简单、灵活,适用于数据的随机发送/接收,一般适用于50~9600bps的低速串行通信。2.电平转换芯片选择RS-232规定的电平和一般微处理器的逻辑电平不一致,必须进行电平转换。方案一:采用MCl488和MCl489芯片的转换接口MCl488和MCl489芯片为早期的RS-232至TTL逻辑电平的转换芯片,需要±12V电压,并且功耗较大,不适合用于低功耗的系统。方案二:采用MAX232芯片的转换接口MAX232是MAXIM公司的产品,包含两路驱动器和接收器的RS-232转换芯片。芯片内部有一个电压转换器,可以把输入的+5V电压转换为RS-232接口所需的±10V电压,尤其适用于没有±12V的单电源系统。由于RS-232信号电平与MSC-51型单片机信号电平(TTL电平)不一致,因此在本次设计中选用MAX232芯片。1.3.6电路设计最终方案整理为word格式整理为word格式整理为word格式综上各方案所述,对此次作品的方案选定:采用AT89S52作为主控制系统;LED数码显示器作为显示,DS18B20用来采集温度信息,附带加热电路和报警电路,采用MAX232芯片的串行接口电路,以及单向桥式直流稳压电路构成的电源。2系统硬件设计2.1系统硬件概述本电路是由AT89S52单片机为控制核心,具有可编程功能,低功耗,能在3V超低压工作;单线集成温度传感器独特的单线接口只需1个接口引脚即可通信,多点能力使分布式温度检测应用得以简化,不需要外部元件,可用数据线供电,不需备份电源;温度显示部份由LED数码显示屏显示;报警电路采用555产生变化的频率,在通过功率放大器驱动蜂鸣器;加热电路采用电机驱动。2.2AT89S52最小系统模块设计AT89S52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储()和28btes的随存数存(M,件采用ML公司高度非失存技产,兼标准M51指系,内通用8位央理()和lash存单功强大89片可您提供许多高性价比的应用场合,可灵活应用于各种控制领域。图2-1AT89S52管脚图整理为word格式整理为word格式整理为word格式主要性能参数:·与M51产品指令系统完全兼容·4k字节可重擦写lash闪速存储器·1000次擦写周期·全静态操作:0-24Mz·三级加密程序存储器·128×8字节内部M·32个可编程/O口线·2个16位定时/计数器·6个中断源·可编程串行T通道·低功耗空闲和掉电模式功能特性概述:89提供下准能4k字节lsh速储,128字内部M,32个/O口线两个16位时数器一个5两中结构个双串通口内荡及钟路同时89可降至0z的静辑作支两软可的电作。闲式停止U的工但允许,时计,行信中断系统继续工作。掉电方式保存M中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。引脚功能说明:·cc:电源电压·G:地·0是组8极路向/O口,即址数总复口作输口时每能收电流的方式驱动8个L逻辑门电路,对端口写“1”可作为高阻抗输入端用。在问部据储或序储时这口分转(低8数总复访期激部上拉电阻。在ash编程时,0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。整理为word格式整理为word格式整理为word格式·1口:1一带部拉阻的8双向/O口,1的出冲可动吸或出)4个L逻辑门路端“1通内的拉阻端拉高平时作入口作入使时为部在电阻,某个引脚被外部信号拉低时会输出一个电流(。ash编程和程序校验期间,1接收低8位地址。·2口:2一带内上电的8位向/O口,2的输缓级驱吸或出)4个L逻辑电路对口“过部上电把口到电平此可输口输口用时因内存拉电阻,某个引脚被外部信号拉低时会输出一个电流(在问部序储器或16位址外数存(执行M@R指时2口出高8地数据在问8地的部据储(执行M@I指),2线的容也殊能存()区中2寄存器的内容,在整个访问期间不改变。lash编程或校验时,2亦接收高位地址和其它控制信号。·P3口:3口一带内上电的8双向/O口。3输缓级驱(收输电)4个逻门路。对3写“1时它被部拉阻并作输端。输端,外拉低的3将用上拉电阻输出电流(,3口除了作为一般的/O口线外,更重要的用途是它的第二功能,如下表所示:端口引脚第二功能3.0(串行输入口)3.1(串行输出口)3.2————0(外中断0)3.3——1(外中断1)3.40(定时/计数器0外部输入)整理为word格式整理为word格式整理为word格式3.51(定时/计数器1外部输入)3.6———(外部数据存储器写选通)3.7———D(外部数据存储器读选通)表1P3口第二功能3口还接收一些用于lash闪速存储器编程和程序校验的控制信号。·:复位输入。当振荡器工作时,T引脚出现两个机器周期以上高电平将使单片机复位。/:当问部序储或据储时(地址存许出冲于存址的低8位字节即不问部储,E仍以时钟荡的/6输固的脉信,此可外出钟用定时目的。要注意的是:每当访问外部数据存储器时将跳过一个E脉冲。如必,通对殊能存(区的8H单的O置,禁止E操作该置后只有一条MX和MC令E才会被活此,引会微拉,片执外程时应设置E无效。/外访允许欲使U访外程存(地址为000—A端必须持电接地。需注意的是:如果加密位1被编程,复位时内部会锁存A端状态。如A端为高电平(接C端,U则执行内部程序存储器中的指令。lash存储器编程时,该引脚加上12V的编程允许电源pp,当然这必须是该器件是使用12V编程电压pp。·X1:振荡器反相放大器的及内部时钟发生器的输入端。·X2:振荡器反相放大器的输出端。2.3振荡源和复位电路设计2.3.1复位电路单片机的复位是靠外部电路实现的。无论是HMOS还是CHMOS型,在振荡器正运行的情况下,RST引脚保持二个机器周期以上时间的高电平,系统复位。在RST端出现高电平的第二个周期,执行内部复位,以后每个周期复位一次,直至RST端变低。本文采用上电外部复位电路,如图2-整理为word格式整理为word格式整理为word格式4所示,相关参数为典型值。图2-2复位电路2.3.2振荡源电路内部方式时钟电路如图2-5所示。外接晶体以及电容、构成并联谐振电路,接在放大器的反馈回路中,内部振荡器产生自激振荡,一般晶振可在2~12MHz之间任选。对外接电容值虽然没有严格的要求,但电容的大小多少会影响振荡频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。外接晶体时,和通常选30pF左右;外接陶瓷谐振器时,和的典型值为47pF。图2-3振荡电路整理为word格式整理为word格式整理为word格式2.4显示模块设计本次设计中显示模块部分选择的是LED数码显示屏。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。发光二极管(LightEmittingDiode,LED)是一种由某些特殊的半导体材料制作成的PN结。当正向偏置时,由大量的电子—空穴复合,LED释放出热量而发光。LED的正向工作压降一般为1.2-2.6V,发光工作电流为5-20mA,发光强度基本上与正向电流成正比。LED显示器由发光二极管构成,具有工作电压低、体积小、寿命长(约10万小时)、响应速度快(小于1us),颜色丰富(红、黄、绿等)等特点,是只能仪器最常用的显示器。LED显示器分为断码式显示器和点阵式显示器。1.断码式LED显示器由数个LED组成一个阵列,并封装于一个标准尺寸的管壳内,就形成了LED数码字符显示器。这类显示器的结构主要有:有7个LED(加上一个小数点为8个LED)构成的“日”字形7段(或8段)数码显示器;由12个LED构成的“田”字形数码显示器;由16个LED构成的“米”字形数码显示器。LED显示器的显示方式有静态显示和动态显示之分。(1)静态显示方式是指显示器在显示某一字符时,相应段的发光二极管恒定导通或截止,使显示字符的字段连续发光。在静态方式中,每位数码管都应有各自的驱动器件。为了便于程序控制,在选择LED驱动器件时,往往选择带锁存功能的器件,用以锁存各自待显示数码。因此,静态显示系统在每一次输出后能够保持不变,仅在待显示数码需要改变时,才更新其数字显示器中锁存的内容。这种显示方式的优点是亮度高,控制程序简单,显示稳定可靠;缺点是功耗大,当显示的位数较多时,占用的I/O端口较多,此时可以采用动态显示方式。(2)动态显示方式:实用于显示位数较多的情况。所有位的段选线并联起来,由一个8位I/O端口控制,而各位的共阳极或共阴极分别由相应的I/O端口控制,形各位的轮流选通,即LED显示部分轮流工作,每次只能使一个器件显示1-5ms。由于人的视觉暂留现象和发光二极管的余晖效应,人眼扔感觉所有的器件都在同时显示,获得稳定的视觉效果。此种显示方式的优点是占用I/O端口少,随着高亮度LED数码管的出现,动态显示同样可以打到很好的显示效果。整理为word格式整理为word格式整理为word格式动态显示方式的实现有程序控制扫描和定时中断扫描两种。程序控制扫描方式要占用许多CPU时间,在计算机的任务较重时,将影响CPU的工作效率,所以在实际应用中常采用定时中断扫描方式。这种方式是每隔一定时间让一位数码管显示,假设有8位数码管,则显示扫描周期为8ms。2.点阵式LED显示器:8段LED显示器显示的数码和符号比较简单,显示更多种类且字符逼真的字符则比较困难。点阵式LED显示器是以点阵格式进行显示的,其优点是显示的符号比较逼真,更易识别,不足之处是接口电路以及控制程序比较复杂。点阵式显示器一般有4x7、5x7、7x9点阵等形式。最常用的是5x7点阵,它由35个发光二极管组成5列x7行的矩阵。用多个点阵式LED显示器可以组成大屏幕LED显示屏,用来显示汉字、图形和表格,而且能产生各种动画效果。这是新闻媒介和广告宣传的有力工具,其应用也越来越普遍。在本次设计中使用的是点段式动态显示LED数码管显示器。2.5串行接口模块设计AT89S52有一个全双工的串行口,所以单片机和PC之间可以方便地进行串口通讯。进行串行通信时要满足一定的条件,如PC的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,这里用专用芯片MAX232进行转换,用专用芯片更简单可靠。MAX232如图2-10所示。它包含两路接收器和驱动器,内部有一个电源电压变换器,可以把输入的+5V电压变换位RS-232输出电平所需的+10V电压。所以,用该芯片接口的串行通信只需单一的+5V电源就可以了。其应用性更强。上半部电容、、、及,是电源变换部分。实际应用中,器件对电源噪声很敏感。因此,对地需要加去耦电容,其值为1.0uF。电容、、、取同样数值的电解电容,以提高抗干扰能力。整理为word格式整理为word格式整理为word格式图2-4MAX232引脚图串口通信的硬件连接采用三线制连接串口,就是说和PC的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对本设计来说已经足够了,MAX232的第11脚和单片机的11号引脚连接,第12脚和单片机的10脚连接,第15脚和单片机的20脚连接。MAX232的第14脚和PC机串口的2号引脚连接,第13脚和PC机串口的3号引脚连接,第15脚和PC机串口的5号引脚连接。通信接口电路如图6所示。图2-5通信接口电路通信接口电路在本次设计中起到的作用是把温度值传送到单片机上,最后在显示器上进行显示。2.6温度采集模块设计整理为word格式整理为word格式整理为word格式采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P1.5与DS18B20的DQ口连接加一个上拉电阻,VCC接电源,GND接地。接口电路,如图7所示。图2-6温度采集模块接口电路各管脚功能:DQ为数字信号输入/输出端;GND为电源地;VCC为外接供电电源输入端(在寄生电源接线方式时接地)。高速暂存器:高速暂存存储器由9个字节组成,其分配如表-6所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表1所示。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。第九个字节是冗余检验字节。高速暂存器地址分布,如表4所示。表2高速暂存器地址分布:根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指整理为word格式整理为word格式整理为word格式令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。ROM指令介绍:主要有5条指令,如下表3所示。表3ROM指令表RAM指令:主要有4条指令,涉及到温度的转换到存储的一个简单过程。表4RAM指令表整理为word格式整理为word格式整理为word格式2.7报警电路设计报警电路主要由555定时器、功率放大器、蜂鸣器以及一些相应的原件构成,当温度高于设定值时,报警电路报警在该设计中报警电路是不可缺少的。由于设计的是实时检测系统的温度,作为恒温控制的。当温度高于设定值时,555定时器工作于多谐振荡器状态,产生可变的频率,由于555定时器不能直接驱动蜂鸣器,故由555定时器输出的信号,需要功率放大来驱动蜂鸣器。接口电路设计,如图9所示。图2-7报警电路模块设计2.8加热电路设计加热电路设计,是电路的主要功能部分,作为整个电路的执行部分,当测量温度高于设定值时,并在液晶显示屏上显示制冷符号“—“;当测量温度低于设定值时,电机正转加热,并且在液晶显示屏上显示加热符号“+”。由于电机需要高电压控制,因此在设计中有一个光电耦合电路,起到低电压控制高电压的作用。其与单片机的接口电路,如图10所示。整理为word格式整理为word格式整理为word格式图2-8加热电路模块设计图中LED作为电机运行的指示灯,当电机运行时,灯亮。便于电路的检修。注意加热电路与单片机的接口部分不能直接相连,因为两者的电平不兼容,需要加一个反相缓冲器。3.系统软件设计3.1主程序流程图由于本课程设计主要针对作为数据采集与控制的单片机系统而非PC机,故软件编程为单片机系统编程。系统采用模块化编程,将各部分功能分别实现,主要的功能子程序有:温度采集、LED显示。主程序流程图如图10所示。整理为word格式整理为word格式整理为word格式开始开始初始化调用温度采集子程序调用LCD显示子程序判断温控标志位图3-1主程序流程图3.2外部中断的应用温度传感器所测得的信号经过电路处理后产生了中断信号,作为单片机的外部终断源,中断处理过程分为四个部分:中断请求、中断响应、中断服务、中断返回。CPU执行程序时,在每一个指令周期的最后一个T周期都要检查是否有中断请求,如果没有中断请求程序将执行后面的程序。在本系统的程序中,启动计时器后,外部中断必须在运算程序执行之前,所以需要加一个等待中断请求的延时程序。在中断响应阶段,CPU会判断多个中断请求的优先级,中断优先级的设置由中断优先级管理寄存器IP。如果几个中断请求的IP均为0或者1,则将有内部查询确定优先级。本设计已经用到定时器T0中断,而外部中断的作用就是为了停止计时器工作,提取时间T。所以可以选用比T0中断优先级高的外部中断0,这样可以暂停定时器中断,并把定时器T0关闭,又因为查询顺序在T0之前所以不必对IP进行设置。本程序中,当温度低于20℃时,产生中断。由P3.3口控制加热器加热。加热到20℃后停止加热。对中断的设置为外部中断1开启;当温度高于25℃时,产生中断,由P3.2口控制报警电路报警。这些设置可以通过对寄存器IE进行总体设置。根据电路设计外部中断的触发方式下降沿触发与低电平出发均可,故采用下降沿触发,即IE=0x83。整理为word格式整理为word格式整理为word格式3.3延时程序的处理延时时间约为18ms的延时程序。C语言程序:voiddelay18ms(void){

unsignedchari,j;

for(i=90;i>0;i--)

for(j=98;j>0;j--)

}该程序采用for语句的嵌套式循环设计,利用累减赋值的执行时间实现程序上的延迟。但是分析具体的延时时间转换成汇编语言分析会更加清楚明了。产生的汇编程序如下:

MOV

R6,#TIME1//TIME1为i的16进制数值

LOOP2: MOV

R5,#TIME2//TIME2为j的16进制数值

LOOP1:DJNZ

R5,LOOP1

DJNZ

R6,LOOP2

RET

整理为word格式整理为word格式整理为word格式4.心得体会在这次课程设计中,我们运用到了以前所学的专业课知识,虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。我们通过查阅大量有关资料,并在小组中互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名测控专业的学生,单片机的课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。我认为这个收获应该说是相当大的。觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。整理为word格式整理为word格式整理为word格式本次课程设计能够顺利完成,离不开黎水平老师的指点和帮助,在此表示十分感谢。参考文献[1]OperationalAmplifiersdata.sheet.intersil,1997[2]LM567datasheet.intersil,1997[3]康华光.电子技术基础模拟部分(第五版).高等教育出版社.2006.[4]康华光.电子技术基础数字部分(第五版).高等教育出版社.2006.[5]赵建领,薛园园.51单片机开发与应用技术详解.电子工业出版社.2009.[6]史建芳.智能仪器设计基础.电子工业出版社.2009.[7]李广弟,朱月秀,王秀山.单片机基础(修订本).2002.[8]谭浩强.C语言程序设计(第三版).清华大学出版社.2005.[9]张国雄.测控电路.机械工业出版社.2002[10]李刚.现代测控电路.高等教育出版社.2004.[11]赵茂泰.智能仪器原理及应用.电子工业出版社.1999整理为word格式整理为word格式整理为word格式附录1:程序#include<reg52.h>//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include<math.h>#include<stdio.h>#include<INTRINS.H>#defineucharunsignedchar#defineuintunsignedint;/******************************************************************//*定义端口*//******************************************************************/sbitseg1=P2^0;sbitseg2=P2^1;sbitseg3=P2^2;sbitDQ=P1^3;//ds18b20端口sfrdataled=0x80;//显示数据端口/******************************************************************//*全局变量*//******************************************************************/uinttemp;ucharflag_get,count,num,minute,second;ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//7段数码管段码表共阴ucharstr[6];/******************************************************************//*函数声明*//******************************************************************/voiddelay1(ucharMS);unsignedintReadTemperature(void);voidInit_DS18B20(void);unsignedcharReadOneChar(void);voidWriteOneChar(unsignedchardat);voiddelay(unsignedinti);voidUARTinit(void){SCON=0x50; /*SCON:模式1,8-bitUART,使能接收*/TMOD|=0x20;/*TMOD:timer1,mode2,8-bitreload*/整理为word格式整理为word格式整理为word格式TH1=0xFD;/*TH1:reloadvaluefor9600baud@11.0592MHz*/TR1=1;/*TR1:timer1run*///EA=1;/*打开总中断*///ES=1; TI=1;}/******************************************************************//*主函数*//******************************************************************/main(){unsignedintTempH,TempL;TMOD|=0x01;//定时器设置TH0=0xef;TL0=0xf0;IE=0x82;TR0=1;UARTinit();P2=0x00;count=0;while(1){str[5]=0x39;//显示C符号str[1]=tab[TempH/100];//百位温度str[2]=tab[(TempH%100)/10];//十位温度str[3]=tab[(TempH%100)%10]|0x80;//个位温度str[4]=tab[TempL];//带小数点if(flag_get==1)//定时读取当前温度{temp=ReadTemperature();if(temp&0x8000){str[0]=0x40;//负号标志temp=~temp;//取反加1 temp+=1; }elsestr[0]=0;TempH=temp>>4;TempL=temp&0x0F;TempL=TempL*6/10;//小数近似处理printf("%d.%d\n",TempH,TempL);整理为word格式整理为word格式整理为word格式flag_get=0;}}}/******************************************************************//*定时器中断*//******************************************************************/voidtim(void)interrupt1using1//中断,用于数码管扫描和温度检测间隔{TH0=0xef;//定时器重装值TL0=0xf0;num++;if(num==200){num=0; flag_get=1;//标志位有效second++;if(second>=60){second=0;minute++;}}count++;if(count==1){P2=0;dataled=str[0];}//数码管扫描if(count==2){P2=1;dataled=str[1];}if(count==3){P2=2;dataled=str[2];}if(count==4){P2=3;dataled=str[3];}if(count==5){P2=4;dataled=str[4];}if(count==6){P2=5;dataled=str[5];count=0;}整理为word格式整理为word格式整理为word格式}/******************************************************************//*延时函数*//******************************************************************/voiddelay(unsignedinti)//延时函数{while(i--);}/******************************************************************//*初始化*//******************************************************************/voidInit_DS18B20(void){unsignedcharx=0;DQ=1;//DQ复位delay(8);//稍做延时DQ=0;//单片机将DQ拉低delay(80);//精确延时大于480usDQ=1;//拉高总线delay(10);x=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败delay(5);}/******************************************************************//*读一个字节*//******************************************************************/unsignedcharReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DQ=0;//给脉冲信号dat>>=1;DQ=1;//给脉冲信号if(DQ)dat|=0x80;delay(5);}return(dat);}/******************************************************************//*写一个字节*//******************************************************************/整理为word格式整理为word格式整理为word格式voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;delay(5);DQ=1;dat>>=1;}delay(5);}/******************************************************************//*读取温度*//******************************************************************/unsignedintReadTemperature(void){unsignedchara=0;unsignedintb=0;unsignedintt=0;Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0x44);//启动温度转换delay(200);Init_DS18B20();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0xBE);//读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar();//低位b=ReadOneChar();//高位b<<=8;t=a+b;return(t);}通信串行接口电路程序:HIGHEQU31HLOWEQU30HORG1000HSTART:MOVHIGH,#00MOVLOW,#00;转换结果单元清除CLRP1.6CLRP1.7;A/D转换JNBP1.5,$;待转换结束SETBP1.6;SCLK上升沿整理为word格式整理为word格式整理为word格式MOVR7,#12;置循环初值12LP:CPLP1.6;发SCLK脉冲JNBP1.6,LP;等待SCLK变高MOVC,P1.5;将数据取到CMOVA,LOWRLCAMOVLOW,AMOVA,HIGHRLCAMOVHIGH,A;将取到的数据位逐位移入结果保存单元DJNZR7,LPSETBP1.7;结束RETEND整理为word格式整理为word格式整理为word格式附录2:英文资料翻译MicrocomputerSystemsElectronicsystemsareusedforhandinginformationinthemostgeneralsense;thisinformationmaybetelephoneconversation,instrumentreadoracompany’saccounts,butineachcasethesamemaintypeofoperationareinvolved:theprocessing,storageandtransmissionofinformation.inconventionalelectronicdesigntheseoperationsarecombinedatthefunctionlevel;forexampleacounter,whetherelectronicormechanical,storesthecurrentandincrementsitbyoneasrequired.Asystemsuchasanelectronicclockwhichemployscountershasitsstorageandprocessingcapabilitiesspreadthroughoutthesystembecauseeachcounterisabletostoreandprocessnumbers.Presentdaymicroprocessorbasedsystemsdepartfromthisconventionalapproachbyseparatingthethreefunctionsofprocessing,storage,andtransmissionintodifferentsectionofthesystem.ThispartitioningintothreemainfunctionswasdevisedbyVonNeumannduringthe1940s,andwasnotconceivedespeciallyformicrocomputers.Almosteverycomputerevermadehasbeendesignedwiththisstructure,anddespitetheenormousrangeintheirphysicalforms,theyhaveallbeenofessentiallythesamebasicdesign.Inamicroprocessorbasedsystemtheprocessingwillbeperformedinthemicroprocessoritself.Thestoragewillbebymeansofmemorycircuitsandthecommunicationofinformationintoandoutofthesystemwillbebymeansofspecialinput/output(I/O)circuits.Itwouldbeimpossibletoidentifyaparticularpieceofhardwarewhichperformedthecountinginamicroprocessorbasedclockbecausethetimewouldbestoredinthememoryandincrementedatregularintervalsbutthemicroprocessor.However,thesoftwarewhichdefinedthesystem’sbehaviorwouldcontainsectionsthatperformedascounters.Theapparentlyratherabstractapproachtothearchitectureofthemicroprocessoranditsassociatedcircuitsallowsittobeveryflexibleinuse,整理为word格式整理为word格式整理为word格式sincethesystemisdefinedalmostentirelysoftware.Thedesignprocessislargelyoneofsoftwareengineering,andthesimilarproblemsofconstructionandmaintenancewhichoccurinconventionalengineeringareencounteredwhenproducingsoftware.Thefigure1.1illustrateshowthesethreesectionswithinamicrocomputerareconnectedintermsofthecommunicationofinformationwithinthemachine.Thesystemiscontrolledbythemicroprocessorwhichsupervisesthetransferofinformationbetweenitselfandthememoryandinput/outputsections.Theexternalconnectionsrelatetotherest(thatis,thenon-computerpart)oftheengineeringsystem.Fig.1.1ThreeSectionsofaTypicalMicrocomputerAlthoughonlyonestoragesectionhasbeenshowninthediagram,inpracticetwodistincttypesofmemoryRAMandROMareused.Ineachcase,theword‘memory’isratherinappropriatesinceacomputersmemoryismorelikeafilingcabinetinconcept;informationisstoredinasetofnumbered‘boxes’anditisreferencedbytheserialnumberofthe‘box’inquestion.MicrocomputersuseRAM(RandomAccessMemory)intowhichdatacanbewrittenandfromwhichdatacanbereadagainwhenneeded.Thisdatacanbereadbackfromthememoryinanysequencedesired,andnotnecessarilythesameorderinwhichitwaswritten,hencetheexpression‘random’accessmemory.AnothertypeofROM(ReadOnlyMemory)isusedto整理为word格式整理为word格式整理为word格式holdfixedpatternsofinformationwhichcannotbeaffectedbythemicroprocessor;thesepatternsarenotlostwhenpowerisremovedandarenormallyusedtoholdtheprogramwhichdefinesthebehaviorofamicroprocessorbasedsystem.ROMscanbereadlikeRAMs,butunlikeRAMstheycannotbeusedtostorevariableinformation.SomeROMshavetheirdatapatternsputinduringmanufacture,whileothersareprogrammablebytheuserbymeansofspecialequipmentandarecalledprogrammableROMs.ThewidelyusedprogrammableROMsareerasablebymeansofspecialultravioletlampsandarereferredtoasEPROMs,shortforErasableProgrammableReadOnlyMemories.Othernewtypesofdevicecanbeerasedelectricallywithouttheneedforultravioletlight,whicharecalledElectricallyErasableProgrammableReadOnlyMemories,EEPROMs.Themicroprocessorprocessesdataunderthecontroloftheprogram,controllingtheflowofinformationtoandfrommemoryandinput/outputdevices.Someinput/outputdevicesaregeneral-purposetypeswhileothersaredesignedforcontrollingspecialhardwaresuchasdiscdrivesorcontrollinginformationtransmission

温馨提示

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

最新文档

评论

0/150

提交评论