基于单片机的生产车间环境测试仪的大学本科毕业论文.doc

上传人:可****阿 文档编号:91695606 上传时间:2023-05-27 格式:DOC 页数:36 大小:475KB
返回 下载 相关 举报
基于单片机的生产车间环境测试仪的大学本科毕业论文.doc_第1页
第1页 / 共36页
基于单片机的生产车间环境测试仪的大学本科毕业论文.doc_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《基于单片机的生产车间环境测试仪的大学本科毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的生产车间环境测试仪的大学本科毕业论文.doc(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 2014届本科生毕业设计 分类号:TP311.52题 目: 基于单片机的生产车间环境测试仪的设计作 者 姓 名: 陈遥 学 号: 2010103124 学 院: 机械与电子工程学院 专 业: 自动化 指导教师姓名: 张翠侠 陈秀萍 指导教师职称: 讲师 工程师 2014年5月9日摘 要 本设计是利用单片机实现温度、湿度等生产环境的测量与控制。系统采用集温湿度传感器与A/D转换器为一体的SHT11芯片,通过单片机处理进行显示,其它模块包括了实时时钟/日期产生电路和超限报警处理电路,对所测量的值进行实时显示和报警处理。本文介绍了基于ATMEL公司的AT89C51系列单片机的温湿度实时测量与控制系

2、统和显示系统的设计,包括介绍了硬件结构原理,并分析了相应的软件的设计及其要点,包括测试精度高等众多的优点。关键词: AT89C51; SHT11; LCD; DS1302; 温湿度控制ABSTRACT This design is that using single chip microcomputer to realize the temperature and humidity measurement and control of the production environment.The system adopts SHT11 chip which set temperature an

3、d humidity sensor and A/D converter as a whole,and display through the single-chip processing.Other modules include real-time clock /date generation circuit and alarm circuit,and they are real time display and alarm processing the measured value.This paper introduces the design of temperature and hu

4、midity measurement and control system and display system that based on the AT89C51 Series MCU of ATMEL company.The paper introduces the hardware structure principle and analysis of the design and key points of corresponding software,including many advantages such as high accuracy in test.Key words:

5、AT89C51; SHT11; LCD; DS1302; Temperature and humidity control目 录绪 论11 整体方案设计22 硬件设计部分32.1 芯片介绍32.1.1温湿度传感器32.1.2 单片机32.1.3 DS130242.1.4 LCD160452.2模块功能介绍52.2.1 复位电路部分52.2.2 传感器电路部分62.2.3 时钟电路部分72.2.4 显示电路部分72.2.5 超限处理电路部分82.3 整体电路图93 软件设计104 仿真软件和仿真测试114.1 Proteus简介114.2 KEIL C51编译器简介114.3 仿真测试12结 论

6、14参考文献15附 录16致 谢32宿州学院本科生毕业设计 基于单片机的生产车间环境测试仪的设计绪 论近年来我国工业生产一直都在飞速发展,随着工业生产水平的提高,对生产环境的要求越来越苛刻,主要体现在生产环境的温度和湿度的控制上,例如:面粉加工场、电子产品装配车间、特殊材料加工工场等场所,都必须严格控制环境的温度及相对湿度,使其保持在一定的范围内。从安全生产的角度来说,对生产环境进行监测也是必要的,在危险发生前可以提前预警,及时发现并且排除危险,确保工作人员的人生安全,也避免了工业财产的损失。现代温湿度传感器测量技术主要以数据采集为依据,主要类型包括:虚拟仪器、智能仪器、数字式仪器等等。伴随电

7、子科学技术的进一步发展,数据采集系统也发生了日新月异的变化,其整体的性能、实用性方面都有所改进。因此,依托于数据采集结构而发展的温湿度传感器测量系统在实际应用中也发挥这越来越重要的作用。目前,许多外国大型企业都很重视传感器的研发工作,例如,日本的Figaro公司、芬兰的Vaisala公司等,都致力于传感器的发展和完善,以保障其在整个销售市场的竞争力。在九十年代,先后出现了集成温度湿度测量套件和应用于湿度传感器的测试系统,这个新技术的产生都大大刺激了传感器的进一步发展。与此同时,国内许多机构也在传感器测试装置的研发上不断探索、研发。例如通过采用传统电子仪器进行设计研发而成的多种动态测试系统、动进

8、样装置的气体传感器智能测试系统等等,这些成绩都体现了我国在传感器领域取得的成就。最近几年,国内外温湿度传感器测量系统正向着集成化、智能化发展,随着科研人员的不断努力,该类型系统取得的巨大的成就。满足各类工业生产对于环境温湿度的不同需求,可以随时进行调节,对于不利情况能够及时的作出显示,并能够采取相应的措施提醒用户进行调整,以达到最适宜的温湿度。在此的基础上,本次研究主要是为了设计一款结构简单、测量精度高、工作稳定可靠的基于单片机的生产环境温湿度测试仪。可以由用户根据环境要求设定系统的温湿度阈值;系统实时地测量显示环境的温湿度值,实现温湿度自动控制,使其在较宽的温度范围内具有较高的测试精度;同时

9、还可以根据用户设定报警阈值报警,一旦发现环境温湿度超限,立即报警。1 整体方案设计本次设计的核心部件单片机使用的是最常用的AT89C51,信号采集及处理部分由SHT11构成,进入单片机后经处理后通过LCD1604显示温湿度,信号显示采用的液晶屏为5X7点阵,一行可显示16字,四行。其他组成部分为实时时钟发生电路,产生同现在相同的时间和具体日期,通过LCD1604液晶模块显示。在软件设计部分有对测量的温湿度进行上下值的设定,当测量超过限定值,通过超限报警处理电路对其进行处理分别显示不同的二极管灯亮,蜂鸣器产生长鸣。 硬件中包括一个开关,为复位开关。开机后,所有器件初始化,DS1302 产生实时时

10、间和日期,温湿度传感器SHT11开始进行温湿度测量和计算,最后通过LCD液晶显示器显示结果。在测量结果中有超过设定的温湿度上下限的,通过超限模块作出反应。 其他是一些附件,比如复位、晶振电路,整体电路框图如图1。AT89C51DS1302 超限模块SHT11LCD1604信号显示晶振电路复位电路 电源图1 整体电路框图 2 硬件设计部分 2.1 芯片介绍 2.1.1温湿度传感器 (1)SHT11简介 SHT11 是瑞士Scnsirion 公司推出的一款数字温湿度传感器芯片。温湿度传感器SHT11集温度传感器和湿度传感器于一体,因此采用SHT11 进行温湿度实时监测的系统具有精度高、成本低、体积

11、小、接口简单等优点。 (2)SHT11的引脚功能 SHT11温湿度传感器采用SMD(LCC)表面贴片封装形式,接口非常简单,引脚名称及排列顺序如图2所示。图2 SHT11引脚图 各引脚的功能如下: 脚1和4-信号地和电源,其工作电压范围是2.45.5 V; 脚2和脚3-二线串行数字接口,其中DA-TA为数据线,SCK为时钟线; 脚58-未连接。2.1.2 单片机89C51 是一种带4k 字节可编 程可 擦除 只读 存储 器的低电压,高性能CMOS8位微处理器,俗称单片机。89C2051是一种带2K字节可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATM

12、EL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。它的引脚如图3所示。图3 AT89C51引脚图2.1.3 DS1302DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒分时日、日期月年的信息。每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定

13、采用24或12小时格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线:RES复位、I/O数据线、 SCLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信,DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW,引脚如图4所示。图4 DS1302引脚图2.1.4 LCD1604(1)字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,16*4和20*2行等的模块。(2)引脚功能说明 如表1所示。表1 引脚接口说明表1604LCD采用标准16脚接口,各引脚接口说明如表 编号符号引脚说明1

14、VSS地2VDD正极3V0液晶显示偏压4RS数据/命令选择5R/W读/写选择6E读写信号7D0数据8D1数据9D2数据10D3数据11D4数据12D5数据13D6数据14D7数据15、16空脚1604液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。2.2模块功能介绍 2.2.1 复位电路部分 这种复位电路的工作原理是:单片机的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后,5V 的电通过电阻给电容进行充电,电容两端的电会由0V慢慢的升到4V左右(此时间很短一般小于0.3秒),RC构成的微分电路在上电瞬间产生一个微分脉冲,其宽度大于两个机器周期,89C51将复

15、位。正因为这样,复位脚的电由低电位升到高电位,引起了内部电路的复位工作,RST端电压慢慢下降,降到一定电压值以后,即为低电平,单片机开始正常工作(这是单片机的上电复位,也叫初始化复位);当按下复位键时,电容两端放电,电容又回到0V了,于是又进行了一次复位工作(这是手动复位原理)。图5 手动复位及晶振电路2.2.2 传感器电路部分 此模块是整个电路设计的信号采集及初步处理的模块,由温湿度传感器芯片SHT11构成,主要的功能结构在前面的芯片介绍中已有,这里不重新介绍。图6 SHT11传感器电路2.2.3 时钟电路部分 此模块是系统时间的实时显示而设计的,主要由芯片DS1302构成,其中引脚RST、

16、CLK、I/O分别接单片机P3.0、P3.1、P3.2口,属于控制引脚。此模块是产生实时的系统时间和日历,能对某个确定环境的实时温湿度控制起到一定的作用。芯片连接电路简单,时间日期准确。图7 实时时钟电路2.2.4 显示电路部分 此模块是由LCD1604芯片组成的日期时间和实时温湿度显示的电路部分。LCD1604是一个四行每行16字的液晶显示屏,D0-D7接P0口,RS、RW、E接P3.5、P3.6、P3.7起控制作用。图8 LCD1604显示及其连接电路2.2.5 超限处理电路部分 此部分电路是由5个发光二极管和一个蜂鸣报警器构成,分别是D0、D1、D2、D4和D5,蜂鸣器接单片机的P1.0

17、口,发光二极管与单片机的连接部分如图所示。D0、D1、D2、D4、D5 分别代表着发光、降温、加热、干燥和加湿,一旦传感器测定的温湿度超过设定的限额,就会产生不同的发光反应,起警示作用,同时蜂鸣报警器连续发出“滴” 的声音。图9 超限处理警示电路部分图10 蜂鸣器电路2.3 整体电路图图11 整体电路图3 软件设计软件设计是本次设计中不可缺少的环节,贯穿了整个毕业设计,是本次设计能够完成的最重要的环节之一。软件部分经本人调试可以运行,能够正确显示结果。具体模块由一个C(xc.C)主函数文件和8个h文件构成。 reg51.h(8051的相关参数初始化); absacc.h; intrins.h(

18、伪本征函数); math.h(数学公式函数);LCD1604.h(1604液晶显示函数); DS1302.h(实时时间/日期产生函数);SHT11.h(温湿度采集计算函数); set_key.h;(限额报警函数)。 根据温湿度监控系统功能,系统软件流程图如图12所示。开始单片机开机初始化LCD初始化 DS1302初始化 SHT11初始化DS1302运行 确定时间/日期SHT11运行进行温湿度采集与测量LCD显示实时温湿度检测温湿度是否改变YN等待 图12 主程序框图 点击运行按键,仿真开始运行。首先单片机开机初始化,然后LCD、DS1302、SHT11初始化,喇叭发出一声提示音,各个模块开始运

19、行,DS1302运行确定时间和日期,SHT11运行进行温湿度的采集和测量,最后LCD显示日期时间以及温湿度测量值;当环境温度湿度发生改变时,LCD都会实时准确显示当前温湿度值。4 仿真软件和仿真测试本设计用到了proteus和keil c51两种软件,两者能完美的结合在一起,实现虚拟的实物效果,也就是仿真效果。 4.1 Proteus简介 Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互

20、动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等。 其功能模块:个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真; ARES PCB设计。 PROSPICE 仿真器的一个扩展PROTEUS VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD显示CPU模型。 4.2 KEIL C51编译器简介 KEIL C51标准C编译器为8051微控制器的软件开

21、发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51 编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编 器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。 工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。一个单一的uVision2工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。 uVision2包含一个器件数据库(device database),可以自

22、动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extra data pointer)或者加速器(math accelerator)的特性。uVision2可以为片外存储器产生必要的连接选项:确定起始地址和规模。 4.3 仿真测试整个软件通过C语言编程,先在Keil C51集成开发环境下将编好的程序进行编译、调试,调试通过后会生成“*.HEX”文件。运行PROTEUS模拟仿真软件,打开已绘制好的仿真电路原理图,选中单片机AT89C51,右键点击AT89C51,出现对应的对话框,在Program File

23、中找到编译好的“*.HEX”文件,然后点击“OK”就可以进行仿真了,仿真结果如图13所示。图13 仿真运行效果LCD液晶显示四行分别显示“Date:*”、“Time:*”、“Temper:*”、“Humidi:*”,其中“*”为测定的数据。SHT11显示值为温湿度测量所得的 模拟值,可以通过SHT11上的按键调整模拟值,得到相应的试验效果。图14 SHT11运行效果本次试验温度临界值设定为20T80,湿度临界值设定为30H90。如当温度在临界值范围,湿度大于临界值时,此时D1灯亮,喇叭发出警报声,D4灯亮,提示车间过于潮湿,需要干燥。如图15所示。图15 仿真测量效果经过一系列的仿真试验,得到

24、了七种试验结果,如表2所示(注:表示灯点亮,表示灯熄灭)。表2 仿真试验结果温度范围湿度范围D1声音D2降温D3加热D4干燥D5加湿120T8030H902H904T806T20H80H90 D1灯亮,喇叭发出警报声,提醒人员过来检查;D2灯亮,表示车间环境过热,需要降温;D3灯亮,表示车间环境过冷,需要加热;D4灯亮,表示车间环境过于潮湿,需要干燥;D5灯亮,表示车间环境过于干燥,需要加湿。结 论 该系统主要是基于AT89C51单片机的的环境测试仪的设计,所谓的环境测试主要是侧重于对生产环境的温度与湿度的测量,整体设计采用的是以高效单片机作为核心,以SHT11作为主要的采集与测量系统,集温度

25、传感器和湿度传感器于一体的设计,其中它自带的A/D转换器,使得此温湿度测试仪具有精度高、成本低、体积小、接口简单等优点,还具有良好抗干扰能力。加上优化程序,使得本系统具有很高的实用性。 单片机的应用如今已经在工业、电子等方方面面展示出了它的优越性,利用单片机在设计电路逐渐成了趋势,它与外围的简单电路再加上优化程序就可以构建任意的产品,使得本设计成为现实。随着单片机的日益发展,它必将在未来显示出更大的活力,为电子设计增加更多精彩。 在设计过程中,由于时间和本人能力的限制,设计中存在一些需要改进和优化的地方。测量精度有待进一步提高,软件设计也存在不合理之处,欢迎各位老师同仁批评指正。31参考文献1

26、 苗新法. 便携式环境测试仪电源电路设计J. 通信电源技术, 2010 (3): 41-42.2 郑文强. 环境参数测试系统的数据传输技术研究D. 中北大学, 2013.3 王世磊,文环明,韩冰,等. 便捷式煤矿井环境测试仪的设计J. 中国仪器仪表, 2010 (6): 29-31.4 王静,闫增峰,孙立新. 土遗址博物馆室内热湿环境测试与分析J. 建筑科学, 2010 (8): 27-31.5 王登甲,刘艳峰,王怡,等. 拉萨市住宅建筑冬季室内热环境测试评价J. 建筑科学,2012,27(12):20-24. 6 张友德等. 单片微型机原理、应用和实验M.电子工业出版社. 7 吴经国等.单片

27、机应用技术M. 中国电力出版社. 8 李群芳.单片机微型计算机与接口技术M. 电子工业出版社.9 周立功.单片机实验与实践M. 北京航空航天大学出版社. 10 XU Yi - min .The Design for Stepping Motor of SCM Control SystemJ. Heilongjiang Science and Technology Institute.2005.(1)附 录参加课题情况:参与了宿州学院一般科研项目(批准号2013yyb01):生产车间“碳足迹”监测与控制源程序:main.h#include #include #include #include #

28、include #include #include #include void Delay1ms(unsigned int count) /延时函数 unsigned int i,j; for(i=0;icount;i+) for(j=0;j0; i-) DS1302_IO = ACC0; /相当于汇编中的 RRC DS1302_CLK = 1; DS1302_CLK = 0; ACC = ACC 1; unsigned char DS1302OutputByte(void) /实时时钟读取一字节(内部函数) unsigned char i; for(i=8; i0; i-) ACC = AC

29、C 1; /相当于汇编中的 RRC ACC7 = DS1302_IO; DS1302_CLK = 1; DS1302_CLK = 0; return(ACC); void Write1302(unsigned char ucAddr, unsigned char ucDa) DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr); / 地址,命令 DS1302InputByte(ucDa); / 写1Byte数据 DS1302_CLK = 1; DS1302_RST = 0; unsigned char R

30、ead1302(unsigned char ucAddr) /读取DS1302某地址的数据 unsigned char ucData; DS1302_RST = 0; DS1302_CLK = 0; DS1302_RST = 1; DS1302InputByte(ucAddr|0x01); / 地址,命令 ucData = DS1302OutputByte(); / 读1Byte数据 DS1302_CLK = 1; DS1302_RST = 0; return(ucData); void DS1302_SetProtect(bit flag) /是否写保护 if(flag) Write1302

31、(0x8E,0x10); else Write1302(0x8E,0x00); void DS1302_SetTime(unsigned char Address, unsigned char Value) / 设置时间函数 DS1302_SetProtect(0); Write1302(Address, (Value/10)DateString0 = Time-Year/10 + 0; Time-DateString1 = Time-Year%10 + 0; Time-DateString2 = -; Time-DateString3 = Time-Month/10 + 0; Time-Da

32、teString4 = Time-Month%10 + 0; Time-DateString5 = -; Time-DateString6 = Time-Day/10 + 0; Time-DateString7 = Time-Day%10 + 0; Time-DateString8 = 0; void TimeToStr(SYSTEMTIME *Time) Time-TimeString0 = Time-Hour/10 + 0; Time-TimeString1 = Time-Hour%10 + 0; Time-TimeString2 = :; Time-TimeString3 = Time-

33、Minute/10 + 0; Time-TimeString4 = Time-Minute%10 + 0; Time-TimeString5 = :; Time-TimeString6 = Time-Second/10 + 0; Time-TimeString7 = Time-Second%10 + 0; Time-DateString8 = 0; void DS1302_GetTime(SYSTEMTIME *Time) unsigned char ReadValue; ReadValue = Read1302(DS1302_SECOND); Time-Second = (ReadValue

34、&0x70)4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_MINUTE); Time-Minute = (ReadValue&0x70)4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_HOUR); Time-Hour = (ReadValue&0x70)4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_DAY); Time-Day = (ReadValue&0x70)4)*10 + (ReadValue&0x0F);

35、 ReadValue = Read1302(DS1302_MONTH); Time-Month = (ReadValue&0x70)4)*10 + (ReadValue&0x0F); ReadValue = Read1302(DS1302_YEAR); Time-Year = (ReadValue&0x70)4)*10 + (ReadValue&0x0F); void Initial_DS1302(void) unsigned char Second=Read1302(DS1302_SECOND); if(Second&0x80) DS1302_SetTime(DS1302_SECOND,0); void BurstWrite1302(unsigned char *pWClock) /往DS1302写入时钟数据(多字节方式) unsigned char i; Write1302(0

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

当前位置:首页 > 教育专区 > 教案示例

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

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