欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:11918180       资源大小:1.51MB        全文页数:33页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、基于51单片机的温控制系统设计鉴于单片机的温度控制系统设计1.设计要求要求设计一个温度丈量系统,在超出限制值的时候能进行声光报警。详细设计要求以下:数码管或液晶显示屏显示室内目前的温度;在不超出最高温度的状况下,能够经过按键设置想要的温度并显示;设有四个按键,分别是设置键、加1键、减1键和启动/复位键;DS18B20温度收集;超出设置值的5时发出超限报警,采纳声光报警,上限报警用红灯指示,下限报警用黄灯指示,正常用绿灯指示。2.方案论证依据设计要求,本次设计是鉴于单片机的课程设计,因为实现功能比较简单,我们学习中接触到的51系列单片机完整能够实现上述功能,所以能够采纳AT89C51单片机。温度

    2、收集直接能够用设计要求中所要求的DS18B20。报警和指示模块中,能够采纳3种不一样颜色的LED灯作为指示灯,报警鸣笛采纳蜂鸣器。显示模块有两种方案可供选择。方案一:使用LED数码管显示收集温度和设定温度;方案二:使用LCD液晶显示屏来显示收集温度和设定温度。LED数码管构造简单,使用方便,但在使用时,若用动向显示则需要不停改正位选和段选信号,且显示时数码管不停闪耀,令人眼简单疲惫;若采纳静态显示则又需要更多硬件支持。LCD显示屏可辨别性较好,背光明度可调,并且比LED数码管显示更多字符,可是编程要求比LED数码管要高。综合考虑以后,我采纳了LCD显示屏作为温度显示器件,因为显示字符多,在进行

    3、上下限戒备值设准时相同能够收集并显示目前温度,能够直观的看到实质温度与戒备温度的对照。LCD显示模块能够采纳RT1602C。3.硬件设计依据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度收集模块、LCD显示模块、报警与指示模块。其互相联系以下列图1所示:图1 硬件电路设计框图形成单片机时钟信号的方式有内部时钟方式和外面时钟方式。本次设计采纳内部时钟方式,如图2所示。单片机内部有一个用于组成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频次范围为1.212MHz,经由片外晶体振荡器或陶瓷振荡器与两个般配电容一同形成了一个

    4、自激振荡电路,为单片机供给时钟源。复位是单片机的初始化操作,其作用是使CPU和系统中的其余零件都处于一个确立的初始状态,并从这个状态开始工作,以防备电源系统不稳固造成CPU工作不正常。在系统中,有时会出现工作不正常的状况,为了从异样状态中恢复,同时也为了系统调试方便,需要设计一个复位电路。单片机的复位电路有上电复位和按键复位两种形式,因为本次设计要求需要有启动/复位键,所以本次设计采纳按键复位,如图3。复位电路主要达成系统的上电复位和系统在运转时用户的按键复位功能。本次设计需要的按键有4个,除掉一个复位按键外,还有3个功能按键,所以选择独立式键盘。如图4,将键盘直接与单片机P1口的P1.0、P

    5、1.1、P1.2相连。3个键设计思路以下:当按下S1键时,系统进入上下限戒备值调整状态;当第一次按下S1键时,进行上限戒备值设定,当第二次按下S1键时,进行下限戒备值设定,当第三次按下S1键时,回到正常工作状态。在戒备值调整状态下,按下S2键,上下限戒备值加1,按下S3键,上下限戒备值减1,正常工作状态下,按下S2和S3键无作用。本次设计中的温度传感器使用的是DALLAS企业的单总线数字温度传感器DS18B20,这是一种常用的温度传感器,拥有体积小、硬件开支低、抗扰乱能力强、精度高的特色。DS18B20采纳独到的一线接口,拥有只要要一条口线通讯多点的能力,简化了散布式温度传感觉用,无需外面元件

    6、。,丈量温度的范围为-55至+125 ,在-10至+85。温度传感器可编程的分辨率为912位,温度变换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置,应用范围包含恒温控制、工业系统、花费电子产品温度计、或任何热敏感系统。因为DS18B20是一条口线通讯,所以中央微办理器与DS18B20只有一个一条口线连结。因为每一个DS18B20的包含一个独到的序号,多个DS18B20能够同时存在于一条总线,这使得温度传感器搁置在很多不一样的地方。它的用途好多,包含空调环境控制,感测建筑物内温设施或机器,并进行过程监测和控制。图5 DS18B20封装及引脚增量递加。在上电状态下默认的精度

    7、为12位。DS18B20启动后保持低功耗等候状态;当需要履行温度丈量和AD变换时,总线控制器一定发出44h命令。在那以后,产生的温度数据以两个字节的形式被储存到高速暂存器的温度存放器中,DS18B20持续保持等候状态。当DS18B20由外面电源供电时,总线控制器在温度变换指令以后倡始“读时序”,DS18B20正在温度变换中返回0,变换结束返回1。假如DS18B20由寄生电源供电,除非在进入温度变换时总线被一个强上拉拉高,不然将不会由返回值。在硬件上,DS18B20与单片机的连结有两种方法:一种是VDD接外面电源,GND接地,DQ与单片机的I/O口相连;另一种是用寄生电源供电,此时,VDD、GN

    8、D接地,DQ接单片机的I/O口。不论是接外面电源仍是用内部寄生电源,I/O口线要接5k左右的上拉电阻。k的上拉电阻,这样单总线DQ在闲置状态时为高电平。 图6 DS18B20外面电源连结方式3.5 LCD显示模块在本次设计中,使用RT1602C字符型液晶显示模块(LCM)来设计目前温度和上下限戒备值的显示电路。RT1602C字符型液晶显示模块是16字2行的采纳57点阵图形来显示字符的液晶显示器,采纳标准的16脚接口,其引脚定义如图7所示。引脚号引脚名说 明引脚号引脚名说 明1GND/Vss电源地7D08位双向数据线2Vdd+5V电源8D13VL液晶显示偏压信号9D24RS数据/命令控制,H/L

    9、10D35R/W读/写控制,H/L11D46E使能端12D515BLA背光源正极13D616BLK背光源负极14D7图7 RT1602C的引脚定义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的可调电阻对显示屏的光明进行调整。在本次设计中,采纳LED

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

    11、警信号输出单片机应用系统的设计中,软件设计据有重要的地点。在本次设计中,依据功能要求,能够把系统程序区分为5个模块,即主程序模块、显示模块、温度丈量模块、键盘扫描模块、其余子程序模块,如图10所示。图10 软件设计框图主程序的内容包含单片机初始化、有关零件初始化和一些其余子程序的调用等。主程序清单以下,程序流程图如图11所示。/*主程序*/void main(void) P1=0xff; /初始化P1口以便读入 P2|=0x70; P2&=0x7f; Temp_set1=90; /上限报警温度初值90 Temp_set2=10; /下限报警温度初值10 Delay(500); /延时500ms

    12、启动 init_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); 显示程序主要达成的功能是模式、上下限戒备值

    13、和丈量温度值的显示,模块中包含LCD初始化、显示单个字符子函数、显示一个字符串子函数。程序流程图如图12所示,LCD初始化程序以下,其余子函数程序详见附录一。/*LCD初始化*/void init_LCD(void) P0=0; Delay(15); LCD_Command(0x38,0); Delay(5); LCD_Command(0x38,0);图12 显示程序流程图 Delay(5); LCD_Command(0x38,0); Delay(5); LCD_Command(0x38,1); /8位数据传递,2行显示,5*7字形 LCD_Command(0x08,1); /封闭显示 LCD

    14、_Command(0x01,1); /清屏 LCD_Command(0x06,1); /显示光标右移设置 LCD_Command(0x0c,1); /显示屏翻开,光标不显示不闪耀 温度丈量程序主要功能是读出数字温度传感器的温度值。要正确地读出温度值一定严格恪守单总线器件的命令序列,不然单总线器件不会响应主机。单总线器件的命令序列如图13所示。温度丈量模块程序流程图如图14所示,DS18B20初始化程序以下,其余子程序详见附录一。/*DS18B20初始化*/void init_18B20(void) uchar x=0; DQ=1; /DQ复位 Delay_us(4); /延时 DQ=0; /将

    15、DQ拉低 Delay_us(250); /精准延时大于480us DQ=1; /拉高总线 Delay_us(40); x=DQ; Delay_us(20);本次设计中使用了4个按键,除了1个复位键还有3个功能键,详细功能前方已介绍。键盘扫描程序以下,其余子程序详见附录一,有关流程图如图15所示。/*键盘扫描*/void Key_scan(void)uchar temp;P1=0xff;if(P1!=0xff) Delay(20); /延时消抖 if(P1!=0xff) temp=P1; switch(temp) case 0xfe:Key_set();break; /P1.0按下,功能选择 c

    16、ase 0xfd:Key_inc();break; /P1.1按下,数字加一 case 0xfb:Key_dec();break; /P1.2按下,数字减一 default:break; 图15 键盘扫描程序流程图程序中使用的其余子程序,包含延时子程序、显示字符变换子程序等,详细详见附录一。在本次的设计中,使用了Proteus仿真软件进行了功能测试,详细仿真步骤及剖析以下。(1)依据原理图,从Proteus元件库中找出对应元件,搭建硬件仿真电路,将程序烧写到单片机中,仿真图见附录三。(2)点击运转按钮开始仿真,初始上下限值为90和10,目前温度为25,目前模式为N正常工作,绿灯亮,蜂鸣器不响,

    17、如图16。图16 正常模式下仿真图(3)按下S1键,进入上限戒备值设置模式H,此时按S2、S3键能够进行上限值设定,同时温度正常显示,设置上限值80,如图17。(4)再次按下S1键,进入下限戒备值设置模式L,此时按S2、S3键能够进行下限值设定,同时温度正常显示,设置下限值20,如图18。图18 下限值设定仿真图(5)再次按下S1键,返回正常模式N,调理DS18B20温度,丈量温度随之改变,降低温度,超出下限值5以下时,黄灯亮,蜂鸣器报警,如图19。图19 下限报警仿真图 (6)高升温度,超出上限值5以上时,黄灯亮,蜂鸣器报警,如图20。(7)按下S4键,单片机复位。在本次仿真中,能够看出,本

    18、次设计的硬件电路和软件程序均能成功仿真出来,设计要求的各样功能均已达到。本次课程设计为期一周,到此已所有结束。回忆一周中的设计过程,我深深感觉收获良多。因为以前不过在理论上学习了单片机以及各样其余知识,即便是实验也不过依据实验指导书进行操作,并无实质的独立设计一个系统,所以在刚开始接触本次课程设计时,有一点无从下手的感觉。以后经过查阅有关资料,逐渐开始认识课程设计的一般过程,开始理解一些元器件的有关作用与编程实现方法,并在此时期经过不停深入的学习和锻炼,开始逐渐能娴熟运用和娴熟编程起来。经过本次计算机控制技术的课程设计,我更深层次的把理论知识和实质设计联合在一同,锻炼了我的综合运用所学的专业基

    19、础知识和解决实质工程问题的能力。同时也提高了我查阅文件资料、设计手册、设计规范以及电脑制图等其余知识能力水平。对各样系统的合用条件,各样设施的采纳标准,各样管道的安装方式,我都是跟着设计的不停深入而逐渐熟习并学会应用的。并且,经过对整体的掌控,对局部的弃取,对细节的商酌办理,以及画图的技巧都使我在设计领域的能力获得了锻炼,获得了较丰富经验。最后,经过此次的课程设计,我也深刻地认识到,只有将书籍与详细的实践相联合,才会有真实的收获,才能稳固自己的所学,认识到自己的不足,同时我们也要有一种踊跃学习的态度,时代在进步我们也要跟着时代行进,要不停学习,不停创新,用自己的知识与行动来证明自己的价值。本次

    20、课程设计以单片机为中心,介绍了用DS18B20温度传感器进行温度收集,并将其传输给AT89C51单片机进行办理再送到LCD显示屏显示。在此时期能够经过按键进行上下限戒备值设置,经过LED和蜂鸣器进行指示和报警。本文是采纳模块化的方式进行表达,对各模块的设计进行了比较详尽地论述,并侧重剖析硬件搭建过程和系统软件的设计过程,使用单片机C语言进行程序没计。本次设计的鉴于DS18B20的温度丈量系统是一个散布式的温度丈量系统,它能够远程对温度实现丈量和监控,宽泛应用于电力工业、煤矿、丛林、火灾、高层建筑等场合。本设计应用性比较强,能够应用在库房温度、大棚温度、机房温度、水池等的监控。自然,本次设计还存

    21、在一些不足,比如在本次设计中,因为时间较短,戒备值不过在199之间,没有能够扩展到负温度和100以上;在本次设计中不过用了4个独立按键,实现简单的上下限戒备值设定,操作较麻烦,假如能够设计出多按键的矩阵式键盘,则能够对温度进行很方便的设定。别的假如把本设计方案扩展为多点温度控制,加上上位机,则能够实现远程温度监控系统,将拥有更大的应用价值。1 潘新民,王燕芳. 微型计算机控制技术 M. 北京:电子工业第一版社,20142 王迎旭. 单片机原理与应用 M. 北京:机械工业第一版社,20133 康华光. 电子技术基础 M. 北京:高等教育第一版社,20134 周正华,唐宁 RT1602C与FPGA

    22、接口技术 J. 中国科技信息,2008(10)5 廖琪梅,韩彬等. 鉴于DS18B20的温度丈量仪 J. 外国电子元器件,2008(2)附录一:程序清单#include#include#include#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

    23、,uchar,uchar);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(v

    24、oid);sbit 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=Hi

    25、gh: C Low: C;extern uchar code str1=Mode: Deg: C;extern uchar code str2= Hellow! ;extern uchar code str3=0123456789;extern uchar code mode=NHL;/*主程序*/void main(void) P1=0xff; P2|=0x70; P2&=0x7f; Temp_set1=90; /上限报警温度初值90 Temp_set2=10; /下限报警温度初值10 Delay(500); /延时500ms启动 init_LCD(); /LCD初始化 init_18B20

    26、(); /DS18B20初始化 Display_str(0,0,str2); /开机界面 Display_str(0,1,str2); /开机界面 Delay(2000); Display_str(0,0,str0); Display_str(0,1,str1); while(1) Key_scan(); /扫描键盘 Read_temp(); /读取温度 Change(); Display(); /显示 Alarm(); /指示灯与报警程序 Delay(1000); /*延时kms*/void Delay(uint k) uint i,j; for(i=0;ik;i+) for(j=0;j60

    27、;j+) ; /*显示模块*/*LCD初始化*/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_Command(0x0c,1); /显

    28、示屏翻开,光标不显示不闪耀/*写指令数据到LCD*/void LCD_Command(uchar LC,uchar BC) if(BC) ReadyLCD(); P0=LC; LCD_RS=0; /选中指令存放器 LCD_RW=0; /写模式 LCD_EN=1; _nop_(); _nop_(); _nop_(); LCD_EN=0;/*写显示数据到LCD*/void LCD_Data(uchar LD) ReadyLCD(); P0=LD; LCD_RS=1; /选中数据存放器 LCD_RW=0; /写模式 LCD_EN=1; _nop_(); _nop_(); _nop_(); LCD_E

    29、N=0;/*检测LCD忙状态*/void ReadyLCD(void) P0=0xff; LCD_EN=1; LCD_RS=0; LCD_RW=1; _nop_(); while(P0&BUSY) LCD_EN=0; _nop_(); _nop_(); LCD_EN=1; _nop_(); _nop_(); LCD_EN=0;/*显示一个字符*/void Display_char(uchar X,uchar Y,uchar Data) Y&=0x01; X&=0x0f; if(Y) X|=0x40; X|=0x80; LCD_Command(X,0); LCD_Data(Data);/*显示一串字符*


    注意事项

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

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开