智能风扇操纵器设计单片机课程设计

上传人:奔*** 文档编号:50937957 上传时间:2022-01-24 格式:DOCX 页数:33 大小:603.41KB
收藏 版权申诉 举报 下载
智能风扇操纵器设计单片机课程设计_第1页
第1页 / 共33页
智能风扇操纵器设计单片机课程设计_第2页
第2页 / 共33页
智能风扇操纵器设计单片机课程设计_第3页
第3页 / 共33页
资源描述:

《智能风扇操纵器设计单片机课程设计》由会员分享,可在线阅读,更多相关《智能风扇操纵器设计单片机课程设计(33页珍藏版)》请在装配图网上搜索。

1、单片机课程设计设计题目:智能风扇操纵器设扇neuq序言一、设计实验条件及任务.2、设计实验条件、设计任务2二、小直流电机调速操纵系统的整体方案设计.3、系统整体设计3、芯片一选择3、DAC0832芯片的要紧性能指标3、数字温度传感器DS18B20.3三、系统硬件电路设计.4、AT89C52单片机最小系统.5、DAC0832与AT89C52单片机接口电路设计.6、显示电路与AT89c52单片机接口电路设计.7、显示电路与AT89C52单片机电路设计8四、系统软件流程设计.7五、调试与测试结果分析8、实验系统连线图8、程序调试,8、实验结果分析8六、程序设计总结10七、参考文献11附录12一、源程

2、序代码12二、程序原理图23传统风扇不能依照温度的转变适时调剂风力大小,关于夜间温差大的地域,人们在夏夜利用风扇时可能碰到如此的问题:当凌晨降温的时候风扇仍然在工作,可是人们因为熟睡而无法发觉,既浪费电资源乂容易引发伤风,传统的机械按时器尽管能够操纵风扇在工作必然后关闭,但按时范围有限,且无法对温度转变灵活处置。鉴于以上方面的考虑,咱们需要设计一种智能风扇操纵系统来解决这些问题,使家用电器产品趋向于自动化、智能化、环保化和人性化,使得由微机操纵的智能风扇得以显现。本文介绍了一种基于AT89C52单片机的智能风扇调速器的设计,该设计要紧硬件部份包括AT89C52单片机,温度传感器dsl8b20,

3、数模转换DAC0809电路,电机驱动和数码管显示电路,系统能够实现手动调速和自动调速两种模式的切换,在自动工作模式下,系统能够能够依照环境温度实现自动调速;能够通过按时切换键和按时设置键实现系统工作按时,使得在用户需求的定不时刻到后系统自动停止工作。在日常生活中,单片机取得了愈来愈普遍的应用,本系统采纳的AT89c52单片机体积小、重量轻、性价比高,尤其适合应用于小型的自动操纵系统中。系统风扇起停的自动操纵,能够解决夏天人们晚上熟睡时,由于夜里温度下降而致使受凉,或从睡梦中醒来亲自开关风扇的问题,具有重要的现实意义。一、设计实验条件及任务1.1、 设计实验条件单片机实验室1.2、 设计任务利用

4、DAC0832芯片进行数/模操纵,输出的电压经放大后驱动小直流电机的速度进行数字量调剂,并显示运行状态DJ-XX和D/A输出的数字量。巩固所学单片知识,熟悉实验箱的相关功能,熟练把握Proteus仿真软件,培育系统设计的思路和科研的爱好。实现功能如下:系统手动模式及自动模式工作状态切换。风速设为从高到低9个档位,可由用户通过键盘手动设定。按时操纵键实现定不时刻设置,能够实现10小时的长按时。环境温度检测,并通过数码管显示,自动模式下实现自动转速操纵。当温度每降低1那么风扇风速自动下降一个档位,环境低于21度时,风扇停止工作。当温度每升高1C那么风扇风速自动上升一个档位。环境温度到30度以上时,

5、系统以最大风速工作。实现数码管友好显示。二、小直流电机调速操纵系统的整体设计方案、系统硬件整体结构图系统硬件整体框图、芯片选择一、AT89c52芯片:选用该单片机作为智能风扇操纵部件,用来实现风扇调速核心功能。二、74LS245芯片:用来驱动数码管。3、74LS373芯片:锁存器,用来锁存输出的信号。4、74LS240芯片:八单线驱动器,缓冲输出的信号。五、DAC0832芯片:片选地址是FF80H,A0UT1插孔作为模拟量的输出。6、8255芯片:可编程并行I/O接口芯片,用以扩展单片机的10口。7、LED数码显示管:用来显示电机旋转的速度是加速仍是减速。8、741:运算放大器。9、9014:

6、NPN型三极管。、DAC0832的要紧性能指标D/A转换的大体原理是应用电阻解码网络,将N位数字量逐位转换为模拟量并求和,从而实现将N位数字量转换为相应的模拟量。其性能指标为:(1)分辨率:相对分辨率=I/2N,N越大,分辨率越高(2)线性度(3)转换精度(4)成立时刻(5)温度系数。DAC0832引脚功能图如图*12VU8FF801pever*20WR219OWFyIILCZDil/DIZ/0IOvv口D34OINUwrszrioyeezp17rf郎D25UIJArcKmoriA16D4D1615D5;DO7L/lIUlOninniA14D68L/IU50/DCC7n|713D7;RFB9v

7、rscruitRFBI0IJT2121011GNDIOUT1IDAC0832图数模转换DAC0832引脚功能一、DI0-DI7:8位数字信号输入端;二、!CS:片选端;ILE:数据锁存许诺操纵端,高电平有效;3、!WR1:输入寄放器写选通操纵端。当!CS=0、ILE二一、!WR1二0时,数据信号被锁存在输入寄放器中。4、!XFER:数据传送操纵五、!WR2:DAC寄放器写选通操纵端。当!XFER=0,!WR2=0时,输入寄放器状态传入DAC寄放器中六、IOUT1:电流输出1端,输入数字量全“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。7、IOUT2:D/A转换器电流输出2端

8、,I0UT2+I0UT1二常数。八、RFB:外部反馈信号输入端,内部已有反馈电阻RFB,依照需要也可外接反馈电阻。九、VCC:电源输入端,可在+5V+15V范围内。10、DGND:数字信号地。1一、AGND:模拟信号地.数字温度传感器DS18B20DS18B20“一线总线”数字化温度传感器支持“一线总线”接口,测量温度范围为-55+125C,在-10+85范围内,精度为土现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:环境操纵、设备或进程操纵、测温类消费电子产品等。DS18B20能够程序设定912位的分辨率,精度为,温度搜集具有准确性、实时

9、性。DS18B20的管脚排列如下:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。如下图。U1DG.HI1,vLxJ5S18S2O?图数字温度传感器DS18B20引脚图DS18B20检测的温度高于必然值时,单片机引脚输出高电平,打开风扇,当温度低于必然值时,单片机引脚输出低电平,操纵风扇停止转动。在此区间,每升高一度,风扇转速档位加一,风扇转速与档位的关系如表所示:表风扇转速与档位的关系环境温度C低于转速档位01234环境温度C以上转速档位56789、显示电路与AT89c52单片机电路设计三、系统硬件电路设计、AT89c52单片机最小系统:A

10、T89C52已包括了按时器、程序存储器、数据存储器等硬件,其硬件能符合整个操纵系统的要求,不需要外接其他存储器芯片和按时器件,方便地组成一个最小系统。整个系统结构紧凑,抗干扰能力强,性价比高。图为AT89c52芯片最小系统。一方面,单片机要通过I/O口中接收输入信号,另一方面要通过I/O口操纵数码管的初始化、显示方式和要显示的字符。因此,设计必需以单片机为核心,显示器为外围设备。硬件上,单片机通过电路板电路与液晶显示电路相连;软件上,单片机要下载完整的程序对二者进行适时的操纵。1肝X1C2 I CRYSTALU419R1C3 10k 止 1nF wta 1on39A I XL Ir U.LMU

11、UPD.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4ZAD4PD.5/AD5PD.6ZADBRSTPD.7/AD7F2.VA9P2.2JA103337363534333221 A822 AB23 A1024 A11PSEMP2.3JA11ALEP2.A12EAP2 5JA13P2.8JA14P2.7JA15P1GT2P3Q/RXDP1.W2EXP31/TXDP12P3.21NT0P1.3F3.31NT1P1.4P3 所 0P15P3.5/HP1 6P3 8AM?P17PSJjRD25 A1226 A1327 A1423 Al510 种12k9*m1314 DQ_116 WB17

12、 RD31图AT89c52芯片最小系统图.系统程序电路主程序CUP电路图:U189P10/T PU/T P12 P13 P14 P15 P16 P17POO P01 P02P03 P04 P05P06P07INT1INT2T1 TOEA/VPXIX2P20P21P22P23P24P25P26P27RESET TO RD PSEHRXT TXDALE/PI 二二二- - - - -Y77EN 23 ,5 6:13121514箱19189161729图AT89C52系统管脚扩充图、DAC0832与AT89C52单片机接口电路设计实验电路利用逻辑器件实现地址译码,地址FF80H接入数模转换器DAC0

13、832片选段,通过数模转换后的模拟量通过运放放大驱动电机驱动,其电路图如下图:DA0832R段 EEC 瓜田 s F L C wwc X IV01234567IIIIIIIIDDDDDDDDBKFVREFI0UT1IOUT2电机图DAC0832与AT89C52单片机接口及电机操纵电路实验电路利用10扩充芯片8255及锁存芯片74LS245对六个数码管选通操纵显示。显示部份电路图如下图:图数码管显示部份电路图四、系统程序流程设计、系统程序流程框图如图图程序流程图五、调试与测试结果分析、实验系统连线图a、分别连按键KI、K2、SI、S2b、DS18b20数据线连c、将DAC0832驱动电路AOUT

14、接至直流电机d、将P0口接至DAC0832数字输入端e、将地址译码器电路(FF80H)接至DAC0832片选端、程序调试程序上电时,直流电机默许以中档5档工作,系统默许工作在手动模式下。数码管显示当前环境温度和电机运行档位。当按下按键S1()时,直流电机以加速转动,同时数码管显示档位速度,当速度达到最大时,继续按下键S1第5个数码管会显示“一”表示系统已达到最大风速当按下按键S2()时,直流电机以减速转动,同时数码管显示档位速度,当速度达到最小时,继续按下键S2第5个数码管会显示“一”表示系统已达到最小风速。当按下系统模式操纵切换键kl能够实现模式的切换,在自动模式下,数码管第一名显示“A”字

15、样,表示工作于自动模式下,现在电机的转速由环境温度决定。而且显示环境温度和当前温度下电机运行档位。当按下按时键K2时,数码管闪烁的显示“000”,当按51时;定不时刻增加,数码管闪烁显示定不时刻。按S2键时,定不时刻减少,同时数码管也闪烁显示定不时刻。再次按下K2键后,闪烁停止,按时开始,数码管显示按时剩余时刻。、实验结果分析电机运行正常时即可实现调速现象,按键的消抖使得调速现象加倍明显。按键S1实现风扇加速运行,按键S2实现风扇减速运行。系统模式操纵切换键kl能够实现模式的切换。按时键K2实现按时设定和按时确信。适当的操纵按键,就能够够实现所需要的成效。六、程序设计总结两周的单片机课程设计让

16、我收成颇丰,不管从知识技术上仍是团队合作方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去明白得枯燥乏味。但在课程设计利用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的明白得和水平。在这次课程设计中乂让我体会到了合作与团结的力量,当碰到可不能或是设计不出来的地址,咱们就会在QQ群里讨论或是同窗之间彼此帮忙。团结确实是力量,不管在此刻的学习中仍是在以后的工作中,团结都是相当重要的,有了团结会有更多的理念、更多的思维、更多的情感。咱们组的题目是智能风扇操纵器设讣,大体要求是实现电机速度的操纵,而且通过数码管显示出来。由于我在学院的创新实验室有过一年多的编程

17、体会,因此在实验箱上实现大体功能并无专门大难度,大体功能实现后,咱们组想到了使设计加倍智能化和多功能化,于是咱们加入了数字温度传感器温度搜集和自动操纵,和按时功能。并通进程序设计,实现比较人性化的数码管显示。在整个程序设计和电路设计调试进程中,碰到了很多问题,最终也和组员一起解决了。要紧的问题有: 仿真和实际的电路调试有必然的出入,在仿真上按键能够专门好的工作,可是在实际的电路调试进程中,按键往往不大灵敏,常显现按一下,系统反映多次的问题,最后通过延不时刻的调整,使得按键较好的工作。 由于数码管采纳动态显示方式,延时扫描时刻的不适当使得数码管显示显现跳动或不稳固的问题,通过延不时刻的正确设置和

18、对整体程序的分析,使数码管的显示稳固正常。 随着系统功能的增加,程序变的复杂,调试起来对程序的分析带来了必然的难度,最后通过功能函数的模块化使得程序加倍清楚和易更改。将数字温度传感器的函数单独设在一个C文件中,采纳多文件编译的方式,也增加了程序的易移植性。 程序的要完全运行正确,不仅要弄清楚电路图,尤其是各接口的接法,还要注重每一个小的细节,因为往往一个很小的错误,使得程序显现一些无法预料的结果,在程序的调试进程中,咱们组显现了将士错写为了结果固然运行不出来。单片机是很重要的一门课程,学好一门单片机,就凭那个技术这门手艺找一个好工作也不成问题。尽管咱们在课堂学到的内容很有限,但在以后的学习中单

19、片机还需要好好的深切研究和学习。七、参考文献1陈海宴.51单片机原理及应用.北京:北京航空航天大学出版社,2021.2郭天祥.51单片机C语言教程.北京:电子工业出版社,2005.3胡启明,葛祥磊.Proteus从入门到精通.北京:电子工业出版社,2021.4张兆明.基于AT89s52单片机的自动温控风扇设计.测控技术,2020,03(210820).附录1:系统程序系统主函数/*设计题目:智能电风扇控制器设计设计者:设计功能:1 .系统分为自动模式和手动模式,通过自动操纵手动操纵切换键K1能够实现电机转速操纵,并用数码管显示其工作在何种状态。2 .手动状态能够通过S-、S2加,减)实现9级风

20、速增减调速,并通过数码管显示。3 .通过DS18B20能够实现风扇周围环境温度的检测,温度精准到摄氏度,并通过数码管能够显示实时温度当系统工作切换到自动操纵状态时,系统依照环境温度自动操纵转速的快慢。4 .两种工作状态下,均能够通过按时设置功能键K1能够实现风扇按时工作,通过时刻增减键(加,减)实现定不时刻设按时刻到后风扇停止工作系统连线、分别连按键KI、K2、SI、S2DS18b20数据线连系统参数:1 .转速档位(本参数为仿真参数)共分为9个档位,从低到高为1-9档,通过数码管显示,对应电机两头电压别离为、2 .温度参数系统利用的DS18b20能够实现摄氏度的精度。通过四舍五入,数码管显示

21、能够实现摄氏度的精度。3 .自动模式下环境温度与转速关系环境温度范围与转速关系为:21以下,停止;21-221档;22-232档;23-244 档;24-254档;25-265档;26-276档;27-287档;28-298档;29以上,9档5 .定时时间参数系总共设置7个定不时刻,别离为lmin,5min,10min,30min,lh2h,5h*/#include,M,include,H,#includeo用于访问绝对地址#includeo#defineucharunsignedchar#defineuintunsignedintdefineON1defineOFF0defineConfir

22、m2defineTimeGrade11小时,2小时,5小时定时等级分别设置为1分钟,5分钟,10分钟,30分钟,1defineTimeGrade25defineTimeGrade310defineTimeGrade430#defineTimeGrade560defineTimeGrade6120defineTimeGrade7300defineaddXBYTE0xff23definePAXBYTE0xff20definePBXBYTE0xff21defineDAXBYTE0xff80操纵寄放器位选为8255,A段选为8255,Bn/P0对应的地址unsignedchartflag;定时器时间标

23、志unsignedcharTimeGrade;风扇定时等级unsignedintTimeGo,TIME.tlflag;风扇定时时间标志位inttemp_Tjemp_T_A;采集温度值以及采集的温度绝对值uintvolt_d=140,volt_a;bitsecflag=0;bitAuto=OFF:定义自动控制允许位ucharTC=OFF;定义定时功能允许位bitCh_Full=0;概念调档以最大或最小标志位bitTBZF=0;定义温度低于0时标志位ucharcodetable=0xc0,0xf9,0xa4,0xb0,0x99.0x92,0x82.0xf8,0x80,0x90,0x40,0x79,

24、0x24,0x30,0x19.0x12,0x02,0x78,0x00.Ox10.0x88,0x8b.0xbf,0xff;共阳数码管编码表ucharcodewei=0x01,0x02,0x04.0x08,0x10.0x20);voiddelayMS(uintz);voidInitial(void);voidTinie_Set(void);voiddisplay(ucharaa.ucharbb);voidHandle_display(void);voidKey_check(void);voidAnto_Control-speed(void);voidTempTrans(void);voiddela

25、yMS(uintz)延时函数(ucharx,y;for(x=z:x0;x-)for(y=110;y0:y-);)voiddisplay(ucharaa.ucharbb)显示子程序(PA=-weiaa;位选PB=tablebb;段选delayMS(2);)voidInitial(void)(EXO=1;开外部中断0EX1=1;开外部中断1EA=1;开总中断ITO=1;下降沿触发中断0IT1=1;下降沿触发中断1TMOD=Oxll;TH0=(65536-20000)/256;TL0=(65536-20000)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%

26、256;ET0=1;TR0=I;ET1=1;)voidHandle_display(void)操作时数码管显示,包括温度,档位,定时时间和剩余时间(uchariJ;volta=voltd/28;display。volt_a);数码管输出档位if(TC = OFF)为设置时间时初始状态if(TBZF=l)display(5,22);在数码管1显示温度为负display(4.temp_T_A/100):数码管输出模拟量十位display(3,temp_T_A%100/10+10);数码管输出模拟量个位display(2.temp_T_A%100%10);数码管输出模拟量一位小数)else(Time

27、_Set();for(j=80;j0;j-)(display(4.(TIME-TimeGo)/100);数码管输出模拟量十位display(3XTIME-TimeGo)%100/10);数码管输出模拟量个位display(2jTIME-TimeGo)%100%10);数码管输出模拟量一位小数display(0,volt_a);)if(TC=ON)for(i=100;i0;i-)(display(4,23);数码管输出模拟量十位display(3,23);数码管输出模拟量个位display(2,23);数码管输出模拟量一位小数display(0,volt_a);voidKey_check(voi

28、d)按键扫描函数unsignedchartemp:temp=P3&OxO3;if(temp!=0x03)delayMS(30);if(temp!=0x03)当和按下时if(teinp=OxO1)模式设置键被按下Auto=-Auto;elseif(temp=0x02)定时设置键被按下(TC+;if(TC=3)TC=O;)voidTcmpTrans(void)(if(secflag=1)(secflag=O;temp_T=rd_temperature()/10;if(temp_T=300)volt_d=252;)voidTinie_Set(void)(if(TC=ON)(switch(TimeGr

29、ade)(case0:TIME=0;break:case1:TIME=TimeGradekbreak:case2:TIME=TinieGrade2;break:case3:TIME=TimeGradc3;break:case4:TIME=TinieGrade4:break:case5:TIME=TimcGradc5;break:case6:TIME=TinicGradc6;break:case7:TIME=TimcGrade7;break:)elseif(TC=Confirm)TRI=l;display(5,22);else(TIME=0;TRI=0;关闭定时器2TimeGo=0;定时时间到i

30、f(TimeGo=TIME)&(TC=Confirm)TC=OFF;关闭时间显示标志TRI=0;关闭定时器2TimeGo=0;定时后已运行时间清零volt_d=0;定时时间到后,风扇停止转动voidmain()(InitialO;while(l)(TempTransO;if(Auto=OFF)当系统为手动控制时子函数(if(Ch_Full=l)displays,22);在数码管1显示一横线,表示档位已经最大或者最小DA=volt_d;把数字量赋给数模转换器Handle_display();)if(Auto=ON)系统为自动控制时函数(display。,20);显示自动控制允许标志DA=volt

31、_d;Anto_ControLspeed();Handle_display();voidexO()interrupt0外部中断0子程序(delayMS(200);if(TC=OFF)II(TC=Confirm)如果不是时间设置时,实现风扇调速if(volt_d0)(Ch_Full=0;vo!t_d-=28;)elseCh_FuIl=l;else如果时间设置标志位打开,则定时设置TimeGrade-;voidisrjl(void)interrupt3(TH1=(65536-50000)/256;TL1=(65536-5OOOO)%256;tlflag+;if(tlflag=1200)(tlfla

32、g=O;TimeGo+;)数字温度传感器DS18B20部份头文件#ifndef.DS18B20_H#define_DS18B20_H#include#include,HsbitDQ=P3八4;bitinit_ds18b20(void);voiddelay(unsignedintt);voidwr_ds18b20(unsignedcharbyt);unsignedcharrd_dsl8b20(void);intrd_temperature(void);#endif数字温度传感器DS18B20部份C文件include,H,include,n,voiddelay(unsignedintt)(whil

33、e(t-);/DS18B20初始化函数bitinit_ds18b20(void)bitinitflag=0;DQ=1;delay(12);DQ=0;delay(80);/延时大于480usDQ=1;delay(lO);/14initflag=DQ;/initflag等于1初始化失败delay;returninitflag;)通过单总线向从器件写一个字行voidwr_ds18b20(unsignedcharbyt)(unsignedchari;for(i=0;i8:i+)(DQ=0;DQ=byt&0x01;delay(5);DQ=1;byt=1;)delay(5);)通过单总线从从器件读一个字f

34、junsignedcharrd_dsl8b20(void)(unsignedchari;unsignedcharbyt;for(i=0;i0?:;大于0加,小于0减value=t*100/+(value0?:;returnvalue;附录2实验原理图rgdw9BdWSBIgdHnlgd&Em口gds氏dIFMBrqdolMLMZX03O石(3呈云2/W爱星WOLddCUOLddCUAf-1orQ层Hd停grdFQr-dP5.S二Nwg日言5口专一.|0302c里iEdNaMdawr豆二普维Rd学Zd善s口-EF-S9p-gggegggs优19RIBQB1B283叫B5BGB7IS171511ITn11CE_AB/fTR21ttSW2例点POTU5M2%A1Y1P2Y2R3YJ19ii亘1$17EKLS2Uabc士圭ab-cd-eTaabo-d-+-C9一CVUR1ILE(8Y1/BY5GNOWR2DOXFERDODllDI1DBDODSVREFDRRFBOUT2GNDDUT1C5-R!$jv+1ZV

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!