当前位置:首页 > 邱磊3100403108-电信101-汽车防撞报警系统设计 - 图文
开始初始化启动模块开定时器定时器溢出?Y显示超范围NNECHO检测到低电平?Y关定时器计算距离显示距离播报距离Y距离是否大于警戒距离?N语音危险报警
图4.1 系统程序框图
20
4.2.2 按键设置程序设计
按键设置采用外部中断的方式,由于扫描方式对语音播报有影响,扫描中的延时会让语音播报的更新速度大大减小。外部中断0和外部中断1的请求触发方式均使用脉冲触发。当在一个机器周期中检测到P3.3引脚为高电平,下一个周期检测到低电平时,触发了外部中断1,引脚P3.3向CPU申请中断,警戒距离减一位。当在一个机器周期中检测到P3.2引脚为高电平,下一个周期检测到低电平时,触发了外部中断0,引脚P3.2向CPU申请中断,警戒距离加一位。按键设置的外部中断0/1程序框图分别如图4.2和图4.3所示。
开始开始语音是否播报中?否警戒距离值加1语音是否播报中?否警戒距离值减1警戒距离值等于101?是是否警戒距离值等于0读取警戒距离值给液晶显示否警戒距离值小于0?是是警戒距离值等于100读取警戒距离值给液晶显示返回返回
图4.2 外部中断0程序框图 图4.3 外部中断1程序框图
4.2.3 语音播报程序设计
语音芯片根据单片机输出控制播放语音,语音段落都是提前录好的,程序中只要实现语音的播放就可以了。如图4.4 则为语音播报模块程序框图。
21
开始初始化MCU发出指令播放相应语音内容
图4.4 语音播报程序框图
4.2.4 测距程序设计
测距程序包括超声波发送程序、超声波回波探测程序、读取计数值程序以及数据处理程序。计数、读取计数值和数据处理是由单片机完成的。测距过程首先由单片机给超声波模块的TRIG至少10us的高电平,模块自动发送8个40khz 的方波,自动检测是否有信号返回,当有信号返回,ECHO 输出一个高电平,单片机开启定时器,当ECHO从高电平变为低电平时,关闭定时器。本设计使用的晶振频率为11.05926MHZ,则定时的时间为N*(1/11.05926)*12,测得的距离为N*(1/11.05926)*12/2*10-6*344/100。如果当定时器溢出,ECHO还没有变为低电平,定时器T0 溢出中断,表明此次测距不成功,返回主程序重新初始化各项参数,重新测量,如图4.5。
22
开始初始化给TRIG10us高电平启动模块否ECHO检测到高电平?是是开定时器定时器溢出?否ECHO检测到低电平?是关定时器S=time*1.87/100返回
图4.5 测距程序框图
23
共分享92篇相关文档