第1章 绪论 1.1课题背景 测量控制的作用是从生产现场中获取各种参数,运用科学计算的方法,综合各种先进技术,使每个生产环节都能够得到有效的控制,不但保证了生产的规范化、提高产品质量、降低成本,还确保了生产安全。所以,测量控制技术已经被广泛应用于炼油、化工、冶金、电力、电子、轻工和纺织等行业。
随着单片机技术的迅速兴起与蓬勃发展,其稳定、安全、高效、经济等优点十分突出,所以其应用也十分广泛。单片机已经无处不在、与我们生活息息相关,并且渗透到生活的方方面面。
单片机的特点是体积较小,也就是其集成特性,其内部结构是普通计算机系统的简化,增加一些外围电路,就能够组成一个完整的小系统,单片机具有很强的可扩展性。它具有和普通计算机类似的、强大的数据处理功能,通过使用一些科学的算法,可以获得很强的数据处理能力[2]。所以单片机在工业中应用中,可以极大地提高工业设备的智能化、数据处理能力和处理效率,而且单片机无需占用很大的空间。
随着温度检测理论和技术的不断更新, 温度传感器的种类也越来越多,在微机系统中使用的传感器,必须是能够将非电量转换成电量的传感器,目前常用的有热电偶传感器、热电阻传感器和半导体集成传感器等,每种传感器根据其自身特性,都有它自己的应用领域。 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机STC8052,测温传感器使用DS18B20用1602C以串口传送数据,实现温度显示,能准确达到以上要求。 1.2温度检测与及报警系统的国内外状况 温度是一个非常重要的物理量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形、结晶以及空气流动等物理和化学过程。温度控制失误就可能引起生产安全、产品质量、产品产量等一系列问题。因此对温度的检测的意义就越来越大。温度采集控制系统在工业生产、科学研究和人们的生活领域中,得到了广泛应用。
在工业生产过程中,很多时候都需要对温度进行严格的监控,以使得生产能够顺利的进行,产品的质量才能够得到充分的保证。使用自动温度控制系统可以对生产环境的温度进行自动控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。
温度采集控制系统是在嵌入式系统设计的基础上发展起来的。嵌入式系统虽然起源 于微型计算机时代,但是微型计算机的体积、价位、可靠性,都无法满足广大对象对嵌入式系统的要求,因此,嵌入式系统必须走独立发展道路。这条道路就是芯片化道路。将计算机做在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。单片机诞生于二十世纪七十年代末,经历了SCM、MCU和SOC三大阶段。 在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用MCS-51单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题。同时温度也是生活中最常见的一个物理量,也是人们很关心的一个物理量,它与我们的生活息息相关,有着十分重要的意义,在工业生产中,温度过高或过低会直接影响到产品的质量、对机械设备和控制系统中的各种元器件造成一定的损坏,严重的会影响到生产安全。在日常生活中,温度过高或过低同样会造成一些不良影响。 在实际生产、生活等各个领域中,温度是环境因素的不可或缺的一部分,对温度及时精确的控制和检测显得尤为重要。比如,农业上土壤各个层面上的温度将会影响植物的生长;在医院的监护中也用到温度的测量。在工业中,料桶里外上限温度要求不一,以及热处理中工件各个部位的温度对工件形成后的性能至关重要等等。现代电子工业的飞速发展对自动测试的要求越来越高。采用单片机对温度进行控制,不仅具有控制方便和组态简单的优点,而且可以提高被控温度的技术指标。针对以上情况,在控制成本的前提下,通过本设计设计一款能够实时检测控制温度,又具有对系统设定不同的报警温度的温度控制报警系统功能。此系统能够满足现代生产生活的需要,效率高,具有较强的稳定性和灵活性。因此,在生产和生活中要对温度进行严格的控制,使温度在规定的范围内变化。通过本系统提高学生对于温度控制的认识。在学习实践中提高对理论的认知能力和动手解决实际问题的能力,达到教学实践相结合的目的。及采用先进的科学技术,加以丰富的保安实际经验和知识,向社会提供各种超值安全设备服务,给用户带来安全和放心。
第2章系统的硬件结构的组成
本系统集成了温度报警及开机计时功能,必要时,也可以将计时功能改为临时时钟的功能,这大大方便了我们的需要。 本系统结构框架: 2.1 所需主要元件及芯片 l AT89C52单片机一片。 l 1302时钟芯片一片。 l 18b20温度传感器一只。 2.2设计思想 l 温度方面:18b20实时采集温度数据,并将采集到的数据传送到单片机加以计算并处理,单片机将处理好的数据通过LCD液晶显示屏显示出来,以便我们能够直观的测量数据。 l 时钟方面:采用1302芯片通过简单的串行接口与单片机进行通信以实现对时间的调整,当需要复位时只需按下复位按钮,系统又可回到计时状态,当需要时钟是也可以通过按键将计时改为钟表。 l 输出显示:采用1602C液晶显示器通过单片机P0口将所测温度,以及时间显示出来。 l 报警处理:通过所测温度与预先设定的上下限的温度进行比较,如果大于或小于是就开始报警。报警显示通过LED发光二极管显示并通过扬声器发出警告。 2.3所需主要元件介绍 2.3.1 Stc89c52单片机 STC89C52低电压,高性能CMOS8位单片机,片内含4K的可以反复擦写的只读程序存储器PEROM和128B的随机数据存储器RAM器件采用ATMAl公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器CPU和FLASH存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。 主要性能 l 与MCS-51单片机产品兼容。 l 8K字节在系统可编程Flash存储器。 l 1000次擦写周期。 l 全静态操作:0Hz~33Hz。 l 三级加密程序存储器。 l 32个可编程I/O口线。 l 三个16位定时器/计数器。 l 八个中断源。 l 全双工UART串行通道。
l 低功耗空闲和掉电模式。 l 掉电后中断可唤醒。
l 看门狗定时器。 l 双数据指针。 l 掉电标识符。 file:///D:/Temp/msohtmlclip1/01/clip_image002.gif 图2-1 STC89C52引脚图 VCC : 电源 GND: 地 P0 口: P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。 在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。 1 P1 口: P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX).在flash编程和校验时,P1口接收低8位地址字节。 引脚号 第二功能 P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) 2 P2 口: P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 3 P3 口: P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用.在flash编程和校验时,P3口也接收一些控制信号。 引脚号 第二功能 P3.0------RXD(串行输入) P3.1-------TXD(串行输出) P3.2------- INT0(外部中断0) P3.3------- INT0(外部中断0) P3.4------- T0(定时器0外部输入) P3.5------- T1(定时器1外部输入) P3.6 -------WR(外部数据存储器写选通) P3.7------- RD(外部数据存储器写选通 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端
存储器结构 MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以 64K寻址。 程序存储器:如果EA引脚接地,程序读取只从外部存储器开始
对于 89S52,如果EA 接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开 始,接着从外部寻址,寻址地址为:2000H~FFFFH 。数据存储器:AT89S52 有256字节片内数据存储器。高128 字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。 当一条指令访问高于7FH 的地址时,寻址方式决定CPU 访问高128 字节RAM 还是特 殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。 例如,下面的直接寻址指令访问0A0H(P2口)存储单元 MOV 0A0H , #data 使用间接寻址方式访问高128 字节RAM。例如,下面的间接寻址方式中,R0 内容为 0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。 MOV @R0 , #data 堆栈操作也是简介寻址方式。因此,高128字节数据RAM也可用于堆栈空间。 中断 AT89S52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、 2)和一个串行中断。 符号 位地址 功能 EA IE.7 中断总允许控制位。EA=0,中断总禁止;EA=1,各中断由各自的控制位设定 IE.6 预留 ET2 IE.5 定时器2中断允许控制位 ES IE.4 串行口中断允许控制位 ET1 IE.3 定时器1中断允许控制位 EX1 IE.2 外部中断1允许控制位 ET0 IE.1 定时器0中断允许控制位 EX0 IE.0 外部中断1允许控制位 晶振特性 AT89S52 单片机有一个用于构成内部振荡器的反相放大器,XTAL1 和XTAL2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2 可以不接,而从XTAL1 接入,由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部
时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要 符合要求的。 2.3.2 1302时钟芯片 DS1302 是DALLAS 公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES 复位2 I/O 数据线3SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW DS1302 是由DS1202 改进而来增加了以下的特性双电源管脚用于主电源和备份电源供应Vcc1 为可编程涓流充电电源附加七个字节存储器它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等 产品领域下面将主要的性能指标作一综合 实时时钟具有能计算2100年之前的秒分时日日期星期月年的能力还有闰年调整的能力 31 8 位暂存数据存储RAM 串行 I/O 口方式使得管脚数量最少 宽范围工作电压2.0 5.5V
工作电流 2.0V 时,小于300nA
读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式8脚DIP 封装或可选的8 脚SOIC 封装根据表面装配 简单3线接口 与 TTL 兼容Vcc=5V 可选工业级温度范围-40 +85 与 DS1202 兼容 在 DS1202 基础上增加的特性 对Vcc1 有可选的涓流充电能力
双电源管用于主电源和备份电源供应 备份电源管脚可由电池或大容量电容输入 附加的7字节暂存存储器 1 DS1302的基本组成和工作原理 DS1302 的管脚排列及描述如下图所示 管脚描述 X1 X2------- 32.768KHz 晶振管脚 GND------- 地 RST -------复位脚 I/O --------数据输入/输出引脚 SCLK------- 串行时钟 Vcc1,Vcc2 -------电源供电管脚 2. DS1302 内部寄存器 CH: 时钟停止位寄存器2 的第7 位12/24 小时标志 CH=0 振荡器工作允许bit7=1,12 小时模式 CH=1 振荡器停止bit7=0,24 小时模式 WP: 写保护位寄存器2 的第5 位:AM/PM 定义 WP=0 寄存器数据能够写入 AP=1 下午模式 WP=1 寄存器数据不能写入 AP=0 上午模式 TCS: 涓流充电选择 DS: 二极管选择位 TCS=1010 使能涓流充电 DS=01 选择一个二极管 TCS=其它 禁止涓流充电 DS=10 选择两个二极管 DS=00 或11, 即使TCS=1010, 充电功能也被禁止 file:///D:/Temp/msohtmlclip1/01/clip_image004.jpg 图2-2DS1302时钟芯片引脚示意图 2.3.3 18b20介绍 特性 • 独特的单线接口仅需一个端口引脚进行通讯 • 简单的多点分布应用 • 无需外部器件
• 可通过数据线供电 • 零待机功耗 • 测温范围-55~+125℃,以0.5℃递增。华氏器件-67~+2570F,以0.90F 递增 • 温度以9 位数字量读出 • 温度数字量转换时间200ms(典型值) • 用户可定义的非易失性温度报警设置 • 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 • 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统 说 file:///D:/Temp/msohtmlclip1/01/clip_image006.gif 图2-3 DS18B20引脚示意图 2.3.4 DS1602
特点 1602字符型LCD模块的应用非常广泛,而各种液晶厂家均有提供几乎都是同样规格的1602模块或兼容模块,尽管各厂家的对其各自的产品命名不尽相同;1602字符型LCD模块最初采用的LCD控制器采用的是HD44780,在各厂家生产的1602模块当中,基本上也都采用了与之兼容的控制IC,所以从特性上基本上是一样的;当然,很多厂商提供了不同的字符颜色、背光色之类的显示模块。 通常所见到的1602模块的规格基本如表2-1所示 表2-1 DS1602主要技术参数 DS1602引脚如表2-2所示 表2-2 DS1602接口信号说明
第3章系统的硬件结构模块设计
本系统的设计结构由单片机,LCD液晶显示器,1302时钟芯片,18B20温度传感器,以及报警装置构成。其工作过程为:18B20实时采集环境温度,将处理好的二进制信号经串口线送至单片机加以处理运算,单片机将处理后的结果通过LCD屏幕显示出来,单片机在处理的同时,通过将测得的温度,与系统设定的上下限温度加以比较,如果超过设定温度,则通过LED显示灯语蜂鸣器发出超温警告,并停止高温环境下工作这的设备,起到保护设备的作用。 本系统同时加入了1302时钟芯片,可以起到开机计时的作用,这可以很好的显示系统的工作时间 3.1系统的工作方框图 系统的总体工作方框图如下 file:///D:/Temp/msohtmlclip1/01/clip_image007.giffile:///D:/Temp/msohtmlclip1/01/clip_image008.gif 图3-1 系统总体方框图 3.2 系统硬件设计结构图:
系统实际物品由万能电路板焊接组成。 本系统的实际物品如下图所示。 file:///D:/Temp/msohtmlclip1/01/clip_image009.jpg 图3-2 系统实物图 3.3 系统设计线路图: 本系统线路图采用Proteus方针软件所设计,可以随心所欲的的对电路进行改动, file:///D:/Temp/msohtmlclip1/01/clip_image011.jpg 3-3系统仿真图 3.4 硬件模块分析与介绍: 总的来说本系统可分为 1处理模块2显示模块,3温度处理模块4报警模块 5 时钟模块五大部分,下面分别介绍各个模块的工作情况。
3.4.1 处理模块
file:///D:/Temp/msohtmlclip1/01/clip_image013.jpg 图3-4 处理模块 本系统处理模块采用STC89C52单片机,STC89C52单片机具有P0,P1,P2,P3,四个I/O,可根据不同需要使用其端口进行数据的输入与输出,关于STC89C52单片机的详细说明前面以经介绍,此处略。 本系统采用P0口为数据的显示接口,通过8跟数据线,与LCD液晶屏幕相连接 来显示数据。 采用P2口来连接外部的报警装置,通过P2.5,P2.6,P2.7与LED相接,P2.4与扬声器相接来完成报警功能。 通过P2.4作为传感器采集信号的输入断,将输入的信号进行处理后输出。 以P1.0---P1.3作为时钟芯片输入信号与输出信号,时钟信号短,以完成系统的时钟功能。 3.4.2 显示模块:使用12864LCD 显示部分采用DS1602液晶显示器,具有工作电压范围宽,工作电流小,低功耗,工作稳定,无需软件动态扫描的优点,大大节省了程序运行时间,提高了工作效率,被各个行业广泛应用。
file:///D:/Temp/msohtmlclip1/01/clip_image015.gif 图3-5 DS1602实物图 file:///D:/Temp/msohtmlclip1/01/clip_image017.jpg 图3-6 DS1602仿真图 本系统中单片机P0接口所输出的数据由D0———D7信号线输入LCD屏幕
最终显示所需的数据,以P2.0作为数据/命令选择端口,以P2.1作为读写选择端口,以P2.2作为使能信号输入端。 3.4.3 温度处理模块: 本系统的温度处理模块采用18B20温度传感器为工作核心,因其具有只需一个独立的通讯端口进行数据传输,无需外部通电,无需外部器件,测温范围大,工作效率高的优点而应用。 环境温度被18B20传感器以二进制数据的形式采集,然后交付单片机处理,然后通过显示器将被测温度以十进制数的形式显示出来。 本系统中以单片机的P2.3端口作为温度数据输入端与传感器的DQ数据输出线相连,从而实现温度信号的传输功能, file:///D:/Temp/msohtmlclip1/01/clip_image019.gif 图3-7 温度测量模块仿真图 3.4.4 报警模块, 本系统采用LED发光二极管,与蜂鸣器为报警装置,当所测温度超过设定温度时,LED将发光,同时蜂鸣器将发出报警声音。 本模块中以P2.5,P2.6,P2.7作为报警信号的控制端口接LED等的阴极, LED阳极通过串接330欧姆电阻接5V电源(因为LED灯可以发光的电流范围为5——20毫安,故串入330欧姆电阻,),因为蜂鸣器可发声工作的电流范围
为约100毫安,但单片机引脚最大输出电流为5毫安,所以不能直接驱动,再此需加三极管放大电路来提高驱动能力。 下图为此模块的仿真电路,由于用proteus仿真时无需驱动,故此电路未加三极管驱动电路。蜂鸣器的控制接口为P2.4接口,当P2.4为低电平的时候,蜂鸣器开始工作
file:///D:/Temp/msohtmlclip1/01/clip_image021.gif 图3-8 蜂鸣器报警仿真图 3.4.5 时钟模块 由于本系统集成了时钟系统,所以就需要有一个时钟处理模块。由于1302时钟芯片具有一年不差一秒的很好的工作稳定性,本系统的时钟模块以1302为工作核心,并配以键盘来对时钟进行调整,
file:///D:/Temp/msohtmlclip1/01/clip_image023.gif 图3-9 时钟模块仿真图
file:///D:/Temp/msohtmlclip1/01/clip_image025.gif 图3-10按键仿真图 本模块中以P1.0作为数据的输入端口,以P1.1作为时钟信号的入端口。P3.3 P3.4,P3.5作为按键控制端来对时钟进行操作。
第4章 系统的软件程序设计 本系统程序采用单片机C语言编写,单片机C语言与汇编语言相比,具有很大的优点。 1.语言简洁、紧凑,使用方便、灵活 2. 运算符丰富 3.数据结构丰富。具有现代化语言的各种数据结构。 4.可进行结构化程序设计。 5.可以直接对计算机硬件进行操作。 6.生成的目标代码质量高,程序执行效率高。 7.可移植性好。 4.1总体模块介绍 本系统程序部分由温度处理模块,键盘扫描模块,显示模块,报警模块组成,由于C语言编写的程序最大优点是可以模块化,所以在此将各个模块进行一一介绍。 程序总模块: 执行顺序 u 开始 u 中断初始化 u 液晶初始化 u 1302初始化 u 读取温度 u 判断温度 u 显示温度 u 读取时间 u 显示时间 u 重新开始 注:本程序使用while死循环,即程序循环体重复执行,也就实现了重复读取数据,重复显示数据的目的。程序过程如下: Main() While(1) { 读取温度,同时定时中断; 显示温度; 读取时间; 显示时间; } 主程序模块流程图如图所示:
file:///D:/Temp/msohtmlclip1/01/clip_image026.gif
图4-1 4.2各个模块分别介绍
4.2.1 温度处理模块简介: 温度处理模块的工作过程为传感器先给单片机传输数据,然后单片机判断温度标志位,如果标志位为1,说明传感器采集的为负温度,主函数则调用负温度处理函数,如果为0则说明采集的是正温度,则调用正温度处理函数。 温度处理模块流程图如图4-2所示。
file:///D:/Temp/msohtmlclip1/01/clip_image027.gif 图4-2 4.2.2 键盘扫描模块 键盘扫描模块采用定时中断,每50毫秒扫描键盘一次,先判断AN1键盘按下几次,这样是为了判断将要调整时,分,还是秒,然后判断是AN2按键按下还是AN3按键按下,这样用来判断是将此时选定调整项目的是增还是减,这样就完成了时钟的调整问题。 键盘扫描模块流程图如图4-3所示 file:///D:/Temp/msohtmlclip1/01/clip_image028.gif 图4-3
4.2.3 显示模块 现实模块仅为数据的直接读出,故不详细介绍。
4.2.4 报警模块 报警模块采用比较判断的方法来实现所测温度与设定温度当达到时即报警的作用,程序仅为几个if语句,故程序简单明了。比较程序如下 while(1) { Read_Temperature();//读取温度 i=conver(); //转换温度 if(biaozhi==1) //标志位为1为负温度反之为正温度 { fuwendu(i); if(i>10) AQ=0; else AQ=1; biaozhi=0; } else
{ if(i>30) { BQ=0; AQ=1; } elseif(i>28) { AQ=0; BQ=1; } else { AQ=1; BQ=1; } if(i>32) { CQ=1; QQ=0; } else { CQ=0;
QQ=1;
}
zhengwendu(i); }
第5章 硬件调试近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。 单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。 1. 排除逻辑故障
这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。
2. 排除元器件失效
造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。
3. 排除电源故障
在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~4.8V之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。
结论本系统基于STC89C52单片机设计而成,通过DS18B20温度传感器采集环境温度然后将所采集的温度与预先设定的温度进行比较,根据判断条件完成报警功能。 系统仿真 本系统通过proteus仿真软件仿真,并逐步调整原设计过程中出现的错误,加以改正,最终使系统像预想那样正常工作。 硬件设计 本系统采用的是多功能电路板设计,由于硬件原因,本电路板设计外观欠佳。由于此系统信号传输基本为二进制数据传输,故不用过分考虑干扰问题,可完成预定功能。 硬件调试 硬件调试是整个系统设计中最关键一步,我们预先设定的系统仿真可以通过,但硬件不一定通过,这还涉及到元件的质量问题,很可能工作一小段时间就出现问题。我在此硬件的调试中通过与仿真的对比,仔细查看焊接问题与接线问题最终完成了硬件的调试。
|