最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

智能温控风扇

来源:动视网 责编:小OO 时间:2025-10-02 07:35:42
文档

智能温控风扇

单片机实训设计报告题目:智能温控风扇******学号:**********院系:信息电子工程学院专业年级:通信09-1班********日期:2011年11月19日摘要本设计是以一个电风扇为控制对象,以ATC51为控制系统核心,通过单片机系统设计实现对电风扇温度的显示和控制功能。本温度控制系统是一个自动闭环反馈调节系统,利用DS18B20对室内温度的探测并适时显示当前温度值,对电风扇温度进行检测,经过调理电路得到合适的电压信号。经A/D转换芯片得到相应的温度值,将所得的温度值与设定温度值相
推荐度:
导读单片机实训设计报告题目:智能温控风扇******学号:**********院系:信息电子工程学院专业年级:通信09-1班********日期:2011年11月19日摘要本设计是以一个电风扇为控制对象,以ATC51为控制系统核心,通过单片机系统设计实现对电风扇温度的显示和控制功能。本温度控制系统是一个自动闭环反馈调节系统,利用DS18B20对室内温度的探测并适时显示当前温度值,对电风扇温度进行检测,经过调理电路得到合适的电压信号。经A/D转换芯片得到相应的温度值,将所得的温度值与设定温度值相
单片机实训设计报告

题目:智能温控风扇

******

学号:**********

    院系:信息电子工程学院

  专业年级:通信09-1班

********

日期:2011年11月19日

摘要

本设计是以一个电风扇为控制对象,以ATC51为控制系统核心,通过单片机系统设计实现对电风扇温度的显示和控制功能。本温度控制系统是一个自动闭环反馈调节系统,利用DS18B20对室内温度的探测并适时显示当前温度值,对电风扇温度进行检测,经过调理电路得到合适的电压信号。经A/D转换芯片得到相应的温度值,将所得的温度值与设定温度值相比较得到偏差。通过对偏差信号的处理获得控制信号,去调节继电器的转速,从而实现对电风扇温度的显示和自动控制。

关键词

ATC51、LCD1602、DS18B20,红外线

第一章绪论

1.1课程设计背景和目的..............................................................................4

1.2发展趋势..................................................................................................4

1.3温度检测的主要方法..............................................................................4

1.4课程设计的主要内容..............................................................................4

第二章 系统总体方案设计

2.1 系统硬件设计方案........................................................................................5

2.1.1 芯片选择.....................................................................................................5

2.1.2 温度检测.....................................................................................................5

2.1.3 A/D转换电路...............................................................................................5

2.1.4 LED显示......................................................................................................5

2.1.5 控制电路.....................................................................................................5

2.2 系统软件设计方案........................................................................................5

第三章 系统硬件设计

3.1.1ATC51简介...............................................................................................6

3.1.2 LCD1602 简介.............................................................................................7

3.1.3 DS18B20简介..............................................................................................8

3.1.4 A/D转换.......................................................................................................9

3.1.5 LED显示......................................................................................................10

3.1.6控制电路

第四章 系统软件设计

4.1程序初始化.....................................................................................................11

4.2 主程序............................................................................................................13

4.3A/D转换子程序..............................................................................................15

4.4 显示子程序....................................................................................................16

4.5 控制字程序....................................................................................................17

4.6 报警子程序....................................................................................................21

结论.......................................................................................................................22

参考文献...............................................................................................................22

致谢.......................................................................................................................22

1.1课程设计背景和目的

目前绝大多数楼宇风扇和电灯在使用时都是由人员手动操作,当天气闷热时由楼宇内的人员手动开启风扇和选调风速,当灯光不足或在上楼梯时手动开启电灯,常常会由于人员的疏忽在人离开之后忘记关闭设备而导致用电的浪费。在本系统设计中,考虑采用单片机为控制器,以热释人体红外和温度传感系统来检测室内有无人员以及室内温度,设计一个智能温控风扇及照明控制系统,可以实时调节和控制室内的风扇和灯光的照明,从而达到智能控制和节能的目的。

1.2发展趋势

目前,电风扇行业改变最大的要数功能的技术创新及应用。近年来,随着空调业的价格水平不断下降,其风头早已超过了风扇,但空调的强大制冷效果以及高耗电量、且封闭空间的弊端,使得传统的借助空气流动降低热量但通风效果和功耗低的风扇仍然存在很大的市场。部分风扇企业考虑到两者之间的差异性,就在现有的功能上借鉴并创造设计出了一些更具人性化和个性化的功能,形成了空调、风扇两者互补的局面,使两者相得益彰,共同发展。而智能风扇更为领先、正所谓“万变不离其宗”,透过当今千姿百态的电风扇市场,我们可以预言:今后的电风扇一定会继续吹着创新设计风和人性功能风。

1.3温度测量

DS18B20是美国DALLAS公司生产的1-wire式单总线的数字温度传感器。具有耐磨耐碰,体积小,线路简单,使用方便,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量。例如:冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温,汽车空调、冰箱、冷柜、以及中低温干燥箱等。 

1.4课程设计的主要内容:

2.1 系统硬件设计方案

人体红外感应模块电路主要由人体被动红外探头、菲涅尔透镜、专用芯片BISS0001组成。当有人出现在它的探测区,传感器便能探测到信号并把信号传给单片机,单片机再根据实际情况是否该开启器件设备或让房间的电器设备处于一种可开启状态。关于走廊及洗手问用灯情况,当晚上有人经过时,人体红外感应到人便开启走廊用灯或者洗手间用灯。

2.1.1 芯片选择

ATC51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。ATC2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。适合采用此芯片。

2.1.2 温度检测

电风扇温控电路能够控制电风扇模拟自然风运转,并根据气温自动调节阵风维持的时间和频度。在环境温度低于15℃时反转,大于15℃小于25℃不转。大于25℃小于28℃转速慢,大于28℃小于40℃转速快,大于41报警。

2.1.3A/D转换电路

A/D转换电路和D/A转换电路主要用于各种电子设备的数字信号处理电路中,模拟信号在进行处理时,首先要转换成数字信号,或在处理后还要变回模拟信号。A/D转换电路是将连续变化的音频信号波形变成离散的数字信号,再进行进…步的处理。从前述可知,A/D转换处理的基本过程是取样量化和编码。取样后的样点量化就是将模拟信号每个取样点的直流电压值变成数字信号的二进制代码。

2.1.4LED显示

LED显示屏(LEDdisplay,LED Screen):又叫电子显示屏或者飘字屏幕。是由LED点阵组成,通 过红色,蓝色,绿色LED灯的亮灭来显示文字、图片、动画、视频,内容可以随时更换,各部分组件都是模块化结构的显示器件LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展

2.1.5控制电路

步进驱动器:是一种能使步进电机运转的功率放大器,能把控制器

发来的脉冲信号转化为步进电机的角位移,电机的转速与脉冲频率

成正比,所以控制脉冲频率可以精确调速,控制脉冲数就可以精确

定位。通过按键,控制电机的正转、反转、停止。

3.1.1ATC51简介

ATC51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。ATC2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的ATC51是一种高效微控制器,ATC2051是它的一种精简版本。ATC单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案

管脚说明:

VCC:供电电压。 

  GND:接地。 

  P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 

  P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 

  P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 

  P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 

  P3口也可作为ATC51的一些特殊功能口,如下表所示: 

  口管脚 备选功能 

  P3.0 RXD(串行输入口) 

  P3.1 TXD(串行输出口) 

  P3.2 /INT0(外部中断0) 

  P3.3 /INT1(外部中断1) 

  P3.4 T0(记时器0外部输入) 

  P3.5 T1(记时器1外部输入) 

  P3.6 /WR(外部数据存储器写选通) 

  P3.7 /RD(外部数据存储器读选通) 

  P3口同时为闪烁编程和编程校验接收一些控制信号。 

  RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 

  ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 

  /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 

  /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 

  XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 

XTAL2:来自反向振荡器的输出。

3.1.2LCD1602 简介

字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,定义如下表所示:

                                 字符型LCD的引脚定义

3.1.3DS18B20简介

DS18B20内部结构主要由四部分组成:位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图1:

DS18B20引脚定义:

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

     (2)GND为电源地;

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

 DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。

利用单片机的P1.3口控制DSl8B20,将实时采集到的温度与单片机软件设置的数值做对比,并用P1.7口控制三极管8550的导通和截止,实现了用删控制电机的转速,让风扇在不同的温度下有不同的档位的变化。

3.1.4A/D转换:

硬件设计:8路输入模拟信号数值显示电路由A/D转换.数据处理及显示控制等组成.A/D转换由集成电路0809完成.0809具有8路模拟输入端口,地址线(23--25脚)可决定对那一路模拟输入做A/D转换.第22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存,6脚为测试控制,当输入一个2US宽的高电平时,就可是A/D转换,7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平,9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出;10脚为0809的时钟输入端,利用单片机30脚的六分频晶振信号在通过14024二分频得到.单片机的P1,P3端口做四位LED数码管显示控制,P0端口做A/D转换数据读入用,P2口用做0809的A/D转换控制.

系统主要程序设计

  初始化程序

系统上电时,将70H--77H内存单元清零,P2口置0.

  主程序

在刚上电时,因70H--77H内存单元的数据位0,则每一通道的数码管显示值都为000.当进行一次测量后,将显示出每一通道的A/D转换值,每个通道的数据显示时间在1S左右.主程序在调用显示程序和测试程之间的循环,起流程图为

   开始

  

  初始化

调用子程序 

调用A/D转换子程序  

显示子程序

3.1.5LcD显示

图1所 即为LCD七段码中其中一段字形的显示电路。A端接输人字形码,取“0”或“1", B端接周期性矩形脉冲信号,这样当A二1时,在异或门的输出端C就可以得到与B端同频反相的脉冲信号,将B和C端的信号加在LCD显示器的两端,就得到了所需要的方波信号,其电压是脉冲信号的两倍,因而显示器显示字形;而当A=O时,异或门输出脉冲信号C与其输入信号B同频同相,从而使LCD显示器的两端电压为0,显示器呈白色而不显示字形。

LED/LCD通用显示译码器组成

LED 与 LCD显示的区别就是,前者直接利用译码器输出的电平信号驱动发光二极管导通或截止,而后者需要依据译码器输出的电平状态,在液晶两极之间产生相应的同相或反相脉冲信号,以使得液晶呈现亮色或暗色[3]。通用显示译码器组成如图2所示。其中,七段显示译码器输出7位字形码,可分为共阴极和共阳极译码输出。当LED/LCD选择端为“1”电平时,分频器输出的50 Hz脉冲信号从与门输出,一路送人异或门,输出的反相(七段译码器输出‘1’时)或同相(七段译码器输出‘0’时)脉冲接至LCD的公共电极,而另一路同相脉冲直接连LCD的正面电极,从而在液晶两端形成‘0’电压或方波电压进而驱动液晶工作;当LED/LCD选择端为“0”电平时,50 Hz脉冲信号不能从与门输出,即异或门公共输人端为‘0',七段显示译码器的字形码经异或门正常输出,驱动LED工作。

LCD显示器简介

1. LCD显示器的结构和原理

2.不同类型的液晶显示器件其组成可能会有所不同,但是所有液晶显示器件都可以认为是由两片光刻有透明导电电极的基板,夹持一个液晶层,封接成一个扁平盒,有时在外表面还可能贴装上偏光片等构成。

3.液晶显示的原理是液晶在电场的作用下,液晶分子的排列方式发生了改变,从而使其光学性质发生了变化。

4.

2. LCD显示器分类    

    从显示的形式上通常可分笔段型、字符型和点阵图形型。

笔段型。笔段型 LCD是以长条状显示像素组成一位显示。 在形状上总是围绕数字“8”的结构变化,广泛用于电子表、数字仪表中。

字符型。字符型液晶显示模块是专门用来显示字母、数字、符号、日文假名等的点阵型液晶显示模块。在电极图形设计上它是由若干个 5 × 8或 5×11点阵组成,每一个点阵显示一个字符。这类模块广泛应用于寻呼机、手机、电子记事本等类电子设备中。

点阵图形型。点阵图形型是在一平板上排列多行和多列,形成矩阵形式的晶格点,点的大小可根据显示的清晰度来设计。这类液晶显示器可广泛用于图形显示如游戏机、笔记本电脑和彩色电视等设备中。

3.字符型LCD显示器

专门用来显示字母、数字、符号等点阵式LCD。

   LCD同样需要驱动,它的驱动电路相对复杂,采用专用的驱动器芯片。

所以厂家将液晶显示器件、驱动主电路HD44780、少量阻、容元件、结构件装配在一个PCB线路板上,这样的组件称之为液晶显示模块。只需通过单片机的I/O口即可驱动LCD显示。

有16×1, 16×2 (16列2行即32个字符), 20×2等产品。

为了使用方便,字符型液晶显示模块目前在国际上已经规范化,无论显示屏规格如何变化,其电特性和接口形式都是统一的(引脚)

4.1程序初始化

◆初始化:

◆大概涉及到4个命令,发四次命令。所以把发命令编程子程序,调用子程序时只是命令代码不一样。

◆void busy()

◆{rs=0;rw=1;en=1;

◆ delay(1);

◆ f=P0;

◆ en=0;

◆ busy1=f&0x80;}

◆void wc(unsigned char a)

◆ {while(busy1==0x80);

◆  rs=0;rw=0;en=0;

◆  P0=a;

◆  en=1;delay(1);en=0;}

◆void chsh()

◆  {wc(0x38);delay(1);

◆    wc(0x01);delay(1);

◆    wc(0x0c);delay(1);

◆    wc(0x06);delay(1);}

◆Void main()

◆{…

◆chsh();

◆…

◆}

2.设定第一行显示起始地址

◆Void main()

◆{…

◆wc(0x80);

◆…

◆}

3.送数据到数据端口,显示字符串

送字符串到数据端口,实际上是逐个把数据送过去。所以把送数据编程子程序,调用子程序时只是数据不一样。

unsigned char hy[]={"The number is"};

◆void wd(unsigned char b)

◆ {while(busy1==0x80);

◆  rs=1;rw=0;en=0;

◆  P0=b;

◆  en=1;delay(1);en=0;}

◆Void main()

◆{…

◆for(j=0;j<13;j++)

◆    {wd(hy[j]);}

◆…

◆}

4.设定第二行显示起始地址

◆Void main()

◆{…

◆wc(0xc8);

◆…

◆}

 5.送数据到数据端口,显示数据

◆void dispd(unsigned char c)

◆{unsigned char d;

◆ d=_crol_(c,4);

◆ d=d&0x0f;

◆ if(d<0x0a)   d=d+0x30;

◆ else         d=d+0x37;

◆ wd(d);

◆ c=c&0x0f;

◆ if(c<0x0a)  c=c+0x30;

◆ else        c=c+0x07;

◆ wd(c);}

◆Void main()

◆{…

◆Unsigned char e=0x43;

◆dispd(e);

◆…

◆}

4.2主程序

◆void main(void)

◆{ unsigned char j;

◆  chsh();

◆   while(1)

◆   { 

◆   read_tem();  

◆       wc(0x80);

◆ for(j=0;j<12;j++)

◆   {wd(hy[j]);}             

◆    Disp_Temp();

◆ if(n<15)

◆ {fanzh();}    

◆ if((n>25)&&(n<=28))

◆ {zhengzh1();} 

◆if((n>29)&&(n<=40))

◆ {zhengzh();} 

◆ if(n>40){

◆ BEEP=0;

◆ delay(300);

◆ BEEP=1;

◆ delay(300);

◆ led=0;

◆ delay(200);

◆ led=1;

◆ delay(200);

◆  

◆ }

◆    }

◆ 

◆           

◆  

◆}

◆/*********************************************************/

◆/*main()

◆{while(1)

◆{

◆ if(k1==0) {while(k1==0);zhengzh(1);}

◆ if(k2==0) {while(k2==0);fanzh(1);}

◆} 

◆}*/

◆/*********************************************************/

4.3A/D转换子程序

◆#include

◆#include     

◆unsigned char code sz2[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};            

◆sbit eoc=P2^0;

◆sbit start=P2^1;

◆sbit clock=P2^2;

◆sbit oe=P2^3;

◆sbit seg1=P3^4;

◆sbit seg2=P3^5;

◆void delay(unsigned int a)                

◆{    

◆    unsigned char b;

◆    while(--a!= 0)

◆{        

◆     for(b=0;b<125;b++);

◆    }

◆}

◆void disp0(unsigned char m)

◆{unsigned char i,j; 

◆       i=m&0xf0; 

◆         i=_crol_(i,4);

◆        P1=sz2[i];

◆        seg1=0;

◆        delay(2);

◆        P3=0xff;

◆        j=m&0x0f;

◆         P1=sz2[j];

◆        seg2=0;

◆        delay(2);

◆        P3=0xff;     

◆          }

◆void main()                          

◆{ unsigned char m;

◆EA=1;

◆ET0=1;

◆TMOD=0x01;

◆TH0=(65536-1)/256;

◆TL0=(65536-1)%256;

◆TR0=1;

◆while(1)

◆{

◆ start=0;delay(1);start=1;delay(1);start=0;delay(1);

◆ while(eoc==0);

◆ oe=1;

◆ m=P0;

◆ disp0(m);

◆ oe=0;

◆ }

◆}

◆void lsd() interrupt 1

◆{

◆  TH0=(65536-1)/256;

◆  TL0=(65536-1)%256;

◆  clock=~clock;

◆}

4.4 显示子程序

void Disp_Temp()//显示温度

{

 

  if((temp[1]&0xf8)==0xf8)

   { disp[0]=0x2d;temp[1]=~temp[1]; temp[0]=~temp[0]+1;}

  else  disp[0]=0x20;    

  m=temp[0]&0x0f;

  disp[3]=di[m];     //查表得小数位的值 

n=((temp[0]&0xf0)>>4)|((temp[1]&0x0f)<<4);

if(n>0x80) {beep();}

  disp[1]=n/10;

  disp[2]=n%10;

wd(disp[0]);

dispd(disp[1]);

dispd(disp[2]);

wd(0x2e);

dispd(disp[3]);

wd(0x6f);

wd(0x43);

}

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

4.5 控制字程序

void write_byte(unsigned char dat)     //向DS18B20写入一个字节数据

{

    unsigned char i;

for(i=0;i<8;i++)

    {

        DQ=0;

        DQ=dat&0x01;

        delay_8us(4);      //延时约52微秒,给DS18B20采样

        DQ=1;

     dat>>=1;    

    }

}

  void delay1(unsigned int a)                

{    

    unsigned char b;

    while(--a!= 0)

   {        

for(b=0;b<125;b++);

    }

}

void fanzh()

{ unsigned char j;   

for(j=0;j<8;j++)

       {P1=zz[j];delay1(50);}

     }

void zhengzh()

{ unsigned char j;   

for(j=0;j<8;j++)

       {P1=fz[j];delay1(50);}

     }

void zhengzh1()

{ unsigned char j;   

for(j=0;j<8;j++)

       {P1=fz[j];delay1(90);}

     }

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

 - 功能描述:通过单总线从DS18B20读出一字节的数据    

 - 返回说明:dat 从DS18B20读出的数据 

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

unsigned char read_byte(void)    //从DS18B20读出一个字节数据

{

    unsigned char i,dat;

for(i=0;i<8;i++)

    {

        DQ=0;

     dat>>=1;

        DQ=1;

        if(DQ)      //采样

        dat|=0x80;

        delay_8us(4);

    }

    return dat;

}

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

 - 功能描述:启动测温和测温结果数据处理

 - 隶属模块:传感器模块

 - 函数属性:外,用户可调用

 - 参数说明:    

 - 返回说明:

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

4.6报警子程序

void beep()

  {

    unsigned char i;

for (i=0;i<100;i++)

    {

      delay(500);

      BEEP=~BEEP;                //BEEP取反

    } 

    BEEP=1;                      //关闭蜂鸣器

  }

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

 init_ds18b02(void)        //DS18B20初始化

{

    DQ=1;delay_8us(3);    //延时约25微秒

    DQ=0;    delay_8us(80);    //延时约650微秒 

  

    DQ=1;    delay_8us(2);

    presence = DQ;

    delay_8us(20);    //延时约170微秒

   DQ = 1; 

   return(presence);

    }

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

 - 功能描述:通过单总线向DS18B20写入一字节的数据

 - 参数说明:dat 要写入的数据    

 - 返回说明:无

结论

本设计本着方便实用,易于扩展的指导思想,采用ATC51为处理。加上各种外围电路构成整个垫片机控制系统,而且用热释人体红外和温度传感系统来检测室内有无人员及室内温度,设计了一个智能温控风扇及照明控制系统。该系统可以根据室内的温度来实时自动控制风扇的开关及风扇的档位;用蜂鸣器作为报警源,当温度超过一定范围也启动长鸣报警声。能够达到智能控制和节能的目的。由于个人的能力有限,在本次实训中还有许多要改进的地方,让产品更加完善。

参考文献:

【1】胡汉才,单片机原理及系统设计【M】清华大学出版社。

【2】李朝青,单片机原理及接口技术【M】北京航空航天出版社。

【3】张开生,MSC-51单片机温度控制系统设计【J】微计算机信息。

致谢:

通过一周的学习与试验,我从中学会了智能风扇的工作原理,红外线感应及合作交流能力。不仅拓宽了专业知识,而且提升了自己的自学能力,在此要感谢刘老师对我们的指导与鼓励,教会了我们在遇到困难时不屈不挠,勇于直前的拼搏精神。为以后的学习与工作提供了宝贵的财富与经验。再一次表示深深的感谢与敬意!

                                 2011年11月19日

文档

智能温控风扇

单片机实训设计报告题目:智能温控风扇******学号:**********院系:信息电子工程学院专业年级:通信09-1班********日期:2011年11月19日摘要本设计是以一个电风扇为控制对象,以ATC51为控制系统核心,通过单片机系统设计实现对电风扇温度的显示和控制功能。本温度控制系统是一个自动闭环反馈调节系统,利用DS18B20对室内温度的探测并适时显示当前温度值,对电风扇温度进行检测,经过调理电路得到合适的电压信号。经A/D转换芯片得到相应的温度值,将所得的温度值与设定温度值相
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top