基于单片机的电风扇控制系统的设计毕业论文(设计)word格式.doc

上传人:文库蛋蛋多 文档编号:4022540 上传时间:2023-04-01 格式:DOC 页数:30 大小:703KB
返回 下载 相关 举报
基于单片机的电风扇控制系统的设计毕业论文(设计)word格式.doc_第1页
第1页 / 共30页
基于单片机的电风扇控制系统的设计毕业论文(设计)word格式.doc_第2页
第2页 / 共30页
基于单片机的电风扇控制系统的设计毕业论文(设计)word格式.doc_第3页
第3页 / 共30页
基于单片机的电风扇控制系统的设计毕业论文(设计)word格式.doc_第4页
第4页 / 共30页
基于单片机的电风扇控制系统的设计毕业论文(设计)word格式.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《基于单片机的电风扇控制系统的设计毕业论文(设计)word格式.doc》由会员分享,可在线阅读,更多相关《基于单片机的电风扇控制系统的设计毕业论文(设计)word格式.doc(30页珍藏版)》请在三一办公上搜索。

1、目 录摘要11 绪论21.1 课题背景21.2 课题研究的目的和意义31.3 系统的设计要求及内容32 电风扇系统的方案论证32.1 保护电路的选择32.2 控制核心的选择42.3 显示电路的选择53 系统的主要硬件电路设计53.1 总体硬件设计53.2 过热检测模块的设计83.3 电机调速与控制模块设计93.4 显示与控制模块设计103.5 键盘模块设计114 系统程序设计及仿真124.1 主程序流程图设计124.2 定时器T0中断程序流程图设计134.3 A/D转换测量子程序流程图设计144.4 系统仿真结果144.5 源程序15结论15致谢15参考文献15附录A:单片机电风扇控制系统的设

2、计原理图16附录B:仿真结果图17附录C:参考程序22基于单片机的电风扇控制系统的设计电子信息科学与技术专业学生:指导老师:摘要:本论文设计了一个单片机电风扇控制系统。系统采用MCS-52单片机为控制核心,设计了按键电路、显示电路和过热保护电路,并采用C语言进行编程、调试和仿真,实现了电风扇的几项基本功能:电机的正反转功能,0-990秒的定时功能,以及自然、正常、睡眠三种风类的选择功能。经过多次的测试与电路的调整、系统的各项功能均能正常实现。关键词:MCS-52,电风扇,保护电路,定时Design of the electric fan controller system based on M

3、CUElectronics and Information Science and Technology Candidate: CAO QiwenAdvisor: PENG JianyingAbstract:In this paper,it designed an electric fan controller system based on MCU.The system used MCS-52 microcontroller as the core of control, designed the key circuit, display circuit and overheating pr

4、otection circuit which used C language to complete the programm, test and simulation,it has realized a few basic function of electric fan : reversing function, fixed time of 0-990 seconds and three kinds of wind selecting which are natural,normal and sleepy.After many tests and improvement, all of t

5、he functions can work natually.Keywords:MCU,Electric fan,Protection circuit,Fixed time1 绪论 1.1 课题背景电风扇在我国,是80年代开始兴起的一种小型的家用电器,刚开始它的功能单一,而且耗电量大,随着技术的不断更新,它的功能更加强大,更加趋于人性化。作为一种老式的家电,电风扇具有价格便宜,摆放方便,体积轻巧等特点,由于大部分家庭消费水平的限制,电风扇作为一个成熟家电行业的一员,尤其是在中小城市,以及乡村将来一段时间内依然占有市场大部分份额。面临庞大的市场需要的同时,也要提高电风扇的市场竞争力。使之在技术含

6、量上有所提高,使风速不仅功能多样,操作简便,而且更加安全可靠。本设计采用了单片机作为该电风扇系统的控制核心。在国际市场上,单片机产品的类型很多。其中Intel公司的产品比较领先占有较大销售份额。在我国Intel公司的MCS-48系列,MCS-51系列,MCS-96系列的各种机型用得最多,占主流地位。随着大规模集成电路技术的演进,单片机的性能在快速提高。其生产工艺经历了MOS,NMOS,HMOS,CMOS等各个阶段,正朝着CHMOS(高速型CMOS)工艺的方向发展并继续提高集成度;增大RAM,ROM容量,增多功能模,提高速度,降低功耗。人类社会已经进入信息时代,人民的社会活动主要依靠对信息资源的

7、开发及获取,传输与处理。传感器处于研究对象与测试系统的接口位置,即检测与控制系统之首。因此,传感器成为感知,获取与检测信息的窗口,一切科学研究与自动化生产过程要获取的信息,都要通过获取并通过它转换为容易传输与处理的电信号。所以传感器的作用与地位就特别重要了。若将计算机比喻为人的大脑,那么传感器就可以比喻为人的感觉器官了。可以设想,没有功能正常而完美的感觉器官,不能迅速而准确的采集与转换欲获得的外界信息,纵有再好的大脑也无法发挥其应有的作用。科学越发达,自动化程度越高,对传感器的依赖性就越大。所以,20世纪80年代以来,世界各国都将传感器技术列为重点发展的高技术,备受重视。1.2 课题研究的目的

8、和意义 面临庞大的市场需要,需要提高电风扇的市场竞争力。使之在技术含量上有所提高,应使风速不仅功能多样,操作简便,而且更加安全可靠,为此,在将要走出大学校门,撰写毕业论文之计,我选择电风扇控制系统设计作为我的毕业设计研究课题。大学期间,分别学习了单片机原理及其应用,传感器检测及应用技术等课程,对单片机的一些应用也略知一二。所以在设计课题的时候,给电风扇赋予了人性化的设计,如过热保护功能。相信其人性化的设计将大大提高电风扇的市场竞争力。而且最主要的是通过传感器的控制使得科技的应用深入生活中,让广大人民能享受到科技带来的方便。1.3 系统的设计要求及内容本设计以MCS-52单片机为核心,通过按键扫

9、描电路和显示电路建立一个控制系统,使电风扇人为的变换档位,能够满足人们的需求。另外,通过过热保护电路可以很好的保护电机,当电机发热时,电路报警并且电机停转,当电机温度恢复正常时,电机又正常工作。 本设计主要内容如下: 1、用4位数码管实时显示电风扇的工作状态,最高位显示风类:“自然风”显示“1”、“正常风”显示“2”、“睡眠风”显示“3”。后3位显示定时时间:动态倒计时显示剩余的定时时间,无定时显示“000”。 2、设计“自然风”,“正常风”和“睡眠风”三个风类键用于设置风类;设计一个“定时”键,用于定时时间长短设置;设计一个“摇头”键用于控制电机摇头。 在整个定时状态下,电路具有允许用户随时

10、自行选择使用“自然风”状态,也可选择使用“常风”和“睡眠风”状态。设计过热检测与保护电路,若电风扇电机过热,则电机停止转动,电机冷却后电机又恢复转动。2 电风扇系统的方案论证2.1 保护电路的选择 保护电路可由以下几种方案可供选择:方案一:选用热敏电阻作为感测温度的核心元件,通过运算放大器放大于是温度变化引起热敏电阻的变化,进而导致输出微弱的电压变化信号,再用A/D转换芯ADC0809将模拟信号转化为数字信号输入单片机处理。方案二:采用热电偶作为感测温度的核心元件,配合桥式电路,运算放大电路和A/D转换电路,将电机温度变化信号送入单片机处理。方案三:选用ADC0809作为过热保护电路的核心部件

11、,假设先设定一个标准电压值,通过0-5V模拟电压输入进行模数转换,如果数据超过标准值则单片机对电机进行相应操作,使电机启停。对于方案一,采用热敏电阻有价格便宜、元件易购的优点,但热敏电阻对温度的细微变化不敏感,在信号采集、放大、转换过程还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其本身电阻对温度的变化存在较大的误差,虽然可以通过一定的电路给以纠正,将使电路复杂稳定性降低,故该方案不适合本系统。 对于方案二,采用热电偶和桥式测量电路相对于热敏电阻和其对温度的敏感性和器件的非线性误差都有较大的提高,其测量范围也非常高,从-50摄氏度到1600摄氏度均可测量,但是依然存在电路复杂,对过

12、热检测达不到本系统要求的标准,故不采用此方案。对于方案三,取代了传感器检测电路,大大降低了外接放大转换等电路的误差因素,通过运用电压值来模拟电机温度值,使得其分辨率很高,可以满足系统要求,故采用方案三。2.2 控制核心的选择 方案一:采用电压比较电路作为控制部件。温度传感器采用热敏电阻或热电偶等,温度信号转为电信号并放大,集成运放组成的比较电路判决控制风扇的转速。当高于或低于某值时将风扇切换到相应档位。 方案二:采用单片机作为控制核心,以软件编程的方式进行风速判断,并在端口输出控制信号。对于方案一,采用电压比较电路具有电路简单、易于实现,以及无需编写软件程序的特点,但控制方式过于单一,不能自由

13、设置上下限动作及定时时间,无法满足不同用户以及不同环境下的要求,故不采用此方案。对于方案二,以单片机作为控制器,通过编写程序不但能将传感器检测到的模拟温度值通过A/D转换传给单片机进行处理,而且用户能通过键盘接口,自由设置上下限定时时间,满足全方位的需求,并且通过检测电路判断电机温度是否过高,能精确把握电机温度的微小变化。故本系统采用方案二。2.3 显示电路的选择方案一:采用液晶显示屏LCD显示电机状态。方案二:采用八位共阴数码管显示电机状态,动态扫描显示方式。对于方案一,液晶显示屏具有显示字符优美,不但能显示数字还能显示字符甚至图形的优点,这是LED数码管无法比拟的,但是液晶显示模块价格昂贵

14、,驱动程序复杂,因为一个字符由68或88点阵组成,既要找到和显示屏上某几个位置对应的显示RAM的8字节,还要使每字节的不同位有的为“1”,有的为“0”,为“1”点亮,为“0”的不亮。从硬件电路复杂性原则考虑,故不采用。对于方案二,该方案成本低廉,显示温度明确醒目,在夜间也能看见,功耗极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应用。不足的地方是扫描方式是循环使四个LED依次点亮,因此会有闪烁,但是人眼的视觉暂留时间为20M,当数码管扫描周期小于这个时间时人眼看不到闪烁,故采用本方案。3 系统的主要硬件电路设计3.1 总体硬件设计本系统由五个模块组成,分别是输入模块、显示模块、电机控

15、制模块、过热保护模块以及单片机控制系统。其中单片机控制系统是核心,由AT89C52、晶振和复位电路组成。它通过处理输入的各种数据信息来对其它模块发出指令,进行相应的操作。输入模块由5个按键组成,分别控制电机的风速、正反转和定时时间。显示模块由8位共阴数码管组成,显示定时时间和风速。过热保护模块由ADC0809和外围电路组成,通过设定电压初始值使电机超值停转并且相应二极管发光报警。电机控制模块由L298和其它的元器件组成,它主要是放大输入信号的倍数,用来驱动电机。系统总体设计框图如图3.1所示:档位及定时显示电机控制模块按键输入单片机系统过热检测模块图3.1 系统原理框图对于单片机中央处理系统的

16、方案设计,根据要求,我们可以选择AT89C52单片机作为中央处理器,作为整个控制系统的核心,AT89C52内部包含了定时器,程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其它存储器和定时器件、方便,整个系统结构紧凑,抗干扰能力强,性价比高,是比较适合的方案。3.1.1 AT89C52单片机的性能及应用单片机是早期Single Chip Microcomputer的直译,它反映了早期单片机的形态和本质。然后,按照面向对象,突出控制功能,在片内集成了许多外围电路及外设接口,突破了传统意义上的计算机结构,发展成microcontroller的体系结构,目前国外已普遍称之为微

17、控制器MCU(Microcontroller Unit)。鉴于它完全作嵌入应用,故又称为嵌入式微控制器(Embedded Microcontroller)1。3.1.2 单片机的主要特征由于AT89C52单片机的设计时间有限其精度不是很高,它的测温范围在0100之间,可以直接应用在对温度精度要求不高的各种现场。单片机多通道温度采集测控系统采用数字温度传感器满足温度测量,并将温度采集信号转换成数字信号经单片机处理并经输出驱动电路显示于共阴极数码管。该测量仪可实现多点(4点)不同区域测量,单通道,循环测量。除此之外,考虑到测控会用于工业生产当中,增加了超温报警功能,可以设置温度的上下限,可靠性要求

18、比较高,软件编程比较难2。AT89C52单片机温度测控仪采用ATMEL公司的AT89C52单片机,采用双列直插(DIP),有40个引脚。该单片机采用ATMEL公司的高密度非易失性存储技术制造,与美国INTEL公司生产的MCS-51系列单片机的指令和引脚设置兼容。其主要特征如下:1、8位CPU2、内置8K字节可重复编程Flash,可重复擦写1000次3、完全定态操作:0Hz24Hz,可输出时钟信号4、256字节的片内数据存储器5、32根可编程I/O线6、2个16位定时/计数器7、中断系统有6个中断源,可编为两个优先级8、一个全双工可编程串行通道9、具有两种节能模式:闲置模式和掉电模式值得注意的是

19、,P0、P1、P2、P3口作为普通I/O口使用时都是准双向口结构,其输入操作和输出操作本质不同,输入操作是读引脚状态,输出是对锁存器的写入操作。当内部总线给口锁存器置0或1时,锁存器中的0、1状态立即反映到引脚上。但在输入操作时,如果锁存器状态为0引脚被钳位0状态,导致无法读出引脚的高电平输入。因此,准双向口作为输入口时,应先使锁存器置1(称之为置输入方式)。另外,I/O口的端口自动识别功能,保证了无论是P1口(低8位地址)P2口(高8位地址)的总线复用,还是P3口的功能复用,内部资源自动选择不需要用指令进行状态选择。随着计算机技术的发展,单片机的功能越来越强大,寿命长、速度快、低功耗、低噪声

20、、可靠性高的特点及16位、32位单片机的出现,在工业领域仍具有很大的发展潜力。3.1.3 硬件系统的设计单片机应用系统的设计可划分为两部分:一部分是与单片机直接接口的数字电路范围内电路芯片的设计。如存储器和并行接口的扩展、定时系统、中断系统扩展,一般的外部设备的接口,甚至于A/D、D/A芯片的接口。另一部分是与模拟电路相关的电路设计包括信号整形、变换、隔离和选用传感器,输出通道中的隔离和驱动以及执行元件的选用。 (1)从应用系统的总线观念出发,各局部系统和通道接口设计与单片机要做到全局一盘棋。例如,芯片间的时间是否匹配,电平是否兼容,能否实现总线隔离缓冲等,避免“拼盘”战术。 (2)尽可能选用

21、符合单片机用法的典型电路。 (3)尽可能采用新技术,选用新的元件及芯片。 (4)抗干扰设计是硬件设计的重要内容,如看门狗电路、去耦滤波、通道隔离、合理的印制板布线等。 (5)当系统扩展的各类接口芯片较多时,要充分考虑到总线驱动能力。当负载超过允许范围时,为了保证系统可靠工作,必须加总线驱动器。 3.2 过热检测模块的设计3.2.1 ADC0809简介ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换3。是目前国内应用最广泛的8位通用A/D芯片。3.

22、2.2 ADC0809的工作原理ADC0809的工作原理是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开。转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式4。 (1)定时传送方式 对于一

23、种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换已经完成了,接着就可进行数据传送。 (2)查询方式 A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。 (3)中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。3.3 电机调速与控制模块设计电机调速是整个控制系统中的一个重要的方面,通过

24、L298来调节PWM的输出,使输出端电压发生变化,从而使施加在电风扇的输入电压发生改变,以调节电风扇的转速,实现各档位的风速的切换。3.3.1 L298芯片介绍L298驱动芯片是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相的专用驱动器,即内部包含二个H桥的高压六双桥式驱动器接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。L298有两路电源分别为逻辑电源6V和动力电源12V,ENA、ENB直接接5V电源使电机进入使能状态,IN1和IN2用来控制电路的逻辑功能状态。由于使用的电机是线圈式,在从运行状态突然转到停止状态和从顺时针状态突然转到逆时针状态时会形成很大的方向电流

25、,在电路中加入二极管就是在产生方向电流的时候进行泄流,保护芯片的安全,表3.1为L298的逻辑功能表5。表3.1 L298逻辑功能表IN1IN2ENA电机状态XX0停止101顺时针011逆时针000停止110停止3.3.2 电机调速原理我们采用的PWM来实现直流电动机的调速,由于直流电机的转速与加在其两端的平均电压成正比,所以在对直流电动机电枢电压的控制和驱动中,目前经常使用的是通过改变电机电枢电压接通时间与通电周期的比值来控制转速,其优点:控制原理简单输出波动小,线性好,对邻近电路干扰小,缺点是:功率低,散热问题严重。占空比示意图如图3.2所示。Tt1t2Ut图3.2 占空比示意图电动机的电

26、驱绕组两端的电压平均值U为:式中D为占空比,。占空比表示了在一个周期T里开关管导通的时间与周期的比值,D的变化范围为0=D=1。当电源电压UB不变的情况下,输出电压的平均值U取决于与占空比D的大小,改变D值也就改变了输出电压的平均值,从而达到控制电动机转速的目的,即实现了PWM调速。3.3.3 电机调速模块设计根据硬件原理图连接好电路,A/D接入单片机上通过程序来控制L298输出控制直流电机的转动。通过不同按键输出不同的占空比,使直流电机转动。当自然风键按下时,输出占空比为1:3的方波;当常风键按下时,输出占空比为3:1的方波;当睡眠风键按下时,输出占空比为1:5的方波;当摇头键按下时,电机反

27、转,同时保持原先的风速6。3.4 显示与控制模块设计LED数码管有共阳和共阴两种,都把这些LED发光二极管的负极接到一块(一般是拼成一个8字加一个小数点而作为一个引脚,为共阴管)。本系统设计采用4位共阴数码管显示电路,在设计4位LED显示时,为了简化电路,降低成本,采用动态显示的方式,4个LED显示共用一个8位的I/O,4个LED数码管的位选线分别由相应的P2.0-P2.3控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口。译码显示电路将档位和定时时间的输出状态经显示译码器译码,通过4位LED七段显示器显示出来。到达定时时间电机停止转动同时定时时间变为0。P2.5口接一个发

28、光二极管,当电压值超压时二极管灯亮实现报警,此状态下,无论定时时间和风速键是否按下,电机都处于停止状态7。3.5 键盘模块设计3.5.1 键盘方式选择常用的键盘识别方法有:行扫描法、线翻转法和利用8270键盘接口的中断法,在本系统中,完全可以不运用中断法完成键盘接口,这是由系统的特殊性决定的。首先,对于本系统而言,要实现便携式的设计,硬件电路使用的越少越好。其次,被测信号由外中断引脚输入,未占用单片机4个并行I/O口中的任何一个,系统有足够的资源利用自身I/O完成接口。最后,只有当传感器输出信号频率为空载频率,系统处于空闲待测的状态下,才允许键盘输入,因此键盘识别占用的CPU时间不会对系统正常

29、工作造成影响,因此直接利用单片机并行接口完成键盘的接口,采用线翻转法进行键盘识别8。3.5.2 实现方案本系统使用简单的键盘和数码显示器件来完成输入输出操作的人机界面。键盘输入信息的主要过程是:1、CPU判断是否有键按下。2、 确定哪一个键被按下。3、把此键代表的信息翻译成计算机所识别的代码,如ASCII或者其他代码。键盘上有很多键,每一个键对应一个键码,以便根据键码转到相应的子程序,进一步实现数据输入和命令处理的功能。键盘识别的流程如图3.3所示:键盘识别确定按键物理位置计算键码等待释放返回N有键按下?Y图3.3 键盘识别流程图按键消抖可分为硬件消抖和软件消抖两种,在键数较少时可用硬件消除抖

30、动,一种是采用在I/O口上并接合适的电容来解决;另一种是采用RS触发器消抖。4 系统程序设计及仿真系统软件设计包括主程序设计,A/D转换子程序设计和定时器T0中断程序设计。4.1 主程序流程图设计软件所要实现的功能有:按键响应,对ADC0809的控制,对数据的处理和传送显示的数据。主程序包含初始化、调用A/D转换子程序和调用显示程序,其流程图如图4.1所示:摇头?Y开始显示初始化Y占空比1:3自然风?N常风?NY占空比3:1Y占空比1:5睡眠风?NY进入定时程序定时?开摇头NN电机过热?关电机关中断显示过热N图4.1 主程序流程图主程序经初始化后,开始四位数码管显示的是“0000”电机停转。然

31、后进入按键扫描程序,依次对自然风、常风、睡眠风进行扫描,单片机I/O口输出相应的占空比方波,当为自然风时,数码管最高位显示“1”,当为常风时,数码管最高位显示“2”,当为睡眠风时,数码管最高位显示为“3”。当有定时键按下时,转到定时器T0中断程序进行。当有摇头键按下时,高低电平翻转,电机开始反转。4.2 定时器T0中断程序流程图设计定时器T0是用来对定时时间进行控制的,结合数码管动态显示,首先给T0设置工作方式和初始值,由于它不可重装,所以在主程序中必须再次定义它的初始值。其流程图如图4.2所示。Y定时时间减一秒定时到了吗?Y置初值置初值中断返回数码显示电机停关中断N1s到了吗?N开中断图4.

32、2 定时器T0中断程序流程图4.3 A/D转换测量子程序流程图设计由于ADC0809在进行A/D转换时要用到CLK信号,而此时的ADC0809的CLK是接在AT89C52单片机的P2.4端口上,也就是要求从P2.4输出CLK信号供ADC0809使用。因此产生CLK信号的方法就的使用软件来产生了;由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理。然后和设定的参考值比较,而实际显示的电压值的关系为。其流程图如图4.3所示。Y地址数小于8?NA/D转换结束?结束N开始ADC0809地址加一取数据Y启动测试(TESTART)图4.3 A/D转换测量子程序流程图在主程序中,

33、ADC0809的转换程序也是无限循环的,它主要是检测电机是否过热。本系统中,运用定时器T1作为CLOCK的脉冲信号,由于它的工作方式为2,且初始值216,足以满足ADC0809所转换一次所需要的时间。设定电机过热电压初始值为1.95V,当模拟电压输入量超过这个值时,发光二极管点亮,表示电机过热此时L298使能端变低电平,电机停转。4.4 系统仿真结果系统仿真结果见附录B。4.5 源程序源程序见附录C。结 论在写毕业论文时我深深体会到搞设计的艰辛与困难,电风扇我们都熟悉,但要想把单片机技术运用到电风扇上是不简单的事情。这次毕业设计让我学到了许多课本上没有的知识,使我受益匪浅,让我认识到无论做任何

34、事情,都要认真对待,要知道自己要做什么,怎么样才能做到,是否能够做好,因此,这些都需要我们认真的分析,遇到困难要及时寻求老师的帮助。我相信,没有解决不了的问题。我会一步一个脚印,踏踏实实的向我的目标前进。致谢:我的毕业设计,是在彭建英老师的指导下,进行大胆的理论与实践相结合,通过查找翻阅有关理论资料和技术手册,我的动手能力得到很大提高,使我懂得了如何把书本上知识总结起来去应用于实践,学到了研究、开发,设计单片微型计算机对工业过程控制的一套完整的方法,受益很大。硬件软件都要涉及,由于时间紧,工作量大,本次设计没能做出实物。本毕业设计锻炼了我的动手能力,进一步强化了专业知识,提高了将所学知识应用于

35、实践的能力。在此感谢大学四年对我辛勤教导的老师们以及同窗四年的同学,谢谢你们对我四年的关心和照顾。参考文献1谢维成.单片机原理与应用及C51程序设计M.清华大学出版社,2009.72谢自美.电子线路设计.实验.测试M.华中科技大学出版社,2002.63马忠梅等.单片机的C语言应用程序设计M.北京航空航天大学出版社,2003.114楼然苗等.单片机课程设计指导M.北京航空航天大学出版社,2007.75张永枫.单片机应用实训教程M.西安电子科技大学出版社,2005.26夏继强.单片机实验与实践教程M.北京航空航天大学出版社,2001.5 7吴国经.单片机应用技术M.中国电力出版社,2004.78A

36、T89C51 DATA SHEEP Philips Semiconductors 1999.dec附录A:单片机电风扇控制系统的设计原理图附录B:仿真结果图 图1 图1是自然风键按下时状态,数码管显示为1,无定时时间。ADC0809显示电压值为1.95V,电机不发热,正常转动。为了表示哪个按键被按下,仿真图上对应的按键均为闭合状态,下面的仿真图也同上,这里不在阐述。 图 2图2为示波器仿真效果,PWM输出占空比为1:3的方波,电机正转。 图3图3是常风键按下时状态,数码管第一位显示为2,无定时时间。ADC0809显示电压值为1.95V,电机不发热,正常转动。图 4图4是示波器仿真效果图,PWM

37、输出占空比为3:1的方波,电机正转。 图5 图5是睡眠风键按键按下时状态,数码管第一位显示为3,无定时时间。ADC0809显示电压值为1.95V,电机不发热,正常转动。图 6图6是是示波器仿真效果图,PWM输出占空比为1:5的方波,电机正常转动。 图7 图7是电机反转的仿真图,由于是在常风的模式进行的,我们只能看它的PWM占空比示意图与电机正转的示意图进行比较,其反转的效果如图8所示: 图 8 图8是常风风模式下的电机反转占空比示意图,经过与图4进行比较,它们的方波占空比完全吻合,这证明了电机正反转完全正常。 图9 图9是自然风按键按下时状态,数码管第一位显示为3,定时时间为15ms。ADC0

38、809显示电压值为1.95V,电机不发热,正常转动。 图10图10是睡眠风按键按下时状态,数码管第一位显示为3,定时时间为0ms。ADC0809测得的显示电压值为2.0V,超过设定的初始值,则表示电机发热,电机停止转动。附录C:参考程序/*/ 基于单片机电风扇控制系统的设计C程序/ 使用keil C51 ver7.09/ 2012.5.5/*/#include#define uint unsigned int#define uchar unsignde charsbit key1=P30;sbit key2=P31;sbit key3=P32;sbit key4=P33;sbit key5=P

39、34;sbit A=P26;/电机驱动端口sbit D=P27;sbit wei1=P20;sbit wei2=P23;sbit wei3=P22;sbit wei4=P21;sbit wxout=P25; /温度 太高 报警灯sbit clock=P24; sbit start=P35;sbit eoc=P36; /adc0809 驱动端口定义sbit oe=P37; unsigned char wxin=100;/定义初始值为100,转换成实际电压值为1.95Vunsigned int getdata,ss;/ 温度过高标志位int num=0,count=0,se=1,flag=1;/定

40、时标志位;电机正反转标志位int shou_num,di_num,gao_num, le,bai,shi,ge;/电机占空比标志位void display( ); /声明显示函数void delay(uint x);/声明延时函数void qudong(); /声明电机驱动函数unsigned char table =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共阴数码管char seg3=0;/延时函数void delay(uint x)uint i;while(x-)for(i=122;i0;i-);/数码管显示函数void dis

41、play()bai=num/100;/百位shi=num%100/10;/十位ge=num%10;/个位seg0=bai;seg1=shi;seg2=ge;wei1=0;P1=tableshou_num; delay(1);wei1=1;wei2=0;P1=tableseg0;delay(1);wei2=1;wei3=0;P1=tableseg1;delay(1);wei3=1;wei4=0;P1=tableseg2;delay(1);wei4=1;/按键扫描函数void scan()if(key1=0)if(key1=0)display();le=1;elsele=0;A=0;D=0;if(

42、key2=0)if(key2=0)le=2;display(); elsele=0;A=0;D=0;if(key3=0)if(key3=0)le=3;display(); elsele=0;A=0;D=0;if(key4=0) /定时键按下delay(5);if(key4=0)TR0=1;num=num+10;if(num=1000)num=990;while(key4=0)display();if(key5=0) /电机正反转按键delay(5);if(key5=0)flag=!flag;while(key5=0)display();/电机驱动函数void qudong()int i;if(

43、ss!=0) / 电机是否发热?if(se!=0) /定时到了吗?if(flag) /是否正转?D=0;for(i=0;idi_num;i+) /输出di_num个低电平A=0;display(); /用显示函数做延时函数,一举两得 for(j=0;jgao_num;j+) /输出gao_num个高电平A=1;display();display();else /电机反转A=0;for(i=0;idi_num;i+) /输出di_num个低电平D=0;display();for(j=0;jgao_num;j+) /输出gao_num个高电平D=1;display();elseA=0;D=0;/按键处理函数void dispose()switch(le) case 1:shou_num=1;gao_num=1;di_num=3;break;case 2:shou_num=2;gao_num=3;di_num=1;break;case 3:shou_num=3;gao_num=1;di_num=5;break;default: break;/定时器T1中断函数void time1() interrupt 3clock=!clock; /clock信号取反/AD转换函数void adc0809()start=0;start

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号