摘 要 1
Abstract 2
1 绪论 3
1.1 国内外温度测量技术发展状况 3
1.2 课题研究的意义和目的 4
1.3课题研究的内容及研究方法 5
1.4 论文结构安排 5
2 基础知识介绍 6
2.1单片机简介 6
2.1.1 单片机技术的发展 6
2.1.2 单片机技术的应用 6
2.2 ATC51简介 7
2.2.1 ATC51主要特性 8
2.2.2 ATC51管脚说明 8
2.3 DS18B20简介 9
2.3.1 DS18B20的结构和特点 10
2.3.2 DS18B20工作原理 13
2.4 Proteus 软件简介 16
2.4.1 PROTEUS特点 16
3 硬件设计 17
3.1 硬件系统设计思想 17
3.2 单片机最小系统 17
3.3 温度测量模块 19
3.4 按键设置模块 19
3.5 显示模块 20
3.5.2 LCDLM016L引脚定义 20
3.5.3 LCD显示电路 21
3.6 报警模块 22
4 软件设计 23
4.1 系统软件设计思想 23
4.2 测温模块程序 24
4.3 显示模块程序 25
4.4 按键模块 26
5 系统调试 27
6 总 结 30
参考文献 30
谢 辞 30
摘 要
在日常生活及工业生产中,经常涉及到温度的测量及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。在工业生产过程中,为了高效地进行生产,常常会对其参数,如温度、压力、流量等进行合理的监测与控制。温度控制在生产过程中占有相当大的比例。温度测量是温度控制的基础,技术已经比较成熟。该设计介绍了一种利用单片机ATC51组成的高精度温度测量系统,从硬件和软件两方面介绍了单片机温度测量系统的设计思路。着重介绍了硬件电路和程序框图,阐述了系统的工作原理、设计思想及实现方法。系统由DS18B20温度传感器芯片测量当前的温度,并将结果送入单片机。然后通过单片机对送来的温度进行计算和转换,并将此结果送入液晶显示模块。最后,由1602液晶显示器将温度显示出来。它可以实时显示和设定温度上下限,实现对当前温度的监测,当温度值超出上、下限时自动报警,实现了系统结构简单、性能可靠、控制精度高的要求。
关键词:ATC51单片机;DS18B20温度传感器;温度测量
Abstract
The detection and control of temperature is often used in daily life and industrial production process, temperature is one of the important physical parameters of the production process and scientific experiments generally. During the production process, in order to carry out the production efficiently, we must control its main parameters well, such as temperature, pressure and so on .Temperature control in the production processes a large proportion. Temperature measurement is the basis of temperature-controlling and a more mature technology. A precision temperature control system used ATS51 SCM and the hardware circuit and software of this system are introduced. Schematic diagram of the hardware and procedures is related in emphasis. Working principle, design and implementation is elaborated. The current temperature is measured by DS18b20 temperature sensor and the results is transported into SCM .Then ,the temperature is calculated and the conversion results is transported into the liquid crystal display modules 1602 on show .It can display current temperature which is set randomly and controlled flexibility, and the temperature control. When the temperature is beyond the upper and lower limits of temperature, the alarm system starts automatically. What is realized in this system is simple structure, reliable performance and high precision control. The system is in good scalability,high-resolution,wide range,anti-interference performance and so on.
Key Words:ATC51 SCM;DS18B20 Temperature sensor;Temperature detection
1 绪论
在工业生产中,压力、温度、流量等都是常用的被测参数。温度往往是表征对象和过程状态最重要的参数之一,在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行测量和控制。采用单片机对温度进行测量不仅具有使用方便、简单和灵活性大等优点,而且可以大幅度提高被测温度的技术指标,从而大大提高产品的质量和数量。目前应用的温度测量系统大多采用由模拟温度传感器、多路模拟开关、A/D转换器等模块组成的传输系统。这种温度采集系统需要大量的测温电缆,才能把现场传感器的信号送到采集卡上.安装和拆卸繁杂,成本也相对较高,同时线路上传送的是模拟信号,易受干扰、易损耗,测量误差也比较大,不利于控制者根据温度变化及时做出控制决定。针对这种情况,本文提出一种采用数字化单总线技术的温度采集系统,并利用Proteus和Keil软件对设计电路进行综合虚拟仿真,成功实现了温度实时监测。
1.1 国内外温度测量技术发展状况
1.1.1 温度测量技术简介
随着国内外工业的日益发展,温度测量技术也在不断的进步,目前用来进行温度测量的方法种类繁多,应用范围广泛,大致包括以下几种方法:
(1)利用物体热胀冷缩原理制成的温度计。
(2)利用热电效应技术制成的温度测量元件。
(4)利用热阻效应技术制成的温度计。
(5)利用热辐射原理制成的高温计。
(6)利用声学原理进行温度测量。
(7)利用红外测温技术。
1.1.2 温度测量技术的发展
生产管理一体化、网络化是当今工业自动化控制领域的大趋势,要实现这些功能,必须借助于工业计算机、现场网络及开放的工业数据库。利用先进技术手段监测各种复杂生产环境的被控参数如温度、流量及压力等,使生产和管理一体化,可以有效地提高生产和管理的自动化水平。温度测量是一种利用微机来实现数据采集、数据通讯传输和数据分析处理的一门新技术,是在生产过程中记录和说明热加工产品与空气温度关系的技术,追踪测量得到的数据被显示为图表或数字。这个过程最简单的形式就是它可以告诉生产者所生产的产品的温度、保持这个温度有多长时间以及在什么时间达到了什么温度。通过分析数据,生产人员可以保证产品达到最好的质量、解决产品存在问题、优化生产工艺路线及节约能耗。无论是在电子产品的生产、食品加工、还是在医疗器械生产方面,温度都是重要的控制指标,因此温度测量技术具有非常广阔的应用前景。
A 国内外温度测量技术发展趋势
(1)扩展测量范围
现在工业上通用的温度测量范围为-200~3000℃,而今后要求能测量超高温与超低温。尤其是液化气体的极低温度测量更为迫切,如10K以下的温度测量是当前重点研究课题。
(2)扩大测温对象
温度测量技术将会由点测温发展到线、面,甚至立体的测量。应用范围己经从工业领域延伸到环境保护、家用电器、汽车工业及航天工业领域。
(3)发展新型产品
利用以前的测量技术生产出适应于不同场合、不同工况要求的新型产品,以满足用户需要。同时利用新的测量技术制造出新的产品。
(4)适应特殊环境下的测温
对许多场合中的温度测量器有特殊要求,如防硫、防爆、耐磨等性能要求;又如移动物体和高速旋转物体的测温、钢水的连续测温、火焰温度测量等。
(5)显示数字化
温度仪表向数字化方向发展。其最大优点是直观、无读数误差、分辨率高、测量误差小,因而有广阔的销售市场。
(6)标定自动化
应用计算机技术,快速、准确、自动地标定温度测量器。
根据上述要求,国内外温度仪表制造商将向以下几方面发展:
(1) 继续生产量大面广的传统的温度测量元件,如:热电偶、热电阻、热敏电阻等。
(2) 加强新原理、新材料、新加工工艺的开发。如近来已经开发的炭化硅薄膜热敏电阻温度测量器,厚膜、薄膜铂电阻温度测量器,硅单晶热敏电阻温度测量器等。
(3) 向智能化、集成化、适用化方向发展。新产品不仅要具有测量功能,又要具有判断和指令等多功能,采用微机向智能化方向发展,向机电一体化方向发展。
近年来,在温度测量技术领域,多种新的测量原理与技术的开发应用,已经取得了重大进展。新一代温度测量元件正在不断出现和完善化。从晶体管温度测量元件到集成电路温度测量元件、核磁共振温度测量器、激光、微波测温等等,这一现象表明温度测量技术正在高速发展并已经逐步进入高精尖的现代化发展领域。
1.2 课题研究的意义和目的
1.2.1课题研究的意义
通过完成此次毕业设计可以使我们进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤。
通过使用51单片机,理解单片机在数字化仪表中的作用以及掌握单片机的编程方法。通过设计一个简单的实际应用输入及显示模拟系统,掌握单片机仿真软件Proteus的使用方法。掌握键盘和显示器在的单片机控制系统中的应用和掌握撰写综合设计报告的方法。
通过对本课题的研究,还可以进一步了解单片机及其应用技术、传感器等技术的发展及研究现状,紧跟时代脉搏;可以进一步深化理论技术方面的知识,培养自身实践动手能力、分析研究及科技创新能力。
1.2.2课题研究目的
本课题基于单片机原理及其接口技术、Proteus仿真软件以及传感器应用等方面技术来实现对温度的测量。系统的整体设计思想是以51单片机为控制核心,采用单线数字温度传感器DS18B20进行温度数据采集,利用单片机获取被测温度,实时显示当前温度,并与系统报警设定值进行比较,根据比较结果分别实现上下限报警功能。
1.3课题研究的内容及研究方法
系统总体设计思想是以单片机为控制核心,整个系统硬件部分包括温度测量部分、显示部分、键盘、报警部分及最小系统基本电路。
系统利用单片机获取温度传感器数据并与系统设定值进行比较,根据结果判断是否启动越限报警装置。
本系统应用ATC51和DS18B20温度传感器来设计,具有抗干扰性好、设计灵活方便,适用于恶劣的环境下进行现场温度测量等优点。可以应用在大型工业及民用常温多点监测场所。如粮食仓储系统、楼宇自动化系统、温度控制生产线之温度影像测量、医疗与健诊的温度测试、空调系统的温度测量等等。
1.4 论文结构安排
论文整体分为七大部分,分别是绪论、基础知识、硬件设计、软件设计、系统调试 、结论和参考文献。绪论中简要的说明论文研究工作的缘起、背景、目的、意义等,与本研究相关领域的研究现状、成果以及本设计预期的实现效果等。基础知识部分是对于此次设计中用到的有关方面的知识做以简要的介绍,使论文内容更加充实结构紧凑。硬件设计部分是本次设计的核心部分,它罗列出了本次设计系统中的各个模块,对于每部分的功能也做了详细介绍,并且每个单元模块都附有图片,这样使得整篇论文的可读性得以提高,使读者更容易理解每个单元模块的功能。软件设计模块主要是每个单元模块的流程图及相关思路介绍,因为整个的C程序太过冗长,所以论文中没有详细罗列。第五部分是系统的调试部分,这部分简要的介绍了系统在调试时候的注意事项和调试过程中所遇到的问题。第六部分是本篇设计的结尾部分,这里总结了整个系统设计过程中所学所感,所遇到的问题,所解决的问题,是对于整个毕业设计过程的总结和体会。接下来的第七部分是参考文献部分,这部分列举了本篇论文撰写过程中参考的书籍,期刊杂志等文献。
2 基础知识介绍
2.1单片机简介
2.1.1单片机技术的发展
所谓单片机(m1crocontroller)是指在一个集成芯片中,集成微处理器(CPU)、存储器、基本的I/O接口以及定时/计数、通信部件,即在一个芯片上实现一台微型计算机的基本功能。1970年微型计算机研制成功之后,随着就出现了单片机(即单芯片微型计算机)。美国Intel公司1971年生产的4位单片机4004和1972年生产的雏形8位单片机8008,特别是1976年MCS-48单片机问世以来,在短短的二十几年间,经历了四次更新换代,其发展速度大约每二、三年要更新一代、集成度增加一倍、功能翻一番。其发展速度之快、应用范围之广,已达到了惊人的地步,它已渗透到生产和生活的各个领域。
尽管目前单片机的品种很多,但其中最具典型性的当数Intel公司的MCS-51系列单片机。MCS-51是在MCS-48的基础上于80年代初发展起来的,虽然它仍然是8位的单片机,但其功能有很大的增强。由于PHILIPS、ATMEL、WELBORD、LG等近百家IC制造商都主产51系列兼容产品,具有品种全、兼容性强、软硬件资料丰富等特点。因此,MCS-51应用非常广泛,成为继MCS-48之后最重要的单片机品种。直到现在MCS-51仍不失为单片机中的主流机型。国内尤以Intel的MCS-51系列单片机应用最广。由于8位单片机的高性能价格比,估计近十年内,8位单片机仍将是单片机中的主流机型。
2.1.2单片机技术的应用
随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、智能化方向发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出很强的生命力。它和一般的集成电路相比有较好的抗干扰能力,对环境的温度和湿度都有较好的适应性,可以在复杂工业条件下稳定工作。且单片机广泛地应用于各种仪器仪表,使仪器仪表智能化,提高它们的测量速度和测量精度,加强控制功能。如MCS-51系列单片机控制的“船舶航行状态自动记录仪”、“烟叶水分测试仪”、“智能超声波测厚仪”等。单片机也广泛地应用于实时控制系统中,例如对工业上各种窑炉的温度、酸度、化学成分的测量和控制。将测量技术、自动控制技术和单片机技术相结合,充分发挥其数据处理功能和实时控制功能,使系统工作处于最佳状态,提高系统的生产效率和产品质量。从航空航天、地质石油、冶金采矿、机械电子、轻工纺织等行业的分布系统与智能控制以及机电一体化设备和产品,到邮电通信、日用设备和器械,单片机都发挥了巨大作用。其应用大致可分为以下几方面:
A 机电一体化设备的控制核心
机电一体化是机械设备发展的方向。单片机的出现促进了机电一体化技术的发展,它作为机电产品的控制器,充分发挥其自身优点,大大强化了机器的功能,提高了机器的自动化、智能化程度。最典型的机电产品机器人,每个关节或动作部位都是一个单片机控制系统。
B 数据采集系统的现场采集单元
大型数据采集系统,要求数据采集的同步性和实时性要好。使用单片机作为系统的前端采集单元,由主控计算机发出采集命令,再将采集到的数据逐一送到主计算机中进行处理。如有些气象部门、油田采油部门以及电厂等均可采用这样的系统。
C 分布控制系统的前端控制器
在直接控制级的计算机分布控制系统(DCS)中,单片机作为过程控制中每一分部操作或控制的控制器,进行数据采集、反馈计算、控制输出,并在上位机命令的指挥下进行相应协调工作。
D 智能化仪表的机芯
自动化仪表的智能化程度越来越高。采用单片机的智能化仪表可具有自整定、自校正、自动补偿和自适应功能,还可进行数字PID调节,软件消除电流热噪声等等,解决传统仪表所不能解决的难题。单片机的应用使这种性能如虎添翼,如自动计费电度表、燃气表中已有这方面的应用。许多工业仪表中的智能流量计,气体分析仪、成分分析仪等也采用了这项技术。甚至有的保健治疗仪中也采用了单片机控制。
E 消费类电子产品控制
该应用主要反映在家电领域,如洗衣机、空调器、保安系统、VCD视盘机、电子秤、IC卡、手机等。这些设备中使用了单片机机芯后,大大提高了其控制功能和性能,并实现了智能化、最优化控制。
F 终端及外围设备控制
计算机网络终端设备,如银行终端、商业POS(自动收款机)以及计算机外围设备如打印机、通信终端和智能化UPS等。在这些设备中使用单片机,使其具有计算、存储、显示、输入等功能,具有和计算机连接的接口,使计算机的能力及应用范围大大提高。
2.2 ATC51简介
ATC51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的ATC51是一种高效微控制器。
2.2.1 ATC51主要特性
(1) 与MCS-51 兼容
(2) 4K字节可编程FLASH存储器
(3) 寿命:1000写/擦循环
(4) 数据保留时间:10年
(5) 全静态工作:0Hz-24MHz
(6) 三级程序存储器锁定
(7) 128×8位内部RAM
(8) 32个可编程I/O口线
(9) 两个16位定时器/计数器
(10) 5个中断源
(11) 可编程串行通道
(12) 低功耗的闲置和掉电模式
(13) 片内振荡器和时钟电路
2-1 ATC1单片机引脚图
2.2.2 ATC51管脚说明
(1) VCC:供电端,提供单片机工作所需电源。
(2) GND:接地端。
(3) P0口:P0口为一个8位漏级开路双向I/O口,每脚可接收8个TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时P0输出原码,此时P0外部必须接上拉电阻。
(4) P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。
(5) P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用做外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写数据时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
(6) P3口:P3口管脚是8个带着内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。 P3口也可作为ATC51的一些特殊功能口如表2-1所示;P3口同时为闪烁编程和编程校验接收一些控制信号。
(7)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
表2-1 P3口特殊功能
| 口管脚 | 备选功能 |
| P3.0 RXD | 串行输入口 |
| P3.1 TXD | 串行输出口 |
| P3.2 /INT0 | 外部中断0 |
| P3.3 /INT1 | 外部中断1 |
| P3.4 T0 | 记时器0外部输入 |
| P3.5 T1 | 记时器1外部输入 |
| P3.6 /WR | 外部数据存储器写选通 |
| P3.7 /RD | 外部数据存储器读选通 |
(8)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指令期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
(9)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端口保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
(10)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
(11)XTAL2:来自反向振荡器的输出。
振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
2.3 DS18B20简介
DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器,与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根接口线读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。它在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。
2.3.1 DS18B20的结构和特点
A DS18B20的外形及管脚
排列如下图2-3:
图2-3 DS18B20引脚图
B DS18B20内部结构组成
DS18B20内部结构主要由四部分组成:位光刻ROM 、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
(1)位光刻ROM。开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因。
图2-4 DS18B20内部结构
(2) 非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。
(3) 高速暂存存储,可以设置DS18B20温度转换的精度。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PRAM。高速暂存RAM的结构为8字节的存储器,结构如图2-4所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。它的内部存储器结构和字节定义如表2-2所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式。
| Byte0 | 温度测量值LSB(50H) | ||
| Byte1 | 温度测量值MSB(50H) | E2PROM | |
| Byte2 | TH高温寄存器 | ---- | TH高温寄存器 |
| Byte3 | TL低温寄存器 | ---- | TL 低温寄存器 |
| Byte4 | 配位寄存器 | ---- | 配位寄存器 |
| Byte5 | 预留(FFH) | ||
| Byte6 | 预留(0CH) | ||
| Byte7 | 预留(IOH) | ||
| Byte8 | 循环冗余码校验(CRC) |
DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,如图2-6。
表2-2 DS18B20字节定义
| TM | R0 | R1 | |||||
| 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 |
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2-4是一部分温度值对应的二进制温度数据。
表2-3 DS18B20温度转换时间表
| R1 | R0 | 分辨率/位 | 温度最大转向时间/ms |
| 0 | 0 | 9 | 93.75 |
| 0 | 1 | 10 | 187.5 |
| 1 | 0 | 11 | 375 |
| 1 | 1 | 12 | 750 |
| 温度/℃ | 二进制表示 | 十六进制表示 |
| +125 | 0000 0111 1101 0000 | 07D0H |
| +85 | 0000 0101 0101 0000 | 0550H |
| +25.0625 | 0000 0001 1001 0000 | 0191H |
| +10.125 | 0000 0000 1010 0001 | 00A2H |
| +0.5 | 0000 0000 0000 0010 | 0008H |
| 0 | 0000 0000 0000 1000 | 0000H |
| -0.5 | 1111 1111 1111 0000 | FFF8H |
| -10.125 | 1111 1111 0101 1110 | FF5EH |
| -25.0625 | 1111 1110 0110 1111 | FE6FH |
| -55 | 1111 1100 1001 0000 | FC90H |
在 位 ROM的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
C DS18B20的特点
(1)适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数 据线供电。
(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(3) DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
(5)温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。
(6)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
(7)在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字。
(8)测量结果直接输出数字温度信号,以"一 线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
2.3.2 DS18B20工作原理
A DS18B20的工作时序
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
(1) 每一次读写之前都必须要对DS18B20进行复位;
(2) 复位成功后发送一条ROM指令;
(3) 最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待15~60微秒左右后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。其工作时序包括初始化时序、写时序和读时序,具体工作方法如图2-7、2-8、2-9所示。
(1)初始化时序
图2-7初始化时序
总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。应答脉冲使主机知道,总线上有从机设备,且准备就绪。主机输出低电平,保持低电平时间至少480us,以产生复位脉冲。接着主机释放总线,4.7KΩ上拉电阻将总线拉高,延时15~60us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时480us。
(2)写时序
图2-8 写时序
写时序包括写0时序和写1时序。所有写时序至少需要60us,且在2次的写时序之间至少需要1us的恢复时间,都是以总线拉低开始。写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。写0时序,主机输出低电平,延时60us,然后释放总线,延时2us[8]。
(3)读时序
图2-9 读时序
总线器件仅在主机发出读时序是,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us,且在2次的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起,至少拉低总线1us。主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取总线当前电平,然后延时50us。
B ROM操作命令
当主机收到DSl8B20 的响应信号后,便可以发出ROM 操作命令之一,这些命令如表2-5
C DS18B20的测温原理
每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM 中。主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出。
程序可以先跳过ROM,启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。
表2-5 ROM操作命令
| 指令 | 约定代码 | 功 能 | |
| 读ROM | 33H | 读DS18B20 ROM中的编码 | |
符合ROM | 55H | 发出此命令之后,接着发出位ROM编码,访问单线总线上与该编码相对应的DS18B20 使之作出响应,为下一步对该DS18B20的读写作准备 | |
| 搜索ROM | 0F0H | 用于确定挂接在同一总线上DS18B20的个数和识别位ROM地址,为操作各器件作好准备 | |
| 跳过ROM | 0CCH | 忽略位ROM地址,直接向DS18B20发温度变换命令,适用于单片工作。 | |
| 告警搜索 命 令 | 0ECH | 执行后,只有温度超过设定值上限或者下限的片子才做出响应 | |
| 温度变换 | 44H | 启动DS18B20进行温度转换,转换时间最长为500MS,结果存入内部9字节RAM中 | |
| 读暂存器 | 0BEH | 读内部RAM中9字节的内容 | |
| 写暂存器 | 4EH | 发出向内部RAM的第3,4字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据 | |
| 复制暂存器 | 48H | 将E2PRAM中第3,4字节内容复制到E2PRAM中 | |
| 重调E2PRAM | 0BBH | 将E2PRAM中内容恢复到RAM中的第3,4字节 | |
| 读 供 电 方 式 | 0B4H | 读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1” | |
图 2-10 测温原理图
荡频率图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
2.4 Proteus 软件简介
Proteus软件是由英国Lab Center Electronics公司开发的EDA工具软件。它不仅能够仿真模拟、数字电路以及模数混合电路,更具特色的是Proteus能够仿真基于单片机的电子系统。Proteus不但完全支持MCS-51及其派生系列单片机的设计系统,另外也能仿真基于AVR和PIC系列的单片机系统。Proteus软件可以提供的模拟、数字、交流和直流等元器件库多达30多个,共计数千种元器件。此外,对于元件库中没有的器件,使用者也可以依照自己的需要自行创建。在软件调试方面,Proteus自身只带有汇编编译器,不支持C语言,但可以与Keil C51集成开发环境连接,将用汇编和C语言编写的程序编译好之后,可以进行软硬件结合的系统仿真,像使用仿真器一样来调试程序。Proteus运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。
2.4.1 Proteus特点
(1)实现了单片机仿真和SPICE电路仿结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
(2)支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。
(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。
(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。
3 硬件设计
3.1硬件系统设计思想
本系统设计主要包括单片机最小系统、温度测量模块、温度显示模块、按键控制和报警模块。通过这几个模块的协调工作就可以完成相应的温度测量和显示功能。系统设计总体方框图如图所示。
图3-1 系统结构框图
3.2 单片机最小系统
单片机的最小系统是由组成单片机系统必需的一些元件构成的,除了单片机之外,还需要包括电源供电电路、时钟电路、复位电路。
下面着重介绍时钟电路和复位电路。
图3-2 时钟和复位电路图
3.2.1 时钟电路
单片机工作时,从取指令到译码再进行微操作,必须在时钟信号控制下才能有序地进行,时钟电路就是为单片机工作提供基本时钟的。单片机的时钟信号通常有两种产生方式:内部时钟方式和外部时钟方式。
内部时钟方式的原理电路如图3-2所示。在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单片机片内的电路构成一个稳定的自激振荡器。晶振的取值范围一般为0~24MHz,常用的晶振频率有6MHz、12 MHz、11.0592 MHz、24 MHz等。一些新型的单片机还可以选择更高的频率。外接电容的作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频率的作用,一般选用20~30pF的瓷片电容。
外部时钟方式则是在单片机XTAL1引脚上外接一个稳定的时钟信号源,它一般适用于多片单片机同时工作的情况,使用同一时钟信号可以保证单片机的工作同步。
时序是单片机在执行指令时CPU发出的控制信号在时间上的先后顺序。ATC51单片机的时序概念有4个,可用定时单位来说明,包括振荡周期、时钟周期、机器周期和指令周期。
(1)振荡周期:是片内振荡电路或片外为单片机提供的脉冲信号的周期。时序中1个振荡周期定义为1个节拍,用P表示。
(2)时钟周期:振荡脉冲送入内部时钟电路,由时钟电路对其二分频后输出的时钟脉冲周期称为时钟周期。时钟周期为振荡周期的2倍。时序中1个时钟周期定义为1个状态,用S表示。每个状态包括2个节拍,用P1、P2表示。
(3)机器周期:机器周期是单片机完成一个基本操作所需要的时间。一条指令的执行需要一个或几个机器周期。一个机器周期固定的由6个状态S1~S6组成。
(4)指令周期:执行一条指令所需要的时间称为指令周期。一般用指令执行所需机器周期数表示。ATC51单片机多数指令的执行需要1个或2个机器周期,只有乘除两条指令的执行需要4个机器周期。
了解了以上几个时序的概念后,我们就可以很快的计算出执行一条指令所需要的时间。例如:若单片机使用12MHz的晶振频率,则振荡周期=1/(12MHz)=1/12us,时钟周期=1/6us,机器周期=1us,执行一条单周期指令只需要1us,执行一条双周期指令则需要2us。
3.2.2 复位电路
无论是在单片机刚开始接上电源时,还是运行过程中发生故障都需要复位。复位电路用于将单片机内部各电路的状态恢复到一个确定的初始值,并从这个状态开始工作。单片机的复位条件:必须使其RST引脚上持续出现两个(或以上)机器周期的高电平。单片机的复位形式:上电复位、按键复位。上电复位和按键复位电路如图3-2所示。
上电复位电路中,利用电容充电来实现复位。在电源接通瞬间,RST引脚上的电位是高电平(Vcc),电源接通后对电容进行快速充电,随着充电的进行,RST引脚上的电位也会逐渐下降为低电平。只要保证RST引脚上高电平出现的时间大于两个机器周期,便可以实现正常复位。
按键复位电路中,当按键没有按下时,电路同上电复位电路。如在单片机运行过程中,按下RESET键,已经充好电的电容会快速通过200Ω电阻的回路放电,从而使得RST引脚上的电位快速变为高电平,此高电平会维持到按键释放,从而满足单片机复位的条件实现按键复位。
3.3 温度测量模块
本设计使用了4片DS18B20温度传感器,可以实现同时测量四路温度的功能,通过一条总线DQ与ATC51单片机P1.0口连接,实现数据通讯。DS18B20可采用自供电和外供电两种供电方式,本设计采用外供电的方式,把四个DS18B20传感器的VCC端口串联,接外界+5V电源。温度传感器的GND端分别接地。
图3-3 温度测量模块
3.4 按键设置模块
图3-4按键模块
本设计应用了四个按键,分别是K1、K2、K3、K4,并且分别与单片机的P1.2、P1.3 、P1.4和 P1.5相连接。K1和K2的功能分别是加1减1;K3是设置按键;K4是确定按键。系统正常工作时,显示界面LCD循环显示四个温度传感器的测量数据,当要求改变温度的报警值上下限时,点击按键“设置”,显示界面LCD会切换至已设置当前的上下限温度值的上限值,并且伴随光标闪动,表明可修改状态;接下来点击加1或者减1按键,从而修改到要求的上限值;当要求修改下限值时,只要在修改上限的界面再点击一下“确定”按键,光标即会跳转到当前下限值处,并伴随闪动,进入可以修改状态。当修改完成后,点击“确定”键系统即完成了修改储存,在新修改的上下限条件下继续工作,并且显示界面LCD会切换回四路温度循环显示的界面。
3.5 显示模块
液晶显示器是一种将液晶显示器件,连接器件,集成电路,PCB线路板,背光源,结构器件装配在一起的组件。
根据显示内容和方式的不同可以分为,数显LCD,点阵字符LCD,点阵图形LCD在此设计中我们采用点阵字符LCD,这里采用常用的2行16个字的1602液晶模块。
3.5.1 LM016L显示原理
DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:
表3-1 显示地址
| 显示位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | …… | 40 | ||
| DDRAM 地址 | 第一行 | 00H | 01H | 02H | 03H | 04H | 05H | 06H | …… | 27H | |
| 第二行 | 40H | 41H | 42H | 43H | 44H | 45H | 46H | …… | 67H |
表3-2 DDRAM地址与显示位置的对应关系
“A”字的对应上面高位代码为0100,对应左边低位代码为0001,合起来就是01000001,也就是41H。可见它的代码与我们PC中的字符代码是基本一致的。因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1='A'这样的方法。PC在编译时就把“A”先转为41H代码了。
3.5.2 LCDLM016L引脚定义
LM016L采用标准的14脚接口,其中:
图3-5LCD引脚图
第1脚:VSS为电源地;
第2脚:VDD接5V正电源;
第3脚:VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度;
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器;
第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读指令,当RS为高电平RW为低电平时可以写入数据;
第6脚:E端为使能端,当E端为高电平时读取信息,由高电平跳变成低电平时,液晶模块执行命令;
第7~14脚:D0~D7为8位双向数据线;
3.5.3 LCD显示电路
LCD与单片机的连接如图3-6所示。
温度测量系统中,ATS51单片机的并口P0与LCD的8位双向数据线相连接,通过并口输入或输出数据或指令,从而实现温度显示功能,基本操作时序如下。
图3-6 液晶显示电路图
读状态输入:RS=L,RW=H,E=H 输出:DB0~DB7=状态字
写指令输入:RS=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码 输出:无
读数据输入:RS=H,RW=H,E=H 输出:DB0~DB7=数据
写数据输入:RS=H,RW=L,E=下降沿脉冲,DB0~DB7=数据 输出:无
把8根数据线和P0口连接,把3根控制线和P2.0、P2.1、P2.2连接。给VCC端加上+5V的电压,GND端接地。VEE端的驱动电压不要过大,要调节滑动变阻器使VEE在0.7伏以下显示器才能工作。
3.6 报警模块
本设计采用两个LED灯和一个蜂鸣器来实现温度的越限报警。当系统处于正常工作状态时,绿色LED指示灯常亮,表明系统正常运行;当系统发生越限时,红色LED指示灯常亮,绿色熄灭,蜂鸣器发出声音,以此灯光音响报警来表明温度越限。蜂鸣器的高电平处设置有手动解除音响按钮,当系统发出报警时,运行人员可以根据需要手动结束音响效果。
图3-7 报 警模块
4 软件设计
4.1系统软件设计思想
本系统软件部分主要包括主程序、DS18B20测温模块程序、LCD显示程序、按键设置程序报警程序等。
主程序是系统的监控程序,在程序运行的过程中必须先经过初始化,包括键盘程序,中断程序,以及各个控制端口的初始化工作。系统在初始化完成后就进入温度测量程序,实时的测量当前的温度,并与设定的报警温度上、下限值进行比较,信息通过LCD显示出来。程序中以查询的方式来重新设定温度的上下限。根据硬件设计完成对温度的监测。按下键盘上的设置键可以设置新的温度上、下限值。
。
图4-1系统流程图
4.2 测温模块程序
首先DS18B20初始化,复位DS18B20,然后单片机等待DS18B20的应答脉冲。一旦单片机测量到应答脉冲,便发起跳过ROM匹配操作命令。成功执行了ROM操作命令后,就可以使用内存操作命令,启动温度转换,延时一段时间后,等待温度转换完成。再发起跳过ROM匹配操作命令,然后读暂存器,将转换结果读出,并转为显示码,送到液晶显示。DS18B20模块程序流程图如图4-2所示。
图4-2DS18B20模块程序流程图
4.3 显示模块程序
首先对LCD液晶显示器进行初始化,按键复位后,延时15ms,进行初始化设置,依次为显示关闭、显示清屏、显示光标移动设置,最后进行写操作。LCD液晶驱动程序流程图如图4-3所示
图4-3 LCD液晶驱动程序流程图
4.4 按键模块
首先对控制芯片进行初始化,开中断,扫描与K1-K4键对应连接的P1.2-P1.5口的电平,若为低则相应按键按下,进行相应处理,最后显示操作。按键扫描子程序流程图如图4-4所示。
图4-4按键扫描子程序流程图
5 系统调试
本设计软件全部通过C语言编程,编程顺序采用总分总式思想。在完成C程序的编写以后首先在Keil C51集成开发环境下将编好的程序进行编译,调试。调试通过后,用生成的HEX文件在Proteus进行仿真。
图5-1 系统调试图
6 总 结
本设计是以ATC51为核心,利用软硬件相结合的自动控制的典型例子。在单片机自动控制已经广泛应用于人们的生产和生活的今天,传统用模拟电路来测量温度的做法,已经逐渐被淘汰。这个系统的实现,改变了传统的温度测量方法,为温度的测量开辟了一条新的道路。根据我国的科技和工业水平,这个系统的设计是符合工业生产的需要。在本次设计的过程中,我发现很多的问题,虽然以前没有做过这样的设计,但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事。从这次的设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识运用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次设计中的最大收获之一。
这次毕业设计基本上完成了任务书的要求,实现了温度的测量。但是由于本人的设计经验和知识水平有限,系统还存在许多不足和缺陷,希望指导老师给予指正。在以后的学习生活中,我会不断充实自己,继续完成未完成的设计,力争使本次设计尽善尽美。
参考文献
[1] 乐嘉华,温度测量技术的现状和未来,煤油化工自动化[J].1998(3),36-38.
[2] 何立民.MCS-51系列单片机应用系统设计,第一版,北京航空航天大学出版社,1993,19-24.
[3] 张君谟.单片机中级教程,第一版,北京航空航天大学出版社,2000,25-43.
[4] 沙占友. 集成温度传感器原理与应用. 北京:机械工业出版社,2002, 84-95.
[5] 刘川来,李康康,刘成才,徐健.一种组合式温度传感器的研究[J]. 仪器仪表学报, 2007,28(31):888-2.
[6] 余威明. DS18B20高精度多点温度测量显示系统[J]. 仪表技术, 2007,03:37-39.
[7] ,刘利民.温度测量电路设计[J]. 有色冶金设计与研究, 2008,(06):36-37.
[8] 余国卫.基于H8单片机的通用温度测量系统设计[J].应 用 科 技,2008,33(6):159-161.
[9] 孙剑涛,崔明礼.基于ATS51单片机的温度测控系统设计[J]. 传感测量技术, 2008,(08):36-37.
[10] 杨金红, 林咏海.ATS51及其在温度测量中的应用[J]. 科技风, 2008,(21):109-111.
[11] 郑惟晖. 单片机智能温度控制系统的设计[J]. 黄山学院学报, 2008,10(05):23-25.
[12] 蔡成涛,朱齐丹,赵健.实用温度测量系统的设计与实现[J].应用科技,2006,33(7):19-21.
[13] 宋刈非,赵猷肄,林一楠.基DS1820传感器的温度测量系统[J]. 光电技术应用, 2009,24(03):47-62.
[14] 黄利君,王选民. 分布式多点远程温度测量系统设计[J]. 仪表技术, 2009,07:10-12.
[15] 房小翠,王金凤.单片机实用系统设计技术,国防工业出版社,1999,63-78.
[16] 李玉峰,倪虹霞. MCS-51系列单片机原理与接口技术. 北京:人民邮电出版社,2004,187~216.
[17] 黄莉萍,齐森,黄选章,倪荣富,刘丹,李洪升.计算机粮仓温度测量的研究[J]. 粮食加工, 2008, 33(01):-91.
谢 辞
在本次毕业设计中,不仅自己付出了很多心血,也得到了很多老师和同学的支持,为我创造了很多有利条件,在这里,我要特别感谢我的指导老师夏春梅老师,在毕业设计的开始,夏老师给了我很多帮助,指导我了解了很多单片机的相关知识,并在当我设计遇到困难时,及时的给予帮助和鼓励,同时,对我其他学科的鼓励也渗透在毕业设计过程之中,给了我莫大的帮助,为我顺利完成毕业设计起到了非常重要的作用。大学时代的老师们治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了对待知识,走向社会的思考方式。同时。我还要感谢实验楼机房的所有老师,为我的毕业设计提供了非常便利的条件。最后还要感谢帮助我的同学,在我遇到困难时给予我耐心的帮助。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚谢意!
同时也感谢学院为我提供良好的做毕业设计的环境。
最后再一次感谢所有在毕业设计中给予我帮助的老师和同学,以及在设计中被我引用或参考的论著的作者。下载本文