简易风洞设计(带有程序)

合集下载

小型风洞实验报告模板

小型风洞实验报告模板

小型风洞实验报告模板1. 实验目的本实验旨在通过搭建小型风洞,模拟风场环境,以了解流体力学相关概念,并探究在风洞中空气流动特性的变化。

2. 实验原理利用风机产生气流,经过管道进入风洞,再通过风洞内的模型,观察和测量气流在模型前后的压力、速度等参数的变化,从而了解气流对物体的影响。

3. 实验装置和材料1. 小型风洞:风洞箱、风机、风洞管道、模型支架等。

2. 模型:可以选择不同几何形状的模型,如平板、球体等。

3. 测量仪器:差压传感器、风速计等。

4. 实验步骤4.1 搭建风洞1. 搭建风洞箱,确保密封性良好。

2. 将风机安装在风洞箱的一侧。

3. 连接风机与风洞箱之间的管道,确保气流能顺畅流动。

4.2 安装模型1. 根据实验需求选择合适的模型,并将其安装在风洞箱内的模型支架上。

2. 确保模型位置稳定,并与风洞箱内的气流方向对齐。

4.3 进行实验测量1. 在模型前后位置处,分别安装差压传感器和风速计。

2. 根据实验要求,记录模型前后气流的压力差和速度差等参数。

3. 可以使用数据采集系统,将实验数据进行记录和处理。

4.4 分析实验数据1. 根据实验所得数据,计算压差和速度差的平均值,并进行比较和分析。

2. 根据流体力学相关理论,理解实验结果所呈现的物理现象,如气流分离、阻力等。

5. 实验结果与讨论根据实验数据的分析,可以得出以下结论:1. 模型前后的压差随着模型的形状和尺寸的变化而变化,进一步验证了伯努利定律在风洞中的适用性。

2. 模型前后的速度差与模型的形状和尺寸密切相关,不同形状的模型会产生不同的气流效应。

3. 在实验中发现,当气流速度较大时,模型前后的压差和速度差明显增大。

本实验结果表明,小型风洞是一个有效的工具,可以用于研究和理解物体在气流中的行为。

通过改变模型的形状和尺寸,可以进一步探究气流对物体的影响,并为飞行器设计、建筑结构等领域提供参考依据。

6. 实验结论通过本次小型风洞实验,我们对气流的特性和模型的影响有了更深入的了解。

简易风洞设计(带有程序)

简易风洞设计(带有程序)

简易风洞设计需要的材料风机,小球,51单片机,风机驱动模块,液晶1602,超声波,电源设计任务设计制作一简易风洞及其控制系统。

风洞由圆管、连接部与直流风机构成。

圆管竖直放置,长度约40cm,内径大于4cm且内壁平滑,小球(直径4cm黄色乒乓球)可在其中上下运动;管体外壁应有A、B、C、D等长标志线,BC段有1cm间隔的短标志线;可从圆管外部观察管内小球的位置;连接部实现风机与圆管的气密性连接,圆管底部应有防止小球落入连接部的格栅。

控制系统通过调节风机的转速,实现小球在风洞中的位置控制。

设计要求(1)小球置于圆管底部,启动后5秒内控制小球向上到达BC段,并维持5秒以上。

(20分)(2)当小球维持在BC段时,用长形纸板(宽度为风机直径的三分之一)遮挡风机的进风口,小球继续维持在BC段。

(10分)(3)以C点的坐标为0cm、B点的坐标为10cm;用键盘设定小球的高度位置(单位:cm),启动后使小球稳定地处于指定的高度3秒以上,上下波动不超过±1cm。

(10分)(4)以适当的方式实时显示小球的高度位置及小球维持状态的计时。

(10分)小球置于圆管底部,启动后5秒内控制小球向上到达圆管顶部处A端,且不跳离,维持5秒以上。

(10分)(5)小球置于圆管底部,启动后30秒内控制小球完成如下运动:向上到达AB段并维持3~5秒,再向下到达CD段并维持3~5;再向上到达AB段并维持3~5,再向下到达CD 段并维持3~5;再向上冲出圆管(可以落到管外)。

(20分)(6)风机停止时用手将小球从A端放入风洞,小球进入风洞后系统自动启动,控制小球的下落不超过D点,然后维持在BC段5秒以上。

(10分)(7)其他自主发挥设计。

(10分)说明(1)题中到达XX段是指,小球的整体全部进入该段内;(2)题中“维持”是指,在维持过程中小球整体全部不越过该段的端线;(3)小球的位置以其中心点为准(即小球的上沿切线向下移2cm,或下沿切线向上移2cm);(4)直流风机的供电电压不得超过24V,注意防止风机叶片旋转可能造成的伤害;可在圆管及其周围设置传感器检测管内小球的位置;可将圆管、连接部与直流风机安装在硬质板或支架上,以便于使圆管保持竖直状态,并保持风洞气流通畅。

风洞施工方案

风洞施工方案

风洞施工方案1. 引言风洞是一种用于进行气动性能测试和风力工程研究的设备,主要用于模拟真实空气流动情况,尤其是在飞行器设计和空气动力学研究中扮演着重要角色。

本文档将介绍风洞施工方案,包括风洞的设计、施工过程、材料选用和安全措施等。

2. 设计风洞的设计要考虑到以下几个方面:2.1 尺寸风洞的尺寸取决于测试对象的尺寸和测试需求。

通常情况下,风洞的尺寸应能容纳测试对象,并具有足够的空间进行流动分析和测量。

2.2 进口和出口风洞需要设计进口和出口,以确保气流能够顺畅进入和流出。

进口和出口应具有合适的尺寸和形状,以减小气流的扰动,并且要考虑到安全性和便捷性。

2.3 气流管道风洞的气流管道需要具备低阻力和高稳定性的特点。

为了实现这个目标,可以采用光滑内壁的材料,并适当设计管道的曲率和直径。

此外,还需要考虑管道的长度和密封性。

2.4 测量设备风洞应配备适当的测量设备,以便对气流速度、压力、温度等参数进行准确的测量。

测量设备的选择应根据测试需求和预算来确定,并且需要定期校准。

3. 施工过程风洞的施工过程主要包括以下几个步骤:3.1 土建工程风洞的土建工程包括平整地基、打地基、搭建建筑结构等。

建筑结构的稳定性和密封性对于风洞的正常运行非常重要。

3.2 气流管道安装在土建工程完成后,需要安装气流管道。

气流管道的安装要注意避免内部有锐边、死角或突起物,以减小气流的扰动。

3.3 电力供应和控制系统风洞需要稳定的电力供应和控制系统,以确保风洞的安全性和可控性。

电力供应和控制系统的设计和安装要符合相关标准和规范。

3.4 测量设备安装在风洞施工的最后阶段,需要安装和调试测量设备。

测量设备的安装和调试要严格按照制造商的指南进行。

4. 材料选用风洞施工中的材料选用对于风洞的运行和性能有着重要的影响。

以下是一些常用的材料选用建议:4.1 气流管道气流管道可以选择光滑内壁的材料,如不锈钢、铝合金等。

这些材料具有优异的耐腐蚀性和流体动力学特性。

风洞试验-模型制作及实验步骤

风洞试验-模型制作及实验步骤

实验模型的制作1.工程背景与概况本次实验旨在研究一拟建高层玻璃幕墙结构建筑的表面风压分布情况,为玻璃幕墙的设计强度、施工工艺和材料选用提供依据。

该高层建筑,高41层(120米),水平面为L 形,底部4层或作商用,上部37层为办公用房,整体采用钢结构,立面采用玻璃幕墙装饰。

基于该建筑的以上特点,风荷载成为其侧向控制荷载。

2.模型设计与加工建筑模型的设计与加工,应遵循“相似准则”,以实际高层建筑为原型,采用1:200的缩尺比,绘制完成建筑模型图、构件加工图,加工得到实物模型,具体步骤如下:(1)建筑模型图以拟建高层玻璃慕青结构建筑为原型,以1:200的缩尺比对长宽高三个方向进行等比例缩小,得到模型的各个立面图及俯视平面图。

同时,为满足测量建筑表面风压系数的需要,应对需要布置测压管的位置进行标记。

测压管的布置采取水平向均匀布点、竖直向取特征位置布点的方法,在模型顶面和四面共布置了234个测点,在图中以“十”字标记。

(2)构件加工图模型加工材料为4.5mm 厚的有机玻璃,首先在考虑材料厚度的前提下设计实验模型的拼装方法,再按照拼装方法计算各拼装构件的尺寸,最终获得各拼装构件的加工图及试验模型拼装说明图,以AutoCAD 文件输出。

(3)机械加工将设计好的构件加工图纸导入数控车床的控制系统中,以4.5mm 厚的有机玻璃板为原料在数控车床上加工出期望的拼装构件,并按照设计的数目在标记的测压管位置打出测压孔。

3.测压管的安装与编号模型拼装之前需要在其表面埋入内径为ϕ1mm的黄铜管,通过内径为ϕ1.4mm的乙烯树脂管与黄铜管及压力扫描阀进行紧密连接,再接到压力传感测量模型表面各测压点的风压。

测压管的安装步骤如下:(1)埋置测压管将测压管(内径为ϕ1mm的黄铜管)埋入有机玻璃构件上预先打好的测孔中,用502胶水粘接,为防止502胶水通过测孔渗入测压管中而将其堵塞,应该首先在模型表面粘上一层透明胶纸,要求测压管与模型表面保持垂直且平齐。

低速风洞设计说明书

低速风洞设计说明书

流体力学实验技术课程设计学院:航空宇航学院学生姓名:杨馨学号:011210833二〇一六年十二月低速风洞设计课程设计报告1、实验段设计该风洞设计最大风速为100米每秒,预设功能为做全机模型低速气动特性测量试验,一般的迎角在负20度到正30度之间,采用回流式。

○1实验段截面形状选择实验段截面形状有圆形、方形、八角形、椭圆形及矩形等。

选择剖面形状的原则是在满足实验要求下最有效地利用全部气流切面积,因而可以减少风洞的驱动功率。

综合考虑气流均匀度和洞壁干扰等因素,选取矩形截面。

○2实验段截面尺寸选择为使雷诺数达到2.5*10^6,根据风速100米每秒,再取平均展弦比为6,并且要求模型展长不超过风洞宽度的0.7倍,估算得实验段宽度约为3.7米,取实际宽度为4米;由于迎角不太大,对于实验段高度要求不大,取为3米。

○3实验段开口式、闭口式的选择为保证实验段气流均匀度以及减少可能的能量损失,采用闭口式实验段。

○4实验段长度确定模型应置于实验段的均匀流场中。

模型头部至实验段入口应保持一定距离,以l1表示,假设实验段相当直径为D0,则L1大致为0.25~0.50 D0;模型的长度以l2表示,大约为0.75~1.25 D0,各种类型飞机的模型是不相同的;模型尾部至扩压段进口也应保持一定距离,以l3表示,一方面保证模型的尾流不过多影响扩压段效率,另一方面也不使扩压段的流动影响模型尾部,这个距离大约为0.75~1.25 D0。

因此,实验段长度应保持在1.75~3.0 D0的范围内。

经计算,D0约等于3.9米,取实验段长度为8米。

2、收缩段设计○1收缩段作用加速气流,使其达到实验所需要的速度。

收缩段应满足以下要求:(1)气流沿收缩段流动时,洞壁上不出现分离;(2)收缩段出口的气流要求均匀、平直而且稳定;(3)收缩段不宜过长。

○2收缩段长度L2收缩比取为10,收缩段出口尺寸根据试验段尺寸取R2为2米,根据收缩比计算得进口尺寸R1约为6.32米,收缩段长度一般采用进口直径的0.5~1.0倍,取L为8米。

实验风洞方案的设计

实验风洞方案的设计

气体在风洞中工作段流动是均匀场,即模拟了自然风场,气体流过“膜”表面,由于粗糙度不同,流场分布也变化,由于设备优良程度不同,对同一膜表面流场分布也变化。

通过查阅大量有关风洞实验装置的文献,现设计出了两种实验方案如下:
表1 两种方案性能表
方案阻力压力梯度流速、流场使用方法阻力特性备注
风洞无0 均匀场,稳定
流速
放在流场中间
基本上绝
对值
有阻塞
效应
双纽线传感器有有
流量场,平均
流速
贴在管壁上相对值
无阻塞
效应
两种方案的共同点:
1、都可以无级调速(不允许通过节流装置等改变机械尺寸方法);
2、都是测量差压(计量标准);
3、都可以获得低湍流稳定流场;
4、都需要进行温度、湿度、流速分布系数,阻塞系数,干扰系数的修正;
5、两种方案测出结果都是标准状态;
6、结构上有共同点,装置的左边不同,右边大致相同。

针对以上两种方案的自制风洞装置图如下所示:
②紊流网 ⑥工作段
③稳定段 ⑦扩散段
④集气段 ⑧风机
方案 A
① 双纽线式传感器
② 工作段
③ 扩散段
④ 风 机
方案 B
图1 风洞装置设计简图。

简易风洞及控制系统设计

简易风洞及控制系统设计
动启动启动较晚下落不超
过D超过D维持BC段管口A处2球放入自
动启动பைடு நூலகம்动正常下落不超
过D超过D维持BC段管口A处3球放入自
动启动启动正常下落不超
过D超过D维持BC段管口A处
分析:小球放入后可以自动启动,但是风力调整不好,主要是由于占空比调节不好导致风力过大,小球不能维持在BC段。
(5)小球AB-CD段往返运动
方案一:
直接使用四根长螺丝固定风扇,再用圆管和风扇连接固定。但密封性稍差,且当玻璃管上方加传感器后,高度增加,导致重心不稳,稳定性不够。
方案二:
使用4 mm2粗铁丝制作圆盘底座,底座上加有铁块配重增加稳定性,底座上有支架分别支撑有机玻璃管的上部与风扇底部,稳定性较好。
综合考虑各种因素,我们最终选择方案二。
(3)LCD显示小球高度位置及小球维持状态计时,测试结果如下表:
次数LCD显示小球
高度/s实际小球
高度/sLCD维持
状态计时/s实际计时/s1404155227266739777
分析:由以上数据得,超声波测距工作不是太稳定,容易受外界因素影响。
(4)风机自动启动部分测试数据如下表:
次数要求实际情况要求实际情况要求实际情况1球放入自
次数要求实际情况要求
时间/s实际
计时/s123AB维持3~5 s,CD维持3~5 s,再AB维持3~5 s,CD维持3~5 s,冲出圆管能上下运动,但不到规定段位,可以冲出能上下运动,但不到规定段位,可以冲出能上下运动,但不到规定段位,可以冲出3030301622255结论
(1)电机的选择上出现了错误,开始选用步进电机,转速不够,在风洞系统中乒乓球无法被现在的风力吹起来,通过更换电机得到改善。
所以,综上考虑,最终我们选择HC-SR04超声波传感器。

教你制作小风洞

教你制作小风洞

同学们,你们知道风洞吗?风洞是用人工的方式产生和控制气流的管道状实验设备,可以模拟飞行器或其他物体,如汽车、火车、高楼和桥梁等周围的气体流动,来研究气流对物体的作用。

风洞在航空和航天研究中起着重要作用。

今天,我就教大家做一个模拟汽车环境的低速风洞吧。

◎文/北京玉泉小学 赵梓祁
教你制作小风洞
科迷街
首先,要开始准备原材料,包括3
个大饮料瓶、1个小饮料瓶、1个电
脑风扇,还有剪刀、透明胶带、双
面胶等辅助材料
下面,就让我们开始制作吧:把饮料瓶裁
剪成需要的形状,如下图所示
用透明胶带连接成一个闭环风洞
连好后,就可以开动开关,在风扇的驱动
下进行简单的汽车演示实验了。

为了演示
实验效果,可以在风洞旁边放置一辆小
汽车,小汽车尾部拴上丝线,风洞启动
后,我们会看到丝线轻轻飞扬。

汽车研制
中使用风洞,可以了解风速对汽车时速和
安全的影响,来调整汽车设计。

59Copyright©博看网. All Rights Reserved.。

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

简易风洞设计需要的材料风机,小球,51单片机,风机驱动模块,液晶1602,超声波,电源设计任务设计制作一简易风洞及其控制系统。

风洞由圆管、连接部与直流风机构成。

圆管竖直放置,长度约40cm,内径大于4cm且内壁平滑,小球(直径4cm黄色乒乓球)可在其中上下运动;管体外壁应有A、B、C、D等长标志线,BC段有1cm间隔的短标志线;可从圆管外部观察管内小球的位置;连接部实现风机与圆管的气密性连接,圆管底部应有防止小球落入连接部的格栅。

控制系统通过调节风机的转速,实现小球在风洞中的位置控制。

设计要求(1)小球置于圆管底部,启动后5秒内控制小球向上到达BC段,并维持5秒以上。

(20分)(2)当小球维持在BC段时,用长形纸板(宽度为风机直径的三分之一)遮挡风机的进风口,小球继续维持在BC段。

(10分)(3)以C点的坐标为0cm、B点的坐标为10cm;用键盘设定小球的高度位置(单位:cm),启动后使小球稳定地处于指定的高度3秒以上,上下波动不超过±1cm。

(10分)(4)以适当的方式实时显示小球的高度位置及小球维持状态的计时。

(10分)小球置于圆管底部,启动后5秒内控制小球向上到达圆管顶部处A端,且不跳离,维持5秒以上。

(10分)(5)小球置于圆管底部,启动后30秒内控制小球完成如下运动:向上到达AB段并维持3~5秒,再向下到达CD段并维持3~5;再向上到达AB段并维持3~5,再向下到达CD段并维持3~5;再向上冲出圆管(可以落到管外)。

(20分)(6)风机停止时用手将小球从A端放入风洞,小球进入风洞后系统自动启动,控制小球的下落不超过D点,然后维持在BC段5秒以上。

(10分)(7)其他自主发挥设计。

(10分)说明(1)题中“到达XX段”是指,小球的整体全部进入该段内;(2)题中“维持”是指,在维持过程中小球整体全部不越过该段的端线;(3)小球的位置以其中心点为准(即小球的上沿切线向下移2cm,或下沿切线向上移2cm);(4)直流风机的供电电压不得超过24V,注意防止风机叶片旋转可能造成的伤害;可在圆管及其周围设置传感器检测管内小球的位置;可将圆管、连接部与直流风机安装在硬质板或支架上,以便于使圆管保持竖直状态,并保持风洞气流通畅。

设计论证该装置通过利用单片机输出pwm波控制风机转速,从而达到控制小球位置的目的。

利用超声波检测小球离检测装置的距离通过单片机发送至外设lcd1602显示模块,并通过显示模块显示的数据利用键盘模块进行任务的设定。

部分程序代码#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit led1=P1^3;sbit led2=P1^4;sbit RX=P3^2;sbit TX=P1^5;sbit LCM_RW=P1^1; //定义LCD引脚sbit LCM_RS=P1^0;sbit LCM_E=P2^5;#define LCM_Data P0//#define Key_Data P3_4 //定义Keyboard引脚//#define Key_CLK P3_5#define Busy 0x80 //用于检测LCM状态字中的Busy标识sbit in0=P1^0;sbit in1=P1^1;sbit ena=P3^0;sbit k1=P3^6;sbit k2=P3^7;sbit k3=P3^5;float a;float zkb=10;char val=2;void delay(int z){ int x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//1602void Delay12us();void Conut(void);void LCMInit(void);void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);void Delay5Ms(void);void Decode(unsigned char ScanCode);void WriteDataLCM(unsigned char WDLCM);void WriteCommandLCM(unsigned char WCLCM,BuysC);unsigned char ReadDataLCM(void);unsigned char ReadStatusLCM(void);unsigned char code ASCII[15] = {'0','1','2','3','4','5','6','7','8','9','.','-','M'};static unsigned char DisNum = 0; //显示用指针unsigned int time=0;unsigned long S=0;bit flag =0;unsigned char disbuff[4] ={ 0,0,0,0,};void delayms(unsigned int ms){unsigned char i=100,j;for(;ms;ms--){while(--i){j=10;while(--j);}}}//写数据void WriteDataLCM(unsigned char WDLCM){ReadStatusLCM(); //检测忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; //若晶振速度太高可以在这后加小的延时LCM_E = 0; //延时LCM_E = 1;}//写指令void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC为0时忽略忙检测{if (BuysC) ReadStatusLCM(); //根据需要检测忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;}//读数据unsigned char ReadDataLCM(void){LCM_RS = 1;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;return(LCM_Data);}//读状态unsigned char ReadStatusLCM(void){LCM_Data = 0xFF;LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;while (LCM_Data & Busy); //检测忙信号return(LCM_Data);}void LCMInit(void) //LCM初始化{LCM_Data = 0;WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号WriteCommandLCM(0x08,1); //关闭显示WriteCommandLCM(0x01,1); //显示清屏WriteCommandLCM(0x06,1); // 显示光标移动设置WriteCommandLCM(0x0F,1); // 显示开及光标设置}//按指定位置显示一个字符void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData){Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;X |= 0x80; //算出指令码WriteCommandLCM(X, 1); //发命令字WriteDataLCM(DData); //发数据}//按指定位置显示一串字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData) {unsigned char ListLength;ListLength = 0;Y &= 0x1;X &= 0xF; //限制X不能大于15,Y不能大于1while (DData[ListLength]>0x19) //若到达字串尾则退出{if (X <= 0xF) //X坐标应小于0xF{DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符ListLength++;X++;}}}void StartModule() //启动模块{TX=1; //启动一次模块Delay12us();TX=0;while(!RX); //当RX为零时等待TR1=1; //开启计数while(RX); //当RX为1计数并等待TR1=0;Conut();}//5ms延时void Delay5Ms(void){unsigned int TempCyc = 5552;while(TempCyc--);}unsigned char leddata[]={0x3F, //"0"0x06, //"1"0x5B, //"2"0x4F, //"3"0x66, //"4"0x6D, //"5"0x7D, //"6"0x07, //"7"0x7F, //"8"0x6F, //"9"0x77, //"A"};float t;//uint bai,shi,ge;uint distance;void init();//void display(uint,uint,uint);void Delay12us() //@11.0592MHz {unsigned char i;;;;;;i = 30;while (--i);}//void leddisplay()//数码管显示程序//{// duan=1;// P0=leddata[zkb];// duan=0;// wei=1;// P0=0xfe;// wei=0;// delay(10);//}/*pwm调速设置*/void pwm(){for(a=0;a<50;a++){if(a==50)a=0;if(!k1)//加速调节{delay(5);if(!k1){zkb=zkb+5;if(zkb>50)zkb=0;while(!k1);}}if(a<zkb){ena=1;}else{ena=0;}}// if(!k1)//加速调节// {// delay(5);// if(!k1)// {// zkb=zkb+0.3; // if(zkb>50)// zkb=0;// while(!k1); // }// }if(!k2)//减速调节{delay(5);if(!k2){zkb=zkb-0.3;if(zkb<0)zkb=0;while(!k2);}}if(!k3)//减速调节{delay(5);if(!k3){val++;if(val==3)val=0;while(!k3);}}}/*程序初始化*/void init(){TMOD = 0x10;TH0 = 0xFC;TL0 = 0x66;// ET0 = 1;TR0 = 1;//占空比RX=0;TH1=0;TL1=0;ET1=1;EA = 1;//超声波测距}void main(){LCMInit();init();in0=1;in1=0;while(1){pwm();// led1=0;// delayms(5);led1=!led1;StartModule();led2=!led2;// switch (val)// {// case 0: if(S<27)zkb=13;// if(S>30)zkb=12;break; //// case 1: if(S<17)zkb=10.6;// if(S>22)zkb=10;break; //// case 2: if(S<14)zkb=11.3;// if(S>16)zkb=9.4; break; // }}}void Conut(void){time=TH1*256+TL1;TH1=0;S=(time*1.7)/100; //算出来是CM// if(S>=700||flag==1) //超出测量范围显示“-”// {// flag=0;//// DisplayOneChar(0, 1, ASCII[11]);// DisplayOneChar(1, 1, ASCII[10]); //显示点// DisplayOneChar(2, 1, ASCII[11]);// DisplayOneChar(3, 1, ASCII[11]);// DisplayOneChar(4, 1, ASCII[12]); //显示M// }// else// {disbuff[0]=S%1000/100;disbuff[1]=S%1000%100/10;disbuff[2]=S%1000%10 %10;DisplayOneChar(0, 1, ASCII[disbuff[0]]);DisplayOneChar(1, 1, ASCII[10]); //显示点DisplayOneChar(2, 1, ASCII[disbuff[1]]);DisplayOneChar(3, 1, ASCII[disbuff[2]]);DisplayOneChar(4, 1, ASCII[12]); //显示M}// }/*占空比调节中断*/void ooo() interrupt 1 //ET0{a++;if(a==50)a=0;if(distance<7)zkb=13; //预防死机(不知何种原因,到底时准会”卡住“)TH0=0xFC;TL0=0x66;if(a<zkb){ena=1;}else{ena=0;}}void zd1() interrupt 1 //T1中断用来计数器溢出,超过测距范围{flag=1;led2=!led2; //中断溢出标志}设计流程图。

相关文档
最新文档