ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:395.20KB ,
资源ID:9070301      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9070301.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能电脑散热器.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

智能电脑散热器.docx

1、智能电脑散热器智能电脑散热器设计 摘要:随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数字单片机技术入手,一切向着数字化控制,智能化控制方向发展,与传统的散热器相比,具有可读数方便,测温范围广,测温准确度高,自动调节。该设计控制器使用单片机AT89S51,测温传感器使用DS18B20,用LCD来实现温度显示。 关键词:单片机;温度检测;AT89S52;DS18B20;1.设计内容及性能指标 以MCS-51系列单片机为核心部件,

2、组成一个数字式温度计; 采用数字式温度传感器为检测器件,进行单点温度检测; 温度测量范围:-20100,测量误差小于0.5; 用液晶显示器进行实际温度值显示; 能够根据需要方便设定上下限报警温度。 实现声音报警功能。2.设计方案选择与确定 方案一:用热敏电阻作为温度传感器,通过采集各个时间内的电压,进行A/D转换,经过电压与温度的转换、校准,测量出温度。 方案二:用DS18B20数字式温度传感器。DS18B20是DS1820的换代产品,它与传统的热敏电阻温度计传感器不同,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式。其内部集成了温度传感器及A/D转换模块

3、,通过读取片内数据,测量出温度。方案确定:由于用热敏电阻作为温度传感器误差较大,可靠性相对较差,且不方便调试校准;而DS18B20测量精度高,集成度高,方便调试,线路简单。所以本设计采用方案二。3.系统总体方案 温度计电路设计总体设计方框图如图3.1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,用LCD1602液晶实现温度显示。 图1温度计电路设计总体设计方框图4.硬件电路设计4.1主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用5V电源供电。本设计采用AT89S52最小系统。

4、 4.1.1复位电路图2上电复位电路图 图3 RST引脚电压和时间的关系 图4 手动复位电路图本次设计考虑可以随时调节上下线的考虑,采用了手动复位电路图。4.1.2晶振电路图5 晶振电路(12MHz)4.2温度传感器 DS18B20可以程序设定9-12位的分辨率,精确度为+-0.5。可选更小的封装方式,更宽的电压试用范围。分辨率设定及用户设定的报警温度存储在EPROM中,掉电后依然保存。4.2.1 DS18B20引脚及功能 (1)DS18B20引脚如下图所示: 图6 DS18B20引脚图 (2)引脚功能说明 GND为电源 DQ为数字信号输入/输出端 VDD为外接供电电源输入端(在寄生电源接线方

5、式时接地)。4.2.2 DS18B20的主要特性1适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数 据线供电2独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯3 DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温.4、DS18B20在使用中不需要任何外围元件,全部 传感元件及转换电路集成在形如一只三极管的集成电路内5、温范围55+125,在-10+85时精度为0.56、可编程 的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温

6、7、在9位分辨率时最多在 93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快8、测量结果直接输出数字温度信号,以一 线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力9、负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。4.2.3DS18B20的内部结构 图为DS1820的内部框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL触发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。DS18B20采用脚P

7、R35 封装或脚SOIC封装,其内部结构框图如图所示: 图 图 7 DS18B20内部结构框图 4.2.4 DS18B20的使用方法由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线

8、器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低

9、至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线 DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理如图4.7所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号

10、进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。图4.7中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。 图8 DS18B20工作原理图DS18B20有4个主要的数据部件: (1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位 (28H)是产品类型标号,接着的48位是该DS18B20自身的序列号

11、,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用 是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以 0.0625/LSB形式表达,其中S为符号位。表1: DS18B20温度值格式表这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的

12、数值需要取反加1再乘于0.0625即可得到实际 温度。 例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FE6FH,-55的数字输出为FC90H 。 DS18B20温度传感器主要用于对温度进行测量,数据可用16位符号扩展的二进制补码读数形式提供,并以0.0625LSB形式表示。表2: 部分温度值对应的二进制温度表示数据(3)DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器 TH、TL和结构寄存器。(4)配置寄存器 该字节各位的意

13、义如下:表3:配置寄存器结构TMR1R011111低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用 户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)表4:温度分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms4.3显示电路显示电路采用LCD1602A显示,P3.0 P3.1 P3.2分别接LCD1602A的RS(4脚) R/W(5脚) E(6脚),从P2口输出数据。 图9 LCD1602A外观图160

14、2字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线,VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中:表5 LCD1602A管脚说明表 引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)

15、端,下降沿使能。7DB0底4位三态、 双向数据总线 0位(最低位)8DB1底4位三态、 双向数据总线 1位9DB2底4位三态、 双向数据总线 2位10DB3底4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极 表6 寄存器选择控制表 RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存

16、器(显示各字型等)11从数据寄存器读取数据注:关于E=H脉冲开始时初始化E为0,然后置E为1,再清0。busy flag(DB7):在此位为被清除为0时,LCD将无法再处理其他的指令要求。 表7 LCD显示地址 1234567891011121314151600H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH4.4 DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信

17、号线,3脚接电源,如图3.4。另一种是寄生电源供电方式,单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用电阻4.7K的接高电平。由于单线制只有一根线,因此发送接口必须是三态的。4.5按钮和蜂鸣器设计电路 本次设计用到4个按键,分别用来对上线确定,下线确定,加一,减一的功能。蜂鸣器采用PNP三极管放大,接单片机P1.7。5.系统软件算法分析系统程序主要包括主程序,上线程序,下线程序,读出温度子程序,温度转换命令子程序,

18、计算温度子程序,报警子程序等。5.1主程序主程序的主要功能是负责定义上下线、温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图4.1所示。 图10 主函数流程图5.2上下线子程序流程图 图11 上限子函数程序流程图注:由于下限与上限程序流程相似,也可参考上限设计下限程序,在此,不再详述。5.3读温度子程序 图12 读温度子程序流程图5.4转换温度子程序图13温度转换子程序流程图5.5计算温度子程序图14计算温度子程序流程图 图15 显示温度子程序其他子程序在程序代码中都有详细的注解,见附录。在此,不在绘制流程图

19、。 设计心得体会参考文献: 附录附录一:系统总体仿真电路图附录二:元件清单序号元器件型号数量1AT89S52最小系统12温度传感器DS18B2013蜂鸣器14三极管855015发光二极管26按键复位式47万用板18排线249排针2排10反相器74F041 11液晶显示屏LCD1602112滑动变阻器10K1附录三:程序清单/*/#include#include /使用_nop_()函数 #define uchar unsigned char#define uint unsigned int/*/函数申明/*/void delay(uchar k); /标准延时函数void delay1(uin

20、t s); /LCD延时函数void init(); /初始化显示void init_18b20();/复位ds18b20void write_18b20(uchar dat); /写ds18b20数据uchar read_18b20(); /读ds18b20数据void read_word_18b20(); /读数据并转换温度,进行显示void disp_tp();/温度显示void init_LCD(); /初始化LCD1602void write_data(uchar date); /写LCD1602显示数据void write_com(uchar com); /写LCD1602指令vo

21、id sw();/按键扫描,修改报警上下限值void sw_disp();/显示修改报警上下限界面sbit DQ=P17;/ds18b20数据线引脚sbit rs=P20;sbit rw=P21;sbit en=P22;sbit P10=P10; /蜂鸣器报警引脚,P10=1时报警sbit k0=P30;/4个按键:k0-加上限值,k1-减上限值,k2-加下限值,k3-减下限值sbit k1=P31;sbit k2=P32;sbit k3=P33;uint tvalue;/温度值uchar tflag;/温度正负标志uint i,j,kk=0,key=0; /kk控制上下限值修改界面显示,ke

22、y控制温度界面显示uint temph=30;/初始上限值uint templ=25; /初始下限值uchar code dis0=Welcome!;uchar code dis1=0x00,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x00;/初始化等待界面,进程的代码uchar code dis2=temperature:;uchar code dis3=0x06,0x09,0x06,0x00,0x00,0x00,0x00,0x00,/温度符号代码(。)0x00,0x00,0x06,0x09,0x08,0x08,0x09,0x06;/温度符号代码(C)uchar code

23、 dis4=Change password:;uchar code dis5=H:L:;uchar data temp_data5;/储存温度值的数据/*/主函数/*/void main() init();/初始化显示init_LCD(); /初始化LCD1602ss:init_18b20(); /复位ds18b20read_word_18b20();/读数据并计算转换温度,显示温度值if(tvalue/10)%100)=temph)P10=1; /温度高于或等于上限值,报警else P10=0;kk=0;sw();goto ss; /*/开机初始化显示-欢迎等待界面/*/void init(

24、)/初始化显示uchar n,a,b,temp;P10=0;P3=0x0f; init_LCD(); /初始化LCD1602write_com(0x84);for(n=0;n8;n+)write_data(dis0n);delay1(10);delay1(100);write_com(0x40);/写1602,RAM地址for(a=0;a8;a+)/写入自定义字符,用于LCD显示write_data(dis1a);temp=0xc0;/赋初始化显示,进程标志的初始地址for(b=0;b16;b+) /显示进程标志的进度write_com(temp); /写进程命令write_data(0); /显示进程标志delay1(80);temp+; delay1(500); /*/voi

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2