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

上传人:h**** 文档编号:25714220 上传时间:2022-07-13 格式:DOCX 页数:13 大小:16.73KB
返回 下载 相关 举报
基于-51单片机的温度控制系统的设计.docx_第1页
第1页 / 共13页
基于-51单片机的温度控制系统的设计.docx_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《基于-51单片机的温度控制系统的设计.docx》由会员分享,可在线阅读,更多相关《基于-51单片机的温度控制系统的设计.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

2、89C51单片机。温度采集直接可以用设计要求中所要求的DS18B20。报警和指示模块中,可以选用3种不同颜色的LED灯作为指示灯,报警鸣笛采用蜂鸣器。显示模块有两种方案可供选择。 方案一:使用LED数码管显示采集温度和设定温度; 方案二:使用LCD液晶显示屏来显示采集温度和设定温度。 LED数码管结构简单,使用方便,但在使用时,若用动态显示则需要不断更改位选和段选信号,且显示时数码管不断闪动,使人眼容易疲劳;若采用静态显示则又需要更多硬件支持。LCD显示屏可识别性较好,背光亮度可调,而且比LED数码管显示更多字符,但是编程要求比LED数码管要高。综合考虑之后,我选用了LCD显示屏作为温度显示器

3、件,由于显示字符多,在进行上下限警戒值设定时同样可以采集并显示当前温度,可以直观的看到实际温度与警戒温度的对比。LCD显示模块可以选用RT1602C。 3.硬件设计 根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度采集模块、LCD 显示模块、报警与指示模块。其相互联系如下图1所示: 图1 硬件电路设计框图 3.1单片机时钟电路 形成单片机时钟信号的方式有部时钟方式和外部时钟方式。本次设计采用部时钟方式,如图2所示。 单片机部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频率围为 1.212MHz ,经由

4、片外晶体振荡器或瓷振荡器与两个匹配电容 一起形成了一个自激振荡电路,为单片机提供时钟源。 3.2复位电路 复位是单片机的初始化操作,其作用是使CPU 和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作,以防止电源系统不稳定造成CPU 工作不正常。在系统中,有时会出现工作不正常的情况,为了从异常状态中恢复,同 单片机时钟电路 复位电路 键盘接口模块 温度采集模块 单 片 机 LCD 显示模块 报警与指示模块 图2 单片机内部时钟方式电路 图3 单片机按键复位电路 时也为了系统调试方便,需要设计一个复位电路。 单片机的复位电路有上电复位和按键复位两种形式,因为本次设计要求需要有启动/

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

6、,按下S2和S3键无作用。 3.4温度采集模块 本次设计中的温度传感器使用的是DALLAS公司的单总线数字温度传感器DS18B20,这是一种常用的温度传感器,具有体积小、硬件开销低、抗干扰能力强、精度高的特点。 DS18B20采用独特的一线接口,具有只需要一条口线通信多点的能力,简化了分布式温度传感应用,无需外部元件。可用数据总线供电,电压围为3.0 V 至5.5V,测量温度的围为-55至+125 ,在-10至+85围精度为0.5。 温度传感器可编程的分辨率为912位,温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置,应用围包括恒温控制、工业系 统、消费电子产品温度

7、计、或任何热敏感系统。由于DS18B20是一条口线通信,所以中央微处理器与DS18B20只有一个一条口线连接。因为每一个DS18B20的包含一个独特的序号,多个DS18B20可以同时存在于一条总线,这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物温设备或机器,并进行过程监测和控制。 图5 DS18B20封装及引脚 DS18B20的核心功能是它的直接读数字的温度传感器。温度传感器的精度为用户可编程的9、10、11或12位,分别以0.5,0.25,0.125和0.0625增量递增。在上电状态下默认的精度为12位。DS18B20启动后保持低功耗等待状态;当需要执行温度

8、测量和AD转换时,总线控制器必须发出44h命令。在那之后,产生的温度数据以两个字节的形式被存储到高速暂存器的温度寄存器中,DS18B20继续保持等待状态。当DS18B20由外部电源供电时,总线控制器在温度转换指令之后发起“读时序”,DS18B20正在温度转换中返回0,转换结束返回1。如果DS18B20由寄生电源供电,除非在进入温度转换时总线被一个强上拉拉高,否则将不会由返回值。 在硬件上,DS18B20与单片机的连接有两种方法:一种是VDD接外部电源,GND接地,DQ与单片机的I/O口相连;另一种是用寄生电源供电,此时,VDD、GND接地,DQ接单片机的I/O口。无论 是接外部电源还是用部寄生

9、电源,I/O口 线要接5k左右的上拉电阻。 本次设计中,采用外部电源方式,其 连接方式如图6所示。单总线DQ端接单片机的P1.7口,DQ端接一个4.7k的上拉电阻,这样单总线DQ在闲置状态时为高电平。 图6 DS18B20外部电源连接方式3.5 LCD显示模块 在本次设计中,使用RT1602C字符型液晶显示模块(LCM)来设计当前温度和上下限警戒值的显示电路。 RT1602C字符型液晶显示模块是16字2行的采用57点阵图形来显示字符的液晶显示器,采用标准的16脚接口,其引脚定义如图7所示。 图7 RT1602C的引脚定义 RT1602C的部结构可以分为3个部分:LCD控制器、LCD驱动器、LC

10、D显示器,其中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 发光二极管作为系统指示灯,采用蜂鸣器作为报警鸣笛。当温度高于上限警戒值时,点亮红色发光二极管,蜂鸣器发出响声;当温度低于下限警戒值时,点亮黄色发光二极管,蜂鸣器发出响声;温度

11、在正常围时,点亮 黄色发光二极管。整个报警与指示电路如图9所示,其中绿、红、黄色指示灯分别接单片机P2.0、P2.1、P2.2口,电平拉低时点亮LED ,蜂鸣器电路接单片机的P2.7口,电平拉高时蜂鸣器响。 至此便完成了整个硬件电路的设计工作,整个系统的原理图见附录二, 系统 图9 报警与指示模块 I/O 分配表如下: 4.软件设计 单片机应用系统的设计中,软件设计占有重要的位置。在本次设计中,根据功能要求,可以把系统程序划分为5个模块,即主程序模块、显示模块、温度测量模块、键盘扫描模块、其它子程序模块,如图10所示。 图10 软件设计框图 4.1主程序设计 主程序的容包括单片机初始化、相关部

12、件初始化和一些其它子程序的调用等。主程序清单如下,程序流程图如图11所示。 /*主程序*/ void main(void) P1=0xff; /初始化P1口以便读入 P2|=0x70; P2&=0x7f; Temp_set1=90; /上限报警温度初值90 Temp_set2=10; /下限报警温度初值10 Delay(500); /延时500ms 启动 init_LCD(); /LCD 初始化 init_18B20(); /DS18B20初始化 Display_str(0,0,str2); /开机界面 Display_str(0,1,str2); /开机界面 Delay(2000); Dis

13、play_str(0,0,str0); Display_str(0,1,str1); while(1) Key_scan(); /扫描键盘 Read_temp(); /读取温度 Change(); Display(); /显示 Alarm(); /指示灯与报警程序 Delay(1000); 4.2显示模块 显示程序主要完成的功能是模式、上下限警戒值和测量温度值的显示,模块中包含LCD 初始化、显示单个字符子函数、显示一个字符串子函数。程序流程图如图12所示,LCD 初始化程序如下,其它子函数程序详见附录一。 /*LCD 初始化*/ void init_LCD(void) 图11 主程序流程图

14、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); /显示屏打开,光标不显示不闪烁 4.3温度测量模块 温度测量程序主要功能是读出数字温度传感器的温度值。要

15、正确地读出温度值必须严格遵守单总线器件的命令序列,否则单总线器件不会响应主机。单总线器件的命令序列如图13所示。 温度测量模块程序流程图如图14所示,DS18B20初始化程序如下,其它子程序详见附录一。 /*DS18B20初始化*/ void init_18B20(void) uchar x=0; DQ=1; /DQ 复位 Delay_us(4); /延时 DQ=0; /将DQ 拉低 Delay_us(250); /精确延时大于480us DQ=1; /拉高总线 Delay_us(40); 图12 显示程序流程图 图13 单总线命令序列图14 温度测量程序流程图 4.4键盘扫描模块 本次设计中

16、使用了4个按键,除了1个复位键还有3个功能键,具体功能前面已介绍。键盘扫描程序如下,其它子程序详见附录一,相关流程图如图15所示。 /*键盘扫描*/ void Key_scan(void) uchar temp; P1=0xff; if(P1!=0xff) Delay(20); /延时消抖Array if(P1!=0xff) temp=P1; switch(temp) case 0xfe:Key_set();break; /P1.0按下,功能选择 case 0xfd:Key_inc();break; /P1.1按下,数字加一 case 0xfb:Key_dec();break; /P1.2按下

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁