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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(基于51单片机的温度控制系统的设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于51单片机的温度控制系统的设计.docx

1、基于51单片机的温度控制系统的设计基于单片机的温度控制系统设计1、设计要求要求设计一个温度测量系统 ,在超过限制值的时候能进行声光报警。具体设 计要求如下 :1数码管或液晶显示屏显示室内当前的温度 ;2在不超过最高温度的情况下 ,能够通过按键设置想要的温度并显示 ;设有四个按 键,分别就是设置键、加 1 键、减 1 键与启动 /复位键 ;3DS18B20温度采集;4超过设置值的 芳C时发出超限报警,采用声光报警,上限报警用红灯指示,下限 报警用黄灯指示 ,正常用绿灯指示。2、方案论证根据设计要求 ,本次设计就是基于单片机的课程设计 , 由于实现功能比较简单 我们学习中接触到的 51 系列单片机

2、完全可以实现上述功能 , 因此可以选用 AT89C51单片机。温度采集直接可以用设计要求中所要求的 DS18B20。报警与指示模块中 ,可以选用 3 种不同颜色的 LED 灯作为指示灯 ,报警鸣笛采用蜂鸣器。 显示模块有两种方案可供选择。方案一 :使用 LED 数码管显示采集温度与设定温度 ;方案二 :使用 LCD 液晶显示屏来显示采集温度与设定温度。LED 数码管结构简单 , 使用方便 ,但在使用时 ,若用动态显示则需要不断更改 位选与段选信号 ,且显示时数码管不断闪动 ,使人眼容易疲劳 ; 若采用静态显示则 又需要更多硬件支持。 LCD 显示屏可识别性较好 ,背光亮度可调 ,而且比 LED

3、 数 码管显示更多字符 ,但就是编程要求比 LED 数码管要高。综合考虑之后 ,我选用了 LCD 显示屏作为温度显示器件 , 由于显示字符多 ,在进行上下限警戒值设定时同 样可以采集并显示当前温度 , 可以直观的瞧到实际温度与警戒温度的对比。 LCD 显示模块可以选用 RT1602C。3、硬件设计根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、 键盘接口模块、温度采集模块、LCD显示模块、报警与指示模块。其相互联系 如下图1所示:图1硬件电路设计框图3、1单片机时钟电路图2单片机内部时钟方式电路形成单片机时钟信号的方式有内部时钟方式与外部时钟方式。本次设计采用 内部时钟方式

4、,如图2所示。单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1与 XTAL2分别为此放大器的输入端与输出 端,其频率范围为1、212MHz,经由片外 晶体振荡器或陶瓷振荡器与两个匹配电 容一起形成了一个自激振荡电路,为单片机提供时钟源。3、2复位电路图3单片机按键复位电路复位就是单片机的初始化操作,其作 用就是使CPU与系统中的其她部件都处 于一个确定的初始状态,并从这个状态开 始工作,以防止电源系统不稳定造成 CPU 工作不正常。在系统中,有时会出现工作 不正常的情况,为了从异常状态中恢复,同时也为了系统调试方便,需要设计一个复位电路。单片机的复位电路有上电复位与按键复位两种

5、形式 ,因为本次设计要求需要 有启动/复位键,因此本次设计采用按键复位,如图3。复位电路主要完成系统的上 电复位与系统在运行时用户的按键复位功能。3、3键盘接口模块本次设计需要的按键有 4个,除去 圖一个复位按键外,还有3个功能按键,因 千 口S3图4键盘接口模块此选择独立式键盘。如图4,将键盘直接 与单片机 P1 口的 P1、0、P1、1、P1、 2相连。3个键设计思路如下:当按下S1 键时,系统进入上下限警戒值调整状态; 当第一次按下S1键时,进行上限警戒值 设定,当第二次按下S1键时,进行下限警 戒值设定,当第三次按下S1键时,回到正常工作状态。在警戒值调整状态下,按下 S2键,上下限警

6、戒值加1,按下S3键,上下限警戒值减1,正常工作状态下,按下S2 与S3键无作用。3、4温度采集模块本次设计中的温度传感器使用的就是 DALLAS公司的单总线数字温度传感 器DS18B20,这就是一种常用的温度传感器,具有体积小、硬件开销低、抗干扰能 力强、精度高的特点。DS18B20采用独特的一线接口,具有只需要一条口线通信多点的能力,简化了 分布式温度传感应用,无需外部元件。可用数据总线供电,电压范围为3、0 V至5、 5V,测量温度的范围为-55C至+125 C,在-10C至+85C范围内精度为)、5C。温度传感器可编程的分辨率为 912位,温度转换为12位数字格式最大值为DALLASD

7、S1B201 2 3sh】1 NC71 NCNC5可脚功能GND接地DQ数掳输入丿输出,对于单线操 作,漏概幵路当工作在寄生 电源棋式时用来提供电瀬VDD可选的VDD引即。工作于寄 生电源橫式时VDD必须接地心HOTTCJM VII-WDS IKB20 To-2NC 口1 NC III vm cznDU J750毫秒,用户可定义的非易失性温度报警设置,应用范围包括恒温控制、工业系统、消费电子产品温度计、或任何热敏感系统。由于 DS18B20就是一条口线通信,所以中央微处理器与DS18B20只有一个一条口线连接。因为每一个DS18B20 的包含一个独特的序号,多个DS18B20可以同时存在于一条

8、总线,这使得温度传 感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温 设备或机器,并进行过程监测与控制。图5 DS18B20封装及引脚DS18B20的核心功能就是它的直接读数字的温度传感器。温度传感器的精度为用户可编程的9、10、11或12位,分别以0、5C,0、25C,0、125 E与0、0625C 增量递增。在上电状态下默认的精度为 12位。DS18B20启动后保持低功耗等待 状态;当需要执行温度测量与AD转换时,总线控制器必须发出44h命令。在那之 后,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中QS18B20继续保持等待状态。当 DS18B20

9、由外部电源供电时,总线控制器在 温度转换指令之后发起“读时序” QS18B20正在温度转换中返回0,转换结束返回1。如果DS18B20由寄生电源供电,除非在进入温度转换时总线被一个强上拉 拉高,否则将不会由返回值。在硬件上QS18B20与单片机的连接有两种方法:一种就是VDD接外部电 源,GND接地,DQ与单片机的I/O 口相连;另一种就是用寄生电源供电,此时,VDD、GND接地,DQ接单片机的I/O 口。无论就 是接外部电源还就是用内部寄生电源 ,I/O 口线要接5kQ左右的上拉电阻。本次设计中,采用外部电源方式,其连GND接方式如图6所示。单总线DQ端接单片机的P1、7 口 ,DQ端接一个

10、4、7kQ的 上拉电阻,这样单总线DQ在闲置状态时为高电平。图6 DS18B20外部电源连接方式3、5 LCD显示模块在本次设计中,使用RT1602C字符型液晶显示模块(LCM)来设计当前温度与 上下限警戒值的显示电路。RT1602C字符型液晶显示模块就是16字X 2行的采用5X 7点阵图形来显示 字符的液晶显示器,采用标准的16脚接口,其引脚定义如图7所示。引脚号引脚名说明引脚号引脚名说明1GND/V ss电源地7D08位双向数据线2Vdd+5V电源8D13Vl液晶显示偏压信号9D24RS数据/命令控制,H/L10D35R/W读/写控制,H/L11D46E使能端12D515BLA背光源正极1

11、3D616BLK背光源负极14D7图7 RT1602C的引脚定义RT1602C的内部结构可以分为3个部分:LCD控制器、LCD驱动器、LCD显示器,其中LCD控制器采用的就是HD44780。RT1602C与单片机的连线如图8所示。发光二极管,蜂鸣器发出响声;温度在正常范围内时,点图9报警与指示模块LCM的数据总线与单片机的P0 口通过一个上拉电阻排相连 丄CM的三条控 制线RS、RW、EN分别与单片机的I/O 口 P2、0、P2、1、P2、2相连,第1、2 引脚分别与地、电源相连,第3引脚使用一个10kQ的可调电阻对显示屏的明亮进 行调整。3、6报警与指示模块亮黄色发光二极管。整个报警与指示电

12、路如图 9所示,其中绿、红、黄色指示灯 分别接单片机P2、0、P2、1、P2、2 口,电平拉低时点亮LED,蜂鸣器电路接单片 机的P2、7 口,电平拉高时蜂鸣器响。至此便完成了整个硬件电路的设计工作,整个系统的原理图见附录二,系统I/O分配表如下:I/O 口功能说明I/O 口功能说明PO、0P0、7LCM数据口P2、1LCM读/写控制P1、0P1、3键盘输入P2、2LCM使能P1、7DS18B20温度米集P2、4P2、6LED信号输出P2、0LCM数据/命令控制P2、7报警信号输出4、软件设计图10软件设计框图单片机应用系统的设计中,软件设计占有重要的位置。在本次设计中,根据功 能要求,可以把

13、系统程序划分为5个模块,即主程序模块、显示模块、温度测量模 块、键盘扫描模块、其它子程序模块,如图10所示。4、1主程序设计.主稈序 */主程序的内容包括单片机初始化、相关部件初始化与一些其它子程序的调用 等。主程序清单如下,程序流程图如图11所示。void main (void)P1=0xff;/初始化P1 口以便读入P2|=0x70;P2&=0x7f;Temp_set 仁90;Temp_set2=10;Delay(500);ini t_LCD();in it_18B20();Display_str(0,0,str2);Display_str(0,1,str2);Delay(2000);Di

14、splay_str(0,0,str0);/上限报警温度初值90/下限报警温度初值10/延时500ms启动/LCD初始化 /DS18B20初始化/开机界面/开机界面图11主程序流程图Display_str(0,1,str1);while(1)Key_sca n();/扫描键盘Read_temp();读取温度Cha nge();Display();/显示Alarm();/指示灯与报警程序Delay(1000);4、2显示模块显示程序主要完成的功能就是模式、上下限警戒值与测量温度值的显示,模块中包含LCD初始化、显示单个字符子函数、显示一个字符串子函数。程序流程图如图12所示丄CD初始化程序如下,其

15、它子函数程序详见附录一。*LCD初始化void ini t_LCD(void)P0=0;Delay(15);LCD_Comma nd(0x38,0);Delay(5);LCD_Comma nd(0x38,0);图12显示程序流程图Delay(5);LCD_Comma nd(0x38,0);Delay(5);LCD_Command(0x38,1); 8位数据传送,2行显示,5*7字形LCD_Comma nd(0x08,1); / 关闭显示LCD_Comma nd(0x01,1); / 清屏LCD_Comma nd(0x06,1); /显示光标右移设置LCD_Command(0x0c,1); /显

16、示屏打开,光标不显示不闪烁4、3温度测量模块温度测量程序主要功能就是读出数字温度传感器的温度值。要正确地读出温 度值必须严格遵守单总线器件的命令序列,否则单总线器件不会响应主机。单总 线器件的命令序列如图13所示。DS18B20初始化*/温度测量模块程序流程图如图14所示QS18B20初始化程序如下,其它子程 序详见附录一。Yvoid in it_18B20(void)DS18B20存在?Nuchar x=0;DQ=1; DQ 复位Delay_us(4); / 延时DQ=0; /将DQ拉低Delay_us(250); /精确延时大于 480usDQ=1; /拉高总线Delay_us(40);x

17、=DQ;本次设计中使用了 4个按键,除了图14温度测量程序流程图1个复位键还有3个功能键,具体功能前面4、4键盘扫描模3块单总线命令序列Delay_us(20);键盘扫描已介绍。键盘扫描程序如下,其它子程序详见附录一,相关流程图如图15所示void Key_sca n(v oid)uchar temp;P1=0xff;if(P1!=0xff)Delay(20); /延时消抖if(P1!=0xff)temp=P1;switch(temp)case 0xfe:Key_set();break;P1、0按下,功能选择case 0xfd:Key_i nc();break;case Oxfb:Key_de

18、c();break;P1、2按下,数字减一default:break; 图15键盘扫描程序流程图4、5其它子程序程序中使用的其它子程序,包括延时子程序、显示字符转换子程序等,具体详见附录一。5、仿真分析在本次的设计中,使用了 Proteus仿真软件进行了功能测试,具体仿真步骤及分析如下(1)按照原理图,从Proteus元件库中找出对应元件,搭建硬件仿真电路,将程序烧写 到单片机中,仿真图见附录三。(2)式为N正常工作,绿灯亮,蜂鸣器不响,如图160b DnrD p h, canRF1点击运行按钮开始仿真,初始上下限值为90C与10C,当前温度为25C,当前模图16正常模式下仿真图(3)按下S1

19、键,进入上限警戒值设置模式 H,此时按S2、S3键可以进行上限值设定同时温度正常显示,设置上限值80C,如图17(4)再次按下S1键,进入下限图戒值设置模值设定仿真时按S2、S3键可以进行下限值设定,同时温度正常显示,设置下限值20C,如图18图18下限值设定仿真图- 4 Irnr*aFT 、yr “ Y亠Y KV护J叶Ki imD 冉I巴2电I n 3nrEh赋対I 3 F.lN (5)再次按下S1键,返回正常模式N,调节DS18B20温度,测量温度随之改变,降低 温度,超过下限值5C以下时黄灯亮,蜂鸣器报警,如图19。图19下限报警仿真图rssp-i-ygSE I1 !M FTVW(6)升

20、高温度,超过上限值5C以上时黄灯亮,蜂鸣器报警,如图20。(7)按下S4键,单片机复位。图20上限报警仿真图在本次仿真中,可以瞧出,本次设计的硬件电路与软件程序均能成功仿真出来 设计要求的各种功能均已达到。6、总结本次课程设计为期一周 ,到此已全部结束。回想一周中的设计过程 ,我深深感 觉收获良多。由于从前只就是在理论上学习了单片机以及各种其它知识 ,即使就是实验也只就是按照实验指导书进行操作 ,并没有实际的独立设计一个系统 ,因此 在刚开始接触本次课程设计时 ,有一点无从下手的感觉。后来通过查阅相关资料 , 渐渐开始了解课程设计的一般过程 ,开始明白一些元器件的相关作用与编程实现 方法 ,并

21、在此期间通过不断深入的学习与锻炼 ,开始渐渐能熟练运用与熟练编程起 来。通过本次计算机控制技术的课程设计 ,我更深层次的把理论知识与实际设计 结合在一起 ,锻炼了我的综合运用所学的专业基础知识与解决实际工程问题的能 力。同时也提升了我查阅文献资料、 设计手册、 设计规范以及电脑制图等其她知 识能力水平。 对各种系统的适用条件 ,各种设备的选用标准 ,各种管道的安装方式 , 我都就是随着设计的不断深入而逐渐熟悉并学会应用的。并且 ,通过对整体的掌控 ,对局部的取舍 ,对细节的斟酌处理 ,以及绘图的技巧都使我在设计领域的能力 得到了锻炼 ,得到了较丰富经验。 最后 ,通过这次的课程设计 ,我也深刻

22、地认识到 , 只有将书本与具体的实践相结合 ,才会有真正的收获 ,才能巩固自己的所学 ,认识 到自己的不足 ,同时我们也要有一种积极学习的态度 ,时代在进步我们也要跟着时 代前进 ,要不断学习 ,不断创新 ,用自己的知识与行动来证明自己的价值。本次课程设计以单片机为核心 ,介绍了用 DS18B20 温度传感器进行温度采集 并将其传输给 AT89C51 单片机进行处理再送到 LCD 显示屏显示。 在此期间可以通过按键进行上下限警戒值设置 ,通过 LED 与蜂鸣器进行指示与报警。本文就是 采用模块化的方式进行叙述 ,对各模块的设计进行了比较详细地阐述 ,并着重分析 硬件搭建过程与系统软件的设计过程

23、 ,使用单片机 C 语言进行程序没计。本次设 计的基于 DS18B20 的温度测量系统就是一个分布式的温度测量系统 ,它可以远程对温度实现测量与监控 ,广泛应用于电力工业、煤矿、森林、火灾、高层建筑等 场合。本设计应用性比较强 ,可以应用在仓库温度、大棚温度、机房温度、水池等 的监控。当然 ,本次设计还存在一些不足 ,例如在本次设计中 ,由于时间较短 ,警戒值 只就是在199C之间,没有能够扩展到负温度与100C以上;在本次设计中只就是 用了4个独立按键 ,实现简单的上下限警戒值设定 ,操作较麻烦 ,如果能够设计出多 按键的矩阵式键盘 ,则能够对温度进行很方便的设定。此外如果把本设计方案扩 展

24、为多点温度控制 ,加上上位机 ,则可以实现远程温度监控系统 ,将具有更大的应 用价值。7、参考文献1潘新民 ,王燕芳、 微型计算机控制技术 M 、 北京 :电子工业出版社 ,20142王迎旭、 单片机原理与应用 M 、 北京:机械工业出版社 ,20133康华光、 电子技术基础 M 、 北京 :高等教育出版社 ,20134周正华,唐宁RT1602C与FPGA接口技术J、中国科技信息,2008(10)5廖琪梅 ,韩彬等、 基于 DS18B20 的温度测量仪 J 、 国外电子元器件 ,2008(2)附录一 :程序清单#include#include#include#define uchar unsi

25、gned char#define uint unsigned int#define BUSY 0x80void Delay(uint);void init_LCD(void);void LCD_Command(uchar,uchar);void LCD_Data(uchar);void ReadyLCD(void);void Display_char(uchar,uchar,uchar);void Display_str(uchar,uchar,uchar code *Data);void Change(void);void Display(void);void init_18B20(void

26、);uchar Read_18B20(void);void Write_18B20(uchar);void Read_temp(void);void Delay_us(uchar i); void Key_scan(void); void Key_set(void); void Key_inc(void);void Key_dec(void); void Alarm(void);sbit LCD_RS=P2P;sbit LCD_RW=P2A1;sbit LCD_EN=P2A2;sbit DQ=P1A7;sbit Normal=P2A4;sbit Alarm_H=P2A5;sbit Alarm_

27、L=P2A6; sbit Alarm_BEEP=P2A7;uchar Set_flag=0;uchar Temp_mea,Temp_set1,Temp_set2;uchar Temp_high_1,Temp_high_2;uchar Temp_low_1,Temp_low_2;uchar Temp_true_1,Temp_true_2;extern uchar code str0=High: C Low: C; extern uchar code str1=Mode: Deg: C;extern uchar code str2= Hellow! ; extern uchar code str3

28、=0123456789; extern uchar code mode=NHL;主程序void main(void)/ 上限报警温度初值 90/ 下限报警温度初值 10/ 延时 500ms 启动/LCD 初始化 /DS18B20 初始化/ 开机界面/ 开机界面P1=0xff;P2|=0x70;P2&=0x7f;Temp_set1=90;Temp_set2=10;Delay(500);init_LCD();init_18B20();Display_str(0,0,str2);Display_str(0,1,str2);Delay(2000);Display_str(0,0,str0);Displ

29、ay_str(0,1,str1);while(1)Delay(1000);Key_scan();Read_temp();Change(); Display(); Alarm();/ 扫描键盘/ 读取温度/ 显示/ 指示灯与报警程序延时 kmsvoid Delay(uint k) uint i,j;for(i=0;ik;i+)for(j=0;j60;j+)void init_LCD(void)P0=0;Delay(15);LCD_Command(0x38,0);Delay(5);LCD_Command(0x38,0);Delay(5);LCD_Command(0x38,0);Delay(5);LCD_Command(0x38,1); /8 位数据传送 ,2 行显示 ,5*7 字形LCD_Command(0x08,1); / 关闭显示LCD_Command(0x01,1); / 清屏LCD_Command(0x06,1); / 显示光标右移设置写指令数据到 LCD*/LCD_Command(0x0c,1); / 显示屏打开 ,光标不

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1