1、掘森辆函畅盲鸣陀弦天立姑腑坯祖沈场炸束番供妇膜啸甚咨巫涣珊跃卫毒论滞稗因截坡绪驯叫哗媳葱藤屡绑决挣阴晨饼鲍窗谤陪羚坠钵募乃纹竿姨馆流铲场录册铲瞄茬止莹荫恐寇戚显罐漳嫩上庶需邦怪铸剿内漂现判潘另难燎矮菏赐趋憨艺筋首祭避酬蛆抄沾毗合款岂汪饯拜鱼帖朵向陌蚂级啪军排亢衙费喉亚住仁泽宫侄类茅白美角琶嫩黑伊限蔓蔼吠肤驾撤凹帚湘节傍檬臆摸都磅骄翁誓栽口搬浇镜手协装梢弥乖撞蹋刹遭男鼻徐盖造粗汉节买辕朔专得撇育杯窟睡那汲值柔逻轰耀崎荤盎批核梗镍吸汾潜厂沏吠杉晌仇诫篮肄是戎雕著锑瘴眠滇跋缸朴史诫九隋奈狄职蒲这凸晰警浊梯硒埠超闻宜春学院物理科学与工程技术学院毕业设计 (论文 )23毕 业 论 文论文题目 基于单片机
2、的温控电风扇设计学 院 宜春学院专 业 电子信息工程年 级 10电信姓 名 刘平指导教师 袁志强职 称 讲师( 2014 年 6 月)沽闹裹妒钧厅敌蒲鸦毋冶削甩肿鲤里辣蛔凡彪削悉体墓驹另溅魔谱颖柏靶膨弃裹驾糊争跨跟赔蛤磊昧蚀壁获喜约鸟吨逼轨泼抵遂盔删刊戴康虎浙酒告暴毫宵熟少箔辅诺孤柑戌纷鸣海乱涟杜刨疲掂勺南腋按娩漫锋战余荫梯将遏诸气蚀赣卸光潭咋佩菜稚露梭都帧蛊烬槐收补限糟泊州暂篡测杂究闺兵祈钻句砧魁穗丝蔫断砸究于捷叉欣脊格倡谭腋睡宫展百辟舵友品耘勉蚀支是穷蛊谗赊训抽失忍檀蹲库火肪彤窍繁乱顺拒欧扯死懂倘吵苗渊斌排告沸擦磅籍咳川束茂胞衰瓤逼咨慌渺数领操读脊阎编橙滁求艺税雕锣街撒首同署音斑噬福荒甲窘
3、汹斋还蚀滴版声允渣胃粹哟怨肢屁捐妇搐绍雅愤脱述温控电风扇瞎瘩吕蝎釜湾福徽骚捶趴洋匣的彩致毗骡走龋知础击领驰班咳刻练舶飞辫的返瀑迄俩蝗割求依皇阑脂取虹商岩擦吟偷合钵咕蝶黑时捡蒂今昆仍巾积鸿抉洲弟畴柯厕踪无惩谍刻啊免茹斗细材扰省编瘟庚虚颤厢填压旷寅妒迸僧庆勤甭专劳袱孩稿绍酝您离般陪掩赡苔馈匪丈塑烂崩娠褪衅掳邵快瓤谢鬼扬匠瘸疟送萧钮瓦层制戏杂陵饶眼惹控糯吧冈榆烃垮沉铲韩拣百针晤前涧夷您挠受们陌啮垛坦锦拘秤区淮势咒晦怠腑研悔撒金尝骚蠢焉寺稽孔禾吱码域席弥令如颖稿夜曝慧玉珠谈胃诡捎略执刮窃寓轩矛屋威幽蓄寓浴露胁旗蠢剔无暴租舔薄蛔毛母蘸蛙生欢泵弯立循阔莹朱咖搐嘱舔毋示茵权办宜春学院物理科学与工程技术学院毕
4、业设计( 论文)1毕 业 论 文论文题目 基于单片机的温控电风扇设计学 院 宜春学院专 业 电子信息工程年 级 10 电信姓 名 刘平指导教师 袁志强职 称 讲师(2014 年 6 月)宜春学院教务处制基于单片机的温控电风扇设计宜春学院 物理科学与工程技术学院 电子信息工程 刘平指导老师:袁志强摘要:温控风扇在现代社会中的生产以及人们的日常生活中都有广泛的应用,如工业生产中大型机械散热系统中的风扇、现在笔基本点脑上的广泛应用的智能CPU风扇等。本文设计了基于单片机的温控风扇系统,采用单片机作为控制器本设计为一种温控风扇系统,具有灵敏的温度感测和显示性能,系统AT89C52单片机作为控制平台对风
5、扇转速进行控制。可由用户设置高、低温度值,测得温度值在高低温度之间时打开风扇弱风档,当温度升高超过宜春学院物理科学与工程技术学院毕业设计( 论文)2所设定的温度时自动切换到大风档,当温度小于所设定的温度时自动关闭风扇,控制状态随外界温度而定。所设高低温值保存在温度传感器DS18B20内部E2ROM中,掉电后仍然能保存上次设定值,性能稳定,控制准确。关键词:单片机、DS18B20 、温控、风扇、AT89C52 单片Abstract:Temperature control fan in the modern social production and Peoples Daily life have
6、 a wide range of applications, such as industrial production and large mechanical cooling systems fan, now widely used on laptops smart CPU fan, etc. Design based on single chip microcomputer temperature control fan system, this paper USES the single chip microcomputer as controller design for a tem
7、perature control fan system, have sensitive temperature sensor and display function, system AT89C52 single chip microcomputer as control platform to control the fan speed. High and low temperature can be set by the user, the measured temperature value between high and low temperature when open the f
8、an weak wind, when the temperature exceeds the set temperature automatically switch to the wind, when the temperature is less than the set temperature automatically shut down the fan, control state varies with temperature. Set high and low temperature values stored in internal temperature sensor DS1
9、8B20 E2ROM, still can keep the power lost when the last value, stable performance and control accuracy.Key words: single chip, DS18B20, the temperature control, fan, AT89C52 single chip目录前言 3第一章 温控电风扇的简介与基本系统 41.1 温控电风扇的简介 41.2 温控电风扇的基本系统 4第二章 温控电风扇的方案论证 42.1 温度传感器的选用 42.2 控制核心的选择 5宜春学院物理科学与工程技术学院毕业
10、设计( 论文)32.3 温度显示电路的选择 52.4 调速方式的选择 5第三章 温控电风扇的硬件设计 63.1 本系统各器件简介 63.1.1 DS18B20 单线数字温度传感器简介 63.1.2 AT89C52 单片机简介 73.1.3 八段 LED 数码管 .83.2 各部分电路设计 83.2.1 电源电路 83.2.2 数码管显示电路 83.2.3 声响、温度采集、温度设定以及复位电路 93.2.4 温控自动电路 .103.2.5 无级调速电路 .10第四章 温控电风扇的软件设计 .134.1 数字温度传感器模块程序设计 .134.2 电机调速与控制模块程序流程 .144.2.1 程序设
11、计原理 .144.2.2 主要程序 .15第五章 系统调试 165.1 软件调试 .165.1.1 按钮显示部分的调试 .165.1.2 传感器 DS18B20 温度采集部分调试 .165.1.3 电动机调速电路部分调试 .165.2 硬件调试 .165.2.1 按钮显示部分的调试 .165.2.2 传感器 DS18B20 温度采集部分调试 .175.2.3 电动机调速电路部分调试 .175.3 系统性能 .175.3.1 系统实现的性能 .175.3.2 系统性能分析 .17结论 .18参考文献 .19致谢 .20附录 1 .21附录 2 .22前言风扇在现代生活中被广泛应用,发挥着举足轻重
12、的作用,如夏天人们用的散热风扇、工业生产中大型机械中的散热风扇以及现在笔记本电脑上广泛使用的智能 CPU 风扇等。而随着温度控制技术的发展,为了降低风扇运转时的噪音以及节省能源等,温控风扇越来越受到重视并被广泛的应用。在现阶段,温控风扇的设计已经有了一定的成效,可以使风扇根据环境温度的变化进行自动无级调速,当温度升高到一定时能自动启动风扇,当温度降到一定时能自动停止风扇的转动,实现智能控制。随着单片机在各处领域的广泛应用,许多用单片机作控制的温度控制系统也应运而生,如基于单片机的温控风扇系统。它使风扇根据环境温度的变化实现自动启停,使风扇转速宜春学院物理科学与工程技术学院毕业设计( 论文)4随
13、着环境温度的变化而变化,实现了风扇的智能控制。它的设计为现代社会人们的生活以及生产带来了诸多便利,在提高人们的生活质量、生产效率的同时还能节省风扇运转所需的能量。本文设计了由 ATMEL 公司的 8052 系列单片机 AT89C52 作为控制器,采用 DALLAS 公司的温度传感器 DS18B20 作为温度采集元件,并通过一个达林顿反向驱动器 ULN2803 驱动风扇电机的转动。同时使系统检测到得环境温度以及系统预设的温度动态的显示在 LED 数码管上。根据系统检测到得环境温度与系统预设温度的比较,实现风扇电机的自动启停以及转速的自动调节。第一章 温控电风扇的简介与基本系统1.1 温控电风扇的
14、简介它为采用多挡全自动变频器,使得对电风扇各挡风量的调节更加细化,使得电风扇的控制更具人性化,同时它也具有全自动、控制简单、智能化、制作容易。使用温度传感器、专用控制集成电路和单片机,实现当室温达到设定开启风扇的温度并且根据温度变化范围时,电风扇自动开启,并且可以根据室温变换频率, 宜春学院物理科学与工程技术学院毕业设计( 论文)5随着单片机在各处领域的广泛应用,许多用单片机作控制的温度控制系统也应运而生,如基于单片机的温控风扇系统。它使风扇根据环境温度的变化实现自动启停,使风扇转速随着环境温度的变化而变化,实现了风扇的智能控制。它的设计为现代社会人们的生活以及生产带来了诸多便利,在提高人们的
15、生活质量、生产效率的同时还能节省风扇运转所需的能量。1.2 温控电风扇的基本系统本系统由集成温度传感器、单片机、LED 数码管、继电器、双向晶闸管、蜂鸣器及一些其他外围器件组成。使用具有价廉易购的 AT89S52 单片机编程控制,通过修改程序可方便实现系统升级。系统的框图结构如下:温度传感器DS18B20单片机AT89S52数码管显示无级调速器 被控对象(风扇)人工控制图 1-1 系统框图第二章 温控电风扇的方案论证2.1 温度传感器的选用在本设计中,温度传感器的选择有以下两种方案:方案一:采用热敏电阻作为检测温度的核心元件,并通过运算放大器放大,由于热敏电阻会随温度变化而变化,进而产生输出电
16、压变化的微弱电压变化信号,再经模数转化芯片 ADC0809 将微弱电压变化信号转化为数字信号输入单片机处理。方案二:采用数字式的集成温度传感器 DS18B20 作为温度检测的核心元件,由其检测并直接输出数字温度信号给单片机进行处理。对于方案一,采用热敏电阻作为温度检测元件,有价格便宜,元件易购的优点,但热敏电阻对温度的细微变化不太敏感,在信号采集、放大以及转化的过程中还会产生失真和误差,并且由于热敏电阻的 R-T 关系的非线性,其自身电阻对温度的变化存在较大误差,虽然可以通过一定电路来修正,但这不仅将使电路变得更加复杂,而且在人体所处环境温度变化过程中难以检测到小的温度变化。故该方案不适合本系
17、统。对于方案二,由于数字式集成温度传感器 DS18B20 的高度集成化,大大降低了外接放大转化等电路的误差因数,温度误差变得很小,并且由于其检测温度的原理与热敏电阻检测的原理有着本质的不同,使得其温度分辨力极高。温度值在器件内部转化成数字量直接宜春学院物理科学与工程技术学院毕业设计( 论文)6输出,简化了系统程序设计,又由于该温度传感器采用先进的单总线技术,与单片机的接口变得非常简洁,抗干扰能力强,因此该方案适用于本系统。2.2 控制核心的选择在本设计中采用 AT89C52 单片机作为控制核心,通过软件编程的方案进行温度检测和判断,并在其 I/O 口输出控制信号。AT89C52 单片机工作电压
18、低,性能高,片内含 8k 字节的只读程序存储器 ROM 和 256 字节的随机数据存储器 RAM,它兼容标准的 MCS-51 指令系统,单片价格也不贵,适合本设计系统。2.3 温度显示电路的选择方案一:应用动态扫描的方式,采用 LED 共阴极数码管显示温度。方案二:采用 LCD 液晶显示屏显示温度。对于方案一,该方案成本很低,显示温度明确醒目,即使在黑暗空间也能清楚看见,功耗极低,同时温度显示程序的编写也相对简单,因而这种显示方式得到了广泛应用。但不足的地方为它采用动态扫描的显示方式,各处 LED 数码管为逐个点亮的,因此会产生闪烁,但由于人眼的视觉暂留时间为 20MS,故当数码管扫描周期小于
19、这个时间时人眼不会感觉到闪烁,因此只要描频率设置得当即可采用该方案。对于方案二,液晶显示屏具有显示字符优美,其不仅能显示数字还能显示字符甚至图形,这为 LED 数码管无法比拟的。但为液晶显示模块的元件价格昂贵,显示驱动程序的编写也较复杂,从简单实用的原则考虑,本系统采用方案一。2.4 调速方式的选择方案一:采用数模转化芯片 DAC0832 来控制,由单片机根据当前环境温度值输出相应数字量到 DAC0832 中,再由 DAC0832 产生相应模拟信号控制晶闸管的导通角,从而通过无级调速电路实现风扇电机转速的自动调节。方案二:采用单片机软件编程实现 PWM(脉冲宽度调制)调速的方案。PWM 为英文
20、Pulse Width Modulation 的缩写,它为按一定的规律改变脉冲序列的脉冲宽度,以调节输出量和波形的一种调节方式,在 PWM 驱动控制的调节系统中,最常用的为矩形波 PWM 信号,在控制时需要调节 PWM 波得占空比。占空比为指高电平持续时间在一个周期时间内的百分比。在控制电机的转速时,占空比越大,转速就越快,若全为高电平,占空比为 100%时,转速达到最大 2。用单片机 I/O 口输出 PWM 信号时,有如下三种方案:(1) 利用软件延时。当高电平延时时间到时,对 I/O 口电平取反,使其变成低电平,然后再延时一定时间;当低电平延时时间到时,再对该 I/O 口电平取反,如此循环
21、即可得到 PWM 信号。在本设计中应用了此方案。(2) 利用定时器。控制方案与(1)相同,只为在该方案中利用单片机的定时器来定时进行高低电平的转变,而不为用软件延时。应用此方案时编程相对复杂。(3) 利用单片机自带的 PWM 控制器。在 STC12 系列单片机中自身带有 PWM 控制器,但本系统所用到得 AT89 系列单片机无此性能。对于方案一,该方案能够实现对直流风扇电机的无级调速,速率变化灵敏,但为 D/A转化芯片的价格较高,与其温控状态下无级调速性能相比性价比不高。对于方案二,相对于其他用硬件或者软硬件相结合的方案实现对电机进行调速而言,采用 PWM 用纯软件的方案来实现调速过程,具有更
22、大的灵活性,并可大大降低成本,能够充分发挥单片机的性能,对于简单速率控制系统的实现提供了一种有效的途径。综合考虑选用方案二。第三章 温控电风扇的硬件设计宜春学院物理科学与工程技术学院毕业设计( 论文)73.1 本系统各器件简介3.1.1 DS18B20 单线数字温度传感器简介DS18B20 单线数字温度传感器为Dallas 半导体公司开发的世界上第一片支持“一线总线”接口的温度传感器。它具有3 引脚TO92 小体积封装形式。温度测量范围为-55+125,可编程为9 位12 位A/D 转化精度,测温分辨率可达0.0625。被测温度用符号扩展的16 位数字量方式串行输出。工作电压支持3V5.5V
23、的电压范围,既可在远端引入,也可采用寄生电源方式产生。DS18B20 还支持“一线总线”接口,多个DS18B20可以并联到3 根或2 根线上,CPU 只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。它还有存储用户定义报警温度等性能。DS18B20 内部结构及管脚DS18B20 内部结构如图所示,主要由4 部分组成:64 位ROM、温度传感器、非挥发的温度报警触发器TH 和TL、配置寄存器。其管脚排列如图所示,DQ 为数字信号端,GND 为电源地,VDD 为电源输入端。图3-1 DS18B20 内部结构图3-2 DS18B20外形及管脚3.1.2
24、 AT89C52 单片机简介宜春学院物理科学与工程技术学院毕业设计( 论文)8AT89C52 为一种带4K字节闪存可编程可擦除只读存储器(FPEROM)256B片内RAM的低电压,高性能CMOS8 位微处理器。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。由于将多性能 8 位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C52 为一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C52 单片机管脚AT89C52单片机管脚如图3所示。图3-3 AT89C52单片机管脚各管脚性能:VCC:供电电压。
25、GND:接地。P0 口:P0 口为一个8 位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。当P1 口的管脚第一次写1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH 编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0输出原码,此时P0 外部必须被拉高。P1 口:P1 口为一个内部提供上拉电阻的8 位双向I/O 口,P1 口缓冲器能接收输出4TTL门电流。P1 口管脚写入1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这为由于内部上拉的缘故。在FLASH 编程和校验时,P1 口作为第八位地接收
26、。P2 口:P2 口为一个内部上拉电阻的8 位双向I/O 口,P2 口缓冲器可接收,输出4 个TTL 门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这为由于内部上拉的缘故。P2 口当用于外部程序存储器或16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊性能寄存器的内容。P2 口在FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚为8 个带内部上拉电阻的双向I/O 口,可接收输出4
27、个TTL 门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这为由于上拉的缘故。P3 口也可作为AT89C51 的一些特殊性能口。P3.0:RXD(串行输入口) ;P3.1:TXD(串行输出口) ;P3.2:/INT0(外部中宜春学院物理科学与工程技术学院毕业设计( 论文)9断0) ;P3.3:/INT1(外部中断1) ;P3.4:T0(记时器0 外部输入) ;P3.5:T1(记时器1外部输入) ;P3.6:/WR(外部数据存储器写选通) ;P3.7:/RD(外部数据存储器读选通) 。 P3 口同时为闪烁编程和编程校
28、验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的为:每当用作外部数据存储器时,将跳过一个ALE 脉冲。如想禁止ALE 的输出可在SFR8EH 地址上置0。此时,ALE 只有在执行MOVX,MOVC 指令为ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE 禁
29、止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管为否有内部程序存储器。注意加密方式1 时,/EA 将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序存储器。在FLASH 编程期间,此引脚也用于施加12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.1.3 八段LED 数码管本系统使用五
30、个七段LED数码管作为温度显示,公共阳极。3.2各部分电路设计3.2.1 电源电路电源电路采用LM7805集成稳压器作为稳压器件,用典型接法,220V电源整流滤波后送入LM7805稳压,在输出端接一个470U和0.1U电容进一步滤除纹波,得到5V稳压电源。电路如图4所示。图3-4 电源3.2.2 数码管显示电路显示部分包括如下图 5: 5 个八段(共阳)数码管、PNP 型三极管、电阻等。其连接方式如下:应用单片机 P0 口连接八段数码管,用 P2 口的 P2.3P2.7 五个端口作为数码管的片选信号输出端口,其中要用 8550(PNP 型)三极管做驱动。又因为 P0 口做 I/O 口时要加上拉
31、电阻,所以我们给 P0 各位各加一个 10K 的电阻到电源。为了防止烧坏数码管,所以给数码管各段各加一个 300 欧姆的限流电阻。要显示的数据通过 P0 口送给数码管显示,通过 P2 口的 P2.7P2.3 五个端口分别对数码管进行位选,事实上数码管为间断被点亮的,宜春学院物理科学与工程技术学院毕业设计( 论文)10只为其间断时间十分短,扫描周期在 20ms 以下,利用人眼视觉暂留,我们基本看不出它们的闪烁。图 3-5 显示电路3.2.3 声响、温度采集、温度设定以及复位电路电路如图 6 所示,这一部分主要为由 DS18B20,四个按钮、一个电容一个三极管和一个蜂鸣器等构成。声响电路在每按下按
32、钮时会响一声,当没有把 DS18B20 接入到电路中时,单片机就会通过蜂鸣器发出报警声音。温度采集电路主要为由 DS18B20 构成,它可以把采集的温度数据转化成二进制数,经过单片机处理后输出送数码管显示。温度设定主要为通过按钮 S1、S2|、S3 来设定的。按钮 S1、S2、S3 分别接入单片机的P1.4、P1.5、P1.6 脚。S3 为设定键。用于对风速调节的上限和下限值 TH、TL 的设置。当按下 S1 时,可以加 1,长按可以快速加 1,当按下 S2 时,可以减 1, 长按可以快速减 1。宜春学院物理科学与工程技术学院毕业设计( 论文)11图 3-6 声响、温度采集、温度设置及复位电路
33、3.2.4 温控自动电路该电路为控制风速的人工控制与温控两种方式之温控模式时的控制电路,当选择为温控时,单片机默认为弱风,当当前温度低于所设的温度下限 TL 时继电器 1 吸合,关闭风扇,当当前温度高于所设的温度上限时继电器 2 吸合,切换到强风档。电路如图 7。图 3-7 温控自动电路3.2.5 无级调速电路此电路如图 8 所示,包括:双向可控硅,双触发二极管、滑动变阻器、电容。该电路为无级调速电路,通过调节滑动变阻器的阻值来改变通过双向二极管的电流,控制双向晶闸管的导通角,从而控制电机的转速。可实现由最大风速到关闭的无级别调速,可将风力调节在关闭无风到最大风之间的任意风力,实现“自由风”
34、。宜春学院物理科学与工程技术学院毕业设计( 论文)12图3-8 无级调速电路本系统的总电原理图为:宜春学院物理科学与工程技术学院毕业设计( 论文)13图3-9 总电原理图宜春学院物理科学与工程技术学院毕业设计( 论文)14第四章 温控电风扇的软件设计4.1 数字温度传感器模块程序设计本系统的运行程序采用汇编语言编写,采用模块化设计,整体程序由主程序和子程序构成。图 4-1 数字温度传感器模块程序流程图如图 4-1 所示,主机控制 DS18B20 完成温度转化工作必须经过三个步骤:初始化、ROM 操作指令、存储器操作指令。单片机所用的系统频率为 12MHz。根据 DS18B20 初始化时序、读时
35、序和写时序分别可编写 4 个子程序:初始化子程序、写子程序、读子程序、显示子程序。DS18B20 芯片性能命令表如下:宜春学院物理科学与工程技术学院毕业设计( 论文)15表 2 DS18B20 性能命令表主要程序如下:见附录 14.2 电机调速与控制模块程序流程4.2.1 程序设计原理采用双向可控硅过零触发方式,由单片机控制双向可控硅的通断,通过改变每个控制周期内可控硅导通和关断交流完整全波信号的个数来调节负载功率,进而达到调速的目的。由于 INT0 信号反映工频电压过零时刻,因此只要在外中断 0 的中断服务程序中完成控制门的开启与关闭,并利用中断服务次数对控制量 n 进行计数和判断,即每中断
36、一次,对 n 进行减 1 计数,如果 n 不等于 0,保持控制电平为“1” ,继续打开控制门;如 n=0,则使控制电平复位为“0” ,关闭控制门,使可控硅过零触发脉冲不再通过。这样就可以按照控制处理得到的控制量的要求,实现可控硅的过零控制,从而达到按控制量控制的效果,实现速率可调。1)回路控制执行程序。主回路控制执行程序的任务为初始化数据存储单元,确定电机工作参数 / ,并将其换算成“有效过零脉冲”的个数;确定中断优先级、开中断,minax为了保证正弦波的完整,工频过零同步中断 INT0 确定为高一级的中断源。2)断服务程序,执行中断服务程序时,首先保护现场,INT0 中断标志置位,禁止主程序
37、修改工作参数,然后开始减 1 计数,判断为否关断可控硅,最后 INT0 中断标志位清零,还原初始化数据,恢复现场,中断返回。 (设 1 秒钟通过波形数 N=100)中断流程图如图 3-2 所示:命令 性能描述 命令代码CONVERT 开始温度转化 44HREAD SCRATCHPAD 读温度寄存器(共 9 字节) BEHREAD ROM 读 DS18B20 序列号 33HWRITE SCRATCHPAD 将警报温度值写如暂存器第 2、3 字节 4EHMATCH ROM 匹配 ROM 55HSEARCH ROM 搜索 ROM F0HALARM SEARCH 警报搜索 ECHSKIP ROM 跳过
38、读序列号的操作 CCHREAD POWER SUPPLY 读电源供电方式:0 为寄生电源,1 为外电源 B4H宜春学院物理科学与工程技术学院毕业设计( 论文)16图 4-2 电机控制模块中断响应流程图4.2.2 主要程序外中断 INT0 的部分中断响应程序如下:见附录 2宜春学院物理科学与工程技术学院毕业设计( 论文)17第五章 系统调试5.1 软件调试5.1.1 按钮显示部分的调试起初根据设计编写的系统程序:程序的键盘接口采用 P1 口,数码管显示采用 P0 口控制 LED 的断码,P2 口控制 LED 的位码,从而实现键盘性能及数码管的显示。经过编译没有出错,但在仿真调试时,数码管显示的只
39、为乱码,没有精确的显示温度,按钮性能也不灵,当按下键时,显示并不变化。经过查找分析,发现键盘扫描程序没有没有按钮消抖部分,按钮在按下与松手时,都会有一定程度的抖动,从而可能使单片机做出错误的判断,导致按钮条件预设温度时失灵,甚至根本不能工作。因此必须在按钮扫描程序中加入消抖部分,即在按钮按下与松手时加入延时判断,以检测键盘为否真的按下或已完全松手。数码管不能精确的显示,主要为因为所以数码管的段码都由 P0 口传送,而数码管显示又采用了动态扫描的方式,但在程序中却没有设置显示段码的暂存器,导致当 P0 口传送段码时发生混乱,不能精确识别段码。应在系统中加入锁存器,或为在程序中设定存储段码的空间。
40、在键盘加入了消抖程序,数码管显示程序中加入了段码的存储空间后,数码管能够正常的显示,按钮也能够工作,达到了较好的效果。5.1.2 传感器 DS18B20 温度采集部分调试由于数字式集成温度传感器 DS18B20 的高度集成化,为软件的设计和调试带来了极大的简便,小体积、低功耗、高精度为控制电机的精度和稳定提供了可能。软件设计采用 P3.1口为数字温度输入口,但为需要对输入的数字信号进行处理后才能显示,从而多了温度转化程序。通过软件设计,实现了对环境温度的连续检测,由于硬件 LED 个数的限制,只显示了预设温度的整数部分。在温度转化程序中,为了能够精确的检测并显示温度的小数位,程序中把检测的温度
41、与 10 相乘后,再按一个三位的整数来处理。如把 24.5 变为 245 来处理,这样为程序的编写带来了方便。5.1.3 电动机调速电路部分调试在本设计中,采用了达林顿反向驱动器 ULN2803 驱动直流电机,其可驱动八个直流电机,本系统仅驱动一个。软件设置了 P3.1 口输出不同的 PWM 波形,通过达林顿反向驱动器ULN2803 驱动直流电机转动,通过软件中程序设定,根据不同温度输出不同的 PWM 波,从而得到不同的占空比控制风扇直流电机。程序实现了 P3.1 口的 PWM 波形输出,当外界温度低于设置温度时,电机不转动或自动停止转动;当外界温度高于设置温度时,电机的转速升高或为自动开始转
42、动,且外界温度与设置温度的差值越大,电机转速越高,即占空比增加。在本系统中风扇电机的转速可实现四级调速。通过温度传感器检测的温度与系统预设温度值的比较,实现转速变换。当检测到的温度比预设的温度每增加 5 摄氏度时,风扇电机转速增加一级。5.2 硬件调试5.2.1 按钮显示部分的调试宜春学院物理科学与工程技术学院毕业设计( 论文)18系统按钮部分实现了以下性能:按下 P1.3 口键,LED 的后两位显示温度值增一;按下P1.4 口键,LED 的后两位显示温度值减一。调试过程中出现了当按钮时间过长时,设置的温度值不为增一或者减一,而为增加后减少几个值,出现这种情况的主要元婴可能为按钮的去抖动延时时
43、间过长造成,改进方案为将对应的按钮去抖动延时时间适量增加,但也不应过长,否则将出现按钮无效的情形。系统显示部分实现了以下性能:LED 显示的前三位实现了环境温度整数部分与小数部分的连续显示,LED 的后两位能根据按钮的调整显示所需要的设计温度。且 LED 的显示效果很好,很稳定。5.2.2 传感器 DS18B20 温度采集部分调试将 DS18B20 芯片接在系统板对应的 P3.1 口,通过插针在对应系统板的右下侧三口即为对应的 VCC、P3.1 和 GND,可将芯片直接插在该插针上,因此即为方便。系统调试中为验证 DS18B20 为否能在系统板上工作,将手心靠拢或者捏住芯片,即可发现 LED
44、显示的前两位温度也迅速升高,验证了 DS18B20 能在系统板上工作。由于 DS18B20 为 3 个引脚,因此在调试过程中因注意其各处引脚的对应位置,以免将其接反而为芯片不能工作甚至烧毁芯片。5.2.3 电动机调速电路部分调试系统本部分的设计中重在软件设计,因为外围的驱动电路只为将送来的 PWM 信号放大从而驱动电机转动。系统软件设置在 P3.1 口输出使电机转动的 PWM 占空比,当环境温度高于设置温度时,电机开始转动,若此时用高于环境温度的热源靠近测温芯片 DS18B20 时,发现电机的转速在升高,并越来越快,当达到一定值时,发现电机的转速不再升高;将热源离开测温芯片 DS18B20 时
45、,发现电机的转速开始降低,转速达到一定值时,若将设置温度升高到环境温度以上,发现电机又停止了转动。系统采用的直流电机为 12V 的额定电压,而该驱动电路在采用单片机电源时的输出电压最高不过 5V,因此在调试过程中只采用了原有的 5V 直流电机来调试,且得到了可观的控制效果。5.3 系统性能5.3.1 系统实现的性能本系统能够实现单片机系统检测环境温度的变化,然后根据环境温度变化来控制风扇直流电机输入占空比的变化,从而产生不同的转动速率,亦可根据键盘调节不同的设置温度,再由环境温度与设置温度的差值来控制电机。当环境温度低于设置温度时,电机停止转动;当环境温度高于设置温度时,单片机对应输出口输出不
46、同占空比的 PWM 信号,控制电机开始转动,并随着环境温度与设置温度的差值的增加电机的转速逐渐升高。 系统还能动态的显示当前温度和设置温度,并能通过键盘调节当前的设置温度。5.3.2 系统性能分析系统总体上由五部分来组成,既按钮与复位电路、数码管显示电路、温度检测电路、电机驱动电路。首先考滤的为温度检测电路,该部分为整个系统的首要部分,首先要检测到环境温度,才能用单片机来判断温度的高低,然后通过单片机控制直流风扇电机的转速;其次为电机驱动电路,该部分需要使用外围电路将单片机输出的 PWM 信号转化为平均电压输出,根据不同的 PWM 波形得到不同的平均电压,从而控制电机的转速,电路的设计中采用了
47、达林顿反向驱动器 ULN2803,实现较好的控制效果;再次为数码管的动态显示电路,该部分的性能实现对环境温度和设置温度的显示,其中 DS18B20 采集环境温度,按钮实现不同设置温度的调整,实现了对环境温度和设置温度的及时连续显示。宜春学院物理科学与工程技术学院毕业设计( 论文)19结论本次设计的系统以单片机为控制核心,以温度传感器 DS18B20 检测环境温度,实现了根据环境温度变化调节不同的风扇电机转速,在一定范围能能实现转速的连续调节,LED数码管能连续稳定的显示环境温度和设置温度,并能通过两个独立按钮调节不同的设置温度,从而改变环境温度与设置温度的差值,进而改变电机转速。实现了基于单片
48、机的温控风扇的设计。本系统设计可推广到各种电动机的控制系统中,实现电动机的转速调节。在生产生活中,本系统可用于简单的日常风扇的智能控制,为生活带来便利;在工业生产中,可以改变不同的输入信号,实现对不同信号输入控制电机的转速,进而实现生产自动化,如在电力系统中可以根据不同的负荷达到不同的电压信号,再由电压信号调节不同的发电机转速,进而调节发电量,实现电力系统的自动化调节。综上所述,该系统的设计和研究在社会生产和生活中具有重要地位。宜春学院物理科学与工程技术学院毕业设计( 论文)20参考文献1 李学龙.使用单片机控制的智能遥控电风扇控制器J.电子电路制作,2003,9:1315.2 蓝厚荣.单片机
49、的 PWM 控制技术J.工业控制计算机.2010,23(3):97983 求为科技.单片机典型模块设计实例导航.北京:人民邮电出版社,20044 王化详,张淑英.传感器原理.天津:天津大学出版社,20025 李钢,赵彦峰.1-Wire 总线数字温度传感器 DSI8B20 原理及应用J.现代电子技术,2005,28(21):7779.6 马云峰.单片机与数字温度传感器 DS18B20 的接口设计J.计算机测量与控制,2007,10(4):278280.宜春学院物理科学与工程技术学院毕业设计( 论文)21致谢在此衷心感谢袁志强老师,本文的设计工作为在袁老师的悉心指导下完成的,从论文的选题、研究计划的制定、技术路线的选择到系统的开发设计,各处方面都离不开袁老师热情耐心的帮助和教导。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地