基于单片机温度检测及散热系统设计学士学位论文.doc
成都学院学士学位论文(设计) 本科毕业设计题 目 基于单片机的温度检测及散热系统设计 学 院 机械工程学院 专 业 测控技术与仪器 学生姓名 李 海 学 号 201110114221 年级 2011 指导教师 喻洪平 职称 副教授 2015年 5月 8日题目:基于单片机温度检测及散热系统设计专业:测控技术与仪器 学号:201110114221 学生: 李 海 指导教师:喻洪平摘要:温度无论在工业领域还是在农业领域或是日常生活之中,它都是一个重要的物理量,因此各个行业的工作人员都在进行温度调控这方面的调控。采用单片机进行温度调控是当今温度控制领域的一种被人喜爱的智能温度调控方式。单片机智能调控温度拥有很多优点,单片机智能调控温度不仅方便,减少操控人员工作量,同时可以大大提高温度调控的技术指标,加大了智能温度调制精度。随着单片机行业的快速发着,单片机的应用范围和深度正在逐渐增强,通常在智能操作和测控方面,单片机通常是整个系统的核心。 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统检测日新月益更新。在现在的应用范围内,无论是实时检测还是自动控制的单片机应用系统中,单片机通常在整个系统中占据着核心的控制地位,但是如果想设计好整个系统,仅仅拥有单片机的使用技术是远远不够的,我们同时要拥有硬件系统设计的基础知识,以及对具体应用需求的具体了解,同时软件部分需要了解C语言和开发环境的使用等基础知识。本系统的设计采用C语言进行编写,虽然C语言没有汇编的效率高,但其通用性,可移植性优势非常突出,并且随着编译器的提升,转化效率已经达到非常高的效率。软件部分我们使用软件的模块化设计,模块化设计可以使软件设计分析时思路清晰易懂,易于随着要求的更改而改变程序设计设计要求。根据本系统的设计要求,此系统的设计方案是将单片机和温度传感器于一体的综合设计。它是以51单片机为整个系统的控制核心,红外温度传感器采集温度,键盘和LED作为IO端,调控风扇电机来进行温度调节。关键词:单片机;C语言;红外温度传感器;风扇电机 成都学院学士学位论文(设计)The Design of Temperature Detection and the Cooling System Based on Single Chip MicrocomputerSpecialty:Measure ement Control and Instrusemention Student Number:201110114221 Student: Li Hai Supervisor:Yu Hong ping Abstract:Temperature both in industry and agriculture, it is an important physical quantity, so the staff in a wide range of industries are to control the temperature of control.By single chip microcomputer temperature control is the temperature control in the field of a kind of intelligent temperature control that is loved by people.Single chip microcomputer intelligent control temperature has many advantages. The single chip microcomputer intelligent control temperature is not only convenient and reduce the workload of operators and can greatly improve the technical index of temperature at the same time and increased the intelligent temperature modulation precision.As the MCU industry developing, MCU application is gradually enhanced in scope and depth. In terms of intelligent operation and control, single-chip computer is usually the core of the whole system.In recent years, with the rapid development of science and technology, MUC applications are developing in the depth and drive the traditional detection at the same time.system, only with the use of single-chip microcomputer technology is not enough. We want to have the basic knowledge of hardware system design at the same time, as well as the understanding of the specific of the specific application requirements, at the same time the software needs to understand the use of C language and the development environment.The paper is based on C language.The C language has a lower efficiency than assembly, but it is general and is easy to transplant.With the development of the compiler, conversion efficiency has been improved. Software part is used the modular design. The modular design is clear and transparent. software design can be changed with the change of the requirements.According to the design requirements of this system, the design scheme of this system is the single-chip microcomputer and a temperature sensor in a body's comprehensive design.The scheme is based on 51 single chip microcomputer as the control core of the whole system, and also has the infrared temperature sensor acquisition, keyboard and LED as IO port, regulating the fan motor to adjust the temperature.Key words:MCU;C Language;Infrared Temperature Sensor;Fan Motor目录第一章 绪论21.1 本文的研究背景及意义21.2 温度控制技术的发展历史与现状21.3 本文实现的技术指标和功能31.4 本文的章节安排3第二章 系统总体方案设计52.1 虚拟信号发生器功能简介52.2 虚拟信号发生器的总体方案设计52.3 本章小结6第三章 系统硬件简介73.1 系统硬件设计规划73.1.1 温度传感器的选择73.1.2 控制核心的选择83.1.3 温度显示器件的选择83.1.4 调速方式的选择93.2 硬件电路设计93.2.1 开关复位与晶振电路93.2.2 数码管显示电路103.2.3 串口通信113.2.4 按键电路设计113.2.5 风扇电机驱动与调速电路123.3 本章小结12第四章 系统软件设计134.1 软件开发平台和开发语言134.2 UART串口系统部分实现144.3 SPI红外温度采集154.4 电机风扇调节174.5 本章小结17第五章 系统调试与运行185.1 系统调试过程185.2 系统调试结果18第六章 结 论20参 考 文 献21致 谢22第一章 绪论1.1 本文的研究背景及意义 无论在工业的生产制造,还是各种仪器的使用或是各种生活电器的使用,温度是一个非常重要的物理参数。随着社会的发展和技术的进步,人们越来越注重温度检测与显示的重要性。在当今竞争激烈的市场上温度检测调控产品已经非常普遍,同时应用的范围也相当广泛。温度检测及显示也逐渐采用自动化控制技术来实现监控。 风扇是一个十分常见的商品,它无论在工业制造中还是日常生活中,它都拥有着不可替代的地位,例如在日常生活中,随处可见人们使用风扇进行降温,在大大型的工业制造中厂商采用大型风扇给机器设备进行降温,同时我们也可以发现现在的笔记本个人电脑也广泛采取风扇降温策略。在现在的探索中,我们可以发现使用风扇进行降温已经起到了明显的效果,利用风扇我们可以根据温度的变化调节风扇,使温度一直保持在我们所需要的值上,避免因为过热使机器损坏的情况,这就摆脱了人为控制,达到智能控制的层次。 在本次的设计中,我们综合实际的设计需求,采用STC公司的51单片机作为本系统的控制核心,使用温度检测系统来检测环境温度,同时为了采集者的方便观察,将数据通过LED进行显示,我们使用键盘作为输入系统,可以输入我们的理想目标温度,根据目标设定温度,控制器控制风扇电机使之达到目标温度,当目标温度达到以后,控制器将停止电机转动,实现自动化控制,同时可减少电源浪费。1.2 温度控制技术的发展历史与现状 从近年来的温控系统发展来看,在理论上温度的检测已经比较成熟,但问题的关键在于实际测量和控制,在实际的实现中我们需要保证快速实时地对温度进行采样,确保数据的正确传输,并且能够对所采集的温度精准的调控,这些都是目前需要解决的问题。温度的调控技术主要包括温度的采集技术和温度的控制技术。在温度的测量技术史上,接触式测温是发展较早的,同时也是比较成熟的技术,接触式测温技术拥有一系列非常好的优点,例如方法简单可靠,经济成本低廉,并且在测量真实物体的温度时较准确。但是由于传感器器件的热惯性的影响,测量温度时的响应时间长,对于一些热容量较小的物体,接触式难以测得精准温度,并且如果测量物体带有腐蚀性,或物体温度过高,或物体的移动速度过快,使用接触式都难以准确的测量物体温度。另外有一种非接触式的测量温度的方法,该方法的原理是通过物体向外辐射的能量来测量实际物体的温度的,这种方法的最大优点是可以不破坏测量的温场,可以测量腐蚀性物体,可以测量高温物体,可以测量热容量小的物体,可以测量快速移动的一系列物体。但同时这种方法也不是完美的,它也有一些缺点,此种测量系统的结构复杂,并且价格昂贵。因此,在实际的温度测量时,我们不能草率的决定采用哪种温测系统,我们应该根据实际的温测需求来进行温度测量的方法的选择,在满足测温需求的同时尽可能降低成本。 温度调控技术目前根据控制目标标准可以分为两类:动态温度跟踪与恒值温度控制。动态温度跟踪是指温度控制系统根据设定好的目标温度曲线随着时间的变化而变化的调节目标温度,这种温度调控技术在实际的工程中是经常遇到的,例如在生物工程中的发酵问题,化学工厂中的化学反应中,以及在冶金工业中的温度控制都属于这一类;横值温度控制系统是指被控制的温度唯一固定值,不随着时间的变化而变化目标温度,同时要求温度的幅值波动要在一定的范围之内,不允许超过范围极限。1.3 本文实现的技术指标和功能 温度测量及调控系统,利用红外温度传感器测量环境温度,将温度采集采集到控制系统内,控制器处理信息数据,LED显示温度,控制电机速度来进行降温,通过按键进行温度设定,进行智能温度控制。1.4 本文的章节安排本论文以五章来阐述自己所做的工作,其中各章节的大致安排如下:第一章为绪论,主要介绍了课题的研究背景与意义、温度测控的发展历史和研究现状以及技术指标和功能。第二章为系统的总体方案设计,介绍了系统应该完成的功能,概括了系统的设计思想,并给出系统的总体方案设计。第三章为系统硬件简介,主要说明了温度测控系统中涉及到的硬件原理。第四章为系统软件设计,这是本文最重要的部分。主要内容有温度采集,并进行温度显示,以及温度设置和温度调节等。第五章为系统调试运行结果,主要展示了系统实现的整体功能。第二章 系统总体方案设计2.1 虚拟信号发生器功能简介根据实际需要,本系统主要完成以下功能:1、利用红外温度传感器采集温度数据2、通过LED进行温度显示3、通过键盘进行温度设定4、通过PWM驱动调节风扇,进行温度控制2.2 虚拟信号发生器的总体方案设计本设计的整体思路是:本系统以51单片机为控制核心,将红外温度传感器检测环境温度并直接输出数字温度信号给单片机进行处理,同时利用LED数码管进行温度的显示。同时采用PWM脉宽调制方式来改变直流风扇电机的转速。并通过一个按键实现智能控制和固定转速切换。系统结构框图如图2-1所示。 温度显示LED 按键温度设定 电动风扇调节温度 PWM电机驱动STC89C51RC红外传感器温度采集 图2-1 系统结构框图 2.3 本章小结本章只是从总体的思路上进行了一个大体的介绍,分析了其中每个部分的功能作用,为今后的具体涉及做好了基本的框架,其中并没有涉及到过多的技术内容,下面将从硬件和软件两部分进行详细的介绍。第三章 系统硬件简介3.1 系统硬件设计规划 3.1.1 温度传感器的选择 在本设计中,温度传感器的选择有以下四种方案: 方案一:将热敏电阻作为温度检测的核心,热敏电阻的阻值会随着物体温度的变化而变化,在经过信号通过功率放大器电路将信号放大,进而可产生较大的电压信号最后通过模数转换芯片ADC0809将电压信号模拟量转化为数字信号输入单片机处理。方案二:采用模拟式的集成温度传感器LM35作为温度检测的核心元件,经模数转换芯片ADC0809将微弱电压变化信号转化为数字信号输入单片机处理。 方案三:采用温度传感器DS18B20作为温度采集的核心器件,通过单片机与其进行串口通信可采集数字温度数据方案四:采用红外温度传感器TN901,通过串口通信可以采集温度数据。对于方案一,采用热敏电阻作为温度检测元件,有价格便宜,元件易购的优点,但热敏电阻对温度的细微变化不太敏感,在信号采集、放大以及转换的过程中还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其自身电阻对温度的变化存在较大误差,虽然可以通过一定电路来修正,但这不仅将使电路变得更加复杂,而且在人体所处环境温度变化过程中难以检测到小的温度变化。故该方案不适合本系统。 对于方案二,虽然模拟式集成温度传感器LM35的高度集成化,大大降低了外接放大转化等电路的误差因数,温度误差变得很小,但由于其检测温度结果以电压形式输出,需要使用数模转换芯片ADC0809转换为数字信号,此过程较为繁琐。并且由于LM35对温度变化产生的电压变化较小,系统易受干扰。故该方案不适合本系统。对于方案三,虽然数字式集成温度传感器DS18B20的高度集成化,通过串口可以采集到数字量数据,但如果将DS18B20应用在高精端仪器的温度采集,并且对温度调节的实时性较高的系统中,DS18B20温度传感器的性能就无法达到设计的要求。因此该方案不适合本次系统设计。对于方案四,特点TNm 红外温度计模块采用高灵敏度、高精度、的功耗的设计,保证了采用的优良特性。MEMS 热电堆可以准确的测量出环境温度,采用温度补偿技术在 TNm 红外温度计模块 上。ZyTemp 开发出独有的集成了所有硬件的集成电路的组成了红外片上系统。应用该创造 性的红外片上系统(SoC)技术,TNm 红外温度模块具有很高的集成度和性价比。ZyTemp's 的产品可以承受 10的热冲击。我们的产品擅长在宽范围温度变化环境中保 持精度。例如:传统的红外测温仪温度变化带来的误差达到 1.6,需要 30 分钟的稳定 时间;而 ZyTemp's TNm 产品误差仅仅是 0.7 ,仅需要 7 分钟的稳定时间.TNm 产品只需要 3 伏电源供电,而多数其他红外温度计需要9 伏电压供电ZyTemp 保证温度标准溯源倒 NIST 或者国际测量实验室. 所有的 TNm 产品经过溯源 的红外温度标准源校准,校准的数据和产品的序列号保存在模块上EEPROM 内。红外温度传感器TN901的温度测量范围大,精确度高,响应时间快,抗干扰能力强,并且TN901属于数字量信号传感器,可以通过SPI串口采集出数据信号,避免了A/D转换部分,因此本次系统设计采用红外温度传感器TN901。图3-1为红外温度传感器TN901的最小单元模块。 图3-1 TN901最小单元模块 3.1.2 控制核心的选择在本设计中采用STC89C51RC单片机作为控制核心,通过软件编程的方法进行温度检测和判断,并在其I/O口输出控制信号。STC89C51RC单片机工作电压低,性能高,片内含8k字节的只读程序存储器ROM和512字节的随机数据存储器RAM,它兼容标准的MCS-51指令系统,性价比高,适合本设计系统。 3.1.3 温度显示器件的选择 在本次设计中温度显示器的选择方案共有两套,分别是:方案一:应用动态扫描的方式,采用LED共阴极数码管显示温度。 方案二:采用LCD液晶显示屏显示温度。 对于方案一,该方案成本很低,显示温度明确醒目,即使在黑暗空间也能清楚看见,功耗极低,同时温度显示程序的编写也相对简单,因而这种显示方式得到了广泛应用。但不足的地方是它采用动态扫描的显示方式,各个LED数码管是逐个点亮的,因此会产生闪烁,但由于人眼的视觉暂留时间为20MS,故当数码管扫描周期小于这个时间时人眼不会感觉到闪烁,因此只要描频率设置得当即可采用该方案。 对于方案二,液晶显示屏具有显示字符优美,其不仅能显示数字还能显示字符甚至图形,这是LED数码管无法比拟的。但是液晶显示模块的元件价格昂贵,显示驱动程序的编写也较复杂,从简单实用的原则考虑,本系统采用方案一。 3.1.4 调速方式的选择 方案一:采用数模转换芯片DAC0832来控制,由单片机根据当前环境温度值输出相应数字量到DAC0832中,再由DAC0832产生相应模拟信号控制晶闸管的导通角,从而通过无级调速电路实现风扇电机转速的自动调节。 方案二:采用单片机软件编程实现PWM(脉冲宽度调制)调速的方法。PWM是英文Pulse Width Modulation的缩写,它是按一定的规律改变脉冲序列的脉冲宽度,以调节输出量和波形的一种调节方式,在PWM驱动控制的调节系统中,最常用的是矩形波PWM信号,在控制时需要调节PWM波得占空比。占空比是指高电平持续时间在一个周期时间内的百分比。在控制电机的转速时,占空比越大,转速就越快,若全为高电平,占空比为100%时,转速达到最大 。用单片机I/O口输出PWM信号时,有如下三种方法: (1) 利用软件延时。当高电平延时时间到时,对I/O口电平取反,使其变成低电平,然后再延时一定时间;当低电平延时时间到时,再对该I/O口电平取反,如此循环即可得到PWM信号。 (2) 利用定时器。控制方法与(1)相同,只是在该方法中利用单片机的定时器来定时进行高低电平的转变,而不是用软件延时。在本设计中应用了此方法。 (3) 利用单片机自带的PWM控制器。在STC12系列单片机中自身带有PWM控制器,但本系统所用到得STC89系列单片机无此功能。 对于方案一,该方案能够实现对直流风扇电机的无级调速,速度变化灵敏,但是D/A转换芯片的价格较高,与其温控状态下无级调速功能相比性价比不高。 对于方案二,相对于其他用硬件或者软硬件相结合的方法实现对电机进行调速而言,采用PWM 用纯软件的方法来实现调速过程,具有更大的灵活性,并可大大降低成本,能够充分发挥单片机的功能,对于简单速度控制系统的实现提供了一种有效的途径。综合考虑选用方案二。3.2 硬件电路设计 3.2.1 开关复位与晶振电路 在单片机应用系统中,除单片机本身需要复位以外,外部扩展I/O接口电路也需要复位,因此需要一个包括上电和按钮复位在内的系统同步复位电路。单片机上的XTAL1和XTAL2用来外接石英晶体和微调电容,即用来连接单片机片内OSC的定时反馈回路。本设计中开关复位与晶振电路如下图所示,当按下按键开关S1时,系统复位一次。晶振为11.0592MHz。图3-2为复位和晶振电路。 图3 -2复位和晶振电路 3.2.2 数码管显示电路 本设计制作中选用2位共阴极数码管作为显示模块,它和单片机硬件的接口如图3-3所示。用于显示温度传感器实时检测采集到的温度,可精确到1摄氏度,显示范围为099摄氏度。2位数码管的段选a、b、c、d、e、f、g、d、p线分别与单片机的P0.0P0.7口连接,其中P0口需接一1K的上拉电阻,并串联74HC573作为驱动电路,以使LED能够获得较大电流。2位数码管的位选分别与单片机的P2.0P2.1口相连接,只要P2.0P2.1中任一位中输出低电平,则选中与该位相连的数码管。 图3-3 LED数码管显示电路 3.2.3 串口通信为了方便调试我们需要通过串口使PC机和单片机通信。单片机有一个全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,计算机的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,采用专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。采用三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。电路如图3-4所示,MAX232的第11脚和单片机的11脚连接,第12脚和单片机的10脚连接,第15脚和单片机的20脚连接。 图3-4 UART串口电路 3.2.4 按键电路设计本次设计为了以后的方便调试,我们需要设计4*4键盘设计,按键采用价格廉价的普通四脚按键,4*4键盘设计完成后会出现8个接口,只需要将8个键盘接口接到单片机的普通接口即可。图3-5为4*4键盘电路。 图3-5 4*4键盘电路该实验使用的8位数码管显示电路和4×4矩阵键盘电路。现将这二部分的电路工作原理进行简单的介绍:4×4矩阵键盘的工作原理矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。图3-5为矩阵键盘电路图,行线接P1.4P1.7,列线接P1.0P1.3。 3.2.5 风扇电机驱动与调速电路本设计中由单片机的I/O口输出PWM脉冲,通过一个达林顿反向驱动器ULN2803驱动5V直流无刷风扇电机以及实现风扇电机速度的调节。 由单片机通过P2.2口输出与转速相应的PWM脉冲,经过ULN2803驱动风扇直流电机控制电路,实现电机转速控制。当环境温度升高时,直流电机的转速会相应按照设定提高,反之亦然;当环境温度低于设置温度时或高于预设温度时,电机保持恒定转速。 电路如图3-6所示,风扇电机的一端接5V电源,另一端接ULN2803的OUT3引脚,ULN2803的IN3引脚与单片机的P2.2引脚相连,通过控制单片机的P2.2引脚输出PWM信号,由此控制风扇直流电机的速度与启停。 图3-6 电机驱动电路3.3 本章小结本章主要介绍温度调控系统的硬件部分,本章节主要分成两部介绍了各部分的组成,首先根据实际要求制定出各部分的选择方案,然后确定最佳方案,之后根据选定方案进一步实现硬件电路,硬件系统主要由单片机最小单元,LED显示单元,按键设置单元和电机风扇模块组成。第四章 系统软件设计 软件设计部分是关键的一部分,在进行具体的编程实现之前,我们需要对总体结构进行分析,然后制定出总体流程图,软件测试平台的程序流程图如图4-1所示。 检测按键输入 采集温度温度显示温度调控定时器初始化LED初始化开始SPI初始化初始化UART串口片NT901初始化4-1 软件系统流程图4.1 软件开发平台和开发语言此部分的软件平台是以51单片机为控制核心的装置,这部分的软件设计部分的开发工具使用Keil平台,Keil平台是一个非常成熟的开发平台,Keil平台提供了各种单片机的启动程序,这使得开发人员可以把大部分的主要精力用在具体的功能设计实现上,减小了开发人员的开发阻力,并且在开发的过程中我们需要进行程序的测试,而Keil平台恰恰能满足这一功能的需求,Keil平台提供了各种调试工具,调试工具使我们可以快速的进行程序调试,同时由于Keil平台的流行,有很多的第三方库可以使用,资源非常丰富。在进行51单片机的开发中,我们可以采用汇编语言或者高级语言C语言。汇编语言实质上机器语言的助记符。CPU只能运行它所支持的指令集,而这些指令集当中的每天条指令都是一些二进制数的序列,也就是“0”和“1”的有序组合;2.“0”和“1”的组合不便于程序员的记忆因此有了“MOV A 0x40”等这样的助记符,也就是说在程序员编写程序的时候,用“MOV A 0x40”来代替一串“0”和“1”的序列,这样一看就知道是吧“0x40”单元中的数据搬到累加器A当中来。而如果是用0”和“1”的序列,毫无特征,很难被程序员记住。这也是为什么要有汇编语言产生的原因了。根据以上部分的解释,我们可知汇编语言编译成CPU可执行的机器语言其实只要做一个翻译的动作就好了,因为,助记符与对应的二进制指令是一一对应的。因此汇编程序的效率非常高,但实际上汇编语言会因为各种控制器的不同,汇编语言会出现不同,从而导致程序十分难移植,通用性差。C语言属于高级语言,但为了达到高效率和通用性之间的优秀折中,C语言并不是向C+、C#那样的面向对象的高级语言,它属于面向过程的编程语言,C语言在单片机编程方面的最大优势是通用性,在面向不同的单片机时,我们不必重新学习其语言,并且之前的其他程序可以完美的移植,同时随着编译器的逐渐发展,再将C语言编译成汇编语言时的效率高达70%,并且随着编译器的发展,效率还会提高。 综合上述考虑我们本次的设计选择在Keil平台进行开发,并且我们选择C语言作为开发语言。4.2 UART串口系统部分实现UART串口是异步串行传输串口,该总线双向通信,可以实现全双工传输和接收。UART串口是一种非常方便的串口,并且51单片机自带UART串口,我们仅需了解即可应用,我们可以不用普通IO口来模拟UART产口时序,为了与PC机通信我们需要将UART串口转为USB串口。图4-2为UART转USB串口线。51单片机的设置如下TMOD=0x20; /设定T1定时器工作方式2TH1=0xFD; /T1定时器装初值,12M晶振时为0XFD,32M晶振时为0XF7TL1=0xFD; /T1定时器装初值,12M晶振时为0XFD,32M晶振时为0XF7EA=1; /开总中断ES=1; /开串口中断ET1=0; TR1=1; /启动T1定时器SM0=0; /设置串口工作方式1SM1=1; /设置串口工作方式1SCON |= 0x50; /控制寄存器,用来设定串口的工作方式、接受/发送控制及设置状态标志等REN=1;由于UART串口是异步串口,在接收数据时我们需要利用中断,并且在中断处理函数中接收数据。 图4-2 UART转USB串口4.3 SPI红外温度采集SPI(Serial Peripheral Interface-串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。红外温度传感器TN901是标准的SPI接口,但是51单片机自身并没有SPI接口,因此我们需要利用51单片机的普通IO口来模拟标准SPI串口的时序。在通过软件模拟SPI串口之前,我们首先需要认真的研究SPI串口的时序,然后根据串口的时序图编写各个部分的函数。SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图4-3所示,在SCLK的下降沿上数据改变,上升沿一位数据被存入移位寄存器。 图4-3 SPI时序图 根据以上的时序图分析,我们需要首先编写初始化SPI串口函数void SPI_Init(),根据发送和接收时序图,我们编写了最基本的SPI字节的发送和接收函数驱动void IO_Send_Byte(uint8 dataout)和uint8 IO_Receive_Byte(),同时在使用SPI传输数据完成后,我们需要结束传送void SPI_End(),使用这些基本的驱动函数即可与传感器通信来采集数据。TN901的数据格式信息格式ItemMSBLSBSumCR其中各含义如下Item :“L”(4CH): Tobj (目标温度) “f”(66H): Tamb (环境温度)MSB:8 bit Data 最高有效位LSB:8 bit Data最低有效位Sum:Item+MSB+LSB=SumCR:0DH, 结束信息4.4 电机风扇调节电机风扇的转速快慢可以直接调节温度的升降,因此我们可以利用单片机来对风扇的快慢进行调节,电机风扇的转速原理是通过调节电机的PWM的占空比来进行调速,PWM占空比的实际是我们平常所见的方波的占空比,通过调节占空比来调节电机的转速的原理是调节电机的平均电压的大小。高端单片机自带PWM功能,但是51单片机并不自带其功能成,我们在本次论文中采用软件模拟PWM,其中利用单片机中的定时器功能,利用定时器功能可以准确的定位PWM的周期和PWM的占空比,这回使温度调节系统响应时间快切温度调节准。在这次的软件模拟中,关于频率和占空比的确定,对于12M晶振,假定PWM输出频率为1KHZ,这样定时中断次数设定为C=10,即0.01MS中断一次,则TH0=FF,TL0=F6;由于设定中断时间为0.01ms,这样可以设定占空比可从1-100变化。即0.01ms*100=1ms。TH0和TL0是计数器0的高8位和低8位计数器,工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数脉冲为65536,最长时。4.5 本章小结系统软件的设计是本系统设计的重中之重,控制软件完美的将软件程序与硬件设备结合,完成了对电机风扇的控制。软件编程的编程模型采用单元化和层次化,这样可以加大程序的可重用度和程序的可调试,当出现错误或程序需要功能需要更改时,我们只需要简单更改程序即可避免了大规模重写程序。第五章 系统调试与运行5.1 系统调试过程系统调试的目的是验证系统能否完成设计要求的功能,并且在实际情况下能否持续良好的运转。系统调试的主要步骤大致分为以下几步:一、设备检测。在进行调试之前需要进行整体设备的检测,确保电路各个部分接触完好,不要出现短路和断路现象,以免在测试的工程中出现了电路连电现象,使整个电路系统烧毁,在检测时应该注意共地问题,以免在测试工程中数据出现不正确。二、按键和LED显示检测。按键是关键的输入部分,LED是显示部分的核心,分别担任输入和输出的功能,这两部分应该进行仔细的调试,避免出现输入或显示不正确现象。三、红外温度传感器测试。在整个温度调试系统中,红外温度传感器是温度采集的核心部分,只用温度数据采集正确才能进行之后的数据处理和温度调试。四、电机调试。电机调试是关键部分,又由于PWM模块使用软件模拟,我们应该用示波器测试出PWM波形,之后在进行电机风扇的驱动,不要直接却动电机,避免波形不对烧毁电机。5.2 系统调试结果系统总体原理图如图5-1所示检测结果及错误如下:1、设备检测:在设备检测时,