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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

CPU智能散热监控系统设计Word文件下载.docx

1、案,其一是使用CPU 芯片内部的EEPROM(这需要CPU 本身具有这个功能),其二是向片外扩展存储芯片。虽然本系统选用的CPU 具有1k 字节的EEPROM,但由于使用内部存储器的操作比较简单,出于本次课程设计训练的目的,我还是倾向于使用扩展一片外部I2C 总线的24C08 存储器,让自己在I2C 总线硬件接口及软件设计等方面得到较多的设计体会。为便于人机交互,检测的温度值及设定温度阈值的过程必须直观的显现出来,显示的内容包括当前检测到的温度值,已设定的温度值或者正在设定状态的输入温度数值,由于显示的信息比较简单,可以利用开发板附件中的1602 液晶显示屏完成输出显示。出于本次课程设计训练的

2、目的,直流电机吹风散热用直流输出电机代替。Cpu电源保护用开发板自带继电器。最后剩下的就是蜂鸣器输出报警模块,这个功能模块可以使用定时器输出一定频率的方波信号来获得蜂鸣器发出一定频率的声音。根据上述分析,由硬件功能可以将本系统分解为如下7 个功能模块:1.温度检测软硬件模块,采用18B20 数字温度传感器及其接口电路;2.蜂鸣器发音软硬件模块,采用蜂鸣器及其接口电路;3.按键输入软硬件模块,采用4*4 矩阵按键及其接口电路;4.存储器软硬件模块,采用I2C 总线的24C08 存储器及其接口电路;5.液晶显示软硬件模块,采用1602 液晶显示屏及其接口电路;6.直流电机输出软硬件模块,采用NCV

3、7B直流电机;7.继电器软硬件模块,采用开发板自带的继电器;8.系统CPU 模块,采用STC89c52 最小系统。3. 系统主要硬件电路模块设计 根据上述分析确定的设计方案,本系统主要设计和使用了温度检测电路模块、矩阵按键电路模块、蜂鸣器电路模块、液晶显示电路模块、直流电机转动软硬件模块以及存储器电路模块,前两个属于信号输入模块,后四者属于输出模块。下面就这六个模块的设计分别论述。3.1温度检测电路模块 根据18B20 数字温度传感器的性能及电气参数特性,设计接口电路如图3.1 所示。18B20 数字温度传感器属于单总线数据通讯器件,即只有一根数据线,系统中的数据交换、控制都由这根线完成。为了

4、通讯的需要,在设计电路中,在该传感器的数据I/O 引脚上外接一个约为 4.7K 的上拉电阻,以保证当该总线闲置时其状态为高电平。图3.1温度传感器18B20接口电路图3.2矩阵按键电路模块 如前所述,本系统采用4*4矩阵按键,电路如图3.2所示。图中的四条行线和四条列线可接入一个8位的端口,该端口各位都上拉一个1k的电阻。 图3.2 矩阵按键接口电路图3.3 蜂鸣器电路模块 本系统的报警提醒采用蜂鸣器发音鸣叫来实现,蜂鸣器控制电路如图 3.3 所示。 图3.3 蜂鸣器接口电路图 在 PNP 型三极管8550 的基极通以一定频率TTL 电平的方波信号,使三极管产生同样频率的开关动作,从而引发蜂鸣

5、器发出对应频率的声音。 3.4 液晶显示电路模块 本系统采用1602 液晶显示集成电路模块,它与单片机的接口如图3.4 所示。 图3.4 液晶显示电路模块 对于该集成电路模块,其控制端(4-14 号引脚)可以直接接入CPU 端口。图中设计有一个10K 的可调电阻,其中心抽头联至该模块的3 号引脚,其2 号引脚接5V电源正极一并联至可调电阻的一侧,另一侧接至5V 地,调节可调电阻的大小可以调整液晶显示字符的对比度。液晶显示背屏光的电路接口由15 及16 号脚分别接5V 电源正极和5V 地来实现。3.5 存储器电路模块 本系统采用具有 I2C 总线的24C08 存储器,组成系统结构简单,占用空间小

6、,芯片管脚的数量少,无需片选信号,价格低,应用比较广泛,传送速度可达400kbps,标准速率为100kbps。 器件引脚地址是由I2C 总线外围器件的地址引脚(A2,A1,A0)决定,由于本系统只扩展一片1K 字节的24C08 存储器,故引脚(A2,A1,A0)直接共地,其地址代码相对应信号为0。该存储器的SDA, SCL 引脚联至CPU 端口并分别外接10K 的上拉电阻。电路如图3.5 所示。 图3.5 存储器接口电路3.6 直流电机输出电路模块本系统采用NCV7B直流电动机代替cpu风扇转动。电机用P3.0和P3.1口控制。 图3.6 直流电机控制原理 本系统采用由达林顿管组成的H型PWM

7、电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。3.7 继电器软硬件模块 本系统采用开发板自带继电器。继电器为P3.7口控制。正常情况下单片机的P3.6、P3.7都被程序初始化时置“1” ,继电器处于吸合状态。 图3.7 继电器电路3.8 单片机CPU 最小系统 本系统 CPU 采用宏晶科技推出的STC89S52RC,它是一款高速、低功耗、超强抗干扰的单片机,指定代码 完全兼容传统8051 单片机,有E

8、2PROM 功能,内部集成MAX810 专用复位电路,外部晶体20M 以下时可以省略外部复位电路,本系统便充分利用该CPU 的特点,省去了传统的晶振和复位电路。具有为便于后续端口的扩展和使用,本系统已对全部I/O 端口做了上拉电阻设计,考虑到程序代码总量不到2K 字节,完全可以使用片内ROM 空间,故而将EA 引脚接高点位。如图3.6 所示。 图3.6 单片机最小系统3.9 单片机硬件端口分配 为合理利用单片机的端口资源,并且兼顾程序设计的便利,将系统的输出和输入端口作如表3.1配置。 表3.1 单片机端口配置表单片机端口外围接口电路硬件模块P3.318B20温度传感器模块P3.7继电器软硬件

9、模块P2.0-P2.5,P0.0-P0.7液晶显示集成电路模块P3.0-P3.1直流电机输出模块P1.0-P1.7按键电路模块P3.4,P3.5存储器电路模块P3.6蜂鸣器电路模块4. 程序软件设计与分析4.1系统软件分析及详细技术文件设计 作为一个完整的智能测温报警调节系统,其每一个动作细节都是确定和符合设计要求的,这些动作细节就是软件的设计过程和任务,如同设计一个更为详细的产品使用说明书,这个工作必须由系统研发者设计、完成。 根据本次课程设计的提出的功能要求,整个系统功能可以分为两种状态:报警提醒的“正常工作状态”以及设置报警阈值并存储的“设置工作状态”。在“正常工作状态”完成温度比较并根

10、据比较结果确定蜂鸣器鸣叫、电机转动和继电器的吸合。当检测到“设置”按键按下,系统就进入“设置工作状态”,这时可以按下数字键设置报警阈值,在这个过程中如果按下“清零”键,则将已输入设置温度阈值都清零,用户可以在此基础上继续输入数字键;当温度阈值数字输入完成后,按下“确定”按键,则将该输入数值保存到存储器,并作设置温度的更新显示,然后系统状态切换到“正常工作状态”;如果这时按下的是“取消”键,就不保存设置的数值,系统直接切换到“正常工作状态”。 由此可见,上述两种状态是由用户通过按键的选择来决定的。所以,可以在按键处理软件模块中设置状态标志位,以便于在主循环程序中进行个别处理。另外,不论系统处于上

11、述何种工作状态,系统都要检测和显示当前温度,所以系统的主循环应该安排完成如下三个方面的工作:(1) 检测、显示温度;(2)查有没有按键按下,如果有按键按下,就完成按键键值处理和设置选择状态;(3)根据状态选择,确定是显示设置的过程,或是比较设置温度与当前温度,决定是否报警提醒输出,确定电机转动及转动的快慢,确定继电器的吸合。 通过以上的设计和分析,本系统操作主要通过按键进行,按键有数字键0-9,还有“警告设置”“清零”“取消”“确定”“预置设置”等五个功能按键。详细技术文件设计如下: 上电后,首先完成系统初始化和硬件自检:初始化液晶显示模块、存储器和定时器,自检动作为: 蜂鸣器鸣叫10 秒,同

12、时液晶屏显示内部保留的与之温度和警告温度,电机转动。(自检的目的是测试输入和输出硬件的状态,通过输出系统(如显示器或喇叭)告知操作者关于系统的状态。) 自检完成后,系统进入工作状态:读取24C08 存储器的已设置温度阈值,检测当前温度值;液晶显示,从第1 行第1 列显示“yuz:” ,在该行第5 列显示三位的预置温度值;在该行第8列显示“dq:”,在该行第11列显示三位当前温度值;从第2 行第1 列显示“set:”,在该行第5 列显示三位的已设置警告温度值; 当有“设置”键按下,系统就进入“设置工作状态”,从第1 行第14列显示“SET”或“YUZ”字符,从第2 行第14 列显示初始的“000

13、”字符。当检测到数字键按下,从低位到高位更新显示设置的字符,这个过程中如果按下“清零”键,则将已输入设置都做清零显示,继续更新显示后续按下的数字键;当检测到 “确定”按键按下,将该输入数值保存到存储器,并作设置温度阈值的更新显示,把“SET”或“YUZ”字符和设置过程的数字作消隐处理,然后系统状态切换到“正常工作状态”;如果检测按下的是“取消”键,就不保存设置的数值,同样做消隐处理,然后系统直接切换到“正常工作状态”。4.2 系统软件主程序设计 系统软件的主程序包括初始化、自检和主循环。初始化主要针对定时器、液晶显示模块、存储器等硬件进行初始化。 系统使用定时器0 的定时中断输出获得蜂鸣器一定

14、频率鸣叫,使用定时器1的定时中断输出一定频率电机转动。使用定时器方式1,以定时方式工作,通过 TR0、TR1 启动。故TMOD 值为0x11,TH0 、TL0 和TH1、TL1分别是:TH0=0XF5,TL0=0XAA;TH1= 0XFF ,TL1= 0XF6 ; 初始化液晶显示模块通过调用1602LcD.H头文件的初始化函数完成。 存储器初始化只需使得存储器引脚SDA 和SCL 信号都为1,使设备处于空闲状态即可。 与此同时,还要对系统工作的标志位和全局变量做初始化,部分标志位和变量的设置及其功能将在各软件模块中详细说明;系统的设置的全局变量和标志位如表4.2所示。 表4.2 系统软件全局变

15、量及标志位说明全局变量及标志位 属性 功能说明input_luchar按键输入数值的低位input_m按键输入数值的中位input_h按键输入数值的高位temp_dq当前温度值temp_set警告温度值temp_yuz预置温度值fmq_onbit蜂鸣器开启标志wenbiao温度检测标志位status系统状态位 =1:设置参数=0:系统运行开机后默认运行状态 本系统自检工作设计比较简单,主要完成液晶模块、蜂鸣器及电机的输出动作,以供操作者观察设备是否完好; 主循环完成上述分析中述及的三个方面的工作,前2 项工作在本文有专门模块进行说明,此处对第三个工作进行阐述。 如果系统当前状态是设置工作态,那

16、么系统在指定位置完成对设置输入数值的更新显示;而且由于系统在设置态,所以蜂鸣器定时中断输出必须关闭,蜂鸣器也必须关闭,电机输出也关闭。 另外,如果系统处于正常工作状态,那就需要判断设置报警温度阈值、预置温度值和检测温度的关系。程序分两个语句块进行警告温度和当前温度的判断,一个是当警告温度阈值小于当前温度时,蜂鸣器开启,定时中断0开启,同时设置蜂鸣器开启标志位,这样做的目的是:当蜂鸣器开启后就不必重复进入到这个语句块中去开定时中断,以免影响定时输出蜂鸣器的声音效果。另一个是当警告温度阈值大于当前温度时,蜂鸣器关闭,定时中断0关闭,这时就要把蜂鸣器开启标志位清零,以便于温度重新升高后,能进入上一个

17、语句块开启蜂鸣器和中断。程序分两个语句块进行预置温度和当前温度的判断,一个是当预置温度值小于当前温度时,定时中断1开启,当前温度在中断中进行。另一个是当预置温度值大于当前温度时,定时中断1关闭,当前温度检测在主程序中进行。具体流程图如图4.2 所示,该模块程序见附录main()函数。 图4.2 主程序流程图4.3 定时中断程序设计 系统使用定时器 0 的定时中断输出获得蜂鸣器以一定频率鸣叫,故在定时中断程序中只需完成蜂鸣器输出取反,然后重新定义定时初始值,最后启动定时器TR0即可,该模块程序见附录void intt0() interrupt 1 函数。系统使用定时器 1 的定时中断输出获得电机

18、转动的快慢调节,故在定时中断程序中只需定时初始化,然后当小于占空比值时输出低电平,高于时是高电平,从而实现占空比的调整,最后启动定时器TR1即可,该模块程序见附录void timer1(void) interrupt 3 using 2 函数。4.4 按键检测及处理模块程序设计 在该软件模块中主要做两件事,其一:检测有没有按键按下并获取按键键值;其二:根据按下的键值设置状态标志或对按下的值做进一步数据处理。 对于第一件事,本系统专门设计了一个头文件函数key_value.h来完成这个功能,当系统没有按键按下,函数返回键值为0xff,如果有按键按下,则返回该按键的键值。本系统设计的数字键的键值就

19、为数字键的本身的数字值,另外四个功能键的键值分别是:“警告设置”为0x0a,“清零”为0x0b,“取消”为0x0c,“确定”为0x0d,“预置设置”为0x0e。 下面说明第二件事情。当有按键按下,这时就要结合当前的状态进行处理。比如在正常工作状态下,就不响应数字按键的处理。但如果当前是设置工作状态,那就可以对数字按键进行响应和处理了。 首先说明对四个功能按键的处理。 如果用户按下了“设置”按键,系统即进入“设置工作状态”,使标志位status置1,表示当前进入设置状态。按键输入的3 个公共变量做初始化清零,在LCD 上相应位置显示“SET”或“YUZ”字型,输出FMQ 控制端口信号为1,把蜂鸣

20、器关掉,使在设置温度阈值的时候不做蜂鸣器输出。 当前系统如果在“设置工作状态”,这时用户按下了“清零”按键,那么系统将按键输入的3 个公共变量重做初始化清零,其功能很明确:将用户之前按下的数字一次性全部清零,以便于重新数字输入新值。 当前系统如果在“设置工作状态”,这时用户按下了“确定”按键,系统就将之前用户输入的三个数字键键值进行个位、十位、百位的数据计算得到一个数值,判断该值是否在系统要求的“2032 摄氏度”预置范围和“3350摄氏度”警告范围,如果是就把这个数值放入变量yuz和set,并调用函数WriteSet(n,temp_set)保存到存储器中指定的存储单元中;如果不属于该范围,则

21、不做保存。上述过程结束后,由于系统即将要切换到正常工作状态去,所以必须对屏幕显示做消隐,也就是把设置状态的显示字符和数字隐去。然后把系统状态标志位status 清零。 当前系统如果在“设置工作状态”,这时用户按下了“取消”按键,也就是不想保存设置的数值,直接返回“正常工作状态”。系统直接对屏幕显示做消隐,也就是把设置状态的显示字符和数字隐去,然后把系统状态标志位status 清零即可。 当前系统如果在“设置工作状态”,这时用户按下了数字按键,只需完成对输入数值的低、中、高三位依次更新,即把中间位的数值 input_m 赋值给input_h,然后把原来最低位的数值input_l 赋值给input

22、_m,把当前输入的数值给最低位input_l。该模块程序详见附录 void run_key()函数。4.5其他程序的设计4.5.1温度检测程序模块设计 程序中设计了2个变量TH和TL,分别用于存储从18B20传感器分两次读取的温度数据,其中,先读的是温度值低位存入放入TL,接着读的是温度值高位放入TH。然后进行温度数据的处理,把温度数据的整数部分提取出来,结果放入变量temp_now中,整数提取的算法是: TH*16+TL/16。该模块程序详见附录void get_temp()函数。4.5.2温度显示程序模块设计该程序软件模块完成温度值的数据处理并进行显示。程序入口参数为无符号字符型,在程序中

23、对该参数进行个位十位百位的拆解并转换成对应的ASCII码,并输出显示。该模块程序详见附录void disp_temp(uchar temp)函数。 (4.1)5. 后续有待完善和提高的工作本系统设计了一套温度检测及智能报警系统,完成了本次课程设计给出的基本要求,随着设计的逐步推进,我对该系统的功能也有了更加深入的理解,我认为可以在以下几个方面更进一步提高和完善: 1.温度提醒阈值的保存状态可以使用声音或显示提醒,以告知操作者对本操作成功与否。 2. 温度检测报警提醒实现进一步的智能化,采用不同频率的声音来区别温度超出的程度。比如温度超出2 度范围内播放一种频率的声音,超出3-5 度范围则播放另

24、一种频率的声音,其余依此类同。 3. 为了能够进一步体现“以人为本”设计思想,可以使用播放音乐来替代单调的鸣叫声音。 4. 为了使显示更加具有动感,在工作状态可以用滚动方式来显示当前的温度,比如温度每发生变化,则通过滚屏的方式显示1 次或多次。参考文献1 刘祖京. 实用接口技术M. 北京:北京工业大学出版社,1999.2 王彤. C语言在测量与控制中的应用M. 北京:机械工业出版社,2009.3 徐煜明. C51单片机及应用系统设计M. 北京:电子工业出版社,2009.24 谢维成,杨加国. 单片机原理及应用及C51程序设计. 北京:清华大学出版社,2009.附录/*系统软件源程序*/ CPU

25、智能散热监控系统设计/ 主要功能:/ 1可设定和存储预置温度数值(20-32摄氏度)/ 2可设定和存储报警温度数值(33-50摄氏度)/ 3系统工作时能实时检测温度,当超过预置温度数值时启动直流电机吹风散热,温度超出越高使电机转速越快,以加强散热效果。/ 4系统启动时,接通继电器控制电路使CPU工作,当温度超过设定的报警温度时,系统通过继电器电路切断CPU电源以作保护,同时蜂鸣器使鸣叫报警10秒钟。/ 5液晶显示/ 其他功能细节以及按键功能可以根据自己设定的要求拟定。/ 提高:#include#include18b20.h24c08.h#define unit unsigned int #de

26、fine uchar unsigned char uchar input_l; /按键输入的高中低三位定义uchar input_m;uchar input_h;uchar key_zhi;uchar disp_set;uchar disp_yuz;uchar temp_dq; /当前温度值uchar temp_yuz; /预置温度值uchar temp_set; /警告温度值sbit JDQ=P37; /继电器sbit fmq=P36; /蜂鸣器unsigned int t1 ;unsigned int t2 ;bit fmq_on; /蜂鸣器开启标志bit status=0; /定义一个状

27、态位 1:设置参数 0:系统运行,开机后默认运行状态bit wenbiao=1; /定义一个状态位void delay(uint); /申明一个延时函数位 void disp_inilcd();/液晶屏初始化显示void disp_temp(uchar); /显示给定温度数值void get_temp(); /获取温度值void intt0(); /蜂鸣器定时中断void run_key(); /按键处理函数;void timer1() ; /电机定时中断#define V_TH0 0XFF #define V_TL0 0XF6 void main() SDA = 1; / SDA=1,SCL=1,存储器初始化,使主从设备处于空闲状态 SCL = 1; lcd

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

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