基于单片机的数字温度计测控仪的设计_第1页
基于单片机的数字温度计测控仪的设计_第2页
基于单片机的数字温度计测控仪的设计_第3页
基于单片机的数字温度计测控仪的设计_第4页
基于单片机的数字温度计测控仪的设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

PAGE..现代通信原理课程设计基于单片机的数字温度计测控仪学生姓名学号所在系通信工程系专业名称通信工程班级指导教师XX师范大学XX学院二○一二年十一月..数字温度计测控仪的设计内容摘要:随着单片机技术的迅速发展,单片机的应用正在不断地推广,由于它具有体积小,功能全,功耗低,价格便宜,性价比高,工作可靠方便等诸多优点而独具特色,所以在与微控制有关的系统中应用非常广泛。在日常生活及工业生产过程中,温度是生产过程和科学实验中普遍而且重要的物理量。温度测量是生活中和工程领域中经常要解决的问题。传统的测温元件有热电阻和热电偶。然而其测出的一般都是电压,进而转换成对应的温度,在这过程中需要较多的外部硬件支持,硬件电路和软件调试也相对复杂,而且制作成本也非常高。而数字温度计的设计是采用STC89C52单片机为主控制芯片和美国DALLAS半导体公司推出的智能温度传感器DS18B20为检测元件组成的温度控制系统。因为DS18B20可以直接读出温被测温度值,而且采用"一线总线",减少了外部的硬件电路,具有易使用和高精度的特点。根据功能要求系统设计了相关的硬件电路和应用程序。硬件电路主要包括STC89C52单片机最小系统,测温电路、数码管显示电路等。程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,数码管显示程序等。关键词:温度单片机DS18B20数字温度计DigitalthermometermeasurementandcontrolinstrumentdesignAbstract:Withtherapiddevelopmentofsingle-chipmicrocomputertechnology,theapplicationofsinglechipmicrocomputer,iscontinuouslypromotion,becauseithassmallvolume,thefunctioniscomplete,lowpowerconsumption,lowpriceandhighperformance/priceratio,reliableworkisconvenientwaitforalotofadvantageandunique,soinandmicrocontroltherelatedsystemapplicationisverywide.Inourdailylifeandindustrialproductionprocess,thetemperatureistheprocessoftheproductionandscientificexperimentwidespreadandimportantphysicalquantity.Temperaturemeasurementislifeandinthefieldofengineeringoftenwanttosolvetheproblem.Thetraditionaltemperaturemeasurementelementhavethermalresistanceandthethermocouple.Yetitsfactorsaregenerallyvoltage,andthenconvertedtothecorrespondingtemperature,inthisprocessneedsmoreexternalhardwaresupport,hardwarecircuitandsoftwaredebuggingisrelativelycomplex,andtheproductioncostisalsoveryhigh.AndthedesignofthedigitalthermometerisusedmainlySTC89C52single-chipmicrocomputercontrolchipandtheUnitedStatesDALLASsemiconductorcompanylaunchoftheintelligenttemperaturesensorDS18B20fordetectingelementcompositionofthetemperaturecontrolsystem.BecauseDS18B20candirectlyreadtemperaturemeasuredtemperaturevalue,butalsoadopted"alinebus",reducetheexternalhardwarecircuit,hasthecharacteristicsofhighprecisionandeasytouse.Accordingtothefunctionalrequirementsystemdesigntherelatedhardwarecircuitandapplications.ThehardwarecircuitSTC89C52includingsinglechipminimizesystem,temperaturemeasurementcircuit,digitaltubedisplaycircuit,etc.Programmainlyincludesthemainprogram,readtemperaturesubroutine,temperatureconversioncommandsubroutine,calculationoftemperaturesubroutine,digitaltubedisplayprogram.Keywords:temperatureMCUDS18B20Digitalthermometer..目录前言1概述1设计目的1设计原理1设计难点21系统的总体设计方案21.1总体方案设计21.2总体设计框图22开发工具AltiumDesigner与Keil32.1Keil软件32.1.1Keil软件简介32.1.2Keil软件功能32.2AltiumDesigner42.2.1AltiumDesigner简介42.1.2AltiumDesigner功能模块42.3本节小结63硬件电路设计63.1单片机控制模块63.1.1单片机简介63.1.2单片机最小系统电路123.2MAX7219控制的显示电路123.2.1MAX7219简介123.2.2MAX7219引脚功能133.2.3MAX7219驱动数码管电路图143.3温度监测模块143.3.1DS18B20简介143.3.2DS18B20引脚说明153.3.3DS18B20电路图153.4温度显示电路163.5电源模块164软件设计164.1主程序174.2读出温度子程序174.3温度转换命令子程序184.4计算温度子程序194.5温度数据刷新子程序195系统的功能206设计总结20附录1:系统电路图22附录2:系统PCB图23附录3:系统源程序24参考文献:30..数字温度计测控仪的设计前言随着时代的进步,数字化无疑是人们追求的目标之一,它给人们带来了很多方便,其中数字温度计就是一个很好的例子,一切朝着数字化,智能化控制方向发展。数字温度计与传统的指针式温度计相比,具有精度高,使用方便,测量范围广,直观的显示温度等特点,其主要用于科研实验室以及对测温比较准确的场所。温度计是常用的测量仪器,常用于工业过程中温度的测量。在工业生产中,人们不仅要了解当前的温度,还希望能了解工作过程中温度的变化情况。随着工业的发展,对温度测量仪的要求是越来越高的,但数字温度计具有抗干扰能力强,功耗小,可靠性高,简单的结构等特点,因此其更加适合于工业中对温度在线测量的要求。本文采用单片机STC89C52为主控制芯片设计了温度实时测量及控制系统。单片机STC89C52能够根据温度传感器DS18B20所采集的温度在数码管上实时显示,通过控制从而把温度控制在设定的范围之内。概述设计目的随着人们生活水平的提高,单片机的应用也越来越广,单片机的控制也是人们追求目标之一,它给人们带来很多方便,数字温度计就是一个很好的例子。本设计介绍了数字温度计与传统的指针式温度计相比,具有很多特点,并且应用也非常广泛。在生活中人们可以随处看到数字温度计的踪影。目前,数字温度计在温控系统中也得到广泛的应用。设计原理本设计是基于单片机AT89S52设计的数字温度计,用来测量环境温度,以及检测环境温度的变化情况。它的测量范围在-55℃~125℃。整个系统分为四部分:温度传感器,单片机控制器,LED数码显示器以及扫描驱动。整个设计的核心是AT89S52,通过数字温度传感器DS18B20来实现温度的测量,并进行A/D转换,因此其输出为数字形式,这就为单片机处理提供了方便,但也同时对编程提高了要求。单片机把测量到的温度进行相应的计算,使其能在数码管上输出对应的温度。LED数码管采用四位一体共阳极的数码管。设计难点此设计重要部分在与编程,程序要实现对温度的采集,转换,BCD值的计算,温度的显示,以及温度的刷新,其外围电路较简单,所以运用的器件相对较少,实现起来也相对容易。1系统的总体设计方案1.1总体方案设计因为本设计是测量温度,因此可以利用热敏电偶之类的元件的感温效应来测量温度,并将温度的引起的电压变化采集出来,并将其进行A/D转换,就可以利用单片机对数据进行处理,并经过电路在数码管上显示出来。但是此感温电路比较麻烦,所以我们直接采用温度传感器DS18B20,其可以很容易的读取被测温度值,进行转换就可以实现设计要求,所以给我们的设计带来了很多的方便。实现温度的测量,我们要考虑的主要是以下三个方面的内容:温度随时都在变化,要做到对温度的时时监控。温度的精度很重要,要做到高精度。测量温度时系统的稳定性要好才行。于是本设计就是以这三个部分为核心内容展开。1.2总体设计框图数字温度计的总体设计方框图如图所示,温度传感器采用的是DS18B20,控制器采用的是单片机AT89C52,用四位共阳极LED数码管以串口传送数据的方式来实现温度的显示。温度传感器温度传感器AT89C52主控制器四位LED数码显示器扫描驱动图1.2-1总体设计框图2开发工具AltiumDesigner与Keil2.1Keil软件2.1.1Keil软件简介KeilC51软件开发系统是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。C语言与汇编相比,在功能上、可读性、结构性、可维护性上有很大的优势,因而易学易用。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。KeilC51软件是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision<通常称为μV2>。Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:μVisionIDE集成开发环境C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统。2.1.2Keil软件功能Keil进行软件仿真开发的主要步骤为:编写源程序并保存—建立工程并添加源文件—设置工程—编译、连接,产生目标文件—程序调试。Keil使用"工程"<Project>的概念,对工程进行编译、连接等操作。工程的建立、设置、编译及连接产生目标文件的方法非常方便,易于掌握。首先选择菜单Project-NewProject…,建立新工程并保存;工程保存后会弹出一个设备选择对话框,选择CPU后点确定返回主界面。然后建立源程序文件,然后打开"Target1",选择SourceGroup1,右击鼠标弹出快捷菜单,选择"AddFiletoGroup‘SourceGroup1’",出现一个对话框,要求寻找并加入源文件。加入源程序文件后点close返回主界面,就会看到所加入的文件,双击文件名,即可打开该源程序文件。紧接着对工程进行设置,选择工程管理窗口的Target1,再选择Project-OptionforTarget‘Target1’<或点右键弹出快捷菜单再选择该选项>,打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如要写片,还必须在Output选项卡中选中"CreatHexFi";其它选项卡内容一般可取默认值。工程设置后按F7键<或点击编译工具栏上相应图标>进行编译/汇编、连接以及产生目标文件。

成功编译、连接后,选择菜单Debug-Start/StopDebugSession<或按Ctrl+F5键>进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。Keil能以单步执行<按F11或选择Debug-Step>、过程单步执行<按F10或选择Debug-StepOver>、全速执行等多种运行方式进行程序调试。如果发现程序有错,可采用在线汇编功能对程序进行在线修改<Debug-InlineAssambly…>,不必执行先退出调试环境、修改源程序、对工程重新进行编译/汇编和连接、然后再次进入调试状态的步骤。对于一些必须满足一定条件<如按键被按下等>才能被执行的、难以用单步执行方式进行调试的程序行,可采用断点设置的方法处理<Debug-Insert/RemoveBreakpoint或Debug-Breakpoints…等>。在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察开发板的运行状况。2.2AltiumDesigner2.2.1AltiumDesigner简介1987-1988年由美国ACCELTechnologiesInc公司推出了第一个应用于电子线路设计的软件包TANGO,这个软件包开创了电子设计自动化〔EDA的先河。随着电子行业的发展,TANGO日益不满足行业的需要。为了满足时代的需要,ProtelTechnology公司推出了ProtelForDOS作为TANGO的升级版,从此Protel的名字在行业类日益响亮。20世纪80年代末期,Protel推出了ProtelForWindows1.0、ProtelForWindows1.5等版本。20世纪90年代中期Protel推出了Protel3.x版本。1998年Protel推出了Protel98,这个版本获得了业界的一致好评。1999年Protel有推出了Protel99版本。20XXProtel软件的原厂商Altium推出了Protel系列的最高端版本AltiumDesigner。AltiumDesigner是业界首例将流程、集成化PCB设计、可编程器件设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品。2.1.2AltiumDesigner功能模块库管理:基于单一数据库的一体化的库管理支持所有元件模式,并和三维模型,数据页以及元件供应商相链接。版本控制和外部项目管理系统的单点控制。仿真-混合信号:SPICE3F5/XSPICE混合信号电路仿真<同时兼容于PSpice®>。信号完整性-原理图级别:布线前的信号完整性分析,并包含全功能的,使用缺省PCB参数的分析引擎。PCB-板卡定义&规则:在机械层上放置/编辑对象,用于高速设计的设计规则,用户自定义的层堆栈,自原理图转换设计,放置元件,实时制造规则检查。PCB-三维可视化技术:三维可视化技术提供了电路板逼真并且实时渲染的视图,包括MCAD-ECAD支持技术:支持STEP模型的直接连接、实时的间隙。设计环境:检查、检查二维和三维模式下的配置情况,直角投影,和二维和三维PCB模型的纹理映射。PCB版图:图片剪贴板支持,在电器层上放置/编辑对象,创建封装,从库放置,导入向导。PCB-交互式布线:交互式布线〔推挤、套锁和自动完成模式,差分对,交互式/自动放置,动态管脚/部件互换,拖拽操作中的障碍规避。拓扑自动布线技术:拓扑自动布线技术,具有全面的层、对象和设计规则支持,自动布线PCB文件。信号完整性-版图级:布局后信号完整性分析、支持PCB布线分析的完整分析引擎。PCB-制造文件输出:多项输出发布功能允许将多个输出文件整合进一个单一的格式类型文件,以更好地管理数据;项目历史和支持文件检查受控,并支持PDF发布,打印或者Web格式;生成Gerber、NCDrill、ODB++文件和STEP。DXP平台:软件集成平台,为所有编辑器和浏览器提供GUI支持,用于设计文档预览的设计洞察功能,设计编译器,文件管理,版本控制接口和脚本引擎。原理图-浏览器:打开、查看及打印原理图文档和器件库。PCB-浏览器:打开、查看及打印PCB文档,增加了查看和三维PCB文档导航的功能CAM文件-浏览器:打开并导入CAM和机械文件。原理图-SoftDesign编辑:所有原理图文档和库文件编辑功能<不包括PCB项目和免费文件>,网表生成。仿真-VHDL:VHDL仿真引擎,集成调试器和波形观察器。支持第三方ModelSim和Active-HDL功能.NanoBoard支持:支持一系列自动配置的、可互换的目标FPGA子板〔来自所有芯片商以及插入式外设板,提升整个系统架构的灵活性。为FPGA设计提供电源监控器。FPGA设计:C语言定制FPGA逻辑开发、OpenBus、原理图、VHDL和Verilog设计综合,定制Wishbone接口元件.FPGA处理器内核:支持一系列用于FPGA的32-bit软处理器包括:TSK3000A,XilinxMicroBlaze®,AlteraNiosII®,ActelCoreMP7®。同时支持PowerPC<PPC405A>分离处理器,XilinxVirtexIIPro®,和一些老的版本例如,8-bit微处理器<TSK51,TSK52,TSK80andTSK165>。处理器内核嵌入式工具:全系列软件开发工具-支持32-bit处理器的C编译器/组装器/源代码调试器/仿真器即插即用的软件平台搭建器支持硬件更容易。FPGA可编程仪器:可用于远程接入的预综合FPGA即用仪器,包括定制仪器,终端模拟器,数字I/O,交点转化,逻辑分析仪,频率发生器,计数器和应用控制面板。JTAG软器件支持:实时连接到软器件,如虚拟仪器和运行在FPGA内的处理器。JTAG硬件器件支持:对任意JTAG器件进行交互式引脚状态监控。IP核心设计的复用:支持对第三方FPGA的IP核心和开发以及对IP库的复用。导入/导出:支持对OrCAD,Allegro,PADS,DxDesigner,Cadstar,P-CAD,CircuitMaker,Protel以及更多的软件生成的设计和库数据的导入和导出。原理图-编辑:所有原理图文档和库文件编辑功能,网表生成。2.3本节小结本节主要简单介绍了设计此系统需要用到AltiumDesigner和编译软件Keil,了解这两种软件发展,功能和初步用法,了解AltiumDesigner的功能模块,以及keil的调试功能等,为以后设计打好基础。相信通过后面的学习会有更深体会。3硬件电路设计3.1单片机控制模块3.1.1单片机简介单片机是是微型计算机的一种,它是将计算机的CPU,I/O接口,内存集成在一块硅片上的微型计算机,又称微控制器。它是典型的嵌入式微控制器,不仅是完成一个逻辑功能的芯片,而是把计算机系统集成到一块小小的芯片上。它是由存储器,控制器,输入输出设备,运算器构成。单片机是一种集成电路芯片,它采用了超大规模的集成电路技术把中央处理器CPU,只读存储器ROM,随机存储器RAM,多种I/O口,中断系统和定时器/计数器,系统时钟,系统总线,脉宽调制电路,模拟电路转换器,A/D转换器等功能,集成在一块小的硅片上,构成一个小而完整的微型计算机系统,在工业和生活中应用非常广泛。单片机有很多中型号的产品,例如普通型〔51系列有8031,8051,89C51,89S51等,增强型〔52系列有8032,8052,89C52,89S52等。它们的结构,引脚和封装基本相同,主要差别在存储器的配置上。本设计采用的是89C52作为主控制器。下面将介绍89C52。单片机89C52的引脚如图3.1.1-1。图3.1.1-189C52单片机的引脚Vss:接地端。Vcc:电源端,接+5V。XTAL1:接外部晶体的引脚,CHMOS单片机采用外部时钟信号时由次引脚输入。XTAL1:接外部晶体的引脚,HMOS单片机采用外部时钟信号时由次引脚输入。RST/Vpd:复位信号输入。VCC掉电后,该引脚可接备用电源,低功耗条件下保持内部RAM中的数据不丢失。ALE/:地址锁存允许。当单片机访问外部存储器时,该管脚的输出信号ALE用于锁存P0的低8位地址。ALE输出的频率为时钟振荡频率的1/6。对单片机8751内EPROM编程时,编程脉冲由该管脚接入。:程序存储器允许,输出读外部程序存储器的选通信号,指令操作期间,的频率为晶体振荡频率的1/6,若次过程中有访问外部存储器的操作,就会有一个机器周期中的信号将不会出现。/Vpp:当=0,单片机只访问外部程序存储器。当=1,单片机访问内部程序存储器,若地址超过内部存储器的范围时,单片机将自动访问外部程序存器。P0口:P0口可作为输出/输入端口,但在应用中常作为数据总线/地址口用,其低8位地址与数据线分时使用P0端口。低8位地址由ALE信号的下降沿锁存到外部地址锁存器中。而高8位则由P2口输出。P1口:P1口的每一个端口都可以作为可编程的输入输出口线。P2口:P2口可以作为输入输出端口使用。外接I/O口与存储器时,又作为系统的地址总线扩展,输出高8位地址,与P0口一起组成16位地址总线。P3口:P3口为双功能口。其第一功能与P1口功能相同,但是作为第二功能使用时,其每一位功能如下表。表3.2.1-1P3口的第二功能端口引脚第二功能P3.0RXD<串行输入线>P3.1TXD<串行输出线>P3.2<外部中断0输入线>P3.3〔外部中断1输入线P3.4T0<定时器0外部计数脉冲输入>P3.5T1<定时器1外部计数脉冲输入>P3.6WR〔外部数据存储器写选通信信号输入P3.7RD〔外部数据存储器写选通信信号输出STC89S52单片机的中断系统,作为计算机重要组成部分的中断系统,其主要目的是实现计算机的资源共享,主要的功能是实现CPU与外部设备的速度配合、实时控制、鼓掌技术自动发现处理和人机联系。STC89S52单片机的中断系统分为:6个中断源,2个中断优先级。可由程序实现二级中断嵌套。整个中断系统的结构如表3.1.1-2:表3.2.1-289C52单片机中断源中断源符号名称中断引起的原因中断服务程序入口地址外部中断0P3.2引脚的低电平或下降沿信号0003H外部中断1P3.3引脚的低电平或下降沿信号0013HT0定时器0中断定时/计数器0计数回0或者溢出000BHT1定时器1中断定时/计数器1计数回0或者溢出001BHT2定时器2中断定时器2中断〔TF2或T2EX信号002BHTI/RI串行口中断串行通信接口完成发送或者接受数据0023H89C52的一个中断源对应IE寄存器的一位,如果允许该中断源则该位置"1",禁止该中断则相应位置"0"。其还有一个总的中断控制位,其格式如下表所示。表3.2.1-3中断控制寄存器EA—ET2ESET1EX1ET0EX0中断总控允/禁不用T2允/禁串行口允/禁T1允/禁允/禁T0允/禁允/禁中断请求标志及外部中断方式寄存器TCON格式如下表。表3.2.1-4中断请求标志TF1TR1TF0TR0IE1IT1IE0IT0T1请求有/无T1工作有/无TO请求有/无T0工作有/无INT0请求有/无INT方式下降沿INT0请求有/无INT0请求下降沿说明:●TF1,TF0,IE0,IE1分别为中断源T1,T0,INT0,INT1的中断请求标志,若有中断请求,该中断标志置1;无中断请求,则置0。●IT0,IT1分别为中断INT1,INT1中断的触发方式选择,若为下降沿则IT相应位置1;若选为低电平则置0。●TR1,TR0为定时器T1,T0工作启动和停止的控制位,与中断无关。89C52中断优先级分别由IP寄存器管理,一个中断源对应一位。如果对相应位置1,该中断源优先级最高;若对相应位置0,则优先级最低。表3.1.1-5中断优先级管理寄存器格式——PT2PSPT1PX1PT0PX0无用位无用位T2高/低串行口高/低T1高/低INT高/低1T0高/低INT0高/低若几个中断源在IP寄存器相应位同为1或0时,则由系统内部查询确定优先级,优先响应先查询的中断请求。CPU查询的顺序是:INT0T0INT1T1TI/RIT289C52单片机是通过对中断允许寄存器IE的相对应位的设置来实现中断的开放和禁止的。其控制由总控制和对中断源的控制两级控制组成。总控制用于决定整个中断系统的开关与否,当整个中断系统关闭时,CPU不响应任何中断请求。对于每个中断源的分别控制,是在总控制开放的前提下,决定特定的中断源开放还是禁止。定时/计数器中的核心为可预置初值的16位计数器。当定时/计数器启动工作后,定时/计数器从预置的初值开始计数,直至定时/计数值计满到该工作方式下的最大值时归0并产生溢出,此时TFX为高电平并可以申请中断。定时脉冲信号来自稳定的系统时钟的分频信号,则称为定时方式,计数脉冲信号来是外部脉冲信号,则称为计数方式。16位定时/计数器分别由两个8位专用寄存器组成。它们都分别映射在定时器内部的特殊功能寄存器中,两个8位特殊功能寄存器TMOD和TCON,用于定时器的管理与控制。TMOD是定时器工作方式寄存器,用于定时器工作方式和功能的设置;如下表3.1.1-6所示:表3.1.1-6TMOD特殊功能寄存器TMODGATEC/TM1M0GATEC/TM1M089H门控开关计数/定时定时方式门控开关计数/定时定时方式T1定时/计数器T1定时/计数器方式选择位M1、M0确定四中工作方式,如下表3.1.1-7:表定时/计数方式M1M0方式功能描述00013位01116位1028位自动重载计数113两个8位方式TCON的作用是控制定时器的启动、停止以及标志定时器的溢出和中断情况,定时控制字TCON的格式如表3.1.1-8:表3.1.1-8TCON特殊功能寄存器TCONTF1TR1TF0TR0IE1IT1TE0IT088HT1请求有/无T1工作启/停T0请求有/无T0工作启/停INT1请求有/无INT1方式下沿/低电平INT0请求有/无INT0方式下沿/低电平3.1.2单片机最小系统电路时钟振荡电路在加电后延迟大约10ms振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率决定。电路中两个电容C1、C2的作用使电路快速振,提高电路的运行速度。通过高电平时单片机复位,在时钟电路开始工作后,当高电平的时间超过大约5ms的时候,即可实现复位。此复位电路同时具备了上电自动复位和按键人工复位的功能,上电复位发生在开机加电时,由系统自动完成,按键人工复位通过一个按键来实现在程序运行时,若遇到死机或死循环等情况时,通过手动复位就可以实现重新启动的操作。按键人工复位需要认为在复位输入端RST上加入高电平。STC89S52单片机及其最小系统电路图如图3.1.2-1图所示:图3.1.2-1TC89S52单片机及其最小系统电路图3.2MAX7219控制的显示电路3.2.1MAX7219简介MAX7219是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。只有一个外部寄存器用来设置各个LED的段电流。MAX7219同样允许用户对每一个数据选择编码或者不编码。整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。3.2.2MAX7219引脚功能MAX7219采用标准的24脚接口,如3.2.2-1图所示:图3.2.2-1MAX7219引脚图各引脚接口说明如表所示:表3.2.2-1MAX7219引脚说明图管脚名称功能1DIN串行数据输入端口。在时钟上升沿时数据被载入内部的16位寄存器。3,5-8,10,11DIG0–DIG7八个数据驱动线路置显示器共阴极为低电平。关闭时7219此管脚输出高电平。4,9GND地线〔4脚和9脚必须同时接地12LOAD载入数据。连续数据的后16位在LOAD端的上升沿时被锁定13CLK时钟序列输入端。最大速率为10MHz.在时钟的上升沿,数据移入内部移位寄存器。下降沿时,数据从DOUT端输出14-17,20-23SEGA–SEGG,DP7段和小数点驱动,为显示器提供电流。当一个段驱动关闭时,7219的此端呈低电平。18SET通过一个电阻连接到V来提高段电流。19V+正极电压输入,+5V24DOUT串行数据输出端口,从DIN输入的数据在16.5个时钟周期后在此端有效。当使用多个MAX7219时用此端方便扩展。3.2.3MAX7219驱动数码管电路图MAX7219的第一脚接单片机的P10端口,第十二脚接单片机的P11口,第十三脚接单片机的P11口,电路图如图3.2.3-1所示:图3.2.2-1MAX7219驱动数码管电路图3.3温度监测模块3.3.1DS18B20简介Dallas半导体公司的数字化温度传感器是世界上第一片支持"一线总线"接口的温度传感器。一线总线独特而经济的特点,使用户可以轻松的组建传感器网络,为测量系统的构建引入了全新的概念。现在,新一代的1DS18B20体积更小、更灵活、更经济。3.3.2DS18B20引脚说明DS18B20引脚如图3.3.2-1所示:图3.3.2-1DS18B20引脚图DS18B20引脚功能如表3.3.2-1所示:表3.3.2-1DS18B20引脚说明图管脚名称功能1GND电源地2DQ数据I/O口3VCC电源正级3.3.3DS18B20电路图DS18B20的第二引脚与单片机的P14相连,电路图如图3.3.3-1所示:图3.3.3-1DS18B20电路图3.4温度显示电路图3.4.1-1温度显示电路3.5电源模块电源模块电路如图3.5-1所示:图4.4-1电源电路图4软件设计系统的程序主要包括主程序,温度转换命令子程序,计算温度子程序,读出温度子程序,显示温度刷新子程序等。4.1主程序主程序的功能主要是负责温度的实时显示,读出并处理DS18B20的测量温度值。每一秒进行一次温度测量,其流程图如图4.1.1-1所示。图4.1.1-1DS18B20温度计主程序流程4.2读出温度子程序读出温度子程序的主要作用是读出DS18B20RAM中的9个字节,在读出时需要进行CRC校验,校验有错事不对温度进行改写,其程序流程如图4.2.1-1所示。发DS18B20复位命令发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正确?移入温度缓存器结束YYNN图4.2.1-1读出温度子程序流程4.3温度转换命令子程序温度转换命令子程序主要是发送温度转换开始命令,当采用12位分辨率时,转换时间约为750ms,在此程序中采用的是1秒显示程序延时法等待转换的完成。温度转换命令子程序流程图如图4.3.1-1所示。图4.3.1-1温度转换命令子程序流程4.4计算温度子程序计算温度子程序将DS18B20RAM中读取的值进行BCD码的转换运算,并进行温度值正负的判断,其程序流程如图4.4.1-1所示。图4.4.1-1计算温度子程序流程4.5温度数据刷新子程序显示数据刷新子程序主要是对显示的数据进行刷新操作,即完成温度的实时监控。当最高数据显示位为零时将符号显示位移到下一位,其程序流程如图4.5.1-1所示。图4.5.1-1显示数据刷新子程序流程图5系统的功能此系统具有实时检测环境温度的变化功能,并且通过数码管显示,能让人实时知道环境温度的变化情况。6设计总结在这两个月的课程设计中,让我明白了要想取得成功就必须得付出,并且要有毫不松懈、不断努力的精神。在课程设计过程中,我不断发现错误,不断改正,不断的攻破一个一个的问题,通过老师和同学的指导,让我发现了自己很多的不足,也让我自己明白了自己该怎样努力,该怎样去解决一个个问题。也让我明白了在今后的学习过程中,必须及时发现自己的问题,并且通过不同的途径去解决这些问题。并且一定要做到不断努力,不能遇到问题就退缩,一定要发现问题所在,然后一一解决,只有这样,才能做成自己想做的事,这样才能在今后的人生道路上奋勇向前,而不是知难而退,否则永远不可能取得成功,也不会得到别人的认可!通信原理课程设计是一门专业课,也为我们大四所要面临的毕业设计奠定了一定的基础,让我知道了该怎么去做这样一个设计,怎样利用自己学过的知识去解决一个个难题。这次设计对我的单片机知识以及专业知识有了很大的提高。通过这次的课程设计,我掌握了数字温度计的设计原理,数字温度计在生活中的应用,以及单片机的应用。在这段日子中,可以说苦多于甜,但是也让我学到了很多的东西,不仅让我巩固了以前学过的知识,而且也学到了很多在书本上所没有学到的新知识。通过这次课程设计让我懂得了,实践对自己能力提高是有很大的帮助,我们不仅要学好书本上的理论知识,我们还需要注重实践能力。在当今这个注重技术的时代,实践对我们来说是非常重要的。所以在今后的学习中我们必须做到理论联系实践。这样我们今后才能在专业上有很大的提高,并且更深一步理解知识。只有这样我们才能在毕业之后找到自己想要的工作。最后我要感谢在这次设计过程中帮助过我的老师,同学,感谢你们不厌其烦,细心的给我讲解问题,给我指出问题,让我学到了很多实用的知识,也让我有了很大的提高。谢谢!附录1:系统电路图图1系统电源图图2系统电路图附录2:系统PCB图图3系统PCB图〔顶层图4系统PCB图〔底层附录3:系统源程序#include"reg51.h"#include"intrins.h"#defineN0_DISPLAY17#defineDISP_SIGN16sbitONE_WIRE_DQ=P1^0;voiddelay_ms<unsignedint>;voiddelay_us<registerunsignedint>;voidtemp2str<signedinttmep,unsignedchar*>;voiddisplay<unsignedchar*>;voidstart_convert<void>;signedintread_temperature<void>;unsignedcharOW_reset<void>;unsignedcharOW_read_byte<void>;voidOW_write_byte<unsignedcharval>;voidmain<>{unsignedchari;unsignedchardispram[8];for<i=0;i<8;i++>dispram[i]=NO_DISPLAY;while<1>{start_convert<>;for<i=0;i<120;i++>display<dispram>;temp2str<read_temperature<>,dispram>;}}/**************************************************************///StartDS18B20TemperatureConvert/**************************************************************/Voidstart_convert<void>{OW_reset<>;OW_write_byte<oxCC>;//SkipROMOW_write_byte<ox44>;//StartConversion}/**************************************************************///ReadTemperature//returnstheTemperature/**************************************************************/Signedintread_temperature<void>{Unsignedcharget[9];Signedinttemp;Unsignedchari;OW_reset<>;OW_write_byte<oxCC>;OW_write_byte<oxBE>;For<i=0;i<9;i++>get[i]=OW_write_byte<>;Temp=<temp<<8>|get[0];Returntemp;}/**************************************************************///OW_reset-performsaresetontheone-writebusand//returnsthepresencedetect/**************************************************************/unsignedcharOW_reset<void>{unsignedcharpresence;ONE_WIRE_DQ=0;delay_us<240>;ONE_WIRE_DQ=1;delay_us<33>;presence=!ONE_WIRE_DQ;delay_us<205>;return<presence>;}/**************************************************************///READ_BYTE-readsabytefromtheone-wirebus./**************************************************************/UnsignedcharOW_read_byte<void>{unsignedcharI;unsignedcharvalue;for<i=0;i<8;i++>{ONE_WIRE_DQ=0;starttimeslotvalue>>=1;ONE_WIRE_DQ=1;delay_us<1>;timeslotif<ONE_WIRE_DQ>value|=0x80;delay_us<25>;}return<value>;}/**************************************************************///WRITE_BYTE-writesabytefromtheone-wirebus./**************************************************************/voidOW_write_byte<charval>{unsignedchari;for<i=0;i<8;i++>{ONE_WIRE_DQ=0;delay_us<1>;ONE_WIRE_DQ=val&0x01;ifwrite1delay_us<30>;ONE_WIRE_DQ=1;val>>=1;}}/**************************************************************/TemperaturedatatodisplaystringfunctionParameter:inttem,pointerofstring/**************************************************************/voidtemp2str〔signedinttemp,unsignedchar*ch{Unsignedcharsign;if<temp<0>{sign=1;temp=<~temp>+1;}elsesign=0;ch[7]=<<temp&0x0f>*10+8>/16;temp>>=4;ch[6]=<temp%10>|0x40;temp/=10;ch[5]=temp%10;temp/=10;ch[4]=temp%10;ch[3]=NO_DISP

温馨提示

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

评论

0/150

提交评论