1、 微机原理及应用课程设计说明书交通与汽车工程学院课程设计说明书课 程 名 称: 微机原理及应用课程设计 课 程 代 码: 题 目: 测温系统的设计 年级/专业/班: 学 生 姓 名: 学 号: 开 始 时 间: 2012 年 07 月 02 日完 成 时 间: 2012 年 07 月 06 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总 分(100)指导教师签名: 年 月 日目 录摘要21引言31.1 问题的提出 31.2 任务与分析32 方案设计52.1 系统设计方案52.2 系统总体框图53 系统硬件设计63
2、.1 89C51单片机63.2 DS18B20芯片83.3 单片机外围电路113.4 LED数码管显示电路124系统软件设计144.1 Proteus软件环境介绍144.2 Keil uVision3软件环境介绍144.3 Protel软件环境介绍154.4系统软件分析164.5程序流程图175 系统调试过程195.1 Protel电路调试195.2 Keil uVision3程序调试205.3 Proteus的设计、绘制和仿真205.4 PCB的生成与布线20总结22致谢23参考文献24附录25附录1 电路原理图25附录2 程序代码26摘 要随着单片机的普及科技的进步,功能更强、可靠性更高、
3、价格更低的单片机越来越被广泛用在工业控制,智能仪器仪表、办公室自动化、家用电器等诸多领域上。本设计是基于89C51单片机为控制核心的测温系统设计。系统采用了达拉斯美国Dallas半导体公司的DS18B20测温芯片构成了测温电路,实现了温度的测量。在系统显示部分,采用了共阴的LED数码管构成了显示模块,此模块用于温度的显示信息。本设计说明书对该系统的硬件电路,工作原理、软件设计进行了详细的介绍,给出了软件设计的流程图和主要源代码,经过仿真调试,达到设计功能要求。关键词:测温系统;51单片机; DS18B20;测温传感器 1 引 言 1.1 问题的提出 随着人类科技文明的发展,人们对于测温装置的要
4、求在不断地提高。传统的测温装置已不能满足当今很多方面的要求。多功能、小体积、低功耗、快速性,是现代测温装置发展的趋势。在这种趋势下,以单片机为控制核心,温度传感器为重要部分测温装置是当今的重要发展方向。传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠习惯差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才由单片机处理。本次采用DS18B20温度传感器来实现基于51单片机的数字温度计的设计。该数字温度计利用DS18B20温度传感器及其接口电路完成温度的测量并转换成电压信号,经由数模转换器转换成单片机能够处理的数字信号,送到单片机进行处理变换,最后经过三极管的放大显示在共阴极
5、数码管上。系统以51单片机为控制核心,加上测温电路,AD数模转换器,6位温度数据显示数码管以及外围电源电路组成。1.2任务与分析 任务分配:本次课程设计,我们以组为单位,共同合作完成作业。我们组有吴智敏、王桃、舒树东、邱飞和赵秋云共五名同学。整个设计过程中我们是这样分工的:吴智敏负责使用Proteus和Keil3两个软件来仿真电路设计和程序编译工作;王桃负责Protel原理图绘制;舒树东负责PCB布线;邱飞和吴智敏共同完成Proteus;邱飞对LED数码管显示器的类型和连线进行分析;赵秋云主要负责写说明书的编写。在本次设计中,在DS18B20和热敏电阻的选取上听取了孙老师的意见和分析后,决定选
6、择使用相对更为流行的智能化热敏传感器DS18B20,在程序设计方面也遇到了问题,大家一起讨论后及时改正并调试成功。本次设计的系统的控制中心是AT89C51单片机。首先,在Protel软件环境中进行硬件电路图的设计。然后在Keil3软件环境中进行系统的软件编程,并进行程序源文件的修正和编译,生成hex文件。此hex文件是硬件电路运行实现的源代码来源。把hex文件加载到AT89C51单片机芯片,然后在Proteus软件环境中模拟仿真,测温装置的温度正常显示。 本设计的系统主要由:AT89C51为中央处理芯片,用于数据处理,初值设定。温度传感器DS18B20是本例的另一核心模块,由它作温度传感器,提
7、供温度信息。经单片机进行数据接受处理,再由通过对应IO口输出,最后LED数码管实时显示。本系统可以分为以下5大模块:(1)AT89C51模块:用于数据处理,和外围的测温芯片通信,并控制信号传输过程,采集时间信息并予以处理。(2)DS18B20模块:用于测量温度,利用温度传感器及接口电路完成温度的测量并转换成模拟电压信号,经由数模转换器转换成单片机能够处理的数字信号。利用DS18B20数字温度传感器可提高测量精度。(3) RESPACK模块:用于稳定电压,限制高电流。 (4)数码管显示模块:显示模块采用普通的共阴6位LED数码管,此模块用于温度的实时信息显示。(5)程序部分:主要包括单片机控制测
8、温芯片的接口程序(实现单片机和DS18B20芯片之间的数据传输过程)和数码管显示程序。2 系统方案设计2.1 系统设计方案通过查阅相关资料,设计初期共有2个方案供我选择,分别是:(1)采用89C51单片机,普通热敏电阻组成的测温系统;(2)采用89C51单片机,DS18B20芯片组成的测温系统。(1)采用89C51单片机组成的测温系统:此系统的硬件部分主要是由89C51单片机,0809芯片,热敏电阻所组成。经热敏电阻感应出模拟电压信号,进行A/D转换后,可以用单片机进行数据的处理,在显示电路上就可以将温度显示出来,而这需要比较多的外部的硬件的支持,硬件电路复杂(需要用到A/D转换电路,感温电路
9、),软件调试相对复杂,制作成本也很高。所以这个设计理论不符合这次我们对产品的要求,应继续来考虑另一可行方案。(2)采用89C51单片,DS18B20芯片组成的测温系统:此方案在硬件部分主要采用了89C51单片机,DS18B20芯片,LED显示器。该系统的最大特点是采用了相对智能化的芯片即DS18B20。在自身功能上进行了扩充,加上其单线制的使用,使得硬件连线显得较为简单。同时在软件部分,程序显得层次分明。我们综合讨论并请教孙老师分析后,确定设计采用第2方案。2.2 系统总体框图单片机主控制器显示器前端处理(AD转换)温度传感器扫描驱动图2-1 系统总体框图 当程序启动后,程序进入初始化阶段。温
10、度传感器DS18B20把所感应处理测得的温度数据发送到AT89C51单片机上,经过51单片机进行数据处理,将温度在LED数码管上显示。本系统显示器用6位共阴LED数码管以动态扫描法的方式实现。检测范围-55摄氏度到+125摄氏度。3 系统硬件电路设计 硬件主要包含AT89C51单片机、DS18B20测温传感器、LED数码管显示器。3.1 89C51单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种
11、带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图3-1 89C51单片机引脚图89C51单片机与早期Intel的8051/8751/8031芯片的外部引脚和指令系统完全兼容,只不过用Flash ROM 替代了ROM/EPROM而已3。89C51单
12、片机内部结构如图所示。图3-2 89C51单片机内部结构示意图各引脚的功能如下:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉
13、的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I
14、/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR 8E
15、H地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次有效。但在访问外部数据存储器时,这两次有效的信号将不出现。 :当保持低电平时,则在此期间CPU只访问外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RESET;当端保持高电平时,则执行内部程序存储器中的程序。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入
16、。 XTAL2:来自反向振荡器的输出。3.2 DS18B20芯片DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。(1)DS18B20 的性能特点如下;(2)独特的单线接口方式仅需要一个端口引脚进行通信;(3)多个DS18B20可以并联在唯一的三线上,实现多点组网功能;(4)无需外部器件;(5)可通过数据线供电,电压范围:3.05.5V;(6) 测温范围55125,在-10+85时精度为0.5;(7) 零待机功耗;(8)温度以9或12位数字量
17、读出;(9)用户可定义的非易失性温度报警设置(10)警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件(11)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作,本次所用DS18B20采用3脚PR35 封装,其内部结构框图如图所示: 64位ROM和单线接口存储器与控制逻辑高速缓存外接单片机温度传感器高温触发器TH低温触发器配置寄存器8位CRC发生器GND 图3-3 DS18B20内部结构框图主机操作ROM的命令有五种,如表1所列指 令说 明读ROM(33H)读DS1820的序列号匹配ROM(55H)继读完64位序列号的一个命令,用于多个DS1820时定位跳过ROM(CC
18、H)此命令执行后的存储器操作将针对在线的所有DS1820搜ROM(F0H)识别总线上各器件的编码,为操作各器件作好准备报警搜索(ECH)仅温度越限的器件对此命令做出响应 表3-1 主机操作ROM的命令DS18B20 温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM 的结构为8字节的存储器,结构如图4所示。 图3-4 DS18B20内部存储器和存储器的结构 前2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分
19、辨率转换为相应精度的温度数值。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.062 5 /LSB形式表示。温度值格式如下: 图3-5 温度值格式这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。图中,S表示位。
20、对应的温度计算:当符号位S=0时,表示测得的温度植为正值,直接将二进制位转换为十进制;当S=1时,表示测得的温度植为负值,先将补码变换为原码,再计算十进制值。例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。DS18B20温度传感器主要用于对温度进行测量,数据可用16位符号扩展的二进制补码读数形式提供,并以0.0625LSB形式表示。表2是部分温度值对应的二进制温度表示数据。 表3-2 温度值对应的二进制位DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较,若TTH或
21、TTL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行告警搜索。在64位ROM的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM的前 56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。如下图,为仿真电路中的AT89C51。图3-6 仿真电路中的AT89C513.3 单片机外围电路利用芯片内部振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出脉冲信号。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路
22、,不论是HMOS还是CHMOS型单片机其并联谐振回路及参数相同。振荡晶体选择12MHZ。电容无严格要求,电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,C1和C2可在20100pF取值。 图3-7 内部时钟电路图3-8复位电路3.4 LED数码管显示电路在单片机应用系统中使用LED显示块构成N位LED显示器。N位LED显示器有N根位选线和8*N根段选线。根据显示方式的不同,位选线和段选线的连接方法不同。段选线控制字符选择,位选线控制显示位的暗、亮。LED显示器有静态显示和动态显示两种方式。(1)LED静态显示。LED显示器工作在静态显示的方式下,共阴极或共阳极连接在一起接地或
23、+5V;每位段选线(adp)与一个8位并行口相连。N为静态显示器要求有N*8根I/O接口线,占用I/O资源较多,所以在位选较多时往往采用动态显示方式。(2)LED动态显示。在多位LED显示时,为简化电路,降级成本,将所有位的选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别有相应的I/O接口线控制。8位LED动态显示电路只需要两个8位I/O接口。其中一个控制段选码,另一个控制位选。由于所有位的选码皆有一个I/O控制。因此,在每个瞬间,8位LED只能显示相同的字符,要想每位显示不同的字符,必须采用扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,段选控制I/O在该显示位送
24、入选通电平,以保证该位显示相应字符。如此轮流,使每位显示该位相应字符,并保持延时一段时间,以造成视觉暂留效果。(3)LED显示器接口。从LED显示器的显示原理可知,为了显示字母数字,必须转换成相应的段选码。这种转换可以通过硬件译码器或软件进行译码。硬件译码显示器接口:BCD7段十六进制译码驱动显示接口。单片机应用系统中,通常要求LED显示器能显示十六进制及十进制带小数点的数。因此在选择译码器时,要能够完成BCD码至十六进制的锁存、译码,并且具有驱动功能,否则就不采用软件译码接口。软件译码显示接口。由于单片机本身有较强的逻辑控制能力,采用软件译码并不复杂,而且软件译码逻辑可随意编程设定,不受硬件
25、译码逻辑限制,采用软件译码还能简化硬件电路结构。因此,在单片机应用系统中,使用最广的软件译码的显示接口。下图为六位数码管仿真电路。图3-9 添加驱动电路的数码管显示电路4 系统软件设计4.1 Proteus软件环境介绍本系统的硬件设计首先是在Proteus软件环境中仿真实现的。Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的。针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,
26、并实现软件源码级的实时调试。如果有显示及输出,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,还能看到运行后输入输出的效果。Proteus建立了完备的电子设计开发环境,尤其重要的是Proteus Lite可以完全免费,也可以花微不足道的费用注册达到更好的效果。Proteus是目前最好的模拟单片机外围器件的工具。可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件.)。在没有硬件的情况下,Proteus能像pspice 仿真模拟/数字电路那样仿真MCU及外围电路。另外,即使有硬件,在程序编写早期用软件仿
27、真一下也是很有必要的。Proteus软件主要具有以下几个方面的特点:(1)设计和仿真软件Proteus 是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。(2)它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。(3)它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。(4)它可以仿真目前流行的单片机,如PICS, ATMEL-AVR, MOTOROLA, 8051 等。(5)在设计综合性方案中,还可以利用ARES开发印制电路板。4.2 KeiluVision3软件环境的介绍Keil C
28、51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil公司是一家业界领先的微控制器(MCU)
29、软件开发工具的独立供应商。Keil公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc。Keil公司制造和销售种类广泛的开发工具,包括ANSI C编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-time kernel)。有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。其Keil C51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。Keil公司在2007年被ARM公司收购。其两家公司分别更名为ARM Germany GmbH和A
30、RM Inc和。Keil公司首席执行官Reinhard Keil表示:“作为ARM Connected Community中的一员,Keil和ARM保持着长期的良好关系。通过这次收购,我们将能更好地向高速发展的32位微控制器市场提供完整的解决方案,同时继续在uVision环境下支持我们的8051和C16x编译器。”C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(
31、.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。4.3 Protel软件环境介绍Protel印制板设计软件包是澳大利亚Protel Technology公司与1990年推出的电子CAD产品,具有方便、易学、实用、快速以及高速度、高步通率的特点。它采用了分层次下拉窗口菜单结构形式,用户基本上不需要记背太多的键盘命令,用鼠标点击菜单命令就能操作,P
32、rotel有着很高的自动布线布通率。布通率是电子产CAD产品的一项重要指标,它反映电子元件在电路图中连接关系有多少能在印刷版图中实现。在设计常用的单、双面印制板时只要选择适当的元件布局和布线策略方法,Protel就可以轻易的达到98%-100%的布通率。对于极少数不能布通的定方,Protel可以用飞线指示出来,引导用户用手工方法连通。另外,Protel有强大的宏命令设置功能,利用宏命令功能多定义的热键可以大大提高操作速度。 Protel对微机的软硬件配置要求很低:cpu在8088以上,dos2.0以上版本,内存640kb以上,双软件(或一个软件一个硬盘),单色显示器(多层板设计时最好用彩色),
33、各种兼容打印机。也能在Windows9X平台的模拟DOS下运行。 Protel已成为印制板设计加工方面的工业标准。据初步统计Protel在CAD的市场占有率达 95%,成为电子产品制造业界的首选CAD软件。4.4系统软件分析 任何一个应用系统,它们都有着自己的硬件系统和软件系统,少了任何一个部分都不可能称之为一个完整的应用系统,它们之间是相互依存的一个整体,硬件系统是软件系统的一个基础和前提,为软件系统提供了一个操作平台;而软件系统是硬件系统的灵魂,它对硬件系统起到扩充和完善的作用。可想而知软件系统与硬件系统同等重要,下面为系统软件设计过程:本次传感器采用DS18B20集成模块,他采用单总线协
34、议,即与单片机接口仅需占用一个I/O口 ,无需任何外部元件,直接将环境温度转化为数字信号,一数字码方式串行输出。大大简化了硬件电路的设计。当对该模块和单片机初始化后,启动DS18B20后, DS18B20就可以自动把温度读出,然后传给单片机。DS18B20测温原理如图4-1所示。图4-1: DS18B20测温原理框图(1)图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1
35、的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。 (2) LED动态扫描显示方式的设计1)单片机P2.0P2.4输出位选信号,通过数码管驱动电路,由单片机控制IO口输出电平,选定某数码管的某一位。2)单片机P0.0P0.7输出段选信号,具体控制数码管的某一位上的LED,输出对应段码,采用动态显示,使连线简单。 位选线LED被选中位所代表的含义P2.0 温
36、度的百位P2.1 温度的十位P2.2温度的个位P2.3温度的小数点后一位P2.4温度的小数点后两位表4-1 位选线定义表 4.5 程序流程图主程序流程图 : 返回单片机数据处理温度值显示读取温度值启动DS18B20芯片初始化DS18B20芯片和单片机 开 始 图4-2 主程序框图主序流程图声明: 因为使用了测温芯片DS18B20, DS18B20会自动进行模数转换,输出温度数字信号,供给单片机处理。单片机处理以后,通过IO口输出,经驱动电路显示在LED数码管中。程序初期,必须对DS18B20和单片机进行初始化,否者不能正常。实时温度测试中,对温度读写程序设置了相关的短延时操作,方便计数,并循环
37、反复读写和显示。在数码管显示程序中,通过温度传感器送来的信号值大小,做除法运算后进行位选,瓶通过P0口将对应段码显示到对应数码管,通过延时操作,显示下一位,直到六位数码管,动态循环显示。如下图为Keil3C语言的编译环境。图4-3 Keil3 C程序编5 系统调试仿真过程通过上面的硬件设计和软件设计过程,设计的工作已经基本完成,接下来的工作就是对所设计好的应用系统进行调试。通过调试可以检查出电路设计中出现的一些错误,从而进行修改调整。5.1 Protel电路调试 在Protel的元件库里没有六位共阴极数码管,单击【Edit】按键,对元件库的DYP_7SEG_DP数码管进行编辑,添加一个位选引脚
38、,再并排放置五个,使其成为六位共阴极数码管,再建立新的封装库编写其封装,连线。电路调试:单击【ERC】按键,进行节气点ERC检查;单击【Bill of Material】生成元件列表,检查元器件封装;单击【Creat Netlist】生成网络列表,为生成PCB图做准备。在PCB中加载网络列表,生成PCB图。图5-1 ERC电气规则检查结果显示没有错误图5-2 封装检查必须对元器件封装进行检查,假如不正确,是不能生成PCB图的,结果显示封装检查无误。5.2 Keil uVision4程序调试程序经过调试显示“0错误,2警告”。不影响程序编译和生成hex文件,和电路仿真的进行,故程序调试通过。图5
39、-3 编译结果5.3 Proteus的设计、绘制和仿真首先列出单片机芯片AT89C51,测温芯片DS18B20,排阻RESPACK,LED显示器,然后连线。将在keil软件里已经编译好的程序输入单片机。双击单片机,加载编译好的程序生成的hex文件,按下仿真按钮,观察仿真是否正常进行。调试,结果满足设计要求。图5-4 protues仿真图图5-5 protues仿真图25.4 PCB的生成与布线生成PCB之前,应该先用【KeepOutLayer】绘制禁止布线层。单击【Load Nets】加载网络列表将元器件加载进禁止布线层。然后将元器件合理布局,【Auto Route】/【All】进行布线,可以
40、选择自动布线,也可以手动布线,并检查布线是否正确与完整。图5-5 PCB电路图布线成功总 结本次设计首次采用了DS18B20测温传感器,此芯片稳定性好,并且功能强大。采用89C51单片机,在系统中的作用,该测温传感器处理后的数字信号直接传送单片机读取,并执行数码管显示操作。本系统采用Proteus仿真软件和keil3 C程序编译组合的联调的方法。其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特、可靠。设计中,理论指导实践可以达到事倍功半的效果,有坚实的理论做基础将会使设计变得得心应手。在设计的过程中应注意充分利用并扩展所学过的基础知识,设计的过程就是学习的过程,在设计过程中验证理论的
41、正确性,弥补知识的漏洞。正确对待设计过程中遇到的错误,遇到错误与问题要敢于面对并设法找到解决的办法。此次课程设计,我查阅了不少相关资料,更深刻地认识和巩固了平时所学的知识,使理论与实践有机结合,提高了我对所学专业的兴趣并积累了一些相关经验。我认为这就是一种很好的提高自身能力的方法。通过这个课程设计,使我发现,原来小小的一片单片机有这么强大的功能,能应用于各种领域。我应该在自己以后的学习中,不仅要有刻苦努力,要有钻研精神,还要有创新,对自己感兴趣的一定要用心去学。虽然自己尽了很大的努力,但是还有很多不尽人意的地方,我想大概是由于开展独立开发经验不足的缘故吧,作为一个学汽车电子的学生,我想我有必要
42、通过这次课更多的了解自己的不足,从而在以后的学习工作中不断增强自己的动手能力,争取在电路设计方面取进步。该电路还有很多缺陷。今后我要加强学习,去认识更深层的科学知识,使我设计出来的东西更加完美。要严格要求自己,就像严格要求设计的每一个细节一样。环境中,比如汽车驾驶室的温度测量中。在进一步的研究中还可以考虑加入温度的报警等功能,本次设计涉及了主要的测温以及显示功能,可以将之使用在DS18B20适用测温范围的相信会使之更加完善。本次设计我们的任务是设计温度测量系统。在本次设计中,我们第七小组进行了细致的分工,充分发挥了团队协作能力。我主要是写说明书。在写说明书的过程中,由于之前对很多软件都不是很了
43、解,我遇到了很多的困难,不过在孙老师和同组同学的帮助指导下及查阅资料后,我逐一克服了它们,对这些软件也有了一定的熟悉。同时孙老师也为我们其他的设计提出了很多宝贵的意见。本次设计我们小组成员互相帮助,经过各方面努力,最终完成了设计。致 谢在孙仁云老师的悉心指导下,我完成了本次课程设计。在孙老师的指导下,我完成了本次设计。孙老师拥有专业知识,严谨治学态度,精益求精作风给我留下了很深的印象,不仅如此,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。在课程设计里面,他让我重新认识到了专业知识学习的重要性,还使我明白了许多为人处世的道理。本设计从选题到完成,每一步都是在他的悉心指导下完成的,倾注了孙老师大量的心血。另外,本设计的完成也离不开其它同学给我的建议和帮助,是他们让我明白了团队合作的精神。在此,我谨向孙老师和帮助过我的同学们,表示崇高的敬意和衷心的感谢!参考文献1 徐峥颖.Protel99SE ED