1 自动化系统创意设计大赛作品说明书作品名称:温控风扇系统设计队员 :2015 年 4 月精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 29 页2 目录1、引言 . 32、背景 . 33、意义与应用 . 34、原理简介 . 45、方案设计 . 46、STC12C5A60S2 单片机 . 5简介 . 56.2 PWM 寄存器设置 . 56.3 PWM 占空比计算方法. 56.4 I/O 工作方式设置. 67、LCD液晶显示屏 . 68、温度传感器 DS18B20 . 88.1 初始化 . 98.2 写操作 . 108.3 读操作 . 109、风扇 . 10拓展 1: . 10拓展 2: . 1110、硬件电路设计 . 12原理图和部分电路PCB图. 1210.2 电机驱动电路. 1311、软件设计 . 14主函数流程图. 1411.2 温度控制风扇程序流程图 . 1511.3 按键控制风扇程序流程图 . 1611.4 按键设定温度程序流程图 . 1712、结语 . 18参考文献 :. 18附录:实物硬件图 . 18附录:程序 . 18精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 29 页3 摘要: 本设计是基于STC12C5A60S2 单片机技术与温度传感器测量外界温度的设计原理, 进行了不同设计方案的比较,给出了设计的硬件电路,同时对各种关键硬件进行较详细的介绍, 并且以流程图的方式对系统设计作出介绍。
系统主要通过温度传感器控制不同的PWM 占空比输出来控制风扇的档位而出于方便、 可选择性的考虑,系统也添加了辅助功能,就是直接手动控制风扇的档位关键词 :STC12C5A60S2 单片机, DS18B20温度传感器,PWM 1、引言温控风扇在节能环保方面具有一定的作用,其工作原理除了普通的手动档位调节,主要是通过温度传感器感应外界温度,并自主地进行档位的调节,这样在风扇开着的情况下,不需进行手动就可以根据不同的外界温度进行自主调节风力大小,到达节能目的2、背景随着空调机在日常生活中的普遍应用,很容易想到电风扇会成为空调的社会淘汰品,其实经过市场的考验和证实,真实的并不是这样的,在空调产品的冲击下,电风扇产品仍然具有很强大的生命力,电风扇在市场的考验中并没有淡出市场,反而销售在不停的复苏中,具有强大的发展空间据市场调查,电风扇的不停复苏主要在以下原因:一,是电风扇虽然没有空调机的强大的制冷功能,但电风扇是直接取风,风力更加温和,比较适合老年人、儿童以及体质虚弱的人使用二,是电风扇经过多年的市场使用,较符合人们的使用习惯,而且结构简单、操作方便、安装简易三,是电风扇比起空调产品而言,其价格低廉,相对省电,更易的进入老百姓的家庭。
在目前空调还没有普及,并且并不是所有的情况下空调都适合使用的情况下,智能风扇适合人体对温度的要求,智能风扇还有具有相当作用的3、意义与应用1、普通电风扇的现状及存在的隐患:大部分只有手动调速,功能单一长时间在高负荷工作容易损坏电器,并且造成电量的损失2、作品可运用在家庭中,风扇的风力随温度而调节,即可以防止人因温度低吹到冷风而着凉,也可到达节能目的,可见温控风扇更具有优越性3、其次将此系统装在产热多,急需排热的设备上,可以帮助它及时散掉大量的热比方电脑散热器等精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 29 页4 4、原理简介1、电源开关,控制系统处于工作还是停止状态2、当系统上电之后,通过单片机读取外界温度,然后在液晶显示屏上显示出来通过判断温度的范围,控制风扇的停止与转不同的速度同时 LED给出档位指示 温度控制的范围可以通过按键进行设置3、另外,当不需要温度控制时,可以通过模式切换开关,让系统工作于手动控制模式通过按键进行调节风扇的停止,与不同转速5、方案设计方案一:采用两片STC89C516RD 单片机、液晶1602 和 ds18b20,进行设计,让单片机1 进行温度读取操作,另外的单片机2 通过定时器,产生占空比不同的PWM 。
两单片机通过串口进行通信, 这样单片机1 可以通过读取外界的温度,然后对单片机2 进行控制 这样就能在不同的温度区间内,单片机 2 控制直流5v 小风扇不同的转速,从而实现温度自动控制风扇方案二:采用 STC12C5A60S2 单片机、液晶1602 和 ds18b20这也是一款51 单片机,但是它的性能比STC89C516RD 单片机更强大, 而且有独立的双路PWM 输出 这样, 采用一片STC12C5A60S2 单片机就能实现温度读取和直流5v 小风扇的转速控制方案三:采用 stm8s105 系列单片机、液晶1602 和 ds18b20,同样可以实现温度读取和直流 5v 小风扇的转速控制方案比较:方案一需要消耗更多的硬件资源因此我们直接排除方案一方案三, 如果采用 44 脚贴片封装的stm8s105 单片,可以在很小的覆铜板上把硬件做出来,这样可以节省一些硬件资源但是,因为温度传感器ds18b20 的读取是通过单一I/O口读取的, stm8s105 的 I/O 操作需要设置,让其是处于输入或者输出方式操作非常麻烦方案二需要的硬件资源相对较少,而且其I/O 口兼容 8051 单片机,可以实现I/O 口准双向操作,这样编程相对简单。
综上所述,我们选择方案二精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 29 页5 6、STC12C5A60S2 单片机简介我们采用的单片机为STC12C5A60S2,STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟 /机器周期 (1T) 的单片机, 是高速 / 低功耗 / 超强抗干扰的新一代8051 单片机, 指令代码完全兼容传统8051, 但速度快8-12 倍 内部集成MAX810 专用复位电路,2 路 PWM,8 路高速 10 位 A/D 转换 (250K/S) 针对电机控制, 强干扰场合 其引脚与普通8051 单片机基本相同PWM 寄存器设置STC12C5A60S2单片机内置两路独立PWM 输出,通过设置相应寄存器,可以让占空比改变 PWM0 的输出口在,而PWM1 的输出口在相关的设置例子如下面的程序所示:CCON = 0; / 初始化PCA控制寄存器/PCA 计数器停止运行/ 清除 CF标志位/ 清除所有中断标志位CL = 0; / 重置 PCA的 16 位计数器CH = 0;CMOD = 0 x02; / 设置PCA 计数器时钟源为Fosc/2/ 禁止 PCA 计数器溢出中断CCAP0H = CCAP0L = 0 xff; /PWM0 口输出0%占空比CCAP1H = CCAP1L = 1x00; /PWM1 口输出100%占空比CCAPM0 = 0 x42; /PCA 模块 0 工作在 8 位 PWM 模式并且没有PCA中断CR = 1; / 开始计数当寄存器CL值小于 EPCnL, CAPPnL 时,输出为低电平;当寄存器CL 值等于或大于 EPCnL, CAPPnL 时,输出为高电平; 当寄存器CL的值由 FF变为 00 溢出时, EPCnH CAPPnH的内容被装载到 EPCnL, CAPPnL 中。
这样,就可以实现无干扰地实现PWM 更新6.3 PWM 占空比计算方法输出的占空比乘以256 后, 转换为十六进制, 然后进行取反, 再同时赋值给寄存器CCAPxH 和CCAPxL 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 29 页6 6.4 I/O 工作方式设置其 I/O 口的工作方式有准双向/弱上拉输出,强推挽输出,高阻输入电流不能流入也不能流出 ,开漏输出假设外加上拉也可以读取等缺省状态下,I/O 的工作方式为准双向/弱上拉本设计中,对于温度传感器的读写操作,需要I/O 工作在准双向的工作状态而PWM 输出端口, LED驱动输出,端口我们将I/O 口的工作方式设置分强推挽输出,输出的拉电流到达20mA,能更好的驱动负载设置方式,通过配置相应的寄存器PxM1 和 PxM0,如下表1 所示:PxM1 7:0PxM0 7:0I/O口模式00准双向口01强推挽输出10高阻输入11开漏表 17、LCD液晶显示屏时钟的显示屏选用1602 字符液晶 1602 是指显示的内容为16*2,即能够同时显示两行,每行 16 个字符 常见的 1602 字符液晶有两种,一种显示的是绿色背光黑色字体,另一种显示蓝色背光白色字体,目前市面上字符液晶绝大多数是基于HD44780液晶芯片的, 控制原理是完全相同的。
本设计所用1602 液晶模块,显示屏是蓝色背光白色字体图1 为 1602字符液晶引脚图12310987654111213141516GNDVCCVOD1D0ER/WRSD2D3D4D5D6D7BLABLKLCD1602图 1 1602字符液晶引脚图各引脚功能为:第 1 脚: GND为地电源第 2 脚: VCC接 5V 正电源第 3 脚: VO 为液晶显示器比照度调整端,接正电源时比照度最弱,接地电源时比照度最高,比照度过高时会产生重影,使用一个1K 的电位器调整比照度第 4 脚: RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 29 页7 第 5 脚: R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作第 6 脚: E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令第 714 脚: DB0DB7为 8 位双向数据线第 1516 脚:背光灯电源基本操作时序:读状态输入 RS=L ,R/W=H ,E=H 输出 D0D7=状态字写指令输入 RS=L ,R/W=L ,D0D7=指令码, E=高脉冲输出 无读数据输入 RS=H ,R/W=H ,E=H 输出 D0D7=数据写数据输入 RS=H ,R/W=L ,D0 D7=数据, E=高脉冲输出 无RAM 地址映射图:如图 2 所示:图 2 RAM地址映射图当我们在 00-0F、40-4F, 的地址中任意地写入显示数据时,液晶都可以显示,当写入10-27 或 50-67 地址处时,必须通过移屏指令将它们移入可显示的区域。
读、写操作时序:如图 3 所示:因为本设计的程序中只涉及到液晶的写操作,因此下面简单介绍写操作过程,如下:1通过 RS确定是写数据还是写命令2读写控制端设置为写模式3将数据或命令送达数据线上4给 E一个高脉冲将数据送到液晶控制器,完成写操作精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 29 页8 图 3 读写操作时序图初始化设置:1显示模式设置,如图4:图 4 显示模式设置图2显示开 / 关及光标设置,如图5:图 5显示开 / 关及光标设置图8、温度传感器DS18B20 用于检测当前的温度,DS18B20测量温度范围为 -55 C+125C,在-10+85 C范围内, 精度为 C现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等产品支持的电压范围,使系统设计更灵活、方便精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 29 页9 DS18B20的引脚图如图 6 所示引脚 1:地;引脚 2:数字输入输出;引脚 3:可选的5V电源;图 6 DS18B20 的引脚图DS18B20内部结构主要由四部分组。