环境探测与控制系统设计实验报告

合集下载

C语言测控系统程序设计实验报告

C语言测控系统程序设计实验报告

C语⾔测控系统程序设计实验报告Harbin Institute of TechnologyC语⾔在测量与控制中的应⽤实验报告专业:⾃动化班级:1104104学号:姓名:设计时间:2014/3/29实验⼀定时中断程序设计实验的⽬的:1.掌握定时器/计数器8254的⼯作原理与编程。

2.熟悉中断控制器8259A的⼯作原理与使⽤⽅法。

3.掌握硬件中断程序设计的原理与编程⽅法。

实验条件:PC机,WinXP操作系统,Turbo C 2.0程序设计要求:程序运⾏⾸先提⽰输⼊中断服务的时间间隔T和中断服务次数N,正确输⼊后,回车,则每间隔指定的时间T会在屏幕上显⽰⼀些字符,显⽰N次后,则不再显⽰,如果N=0,则会⽆限显⽰下去,直到在键盘上按下指定的按键,才停⽌显⽰。

停⽌显⽰后,按任意键程序结束运⾏。

1.时间间隔T为以毫秒为单位浮点数,可处理范围⾄少要0.001毫秒到5000毫秒。

2.屏幕上的显⽰信息要有助于验证程序运⾏结果的正确。

3.输⼊错误信息要有提⽰,并允许重新输⼊。

4.编程时要尽量把具有独⽴功能的代码写成⼦程序。

5.注意变量的命名要清晰,代码的注释要丰富。

6.后⾯的三个实验均要在此程序基础上编程、添加代码,注意程序的结构。

设计思路1.如何实现任意时间间隔?(附程序流程图)时间间隔的选取是根据⽤户的需要来进⾏的,因此程序⾸先应该是要求⽤户输⼊时间间隔T(ms),设定了8254的通道0定时器的计数初值,再通过将计数初值先写低8位后写⾼8位的⽅式来初始化通道0。

代码实现为:通过CalIPara()函数来计算计数初值的⾼低8位:void CalIPara(double DTimeI,int *ILongCount,unsigned char *CL8,unsigned char *CH8){double TotalCounter=DTimeI*1193;int Residue;ILongCount[0]=TotalCounter/65536;Residue=TotalCounter-65536*ILongCount[0];CH8[0]=Residue>>8;CL8[0]=Residue&0x0FF;}通过SetupTimerInterrupt()函数来对8254的通道0定时器的初始化:void SetupTimerInterrupt(void){disable();oldint8=getvect(0x08);outportb(0x43,0x36);if(LongCount==0){outportb(0x40,L8);outportb(0x40,H8);}else{outportb(0x40,0x00);outportb(0x40,0x00);}setvect(0x08,myint8);enable();}这样,每隔T(ms)时间,8259A的中断请求信号引起中断服务的执⾏。

探测制导与控制课程设计

探测制导与控制课程设计

探测制导与控制课程设计一、教学目标本课程的教学目标是使学生掌握探测制导与控制的基本原理、方法和应用,培养学生分析和解决实际问题的能力。

具体目标如下:知识目标:了解探测制导与控制的基本概念、原理和方法,掌握相关技术的应用和发展趋势。

技能目标:培养学生运用探测制导与控制理论分析和解决实际问题的能力,能够进行相关设备的操作和维护。

情感态度价值观目标:培养学生对探测制导与控制技术的兴趣和热情,提高学生对国家安全和国防事业的认同感。

二、教学内容教学内容主要包括以下几个部分:1.探测制导与控制的基本概念:介绍探测制导与控制技术的定义、分类和发展历程。

2.探测技术与制导原理:讲解各种探测技术的原理和方法,以及制导系统的组成和工作原理。

3.控制技术与系统设计:介绍控制理论在探测制导系统中的应用,讲解控制系统的设计方法和步骤。

4.应用与实践:分析探测制导与控制技术在现代战争中的重要作用,探讨其在国防事业中的应用和发展趋势。

三、教学方法为了提高教学效果,将采用多种教学方法相结合的方式进行授课:1.讲授法:讲解基本概念、原理和方法,使学生掌握探测制导与控制的核心知识。

2.案例分析法:分析典型实例,使学生了解探测制导与控制技术在实际应用中的具体表现。

3.实验法:学生进行实验操作,培养学生的动手能力和实际问题解决能力。

4.讨论法:学生进行课堂讨论,激发学生的思考,提高学生的口头表达能力。

四、教学资源为了保证教学质量,将充分利用校内外教学资源,包括:1.教材:选用国内权威出版社出版的教材,保证知识的科学性和系统性。

2.参考书:推荐学生阅读相关领域的经典著作和最新研究成果,拓宽知识面。

3.多媒体资料:制作精美的PPT课件,辅助讲解,提高学生的学习兴趣。

4.实验设备:充分利用实验室资源,为学生提供实践操作的机会,培养实际问题解决能力。

五、教学评估为了全面、客观地评估学生的学习成果,将采取以下评估方式:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,鼓励学生积极发言。

控制工程实验报告

控制工程实验报告

控制工程实验报告1. 引言控制工程是一门研究如何通过设计和操作系统来达到预期目标的学科。

实验是控制工程学习过程中重要的一部分,通过实验可以加深对控制理论的理解,提高实际操作能力。

本实验报告旨在总结和分析在进行控制工程实验时所遇到的问题和解决方法。

2. 实验背景本次实验旨在研究单输入单输出(SISO)的控制系统。

通过建模、设计和实施控制器,我们将探讨如何使系统达到期望的性能指标。

在实验过程中,我们使用了控制工程中常用的方法和工具,如PID控制器、校正方法和稳定性分析等。

3. 实验目标本实验的主要目标是设计一个PID控制器来控制一个特定的系统,使其满足给定的性能要求。

具体目标如下: - 理解PID控制器的原理和工作方式; - 利用实验数据建立系统的数学模型; - 利用系统模型设计优化的PID控制器; - 分析和评估实验结果,判断控制系统的稳定性和性能。

4. 实验过程实验分为以下几个步骤: ### 4.1 建立系统模型首先,我们需要对所控制的系统进行建模。

使用传感器收集系统的输入和输出数据,并通过系统辨识方法分析这些数据,得到系统的数学模型。

常用的辨识方法包括最小二乘法和频域分析法。

4.2 设计PID控制器基于系统模型的分析,我们可以设计PID控制器。

通过调整PID控制器的参数,如比例增益、积分时间常数和微分时间常数,我们可以优化控制系统的性能。

4.3 实施控制器将设计好的PID控制器实施到实际系统中。

在实验中,我们需要将传感器和控制器与被控对象连接,并配置合适的控制策略。

4.4 性能评估通过收集系统的输入和输出数据,并利用系统模型进行仿真和分析,我们可以评估控制系统的性能。

常见的评估指标包括超调量、上升时间和稳态误差等。

5. 实验结果与分析根据实验数据和分析结果,我们得到了以下结论: - PID控制器可以有效地控制被控对象,使其稳定在期望值附近; - 通过适当调整PID控制器的参数,我们可以优化控制系统的性能; - 预测模型与实际系统存在一定差异,可能需要进一步改进和校正。

环境污染物监测与分析实验报告

环境污染物监测与分析实验报告

环境污染物监测与分析实验报告实验报告:环境污染物监测与分析概述:本实验旨在了解环境污染物的监测与分析方法,以及对环境污染物的定量分析与鉴定。

通过实验,我们能够更好地认识环境污染物对生态环境的影响,并探索有效的监测和分析手段。

一、实验目的本实验的目的是:1. 了解环境污染物的种类和来源;2. 掌握常见的环境污染物监测方法和技术;3. 学习环境污染物的定量分析与鉴定方法;4. 探讨环境污染物监测与分析的应用价值。

二、实验仪器与材料1. 水质监测仪器(如PH、溶解氧、COD等监测设备)2. 大气污染监测仪器(如PM2.5、SO2、NOx等监测设备)3. 土壤采样器和土壤分析仪器4. 有机污染物检测仪器(如气相色谱仪、液相色谱仪等)5. 环境污染物标准品和标准溶液6. 试剂和实验用具(如玻璃器皿、移液器等)三、实验步骤1. 根据实验需要,选取不同的监测点位收集水样、空气样、土壤样和有机污染物样品;2. 对采集的样品进行前处理,如过滤、浓缩等处理步骤;3. 使用相应的仪器和设备,按照标准方法对样品进行监测和分析;4. 记录监测数据,包括环境污染物的含量、种类等信息;5. 根据实验数据进行定量分析和鉴定,获取更准确的污染物信息;6. 对实验结果进行有效的统计和分析,并以图表的形式呈现;7. 对实验结果进行讨论和总结,评估监测与分析方法的可行性和应用价值。

四、实验结果与讨论1. 水质监测结果:经过水质监测仪器的测试,得到了水样污染物的各项指标数据,如PH值、溶解氧浓度、COD浓度等。

根据数据分析,我们可以评估水体的污染程度及其对生态环境的影响。

2. 大气污染监测结果:通过大气污染监测仪器的测试,获得了空气中污染物的含量数据,如PM2.5浓度、SO2浓度、NOx浓度等。

通过对数据的分析,我们可以判断空气质量,并了解大气污染源及其对健康的潜在影响。

3. 土壤污染监测结果:利用土壤采样器和土壤分析仪器,对采集的土壤样品进行测试,得到了土壤中污染物的含量数据,如重金属、有机物等。

设计自控装置实验报告

设计自控装置实验报告

设计自控装置实验报告引言自控装置是利用传感器对环境进行监测,通过控制器对执行机构进行控制,以实现自动化控制的装置。

在工业、农业、交通等领域广泛应用。

本实验旨在设计并搭建一个简单的自控装置来控制温度。

材料与方法材料:- Arduino开发板- 温度传感器- 执行机构(例如风扇或加热器)- 电阻、电容、继电器等电子元件- 连接线方法:1. 连接温度传感器到Arduino开发板的模拟输入端口。

2. 连接执行机构到Arduino开发板的数字输出端口。

3. 根据温度传感器的输出值,通过控制器来决定执行机构的工作状态,从而实现温度的控制。

4. 编写Arduino代码来完成温度控制的逻辑。

结果与分析根据实验设计的自控装置,我们成功地实现了对温度的控制。

在实验过程中,当温度传感器的读数超过设定的阈值时,控制器会通过输出口控制风扇开启,降低环境温度;当温度低于阈值时,控制器则关闭风扇。

通过这种方式,我们可以保持环境温度在一个合适的范围内,提高舒适度,并保护温度敏感的设备。

实验总结本实验通过设计自控装置,实现了对温度的自动控制。

在实验过程中,我们学习了如何使用Arduino开发板搭建自控装置,并编写对应的控制逻辑。

通过本实验,我们不仅加深了对自动化控制原理的理解,还锻炼了实际动手能力。

此外,我们对自控装置的应用有了更深入的了解。

自控装置可以广泛应用于各个领域,如工业控制系统、农业温室控制、交通信号灯控制等。

这些应用可以提高生产效率、降低能耗,并且提供了更安全、便捷的生活环境。

需要注意的是,自控装置的设计需要根据具体的需求进行调整和改进。

在实际应用中,还需要考虑到其他因素,如可靠性、精度、系统稳定性等。

总的来说,这次实验让我们对自动化控制技术有了更深入的了解,并为今后的学习和实践提供了基础。

环境检测实验报告doc

环境检测实验报告doc

引言:环境检测实验是一种用于评估环境质量的方法,通过对特定环境中的不同指标进行监测和分析,以评估其对人类和生物体的影响。

本文旨在探讨环境检测实验的重要性和常见的检测指标,以及如何进行环境检测实验。

概述:环境检测实验是通过测量和分析环境中的不同指标来评估其质量的过程。

它的目的是提供有关环境状况的定量信息,以便制定相应的环境管理策略。

环境检测实验通常涉及采集样品并在实验室中进行分析,以测量特定指标的水平。

正文内容:1.指标选择a.水质指标i.pH值测量ii.溶解氧检测iii.氨氮测定iv.高锰酸盐指数测量v.化学需氧量测定b.空气质量指标i.PM2.5浓度检测ii.二氧化硫浓度测量iii.一氧化碳浓度测定iv.臭氧浓度检测v.颗粒物数量测量c.土壤质量指标i.pH值测定ii.有机质含量分析iii.养分含量测定iv.重金属含量测量v.土壤水分测定2.实验设计a.样本采集i.水样采集方法ii.空气样本采集方法iii.土壤样本采集方法b.实验室分析i.水质分析方法ii.空气质量分析方法iii.土壤质量分析方法c.数据处理i.数据的组织和整理ii.统计分析方法3.实验步骤a.水质检测实验步骤i.准备实验室设备和试剂ii.采集水样iii.进行指标检测iv.记录实验数据v.数据分析和结果展示b.空气质量检测实验步骤i.准备实验室设备和仪器ii.采集空气样本iii.进行指标检测iv.数据记录和分析v.结果展示c.土壤质量检测实验步骤i.准备实验室设备和试剂ii.采集土壤样品iii.进行指标检测iv.数据处理和分析v.结果展示4.实验结果和讨论a.检测结果分析i.不同指标的水平与环境质量的关系ii.检测结果的有效性和可靠性评估b.实验结论i.对环境质量的评估结果ii.针对发现的问题提出的建议5.实验总结通过本次环境检测实验,我们对水质、空气质量和土壤质量做了全面的评估和分析。

实验结果显示,环境质量存在一定程度的非法性。

环境监测系统实验报告

环境监测系统实验报告

信息与通信工程学院单片机系统课程设计报告完成日期:2012年 11 月 16 日目录目录 (1)一、设计任务和要求 (1)1.1设计任务 (1)1.2性能指标 (1)二、设计方案 (2)2.1.方案设计 (2)2.1.1单片机控制模块的选择论证 (2)2.1.2温度湿度检测模块的选择与论证 (2)2.1.3显示模块的选择与论证 (2)2.2本设计采用方案及原理 (3)三、系统硬件设计 (4)3.1单片机最小系统设计 (4)3.2温湿度采集电路 (5)3.3电源电路 (6)3.4光敏电阻接入电路 (7)3.5键盘电路 (8)3.6LCD显示电路 (8)3.7报警电路 (9)3.8串行接口电路 (10)四.系统软件设计 (10)4.1主程序设计 (10)4.2LCD12864模块程序 (11)4.3DHT11模块程序 (12)4.4光敏电阻模块程序 (14)五.调试及性能分析 (15)5.1调试过程中出现的问题 (15)5.2性能分析 (15)六.心得体会 (16)参考文献 (17)附录1 程序清单 (18)附录2 电路原理图 (24)附录3 PCB图 (25)附录4 硬件电路板图 (26)一、设计任务和要求1.1 设计任务基本要求:(1)利用单片机控制传感器采集环境温湿度,光照强度等参数,并在液晶屏上显示环境参数值。

(2)系统设有键盘,可实现系统参数的设置。

提高部分:(1)将上述环境数据记录在SD或TF卡上;(2)采集并显示三轴加速度值;(3)无线传输所测环境参数。

1.2 性能指标(1)温度湿度光照强度显示:用LCD12864进行显示。

(2)环境温度:单位/℃。

(3)环境湿度:单位/%RH。

(4)环境光强:单位/lux(5)键盘(6)报警二、设计方案2.1.方案设计2.1.1 单片机控制模块的选择论证方案一:单片机选用STC12C5A60S2,这款单片机有第二串口,有A/D转换,有PWM/PCA 功能,有内部EEPROM可内部实现A/D转换。

控制系统仿真实验报告书

控制系统仿真实验报告书

一、实验目的1. 掌握控制系统仿真的基本原理和方法;2. 熟练运用MATLAB/Simulink软件进行控制系统建模与仿真;3. 分析控制系统性能,优化控制策略。

二、实验内容1. 建立控制系统模型2. 进行仿真实验3. 分析仿真结果4. 优化控制策略三、实验环境1. 操作系统:Windows 102. 软件环境:MATLAB R2020a、Simulink3. 硬件环境:个人电脑一台四、实验过程1. 建立控制系统模型以一个典型的PID控制系统为例,建立其Simulink模型。

首先,创建一个新的Simulink模型,然后添加以下模块:(1)输入模块:添加一个阶跃信号源,表示系统的输入信号;(2)被控对象:添加一个传递函数模块,表示系统的被控对象;(3)控制器:添加一个PID控制器模块,表示系统的控制器;(4)输出模块:添加一个示波器模块,用于观察系统的输出信号。

2. 进行仿真实验(1)设置仿真参数:在仿真参数设置对话框中,设置仿真时间、步长等参数;(2)运行仿真:点击“开始仿真”按钮,运行仿真实验;(3)观察仿真结果:在示波器模块中,观察系统的输出信号,分析系统性能。

3. 分析仿真结果根据仿真结果,分析以下内容:(1)系统稳定性:通过观察系统的输出信号,判断系统是否稳定;(2)响应速度:分析系统对输入信号的响应速度,评估系统的快速性;(3)超调量:分析系统超调量,评估系统的平稳性;(4)调节时间:分析系统调节时间,评估系统的动态性能。

4. 优化控制策略根据仿真结果,对PID控制器的参数进行调整,以优化系统性能。

调整方法如下:(1)调整比例系数Kp:增大Kp,提高系统的快速性,但可能导致超调量增大;(2)调整积分系数Ki:增大Ki,提高系统的平稳性,但可能导致调节时间延长;(3)调整微分系数Kd:增大Kd,提高系统的快速性,但可能导致系统稳定性下降。

五、实验结果与分析1. 系统稳定性:经过仿真实验,发现该PID控制系统在调整参数后,具有良好的稳定性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

环境信息探测与控制系统——黑龙江大学2012年电子设计大赛700实验室组长:组员:2012年6月14日目录◆1摘要 3 ◆2关键词 3 ◆3绪论 3 ◆4传感器模块功能介绍及程序设计 3⏹ 4.1DS1302时钟芯片4● 4.1.1 DS1302 简介 4● 4.1.2 DS1302各引脚的功能 4● 4.1.3 DS1302驱动程序 5⏹ 4.2DHT11温湿度模块8● 4.2.1 DHT11温湿度模块简介8● 4.2.2 DHT11温湿度模块各引脚的功能 9● 4.2.3 DHT11温湿度模块驱动程序 9⏹ 4.3BH1750光感模块 19● 4.3.1 BH1750光感模块简介 19●4.3.2BH1750特点 19⏹ 4.4 LCD12864液晶屏20● 4.4.1 LCD12864简介21● 4.4.2 LCD12864基本特性 21● 4.4.3 LCD12864引脚说明22 ◆5 设计总结23◆附录一系统流程图24◆附录二系统电路图25◆附录三原理方框图与实物图261 摘要本系统是以ATmega 16L单片机为主控制器,通过bh1750光感模块,dht11温湿度模块,ds1302时钟芯片,按键将光强,温度,湿度,时间这些模拟量转化为数字量,然后传入单片机中,再通过单片机将传感器出入的数据进行处理,然后再lcd12864液晶屏上显示出来,通过,SYN6288语音模块进行语音播报。

本系统可以对周围环境进行检查和控制,可实现人机互动。

2关键词:单片机,传感器,温度,湿度,光感强度。

3绪论:环境信息探测与控制系统是集时间,周围温度、湿度、光感强度于一体的控制系统,节省了大量资源,将过去需要多个系统测量的数据集合为一体。

本文重点介绍了该系统的设计思路,模块原理及功能,以及模块的使用方法及程序设计。

本系统控制灵活、可靠性高、系统维护方便是一款智能化程度更高,性能更完美的环境信息探测控制系统。

4. 传感器模块功能介绍及程序设计4.1 DS1302时钟芯片4.1.1 DS1302 简介:DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。

实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。

工作电压宽达2.5~5.5V。

采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。

DS1302的外部引脚分配如图1所示及内部结构如图2所示。

DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。

DS1302的外部引脚分配4.1.2 DS1302各引脚的功能:Vcc1:主电源;Vcc2:备份电源。

当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电。

SCLK:串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必须为高。

该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。

DS1302的内部结构4.1.3 DS1302驱动程序:4.2 DHT11温湿度模块4.2.1 DHT11温湿度模块简介DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。

传感器包括一个电阻式感湿元件和一个NTC 测温元件,并与一个高性能8 位单片机相连接。

因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。

每个DHT11 传感器都在极为精确的湿度校验室中进行校准。

校准系数以程序的形式储存在OTP 内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。

单线制串行接口,使系统集成变得简易快捷。

超小的体积、极低的功耗,信号传输距离可达20 米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。

4.2.2 DHT11温湿度模块各引脚的功能:1:接VDD,供电3-5.5VDC。

2:接IO口,串行数据,单总线。

3:NC,空脚,悬空。

4:接GND,接地或电源负极。

4.2.3 DHT11温湿度模块驱动程序#include <reg51.h>#include <intrins.h>//typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */ typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */ typedef unsigned int U16; /* defined for unsigned16-bits integer variable 无符号16位整型变量 */typedef signed int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */ typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */ typedef signed long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */ typedef float F32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度)*/typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度)*///#define uchar unsigned char#define uint unsigned int#define Data_0_time 4sbit P2_0 = P2^0 ;U8 U8FLAG,k;U8 U8count,U8temp;U8U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkd ata;U8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_ data_L_temp,U8checkdata_temp;U8 U8comdata;U8 outdata[5]; //定义发送的字节数U8 indata[5];U8 count, count_r=0;U8 str[5]={"RS232"};U16 U16temp1,U16temp2;SendData(U8 *a){outdata[0] = a[0];outdata[1] = a[1];outdata[2] = a[2];outdata[3] = a[3];outdata[4] = a[4];count = 1;SBUF=outdata[0];}void Delay(U16 j){ U8 i;for(;j>0;j--){for(i=0;i<27;i++);}}void Delay_10us(void) {U8 i;i--;i--;i--;i--;i--;i--;}void COM(void){U8 i;for(i=0;i<8;i++){U8FLAG=2;while((!P2_0)&&U8FLAG++);Delay_10us();Delay_10us();Delay_10us();U8temp=0;if(P2_0)U8temp=1;U8FLAG=2;while((P2_0)&&U8FLAG++);//超时则跳出for循环if(U8FLAG==1)break;//判断数据位是0还是1// 如果高电平高过预定0高电平值则数据位为 1U8comdata<<=1;U8comdata|=U8temp; //0}//rof}//--------------------------------//-----湿度读取子程序 ------------//--------------------------------//----以下变量均为全局变量--------//----温度高8位== U8T_data_H------//----温度低8位== U8T_data_L------//----湿度高8位== U8RH_data_H-----//----湿度低8位== U8RH_data_L-----//----校验 8位 == U8checkdata-----//----调用相关子程序如下----------//---- Delay();, Delay_10us();,COM();//--------------------------------void RH(void){//主机拉低18msP2_0=0;Delay(180);P2_0=1;//总线由上拉电阻拉高主机延时20usDelay_10us();Delay_10us();Delay_10us();Delay_10us();//主机设为输入判断从机响应信号P2_0=1;//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行if(!P2_0) //T !{U8FLAG=2;//判断从机是否发出 80us 的低电平响应信号是否结束while((!P2_0)&&U8FLAG++);U8FLAG=2;//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态while((P2_0)&&U8FLAG++);//数据接收状态COM();U8RH_data_H_temp=U8comdata;COM();U8RH_data_L_temp=U8comdata;COM();U8T_data_H_temp=U8comdata;COM();U8T_data_L_temp=U8comdata;COM();U8checkdata_temp=U8comdata;P2_0=1;//数据校验U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_te mp+U8RH_data_L_temp);if(U8temp==U8checkdata_temp){U8RH_data_H=U8RH_data_H_temp;U8RH_data_L=U8RH_data_L_temp;U8T_data_H=U8T_data_H_temp;U8T_data_L=U8T_data_L_temp;U8checkdata=U8checkdata_temp;}//fi}//fi}//----------------------------------------------//main()功能描述: AT89C51 11.0592MHz 串口发//送温湿度数据,波特率 9600//----------------------------------------------void main(){U8 i,j;//uchar str[6]={"RS232"};/* 系统初始化 */TMOD = 0x20; //定时器T1使用工作方式2TH1 = 253; // 设置初值TL1 = 253;TR1 = 1; // 开始计时SCON = 0x50; //工作方式1,波特率9600bps,允许接收ES = 1;EA = 1; // 打开所以中断TI = 0;RI = 0;SendData(str) ; //发送到串口Delay(1); //延时100US(12M晶振)while(1){//------------------------//调用温湿度读取子程序RH();//串口显示程序//--------------------------str[0]=U8RH_data_H;str[1]=U8RH_data_L;str[2]=U8T_data_H;str[3]=U8T_data_L;str[4]=U8checkdata;SendData(str) ; //发送到串口//读取模块数据周期不易小于 2S Delay(20000);}//elihw}// mainvoid RSINTR() interrupt 4 using 2 {U8 InPut3;if(TI==1) //发送中断{TI=0;if(count!=5) //发送完5位数据{SBUF= outdata[count];count++;}}if(RI==1) //接收中断{InPut3=SBUF;indata[count_r]=InPut3;count_r++;RI=0;if (count_r==5)//接收完4位数据{//数据接收完毕处理。

相关文档
最新文档