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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于51单片机的温度控制系统设计Word格式文档下载.docx

1、3.3键盘接口模块本次设计需要的按键有4个,除去一个复位按键外,还有3个功能按键,因此选择独立式键盘。如图4,将键盘直接与单片机P1口的P1.0、P1.1、P1.2相连。3个键设计思路如下:当按下S1键时,系统进入上下限警戒值调整状态;当第一次按下S1键时,进行上限警戒值设定,当第二次按下S1键时,进行下限警戒值设定,当第三次按下S1键时,回到正常工作状态。在警戒值调整状态下,按下S2键,上下限警戒值加1,按下S3键,上下限警戒值减1,正常工作状态下,按下S2和S3键无作用。3.4温度采集模块本次设计中的温度传感器使用的是DALLAS公司的单总线数字温度传感器DS18B20,这是一种常用的温度

2、传感器,具有体积小、硬件开销低、抗干扰能力强、精度高的特点。DS18B20采用独特的一线接口,具有只需要一条口线通信多点的能力,简化了分布式温度传感应用,无需外部元件。可用数据总线供电,电压范围为3.0 V至5.5V,测量温度的范围为-55至+125 ,在-10至+85范围内精度为0.5。温度传感器可编程的分辨率为912位,温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置,应用范围包括恒温控制、工业系统、消费电子产品温度计、或任何热敏感系统。由于DS18B20是一条口线通信,所以中央微处理器与DS18B20只有一个一条口线连接。因为每一个DS18B20的包含一个独特

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

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

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

6、602C的引脚定义RT1602C的内部结构可以分为3个部分:LCD控制器、LCD驱动器、LCD显示器,其中LCD控制器采用的是HD44780。RT1602C与单片机的连线如图8所示。图8 RT1602C与单片机连线LCM的数据总线与单片机的P0口通过一个上拉电阻排相连,LCM的三条控制线RS、RW、EN分别与单片机的I/O口P2.0、P2.1、P2.2相连,第1、2引脚分别与地、电源相连,第3引脚使用一个10k的可调电阻对显示屏的明亮进行调整。3.6报警与指示模块在本次设计中,采用LED发光二极管作为系统指示灯,采用蜂鸣器作为报警鸣笛。当温度高于上限警戒值时,点亮红色发光二极管,蜂鸣器发出响声

7、;当温度低于下限警戒值时,点亮黄色发光二极管,蜂鸣器发出响声;温度在正常范围内时,点亮黄色发光二极管。整个报警与指示电路如图9所示,其中绿、红、黄色指示灯分别接单片机P2.0、P2.1、P2.2口,电平拉低时点亮LED,蜂鸣器电路接单片机的P2.7口,电平拉高时蜂鸣器响。至此便完成了整个硬件电路的设计工作,整个系统的原理图见附录二,系统I/O分配表如下:I/O口功能说明P0.0P0.7LCM数据口P2.1LCM读/写控制P1.0P1.3键盘输入P2.2LCM使能P1.7DS18B20温度采集P2.4P2.6LED信号输出P2.0LCM数据/命令控制P2.7报警信号输出4.软件设计单片机应用系统

8、的设计中,软件设计占有重要的位置。在本次设计中,根据功能要求,可以把系统程序划分为5个模块,即主程序模块、显示模块、温度测量模块、键盘扫描模块、其它子程序模块,如图10所示。图10 软件设计框图4.1主程序设计主程序的内容包括单片机初始化、相关部件初始化和一些其它子程序的调用等。主程序清单如下,程序流程图如图11所示。/*主程序*/void main(void) P1=0xff; /初始化P1口以便读入 P2|=0x70; P2&=0x7f; Temp_set1=90; /上限报警温度初值90 Temp_set2=10; /下限报警温度初值10 Delay(500); /延时500ms启动 i

9、nit_LCD(); /LCD初始化 init_18B20(); /DS18B20初始化 Display_str(0,0,str2); /开机界面 Display_str(0,1,str2);图11 主程序流程图 Delay(2000); Display_str(0,0,str0); Display_str(0,1,str1); while(1) Key_scan(); /扫描键盘 Read_temp(); /读取温度 Change(); Display(); /显示 Alarm(); /指示灯与报警程序 Delay(1000); 4.2显示模块显示程序主要完成的功能是模式、上下限警戒值和测量

10、温度值的显示,模块中包含LCD初始化、显示单个字符子函数、显示一个字符串子函数。程序流程图如图12所示,LCD初始化程序如下,其它子函数程序详见附录一。/*LCD初始化*/void init_LCD(void) P0=0; Delay(15); LCD_Command(0x38,0); Delay(5);图12 显示程序流程图 LCD_Command(0x38,1); /8位数据传送,2行显示,5*7字形 LCD_Command(0x08,1); /关闭显示 LCD_Command(0x01,1); /清屏 LCD_Command(0x06,1); /显示光标右移设置 LCD_Command(

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

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

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

14、按S2、S3键可以进行上限值设定,同时温度正常显示,设置上限值80,如图17。图17 上限值设定仿真图(4)再次按下S1键,进入下限警戒值设置模式L,此时按S2、S3键可以进行下限值设定,同时温度正常显示,设置下限值20,如图18。图18 下限值设定仿真图(5)再次按下S1键,返回正常模式N,调节DS18B20温度,测量温度随之改变,降低温度,超过下限值5以下时,黄灯亮,蜂鸣器报警,如图19。图19 下限报警仿真图图20 上限报警仿真图(6)升高温度,超过上限值5以上时,黄灯亮,蜂鸣器报警,如图20。(7)按下S4键,单片机复位。在本次仿真中,可以看出,本次设计的硬件电路和软件程序均能成功仿真

15、出来,设计要求的各种功能均已达到。6.总结本次课程设计为期一周,到此已全部结束。回想一周中的设计过程,我深深感觉收获良多。由于从前只是在理论上学习了单片机以及各种其它知识,即使是实验也只是按照实验指导书进行操作,并没有实际的独立设计一个系统,因此在刚开始接触本次课程设计时,有一点无从下手的感觉。后来通过查阅相关资料,渐渐开始了解课程设计的一般过程,开始明白一些元器件的相关作用与编程实现方法,并在此期间通过不断深入的学习和锻炼,开始渐渐能熟练运用和熟练编程起来。通过本次计算机控制技术的课程设计,我更深层次的把理论知识和实际设计结合在一起,锻炼了我的综合运用所学的专业基础知识和解决实际工程问题的能

16、力。同时也提升了我查阅文献资料、设计手册、设计规范以及电脑制图等其他知识能力水平。对各种系统的适用条件,各种设备的选用标准,各种管道的安装方式,我都是随着设计的不断深入而逐渐熟悉并学会应用的。并且,通过对整体的掌控,对局部的取舍,对细节的斟酌处理,以及绘图的技巧都使我在设计领域的能力得到了锻炼,得到了较丰富经验。最后,通过这次的课程设计,我也深刻地认识到,只有将书本与具体的实践相结合,才会有真正的收获,才能巩固自己的所学,认识到自己的不足,同时我们也要有一种积极学习的态度,时代在进步我们也要跟着时代前进,要不断学习,不断创新,用自己的知识与行动来证明自己的价值。本次课程设计以单片机为核心,介绍

17、了用DS18B20温度传感器进行温度采集,并将其传输给AT89C51单片机进行处理再送到LCD显示屏显示。在此期间可以通过按键进行上下限警戒值设置,通过LED和蜂鸣器进行指示和报警。本文是采用模块化的方式进行叙述,对各模块的设计进行了比较详细地阐述,并着重分析硬件搭建过程和系统软件的设计过程,使用单片机C语言进行程序没计。本次设计的基于DS18B20的温度测量系统是一个分布式的温度测量系统,它可以远程对温度实现测量和监控,广泛应用于电力工业、煤矿、森林、火灾、高层建筑等场合。本设计应用性比较强,可以应用在仓库温度、大棚温度、机房温度、水池等的监控。当然,本次设计还存在一些不足,例如在本次设计中

18、,由于时间较短,警戒值只是在199之间,没有能够扩展到负温度和100以上;在本次设计中只是用了4个独立按键,实现简单的上下限警戒值设定,操作较麻烦,如果能够设计出多按键的矩阵式键盘,则能够对温度进行很方便的设定。此外如果把本设计方案扩展为多点温度控制,加上上位机,则可以实现远程温度监控系统,将具有更大的应用价值。7.参考文献1 潘新民,王燕芳. 微型计算机控制技术 M. 北京:电子工业出版社,20142 王迎旭. 单片机原理与应用 M. 北京:机械工业出版社,20133 康华光. 电子技术基础 M. 北京:高等教育出版社,20134 周正华,唐宁 RT1602C与FPGA接口技术 J. 中国科

19、技信息,2008(10)5 廖琪梅,韩彬等. 基于DS18B20的温度测量仪 J. 国外电子元器件,2008(2)附录一:程序清单#includeintrins.habsacc.h#define uchar unsigned 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,uch

20、ar);void Display_str(uchar,uchar,uchar code *Data);void Change(void);void Display(void);void init_18B20(void);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

21、LCD_RS=P20;sbit LCD_RW=P21;sbit LCD_EN=P22;sbit DQ=P17;sbit Normal=P24;sbit Alarm_H=P25;sbit Alarm_L=P26;sbit Alarm_BEEP=P27;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:

22、 C;extern uchar code str1=Mode: Deg:extern uchar code str2= Hellow! extern uchar code str3=0123456789extern uchar code mode=NHL/*主程序*/*延时kms*/void Delay(uint k) uint i,j; for(i=0;ik;i+) for(j=0;j60;j+) ; /*显示模块*/*LCD初始化*/*写指令数据到LCD*/void LCD_Command(uchar LC,uchar BC) if(BC) ReadyLCD(); P0=LC; LCD_RS=0; /选中指令寄存器 LCD_RW=0; /写模式 LCD_EN=1; _nop_(); LCD_EN=0;/*写显示数据到LCD*/void LCD_Data(uchar LD) ReadyLCD(); P0=LD; LCD_RS=1; /选中数据寄存器/*

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

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