基于单片机的电风扇智能调速器的设计毕业设计.doc_第1页
基于单片机的电风扇智能调速器的设计毕业设计.doc_第2页
基于单片机的电风扇智能调速器的设计毕业设计.doc_第3页
基于单片机的电风扇智能调速器的设计毕业设计.doc_第4页
基于单片机的电风扇智能调速器的设计毕业设计.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第章 系统软件设计 学号: 毕业设计说明书 基于单片机的智能风扇调速器的设计 The design of intelligent speed-controlled fan basing on Single Chip Microcomputer 学院 专业 班级 学生 指导教师 设计时间 2013 年 03 月 23 日至 2013 年 06 月 21 日39毕业设计(论文)诚信承诺保证书本人郑重承诺:基于单片机的智能风扇调速器的设计毕业设计(论文)的内容真实、可靠,是本人在马远佳指导教师的指导下,独立进行研究所完成。毕业设计(论文)中引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处,如果存在弄虚作假、抄袭、剽窃的情况,本人愿承担全部责任。 学生签名: 年 月 日专业负责人批准日期 毕 业 设 计 任 务 书 院(系): 专业 班 级: 学生: 学号: 一、毕业设计课题 基于单片机的智能风扇调速器的设计 二、毕业设计工作自 年 03 月 25 日起至 年 06 月 21 日止三、毕业设计进行地点 电子实验室 四、毕业设计的内容要求1选择合适的单片机,搭建硬件平台。 2. 使用数码管进行显示系统预设温度跟环境检测温度。 3.用户可以设定电风扇的最低工作温度,当温度低于该温度时,风扇停止转动。4系统预设温度可以通过两个按键由用户通过设定。 5用protues是设计仿真出风扇控制工作原理电路图。 6用protel设计PCB板并制作实物。 指导教师 接受设计任务开始执行日期 年 月 日 学生签名 摘 要随着社会的发展,人们的生活水平不断提高,对家用电器的要求也随之提高。电风扇作为家用电器的一种,在功能方面日益求精,并朝着节能、多功能方向发展。现在大多数电风扇只有三四个档位调速,夏夜温度下降后人们容易熟睡而着凉;温度升高了,电风扇又不能自动地改变转速。智能风扇调速器可自动根据周围环境温度变化来改变风扇转速。本设计控制系统采用89C52单片机作为控制核心,DS18B20作为温度传感器,通过达林顿反向驱动器ULN2803驱动风扇电机。实现根据系统设定温度与环境温度比较来改变风扇的转速的目的,同时用LED八段数码管显示系统设定的温度与环境温度。系统设定温度通过两个独立按键来实现。关键词: 单片机 DS18B20 温度控制 风扇 AbstractWith the development of the society, peoples living standards have been improved continuously; the need of household appliances also increases. Fan as a kind of household appliances, it has refined its functionality increasingly, and will develop the energy-saving, multi-direction functions. Now most fans only has three or four stalls speed. It is easy for people to fall asleep at low temperature in summer; but with the elevated temperature, fan cannot automatically change the speed. However, the intelligent fan can change the fan speed automatically according to the ambient temperature changes. The design control system uses Single Chip Microcomputer 89C52 as the control center, DS18B20 as a temperature sensor, uses the ULN2803 Darlington to drive fan motor reversely. Changing the fan speed through the comparison of the system setting temperature and ambient temperature. Meanwhile using the eight-digital-tube of LED to display the system setting temperature and ambient temperature. The setting temperature is achieved by two separate keys.Key words: Single Chip Microcomputer DS18B20 temperature-control fan目录摘 要IAbstractII绪论1第1章 系统设计21.1课题方案21.1.1 控制芯片的选择21.1.2 控制方案选择21.1.3 系统总体设计31.2 元件的选择31.2.1 温度传感器的选择31.2.2 温度显示器的选择4本章小结4第2章 硬件电路设计52.1 本系统各器件简介52.1.1 AT89C52单片机简介52.1.2 DS18B20简介72.1.3 共阴极八段数码管简介82.1.4 达林顿反向驱动器ULN2803简介92.2 各模块电路设计102.2.1 电源模块设计102.2.2 系统复位电路设计112.2.3 温度采集与显示电路设计112.2.4 独立式按键电路设计122.2.5 电风扇调速电路设计132.3 PCB板的制作过程142.3.1 DXP 2004简介142.3.2 电路原理图设计过程152.3.3 电路PCB设计的步骤162.3.4 电路板的制作过程16本章小结17第三章 系统软件设计183.1 系统软件设计总体流程183.2 用Keil uvision 编写程序193.2.1 Keil uvision 简介193.2.2 Keil C51编程步骤如下:193.3 用protues进行软件仿真203.3.1 protues 简介203.3.2 protues仿真步骤20本章小结23第四章系统调试244.1 软件调试244.1.1 按键显示部分的调试244.1.2 传感器DS18B20温度采集部分调试254.1.3 电动机调速电路部分调试254.2 硬件调试264.2.1 调试的方法和步骤264.2.2查找故障的一般方法284.3 系统功能284.3.1 系统实现的功能284.3.2 系统功能分析29结 论30致谢31参考文献32附录一:电路总图33附录二:程序代码34绪论众所周知,电风扇具有悠久的历史,其发展经历了机械风扇、电风扇的阶段。从发明开始到现在已经有一百多年的时间,是炎热夏天必备的驱热物品之一。随着高端家电空调等的发明应用,电风扇并没有走下坡路,风扇被广泛的应用到人们生活的各个方面,如夏天人们用的散热风扇,电脑上的CPU风扇,以及工业生产中大型机械中的散热风扇等。在现代生活中,风扇作为一种驱热电器,人们对其要求越来越严格。现在的电风扇大多纸偶手动调速,功能比较单一。人们常常在离开时忘记了关闭风扇,不仅浪费电而且有可能引起火灾,长时间启动时容易发热损坏风扇。而且晚上前后半夜温差比较大,而风扇的转速比较高,风速不会随着温度变化,这样对于一些体质比较弱的老人跟小孩来说,容易着凉。这时使电风扇根据温度变化自动调节转速就显得非常重要了。而且随着温度控制技术的进步,为了实现降低风扇运转时的噪音以及节约电能等要求,温度控制风扇的设计成为未来发展的一个趋势。在现阶段,温控风扇虽然没有被广泛的应用,但是温控风扇的设计已经有了一定的成效,能够使风扇随周围温度的升降进行自动无极调速。温度升高到一定的程度,风扇能够自动启动,温度降低,风扇能够自动减速乃至停止启动,实现温度智能化控制。随着单片机广泛地应用到生活及生产的各个领域,很多单片机作为控制核心的温度控制系统也应运而生。比如基于单片机的温控风扇系统,它能够使电风扇根据周围温度的升降而自动改变风扇电机的转速变化,实现智能化控制风扇的目的。温控风扇的设计方便了现代社会人们的生活,也为生产带来了诸多便利,同时还能节约电能。本设计是由ATMEL公司的8051系列单片机中的AT89C52作为温控风扇的核心控制器,采用DS18B20作为温度采集元件,并通过一个达林顿反向驱动器ULN2803驱动风扇的转动。同时将系统预设的温度跟检测到的环境温度进行比较,使电风扇自动的启停电机及调节电机转速的变化,并将系统预设温度跟环境温度显示到LED数码管上。第1章 系统软件第1章 系统设计1.1课题方案1.1.1 控制芯片的选择在温控风扇系统中核心控制芯片采用AT89C52单片机,通过DS18B20温度传感器进行测温,AT89C52单片机进行数据处理,通过引脚输出控制信号控制电风扇电机的转动。AT89C52单片机是高性能CMOS 8位单片机,具有价格便宜,工作电压低,性能高等特点。能够满足温控电风扇的设计要求。1.1.2 控制方案选择方案一:采用DAC0832数模转换芯片来控制,数模转换芯片DAC0832将AT89C52单片机输出的数字信号转换成模拟信号,然后由模拟信号控制晶闸管的导通角,实现转速的自动调节方式。方案二:采用AT89C52单片机软件编程实现PWM(脉冲宽度调制)调速的方法。PWM是英文Pulse Width Modulation的缩写,它是按一定的规律改变脉冲序列的脉冲宽度,以调节输出量和波形的一种调节方式,在PWM驱动控制的调节系统中,最常用的是矩形波PWM信号,在控制时需要调节PWM波得到占空比。占空比是指高电平持续时间在一个周期时间内的百分比。在控制电机的转速时,占空比越大,转速就越快,若全为高电平,占空比为100%时,转速达到最大 。通过改变占空比改变电机的速度,占空比越大,电机转速越快。用单片机I/O口输出PWM信号时,有如下三种方法:(1) 利用软件延时。当高电平延时时间到时,对I/O口电平取反,使其变成低电平,然后再延时一定时间;当低电平延时时间到时,再对该I/O口电平取反,如此循环即可得到PWM信号。在本设计中应用了此方法。(2) 利用定时器。控制方法与(1)相同,只是在该方法中利用单片机的定时器来定时进行高低电平的转变,而不是用软件延时。应用此方法时编程相对复杂。(3) 利用单片机自带的PWM控制器。在STC12系列单片机中自身带有PWM控制器,但本系统所用到得AT89系列单片机无此功能。对于方案一,该方案能够实现对直流风扇电机的无级调速,速度变化灵敏,但是D/A转换芯片的价格较高,与其温控状态下无级调速功能相比性价比不高。 对于方案二,相对于其他用硬件或者软硬件相结合的方法实现对电机进行调速而言,采用PWM 用纯软件的方法来实现调速过程,具有更大的灵活性,并可大大降低成本,能够充分发挥单片机的功能,对于简单速度控制系统的实现提供了一种有效的途径。综合考虑选用方案二。1.1.3 系统总体设计以AT89C52为核心控制器,利用DS18B20温度传感器来检测环境温度并将输出的数字温度信号给AT89C52单片机进行处理,同时在LED数码管上显示系统预设温度跟检测的环境的温度值。其中环境温度值可精确到小数点后一位,系统预设温度以整数形式显示。同时采用PWM脉宽调制技术来改变直流风扇的电机转速。预设温度可通过两个按键来改变,每次可以增加或减少1 。本设计结构框图如图1.1所示:DS18B20数码管显示复位AT89C52反向驱动器ULN2803独立按键电机晶振图1.1系统总体结构框图1.2 元件的选择 1.2.1 温度传感器的选择目前市场上常用的温度传感器有PT100,温敏电阻,DS18B20等等。方案一:温度传感器核心元件选择热敏电阻,热敏电阻随温度变化产生微弱的电压变化信号。经过放大及模数转换芯片AD0809将得到的微弱电压信号转化成数字信号,单片机对信号进行处理后输出控制电风扇。方案二:核心元件采用DS18B20温度传感器进行测量温度,然后输入到单片机,单片机经过数字处理后输出显示及控制电机。方案一,热敏电阻具有低价格,容易购买等优势,不过热敏电阻对温度的细微变化检测不到,容易在信号处理的过程中产生误差,甚至会有失真的情况发生。并且虽然可以通过电路来修正热敏电阻的R-T关系的非线性关系,但这无疑使得温控系统更加复杂。方案二,DS18B20作为温度传感器核心元件,DS18B20传感器采用优秀的单总线技术,抗外界干扰能力强,外部接口简单,并且测得的温度值会在传感器内部电路中转化成数字信号输出,直接送出数字信号到单片机进行处理。很大程度上减少了由于外接信号处理过程中的电路误差因素,温度误差小,因此DS18B20适合用于温控电风扇的设计。本次设计采用DS18B20,DS18B20是DALLAS公司生产的一线式数字温度传感器。1.2.2 温度显示器的选择方案一:应用动态扫描的方式,采用LED共阴极数码管显示温度。方案二:采用LCD液晶显示屏显示温度。对于方案一,该方案成本很低,显示温度明确醒目,即使在黑暗空间也能清楚看见,功耗极低,同时温度显示程序的编写也相对简单,因而这种显示方式得到了广泛应用。采用LED数码管进行显示温度,成本低,显示温度一目了然。并且相比于用LCD液晶显示屏显示温度,LED数码管的功耗低很多,系统软件设计也简单明白。LED数码管显示方式得到广泛地应用。但不足的地方是它采用动态扫描的显示方式,各个LED数码管是逐个点亮的,因此会产生闪烁,但由于人眼的视觉暂留时间为20MS,故当数码管扫描周期小于这个时间时人眼不会感觉到闪烁,因此只要描频率设置得当即可采用该方案。对于方案二,液晶显示屏具有显示字符优美,其不仅能显示数字还能显示字符甚至图形,这是LED数码管无法比拟的。但是液晶显示模块的元件价格昂贵,显示驱动程序的编写也较复杂,从简单实用的原则考虑,本系统采用方案一。本章小结本章讨论了本次课题设计的课题方案,其中包括了芯片选择,控制方案选择,而且还介绍了系统的总体方案,及需要用到的主要元器件。第2章 硬件电路设计第2章 硬件电路设计2.1 本系统各器件简介 2.1.1 AT89C52单片机简介AT89C52 是一种带4K字节闪存可编程可擦除只读存储器(FPEROM)256B片内RAM的低电压,高性能CMOS8 位微处理器。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。由于将多功能8 位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C52 是一种高效微控制器,AT89C51单片机可灵活应用于各种控制领域,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C52单片机管脚如图2.1所示。2.1 AT89C52单片机引脚各管脚功能: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 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1 口作为第八位地接收。P2 口:P2 口为一个内部上拉电阻的8 位双向I/O 口,P2 口缓冲器可接收,输出4 个TTL 门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是8 个带内部上拉电阻的双向I/O 口,可接收输出4 个TTL 门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为AT89C51 的一些特殊功能口。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(外部数据存储器读选通)。P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE 脉冲。如想禁止ALE 的输出可在SFR8EH 地址上置0。此时,ALE 只有在执行MOVX,MOVC 指令是ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1 时,/EA 将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序存储器。在FLASH 编程期间,此引脚也用于施加12V 编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.1.2 DS18B20简介DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线,在实际应用中取得了良好的测温效果。(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)可用数据线供电,电压范围:+3.0 +5.5 V。(3)测温范围:-55 +125 。固有测温分辨率为0.5 。(4)用户可自设定非易失性的报警上下限值。(5)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。DS18B20 内部结构如图2.2所示,主要由4 部分组成:64 位ROM、温度传感器、非挥发的温度报警触发器TH 和TL、配置寄存器。图2.2 DS18B20 内部结构图2.3 DS18B20外形及管脚 DS18B20测温原理如图2.4所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。斜率累加器减法计数器1比较计数器预置温度寄存器减到0减法计数器2 减到0低温度系数振荡器高温度系数振荡器预置停止增加图2.4 DS18B20测温原理图2.1.3 共阴极八段数码管简介本系统使用五个八段LED数码管作为温度显示,公共阴极。共阴极八段数码管是将八段发光二极管封装在一起且二极管的阴极连在一起,公共端接低电平,其它八个端口高电平点亮相应的二极管,低电平相反。表2.1 7段LED的段选码表显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03fHC0H87fH80H106HF9H96fH90H25bHA4HA77H88H34fHB0HB7fH83H466H99HC39HC6H56dH92HD3fHA1H67dH82HE79H86H707HF8HF71H8EH一个共阴极数码管接至单片机的电路,要想显示数字“7”须a、b、c这3个显示段发光 (即这3个字段为高电平)只要在P0口输入00000111(07H)即可。这里07H即为数字7的段选码。字形与段选码的关系见表2.1.3所示。2.1.4 达林顿反向驱动器ULN2803简介ULN2803是一种达林顿管阵列驱动芯片,其内部有8路NPN达林顿晶体管,连接在阵列非常适合逻辑接口电平数字电路(例如TTL,CMOS或PMOS上/ NMOS)和较高的电流/电压,如电灯,电磁阀,继电器,打印锤或其他类似的负载,广泛的使用范围:计算机,工业和消费应用。所有设备功能由集电极输出和钳位二极管瞬态抑制。最大工作电压50V,工作电流可达到500mA。可以单路输入,单路输出。当负载较大时采用单路方式不足以满足要求时也可以采取多路并行输出驱动。ULN2803设计与标准TTL系列相兼容。在本系统驱动电路中,选用达林顿反向驱动器ULN2803来驱动风扇直流电机。ULN2803在使用时接口简单,操作方便,可为电机提供较大的驱动电流,它实际上是一个集成芯片,单块芯片可同时驱动8个电机。每个电机由单片机的一个I/O口控制,单片机I/O口输出的为5V的TTL信号。2.2 各模块电路设计2.2.1 电源模块设计USB 接口有很多种形状,对于供电电路来说,使用普通 A 型 USB接口或者 B 型 USB 接口就可以了,本文主要介绍的是 A 型 USB 供电电路的设计。A 型和 B 型 USB 接口外观形状及引脚电气特性如下图 2.5 所示。图 2.5 USB 接口外形及引脚电气特性图 2.5 USB 接口外形及引脚电气特性A 型和 B 型的 USB 接口都有四根线,其中两根一组,一组用于提供电源,另一组用来传送数据,分别定义为 VCC、GND、D+、D-。USB 供电电路的电路图如图 2.6 所示,USB 供电的电路简单易懂,与自制的变压器产生的 5V 供电系统相比,USB 供电电压为 5V,更加的安全,并且制作过程要比变压器 5V 供电系统容易的多。USB 母口用于和电脑的 USB 相连接,提供电源,使用时可以用一条公-公的 USB 延长线相连接。10uF 电容起到了滤波的作用。图 2.6 供电电路图2.2.2 系统复位电路设计在单片机应用系统中,除单片机本身需要复位以外,外部扩展I/O接口电路也需要复位,因此需要一个包括上电和按钮复位在内的系统同步复位电路。单片机上的XTAL1和XTAL2用来外接石英晶体和微调电容,即用来连接单片机片内OSC的定时反馈回路。本设计中开关复位与晶振电路如图2.7所示,当按下按键开关S1时,系统复位一次。其中电容C1、C2为20pF,C3为10uF,电阻R2、R3为10k,晶振为12MHz。图2.7系统复位电路2.2.3 温度采集与显示电路设计系统工作原理如下:DS18B20数字温度传感器采集现场温度,将测量到的数据送入AT89C52单片机的P1.7口,经过单片机处理后显示当前温度值,并与设定温度值的上下限值作比较,若高于设定上限值或低于设定下限值则控制电机转速进行自动调整。设计制作中选用六位一体共阴极数码管作为显示模块,它和单片机硬件的接口如图2.2.2所示。其中前3位数码管DS1、DS2、DS3用于显示温度传感器实时检测采集到的温度,可精确到0.1摄氏度,显示范围为099.9摄氏度;后2位数码管DS5、DS6用于显示系统设置的初值温度,只能显示整数的温度值,显示范围为099摄氏度。5位数码管的段选a、b、c、d、e、f、g、dp线分别与单片机的P0.0P0.7口连接,其中P0口需接一10K的上拉电阻,以使单片机的P0口能够输出高低电平。6位一体数码管的位选W1W6分别与单片机的P2.0P2.5口相连接,只要P2.0P2.5中任一位中输出低电平,则选中与该位相连的数码管。电路如图2.8所示。图2.8 温度采集与显示电路2.2.4 独立式按键电路设计独立式按键其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键的设计如图2.9所示。机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。抖动时间的长短与开关的机械特性有关,一般为510 ms。键抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。本设计中按键包括2个独立按键S2和S3,一端分别与单片机的P1.3和P1.4口相连,另一端接地,当按下任一键时,P1口读取低电平有效。系统上电后,进入键盘扫描子程序,以查询的方式确定各按键,完成温度初值的设定。其中按键S1为加按键,每按下一次,系统对最初设定值加一,按键S2为减按键,每按下一次,系统对初设定值进行减一计算。图2.9 按键电路图2.2.5 电风扇调速电路设计电机调速是整个控制装置中的一个相当重要的方面。本设计中先由单片机的I/O输出PWM脉冲信号,通过ULN2803达林顿反向驱动器驱动12V直流无刷风扇电机以及实现风扇电机风速的无极调速。键盘控制设置温度,通过软件向单片机输入相应控制指令,由单片机通过P1.7口输出与转速相应的PWM脉冲,经过ULN2803驱动风扇直流电机控制电路,实现电机转速与启停的自动控制。当环境温度升高时,直流电机的转速会相应按照设定的等级有所提高;当环境温度下降时,电机的转速会相应的下降;当环境温度低于设置温度时,电机停止转动,而环境温度又高于预设温度时,电机重新启动。电路如图2.10所示,风扇电机的一端接电源,另一端接ULN2803的OUT7引脚,ULN2803的IN7引脚与单片机的P3.1引脚相连,通过控制单片机的P3.1引脚输出PWM信号,由此控制风扇直流电机的速度与启停。图2.10 电机调速电路系统选用的风扇电机为5V直流无刷电机,单达林顿反向驱动器ULN2803输入TTL信号为5V或CMOS信号为615V时,输出的最大电压为50V,最大电流为500mA,工作温度范围为070。本系统中单片机I/O口输出的TTL信号为5V,因此此风扇电机可以用ULN2803来驱动。2.3 PCB板的制作过程2.3.1 DXP 2004简介ProtelDXP2004拓展了Protel软件的原设计领域 ,Protel DXP功能更加完备、风格更加成熟,并且界面更加灵活,尤其在仿真和PLD电路设计方面有了重大改进,Protel 旧版具有的功能它都具有。Protel是目前国内最流行的通用EDA软件,它将电路原理图设计、PCB板图设计、电路仿真和PLD设计等多个实用工具组合起来构成EDA工作平台,是第1个将EDA软件设计成基于Windows的普及型产品。 与Protel 99SE软件相比,Protel DXP功能更加完备、风格更加成熟,并且界面更加灵活,尤其在仿真和PLD电路设计方面有了重大改进。摆脱了Protel前期版本基于PCB设计的产品定位,显露出一个普及型全线EDA产品崭新的面貌。2.3.2 电路原理图设计过程电路原理图的设计是整个电路设计的基础,因此电路原理图要设计好,以免影响后面的设计工作。电路原理图设计最基本的要求是正确性,其次是布局合理,最后在是正确性和布局合理的前提下力求美观。系统电路原理图设计过程如下:(1)新建工程项目。新建一个PCB工程项目,PCB设计中的文件都包含在该项目下。 (2)新建原理图文件。在进人SCH 设计系统之前,首先要构思好原理图,即必须知道所设计的项目需要哪些电路来完成,然后用 Protel DXP 来画出电路原理图。 (3)设置工作环境。根据实际电路的复杂程度来设置图纸的大小。在电路设计的整个过程中,图纸的大小都可以不断地调整,设置合适的图纸大小是完成原理图设计的第一步。 (4)放置元件。从组件库中选取组件,布置到图纸的合适位置,并对元件的名称、封装进行定义和设定,根据组件之间的走线等联系对元件在工作平面上的位置进行调整和修改使得原理图美观而且易懂。 (5)原理图布线。根据实际电路的需要,利用 SCH 提供的各种工具、指令进行布线,将工作平面上的器件用具有电气意义的导线、符号连接起来,构成一幅完整的电路原理图。 (6)原理图电气检查。当完成原理图布线后,需要设置项目选项来编译当前项目,利用 Protel DXP 提供的错误检查报告修改原理图。 (7)编译和调整。如果原理图已通过电气检查,可以生成网表,完成原理图的设计了。对于一般电路设计而言,尤其是较大的项目,通常需要对电路的多次修改才能够通过电气检查。(8)生成网络表及文件。完成上面的步骤以后,可以看到一张完整的电路原理图了,但是要完成电路板的设计,就需要生成一个网络表文件。网络表是电路板和电路原理图之间的重要纽带。Protel DXP 提供了利用各种报表工具生成的报表(如网络表、组件清单等),同时可以对设计好的原理图和各种报表进行存盘和输出打印,为印刷板电路的设计做好准备 。2.3.3 电路PCB设计的步骤(1)创建PCB文件。PCB文件的创建有两种方法,一种是采用向导创建。在创建文件的过程中,向导会提示用户进行PCB板子大小、层数等相关参数的设置。另外一种是直接新建PCB文件,采用默认设置或手动设置电路板的相关参数。(2)设置PCB设计环境。PCB设计环境的设置包括PCB层的说明及颜色设置、布线板层的管理、PCB设计规则的设置。其中PCB设计规则的设置包括Electrical(电气规则)、Routing(布线规则)、SMT(表面贴装元件规则)等。(3)设置工作环境。根据实际电路的复杂程度来设置图纸的大小。在电路设计的整个过程中,图纸的大小都可以不断地调整,设置合适的图纸大小是完成原理图设计的第一步。 (4)导入原理图信息。首先,将项目中的原理图信息发送到目标PCB,在原理图编辑器选择【Design】/【 Import Changes FromzdqPCB_Project2】。接着,点击Execute Changes将改变发送到PCB。完成后,状态变为完成(Done)。最后,点击Close,目标PCB打开,元件也在板子上。(5)放置元件及修改封装。根据设计的需要合理的选择各个封装元件的大小。(6)布线。布线包括自动布线和手工布线。(7)打印PCB图及输出文件。点击【File】/【Page Setup】,弹出 PCB Print Properties 对话框,设置纸张、纸的纵横打印、打印比例、打印图的位置、颜色等。在PCB Print Properties 对话框点击Advanced,可设置打印输出层,由于打印单面板图,留下Bottom Layer 、Keep-Out Layer 、Multi-Layer即可。2.3.4 电路板的制作过程(1)打印。主要是把PCB图通过打印机打印在硫酸纸上。(2)曝光。通过曝光机,把图纸曝光在感光电路板上。一般曝光时间为10-15分钟。(3)显像。使用专业显像剂显像。(4)腐蚀。使用三氯化铁液体把板上不要的铜腐蚀掉。(5)钻孔。(6)去保护膜。使用工业酒精把板上的保护膜洗掉。(7)焊接。对照PCB图,把元件焊接上电路板上。PCB板电路图如图2.11所示。图2.11 PCB电路图本章小结本章首先简述了AT89C52单片机、DS18B20温度传感器、数码管及达林顿反向驱动器ULN2803。接着最主要的是对本次课题的硬件设计有详细的分析,系统整体的硬件分为AT89C52核心模块,电源模块,温度采集与显示模块,按键模块和电风扇调速电路模块等五个模块。而且介绍了硬件的制作的流程。第3章 系统软件设计第三章 系统软件设计3.1 系统软件设计总体流程程序设计部分主要包括主程序、DS18B20初始化函数、DS18B20温度转换函数、温度读取函数、键盘扫描函数、数码管显示函数、温度处理函数以及风扇电机控制函数。DS18B20初始化函数完成对DS18B20的初始化;DS18B20温度转换函数完成对环境温度的实时采集;温度读取函数完成主机对温度传感器数据的读取及数据换算,键盘扫描函数则根据需要完成初值的加减设定;温度处理函数对采集到的温度进行分析出理,为电机转速的变化提供条件;风扇电机控制函数则根据温度的数值完成对电机转速及启停的控制。系统软件设计总体流程调用键盘扫描处理函数如图3.1所示:开始调用数码管显示函数系统初始化与设定温度对比及处理调用DS18B20初始化函数调用风扇电机控制函数调用温度转换命令调用温度读取结束 图3.1. 系统软件设计总体流程图3.2 用Keil uvision 编写程序3.2.1 Keil uvision 简介本设计的电风扇控制电路使用Keil uvision集成开发环境对程序代码进行编程、调试和仿真。 Keil uVision是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,它还能嵌入汇编,可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uvision IDE可为它们提供单一而灵活的开发环境。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。3.2.2 Keil C51编程步骤如下:(1)建立一个新工程。单击Project菜单,在弹出的菜单中选择new project;(2)然后选择保存路径,修改工程文件名等;(3)根据使用的单片机选择单片机的型号,点击确定;(4)新建文件,将新建文件添加到工程中,编写程序;(5)点击“Built Target”选项,最后开始调试。(6)单击“project”菜单,在下拉菜单中选择“options for target”,勾选“create hex file”选项,是程序编译后产生代码,供下载到AT89C52单片机中使用。(7)程序下载:下载是指把用户的应用程序经过编译后生产的HEX文件下载到单片机程序存储器中的过程。下载后用户的应用程序将长期保存在程序存储器中,系统掉电后程序也不会丢失。本设计程序编译界面如图3.2图3.2 程序编译界面 3.3 用protues进行软件仿真3.3.1 protues 简介Protues软件是英国Labcenter electronics公司出版的EDA 工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机 及外围器件。它是目前最好的仿真单片机 及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机 爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件 ),从原理图布图、代码调试到单片机 与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM 、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil 和MATLAB等多种编译。3.3.2 protues仿真步骤(1)启动Proteus软件并建立一工程,然后根据原理图调出相应的原件,再根据要求改变各原件的属性并把各个原件按原理图连接起来。(2)双击单片机,将用Keil C51编译好的程序加载但AT89C52单片机中。(3)电机左下角的开始按钮,进入protues仿真。本设计的protues仿真如图3.3图3.3 智能风扇调速器仿真图点击开始按钮,系统仿真开始,把温度传感器DS18B20温度设置为29摄氏度,用键盘S2调节系统预设的温度为20摄氏度。点击开始按钮,系统开始仿真,待一段时间稳定后,观察到此时风扇直流电机的转速为+23.5r/s,如图3.4所示。图3.4 仿真效果图一把温度传感器DS18B20温度设置为29摄氏度,用键盘S2调节系统预设的温度为20摄氏度。点击开始按钮,系统开始仿真,待一段时间稳定后,观察到此时风扇直流电机的转速为+32r/s,如图3.5所示。图3.5 仿真效果图二在上一步仿真的基础上(温度传感器DS18B20温度设置为33.0摄氏度,系统预设的温度为22摄氏度),用键盘S2调节系统预设温度至33摄氏度,此时可知系统预设温度等于温度传感器检测到的温度,观察到直流风扇电机的转速逐渐变慢,最后转速变为0,符合系统要实现的功能,如图3.6所示。图3.6 仿真效果图三通过以上仿真可以看出,直流风扇电机在系统设定温度一定的情况下,其转速随着环境温度(温度传感器检测到的温度)的增加而增大。当环境温度低于系统预设的温度时,风扇自动停止运转,实现了系统所设计的功能。当然,在此没有实现风扇直流电机的无级调速,本系统实现的是电机在随环境温度变化的四个等级的速度变化,环境温度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论