1、 2015 届毕业设计说明书基于单片机的电脑机箱风扇温控系统院 、 部: 电气与信息工程学院 学生姓名: 朱杭亮 指导教师: 龙卓珉 职称 讲师 专 业: 自动化 班 级: 自本 1103 完成时间: 2015 年 6 月 摘 要当今市面上所使用的电脑机箱散热方式基本是使用散热风扇,但是存在的不足也是可见的,刚开始一般不会看出什么问题,但是用久了明显会感觉到风扇发出的噪音特别影响用户的体验,还有高耗电量也有违绿色环保概念,这成为了一个令人费解的问题。很多有创新头脑的人们经过研究比较,发明了液冷散热和液氮散热,它们都是利用元素的特性来降低机箱内部空气的温度,这个方法虽然看似可行,但毕竟不适用于全
2、部人,因为资源的不足以及高成本是个大问题。如何解决散热问题已经成为当务之急。该设计拟使用 AT89S52 芯片作为主控芯片设计一个智能控制的电脑机箱风扇温控系统,能够根据机箱内温度的改变控制风扇以不同速度运转,并通过LCD 液晶显示屏显示温度、转速和时间,系统优化方面用到了复位电路,看门狗电路以及报警电路,系统还预留了很多可扩展口。通过 Proteus 仿真该系统能够实现各项功能。关键词:单片机;风扇;看门狗ABSTRACTOn the market today,the computer case cooling way we used is basically using cooling f
3、an, but the deficiencies are also visible, generally do not see any problems at first, but as time goes we can feel the noise from fan particularly affect the user experience,and there are high power consumption also works against the green environmental protection concept, it has become a puzzling
4、problem. A lot of people who have innovative mind compered after study, invented the liquid-cooled heat and liquid nitrogen cooling, they are all useing the characteristics of the element to reduce the case of internal air temperature, this method looks plausible, but after all is not applicable to
5、all people, because of the lack of resources and high cost. How to solve the cooling problem has become a top priority.The design intends to use AT89S52 chip as the main control chip to design a computer case fan temperature control system of intelligent control, according to the change of temperatu
6、re inside the case to control fan running at different speed, and shows the temperature, speed, and time through the LCD display, in the aspect of system optimization,it used reset circuit, watchdog circuit and alarm circuit, system also set aside a lot of extensible mouthes. The system can realize
7、the function through the Proteus simulation.Key words single chip microcomputer; Fan; watchdog目 录1 绪论 .11.1 设计背景 .11.2 设计目的 .11.3 设计要求 12 硬件电路设计 .22.1 工作框图 .22.2 硬件总原理图 .22.3 系统实现的功能 .32.4 系统电源 .32.5 芯片介绍 .32.5.1 主控芯片 .32.5.2 MAX706“看门狗”芯片 .62.6 时钟频率电路设计 72.7 复位电路设计 .82.8 1602 显示电路设计 92.9 PWM 调速电路设计
8、 102.10 报警电路设计 .122.11 看门狗电路设计 .132.12 测温电路设计 .143 软件设计 173.1 系统工作总流程 173.2 PWM 调速程序 183.3 DS18B20 测温程序 183.4 计时程序 193.5 看门狗程序 203.6 LCD1602 显示程序 213.7 报警程序 223.8 风扇测速程序 234 系统仿真 244.1 仿真软件介绍 .244.2 仿真结果 244.3 仿真分析 26结束语 .27参考文献 .28致 谢 .31附 录 .3201 绪论1.1 设计背景科学的发展如此迅速,人们对更高品质生活的追求已经日益强烈,PC 的出现无疑开辟了一
9、个新领域,集如此多功能于一身,使得人们已经离不开 PC 这个功能强大的伙伴。以前的 PC 并没有像现在一样需要运行如此多的程序,因而发热量和频率都很低,不用担心散热的问题,最多也只是采用普通的散热片进行散热。但是随着时代的发展,人们对于 PC 的要求越来越高。PC 所承担的任务也越来越繁多,芯片的散热问题已经影响了 PC 的生存发展。散热问题的产生,使得人们想出了各种各样的方法去解决它。大多数人使用的一般都是散热片加散热电扇的方法,当然还有高手使用的是液冷散热和液氮散热等等。据我们所知,电脑机箱是近似于封闭状态,把机箱里面的热量排出去是根本的解决办法,那是不是多加几台散热电扇就可以解决这个问题
10、呢,但随之而来的问题也是一大堆,比如噪音大,更费电,既影响了自己也影响着他人,而且现在提倡绿色低碳环保,这无疑不能成为一个有效的方法,为了解决这一难题,所以便有了今天这个课题的出现。1.2 设计目的能够随时让用户知道现在机箱内到底多少度,并且能在不用用户动手的情况下轻松调节散热风扇的运转速率,更好的散热能让用户放心,同时噪音问题和污染问题也得到了更好的解决。1.3 设计要求(1)机箱内的温度的改变会造成风扇运转速率的改变,当测到温度如果小 于二十五度,风扇不会转动,如果里面温度比五十度还高,为了散热,风扇就会以最快的速率转动,可想而知,如果温度处于二十五度和五十度之间,风扇速率就会依据温度变化
11、做出调整。(2)整个系统运行的时间可以让用户清楚看到。(3)风扇的运转速率用户可以清楚看到。(4)测到的温度情况用户能够清楚看到。 (5)当没有测到机箱内部温度时,蜂鸣器会发出声音提醒用户,液晶屏也会一闪一闪说明出故障了。相反的还有一种情况就是里面温度过高了,1超过了五十度,用户也能通过声音和显示屏了解到。2 硬件电路设计2.1 工作框图控制核心当然是由单片机来做,其他各模块都需要通过控制核心来实现各自的功能,并相互促进。具体的运行流程如下:通过温度测试电路测到的温度,经过单片机响应,把命令信号送至各个模块,风扇控制电路会根据接收到的信号采取相应的动作:停转或变速,看门狗电路作为监视电路,它和
12、报警电路担任着系统的稳定性保护的作用,整个系统就能够安全地完成它的任务了。工作框图如图 1 所示。时钟晶振 复位电路 温度测试 看门狗电路 电路 电路 AT89S52 单片机LCD1602 显示 PWM 风扇控制电路 报警电路电路 图 1 系统工作流程2.2 硬件总电路图AT89S52 作为硬件电路的核心,再加上晶振和复位电路,共同构成了单片机最小控制系统。显示电路上,采用的是 LCD1602 显示器,在 1602 显示电路上采用的是可控背光设计,今后如有所需可关闭背光。把两个 8050 的三极管并联构成风扇的控制电路,这样做是能够把最大电流限度拉高,以适应多电扇同时运作。使用单排插是为今后需
13、求所保留的扩展口 1。22.3 系统实现的功能基于单片机的电脑机箱风扇温控系统在控制核心上面选择了单片机,在另外的模块中比如显示电路、调速方式等也做了测试比较,最终完成的一个性能优秀的温控系统。其主要性能中较为突出的几个包括了 LCD 显示温度、时间,风扇速率的实时监视和测量,还有就是对于故障情况下的报警功能等,这些都给了用户一个方便可靠的依托,替用户分担了很多意料之外的故障情况。每一个事物都是需要追求完美的,在完成这些功能的同时,其还保存了相当多有用的可扩展口,可依据以后的发展前景再另外设置其他一些实用的功能 2。 2.4 芯片介绍2.4.1 主控芯片微控制器的核心地位体现在各类装置设备上,
14、此次也不例外。众所周知,AT89S52 作为市面上大多数人的不二选择,其性价比毋庸置疑,而且不用担心货源不足,其兼容性和耐用性也是人们选择它的原因之一。其由 ATMAL 公司制造,已经是一个在单片机发展中比较成熟的型号了 3。微控制器中的硬件与软件并没有严格的界限之分。硬件是指组成微机系统的全部物理装置的总称,软件系统是微控制器使用的全部程序的统称,硬件相当于物质基础,而要控制微机必须靠软件系统,除了和微机交换讯息以外,还能命令微机做其他各种工作。两者在一起才构成一个完整的单片机系统。AT89S52 单片机是 ATMAL 公司 89 系列单片机中的一种具有 8 位 Flash 存储器的单片机,
15、在单片机的进化过程中,其最具代表性的地方是片内含有Flash 存储器,使它的应用范围变得更宽广,用于解决各种复杂的控制问题,特别是在生产手提式仪器,便携式商品等方面,且成本较低。如图 2 是它的引脚图。3图 2 引脚图AT89S52 是一个 8 位的耗功比较低,性能优秀的 CMOS 微控制器,里面含有8k Bytes 只读程序存储器,它可以重新擦写 1000 多次,由 ATMEL 公司制造,使用的是性价比高且不容易丢失的存储技术,更重要的是它可以与工业中的80C51 相互兼容,里面还拥有 8 位中央处理器和 ISP Flash 存储单元,因此它成为了很多应用上以及许多工业中广泛采用的控制芯片
16、4。它的特点比较多,具体见下:它能够与 MCS-51 系列单片机相互兼容,有四十个引脚,8kbFlash 片内程序存储器,至少可以重复擦写一千多次,工作电压范围宽,为 4 到 5.5V,拥有 256B 随机存取数据存储器(RAM),三个十六位的可以进行程序编写的定时计数器,三十二个外部双向输入/输出口,五个中断优先级,两层中断嵌套中断,还有两个全双工串行通行口,看门狗电路 5。此外,AT89S52 的振荡频率可以为 0HZ,而且可以人为进行改写程序使他进入省电模式,一般在空闲的时候,CPU 会停止没用的活动,而一些有用的程序还是会继续运行,比如说定时器,计数器,串行口,中断服务程序等,一般为了
17、保护数据,系统在掉电的时候回保存 RAM 的数据,停止其他的作用,直到中断开启或者说有人为的开启。外观上,它又有三种不同的封装模式,如LCC、PDIP 和 TQFP,可以根据客户的需要变换形式 6。4图 3 AT89S52 内部结构图现在大多寄存器都具有了其特殊的功能,功能的不同也成为不同寄存器的区分标准。AT89S52 单片机就是其中之一。我们也叫它们专用寄存器(Special Function Register)。共含有二十二个不同寄存器。其地址单元是在 RAM 地址中的,也就是我们常用到的 80HFFH 中 7。详细名称及地址见表 1。表 1 AT89S51 特殊功能寄存器列表符号 地址
18、 注视*ACC 0E0H 累加器*B 0F0H 乘法寄存器*PSW 0D0H 程序状态字SP 81H 堆栈指针DPL 82H 数据存储器指针低 8 位DPH 83H 数据存储器指针高 8 位*IE 0A8H 中断允许控制器*IP 0D8H 中断优先控制器*P0 80H 端口 0*P1 90H 端口 1*P2 0A0H 端口 2*P3 0B0H 端口 3PCON 87H 电源控制及波特率选择*SCON 98H 串行口控制器SBUF 99H 串行数据缓冲器*TCON 88H 定时器控制5TMOD 89H 定时器方式选择TL0 8AH 定时器 0 低 8 位TL1 8BH 定时器 0 高 8 位TH
19、0 8CH 定时器 1 低 8 位TH1 8DH 定时器 1 高 8 位在 80HFFH 地址中包含了所有的特殊功能寄存器,但除去这些寄存器,还有很多未被用到的地址,里面的内容我们是不知道的,一般来说不会去操作这些单元,如果去操作的话,会得到一些随机的数值,写入进去也是没用的。所以,我们不能把数据写入这里,当然这些单元的存在肯定是有意义的,公司将来挖掘新的功能时就会使用到它们。2.4.2 MAX706“看门狗”芯片MAX706 在 监 控 整 个 电 路 方 面 表 现 十 分 出 色 , 我 们 也 叫 它 “看 门 狗 ”芯片 , 由 于 其 表 现 出 的 优 良 性 能 也 使 它 越
20、 来 越 受 欢 迎 。 其 内 部 本 身 就 设 有 一 个1.6s 的 看 门 狗 定 时 器 , 还 有 一 个 电 源 电 压 监 视 器 和 电 源 故 障 报 警 器 。 可 想 而知 , 其 就 是 用 来 检 测 电 池 、 电 源 电 压 及 MPU 和 MCU 的 工 作 状 态 8。 引 脚 图 如图 4 所 示 。图 4 引脚图引脚说明:MR:人工复位PFI:电源掉落电压监测输入WDI:看门狗输入WDO:看门狗输出RESET:复位信号输出基本参数:工作电压范围:1.05.5V 电源电流:150350V 复位闵值:4.254.5V 6复位脉冲宽度:140280(mm)
21、输出电压:0.4V 看门狗超时周期:1.6s上拉电流:100600V MR 脉冲宽度:150(mm) MR 输入闵值:0.82.0V PFO 输出电压:-1.50.4V 存储温度范围:-65160 工作温度范围:-4085 焊接温度范围:+3002.5 系统电源由于本系统是基于单片机的风扇控制,所以单片机和风扇都要电源供应,供应电扇的电压要控制在 12V,单片机系统的供给电源没有特别的要求,总共两路电源,都可直接用电脑本身的电源,毕竟本系统是在电脑机箱的内部运作的。PC 所使用的电源大多是是多路输出的 AC-DC 开关电源。按标准要求来制定,则其他各组输出需分别采用颜色不同的导线。具体如下:3
22、.3V 的使用的导线呈橘黄色,而 5V 的使用的则是红色导线,接地的导线为黑色,其他各路 12V 的看上去区别都不大,都是黄色或偏黄色(黄色与其他颜色搭配在一起)。另外还有一些接口的导线具体如下:4pin(2*2)的一边接了 12V 导线,另一边是地线,同样的是 6pin 和 8pin 也是一边接地,一边接了 12V 的导线;另外,在4pin(2*2)中,D 型接口总共四根,一根 12V,一根 5V 还有两根接地,软驱供电同上;SATA 供电接口有一根 3.3V,一根 12V,一根 5V,还有 2 根接地。在电压符合的情况下,此次设计最终决定借用 D 型接口。表 2 PC 电源不同颜色线定义编
23、号 颜色 定义1 绿色 开机信号2 蓝色 -12V3 黄色 +12V4 紫色 5VBS5 灰色 PWR OK6 橘黄色 +3.3V7 黑色 GND8 红色 +5V72.6 复位电路设计不论什么情况下,计算器启动或运行都要先进行复位,复位有很多种,对于 8051 系列都是用的上电复位。不论何种复位,其作用都是让系统和装置回到最开始的时候,再接着运行下去。如果在 RET 复位引脚端上再接一个适当大小的电容,使其变为+5V,在接地端再加一个电阻,上电复位就能顺利完成了。如图 5 所示。图 5 复 位 电 路要使电路能够安全持续的运行下去,复位电路在其中的作用不容小觑,复位电路也分好多种类,这里使用了
24、两种复位电路,按键复位以及上电复位。上电复位的工作过程:刚通电情况下,电流在电路里达到最大值,此时电容是正在充电的状态,RET 端属于高电平状态,因为电容端类似于短路,在很短暂的时间过后,电流稳定下来了,流经电容的电流变 0 了,RST 是低电平,所以程序就继续运转下去了。按键复位的工作过程:当用户摁下按键,RST 与 VCC 可视为直接相连,此时电容类似于短路,不摁按键,VCC 类似于对把电流由导线灌输到电容中,因为接有一个电阻,RST 还是高电平状态,直至充电完,电容断开,RST 才变为低电平。从按下到松开这段时间已经足够满足复位对时间的要求了。程序继续安全地工作。表 3 MCS-51 系
25、列单片机复位后内部各单元的初始状态寄存器 初始状态值 寄存器 初始状态值PC 0000H TMOD 00HACC 00H TCON 00HB 00H TH0 00HPSW 00H TL0 00HSP 07H TH1 00H8DPTR 0000H TL1 00HP1、P2、P3、P4 0FFH SCON 00HIP xxx00000B PCON 0xxx0000BIE 0xx00000B SBUF 不定2.7 时钟频率电路设计单片机只靠自己是无法运行的,必须通过时钟的引导。而其本身在内部就存放着一个时钟振荡电路,所以当存在一个振荡源时,其发出的信号可以使片内其他单元做出响应,从而可以决定其工作速
26、率的大小。原理图如图 6 所示。图 6 晶振电路经过比较选择的石英晶体振荡器,是一种比较新颖的脉冲发生器。运行原理如下:先接通电源加电,差不多延迟 10ms 之后,此电路的振荡器起振,XTAL2 引脚处会出现一个正弦波信号,大小约为 3V,石英晶振的频率决定了其振荡频率。电路中的两个电容 C3,C4,对振荡器起到了帮助起振和微调频率的作用。C3,C4 的值一般为 33PF。单片机在工作的时候,其时钟周期不限于是内部产生的还是外部直接输入的,用一除以时钟信号频率就会得到该值,两者属于倒数关系。2.8 1602 显示电路设计液晶显示屏消耗的功率很低,本身也很轻巧方便,但其却能显示很多内容,已经越来
27、越多的被使用,并得到了广泛好评,尤其是在一些袖珍电子仪器和系统中。本系统用到的是 LCD1602 液晶是一种点阵型液晶模块,鉴于其可以显示数字、字母和符号等,我们也称它为字符型液晶,它不能显示图像是因为它的结构的特殊性,是由若干个五乘以十一或者五乘以七等点阵字符位构成的,每个单元都能显示一个字符,且每一位每一行之间都存在空隙,大小相当于一个点距,所以有了字间距和行间距的概念 9。其外观图如图 7 所示。9图 7 LCD1602 外 观 图管 脚 功 能 :1602 采 用 标 准 的 16 脚 接 口 , 其 中 : 第 1 脚 : VSS 为 电 源 地 第 2 脚 : VDD 接 5V 电
28、 源 正 极 第 3 脚 : V0 为 对 比 度 调 整 端 , 其 对 比 度 在 接 电 源 正 极 时 最 弱 , 接 地 时则 相 反 ( 如 果 太 高 的 话 会 产 生 类 似 “鬼 影 ”的 东 西 ) 。 第 4 脚 : RS 为 寄 存 器 选 择 , 高 电 平 (1)时 选 择 数 据 寄 存 器 , 低 电 平 (0)时 选 择 指 令 寄 存 器 。 第 5 脚 : RW 为 读 写 信 号 线 , 高 电 平 (1)时 进 行 读 操 作 , 低 电 平 (0)时 进行 写 操 作 。 第 6 脚 : E(或 EN)端 为 使 能 (enable)端 。 第 7
29、 14 脚 : D0 D7 为 8 位 双 向 数 据 端 。 第 15 16 脚 : 空 脚 或 背 灯 电 源 。 15 脚 背 光 正 极 , 16 脚 背 光 负 极 。 1602LCD 特 性 :(1)+5V 电压,对比度可调 (2)内含复位电路 (3)提供各种控制命令,如清屏、显示移位、光标闪烁、字符闪烁等多种功能。 根 据 1602 引 脚 功 能 设 计 的 电 路 图 如 下 。 其 中 单 片 机 P0 口 用 做 数 据 口 ,P2 口 高 三 位 做 控 制 口 。 其 15 脚 则 连 接 单 片 机 控 制 的 三 极 管 , 用 来 控 制 背 光的 开 与 关
30、。 如 图 8 所 示 。10图 8 LCD1602 电路2.9 PWM 调速电路设计脉宽调制(Pulse Width Modulation,简称 PWM)调速系统,简称脉宽调制,最早是用于那些功率不大,不可逆的驱动,现在广泛应用在测量、通信等众多领域之中,受到了广泛好评。脉宽调制是一种常用的简易模拟控制方式,晶体管内存在的栅极和基极会受到脉宽调制的控制,依据其所载的电荷的多少,从而控制晶体管的开关还有其导通时间长短,电源的输出电压在工作条件变化能够保持恒定就是靠这种方法实现的,微处理器复杂多变的数据输出同时也为了其控制模拟电路创造了显著有效的途径。 PWM 控制技术操作简单,应答性强,已经成
31、为电力电子技术中应用最广的控制方式,同时也是现代人们专研的热门 10。本系统中,采用就 NPN8050 三极管,三极管的导通和截止是靠单片机输出占空比的方波的变化来控制的,而其时间的长短控制着风扇转速的大小。因为考虑到存在集电极电流不是很大的原因,于是在电路上并联了两只 8050。如图9 所示。8050 三极管参数:类型:开关型; 极性:NPN; 材料:硅; 最大集存器电流:0.5A; 直流电增益:10 到 60; 11频率:150MHz功耗:625MW; 最大集存器发射电(VCEO):25; 图 9 PWM 电路本系统演示时所采用的风扇为一个 3pin 风扇如图 10 所示。具体参数如下:外
32、观尺寸:70mm70mm15mm 转速参考:280010%RPM 轴承类型:双滚珠轴承 使用寿命:60000 小时噪音参考:14DB3DB风量参考:23.38CFM 额定电压:12V额定电压:0.14A接口类型:主板 3pin 口转速监测:支持 包装类型:原包装适用范围:CPU 风扇替换,小机箱风扇12图 10 被控风扇其 3pin 接口,红线为+12V 输入,蓝线为转速信号输出,黑线接地。关于转速的信号是每转一圈会输出 2 个脉冲信号 11。2.10 报警电路设计 整个系统必然会有各种大大小小的瑕疵,如何解决这些瑕疵是一个关键性问题,我们在生活中常常会接触的报警系统可以为这个难题做很好的解释
33、,简而言之就是说加入一个报警电路可以为整个系统提供良好的运行环境。如下图就是报警电路的线路图。9012 三极管作了主导结构,整个报警电路的运行都是围绕其来完成的,什么时候导通和什么时候截止关系着内部蜂鸣器的响声。工作原理大致如下:外界的不定因素很容易影响蜂鸣器的发声,因此在系统处于刚开始的状态时,MCU 上的 P20 口一直保持着高电平,这样做就不会在没有必要的时候听到蜂鸣器叫,让用户无法辨认是出故障或是真正需要报警了。正常情况下来说,系统认为符合了报警的需求了,就会在 P20 口输出低电平信号,9012 三极管就接通了,蜂鸣器此时发声来提醒用户应对故障情况 12。图 11 报警电路132.1
34、1 看门狗电路设计单片机构成的微机系统中,单片机的正常运行状态总会被外界所影响,程序运行不流畅,中断,或进入死循环,进一步影响到由单片机控制的整个系统受到或多或少的影响,对生产生活造成很严重的后果,为了解决这个关键问题,既然不能改变外界的电磁场,则需要时刻都知道单片机的运行状态,由此出现了一种可以随时了解对象单片机运行是否正常的芯片,我们叫“看门狗” 13。看门狗,用专业术语来讲就是 watchdog timer,它内置的一个输入口根据其有趣的名字有了一个形象的称呼,我们叫喂狗端,在 MCU 正常运行的时候,每过一定时间便会发一个信号到喂狗端,使 MDT 清零,如果信号中断了或是超过一定时间(
35、一般在程序运转出现故障时),就发出另一个复位信号回到MCU,MCU 接到信号就会自动复位,从而继续运行,简单来说,看门狗的设计主要就是用来防止 MCU 程序中断、发生死循环或者死机的 14。单片机系统看门狗包括软件看门狗和硬件看门狗两种。软件看门狗借用的是 MCU 内置的计数器或定时器单元,只要在程序中合适的地方插入“喂狗”指令,当程序停转或是进入死循环,就可以利用软件给程序计数器 PC 重新赋值,强行使程序能够从头开始安全地运行下去。 此次设计中并没有使用 AT89S52 软件看门狗,而是更看重硬件看门狗强大的功能。其电路图如图 12 所示。借由 MAX706 的引脚功能,在 1.6 秒内,
36、若 6 脚电平没有任何改变,那么Max706 将在 7 脚发出一个 200ms 的低电平复位信号。真正实行时只需在规定的时间范围(1.6s)内实施喂狗这一指令,就不会有信号发出去,从而让系统又进行没必要的复位动作。图 12 看门狗电路142.12 测温电路设计此次设计对温度传感器的要求可谓相当高,经过比较,最终决定了由DALLAS 公司制造出来的“一总线”数字温度传感器(DS18B20),相比其他的传感器,其性能优秀,体型也小,可以同时使用多个,挂在同一根通信线上也方便,很适合做一个测温系统。它的引脚图如图 13 所示。所有在测温系统总会存在一个关键性问题,也就是外界的不定因素对测量结果的影响
37、,比如引线过长、所需测量的点太多等,还有就是环境本身存在的各种能干扰测量数据的电场磁场,这些问题一直困扰这用户和开发者。但DS18B20 的出现,其强大的特征让这些困扰问题有了更好的解决。首先,DS18B20 相比其他同类产品,测温范围扩大到了55和125之间,并且在一定范围内误差可以精确到0.5。其次,它的分辨率范围也更宽更准确,用户可以从 912 位之中进行挑选。其可以直接连接单片机,就不用再通过其他一些复杂的硬件结构,降低了成本和失误率。其最突出的特点就是“一线总线”,顾名思义,就是说其他产品需要用到很多线的情况下,它只要用一根线就能完成相同的工作,这也是解决干扰性问题的最主要的原因。在
38、设计制作上,准备一个阻值大一点的电阻是必须的,首先数据脚的上拉需要电阻,由于 DS18B20 是单总线温感,在没有接电源的情况下,需强上拉数据线供电,若接有电源,则只一次上拉就可以使 DS18B20 持续运行。此外,如果在不存在温度传感器的情况下,此电阻也扮演关键角色,负责后面的电路的保卫工作。也如图 13 所示。 图 13 DS18B20 引脚和设计图DS18B20 有 4 个主要的数据部件:1)光刻 ROM 中的 64 位序列号可当成是该 DS18B20 的固定地址序列码,是不能改变的。它的排列规律如下:开始 8 位(28H)是产品类型标号,接着的48 位是该 DS18B20 其本身的序列
39、号,最后 8 位则是前面 56 位的循环冗余校验15码(CRC=X8+X5+X4+1)。光刻 ROM 的作用就是使每个 DS18B20 都各不一样,这样就能够在一根总线上挂接多个 DS18B20 了。2)DS18B20 中的温度传感器的作用是测量温度,以 12 位转化作为例子:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达出来,其中 S 为符号位。如表 4 所示:表 4 温度值格式表LS Byte Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit03221021-2-3-4-2MS Byte Bit15 Bit14 Bit13 Bi
40、t12 Bit11 Bit10 Bit9 Bit8S S S S S 654以上是 12 位经过转化后得到的数据,分别储存在 18B20 的两个 8byte 的RAM 内,二进制中的前面 5 位是符号位,如果测得的温度大于 0,那这 5 位就是0,所测的数值乘以 0.0625,便可计算出实际的温度;如果温度小于 0,那这 5位就是 1,测到的数值需要取反再加 1 再乘以 0.0625 才可得到实际的温度。3)DS18B20 温度传感器的存储器。DS18B20 温度传感器的内部存储器包括了一个非易失性可电擦除的 EEPRAM 和一个高速暂存 RAM,前者存放了高温度和低温度触发器 TH、TL 和
41、结构寄存器。 4)配置寄存器。该字节各位的意义如下:表 5 DS18B20 配置寄存器由表 3 看出,低 5 位一直为 1,TM 是测试模式位,其作用是控制 DS18B20在工作模式和测试模式之间的转换。在 DS18B20 出厂时 TM 被设置为 0,无需修改。分辨率的高低由 R1 和 R0 来控制,具体如表 6 所示:(出厂为 12 位)表 6 分辨率设置表R1 R0 分辨率 最大转换时间0 0 9 位 93.78ms0 1 10 位 187.5ms1 0 11 位 375ms1 1 12 位 750ms从 DS18B20 通讯协议得知,要使主机控制下的 DS18B20 完成温度转换必须完成
42、三个步骤:确保每一次读写前都对 DS18B20 进行了复位,复位成功后就会先发出一条 ROM 指令,最后再发出 RAM 指令并传输出去,这样做DS18B20 预定的操作才能实现。复位的操作如下:让主 CPU 先将数据线下拉16500us,释放,在确保 DS18B20 接受到信号的 1660us 之后,发出一个60240us 的低存在脉冲,若原 CPU 又重新接收到了信号,说明复位成功。表 7 ROM 指令表指令 约定代码 功能读 ROM 33H 读 DS1820 中的编码符合 ROM 65H 发出命令后,接下来发出 64 位 ROM 编码,访问单总线与该编码相对应的 1820 作出反应搜索 R
43、OM 0F0H 用于确定挂接在同一总线上的 1820 的个数和识别 64 位 ROM 地址。跳过 ROM 0CCH 忽略 64 位 ROM 地址,转而向 1820 发转换温度命令。告警搜索命令0ECH 执行后只有温度超过设定值上限或下限时才会做反应。温度转换 44H 启动温度转换,时长为 500ms,存入内部 RAM 当中读暂存器 0BH 内部 RAM 中内容写暂存器 4EH 先在内部 RAM3、RAM4 字节上写下温度的数据命令,然后再向外传输 2 字节的数据复制暂存器48H 将 RAM3、4 字节内容复制到 EEPROM 中重调EEPROM0B8H 将 EEPROM 中内容恢复到 RAM
44、中读供电方式0B4H 寄生供电时发送“0”,外界电源供电时则发送“1”173 软件设计3.1 系统工作总流程软件的具体流程可以参看如图 14。复位成功之后,即系统初始化,单片机会接收处理温度传感器所测的温度,单片机计时器同时计时,计数器则记风扇转速,这些数据都会通过 LCD 液晶显示屏显示出来。根据测到的温度,单片机发出控制信号控制电扇的正常运行、停转或者全速运转。全部过程都是由看门狗模块监视着的,出现故障或者系统不正常,一经发现便会马上做出复位响应,促使系统安全回到开始状态并再次运行下去。开始系统初始化 N Y 单片机接收温度 传感器温度温度50温度处理控制信号 2519) t=0;TH0
45、= 0x0EC;TL0 = 0x78;3.3 DS18B20 测温程序 硬件设计的过程本身就是一个复杂的工程,再加上 DS18B20 属于单总线器件,所以在操作时的顺序问题不能有一点怠慢,而且 DS18B20 驱动在编写时也要注意好多地方,不能出错。第一要做的就是把 DS18B20 进行复位。如图 15所示为 DS18B20 的复位操作。图 15 DS18B20 复位时序图参看以上的复位时序图所知:当 DS18B20 接到一个由单片机发出的信号,此低电平信号不低于 480S,再经过 1560S 后,他就会回发出一个芯片的存在脉冲。这个低存在脉冲长短在 60240S 之间。这个过程结束后,也就是
46、19电平得到复位,则控制器需要做出处理,即拉高数据单总线,这样做是确保能在 1560S 后收到存在脉冲。到这一步为止,通信的双方已经完成了基本的协商,之后的问题都交给了单片机与 18B20 两者之间数据的传递和交换 15。设计的复位程序如下:void ds1820rst()/*ds1820 复位*/ unsigned char time;unsigned char x=0;DQ = 1; /DQ 复位delay_18B20(4); /延时DQ = 0; /DQ 拉低delay_18B20(100); /调用延迟,精确延时大于 480usDQ = 1; /拉高for(time=0;time59)
47、 sec=0;min+;sec+; if (min59) min=0;hor+;min+;3.5 看门狗程序前面已经介绍了看门狗的的硬件设计,程序中要注意务必在 1.6 秒内完成“喂狗”。所以可以编写如下程序。主循环中加入 dog=1;main()While()dog=1;/sbit dog=P10中断中加入 dog=0;void time0() interrupt 1 using 2dog=0;213.6 LCD1602 显示程序由于本系统采用的背光是可控的,之后系统修改会有需要,所以在初始化系统时应加入下面这些语句来点亮背光。LCDEN=0; /lcd 背光(已定义 sbit LCDEN=
48、P24)LCD 驱动的程序也需按 LCD1602 工作时序来编写。LCD1602 写时序如图 16所示。图 16 写 时 序 图表 8 时 序 参 考 时 间时 序 参 数 符 号 最 小 值 单 位 测 试 条 件E 信 号 周 期 Tc 400 nsE 脉 冲 宽 度 Tpw 150 nsE 上 /下 升 沿 时 间 Tr, Tf- ns引 脚 E地 址 建 立 时 间 Tsp1 30 ns地 址 保 持 时 间 Thd1 10 ns引 脚 E RS R/W数 据 建 立 时 间 ( 读 ) Td - ns数 据 保 持 时 间 ( 读 ) Thd2 20 ns数 据 建 立 时 间 (
49、写 ) Tsp2 40 ns数 据 保 持 时 间 ( 写 ) Thd2 10 ns引 脚 DB0DB7通过图 16 的时序图与表 8 时序参考时间可以得到如下信息:写 指 令 : 输 入 : RS=L, RW=L, D07=指 令 码 , E=高 脉 冲 写 数 据 : 输 入 : RS=H, RW=L, D07=数 据 , E=高 脉 冲 在 LCD1602 程序编写时,对其写命令和写数据时 LCD 的反映速度要尤为注意。22这里可直接通过延迟或加入测忙程序来避免。void wr_com(unsigned char com)/写指令/ delay1ms(1);RS=0;RW=0;EN=0;P0=com;delay1ms(1);EN=1;delay1ms(1);EN=0;void