当前位置:文档之家› 基于单片机的智能风扇设计报告

基于单片机的智能风扇设计报告

目录

引言 (2)

一.设计目的 (3)

二.设计方案 (3)

(一)流程图 (3)

(二)具体流程 (3)

三.元件介绍 (4)

(一)温度传感器 (4)

(二)1602液晶显示屏 (5)

四.原理图及实物图设计 (6)

五.总结 (9)

六.参考文献 (10)

七. 部分程序: (12)

引言

电风扇曾一度被认为是空调产品冲击下的淘汰品,其实并非如此,市场人士称,家用电风扇并没有随着空调的普及而淡出市场,近两年反而出现了市场销售复苏的态势。其主要原因:一是风扇和空调的降温效果不同——空调有强大的制冷功能,可以快速有效地降低环境温度,但电风扇的风更温和,更加适合老人儿童和体质较弱的人使用;二是电风扇有价格优势,价格低廉而且相对省电,安装和使用都非常简单。

尽管电风扇有其市场优势,但传统电风扇还是有许多地方应当进行改良的,最突出的缺点是它不能根据温度的变化适时调节风力大小,对于夜间温差大的地区,人们在夏夜使用电风扇时可能遇到这样的问题:当凌晨降温的时候电风扇依然在工作,可是人们因为熟睡而无法察觉,既浪费电资源又容易引起感冒,传统的机械定时器虽然能够控制电风扇在工作一定后关闭,但定时范围有限,且无法对温度变化灵活处理。鉴于以上方面的考虑,我们需要设计一种智能电风扇控制系统来解决这些问题。

基于单片机的智能风扇设计

一、设计目的

(一)通过设计了解DS18B20、1602液晶显示屏以及直流电机的基本工作原理 (二)掌握51单片机的外部中断的工作方式 (三)掌握keil 软件以及proteus 软件的使用 (四)学会团队合作

二、设计方案

设计一个智能风扇的只能控制系统。 (一)流程图如下:

(二)具体流程:

1.温度传感器DS18B20检测外界温度,并且传给单片机。

2.单片机通过把18B20传回来的数据进行处理,是数据转化成摄氏度。

3.通过温度数据的变化,来改变PWM 波,来改变电机的旋转速度。

4.用1602液晶显示屏显示出来当前温度和当前风速。

三、元件介绍

(一)、温度传感器DS18B20:

DS18B20内部结构主要由四部分组成:64位光刻ROM 、温度传感器、非挥发的温度报警触发器TH 和TL 、配置寄存器。DS18B20的管脚排列、各种封装形式如图12所示,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND 为地信号;VDD 为可选择的VDD 引脚。当工作于寄生电源时,此引脚必须接地。

51单片机 电源电路 复位电路 时钟电路 显示模块

电机模块

温度检测模块

图12 外部封装形式

DS18B20的测温原理如图15所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器 1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计

数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图2中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是

DS18B20的测温原理。

另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。

(二)、1602液晶显示屏:

工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)

注:为了表示的方便,后文皆以1表示高电平,0表示低电平。

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。

1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。

1602采用标准的16脚接口,其中:

第1脚:VSS为电源地

第2脚:VCC接5V电源正极

第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

第6脚:E(或EN)端为使能(enable)端。

第7~14脚:D0~D7为8位双向数据端。

第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。

四、原理图及实物图设计

(一)、原理图:

本原理图是通过proteus软件仿真出来的。以下是详细介绍:

最小系统是由AT89C51、电源、12M晶振时钟电路、复位电路组成。

液晶显示模块的数据传输是通过总线的形式连接到单片机的P0口上的,以此来向单片机传输数据。其三个控制管脚以此接在P30/P31/P32上。

DS18B20的信号管脚接在了单片机的P33口实时想单片机传输温度。

直流电动机的一个管脚接在了电源地上,另一个管脚接在了单片机的P34口上,接受单片机传来的PWM控制波形。

(二)、实物图:

总实物图如下:

1.最小系统模块:

单片机要想正常工作,最基本的必须要有电源、时钟电路、复位电路。(1). 时钟电路

XTAL1(19 脚):芯片内部振荡电路输入端。

XTAL2(18 脚):芯片内部振荡电路输出端。

XTAL1 和XTAL2 是独立的输入和

输出反相放大器,它们可以被配置为使

用石英晶振的片内振荡器,或者是器件

直接由外部时钟驱动。本实验中采用的

是内时钟模式,即采用利用芯片内部的

振荡电路,在XTAL1、XTAL2 的引脚

上外接定时元件,内部振荡器便能产生

自激振荡,在本实验套件中采用的

11.0592M 的石英晶振。和晶振并联的

两个电容的大小对振荡频率有微小影

响,可以起到频率微调作用。当采用石英晶振时,电容使用30pF;

(2). 复位电路

在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。

5l 单片机的复位引脚RST 出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST 持续为高电平,单片机就处于循环复位状态。

复位操作通常有两种基本形式:上电自动复位和开关复位。上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。一般来说,只要RST 管脚上保持10ms 以上的高电平,就能使单片机有效的复位。

(3). P0 口外接上拉电阻

51 单片机的P0 端口为开漏输出,内部无上拉电阻。所以在当做普通I/O 输出数据时,由于V2 截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。另外,避免输入时读取数据出错,也需外接上拉电阻。为了能使P0 口在输出时能驱动NMOS 电路和避免输入时读取数据出错,需外接上拉电阻。在本实验中采用的是外加一个10K 排阻。

2.稳压模块:

51单片机要想稳定工作,所需电压必须为5V,

而且必须要稳定,尽量不要有波动。鉴于有一个

7.2V的直流电源,于是就设计了一个7.2V转5V的

稳压电路。三端稳压器是最常用的稳压芯片,通过

匹配一些电解电容,可以得到一个简单而又使用的

稳压电路。考虑到实用性以及可读性,在该模块添

加了一个手动按键以及电源指示灯。实物图如右

图。

3.温度检测:

独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯,这给温度的提取带来了极大的方便。而且工作电源: 3~5V的直流电,这样可以将供电直接接到5V和电源地上。试验中我把信号脚接在了单片机的P33口上,通过P33口向18b20写指令,写数据,读数据。

关键是数据的处理,DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。

4.直流电机的控制:

直流电动机只有两个引脚,而且两个引脚

的电平不一样即可实现正反转控制;其中一个引

脚上给不同频率的PWM波形即可实现速度的控

制。本实验中把其中一个管脚接在了单片机的

P34上,接受来自单片机的PWM波形。而该波形是受温度来控制的,单片机根据获得温度数据,划分出档位,来调节PWM的高低电平的时间长短。用定时器来计时,一秒钟作为一个周期,高电平的时间通过线性关系由度值调节。这样,电机就可以实现智能调速了。

另外,单片机的输出电流很小,直接驱动不了

直流电机动机,所以应该用一个驱动来专门驱动电

机的转动。该驱动板很简单,直接引过来电源,另

外两只管脚接收单片机的PWM的控制波形,驱动板

的数去直接引出来接在直流电动机的两个管脚上即

可。实物如图:

5.液晶显示模块:

风力和温度最终是要显示出来,能用肉眼看到的。最简单的是用数码管显示出来,但是鉴于得用至少用7个,那就必须得用到595或只是其他锁存器,控制起来稍微麻烦一点。并且,不够直观。而1602液晶显示屏既简单有可读性强,最终选择用1602来做显示这一部分。

实验时,液晶显示屏显示时应该有写指令,写数据才能是数据显示出来。当然还有位置函数,这样什么数据,在哪里显示就能随心所欲了。

五、总结

在做这次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的实际资料是十分必要的,也是必不可少的。

其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:proteus仿真、keil、C语言、模拟和数字电路知识等。虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。

最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。

在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。

六、部分程序

//主程序/////////////////////////////////

main()

{

BYTE i;

system_Ini();

lcd_init(); // 初始化LCD

delay(10);

//静态显示

lcd_pos(0); // 设置显示位置为第一行的第5个字符

i = 0;

while(dis1[i] != '\0')

{ // 显示字符"10030105_22_23"

lcd_wdat(dis1[i]);

i++;

}

lcd_pos(0x40); // 设置显示位置为第二行第1个字符

i = 0;

while(i<=3)

{

lcd_wdat(dis2[i]);

i++;

}

lcd_pos(0x48); // 设置显示位置为第二行第个字符

i = 0;

while(i<=4)

{

lcd_wdat(dis2_1[i]);

i++;

}

//动态显示

while(1)

{

GetTemp();

dis2_2[0]=Temperature%100/10+0x2f; //十位dis2_2[1]=Temperature%10+0x30; //个位

lcd_pos(0x44); // 显示实时温度

i = 0;

while(i<=1)

{

lcd_wdat(dis2_2[i]);

i++;

}

if(dis2_2[0]==48) dis2_3[0]=48;

else if(dis2_2[0]==49) dis2_3[0]=49+(dis2_2[1]-48)/3; else if(dis2_2[0]==50) dis2_3[0]=52+(dis2_2[1]-48)/3; else dis2_3[0]=55;

lcd_pos(0x4d); // 显示实时温度

i = 0;

while(i<=0)

{

lcd_wdat(dis2_3[i]);

i++;

}

}

}

七、参考资料

[1] 郑锋. 51单片机应用系统. 北京:中国铁道部出版社, 2010.

[2]李林功.单片机原理与应用. 北京:机械工业出版社,2008.

[3] 谭浩强.C语言设计(第三版). 北京:清华大学出版社, 2005.

[4] 杨素行. 模拟电子技术基础(第三版). 北京:高等教育出版社, 2005.

[5] 李群芳. 单片机微机计算机与接口技术(第三版)

相关主题
文本预览
相关文档 最新文档