目录第1章总体设计方案..................................................................错误!未定义书签。1.1设计原理.................................................................................错误!未定义书签。1.2设计思路.................................................................................错误!未定义书签。1.3实验环境.................................................................................错误!未定义书签。第2章详细设计方案....................................................................错误!未定义书签。2.1主程序设计............................................................................错误!未定义书签。2.2功能模块的设计与实现........................................................错误!未定义书签。第3章结果测试及分析................................................................错误!未定义书签。3.1结果测试................................................................................错误!未定义书签。3.2结果分析................................................................................错误!未定义书签。参考文献............................................................................................错误!未定义书签。附录1:元件清单.........................................................................错误!未定义书签。附录2:总电路图.........................................................................错误!未定义书签。附录3:程序代码.......................................................................错误!未定义书签。1第一章总体设计方案:1.设计原理:用4位数码管实时显示电风扇的工作状态,最高位显示风类:“自然风”显示“1”、“正常风”显示“2”、“睡眠风”显示“3”。后3位显示定时时间:动态倒计时显示剩余的定时时间,无定时显示“000”。设计“自然风”,“正常风”和“睡眠风”三个风类键用于设置风类;设计一个“定时”键,用于定时时间长短设置;设计一个“摇头”键用于控制电机摇头在整个定时状态下,电路具有允许用户随时自行选择使用“自然风”状态,也可选择使用“常风”和“睡眠风”状态。设计过热检测与保护电路,若电风扇电机过热,则电机停止转动,电机冷却后电机又恢复转动。2.设计思路:电风扇模拟控制系统设计就是使用单片机来控制电机和一些LED、按键,模拟真实的电风扇的使用,通过设计使电风扇使用便捷更人性化。风类,定时,摇头都是针对使用者不同需求的设计。过热保护是对安全性要求的设计。硬件方案:根据设计的要求可知,系统的硬件原理框图如图1.1所示。图1.1系统的硬件原理框图本系统由五个模块组成,分别是输入模块、显示模块、电机控制模块、过热保护模块以及单片机控制系统。其中单片机控制系统是核心,它通过处理输入的各种数据信息来对其它模块发出指令,进行相应的操作。输入模块由5个按键组成,分别控制电机的风速、正反转和定时时间。显示模块由8位共阴数码管组成,显示定时时间和风速。过热保护模块由ADC0809和外围电路组成,通过设定电档位及定时显示电机控制模块按键输入单片机系统过热检测模块2压初始值使电机超值停转并且相应二极管发光报警。电机控制模块由L298和其它的元器件组成,它主要是放大输入信号的倍数,用来驱动电机。保护电路的选择:选用ADC0809作为过热保护电路的核心部件,假设先设定一个标准电压值,通过0-5V模拟电压输入进行模数转换,如果数据超过标准值则单片机对电机进行相应操作,使电机启停。控制核心的选择:采用单片机作为控制核心,以软件编程的方式进行风速判断,并在端口输出控制信号。显示电路的选择:采用八位共阴数码管显示电机状态,动态扫描显示方式3.实验环境:本实验用的单片机为MCS-51单片机,其硬件原理图如下:本实验中用到的引脚有p1口的八个引脚,分别与八个开关相连,其中p1.0是用来控制电风扇的自动挡,p1.1用来控制电风扇的手动挡。P1.2置于高电平是启动定时装置。P1.3与p1.4是用来控制风速的类型(常风,睡眠风,自然风)。P1.5与p1.6是用来控制定时的。本实验的定时采用单脉冲的方式进行定时设置。P1.7是用来进行复位操作。3本实验采用内驱的方式,通过数模转换的放大电路来驱动电风扇的转动,p3.4口接脉冲输入信号,p3.3口接入单脉冲。第二章详细设计方案:2.1主程序的设计:软件所要实现的功能有:按键响应,对模数转换的控制,对数据的处理和传送显示的数据。主程序包含初始化、调用A/D转换子程序和调用显示程序,其流程图如图所示:图2.1主程序流程框图主程序经初始化后,开始四位数码管显示的是“0000”电机停转。然后进入按键扫描程序,依次对自然风、常风、睡眠风进行扫描,单片机I/O口输出相应的摇头?Y开始显示初始化Y占空比1:3自然风?N常风?NY占空比3:1Y占空比1:5睡眠风?NY进入定时程序定时?开摇头NN电机过热?关电机关中断显示过热N4占空比方波,当为自然风时,数码管最高位显示“1”,当为常风时,数码管最高位显示“2”,当为睡眠风时,数码管最高位显示为“3”。当有定时键按下时,转到定时器T0中断程序进行。当有摇头键按下时,高低电平翻转,电机开始反转。2.1模数转换原理介绍:模数转换工作原理是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开。转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式[4]。(1)定时传送方式对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换已经完成了,接着就可进行数据传送。(2)查询方式A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。(3)中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送.2.2电机调速与控制模块设计本次实验的电机转速的控制并没有按照传统上采用pwm来调速,而是采用了中断的控制方式。通过不同的时间区间来实现一次中断控制来实现电风扇的调速功能,p3,3口与单脉冲口相连,用于产生脉冲,p3.2口与脉冲输出相连,用来驱5动电风扇,使电风扇转动。如何实现他的不同转速,通过不同的中断时间产生脉冲而实现的。本实验无论是对电风扇的风速控制,还是对电风扇的定时控制,都是通过开关来实现的2.3显示与控制模块设计本系统设计采用4位共阴数码管显示电路,在设计4位LED显示时,为了简化电路,降低成本,采用动态显示的方式,4个LED显示共用一个8位的I/O而将其相应的段选线并联在一起,由一个8位的I/O口控制。采用内驱的控制方式,译码显示电路将档位和定时时间的输出状态经显示译码器译码,通过4位LED七段显示器显示出来。到达定时时间电机停止转动同时定时时间变为0。P2.5口接一个发光二极管,当电压值超压时二极管灯亮实现报警,此状态下,无论定时时间和风速键是否按下,电机都处于停止状态。2.4A/D转换测量子程序流程图设计由于ADC0809在进行A/D转换时要用到CLK信号,而此时的ADC0809的CLK是接在AT89C52单片机的P2.4端口上,也就是要求从P2.4输出CLK信号供ADC0809使用。因此产生CLK信号的方法就的使用软件来产生了;由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理。然后和设定的参考值比较,而实际显示的电压值的关系为。其流程图如图2.4所示。6图2.2A/D转换测量子程序流程图2.4定时器T0中断程序流程图设计定时器T0是用来对定时时间进行控制的,结合数码管动态显示,首先给T0设置工作方式和初始值,由于它不可重装,所以在主程序中必须再次定义它的初始值。其流程图如图2.3所示:Y地址数小于8?NA/D转换结束?结束N开始ADC0809地址加一取数据Y启动测试(TESTART)7图2.3T0的中断流程示意图第三章结果测试及分析:图3.1是强风键按下时状态,数码管显示为1,无定时时间。ADC0809显示电压值为1.95V,电机不发热,正常转动。Y定时时间减一秒定时到了吗?Y置初值置初值中断返回数码显示电机停关中断N1s到了吗?N开中断8图3.1强风仿真时电路示意图图3.2是正常风键按下时状态,数码管第一位显示为2,无定时时间。ADC0809显示电压值为1.95V,电机不发热,正常转动。图3.2正常风仿真时电路示意图图3.3是睡眠风键按键按下时状态,数码管第一位显示为3,无定时时间。9图3.3睡眠风仿真示意图图3.4是强风按键按下时状态,数码管第一位显示为1,定时时间为15ms。ADC0809显示电压值为1.95V,电机不发热,正常转动。图5.5是自然风按键按下时状态,数码管第一位显示为3,定时时间为15ms。ADC0809显示电压值为1.95V,电机不发热,正常转动。图3.4强风状态下定时示意图10参考文献[1]谢维成.单片机原理与应用及C51程序设计[M].清华大学出版社,2009.7[2]谢自美.电子线路设计.实验.测试[M].华中科技大学出版社,2002.6[3]马忠梅等.单片机的C语言应用程序设计[M].北京航空航天大学出版社,2003.11[4]楼然苗等.单片机课程设计指导[M].北京航空航天大学出版社,2007.7[5]张永枫.单片机应用实训教程[M].西安电子科技大学出版社,2005.2附录1元件清单:本实验需要用到的器件有:lab8000电路板,电风扇,加上导线若干。11附录2总电路图:沈阳航空航天大学课程设计报告12附录3程序代码:#includestdio.h#includereg51.h#includeabsacc.h#defineucharunsignedchar#defineuintunsignedint#defineDA0832XBYTE[0x8000]#defineDXLEDXBYTE[0x9