《895191568智能(单片机)电风扇的设计论文.doc》由会员分享,可在线阅读,更多相关《895191568智能(单片机)电风扇的设计论文.doc(49页珍藏版)》请在三一办公上搜索。
1、摘要本设计主要介绍了一种智能电风扇的设计方案。该系统以单片机为核心,应用Motorola的电场传感器MC33794和加速度MNA1260D,为风扇提供了多方位的保护,也为用户提供了更智能化的管理。本设计采用的温度智能控制,使风扇可以感知环境的温度,以调节风扇的转速,达到更好的工作效果。用户可以选择这种智能调速的方式,也可以选择手动设定方式来控制转速。当选择手动设定方式时,该功能不发挥作用。智能照明功能,在晚间当,用户接近风扇时候,风扇能够探测到人体的接近,从而启动微光照明,方便用户操作并避免用户和风扇或其他物体发生不必要的碰撞。而定时工作功能可以让用户自己定制风扇工作时间的长短,以提供更人性化
2、的服务。液晶显示功能使用液晶屏显示当前室温度,风扇的转速,风扇的工作模式,当前时间,风扇工作时间等参数,美观大方。关键词:智能,电风扇,电场传感器,加速度,接近检测ABSTRACTThis design mainly introduced one kind of intelligent electric fan design proposal. This system take the monolithic integrated circuit as a core, applies Motorola electric field sensor MC33794 and acceleration
3、MNA1260D, has provided the multi- positions protection for the ventilator, also has provided a more intellectualized management for the user.This design uses the temperature intelligence control, enables the ventilator to be possible the sensation environment temperature, by adjusts the ventilator t
4、he rotational speed, achieves the better work effect. The user may choose this kind of intelligent velocity modulation the way, also may choose the manual hypothesis way to control the rotational speed. When chooses the manual hypothesis way, this function does not play the role. The intelligent ill
5、umination function, works as in the evening, the user approaches ventilator time, the ventilator can survey to human body approaching, thus the start glimmer illumination, the convenient user operates and avoids the user and the ventilator or other objects has the nonessential collision. But fixed t
6、ime works the function to be possible to let user have custom-made the ventilator operating time operating time the length, by provides the personal service. The liquid crystal display function use liquid crystal screen demonstrates the current room temperature, the ventilator rotational speed, the
7、ventilator working pattern, current time, parameter and so on ventilator operating time operating time, elegant appearance.Key word: intelligent, electric fan, electric field sensor, acceleration目录摘要IABSTRACTII1 绪言1.1 课题背景1.2 课题研究的目的和意义2 系统设计方案的研究2.1 系统的控制特点与性能要求2.2 系统概述3 硬件设计3.1 Motorola单片机MC68HC90
8、8AP64简介3.2MC33794控制模块3.3 倾倒检测电路(MMA1260D)3.4 串口模拟通信电路3.5 定时器电路3.6 红外收/发电路3.7 电机控制电路3.8 温度探测电路3.8.1 关于传感器3.8.2温度传感器DS18B204软件设计4.1综述4.1.1硬件层:4.1.2硬件驱动层:4.1.3软件驱动层4.1.4应用层:4.2软件总体流程描述4.3软件子模块4.3.1 MC33794软件模块4.3.2 NMA1260D模块4.3.3电机控制模块4.3.4人机接口4.3.5 红外接收模块5 总结与展望致谢参 考 文 献附 录1 绪言本章主要阐述了智能电风扇的研究背景,现状,发展
9、方向,明确的指出了制作智能电风扇所用到的元器件,以及各个元器件的功能描述。1.1 课题背景电风扇在我国,是80年代开始兴起的一种小型的家用电器,刚开始它的功能单一,而且耗电量大。随着技术的不断更新,它的功能更加强大,更加趋于人性化。 作为一种老式的家电,电风扇具有价格便宜,摆放方便,体积轻巧等特点。由于大部分家庭消费水平的限制,电风作为扇作为一个成熟的家电行业的一员,尤其在中小城市,以及乡村将来一段时间内仍然会占有市场大部分份额。面临庞大的市场需要的同时,也要提高电风扇的市场竞争力。使之在技术含量上有所提高,应使风扇不仅功能多样,操作简便,而且更加安全可靠。本设计采用了单片机作为该智能电风扇系
10、统的核心部分。在国际市场上,单片机产品的类型很多。其中Intel公司的产品比较领先和占有较大销售份额。在我国Intel公司MCS-48系列,MCS-51系列,MCS-96系列的各种机型用得最多,占主流地位。随着大规模集成电路技术的演进,单片机的性能仍在快速提高。其生产工艺经历了PMOS,NMOS,HMOS,CMOS等各个阶段,正朝CHMOS(高速型CMOS)工艺的方向发展并继续提高集成度;增大RAM,ROM容量;增多功能模块;提高速度;降低功耗。单片机的特点:单片机芯片的集成度很高,它将微型计算机的主要不见都集成在一块芯片上,具有下列特点:1.体积小,重量轻,价格便宜,耗电少。2.根据工控环境
11、要求设计,且许多功能部件集成在芯片内部,其信号通道受外界影响小,故可靠性高,抗干扰性能优于采用一般的CPU。3.控制功能强,运行速度快。其结构组成与指令系统都着重满足工控要求。有极丰富的条件分支转移指令,有很强的位处理功能和I/O口逻辑操作功能.4.片内存储器的容量不可能很大;引脚也嫌少,I/O引脚常不够用,且兼第二功能以至第三功能。但存储器和I/O接口都易于扩展。人类社会已经进入信息时代,人民的社会活动主要依靠对信息资源的开发及获取,传输与处理。传感器处于研究对象与测试系统的借口位置,即检测与控制系统之首。因此,传感器成为感知,获取与检测信息的窗口,一切科学研究与自动化生产过程要获取的信息,
12、都要通过 获取并通过它转换为容易传输与处理的电信号。所以传感器的作用与地位就特别重要了。若将计算机比喻为人的大脑,那么传感器就可以比喻为人的感觉器官了。可以设想,没有功能正常而完美的感觉器官,不能迅速而准确的采集与转换欲获得的外界信息,纵有再好的大脑也无法发挥其应有的作用。科学技术越发达,自动化程度越高,对传感器的依赖性就越大。所以,20世纪80年代以来,世界各国都将传感器技术列为重点发展的高技术,备受重视。1.2 课题研究的目的和意义面临庞大的市场需要,需要提高电风扇的市场竞争力。使之在技术含量上有所提高,应使风扇不仅功能多样,操作简便,而且更加安全可靠。为此,在将要走出大学校门,撰写毕业论
13、文之计,我选择了智能电风扇作为我的毕业设计的研究课题。大学学习期间,分别学习了单片微机原理及其应用,传感器检测及应用技术等课程,对单片机有一定的了解,特别是MCS-51系列的单片机的特点及其应用非常熟悉;而对于传感器的一些应用也略知一二。所以,在设计智能电风扇的时候,给电风扇赋予了更多人性化的设计,如安全保护,倾倒保护,智能照明等功能,使电风扇更加人性化,相信其丰富的功能,人性化的设计将大大提高电风扇的市场竞争力。而且最主要的是通过智能的控制使得科技的应用深入生活中,让广大的人民能享受到科技带来的方便.2 系统设计方案的研究 2.1 系统的控制特点与性能要求本设计主要目的是使普通的电风扇的功能
14、更加强大,使操作简单化,智能化,主要实现以下几个部分的功能:1.温度控制功能:电风扇可以感知环境温度,以调节风扇 的转速,达到更好的工作效果。用户可以选择这种智能的调速方式,也可以选择手动设定方式来控制转速。当选择手动设定方式时,该功能不发挥作用。2.智能照明功能:在晚间,当用户接近风扇时,风扇能够探测到人体的接近,从而启动微光照明,方便用户操作并避免用户和风扇或其他物体 发生不必要的碰撞。3.定时工作功能:该定时功能可以让自己制定风扇工作时间的长短,以提供更人性化的服务。2.2 系统概述智能电风扇主要由MCU,接近检测,倾倒检测,温度检测 人机接口等主要部分组成:1.MCU使用Motorol
15、a的8位单片机MC68HC908AP64。2.接近检测模块使用Motorola的电场传感器MC33794,利用电场成像技术实现对人体的检测。3.温度检测模块使用DS18B20,主要用来监测室温和电机温度.4.人机接口包括键盘模块和LCD显示模块,实现电风扇与用户的信息交互.其系统框图如图所示:图2.1 智能电风扇系统框图3 硬件设计本设计对智能电风扇的控制,主要采用的是Motorola的8位单片机MC68HC908AP64和温度传感器,加速度传感器。3.1 Motorola单片机MC68HC908AP64简介 Motorola单片机MC68HC908AP64在电风扇开发领域,很多业界采用的都是
16、专用的风扇控制芯片,虽然它实现简单,但是跟我们所要设计的智能电风扇相比,其计算能力就相差甚远了。在认真分析了功能需求和成本限制的基础上,我们决定选用Motorola单片机MC68HC908AP64作为本系统的核心控制部分,它具有以下特点:1. 较高的8MHZ总线频率。2. 丰富的片内资源:2K片内RAM,62K片内FLASH。3. 2路16位,双通道的时钟接口模块。4. 串行通信接口模块,用于跟电场传感器MC33794进行串行通信。5. 串行外设接口,外接一74HC164串转并转换芯片,与液晶屏连接。6. 8通道10位的A/D数模转换器。7. 8位键盘唤醒口:用于跟小键盘连接,对系统进行设置,
17、控制电扇。 图3.1 AP64 核心电路3.2 MC33794控制模块MC33794控制模块的控制芯片选用的是MC68HC908QY4,在保证了对MC33794很好的控制的同时,有效的控制了成本。1.由于MC33794可以为外部电路提供5V的电压,所以整个控制模块只要一个12V的电压电源即可。2.MC33794是通过对外发射低频的纯正的正弦波来实现电场成像的连接在R-OSC引脚上调整电阻可以对正弦波的频率进行调整,以达到最优。3.控制芯片MC68HC908QY4通过串口与主控模块通信,采用双通道RS232电平转换芯片,通过PTA0引脚来实现数据的串口模拟收发。有关电场感应器件MC33794Mo
18、torola公司提供可产生及检测低水平电场和功率并支持微控制器(MCU)的集成电路(IC)电场成像器件IC(MC33794)。设计工程师在需要非接触探测和三维(3D)电场成像的嵌入式系统中使用MC33794,可减少系统所需器件和成本。这款IC支持微控制器及9个简单的电极。这些电极均可独立使用,提供在微弱电场中物体的尺寸和位置等信息。以前为了实现相同功能需要使用许多分立器件,MC33794是为了替代这些分立器件而设计的。这款IC的应用目标包括电器、机器、汽车安全系统和使用人体感应触摸板输入作为用户接口的任何产品或者系统.MC33794的工作原理如图3.2.1所示。正弦波生成器与外接负载电阻配合产
19、生120kHz的纯正弦波,当电极的电场发生变化时,相应的电容值发生改变,测得的电压与1/C成比例,即电容增加检测的电压减小。图3.2.1中的检波器和低通滤波器均在MC33794片内,使用时只需接10nF电容。图3.2.1 MC33794的内部结构MC33794的内部结构如图3.2.2所示,其特点如下:1.最多可接9个电极,2个参考电极;2.用屏蔽同轴电缆可远距离驱动电极;3.+5V调节器为外部电路供电4.ISO-9141物理层接口5.灯驱动输出6.看门狗和电源复位定时器7.测量时临界内部接点比例缩放和选择8.由外部电阻产生无谐波的正弦波9.封装形式:44HSOP, 54SOICW图3.2.2
20、MC33794结构图 MC33794主要管脚的功能如下:1.E1-E9是连接电极的管脚,用屏蔽的同轴电缆连接的电极是有方向的,每次选择一个电极,测量它的电容,其它电极由内部开关自动接地。2.REF_A、REF_B是参考值接入管脚,通常将已知电容值的电容接在这个管脚上,但电容值不同,用A、B、C、D选通REF_A或REF_B。当REF_A或REF_B不被选通时,它们不接地。3.A、B、C、D用于选择要电极,参见下表。4.ISO_OUT管脚给MCU发送符合ISO-9141的5.0V逻辑值。5.ISO_IN管脚从MCU接收符合ISO-9141通讯接口的5.0V逻辑值。6.ISO-9141管脚与ISO
21、-9141总线相接,它提供驱动,并检测总线上的信号,为MCU提供总线电平到逻辑电平的转换。7.LP_CAP是低通滤波电容管脚,通常接10nF的电容。8.LEVEL管脚用于测量选定电极的电压,它与MCU的模拟信号输入管脚相连,连接在LP_CAP管脚的电容实现校正信号的滤波。9.VDD_MON是VDD监测管脚,VDD经内部电阻分压使供给MCU的电压值在ADC的转换范围内, 它与MCU的模拟信号输入管脚相连。10.PWR_MON是VPWR监测管脚,VPWR经内部电阻分压使供给MCU的电压值在ADC的转换范围内,它与MCU的模拟信号输入管脚相连。11.PWR_MON是VPWR监测管脚,VPWR经内部电
22、阻分压使供给MCU的电压值在ADC的转换范围内,它与MCU的模拟信号输入管脚相连。12.LAMP_MON是LAMP_SENSE监测管脚,LAMP_SENSE经内部电阻分压使供给MCU的电压值在ADC的转换范围内,它与MCU的模拟信号输入管脚相连。13.LAMP_SENSE管脚电压被降低后送给LAMP_MON,它通常与LAMP_OUT管脚相连。14.LAMP_CTRL是灯控制管脚,当管脚是高电平时,灯是亮的。LAMP_GND管脚提供灯电流的地,电流流进LAMP_OUT,从此管脚流出。 表3.1 电极的选择管脚信号DCBASource(内部)0000E10001E20010E30011E40100
23、E50101E60110E70111E81000E91001REF_A1010REF_B1011内部OSC1100接22K电阻后内部OSC 1101内部地1110保留1111 电极的选择(续)15.LAMP_OUT是灯驱动管脚,它为指示灯提供吸电流,灯的一端接电源正极,灯的另一端接此管脚,它能限制电流以便保护IC,同时在灯的开和关的瞬间抑制浪涌。16.WD_IN是看门狗输入管脚。17.IS_SHIELD是屏蔽驱动禁止管脚,用于禁止屏蔽信号,目的是判断屏蔽信号是否工作正常,或者同轴屏蔽线是否断开。当禁止了屏蔽信号,且屏蔽信号工作不正常,那么被测电容不会改变。18.SHIELD是屏蔽驱动管脚,它与
24、电缆的屏蔽端相连,用于消除电缆电容。19.R_OSC是振荡器电阻管脚,电阻的一端接此管脚,另一端接地。电阻值决定MC33794的振荡器频率,最好让它工作在120kHz。20.CLK管脚输出方波,方波频率与内部振荡器频率相同,方波的边沿与正弦波的峰值一致。21.VPWR正电源输入管脚,它接12V电源,它能将此电压调节成5V(VCC)和8.5V(VDD),为MCU和其它外部器件供电。 MC33794与MCU的典型连接如图3.2.3所示。值得一提的是,我们只需提供12V电源电压,MCU使用的5V电源由MC33794提供,MCU有位AD即可。MC33794的电容测量范围是pF-100pF,当使用位的A
25、DC时,分别率是0.4pF, 当使用10位的ADC时,分别率是0.1pF。从图可以看出,MC33794使用非常方便,只需外界少量的电阻电容即可工作。同时MC33794对MCU的要求也不高,只需8位ADC和通用接口。典型的测量方法是:首先测量已知电容值(REF_A和REF_B)对应的电压,电容值通常选择被测电极的最小值和最大值,一般在10pF-100pF之间。在图和图的应用实例中,REF_A和REF_B分别接10pF和56pF。然后测量电极的电压。用这种方法可以消除温度和感应时间变化产生的影响。MC68HC908GR8片内有6个8位的ADC、个SCI和最多21个I/O接口。用SCI与PC机进行串
26、行通信,可以将测量结果传送给PC机,做进一步的分析和处理。此应用实例中没有接指示灯和ISO9141,如果要使用指示灯和ISO9141,可以连接LSP2-LSP4。若要与其他MCU进行SPI通信可以连接JP1。如果要使用MC33794的CLK和WD_IN,可以连接JP2。如图3.2.3所示。图3.2.3 MC33794与微控制器连接MC33794控制模块的控制芯片选用的是MC68HC908QY4,在保证了对MC33794很好控制的同时,有效的控制了成本。1.MC33794可以为外部电路提供5V的电压,所以整个控制模块只要一个12V的电源电压即可。2.MC33794是通过对外发射 低频的纯正的正弦
27、波来实现电场成像的,连接在R-OSC引脚上调整电阻可以对正弦波的频率进行调整 ,以达最优。3.控制芯片MC68HC908QY4通过串口与主控制模块通信,采用双通道RS232电平转换芯片,通过PTAO引脚来单线实现数据的串口模拟收发。3.3 倾倒检测电路(MMA1260D)本电路采用Motorola 的加速度传感器芯片MMA1260D,为了测量加速度传感器芯片的输出电压,我们将Volt 引脚与AP64 的A/D 口连接。管脚之间接一个电阻和电容,起滤波作用,以减小时钟噪声。电源与地之间的接一个0.01uF 的电容用于去耦。同时尽可能缩短了MMA1260D 与AP64 的距离。我们将MMA1260
28、D 竖直的固定在风扇机身,当风扇正常工作时,MMA1260D 测得的加速度为0,而当机身倾倒时,MMA1260D 测得的加速度将增大,由于加速度与输出电压成正比,则AP64 通过A/D 端口得到的电压值也会发生变化(根据倾倒方向的不同,测得的加速度值也会不同),然后将对应的电压值转换成相应的角度值,进行判断,即实现了倾倒检测。如图3.3所示。图3.3 MMA1260D 连接电路3.4 串口模拟通信电路主控模块和MC33794模块的通信采用的是串口通信。在AP64端,可以通过SCI模块轻松实现稳定的串口数据的收发,而MC33794控制模块端则不存在对应的SCI模块,这样就需要一定的硬件电路来保证
29、对串口通信的正确模拟,同时也为软件上实现高低电平的发送提供了基础。串口发送,发送“1”时,将PTA0设置为输入,PTA0引脚为+5V,与Vcc等电势,则RS232发送输出端T1为逻辑“1”;发送“0”时,将PTA0设置为输出,RS232发送端的电压值应该为1/(1+10)V,即0.45V。串口接收,接收“1”时,RS232的接收输出端引脚为逻辑“1”,则PTA0输入为逻辑“1”;接收“0”时,RS232的接收输出端引脚为逻辑“0”,则PTA0输入为逻辑“0”。MC33794控制模块串口通信电路如下图3.4所示: 图3.4 MC33794控制模块串口通信电路3.5 定时器电路采用MAXIM公司D
30、S1302低功耗实时时钟新片为本系统提供时间,它可以对年,月,日,周,时,分,秒进行计时,且具有闰年补偿等多种功能。DS1302可以双电源供电,使用电池作为第二供电电源,保证了在系统不供电的情况下长时间维持时钟的正常工作。DS1302的电路图如下图3.5所示: 图3.5 DS1302的电路图3.6 红外收/发电路使用TC9148 编码芯片将按键信号调制在38KHz 的载波信号上通过三极管放大后发射出去。如图3.6.1所示。图3.6.1 红外信号发射电路红外接收电路采取红外接收器件HS0038,通过系统的输入捕捉接收红外遥控信号。如图3.6.2所示。图3.6.2 红外信号接收电路3.7 电机控制
31、电路由CPU来控制信号经光电耦合器TLP521-4耦合后,接可控硅MAC-97的门极,以控制电机的运转。如图3.7所示。 3.7 电机控制电路3.8 温度探测电路3.8.1 关于传感器 一. 传感器的组成传感器由敏感元件和转换元件组成。但是由于传感器输出信号一般都很微弱,需要有信号调节与转换电路将其放大或变换为容易传输,处理,记录和显示的形式。随着半导体器件与集成技术在传感器中的应用,传感器的信号调节与转换可以安装在传感器的壳体里或与敏感元件一起集成在同一芯片上。因此,信号调节与转换电路以及所需电源都应作为传感器的组成部分。常见的信号调节与转换电路有放大器,电桥,震荡器,电荷放大器等,他们分别
32、与响应的传感器相配合。二. 传感器的作用和地位 人类社会已经进入信息时代,人民的社会活动主要依靠对信息资源的开发及获取,传输与处理。传感器处于研究对象与测试系统的借口位置,即检测与控制系统之首。因此,传感器成为感知,获取与检测信息的窗口,一切科学研究与自动化生产过程要获取的信息,都要通过 获取并通过它转换为容易传输与处理的电信号。所以传感器的作用与地位就特别重要了。 若将计算机比喻为人的大脑,那么传感器就可以比喻为人的感觉器官了。可以设想,没有功能正常而完美的感觉器官,不能迅速而准确的采集与转换欲获得的外界信息,纵有再好的大脑也无法发挥其应有的作用。科学技术越发达,自动化程度越高,对传感器的依
33、赖性就越大。所以,20世纪80年代以来,世界各国都将传感器技术列为重点发展的高技术,备受重视。3.8.2温度传感器DS18B20单线数字温度传感器DS18B20采用一线总线接口,大大节省了系统的I/O资源。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形式;温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较
34、少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。DS18B20的内部结构DS18B20内部结构如图3.8.1所示,主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图3.5.2所示,DQ为数字信号输入输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地,见图3.8.2)。ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8X5X41)。ROM的作
35、用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 64位ROM和一线端口存储和控制逻辑高速暂存器8位CRC生成器供电方式选择配置寄存器低温触发器TL高温触发器TH温度传感器INTERNALVDDVDD 图3.9.1 DS18B20的内部结构 图3.8.2 DS18B20的管脚排列 DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。例如125的数字输出为07D0H,25.0625的数字输出为0191H,25.0625的数字输出为FF6FH,55的数字输出为FC90H。
36、 23 22 21 20 21 22 23 24 温度值低字节MSBLSB S S S S S 22 25 24 温度值高字节高低温报警触发器TH和TL、配置寄存器均由一个字节的EEPROM组成,使用一个存储器功能命令可对TH、TL或配置寄存器写入。其中配置寄存器的格式如下: 0 R1 R0 1 1 1 1 1 MSBLSB R1、R0决定温度转换的精度位数:R1R0=“00”,9位精度,最大转换时间为93.75ms;R1R0=“01”,10位精度,最大转换时间为187.5ms;R1R0=“10”,11位精度,最大转换时间为375ms;R1R0=“11”,12位精度,最大转换时间为750ms;
37、未编程时默认为12位精度。高速暂存器是一个9字节的存储器。开始两个字节包含被测温度的数字量信息;第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。DS18B20的工作时序DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序。DS18B20与单片机的典型接口设计图3.8.3以MCS51系列单片机为例,画出了DS18B20与微处理器的典型连接。图3.8.3(a)中DS18B20采用寄生电源方式,其VD
38、D和GND端均接地,图3.8.3(b)中DS18B20采用外接电源方式,其VDD端用3V5.5V电源供电。假设单片机系统所用的晶振频率为12MHz,根据DS18B20的初始化时序、写时序和读时序,分别编写了3个子程序:INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写均由最低位开始。(a)寄生电源工作方式(b)外接电源工作方式图3.8.3 DS18B20与微处理器的连接图主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。假设接一单元,再按照温度值字节的表
39、示格式及其符号位,经过简单的变换即可得到实际。 温度探测电路单线数字温度传感器DS18B20 采用一线总线接口,大大节省了系统的I/O 资源。如图3.8.4所示。图3.8.4 温度传感器DS18B20 电路4软件设计4.1综述系统是在MC-51的基础上实现的,但为了能够后的更好的可移植性,我们将系统设计分层结构。如图所示4.1所示: 应用层软件驱动层硬件驱动层 硬件层 图4.1 软件层次结构4.1.1硬件层:硬件层是指具体的CPU以及所使用的各种外设,这是所有设计的物理基础。一般情况下,硬件层是直接通过各个寄存器和物理地址来和其他部分数据和信息交互的。每一寄存器和地址的意义与作用都是相对固定的
40、。4.1.2硬件驱动层:对于我们的系统来说,只有硬件驱动层才是与真实硬件打交道的部分。我们利用硬件驱动层来写有效读写营建曾提供的各种内外设和外外设。对于一个系统而言,由于存在干扰等因素,某一个时刻的采样值并不一定就是我们所要的数据,甚至有可能与真实数据之间有相当大的差异。硬件驱动层就是负责从硬件层获得数据并进行数据有效判断的一个软件层。对于不同数据,硬件驱动层可能使用平均,加窗等不同的方法进行处理。而对于软件驱动层产生的终态来说,硬件驱动层可根据实际情况,依照不同的要求转化为对硬件层的处理时序。通过这一层的处理,我们一方面获得了所要的数据,另一反面,也将上一层软件层同真实物理层相隔离。4.1.
41、3软件驱动层硬件驱动层负责读写各种外设,但是这些数据并不一定能够直接使用,绝大部分都是需要进行一定的转化。软件驱动层就是负责这个事物的。也就是说软件驱动层完成的是将硬件驱动层获得的数据转化为实际应用所需要的数据和将应用层生成的控制逻辑转化为实际硬件的驱动数据的工作。从某种意义上说,已经将应用层同实际硬件的使用相隔离。达到最低的耦合性。4.1.4应用层:根据软件驱动层的数据结束,在一定的运行逻辑支配下对软件驱动层进行操纵,以达到对实际硬件的控制。4.2软件总体流程描述在主程序初始化之后,开始反复检测各模块相关部分的缓冲区标志,如果缓冲区标志置位,说明有相应的数据需要处理,然后主程序调用响应的处理
42、子模块,对于电场传感器,当检测到有异常情况的时候,实时的通过串口中断之程序将数据传给主程序,同时置电场缓冲区标志。然后主程序在反复检测的过程中,检测到电场缓冲区标志被置位,将调用对应的电场处理 子模块进行响应的处理。 对于加速度传感器和温度传感器,我们采用定时采集数据的方法,在定时中断子程序中,采集相应的数据,并进行判断,如果是异常数据,则将数据保存在系统缓冲区,同时置对应的缓冲区标志。然后主程序将会调用相应的子程序进行处理。软件主流程图见下页图4.2所示。当有按键按下的时候,采用键盘中断子程序扫描相应的键盘码,然后发给主程序,置对应的键盘按键标志位。在主程序中,当有键盘按下的时候,调用对应的
43、键盘处理子程序。 4.2 软件主流程图4.3软件子模块4.3.1 MC33794软件模块程序在正确初始化之后,对于每一个电极,要先获得电极的基准A/D值,用来作为后续的比较标准。在计算电极基准A/D值的时候,没有直接应用原始的单个A/D转换值,而是在等待A/D转换稳定之后,每隔一个A/D转换周期采样一次A/D值,计算到5次采样的平均值,作为基准A/D值。然后,定时的对当前的A/D值进行采样,并与先前得到的基准A/D值进行比较,如果超出阈值(阈值可以根据需求和经验值自己定),则置对应的标志位为告警状态,否则置标志位正常的状态。 由于循环检测过场中,涉及到电极的切换,每次电极切换后,A/D转换会在
44、一小段时间内产生扰动,导致读取的A/D值异常。所以,我们在每次转换电极后,延时一段时间T,T的选择既要保证实时性,又要保证正确性,具体数据根据程序的多次运行实验获得。MC33794采样模块软件程序流程图见图4.3.1所示。开始系统初始化电场传感器以及其他传感器的初始化液晶屏显示系统信息电场数据缓冲标志置位DS18B20数据缓冲标志置位键盘按键缓冲区置位是否定时电场处理模块DS18B20处理模块键盘扫描处理子模块定时处理子模块Y 图4.3.1 软件主流程图对当前的A/D值进行采样,并与先前得到的基准A/D值进行比较,如果超出阈值(阈值可以根据需求和经验值自己定),则置对应的标志位为告警状态,否则
45、置标志位正常的状态。 开始系统相关初始化计算基准A/D值选择电极延时等待,避免采样初期的A/D值扰动读取当前A/D值Res=1当前A/D值Res阈值发送正常标志发送异常标志 图 4.3.2 MC33794采样模块软件程序流程图 由于循环检测过场中,涉及到电极的切换,每次电极切换后,A/D转换会在一小段时间内产生扰动,导致读取的A/D值异常。所以,我们在每次转换电极后,延时一段时间T,T的选择既要保证实时性,又要保证正确性,具体数据根据程序的多次运行实验获得。MC33794采样模块软件程序流程图见图4.3.2在主控模块端,如果MC33794数据缓冲区标志置位,表明有异常情况发生,主程序会进行响应的处理。另外,MC33794的控制模块与主