超声波测距报告(带报警)

合集下载

超声波测距 实验报告

超声波测距 实验报告

Q1
40106
图 6
7490 芯片的时钟接前一位的 Q3。最低位 7490 芯片的时钟接 17kHz TTL 方波(由信号 发生器提供)和闸门波形相与(或者相与非)的结果。闸门波形由下图所示的电路产生:
1 发(Q1)
D
SET
Q
Q3
CLR

Q

图 7
4、报警电路。
图 8
此部分的功能是通过存储器(用 74161 芯片)保存计数值,在报警时间(如图 8)内用 组合逻辑电路对计数值进行比较。若计数值小于 30(cm) (且小于存储器中的值) ,则利用
实验日期 2010-7-13~2010-7-15
实验室
222
座位号
23
清华大学电子工程系
电子技术课程设计 实验报告
超声波测距系统
班级 无 82 学号 2008011098 姓名 刘硕 交报告日期 2010-7-17
【实验任务】
1. 测量距离不小于 0.5m 米,数字显示,动态更新测量结果,更新时间约 1 秒。测量精 度优于 0.05m,显示精度 0.01m。 2.测量距离不小于 1.0m 米,数字显示,动态更新测量结果,更新时间约 1 秒。测量精 度优于 0.01m,显示精度 0.01m 3.测量距离不小于 2.0m 米,数字显示,动态更新测量结果,更新时间约 1 秒。测量精 度优于 0.01m,显示精度 0.01m 距离小于 0.3m 时,用蜂鸣片发出间歇式的“嘀一嘀”声响报 警。 4*.显示无跳动、闪烁,距离小于 0.3m 且距离变近时,用蜂鸣片发出间歇式的“嘀一嘀” 声响报警。
Ix<30cm Q3 BDC
图 10
实现距离小于 30cm 且距离变近报警的电路:

超声波距离显示报警ISD1820语言播报系

超声波距离显示报警ISD1820语言播报系

超声波距离显示ISD1820语音报警系统Ultrasonic Distance Display ISD1820 Voice Alarm System产品概述:ICStation team introduce you this Ultrasonic Distance Display ISD1820 Voice Alarm System based on ICStation UNO. This system works under 5V power supply, uses the Ultrasonic Module HC-SR04 Distance Transducer Sensor to detect the distance between the Module and the measured object. When the Ultrasonic Module detects the distance is larger than the maximum, the loudspeaker will not alarm. When the Ultrasonic Module detects the distance is smaller than the maximum, the loudspeaker will alarm. The distance data will be displayed on the LCD1602. This system can be made easily with low cost and it is suitable for automobile and Workshop and so on.超声波距离显示语音报警系统采用DC5V电压工作,通过超声波模块检测与被测物体之间的距离,当超声波模块检测到的距离大于设定的上限距离,扬声器不报警。

当超声波模块检测到的距离小于设定的上限距离,扬声器报警。

超声波测距报警

超声波测距报警
写入字符串函数
------------------------------------------------*/
void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)
{
while (*s)
{
LCD_Write_Char(x,y,*s);
void LCD_Init(void)
{
LCD_Write_Com(0x38); /*显示模式设置*/
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
LCD_Write_Com(0x08); /*显示关闭*/
#define RW_SET RW=1
#define EN_CLR EN=0
#define EN_SET EN=1
#define DataPort P0 //宏定义定义数据端口程序中遇到DataPort则用P0替换
/*------------------------------------------------
mS延时函数,含有输入参数unsigned char t,无返回值
unsigned char是定义无符号字符变量,其值的范围是
0~255这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
void DelayMs(unsigned char t)
长度如下T=tx2+5 uS

超声波测距报告

超声波测距报告

超声波测距系统——实物部分设计报告一、设计要求:用超声波传感器和其它器件设计一个反射式超声波测距系统。

1、测量距离不小于1.3米,数字显示,清晰,无数字叠加现象。

动态更新数字显示的测量结果,更新时间约0.5秒左右。

2、测量精度优于0.1米,显示精度0.01米。

3、距离小于0.3米时,用蜂鸣片发出间歇式的“滴一滴”声响报警。

4、测量距离超过1.0米时,给出达到测距要求的超量程指示。

二、设计思路:1、设计总的原理框图:超声波发射器㈠2Hz时钟信号产生电路:①分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,通过调整电阻和电容的值,得到所需频率的矩形波。

②单元电路图如右图。

③参数计算:④ 功能说明:数字显示的测量结果要求动态更新时间约0.5秒左右,所以要求一个频率约2Hz 的时钟信号来控制刷新数据,保证结果显示稳定不闪烁。

㈡ 40KHz 时钟信号产生电路:① 分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,通过调整电阻和电容的值,得到所需频率的方波。

② 单元电路如下图。

③ 参数计算:④ 功能说明:发送超声波需要一个可以微调的40KHz 的时钟信号作为驱动,1212121 1.43;(2)2,;2 1.52;1,300.pL pH f t t R R C f Hz F R R M R M R K ==++=∴+=Ω∴=Ω=Ω 又另C=470n 取123123231 1.43;(+2)40,+276.1;7.5,7.5,47pL pH f t t R R R C f KHz R R R K K R K R K ==++=∴+=Ω∴=Ω=ΩΩ 1又另C=470pF;取R 为的可变电阻器。

超声波以正弦波方式传输,所以超声波驱动模块的频率要求是接近40KHz 周期信号的方波。

㈢ 17KHz 时钟信号产生电路:① 分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,通过调整电阻和电容的值,得到所需频率的矩形波。

超声波测距实验报告

超声波测距实验报告
超声波发射器发射一组超声波脉冲 脉冲遇到物体后反射回来 接收器接收到反射回来的脉冲,并计算时间差 根据时间差和声波速度,计算出物体距离
超声波测距模块工作原理
超声波发射器发射 一组超声波脉冲
脉冲遇到物体后反 射回来
超声波接收器接收 反射回来的脉冲
通过计算发射和接 收脉冲之间的时间 差,得到物体与传 感器之间的距离
编写Arduino程序,控制 超声波传感器发送和接收 信号
连接Arduino板与电脑, 上传程序并运行
调整超声波传感器的角度 和位置,确保测量距离准 确
开始测量
准备超声波传感器和Arduino板 连接超声波传感器和Arduino板 编写程序,设置触发和接收引脚 启动Arduino板,开始测量距离
数据记录和处理
添加标题
添加标题
添加标题
添加标题
拓展应用场景:将超声波测距技术 应用于更多领域,如自动驾驶、智 能机器人等。
降低成本:通过优化设计和生产工艺, 降低超声波传感器和测距系统的成本, 使其更广泛地应用于各种领域。
感谢您的观看
汇报人:XX
实验步骤
准备实验器材
超声波传感器 添加标题
连接线 添加标题
添加标题 Arduino开发板
添加标题 面包板
跳线 添加标题
测量工具 添加标题
添加标题 电脑和软件
添加标题 实验环境
搭建实验装置
准备超声波传感器、 Arduino板、面包板、跳 线等材料
连接超声波传感器与 Arduino板的引脚
连接Arduino板与面包板 的引脚
学会使用超声波传感器进行距离测 量
学会分析实验数据,得出结论
掌握数据处理和分析技巧
学习如何使用超声波传感器进行距 离测量

超声波测距报警器实验报告

超声波测距报警器实验报告

超声波测距报警器实验报告一、实验目的本实验旨在设计并实现一个基于超声波的测距报警器,通过测量物体与传感器之间的距离,当距离小于设定的阈值时,触发报警装置,以实现对特定区域的距离监测和预警功能。

二、实验原理超声波测距是通过测量超声波在空气中的传播时间来计算距离的。

超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,碰到障碍物后反射回来,接收器收到反射波就立即停止计时。

已知超声波在空气中的传播速度为 340 米/秒,根据计时器记录的时间 t,就可以计算出发射点距障碍物的距离 s,计算公式为:s = 340t/2 。

三、实验设备与材料1、超声波传感器模块(包括发射器和接收器)2、微控制器(如 Arduino 开发板)3、蜂鸣器4、显示屏(用于显示测量距离)5、杜邦线若干6、电源(如电池盒或 USB 电源)四、实验步骤1、硬件连接将超声波传感器的 VCC 引脚连接到电源的正极端,GND 引脚连接到电源的负极端。

将超声波传感器的 Trig 引脚连接到微控制器的数字输出引脚,Echo 引脚连接到微控制器的数字输入引脚。

将蜂鸣器的正极连接到微控制器的数字输出引脚,负极连接到电源的负极端。

将显示屏连接到微控制器的相应引脚。

2、软件编程使用 Arduino 开发环境编写控制程序。

首先,设置微控制器的引脚模式,包括输入和输出引脚。

然后,在主循环中,通过向 Trig 引脚发送一个短脉冲来触发超声波传感器发送超声波。

等待 Echo 引脚变为高电平,开始计时;当 Echo 引脚变为低电平时,停止计时,并根据时间计算距离。

将计算得到的距离与设定的阈值进行比较,如果小于阈值,驱动蜂鸣器报警,并在显示屏上显示距离和报警信息。

3、调试与测试编译并上传程序到微控制器。

进行实物测试,逐步调整传感器的位置和方向,以及阈值的大小,观察报警效果和距离测量的准确性。

五、实验结果与分析1、距离测量结果在不同距离下进行多次测量,记录测量值。

超声波测距实验报告

超声波测距实验报告

超声波测距系统实物设计报告一.设计要求1.测量距离不小于0.3米,数字显示清晰,无数字叠加,动态显示测量结果,更新时间约为0.5秒左右。

2.测量精度优于0.1米,显示精度0.01米。

3.距离小于0.3米时,蜂鸣器发出”嘀嘀”报警。

4.测量距离超过1.0米时,指示灯显示超量程。

二.系统设计思路1.原理框图2.系统组成模块(一)(一)40KHZ 40KHZ 方波产生电路1、分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,通过理论计算加上微调电阻和电容的值,得到所需频率的矩形波,当R2远大于R1时,矩形波的占空比接近50%50%,可近似为方波。

,可近似为方波。

超声波振荡器控制门超声波放大器闸门CP 信号(2Hz )计数开启清零计数超声波放大滤波正弦波前沿检测超声波接收器超量程灯光显示小于0.3米蜂鸣报计数显示电路反射物超声波发射器17KHzCP 2、单元电路如下图;3、参数计算:4、仿真结果:(二)(二)2Hz 2Hz 时钟信号发生电路:时钟信号发生电路:1、分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,定时器组成的多谐振荡器作为时钟信号的产生电路,通过通过理论计算加上调整电阻和电容的值,得到所需频率的矩形波。

其中占空比在70%70%以上。

以上。

以上。

2、单元电路如下所示:参数计算:R1=710K 欧,R2=375欧,C1=1微F (三)17kHz 时钟信号发生电路:时钟信号发生电路:1、分析:利用555定时器组成的多谐振荡器作为时钟信号的产生电路,定时器组成的多谐振荡器作为时钟信号的产生电路,通过通过理论计算加上调整电阻和电容的值,得到所需频率的矩形波。

理论计算加上调整电阻和电容的值,得到所需频率的矩形波。

2、单元电路如下所示:3、参数计算:R1=1K 欧,R2=395欧,C5=47nf ;4、仿真5、功能:数字显示的测量结果要求动态更新时间约0.5秒左右,所以要求一个频率约2Hz 的时钟信号来控制刷新数据,保证结果显示稳定不闪烁。

超声波测距实验报告

超声波测距实验报告

超声波测距实验报告电子综合实验课程报告课题名称:超声测距仪专业:生物医学工程班级:,,级生物医学,,班姓名:敖一鹭刘晓莎尹曼邹燕一引言随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。

但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。

声波测距作为一种典型的非接触测量方法,在很多场合,诸如工业自动控制,建筑工程测量和机器人视觉识别等方面得到广泛的应用。

和其他方法相比,如激光测距、微波测距等,由于声波在空气中传播速度远远小于光线和无线电波的传播速度,对于时间测量精度的要求远小于激光测距、微波测距等系统,因而超声波测距系统电路易实现、结构简单和造价低,且超声波在传播过程中不受烟雾、空气能见度等因素的影响,在各种场合均得到广泛应用。

然而超声波测距在实际应用也有很多局限性,这都影响了超声波测距的精度。

一是超声波在空气中衰减极大,由于测量距离的不同,造成回波信号的起伏,使回波到达时间的测量产生较大的误差;二是超声波脉冲回波在接收过程中被极大地展宽,影响了测距的分辨率,尤其是对近距离的测量造成较大的影响。

其他还有一些因素,诸如环境温度、风速等也会对测量造成一定的影响,这些因素都限制了超声波测距在一些对测量精度要求较高的场合的应用,如何解决这些问题,提高超声波测距的精度,具有较大的现实意义。

为了今后能够为社会做出更多有益的发明发现,超声测距课程设计应运而生。

二课题要求以单片机AT89C51为中心控制单元,配以超声波发射、接收装置,实现超声波发射及接收其遇到障碍物发生反射形成的回波信号,并根据超声波在介质中的传播速度及超声波从发射到接收到回波的时间,计算出发射点距障碍物的距离,设计出一套基于单片机的脉冲反射式超声波测距系统,利用单片机进行操作控制,用数码管作输出显示,设计发射、接收、检测、显示硬件电路和测距系统软件。

三基本要求1 能实现测距操作;2 能清晰稳定地显示测量结果, 具有测量完成提示;3 能正确实现单次测量;4 测量范围在0.5——2m;5 测量精确度2cm。

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

目录一、超声波测距原理二、超声波测距模块介绍1.主控模块2.电源模块3.显示模块4.超声波模块5.扬声器模块三、超声波测距功能介绍四、超声波测距前景展望五、心得附:程序超声波测距(可报警)一、超声波测距原理超声波发射器定期发送超声波,遇到被测物体时发生反射,反射波经超声波接收器接收并转化为电信号,只要测出发送和接收的时间差t,即可测出超声测距装置到被测物体之间的距离S:S=c*t/2(式中c为超声波在空气中的传播速度,c=331.45*√(1+T/273.16)) 由此可见声速与温度的密切的关系。

在应用中,如果温度变化不大或者对测量要求不太高(例如汽车泊车定位系统),则可认为声速是不变的,否则,必须进行温度补偿。

超声波传感器是超声测距核心部件,传感器按其工作介质可分气相、液相和固相传感器;按其发射波束宽度可分为宽波束和窄波束传感器;按其工作频率又可分为40kHz, 5OkHz等不同等级。

超声波在空气传播过程中,由于空气吸收衰减和扩散损失,声强随着传播距离的增大而衰减,而超声波的衰减随频率增大而成指数增加。

本设计选用气相、窄波束、40kHz的超声波传感器。

二、超声波测距模块介绍该产品共有五个模块,其中主控模块、电源模块、显示模块、扬声器模块集成在开发板上,超声波模块是外接的。

1.主控模块主要部分是51单片机。

51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。

该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATLEM公司的AT89系列,它广泛应用于工业测控系统之中。

目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。

51单片机是基础入门的一个单片机,还是应用最广泛的一种。

需要注意的是52系列的单片机一般不具备自编程能力。

主要功能:·8位CPU·4kbytes 程序存储器(ROM) (52为8K)·256bytes的数据存储器(RAM) (52有384bytes的RAM)·32条I/O口线·111条指令,大部分为单字节指令·21个专用寄存器·2个可编程定时/计数器·5个中断源,2个优先级(52有6个)·一个全双工串行通信口·外部数据存储器寻址空间为64kB·外部程序存储器寻址空间为64kB·逻辑操作位寻址功能·双列直插40PinDIP封装·单一+5V电源供电CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格;I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。

最高振荡频率为12M。

2.电源模块发电机能把机械能转换成电能,干电池能把化学能转换成电能。

发电机、电池本身并不带电,它的两极分别有正负电荷,由正负电荷产生电压(电流是电荷在电压的作用下定向移动而形成的),电荷导体里本来就有,要产生电流只需要加上电压即可,当电池两极接上导体时为了产生电流而把正负电荷释放出去,当电荷散尽时,也就荷尽流(压)消了。

干电池等叫做电源。

通过变压器和整流器,把交流电变成直流电的装置叫做整流电源。

能提供信号的电子设备叫做信号源。

晶体三极管能把前面送来的信号加以放大,又把放大了的信号传送到后面的电路中去。

晶体三极管对后面的电路来说,也可以看做是信号源。

整流电源、信号源有时也叫做电源。

3.显示模块我们选用的是LED共阴极数码管,用于显示超声波至障碍物的距离,精度单位为cm。

此处也可以选用LCD12864液晶显示屏,这样可以更加精确的显示距离,以及单位、温度、湿度等参量。

LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。

这些段分别由字母a,b,c,d,e,f,g,dp来表示。

当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到字样了。

如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。

LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。

小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。

发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。

常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。

led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。

位数有半位,1,2,3,4,5,6,8,10位等等....,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。

图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。

颜色有红,绿,蓝,黄等几种。

led数码管广泛用于仪表,时钟,车站,家电等场合。

选用时要注意产品尺寸颜色,功耗,亮度,波长等。

下面将介绍常用LED数码管内部引脚图片每一笔划都是对应一个字母表示 DP是小数点.LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。

4.超声波模块电气参数:5.扬声器模块扬声器特征:(1)扬声器有两个接线柱(两根引线),当单只扬声器使用时两根引脚不分正负极性,多只扬声器同时使用时两个引脚有极性之分。

(2)扬声器有一个纸盒,它的颜色通常为黑色,也有白色。

(3)扬声器的外形有圆形、方形和椭圆形等几大类。

(4)扬声器纸盆背面是磁铁,外磁式扬声器用金属螺丝刀去接触磁铁时会感觉到磁性的存在;内磁式扬声器中没有这种感觉,但是外壳内部确磁铁。

(5)扬声器装在机器面板上或音箱内。

三、超声波测距功能介绍本产品主要是运用超声波来检测周围障碍物与该超声波起始端之间的距离。

超声波模块的电气参数见上。

超声波的射程为2cm-400cm,当射程大于400cm时,将无法测距,此时数码管上显示为“---”。

另外当射程小于15cm时,将会由扬声器处发出警报(此处为该超声波测距的关键所在,用户可以自己设定报警射程)。

四、超声波测距前景展望1.用于智能机器人目前智能机器人正在火爆研发,不久的将来机器人必将广泛应用,我们这个超声波测距可以应用于机器人,当机器人遇到障碍物是可以自动报警。

2.用于高速公路上行驶的各种车辆目前各种交通事故总是在无情的上演着,其中一部分是由于天气原因或其他障碍物造成的车辆追尾事件。

我们的产品可利用超声波测距的,可以自己设定距离,当有障碍物在规定的范围内出现时,扬声器将会发出报警的声音,这个时候司机就可以根据当时情况及时做出反应,以避免车祸的发生。

类似于雷达。

3.用于个人飞行器目前新兴的个人飞行器已经有很多,未来个人飞行器可能更多的用于私人交通,而代替地面上行驶的车辆。

当个人飞行器在低空中飞行时,就可以利用我们的产品来检测前方是否有阻碍飞行的障碍物。

五、心得我们组从接到作业任务就开始准备,前前后后花了3个月左右。

作为我们组的组长及产品经理,作为组长我在这次项目中主要是分配、协调大家来配合完成好每一部分的工作。

作为产品经理,我经过很长时间的思考后选定了我们做的项目“超声波测距(带报警)”,之后去买材料,以及协助技术经理完成硬件和软件部分的制作,其中在软件方面,用了很长时间来编写程序,在这个编写程序的过程中我对C语言又有了深一层次的学习。

在这次项目的整个制作过程中我学到了很多,真正的把理论应用于实践后有一种极大的成就感。

其中也遇到了很多困难,但是我们组在团队协作下都一一解决了,在此对我的组员表示感谢,谢谢大家能够团结协作共同把项目做好。

程序:/****************************************************************************** *****************************///接线:模块TRIG接P3.1 ECH0 接P3.2//数码管:共阳数码管P1接数据口,P2.2P2.1 P2.0接选通数码管//蜂鸣器:P1.6/****************************************************************************** *****************************/#include <reg52.H> //器件配置文件#include <intrins.h>#include <SPEAK.H>sbit RX=P3^1;sbit TX=P3^2;unsigned int time=0;unsigned int timer=0;unsigned char posit=0;unsigned long S=0;bit flag =0;unsigned char const discode[] ={ ~0xC0,~0xF9,~0xA4,~0xB0,~0x99,~0x92,~0x82,~0xF8,~0x80,~0x90,~0xBF,~0xff/*-*/};unsigned char const positon[3]={ 0x01,0x02,0x03};unsigned char disbuff[4] ={ 0,0,0,0,};/********************************************************/void Display(void) //扫描数码管{if(posit==0){P0=(discode[disbuff[posit]])&0x7f;}else{P0=discode[disbuff[posit]];}P2=positon[posit];if(++posit>=3)posit=0;}/********************************************************/void Conut(void){time=TH0*256+TL0;TH0=0;TL0=0;S=(time*1.7)/100; //算出来是CMif((S>=700)||flag==1) //超出测量范围显示“-”{flag=0;disbuff[0]=10; //“-”disbuff[1]=10; //“-”disbuff[2]=10; //“-”}else if (S<=15){disbuff[0]=S%1000/100;disbuff[1]=S%1000%100/10;disbuff[2]=S%1000%10 %10;speak();}else{disbuff[0]=S%1000/100;disbuff[1]=S%1000%100/10;disbuff[2]=S%1000%10 %10;}}/********************************************************/void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围{flag=1; //中断溢出标志}/********************************************************/void zd3() interrupt 3 //T1中断用来扫描数码管和计800MS启动模块{TH1=0xf8;TL1=0x30;Display();timer++;if(timer>=400){timer=0;TX=1; //800MS 启动一次模块_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TX=0;}}/*********************************************************/ void main( void ){TMOD=0x11; //设T0为方式1,GATE=1;TH0=0;TL0=0;TH1=0xf8; //2MS定时TL1=0x30;ET0=1; //允许T0中断ET1=1; //允许T1中断TR1=1; //开启定时器EA=1; //开启总中断while(1){while(!RX); //当RX为零时等待TR0=1; //开启计数while(RX); //当RX为1计数并等待TR0=0; //关闭计数Conut(); //计算}}#include <SPEAK.H>/******************************************************************//* 延时函数声明*//******************************************************************/ void delay(unsigned int cnt){while(--cnt);}/******************************************************************//* 主函数*//******************************************************************/ void speak(void){unsigned int i;unsigned int j=3;while(j--){for(i=0;i<200;i++)//喇叭发声的时间循环,改变大小可以改变发声时间长短{delay(80); //参数决定发声的频率,估算值,可以自行更改参数并SPK=!SPK;}SPK=1; //喇叭停止工作,间歇的时间,可更改delay(20000);}}。

相关文档
最新文档