智能电风扇控制器设计单片机课程设计Word格式.docx

上传人:b****1 文档编号:4830866 上传时间:2023-05-04 格式:DOCX 页数:30 大小:507KB
下载 相关 举报
智能电风扇控制器设计单片机课程设计Word格式.docx_第1页
第1页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第2页
第2页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第3页
第3页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第4页
第4页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第5页
第5页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第6页
第6页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第7页
第7页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第8页
第8页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第9页
第9页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第10页
第10页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第11页
第11页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第12页
第12页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第13页
第13页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第14页
第14页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第15页
第15页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第16页
第16页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第17页
第17页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第18页
第18页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第19页
第19页 / 共30页
智能电风扇控制器设计单片机课程设计Word格式.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

智能电风扇控制器设计单片机课程设计Word格式.docx

《智能电风扇控制器设计单片机课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《智能电风扇控制器设计单片机课程设计Word格式.docx(30页珍藏版)》请在冰点文库上搜索。

智能电风扇控制器设计单片机课程设计Word格式.docx

1.2、设计任务

利用DAC0832芯片进行数/模控制,输出的电压经放大后驱动小直流电机的速度进行数字量调节,并显示运行状态DJ-XX和D/A输出的数字量。

巩固所学单片知识,熟悉试验箱的相关功能,熟练掌握Proteus仿真软件,培养系统设计的思路和科研的兴趣。

实现功能如下:

1系统手动模式及自动模式工作状态切换。

2风速设为从高到低9个档位,可由用户通过键盘手动设定。

3定时控制键实现定时时间设置,可以实现10小时的长定时。

4环境温度检测,并通过数码管显示,自动模式下实现自动转速控制。

5当温度每降低1℃则电风扇风速自动下降一个档位,环境低于21度时,电风扇停止工作。

6当温度每升高1℃则电风扇风速自动上升一个档位。

环境温度到30度以上时,系统以最大风速工作。

7实现数码管友好显示。

二、小直流电机调速控制系统的总体设计方案

2.1、系统硬件总体结构

图2.1系统硬件总体框图

2.2、芯片选择

1、AT89C52芯片:

选用该单片机作为智能电风扇控制部件,用来实现电风扇调速核心功能。

2、74LS245芯片:

用来驱动数码管。

3、74LS373芯片:

锁存器,用来锁存输出的信号。

4、74LS240芯片:

八单线驱动器,缓冲输出的信号。

5、DAC0832芯片:

片选地址是FF80H,AOUT1插孔作为模拟量的输出。

6、8255芯片:

可编程并行I/O接口芯片,用以扩展单片机的IO口。

7、LED数码显示管:

用来显示电机旋转的速度是加速还是减速。

8、741:

运算放大器。

9、9014:

NPN型三极管。

2.3、DAC0832的主要性能指标

 

D/A转换的基本原理是应用电阻解码网络,将N位数字量逐位转换为模拟量并求和,从而实现将N位数字量转换为相应的模拟量。

其性能指标为:

(1)分辨率:

相对分辨率=1/2N,N越大,分辨率越高(2)线性度(3)转换精度(4)建立时间(5)温度系数。

DAC0832引脚功能图如图2.2

图2.2数模转换DAC0832引脚功能

1、DI0~DI7:

8位数字信号输入端;

2、!

CS:

片选端;

ILE:

数据锁存允许控制端,高电平有效;

3、!

WR1:

输入寄存器写选通控制端。

当!

CS=0、ILE=1、!

WR1=0时,数据信号被锁存在输入寄存器中。

4、!

XFER:

数据传送控制

5、!

WR2:

DAC寄存器写选通控制端。

XFER=0,!

WR2=0时,输入寄存器状态传入DAC寄存器中

6、IOUT1:

电流输出1端,输入数字量全“1”时,IOUT1最大,输入数字量全为“0”时,IOUT1最小。

7、IOUT2:

D/A转换器电流输出2端,IOUT2+IOUT1=常数。

8、RFB:

外部反馈信号输入端,内部已有反馈电阻RFB,根据需要也可外接反馈电阻。

9、VCC:

电源输入端,可在+5V~+15V范围内。

10、DGND:

数字信号地。

11、AGND:

模拟信号地

2.4.数字温度传感器DS18B20

DS18B20“一线总线”数字化温度传感器支持“一线总线”接口,测量温度范围为-55~+125℃,在-10~+85℃范围内,精度为±

0.15℃。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如:

环境控制、设备或过程控制、测温类消费电子产品等。

DS18B20可以程序设定9~12位的分辨率,精度为±

0.15℃,温度采集具有准确性、实时性。

DS18B20的管脚排列如下:

DQ为数字信号输入/输出端;

GND为电源地;

VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

如图2.3所示。

图2.3数字温度传感器DS18B20引脚图

DS18B20检测的温度高于一定值时,单片机引脚输出高电平,打开电风扇,当温度低于一定值时,单片机引脚输出低电平,控制电风扇停止转动。

在此区间,每升高一度,风扇转速档位加一,风扇转速与档位的关系如表2.1所示:

表2.1风扇转速与档位的关系

环境温度℃

低于21.0

21.0-21.9

22.0-22.9

23.0-23.9

24.0-24.9

转速档位

1

2

3

4

25.0-25.9

26.0-26.9

27.0-27.9

28.0-28.9

29.0以上

5

6

7

8

9

三、系统硬件电路设计

3.1、AT89C52单片机最小系统:

AT89C52已包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。

整个系统结构紧凑,抗干扰能力强,性价比高。

图3.1为AT89C52芯片最小系统。

一方面,单片机要通过I/O口中接收输入信号,另一方面要通过I/O口控制数码管的初始化、显示方式以及要显示的字符。

因此,设计必须以单片机为核心,显示器为外围设备。

硬件上,单片机通过电路板电路与液晶显示电路相连;

软件上,单片机要下载完整的程序对二者进行适时的控制。

图3.1AT89C52芯片最小系统图

3.2.系统程序电路主程序CUP电路图:

AT89C52单片机P0、P2口扩充电路图如图3.2:

图3.2AT89C52系统管脚扩充图

3.3、DAC0832与AT89C52单片机接口电路设计

实验电路使用逻辑器件实现地址译码,地址FF80H接入数模转换器DAC0832片选段,通过数模转换后的模拟量通过运放放大驱动电机驱动,其电路图如图3.3所示:

图3.2DAC0832与AT89C52单片机接口及电机控制电路

3.4、显示电路与AT89C52单片机电路设计

实验电路使用IO扩充芯片8255及锁存芯片74LS245对六个数码管选通控制显示。

显示部分电路图如图3.3所示:

图3.3数码管显示部分电路图

四、系统程序流程设计

4.1、系统程序流程框图如图4.1

图4.1程序流程图

五、调试与测试结果分析

5.1、实验系统连线图

a、P3.0、P3.1、P3.2、P3.3分别连按键K1、K2、S1、S2

b、DS18b20数据线连P3.4

c、将DAC0832驱动电路AOUT接至直流电机

d、将P0口接至DAC0832数字输入端

e、将地址译码器电路(FF80H)接至DAC0832片选端

5.2、程序调试

程序上电时,直流电机默认以中档5档工作,系统默认工作在手动模式下。

数码管显示当前环境温度和电机运行档位。

当按下按键S1(P3.2)时,直流电机以加速转动,同时数码管显示档位速度,当速度达到最大时,继续按下键S1第5个数码管会显示“—”表示系统已达到最大风速

当按下按键S2(P3.2)时,直流电机以减速转动,同时数码管显示档位速度,当速度达到最小时,继续按下键S2第5个数码管会显示“—”表示系统已达到最小风速。

当按下系统模式控制切换键k1可以实现模式的切换,在自动模式下,数码管第一位显示“A”字样,表示工作于自动模式下,此时电机的转速由环境温度决定。

并且显示环境温度和当前温度下电机运行档位。

当按下定时键K2时,数码管闪烁的显示“000”,当按S1时,定时时间增加,数码管闪烁显示定时时间。

按S2键时,定时时间减少,同时数码管也闪烁显示定时时间。

再次按下K2键后,闪烁停止,定时开始,数码管显示定时剩余时间。

5.3、实验结果分析

电机运行正常时即可实现调速现象,按键的消抖使得调速现象更加明显。

按键S1实现电风扇加速运行,按键S2实现电风扇减速运行。

系统模式控制切换键k1可以实现模式的切换。

定时键K2实现定时设定和定时确定。

适当的控制按键,就可以实现所需要的效果。

六、程序设计总结

两周的单片机课程设计让我受益匪浅,无论从知识技能上还是团队合作方面。

上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。

但在课程设计使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。

在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会在QQ群里讨论或者是同学之间相互帮助。

团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。

我们组的题目是智能电风扇控制器设计,基本要求是实现电机速度的控制,并且通过数码管显示出来。

由于我在学院的创新实验室有过一年多的编程经验,因此在实验箱上实现基本功能并没有很大难度,基本功能实现后,我们组想到了使设计更加智能化和多功能化,于是我们加入了数字温度传感器温度采集和自动控制,以及定时功能。

并通过程序设计,实现比较人性化的数码管显示。

在整个程序设计和电路设计调试过程中,遇到了不少问题,最终也和组员共同解决了。

主要的问题有:

●仿真和实际的电路调试有一定的出入,在仿真上按键能够很好的工作,但是在实际的电路调试过程中,按键往往不大灵敏,常出现按一下,系统反应多次的问题,最后通过延时时间的调整,使得按键较好的工作。

●由于数码管采用动态显示方式,延时扫描时间的不恰当使得数码管显示出现跳动或者不稳定的问题,通过延时时间的正确设置和对整体程序的分析,使数码管的显示稳定正常。

●随着系统功能的增加,程序变的复杂,调试起来对程序的分析带来了一定的难度,最后通过功能函数的模块化使得程序更加清晰和易更改。

将数字温度传感器的函数单独设在一个C文件中,采用多文件编译的方式,也增加了程序的易移植性。

●程序的要完全运行正确,不仅要弄清楚电路图,尤其是各接口的接法,还要注重每个小的细节,因为往往一个很小的错误,使得程序出现一些无法预料的结果,在程序的调试过程中,我们组出现了将‘=’错写为了‘==’,结果当然运行不出来。

  单片机是很重要的一门课程,学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。

尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习。

七、参考文献

[1] 

陈海宴.51单片机原理及应用.北京:

北京航空航天大学出版社,2012.

[2] 

郭天祥.51单片机C语言教程.北京:

电子工业出版社,2005.

[3] 

胡启明,葛祥磊.Proteus从入门到精通.北京:

电子工业出版社,2012.

[4]张兆明.基于AT89S52单片机的自动温控电风扇设计.测控技术,2009,03(210820).

附录1:

系统程序

系统主函数

/**********************************************************************

**********************************************************************

@@设计题目:

@@设计者:

@@设计功能:

1.系统分为自动模式和手动模式,通过自动控制手动控制切换键K1(P3.1)可以实现电机转速控制,并用数码管显示其工作在何种状态。

2.手动状态可以通过S1、S2(P3.2加,P3.3减)实现9级风速增减调速,并通过数码管显示。

3.通过DS18B20可以实现风扇附近环境温度的检测,温度精确到0.1摄氏度,并通过数码管可以显示实时温度当系统工作切换到自动控制状态时,系统根据环境温度自动控制转速的快慢。

4.两种工作状态下,均可以通过定时设置功能键K1(P3.0)可以实现风扇定时工作,通过时间增减键(P3.2加,P3.4减)实现定时时间设定时间到后风扇停止工作

@@系统连线

P3.0、P3.1、P3.2、P3.3分别连按键K1、K2、S1、S2

DS18b20数据线连P3.4

@@系统参数:

1.转速档位(本参数为仿真参数)

共分为9个档位,从低到高为1-9档,通过数码管显示,对应电机两端电压分别为1.31V、2.62V、3.93V、5.24V、6.55V、7.86V、9.17V、10.5V、11.8V

2.温度参数

系统使用的DS18b20可以实现0.0625摄氏度的精度。

通过四舍五入,数码管显示可以实现0.1摄氏度的精度。

3.自动模式下环境温度与转速关系

环境温度范围与转速关系为:

21以下,停止;

21-221档;

22-232档;

23-243档;

24-254档;

25-265档;

26-276档;

27-287档;

28-298档;

29以上,9档

4.定时时间参数

系统共设置7个定时时间,分别为1min,5min,10min,30min,1h,2h,5h

********************************************************************************************************************************************/

#include"

reg51.h"

#include"

ds18b20.h"

#include<

absacc.h>

//用于访问绝对地址

#include<

math.H>

#defineucharunsignedchar

#defineuintunsignedint

#defineON1

#defineOFF0

#defineConfirm2

#defineTimeGrade11//定时等级分别设置为1分钟,5分钟,10分钟,30分钟,1小时,2小时,5小时

#defineTimeGrade25

#defineTimeGrade310

#defineTimeGrade430

#defineTimeGrade560

#defineTimeGrade6120

#defineTimeGrade7300

#defineaddXBYTE[0xff23]//控制寄存器

#definePAXBYTE[0xff20]//位选为8255,A口

#definePBXBYTE[0xff21]//段选为8255,B口

#defineDAXBYTE[0xff80]//P0对应的地址

unsignedchartflag;

//定时器时间标志

unsignedcharTimeGrade;

//风扇定时等级

unsignedintTimeGo,TIME,t1flag;

//风扇定时时间标志位

inttemp_T,temp_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,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x88,0x8b,0xbf,0xff};

//共阳数码管编码表

ucharcodewei[]={0x01,0x02,0x04,0x08,0x10,0x20};

voiddelayMS(uintz);

voidInitial(void);

voidTime_Set(void);

voiddisplay(ucharaa,ucharbb);

voidHandle_display(void);

voidKey_check(void);

voidAnto_Control_speed(void);

voidTempTrans(void);

voiddelayMS(uintz)//延时函数

{

ucharx,y;

for(x=z;

x>

0;

x--)

for(y=110;

y>

y--);

}

voiddisplay(ucharaa,ucharbb)//显示子程序

PA=~wei[aa];

//位选

PB=table[bb];

//段选

delayMS

(2);

voidInitial(void)

EX0=1;

//开外部中断0

EX1=1;

//开外部中断1

EA=1;

//开总中断

IT0=1;

//下降沿触发中断0

IT1=1;

//下降沿触发中断1

TMOD=0x11;

TH0=(65536-20000)/256;

TL0=(65536-20000)%256;

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

ET0=1;

TR0=1;

ET1=1;

voidHandle_display(void)//操作时数码管显示,包括温度,档位,定时时间和剩余时间

uchari,j;

volt_a=volt_d/28;

display(0,volt_a);

//数码管输出档位

if(TC==OFF)//为设置时间时初始状态

{

if(TBZF==1)

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_Set();

for(j=80;

j>

j--)

{

display(4,(TIME-TimeGo)/100);

display(3,(TIME-TimeGo)%100/10);

display(2,(TIME-TimeGo)%100%10);

display(0,volt_a);

}

if(TC==ON)

for(i=100;

i>

i--)

{

display(4,23);

display(3,23);

display(2,23);

//数码管输出模拟量一位小数

}

}

voidKey_check(void)//按键扫描函数

{unsignedchartemp;

temp=P3&

0x03;

if(temp!

=0x03)

delayMS(30);

=0x03)//当P3.4和P3.5按下时

{

if(temp==0x01)//模式设置键被按下

Auto=~Auto;

elseif(temp==0x02)//定时设置键被按下

TC++;

if(TC==3)

TC=0;

}

voidTempTrans(void)

if

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2