《基于单片机的温控风扇设计 (2).doc》由会员分享,可在线阅读,更多相关《基于单片机的温控风扇设计 (2).doc(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、苏州市职业大学毕业设计 学号: 苏州市职业大学毕业设计 题目 基于单片机的温控风扇设计 学生姓名: 专业班级: 18级智能控制技术班 学院 (部): 电子信息工程学院 校内指导教师: (职称) 校外指导教师: 姓名(工程师) 完成日期: 2021年5月 目 录摘 要IIIAbstractIV第一章 整体方案设计11.1 前 言11.2 系统整体设计11.3方案论证21.3.1 温度传感器的选择21.3.2 控制核心的选择31.3.3 温度显示器件的选择31.3.4 调速方式的选择3第二章 各单元模块的硬件设计52.1系统器件简介52.1.1 DS18B20单线数字温度传感器简介52.1.2 达
2、林顿反向驱动器ULN2803简介52.1.3 AT89C52单片机简介62.1.4 LED数码管简介72.2 各部分电路设计82.2.1 开关复位与晶振电路92.2.2 独立键盘连接电路92.2.3 数码管显示电路102.2.4 温度采集电路112.2.5 风扇电机驱动与调速电路12第三章 软件设计143.1 程序设置143.2 用Keil C51编写程序143.3 用Proteus进行仿真153.3.1 Proteus简介153.3.2 本设计基于Proteus的仿真16第四章 系统调试214.1 软件调试214.1.1 按键显示部分的调试214.1.2 传感器DS18B20温度采集部分调试
3、214.1.3 电动机调速电路部分调试214.2 硬件调试224.2.1 按键显示部分的调试224.2.2 传感器DS18B20温度采集部分调试224.2.3 电动机调速电路部分调试224.3 系统功能234.3.1 系统实现的功能234.3.2 系统功能分析23结 论24参考文献25致谢26附录1:电路总图27附录2:程序代码2836摘 要现代社会中,众多的工业生产、日常生活都离不开温控风扇的应用,其在工程建设的散热系统、手提电脑处理器降温等有着突出的作用。本命题对温控风扇系统进行了解释说明,单片机为其核心构成部分,通过温度传感器DS18B20获取温度信息,与系统设置的温度做比较,判断使用U
4、LN2803电机做成的风扇系统对元件进行散热处理,同时能通过判断设定温度与采集温度的温差大小,来确定风扇系统的转速,采用LED八段数码管实现温度显示功能。关键词:单片机、DS18B20、温控、风扇AbstractIn modern society, many industrial production and daily life are inseparable from the application of temperature-controlled fans, which play a prominent role in the cooling system of engineering
5、 construction and the cooling of laptop processors. This proposition explains the temperature-controlled fan system. The single-chip microcomputer is its core component. The temperature information is obtained through the temperature sensor DS18B20, and compared with the temperature set by the syste
6、m, it is judged that the fan system made of ULN2803 motor is used to heat the components. At the same time, it can determine the speed of the fan system by judging the temperature difference between the set temperature and the collected temperature, and the LED eight-segment digital tube is used to
7、realize the temperature display function.Key words: MCU, DS18B20, temperature control, fan第一章 整体方案设计1.1 前 言在现代社会中,风扇被广泛的应用,在人民日常生活中的作用越来越大,无论是工程建设中的散热系统,还是电脑主机的散热功能,都离不开风扇的使用。由于科学技术的发展,低噪音、低耗能的风扇逐渐被推广,随着科技水平的智能化程度越来越高,如今的风扇的转速可以随着环境温度的变化而变化,同时当环境温度达到或者低于其设定值时,风扇可以自发启动或者停止,实现控制系统的智能化。目前单片机的应用愈加普及,一定程
8、度上促进了温控系统的发展,通过单片机技术的运用,提升温控系统的智能性,实现风扇的自发启动与停止、风扇转速与环境温度相配合,提升风扇的智能化水平。这不仅给人民生活带来了便捷,提升工业生产质效,还避免了资源浪费,提升资源利用率。本命题介绍了8052系列单片机,其由ATMEL公司研发,以AT89C52作为主要控制器,通过DS18B20元件进行温度采集,进而通过ULN2803驱动风扇电机实现风扇转动。此外,通过LED数码管来显示出系统所采集的环境温度以及系统预设的温度,根据系统检测到得环境温度与系统预设温度的比较,实现风扇电机的自动启停以及转速的自动调节。1.2 系统整体设计本产品的设计思路如下:通过
9、温度传感器对环境温度进行温度采集,转化为数字信号输入AT89C52单片机,进而在八段数码管上显示出所采集的温度以及系统设定温度,分别精确到十分位与整数位。并且通过运用PWM脉宽调制法,实现电机转速随着环境温度的改变而改变。此外,为了方面预设温度的调整,设定两个按键来对预设温度进行升高或者降低。该系统运行流程图如下所示:DS18B20温度显示独立键盘AT89C52直流电机PWM驱动电路晶振复位图1.1系统构成框图1.3方案论证为了提升风扇的智能化水平,本产品风扇电机能根据采集的环境温度是否达到预设温度,实现风扇电机的自发启动与停止,这对温控器件以及温度传感器元件的技术要求较高1 李学龙. 使用单
10、片机控制的智能遥控电风扇控制器J.电子电路制作,2003,9:1315.。1.3.1 温度传感器的选择本产品的温度传感器有两种以下两者选择:A方案:温控系统的温度采集元件采用热敏电阻,随着温度的变化,配合运算放大器的使用,热敏电阻所产生的动态电压信号经过AD转换成数字信号,进而输入单片机进行下一步设置。B方案:温控系统的温度采集元件用DS18B20温度传感器,其将电压信号通过AD转换成数字信号输入温控系统。采用A方案选取热敏电阻作为核心,其优点是成本低,热敏电阻方便安装等,但其也有缺点,例如当温度产生微小变化时,热敏电阻的灵敏度低,变化不大,因此对温度采集过程会产生误差。同时,热敏电阻的电阻与
11、温度之间的特性曲线非线性,其本身存在测量误差,可以通过外加电路进行校正,减少测量误差,但这会使温控系统复杂化,而且在人体所处环境温度变化过程中难以检测到微小的温度变化。因此,采用A方案缺乏便捷性以及精准性。采用B方案由于DS18B20型温度传感器的精确度高,对采集温度过程中很大程度上减少了测量误差,相比于热敏电阻,其灵敏度高,其内部可以直接把电信号转化为数字信号,减少了电路的复杂程度。通过单线总技术,让系统电路简单化,并且提升其自动控制水平,提升系统的精简性与智能性。B方案与系统要求相契合。1.3.2 控制核心的选择本产品中的选取AT89C52单片机作为温控系统的核心元件,对其输入对应功能的代
12、码,实现温度采集与判定,在输入输出端口中输出数字信号。这一单片机的优点包括性能完善、工作耗能小、存储器容量大等,相比于其它单片机,AT89C52的兼容性较强,购买价格便宜,非常契合系统的运行。1.3.3 温度显示器件的选择A方案:选取LED八段数码管进行动态扫描。B方案:通过LCD显示屏体现温度信息。A方案的优点是采购价格低,耗能低,所显示出的温度即使在黑暗环境下也清晰可见,所植入的程序易理解,因此这类温度显示器得到了推广,普遍应用于人民的日常生活当中。由于它是通过动态扫描的方式来显示数字,只要显示间隔时间大于20MS,数字信息就能通过人眼采集,因此,设定适合的闪烁频率就可使用A方案。B方案的
13、LCD液晶显示屏相比于LED数码管其所显示出的数字比较美观,除此之外还能显示多元化的字符以及图案。但其购买成本也相对较高。显示驱动程序的编写也较复杂,从简单实用的原则考虑,综合考虑,A方案比较适合本系统。1.3.4 调速方式的选择A方案:选取DAC0832元件作为核心元件,采集到的环境温度输入此芯片,从而输出对应的模拟信号以控制晶闸管的导通以及关断时间,进而实现根据不同的温度自动调节风扇转速。B方案:选用脉宽调节法(PWM),通过输入编程代码实现对输入脉冲宽度的调节,进而调节输出波形,控制风扇转动速度。这种方法一般采取矩形波的脉冲信号,对脉冲宽度的调节时严格控制其占空比。PWM的占空比反映高电
14、平脉冲在一个完整周期内所占的比例,高电平时间持续越长,电机转速就越高,当脉冲没有低电平时,风扇电机达到最大转速2 蓝厚荣.单片机的PWM控制技术J .工业控制计算机,2010,23(3):97982。下面为三种输出PWM信号的方法:(1)通过软件对PWM高低电平进行延时处理。当高电平即将变成低电平时,通过软件处理,对I/O输出端口进行取反处理,使高电平变为低电平,同时增加延时时间;当低电平即将变成电平时,重复上述过程,不断循环处理便可输出PWM信号。这种方法比较契合本系统。(2)通过定时器的使用,与(1)中的控制方法相同,改变脉冲高低电平的延时时间,应用此方法时编程相对复杂。(3) 利用单片机
15、自带的PWM控制器。在STC12系列单片机中自身带有PWM控制器,但本系统所用到得AT89系列单片机无此功能。A方案能够的性能较好,其灵敏度高,环境温度变化时对应的风扇电机速度变化灵敏,但DAC0832芯片的购买成本高,对本系统的而言其性价比较低。 B方案采用软件系统对风扇电机的转速进行调节,这种方法转变性比较强,相比于硬件系统其成本低,单片的功能的体现不亚于硬件系统,对于比较单一的控制系统而言,B方案比较适合。第二章 各单元模块的硬件设计本设计的主要硬件包含:型号为DS18B20的输出离散型号的数字温度传感器;型号为AT89C52的CMOS 8位单片机;5位发光二极管封装的数码管显示器风扇直
16、流电动机;型号为ULN2803驱动器。其他电子元器件包含:多种不同阻值的电阻器;多种不同电容量的电容器;多个晶体振荡器;各类电压源以及电流源;多个按键;多个DIP开关。2.1系统器件简介2.1.1 DS18B20单线数字温度传感器简介DS18B20属于DALLAS公司开发的一款数字温度传感器产品,该产品性能稳定、体积紧凑、功率损耗低、适用范围广,能够采集环境的温度信息并以数字信号的形式进行输出。若在一些微观领域使用DS18B20进行温度的测量,则可以充分发挥它的功能。其工作特性如下:第一,可以对环境的温度信息进行捕捉,并将这些信息转化为离散的数字信号,信号的输出端仅设有一条线路,DS18B20
17、在该线路上以串行通信的方式将数字信号传输于中央处理器CPU,在这个过程中,还可以进行循环冗余效验,保证了数据传输的准确性以及稳定性;第二,以摄氏度为单位,DS18B20的测温区间为-55,125,在区间-10,85内,DS18B20可以控制在0.5摄氏度以内的测量误差;第三,DS18B20温度分辨率设有0.5 9bits、0.25 10bits、0.125 11bits、0.0625 12bits这4个级次,即最高采样位数为12bits,显示温度的最小变化量为0,0625摄氏度;第四,DS18B20“一线总线”的模式,可以实现使用一条线路与MPU进行半双工通信;第五,多个DS18B20可以连接
18、于一根接线上,构成温度监测网络,对环境温度进行大范围的监测;第六,DS18B20工作时,以V为单位,其两段的电压值区间为3.0,5.53。 它的内部包含4个核心器件:64 bits的只读存储器;用于采集温度信息的传感器;温度高位与温度低位的触发报警器寄存器。DS18B20含有引脚(3个),其中DQ端用于输出数字信号,GND端用于接地,VDD端用于外接电源的输入。2.1.2 达林顿反向驱动器ULN2803简介本文主要对基于单片机的温控风扇进行设计,电机在需要一定的驱动电流才能正常工作,因此需引入相应的驱动电路。本设计选取ULN2803作为电机工作电流的驱动器。反向驱动器ULN2803的硬件接口较
19、少,可以简化系统开发者的安装操作流程,并为本系统的风扇直流电动机提供充足的工作电流,ULN2803的本质为CMOS器件中的接口型集成芯片,18脚为输入端,1118脚为输出端,可集中驱动8路小型直流电机。在本系统中,AT89C52的8个I/O口与ULN2803的8路输入进行连接,输入TTL高电平,进而实现对8个相应电机的控制。ULN2803的内部由8路NPN达林顿管构成,并采用合适的形式进行封装,包含18个管脚,1脚至8脚为输入端口,可接收TTL电平以及CMOS电平;11脚至18脚为输出端口,可输出充足的电压以及电流;9脚为GND端,用于接地;10脚为供电输入端口,接正极电源。若在18脚中输入5
20、V的TTL高电平或者输入6V至15V的CMOS高电平,那么对应的1118脚最高输出电压可以达到50V,相应的电流可达500mA,以摄氏度为单位,ULN2803可正常运行的温度限值区间为0,70,本设计将选取工作电压为12V的直流电机,因此ULN2803符合该电机的驱动条件。2.1.3 AT89C52单片机简介AT89C52属于COMS 8位单片机,由制作商爱特梅尔公司推出,是一款性能极佳、工作电压低的单片机产品。AT89C52的组件使用爱特梅尔的NVM技术制作,可兼容Intel 8051系统,内部装有8 bits CPU、容量为8KB的ROM、容量为256B的RAM。AT89C52功能强大,适
21、用于各种不同系统的开发,它含有40只管脚,对应的功能如下: VCC:作为供电输入端口,接5V电压。GND:用于接地端或0线。P0.7P0.0:P0端共含有八只管脚,从P0.0至P0.7位数逐渐上升。P0.7P0.0包含两种使用情况:若AT89C52不连接外部存储器,且确保P0口功能的正常,则需要在P0的引出端中插入一个电阻并输入高电平,进而实现中央处理器通过P0端与外部设备进行数据交换以及信息传输的功能。若AT89C52外部接有存储器,那么在中央处理器与外部存储器进行数据传输时,相应引脚会先传输外部存储器的低八位地址信号,再传输中央处理器对应的读写信息 4。P1.7P1.0:P1端包含了P1.
22、7P1.0这8个管脚,属于插入了上拉电阻的半双工通信I/O接口,具备一般I/O端的功能,能够用于传输I/O信息,不同之处在于P1端内部预先插入了上拉电阻,因此P1端可直接通路使用。在使用AS语言进行编程时,可以通过P1端对AT89C52的EPROM的低八位地址信息进行输入。 P2.7P2.0:P2端包含了P2.7P2.0这8个管脚,属于插入了上拉电阻的半双工通信I/O接口,具备一般I/O端的功能,传送用户的输入/输出数据,此外,P2还能与P0.7P0.0管脚的功能配合使用,实现外接存储器高八位地址信号的传输功能,输出16位地址信号,进而协同选取外接存储器的存储元集合,不足之处在于,二者配合使用
23、时无法输出中央处理器对外接存储器的读写信息。对于一些其他不同的51机,P2.7P2.0脚还能够与P0.7P0.0脚协同使用,输入单片机内部EPROM的高四位地址信号。P3.7P3.0:P3端包含了P3.7P3.0这8个管脚,属于插入了上拉电阻的半双工通信I/O接口,在对P3端进行写1操作后,其将输出高电平。P3端具备一般I/O端口的功能,可以让CPU与外部设备进行数据的输入与输出, P3口也作为一些特殊功能端口使用,如下所示:P3.0:RXD(串行数据接收口)P3.1:TXD(串行数据发送口)P3.2:(外部中断0输入)P3.3:(外部中断1输入)P3.4:T0(记数器0计数输入)P3.5:T
24、1(记时器1外部输入)P3.6:(外部RAM写选通信号)P3.7:(外部RAM读选通信号) 图2.1.1 AT89C51单片机 ALE/:地址锁存器允许/编程线,在访问片外存储器时在ALE/线上输出高电位脉冲,以及在引脚P0.7P0.0上的片外存储器的低8位地址。下降之后是片外存储器的低8位地址的锁存器到外部专用地址锁存器。为了释放P0.7P0.0引脚以传输后续的片外存储器读写数据。当读取片外存储器时,单片机自动进入ALE/线上输出频率为1/6晶振频率的脉冲序列。:是读取外部程序存储器的先通信号,CPU从外部获取指令时,在每个工作周期中两次有效。但在访问外部数据存储器时,这两次有效的信号将不出
25、现。/VPP:允许访问片外存储器/编程电源线。程序存储器的选取是由电平状态决定的,当处于高电平状态时,只选用片内程序存储器;当处于低电平状态时,只选用外程序存储器。在固态存储器与动画编辑器工作过程中,经常性地使用12V编辑电压(VPP)。2.1.4 LED数码管简介在本系统中,温度由五根LED管表示。LED管又名数码管,由八段具有发光功能的二极管组成,根据外界条件的变化,这八段具有发光功能的二极管可以组成成千上万种不同的组合。如下图2.1.2所示,其中标有字母a-g的二极管根据不同的发光组合可以用来表示数字0-9或字母A-F;标有dp的二极管则表示小数点。一般而言,LED管结构主要分为两类:共
26、阴极结构;共阳极结构;如下图2.1.2(a)、(b)所示。两种结构不同的地方在于这八段二极管终端接连的差异。顾名思义,在共阴极结构中,八段二极管的终端都连接在阴极;在共阳极结构中,八段二极管的终端都连接在阳极。控制电平的高低状态可以使得二极管按照预先设定的组合发光,以此表示具体的数字组合或者字母组合,最终形成一段字形码,又称为段选码5。b.共阳极a.共阴极数码管引脚分配图 图2.1.2 七段LED数码管表2.1.1 7段LED的段选码表显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03fHC0H87fH80H106HF9H96fH90H25bHA4HA77H88H34fHB0HB7f
27、H83H466H99HC39HC6H56dH92HD3fHA1H67dH82HE79H86H707HF8HF71H8EH在采用共阴极结构的单片机中,给“a、b、c”三个二极管输入高电平时,即这三个二极管同时发光时就会显示数字“7”。其具体操作为在P0输入端输入段选码07(H),即00000111就可以显示数字“7”。其他数字与段选码的相互关系如上表2.1.1所示。2.2 各部分电路设计2.2.1 开关复位与晶振电路复位不仅在单片机中发挥着非常重要的作用,还在外部组成结构之一的I/O接口电路中发挥着至关重要的作用。因此,需要设计一个具有复位功能的开关,除此之外,该开关还需同步单片机系统和外部I/
28、O接口电路,以此简化整个操作过程。另外,借助XTAL1和XTAL2引脚有利于确保石英晶体以及微调电容接触状态良好。按照以上方法设计的具有复位功能的开关示意图如图2.2.1所示。具体功能如下:当按触S1时,单片机系统进行复位,此时电容C1、C2、C3以及电阻R2、R3都参与了整个复位过程。图2.2.1 系统复位与晶振电路2.2.2 独立键盘连接电路该独立键盘拥有两个具有特定功能的按钮,分别为:S2和S3。其中S2和单片机系统的P13接口相接;S3和单片机系统的P14接口相接。当单片机系统通电并按下S2、S3任一按钮之后,P1处会显示实时的电平状态。此时可以通过按触两个按钮调节初始温度大小,S2按
29、钮为减按钮,S3为加按钮,每一次按触的变化值都是单位1,按触后系统会计算出最终的初始温度值。其接线图如下:图2.2.2 独立键盘连接电路2.2.3 数码管显示电路本设计制作中选用5位共阴极数码管作为显示模块,它和单片机硬件的接口如图2.2.3所示。其中温度的测量由显示模块中前3位数码管DS1、DS2、DS3显示,以摄氏度为单位,其可测量的温度值区间为0,99.9,另外,在该测量范围内,其最终测量的温度精准度控制在0.1。除此之外,初始温度值由后2位数码管DS4、DS5显示,而且改2位数码管有且仅有显示温度初始值得功能,其可显示的初始温度值区间为0,99。其各线路的衔接如下图2.2.3所示。通过
30、观察下图,可以发现5位数码管借助a-g以及dp线与单片机相连接,其接口也是按照字母顺序对接单片机的P00-P07接口。除此之外,还需要给单片机P0接口处添加一个电阻为10K的电阻R,有利于精准地控制电平状态。图2.2.3 数码管显示电路2.2.4 温度采集电路内部计数时钟周期是DS18B20温度转换器的技术核心,当内部计数时钟周期正常运作时,DS18B20温度转换器才具有测量温度的功能。通过高温系数振荡器产生的门周期对低温系数振荡器输出的时钟信号进行计数。除此之外,还在该计数器中预先设定一个与-55对应的权数值。以该权数值作为界限,若当计数器输出结果为0时,高温系数振荡器还处于震荡状态,则表明
31、此次测量的温度大于-55,此时原先存在在显示屏的温度值就会加1。重复以上过程直至高温系数震荡器停止震荡,该时显示屏显示的数值为温度的测量值。除此之外,该数值会被换算为16位二进制的表示形式储存在内部存储器。当需要读取温度测量值时只需要向系统输入相关指令 6。单片机有利于DS18B20温度转换器实现其测量温度的功能。因此,在实际使用情况中,往往将DS18B20温度转换器的信号线与单片机的I/O线相连接。除此之外,单片机的I/O接口还可以同时与多个DS18B20温度转换器相连接,提高单片机的使用效率,有利于测量多点温度值7。其具体连接模式如下图2.2.4所示:图2.2.4 温度采集电路2.2.5
32、风扇电机驱动与调速电路本系统由AT89C52通过I/O端进行PWM脉冲的输出,再使用ULN2803将输出的电流电压参数放大至适宜的值,ULN2083与电机链接并发挥驱动作用,最终使工作电压为12V的直流电机正常运作并实现电机转速的调控功能。通过PC机的如键盘等终端设备进行目标环境温度值的设定,并使用51机相关软件将目标温度控制值转化为AT89C52的操作指令,进而使AT89C52的1.7引脚输出用于调控电机转速的PWM脉冲,该脉冲在其电流电压参数由ULN2803放大后可用于对电机的控制电路进行驱动,通过这些流程后最终可实现风扇电机的启动、关停以及工作频率的自动化调控功能8。若外界的温度值上升,
33、那么风扇的工作频率也将上升,随之转速上升;若外界的温度值降低,那么风扇的工作频率也将下降,随之转速降低;若外界温度低于目标温度值,那么风扇将停止运作;若外界温度高于目标温度值,那么风扇将重新运行,进而实现风扇电机转速根据环境温度的自适应调节功能。电机的驱动与控制电路见图2.2.5,从该图中可以清晰地看到VCC输入+12V直流电压至MOTOR-DC,同时MOTOR-DC与ULN2803的输出端OUT7管脚连接;ULN2803的输入端IN7管脚与AT89C52的TXD引脚相接,同时GND脚接地,COM口接+12V的VCC输入电压,此时AT89C52的TXD脚将输出PWM脉冲,通过ULN2803的放
34、大作用实现对MOTOR-DC的启动、关停以及工作频率的调控功能。图2.2.5 风扇电机驱动与调速电 本设计选取了工作电压为12V的直流电机,若ULN28031的18脚输入5V的TTL高电平或者输入6V至15V的CMOS高电平,那么对应的1118脚最高输出电压可以达到50V,相应的电流可达500mA,以摄氏度为单位,ULN2803可正常运行的温度限值区间为0,70。因为本设计采用了51系列单片机AT89C52,其I/O端输出TTL高电平,满足ULN2803的使用要求,所以能够选取ULN2803作为电机的驱动器件。第三章 软件设计3.1 程序设置采用主程序、DS18B20初始化函数、DS18B20
35、温度转换函数、温度读取函数、键盘扫描函数、数码管显示函数、温度处理函数以及风扇电机控制函数等,这一部分都主要在程序设计部分进行操作与应用。采用DS18B20初始化函数完成对DS18B20的初始化;对环境温度的实时采集则选用了DS18B20温度转换函数;主机对温度传感器数据的读取及数据换算则采用了温度读取函数,依据需要完成初值的加减设定的要求选用了键盘扫描函数;而针对需要即完成将采集到的温度进行处理,选择温度处理函数,使得具备支持电机转速变化所需条件;鉴于需要依据温度的数值完成对电机转速及启停的控制则选用了风扇电机控制函数。具体流程图如图3.1.1:所示调用键盘扫描函数主程序开始调用数码管显示函
36、数程序初始化调用温度处理函数调用DS18B20初始化函数调用风扇电机控制函数调用DS18B20温度转换函数结束 调用温度读取函数图3.1.1 主程序流程图3.2 用Keil C51编写程序由美国Keil Software公司开发的Keil C5151软件系统,属于系列兼容单片机C语言类,与单片机汇编语言相比,C语言不仅在语句方面简单灵活,而且编写的函数模块可移植性强9 谭浩强.C程序设计M(第三版).北京:清华大学出版社.2005.3765.,因而易学易用,效率高。事实上,随着单片机开发技术的日益迭代发展,市面上单片机的开发软件也早已呈现繁荣景观,同时在操作应用中,单片机的开发技术也有所转变,
37、现基本已从早年常用的汇编语言转向高级语言,而其中,Keil软件则属于目前使用面积较广的一款MCS-51系列单片机开发软件。Keil C51软件具备非常多的优势,其主要优势有两点。第一它能提供非常丰富的库函数,这便使得在应用过程中大大节省了操作人员的时间,简化了工作步骤;二是Keil C51还具备强大的集成开发调试工具,优化了程序编辑调试,带来诸多便利,而以上这两点优势,完全在当需要开发大型软件时体现出高级语言的优势。关于Keil软件的使用,主要步骤大致分为三步,即先建立一个工程,再添加文件并编写程序,编写好程序之后最后再进行编辑调试。软件使用界面如图所示3.2.1。图3.2.1 Keil C5
38、1软件的使用界面3.3 采用Proteus进行仿真3.3.1 Proteus简介Proteus软件是由英国公司Labcenter electronics出品,是一款EDA工具软件,该款软件具备十多年的历史,其使用人数涵盖全球,深受世界各地的喜欢。该款软件的优势十分显著,不仅具有和其他EDA工具一样的原理布图、人工布线以及电路仿真功能,而且与其它软件不同的是,它的仿真电路还可以进行互动,甚至可以根据仿真进行实时观察从而验证设计的准确性并及时改变程序代码、原理图连接以及元件属性等。另外该款软件还能配合系统配置的虚拟仪器来显示和输出,例如示波器、逻辑分析仪等10 孙号.Proteus软件在设计电子电
39、路中的应用J .仪表技术,2009,8:7475,呈现的效果也非常好。Proteus有4个功能模块分别为智能原理图设计、完善的电路仿真功能、独特的单片机协同仿真功能以及实用的PCB设计平台。而Proteus的优势也十分显著,其内部元件库含有丰富的元件,能支持总线结构以及智能化的连线功能,此外它还能支持主流CPU(如ARM、8051/52、AVR)及其通用外设模型的实时仿真等,而这些优势能为单片机的开发与应用等带来极大的帮助。Proteus使用的主界面如图3.3.1。图3.3.1 Proteus使用界面3.3.2 本设计基于Proteus的仿真 本阶段的主要操作具体为:启动Proteus软件,建
40、立工程,依据原理图调出所需要的原件,按照要求改变各原件的属性,最后将各个原件按照原理图连接起来。在原理图绘制连接好之后,把编译好的程序加载到其中11 楼俊军.基于Proteus和Keil的单片机演奏乐曲的实现J.科技信息,2010,23:第50页。最后分步进行仿真12 王文海,周欢喜.用Proteus实现51单片机的动态仿真调试J .IT技术,2006,20:1011。将温度传感器DS18B20的温度设置为26.4摄氏度,用键盘S2将调节系统预设的温度调节到22摄氏度。点击按钮,系统开始进行仿真,待一段数值时间稳定后再进行观察,记录风扇直流电机的转速,此时风扇直流电机的速转显示为+14.2r/
41、s,如图3.3.2所示。图3.3.2 Proteus仿真效果图一使用DS18B20将温度设定为28,。4摄氏度,用键盘S2调节温度,将系统预设温度调节为22摄氏度。点击按键,系统开始仿真,待到一段时间稳定后再进行观察,此时记录数值,结果为+23.3 r/s,如图3.3.3所示。使用温度传感器DS18B20将温度设定为28.4摄氏度,然后采用S2调节系统预设温度,将其设定为22摄氏度。点击开始键,系统立刻进行仿真,待一段时间数值稳定后再进行读数,此时记录直流风扇电机的转速,获得结果为+23.3 r/s,如图3.3.3所示。图3.3.3 Proteus仿真效果图二 温度传感器DS18B20的温度设
42、置为33.4摄氏度,键盘S2调节温度,将系统预设温度调节为22摄氏度。点击按钮,启动系统仿真程序,待到一段时间稳定后再进行数值观察和记录,此时所观察到的直流风扇电机的转速为+32.0 r/s,如图3.3.4所示。图3.3.4 Proteus仿真效果图三在上一步上述基础上,即33.4摄氏度的温度传感器和22摄氏度的系统预设温度条件下,用键盘S2调节系统预设温度到34摄氏度,此时得知系统预设温度高于温度传感器检测到的温度,观察到直流风扇电机的转速正逐渐变慢,直到最后转速归0,符合系统要实现的功能,如图3.3.5所示。图3.3.5 Proteus仿真效果图四 通过上述仿真可以看到,直流风扇电机在系统
43、所设定的温度一定的情况下,其电机的转速会随着环境温度即温度传感器检测到的温度的增加而增大。当环境温度低于系统预设温度时,风扇自动停止运转,此结果能够实现系统所设计的功能。当然,在此并没有实现风扇直流电机的无级调速,本系统实现的是电机在随环境温度变化的四个等级的速度变化,环境温度的变化在一定小范围内不会影响风扇电机的转速,只有超过了设定的某一界限时转速才会变化。第四章 系统调试4.1 软件调试4.1.1 按键显示部分的调试首先,按照设计方案编写了系统程序:P0端口与数码管相连,P1端口与键盘接口相接,P2端口用于控制LED位码,用于控制键盘的使用功能和数码管的显示。此种情况下,编译没有出现错误,
44、但在模拟调试中,数码管显示出现乱码情况,数码管上显示的设定温度不正确,通过按键调节设定温度时显示器上的温度并没有任何的变化。通过对每一个部件的查找和分析,发现键盘程序存在一定的问题,其发现键盘扫描程序并没有安装按键部件来防止防震。这是因为当键盘中的按键被按下或者松开时,因为惯性的原因按键均会出现一定程度的震动,致使单片机做出错误的判断,导致在按键条件决定温度时出现故障,甚至某种程度上使其不工作。为了解决此类问题则需要在按键扫描程序中增加消除抖动部分,即增加按键释放时的延迟判断,以确定按键是完全按下还是完全释放。数码管不能准确显示的主要原因是所有数码管段码都是通过P0端口传输的,而数码管屏幕认可
45、的模式是动态扫描。然而,该系统程序中没有显示段码的寄存器,导致通过端口P0传输段码时产生混淆,无法识别正确的段码。这就是为什么有必要向系统添加一个连接或设置程序的段代码空间的原因。在键盘上加入防振程序,在数码管显示程序中加入保存段码的空间后,数码管没有出现乱码且可以正常显示,按键也可以正常工作且没有延迟现象发生,在模拟调试时取得了很好的效果。4.1.2 传感器DS18B20温度采集部分调试由于数字温度积分传感器DS18B20集成度高,给软件设计和调试带来很大的方便。其体积小、能耗低、精度高,为检测仪器的精度和稳定性提供了支持和可能。软件使用P3.1端口作为数字温度输入端口,但必须在数字信号输入
46、出现之前对其进行处理,因此这里有温度转换程序,此程序经过编程和软件设计之后可以实现对外部环境连续测温。但是也存在一定的问题,即由于硬件LED数量的限制,此处仅显示部分默认温度的整数部分。为了解决上述只显示整数部分的问题,一般在温度转换程序中为了准确的检测和显示温度中小数点后的数字,程序会将检测到的温度乘以10,然后将其作为三位整数进行数字处理,例如将28.5更改为285,这样的程序使编码变得更加简便,加快了编程的速度。4.1.3 电动机调速电路部分调试在本设计中,使用了一个达林顿驱动器ULN2803来驱动直流发动机,它可以驱动八台发动机。直流电软件将端口设置为P3.1端口以输出不同形式的PWM波。达林顿驱动器U