基于单片机的智能温控风扇设计论文.doc

上传人:牧羊曲112 文档编号:1614876 上传时间:2022-12-11 格式:DOC 页数:33 大小:223.50KB
返回 下载 相关 举报
基于单片机的智能温控风扇设计论文.doc_第1页
第1页 / 共33页
基于单片机的智能温控风扇设计论文.doc_第2页
第2页 / 共33页
基于单片机的智能温控风扇设计论文.doc_第3页
第3页 / 共33页
基于单片机的智能温控风扇设计论文.doc_第4页
第4页 / 共33页
基于单片机的智能温控风扇设计论文.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《基于单片机的智能温控风扇设计论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的智能温控风扇设计论文.doc(33页珍藏版)》请在三一办公上搜索。

1、 学科分类号 0807 本科生毕业论文(设计)题目(中文):基于单片机的智能温控风扇设计 (英文):The Design of Intelligent Temperature Controlled Fan Based on MCU 学生姓名: 刘胜珠 学号: 院别: 电气与信息工程学院 专业: 通信工程 指导教师: 简小明 讲师 起止日期: 2015.10-2016.5 2016年5月16日怀化学院本科毕业论文(设计、创作)诚信声明作者郑重声明:所呈交的本科毕业论文(设计、创作),是在指导老师的指导下,独立进行研究所取得的成果,成果不存在知识产权争议。除文中已经注明引用的内容外,论文(设计、创

2、作)不含任何其他个人或集体已经发表或撰写过的成果。对论文(设计、创作)的研究做出重要贡献的个人和集体均已在文中以明确的方式标明。本声明的法律结果由作者承担。本科毕业论文(设计、创作)作者签名:年 月 日目 录摘 要I关键字IAbstractIKey wordsI1 前言11.1 智能风扇概况11.2 STC89C52单片机简介11.3 课题研究的意义22 设计的任务和要求22.1 设计任务22.2 设计要求23 设计方案的选择和论证23.1 温度传感器部分23.2 控制部分34 系统设计54.1 系统框架设计54.2 控制部分原理54.4.1 DS18B20温度传感器的温度处理方法54.4.2

3、 温度传感器和显示电路组成74.4 电机调速电路74.4.1 电机调速原理84.4.2 电机控制模块设计85 控制器软件设计95.1 主程序95.2 温度传感器模块和显示模块105.3 电机调速和控制子模块12参考文献13致 谢14附录A15 基于单片机的智能温控风扇设计摘 要在日常生活中发现传统风扇的使用有些不方便的地方,比如在很多的地区昼夜温差大,人们睡觉时一般依靠风扇的定时功能,这样可能出现风扇因定时到了而关闭,但温度并没有降低很多,也有可能温度降低了很多但定时没有到,风扇还在转动。为解决这个问题本文简绍了一种智能温控风扇系统,具有温度检测和显示功能,使用STC89C52单片机作为系统对

4、风扇的转速进行控制。 此风扇设计两个档位,由单片机根据DS18B20温度传感器传来的数字信号进行控制,当温度高于上限值时,风扇较快转动;当温度处于上限值与下限之间时,风扇较慢转动;当温度低于下限时,风扇停止转动。关键字 单片机;智能控制;温度传感器TheDesign ofIntelligentTemperatureControlled FanBasedonMCU AbstractTherearesomeinconvenientplacesintheuseoftraditionalfan indailylife, such as many regions of the temperature d

5、ifference between day and night, people generally rely on timing function of fan, the fan may be shut down when the timer goes , but temperature did not reduce a lot of, In order to solve this problem, this paper introduces a fan system controlled by temperature , which has the function of temperatu

6、re detection and display, and control the speed of the fan by using STC89C52 single chip microcomputer as the system.The fan design two stalls, it is controlled by MCU according to temperature sensor DS18B20 digital signal, when the temperature is higher than the upper limit value, fan fast rotation

7、; when the temperature is between upper limit and lower limits, fan slower moving; when the temperature is below the limit, fan stops rotatingKey words MCU; Intelligent control; Temperature sensor1 前言1.1 智能风扇概况虽然当今空调在不断的推广,使用越来越普及,但是电风扇并没有被淘汰,在市场上依然占有一席之地,它有着空调所不具备的优点,比如有些人对空调的使用有些不适应,出现一些所谓的空调病,而风扇

8、的风比较温和,老少皆宜,而且风扇的价格比空调便宜很多,还节约电,使用和安装都非常的简单,这是风扇在市场上一直还有一席之地的主要原因。随着科技的发展,电子产品越来越趋于智能化,智能化产品在人们生活中也越来越受欢迎,因此由微机控制的智能电风扇将深受人们的喜爱。在人们的日常生活中,传统的风扇一般使用机械方式进行控制,功能比较少,一般只有手动调档和定时功能,到了季节交替时节昼夜温差大,白天温度高,电风扇应高转速、产生大风量,使人感到凉爽;到了晚上,气温降低,当人入睡后,应该逐步减小转速,降低风量,以免使人感冒。虽然电风扇都有调节不同档位的功能,但必须要人手动换档,如果人睡着了就无能为力,传统风扇就普遍

9、采用的定时器关闭的做法,而这样也是有些不足,一方面是定时时间长短有限制,一般是一两个小时;另一方面可能在一两个小时后气温依旧没有降低很多,而风扇就关闭了,使人在睡梦中热醒而不得不起床重新打开风扇,如果增加定时器时间,而又非常的麻烦,而且可能多次定时后最后一次定时时间太长,在温度降低以后风扇依旧继续吹风,可能使人感冒; 还有一个很大的不便,就是人们彻夜使用风扇时,晚间入睡以后温度会下降很多,风扇的转速不能自动变小,也可能使人感冒。 为了解决上述的问题,我们设计了这套智能温控风扇系统。使用DS18B20来检测周围环境的温度,将数字信号传给52单片机进行处理,同时使用数码管显示此时的温度,并根据使用

10、者设定的温度自动在相应温度时作出小风、大风、停机动作的智能控制。1.2 STC89C52单片机简介 STC89C52单片机的功能强大,而且功耗很低,成本低,在各种需要控制系统的地方能够灵活运用,片内具有4bytes能够反复擦写的只读存储器和128 bytes的随机存取存储器,还有灵活的8位CPU和可编程flash,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统.STC89C52单片机有如下基本功能功能:具有4K的Flash快速存储器,128B的内部RAM,2个16位定时计数器,32个I/O口线,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电

11、路。此外STC89C52单片机可以降到0Hz的静态逻辑操作,而且能够应用两种软件的省电工作模式。空闲方式时停止CPU运作,却能够允许定时,RAM、计数器,串行通行口和中断系统继续运行。掉电方式时能够保存RAM中的数据,但是振荡器会停止工作而且还会禁止其它所有的部件工作到下一个硬件的复位。1.3 课题研究的意义 在我们的日常生活中,有很多地方昼夜温差大,人们在熟睡时不方便调节风扇的档位大小,这时需要智能温控风扇系统,根据当时的温度自动调节风力大小或关闭,这与传统的风扇相比更人性化而且还节约用电。当然在其他地方也可以广泛应用。2 设计的任务和要求2.1 设计任务设计并制作一个基于单片机的智能温控风

12、扇2.2 设计要求 本设计通过DS18B20对周围环境温度进行数据采集然后传给52单片机进行数据处理,使之形成一个随温度变化而自动做出相应动作的智能系统,这样风扇就能根据温度的变化而相应的自动变化档位,实现“温度高、风力大、温度低、风力弱”的性能。此外,用户通过按键来实现各种功能的控制,设置电风扇停止工作时的温度,只要温度比所设温度低时,电风扇就会自动的关闭,如果温度变化高于这个温度时电风扇就会自动的重新启动。 本设计的重要内容如下: (1)风扇的档位有高低两个,用户可以通过键盘设置温度的上下限值。 (2)当温度比所设温度下限值低时电风扇就会自动关闭。 (3)当温度在所设温度下限和上限之间时电

13、风扇慢速转动。 (4)当温度高于所设温度上限值时电风扇快速转动。3 设计方案的选择和论证3.1温度传感器部分 方案一:用热敏电阻来设计温度传感器部分,首先把由温度变化而引起热敏电阻阻值的变化通过运大器放大、再把这个随温度变化的模拟信号通过AD转换芯片ADC0809变成数字信号供给单片机进行处理。 方案二:用热电偶来设计温度传感器部分,外界温度的变化会引起热电偶内的电流,先用桥式电路进行整流,在用运算放大器放大电流信号,最后通过AD转换电路将模拟信号转变成数字信号传给单片机进行处理。 方案三:用温度传感器DS18B20来设计温度传感器部分,因为传感器DS18B20集成元件把周围环境的温度转变成了

14、数字信息直接送给单片机进行处理就行。 对于方案一而言,虽然热敏电阻的价格比较便宜,制作成本低,可是他对周围环境温度的变化不怎么敏感,而且在温度数据的采集、放大和转换时还会产生失真与误差,此外因为热敏电阻的R-T是非线性的关系,外界温度变化引起的阻值变化本来就存在误差,如果在增加电路来纠正误差,这样不但使电路复杂而且对外界环境的温度变化更加的不敏感。所以放弃此方案。 对于方案二而言,虽然热电偶比方案一中的热敏电阻对温度的变化敏感一些,而且在失真和误差方面也有很大的提高,但热电偶温度检测范围可以从-50摄氏度到1600摄氏度,此范围太广,对本设计不合适,对温度的变化还需更敏感。 对于方案三而言,因

15、为DS18B20是数字式的高集成温度传感器,特点就是集成化高,输出的又是数字信号,使得电路更加的简单,误差也更小,而且因为DS18B20检测温度在原理上与前两种方案有着本质的区别,这让它对温度的分辨力提高了很多。而且温度的数值在器件内直接转换成了数字信号输出,这使得系统程的序设计计更加的简单,此外因为DS18B20使用了先进的单总线技术,这使得单片机的接口变的简单很多,而且有较强的抗干扰能力。关于DS18B20的详细参数参看下面“硬件设计”中的器件介绍。3.2 控制部分方案一:用热电偶或者热敏电阻将外界环境温度的变化转变成电信号的变化,再传给由集成运放构成的比较电路,来判断控制电风扇的档位,使

16、得当环境的温度超过或者低于某值时,风扇会自动的切换到相应的档位。方案二:用单片机作为控制系统,编写相应的程序,使单片机根据输入的温度信号自动做出相应动作来控制电风扇的档位。对于方案一,虽然电压比较电路制作简单,也不要编写相应的程序,但它的控制方式却太过简单,不能够由用户设置上下限温度,因此不能满足不同用户的不同要求。对于方案二,用单片机作为控制核心,可以编写程序通过数码管显示出温度传感器检测的温度,除此之外用户还可以通过键盘自主的设置上下限温度值,这满足了用户的全方位需求。并且通过程序判断温度具有极高的精准度,能精确把握环境温度的微小变化。因此就选方案二。3.3显示部分方案一:使用五位共阳数码

17、管显示温度,动态扫描显示方式。方案二:使用LCD液晶显示屏显示温度对于方案一,此方案成本低廉,显示温度明确醒目,在夜间也能看见,功耗极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。不足的地方是扫描显示方式是使五个LED逐个点亮,因此会有闪烁,但是人眼的视觉暂留时间为20MS,当数码管扫描周期小于这个时间时人眼将感觉不到闪烁,因此可以通过增大扫描频率来消除闪烁感。对于方案二,液晶体显示屏具有显示字符优美,不但能显示数字还能显示字符甚至图形的优点,这是LED数码管无法比拟的。但是液晶显示模块价格昂贵,驱动程序复杂,从简单实用的原则考虑,就采用方案一。3.4调速方式方案一:根据电磁感应

18、原理,将220V的电压通过不同的线圈降至不同的电压,然后控制电风扇电机接到不同电压的线圈上,这样就可以控制电机的转速了,实现自动变档功能。方案二:使用晶闸管组成电风扇的无级调速电路。相对于方案一,因为是用变压器改变电压来调节风速,这使得风速有明显级别跳变,不适合人性化的要求。此外,在变压时会产生能量损耗而发热,使得电力利用效率降低,而且发热还可能引起不安全问题。相对于方案二,通过电位器来控制晶闸管导通角的大小,可以实现从关闭到最大风之间的无级别调速,既可以使风力调节在关闭到最大风之间的任意风力。而且在调速过程中基本上没有电力损耗。因此采用方案二。3.5控制执行部份方案一:使用AD0832数模转

19、换芯片进行控制,通过单片机根据的当前环境温度值输出相应的数字量到数模转换芯,再经由数模转换芯输出模拟信号来控制晶闸管导通角的大小,最后通过无级调速电路来实现温度控制时的自动无级风力调节。方案二:使用继电器来实现,通过单片机来控制继电器接有控制晶闸管导通角的电阻是否接入电路,既根据当前环境温度值在相应的管脚送出的高/低电平,来决定这个继电器导通角的控制电阻是否接入狼人电路。(详见4.2.4)对于方案一,虽然能够实现风扇处于温控状态时能够无级调速,不过D/A数模转换芯片的价格比较高,跟温控状态下的无级调速功能相比性价比并不高。对于方案二,虽然温控状态下风速的调节有明显的跳变,只能够实现强/弱两级风

20、速调速,但是继电器价格很便宜,控制也可靠,而且人们对于无级调速这个功能并不是很需要,所以采用方案二。4 系统设计4.1 系统框架设计键盘输入温度显示单片机系统电机控制模块数字温度传感模块图4.1 系统总体结构框图4.2 控制部分原理传统风扇是用220V的交流电供电,风扇的转速分为多个档位,需要人们手动来调整风扇档位来改变风速,既每次改变风速,都要有人工来操作,这非常的不方便。本文就介绍了一种智能电风扇的设计,用STC89C52单片机作为控制核心,结合温度传感技术,把智能控制技术应用于电风扇智能控制中,先通过单片机处理采集到的温度信号,然后通过可控硅对风扇的电机转速进行调整。这样就不需要人工换档

21、达到智能控制的目的。43 温度测量和显示电路可用LM324A 运算放大器来作为温度传感器,将他设计为比例控制调节器,输出的电压跟热敏电阻阻值成正比,但是这种方法需要经过多次检测后方才可使采样精确,比较烦琐。因此采用更好的DS18B20 数字温度传感器,它能够直接将环境温度的模拟信号转变成数字信号,这使电路变得简单,提高电路的运行效率。4.4.1 DS18B20温度传感器的温度处理方法 DS18B20简介: DS18B20温度传感器是由美国DALLAS半导体公司在DS1820之后研发出的一种更智能温度传感器。它跟传统热敏电阻相比较,能够直接读出周围环境的温度而且可以根据实际的要求通过编程来实现9

22、12位数值读数方式。还可分别在93.75 ms和750 ms内完成9位和12位的数字量,此外,从DS18B20读出的信息或者写入DS18B20的信息只需要一根口线读写就可以了,温度的变换功率来自数据总线,总线本身也能够向所接的DS18B20供电,这样不需要额外电源,所以使用DS18B20可以使系统的结构更加简单,可靠性也提高了很多。它在测量温度的精度、转换的时间、传输的距离、分辨率等方面比DS1820有着很大的提高,这给用户使用带来了更多的方便,效果也更令人满意。 特点如下: (1)它有一个独特的单线接口:DS18B20与微处理器连接时仅需要一条口线可以实现单片机和DS18B20的双向沟通。(

23、2)其他外围组件不需要使用。(3)数据线可用于电源供电,电压范围为5.5伏+ 3伏。(4)温度测量的范围为:-55 +125 。测量温度的分辨率为:0.5 。(5)程序设计可以实现12位数字读出方式。(6)用户可以设置非挥发性报警的上下限值。(7)可以支持多点组网功能,多个DS18B20可以并联到惟一的三线上,可以实现多点测量温度。(8)负压特点,当电源的极性接反时,温度计不会因为发热而被烧毁,但却不能够正常工作。单线技术:该技术通过单根信号线,就可以传输时钟,也能够传输数据,并且是双向传输的。非常适合单主机系统,这样就这可以使主机能控制一个或者多个从机设备,用一个漏极开路或者三态端口连接该数

24、据线,使得设备在不发送数据的时候能够释放该线,而且能让其它设备使用。单线一般要接一个5K的上拉电阻,这当该线空闲的时候,它为高电平状态。主机与从机之间通讯分成三个步骤:1.初始化单线器件。2.识别单线器件。3.单线数据传输。单线协议通过应答脉冲、复位脉冲、写1、写0、读1、读0,这几种信号来实现,这些信号除了应答脉冲外其它的都通过主机发起,而且指令和数据字节都必须是低位在前。DS18B20能够直接将测得的温度值转变成数字量传给给单片机处理,工作时一定要严格的按照单总线器件的工作时序。表4.1 部分温度值与DS18B20输出的数字量对照表温度值/ 数字输出(二进制)数字输出(十六进制)+125

25、0000 0111 1101 000007D0H+85 0000 0101 0101 00000550H+25.625 0000 0001 1001 00010191H+10.125 0000 0000 1010 001000A2H+0.50000 0000 0000 10000008H0 0000 0000 0000 00000000H-0.5 1111 1111 1111 1000FFF8H-10.1251111 1111 0110 1110FF5EH-25.6251111 1111 0110 1111FF6FH-551111 1100 1001 0000FC90H4.4.2 温度传感器和

26、显示电路组成本模块的温度传感器选用更加优秀的DS18B20,选用STC89C52单片机作为控制处理器,再添加温度显示部分作为温度控制输出单元。本系统尽量结构简单,但功能也要完善。温度传感器电路图如图2所示。系统的工作原理:通过DS18B20采集周围环境的温度,将测量传入单片机2.4口温度数据,通过单片机处理显示当前温度,并与用户设定的温度上下限值进行比较,如果设定的高限或高于设定的阈值低,控制电机的转速自动调节。图4.2 DS18B20温度传感器原理图4.4 电机调速电路 电机速度控制是整个控制装置的一个重要方面。通过控制改变三极翻出的导,使输出端电压发生改变,从而使施加在电风扇的输入电压发生

27、改变,以调节风扇的转速,实现各档位风速的无级调速。4.4.1 电机调速原理双向可控硅的导通条件如下:(1)阳-阴极间加正向电压;(2)控制极-阴极间加正向触发电压;(3)阳极电流IA 大于可控硅的最小维持电流IH。电风扇的档位设为高低两档,每个档位的风速有一个限定值。当在额定的电压和功率下以最高速度转动时,要使风扇风叶的最大圆周上的线速度不小于或等于2150m/min。而且线速度可通过下面的公式求得V=Dn103 (4.1)式(4.1)中,V代表风扇扇叶最大圆周上的线速度(m/min),D代表风扇扇叶的最大直径(mm),n代表电风扇的最快转速(r/min)。代入数据可得n51555r/min,

28、取n5=1250 r/min.又因为: (4.2)取n1=875r/min。因此可以得到五个档位的转速值:n1=875r/min,n2=980r/min,n3=1063r/min,n4=1150 r/min,n5=1250r/min又因为负载上的电压有效值为u0=u1 (4.3)式(4.2)中,u1代表输入交流电压的有效值,代表控制角。求解得:(1) 当5=0 时, t=0ms;(2) 当4=23.5时, t=1.70ms;(3) 当3=46.5 时, t=2.58ms;(4) 当2=61.5时, t=3.43ms;(5) 当1=76.5 时, t=4.30ms。上面得出的是控制角度和触发的时

29、间,当检测到过零点时,通过所求解的触发时间延时发脉冲,就可以实现预期转速。4.4.2 电机控制模块设计本模块使用了MOC3041M 过零双向可控硅型光耦,过零检测、集光电隔离和过零触发等功能,防止了输入和输出通道同时控制双向可控硅触发的缺点, 使得输出通道隔离2驱动电路的结构简化。可控硅触发电路原理图见下图3。其中RL电路即作为电机负载,它的工作原理是:单片机先响应用户的参数设置, 使得在I/ O 口输出一个高电平, 再经过反向器反向, 输出一个低电平,这使得光电耦合器导通, 与此同时触发双向可控硅, 使得工作电路导通。在给定的时间内,负载的功率为: (4.4)式(4.3)中: P 表述负载产

30、生的功率( kW), n 表示给定的时间内可控硅导通过正弦波的个数,N 表示给定时间内交流正弦波总数, U表示可控硅在一个电源周期全导通时所对应电压有效值(V), I 表示可控硅在一个电源周期全导通时所对应的电流有效值(A)。由式(4.3) 可得,当U , I , N 为定值时, 只需改变n 值就可以控制功率的输出大小,这就达到调节风扇的转速。图4.3 电机控制原理图5 控制器软件设计本系统的程序选用C语言进行编写,采用模块化的设计方法,整体的程序由主程序和显示,键盘扫描,红外线接收,电机控制等子程序模块组成。5.1 主程序当主程序初始化以后,就开始反复的检测各个模块相关部分的缓冲区的标志,假

31、设缓冲区进行了置位,就说明了相应的数据需要进行处理,随后主程序就调用相应的处理子模块。如下图5.1所示。 程序启动读取键盘子程序运行温度判断子程序初始化温度运行电控制子程序 初始化电机结束读取测温子程序温度赋值处理程序图5.1 主程序的模块流程图5.2 温度传感器模块和显示模块如下图5.2所示,本设计用的是4位共阴极数码管。在硬件连接上,利用MCU的A口控制8个位段(数据),用B口的低四位控制数码管的位选信号。图中,PTA70分别接ha位段,PTB30分别过1K电阻与CS30位选端相接,这样PTB3就控制最左边一个数码管的显示,PTB0则控制最右边一个数码管的显示。接在位选线上的1K电阻是限流

32、电阻,避免电流过大烧坏数码管。图5.2 MCU与4位数码管的连接agdfecbhagdfecbhagdfecbhagdfecbhabfCS0CS1CS2cdeghCS3123456789101112PTB3PTA6PTA2PTA7PTA3PTA41K1K1K1KPTA1PTB2PTB1PTA5PTA0PTB0 如下图5.3所示,单片机控制DS18B20数字温度传感器完成温度转换工作必须经过三个步骤:1.初始化。2.ROM操作指令。3.存储器操作指令。单片机使用的系统频率为12MHz,12M是比较常用的晶,51单片机是12分频的,如果选用12M晶振,如果是单指令周期的语句,刚好是1us,其他语句

33、正好是1us的整数倍。很轻松算出每个语句用了多长时间。开始DS18B20初始化启动DS18B20测温内部判断?调用读子程序显示子程序结束调用相应的控制程序调用相应的键值处理程序调用写子程序异常正常依据DS18B20温度传感器进行初始化时序、读时序和写时序分别可编写3个子程序:初始化子程序、写子程序、读子程序。图5.3 数字温度传感器模块的程序流程图 DS18B20芯片功能命令表如下表5.1。表5.1 DS18B20功能命令表命令说明READ ROM读取激光ROM64位MATCH ROM匹配ROMSKIP ROM跳过ROMSEARCH ROM搜索ROMALARM SEARCH告警搜索WRITE

34、SCRATCHPAD把字节写入暂存器的地址2和3READ SCRATCHPAD读取暂存器和CRC字节COPY SCRATCHPAD把暂存器内容拷贝到非易失性存储器中CONVERT T开始温度转换RECALL E2把非易失性存储器中的值召回暂存器READ POWER SUPPLY读电源供电方式:0为寄生电源,1为外电源5.3 电机调速和控制子模块 本模块使用的是双向可控硅过零触发方式,用单片机来控制双向可控硅是否导通,通过控制每个控制周期内的可控硅导通和关断交流完整的全波信号的数目来调整负载的功率,这样转速就得到了调整。由于INT0信号反映出工频电压过零时刻,因此只需在图外中断0的中断服务程序里

35、实现控制门开启与关闭,并且使用中断服务的次数对控制量n进行计数和判断,每次中断一次,就对n减1,假设n不等于0,维持控制电平使之为“1”,再打开控制门;如果n=0,就让控制电平复位变为“0”,关闭控制门,就使可控硅的过零触发脉冲不能通过。这就能够按照控制处理获得的控制量的要求,完成可控硅的过零控制,这样就达到了按控制量控制的功效,实现速度的可调整。 (1)中断服务程序:当中断服务程序运行时,先要保护现场,INT0中断标志的置位,阻止主程序进行参数的修改,再开始减1计数,同时判断是否关断可控硅,最后INT0中断标志位进行清零,使初始化数据还原,恢复现场,中断返回。(设1秒钟通过波形个数为N=10

36、0) (2)回路控制执行程序:主回路控制执行程序是为了初始化数据存储单元,确定电机的工作参数nmin/nmax,同时将它换算为“有效过零脉冲”的个数;确定中断的优先级、开中断,这样可以保证正弦波的完整性,而工频过零同步中断INT0定为高一级的中断源。中断响应流程图如下图5.4。T0中断EX0中断控制可控硅导通温度大于等于下限值并且小于上限值控制可控硅截止停止T0计时中断返回设置T0参数启动定时中断返回图5.4 电机控制模块中断响应流程图参考文献1 曹巧媛.单片机原理及应用M.北京:电子工业出版社,2002.:2-10.2 王伦.电风扇原理与维修技术M.北京:新时代出版社,1999.:118-1

37、19.3 张毅刚.新编MCS-51单片机应用设计M.哈尔滨工业大学出版社,2006.:10-15.4 梁廷贵、王裕琛.可控硅触发电路语音电路分册M.北京:科学技术文献出版社,2003.5 陈明荧.8051单片机课程设计实训教材M. 北京:清华大学出版社,2003.:85-88.6 徐新艳.单片机测控技术应用实例解析M. 北京:中国电力出版社,2010.:79-82.7 周广兴,张子红.单片机原理及应用教程M.北京: 北京大学出版社,2010.:14-24.8魏小龙 MSP430单片机接口技术及系统设计实例M.北京:北京航空航天大学出版社,2002.: 40-50.9周琛晖,冯少怀.基于DS18

38、820的温度测量系统J.电脑知识与技术,2009.:第10期.10立华、王立柱。C语言程序设计M.北京:人民邮电出版社,2011.:56-70.致 谢 本次设计在简小明老师的耐心指导下,我的毕业设计顺利完工,为大学生活画上了一个完美的句号。首先我想对教导过我的老师们由衷的说声你们辛苦了,感谢你们在这大学四年中对我的教诲,也是由于你们教给我的知识我才能顺利完成本次设计,再次的谢谢你们!”同时我很感谢学校严格要求我们,这使得我也严格遵守学校的安排,能够按时完成本次设计任务。在这个不同寻常的今天,我非常感谢所有帮助过我的老师、同学和朋友们,献上我由衷的祝愿,希望生活中最美好的东西永远和你们相伴!附录

39、A主程序 void main(void) uint ltemp; uchar g,d; /初始化温度 dianji=0; /初始化电机 read_temp(); /读取测温子程序,读取温度数值 delay(1000); /延时 while(1) int1=1; int2=0; dianji=0; ltemp=read_temp(); /温度赋值 delay(2); d=read_ds18b20_date(); /温度的低位 g=read_ds18b20_date(); /温度的高位 ltemp=g; ltemp=8; ltemp=ltemp|d; t=ltemp*0.0625;ltemp=t*

40、10; shi=ltemp/100; /温度十位 ge=(ltemp%100)/10; /温度个位 keyscan(); /读取键盘子程序 delay(2); deal(ltemp/10); /运行温度判断子程序,由温差设置占空比 dianjik(); /运行电机控制子程序 数字温度传感器模块和显示子模块程序:#include /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535#include eeprom52.h/数码管段选定义 0 1 2

41、 3 4 56 7 8 9uchar code smg_du=0x28,0xee,0x42,0x52,0xe5,0xa8,0x41,0xe7,0x20,0xa0, 0x60,0x25,0x39,0x26,0x31,0x71,0xff; /断码/数码管位选定义uchar code smg_we=0xef,0xdf,0xbf,0x7f;uchar dis_smg8 = 0x28,0xee,0x32,0xa2,0xe4,0x92,0x82,0xf8;uchar smg_i = 3; /显示数码管的个位数sbit dq = P24;/18b20 IO口的定义bit flag_lj_en; /按键连加使

42、能bit flag_lj_3_en; /按键连3次连加后使能 加的数就越大了 uchar key_time,key_value; /用做连加的中间变量bit key_500ms ;sbit pwm = P23; uchar f_pwm_l ; /越小越暗uint temperature ; /bit flag_300ms ;uchar menu_1; /菜单设计的变量uint t_high = 300,t_low = 100; /温度上下限报警值 /*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j= smg_i)i = 0;P1 = 0xff; /消隐 P3 = smg_wei; /位选P1 = dis_smgi; /段选 /*把数据保存到单片机内部eepom中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号