任务4 基于超声波的测距雷达设计.pptxVIP

  • 2
  • 0
  • 约1.58千字
  • 约 22页
  • 2026-01-30 发布于湖南
  • 举报

《无线传感网技术与应用》;;【任务能力目标】;【任务描述】;【任务分析】;【知识储备】;【知识储备】;【知识储备】;【知识储备】;【知识储备】;【知识储备】;3.任务开发流程

本任务是通过CC2530控制HC-SR04超声波测距模块测取距离,然后通过串口输出显示,当距离小于20cm时,蜂鸣器鸣叫,LED点亮。流程图如图所示。;【任务实施】;【任务实施】;【任务实施】;/*超声波测距函数*/

voidUltrasoundRanging()

{

//初始化超声波测距所需的GPIO和中断

EA=0;//关闭全局中断,防止在配置定时器和触发超声波时被中断

TRIG=1;//将TRIG(触发)引脚设置为高电平,开始超声波发射

Delay_1us(10);//需要延时10us以上的高电平,确保触发信号稳定

TRIG=0;//将TRIG引脚设置回低电平,结束超声波发射

//重置定时器1的计数器值为0,准备计时

T1CNTL=0;

T1CNTH=0;

while(!ECHO);//等待ECHO(回声)引脚变为高电平,表示超声波已开始接收回波

//配置定时器1的工作模式,32分频,自动重装模式

T1CTL=0x09;

//读取定时器1的当前值到L1和H1,用于计算时间差

L1=T1CNTL;

H1=T1CNTH;

//打开全局中断,允许后续中断发生

EA=1;

};/*中断服务函数*/

#pragmavector=P0INT_VECTOR//指定这是P0中断的向量

__interruptvoidP0_ISR(void)//定义中断服务

{

EA=0;//关闭全局中断,防止在处理中断时被其他中断打断

T1CTL=0x00;//停止定时器1,准备读取当前计数值

L2=T1CNTL;//读取定时器1的低字节

H2=T1CNTH;//读取定时器1的高字节

if(P0IFG0x80)//检查P0IFG寄存器的第7位(0x80),判断是否是外部ECHO信号触发的中断

{

P0IFG=0;//清除P0中断标志,表示中断已处理

}

T1CTL=0x09;//重新配置定时器1为上升沿触发模式

T1CNTL=0;//将定时器1的计数器清零

T1CNTH=0;//将定时器1的计数器清零

P0IF=0;//清除端口0的中断标志,表示中断已处理

EA=1;//重新开启全局中断

};4?搭建电路

用杜邦线按照图所示方式连接CC2530开发板、超声波传感器和蜂鸣器。其中:超声波传感器TRIG接CC2530的P1.3,ECHO接P0.7。蜂鸣器的电源正极接P0.6。;3.结果验证

(1)用USB连接线将CC2530与电脑连接,在PC上打开串口调试助手,设置波特率115200,8数据位,1停止位,无校验位。

(2)程序运行后,串口输出物体到传感器的距离值(单位为cm)。用物体挡在超声波距离检测传感器的两个探头前面,由远及近或由近及远慢慢移动物体,观察PC上串口输出的距离检测值,如图4-4-7所示。当超声波传感器的距离小于20cm时,蜂鸣器发出报警声。;【任务评价】;【任务小结】;【任务拓展】

文档评论(0)

1亿VIP精品文档

相关文档