XX学院 物理系 201X届 电子信息工程专业 毕业设计
开始
有回波吗?
Y 外部中断子程序
图4-1 主程序流程图
返回 定时子程序 N
Y 停止发射 三方向是否发射完? 发射超声N
定时器初始化 定时程序入口 单片机初始化 4.1.1 40KHz脉冲的产生与超声波发送
在脉冲产生前先对定时/计数器T0进行初始化,在这里选择的是工作方式1定时器模式,所以TMOD应该设计为01H。接着用STEBTRO指令开启T0,在开启T0的同时开发发射超声波脉冲。
测距系统中的超声波传感器采用UCM40的压电陶瓷传感器,它的工作电压是40KHz的脉冲信号,这由单片机执行下面程序来产生。
PUZEL:MOV 14#,#12H;超声波发射持续200ms HERE:CPL P1.0;输出40KHz方波 NOP NOP NOP
DJZN 14H,HERE RET
前方测距电路的输入端接单片机P1.0端口,单片机执行上面的程序后,在P1.0端口输出一个40KHz的脉冲信号,经过三极管T放大,驱动超声波发射头
____________________________________________________________________________________________
16
XX学院 物理系 201X届 电子信息工程专业 毕业设计 UCM40T,发出40KHz的脉冲超声波,且持续发射200ms。右侧和左侧测距电路的输入端分别接P1.1和P1.2端口,工作原理与前方测距电路相同。这里省略,只研究正对方向的障碍物。 4.1.2 超声波的接收与处理
超声波的接收是由外部中断口INT0是否有中断脉冲产生来判断的。定时子程序转回来的时候,要对中断进行初始化。选定的是INT0口,工作方式为脉冲方式。
STEB EA;中断总允许 STEB EXO;INT0中断允许
STEB PXO;设置INT0为高优先级中断 STEB IT0;设置INT0为脉冲方式 HERE:JMP $;等待中断
接收头采用与发射头配对的UCM40R,将超声波调制脉冲变为交变电压信号 ,经运算放大器IC1A和IC1B两级放大后加至IC2。IC2是带有锁定环的音频译码集成块LM567,内部的压控振荡器的中心频率f0=1/1.1R8C3,电容C4决定其锁定带宽。调节R8在发射的载频上,则LM567输入信号大于25mV,输出端8脚由高电平跃变为低电平,作为中断请求信号,送至单片机处理。
前方测距电路的输出端接单片机INT0端口,中断优先级最高,左、右测距电路的输出通过与门IC3A的输出接单片机INT1端口,同时单片机和P1.3和P1.4接到IC3A的输入端,中断源的识别由主程序查询来处理,中断优先级为先右后左。部分源程序如下: RECEIVE:PUSH PSW
PUST ACC CLR ACC
JNB P1.1,RIGHT;P1.1引脚为0,转至右测距电路中断服务程 序
JNB P1.2,LEFT;P1.2引脚为0,转至左测距电路中断服务程序 RETURN:SETB EXZ1;开外部中断INT1 POP ACC
____________________________________________________________________________________________
17
XX学院 物理系 201X届 电子信息工程专业 毕业设计
POP PSW RET1 4.1.3 数据读取和储存
为了得到发射信号与接收回波间的时间差,要读出T0计数器的计数值,然后存储在RAM中,而且每次发射周期的开始,需要对计数器清零,以备后续处理。
RECEIVE0:PUSH PSW PUSH ACC
CLR EXO;关外部中断0 MOV R7,THO;读取时间值 MOV R6,TL0 CLR C MOV A,R6
SUBB A,#0BBH;计算时间差 MOV 31H,A;存储结果 MOV A R7 SUBB A,#3CH MOV 30H,A
SETB EXO;开外部中断0 POP ACC POP PSW RETI
4.1.4 计算超声波传播时间
T0中读取出来的时间差数据并不能作为距离值直接显示输出,因为时间差值与实际的距离值之间转换公式为S=0.5*V*T。其中,V为声音在常温下的传播速度,T为发射信号到接收之间经历的时间,在这个部分中,信号处理包括计数值与距离值换算,二进制与十进制转换。
4.2 显示子程序和蜂鸣报警程序
考虑到提高系统资源的利用率,显示采用动态显示法实现。采用8155芯片
____________________________________________________________________________________________
18
XX学院 物理系 201X届 电子信息工程专业 毕业设计 作为单片机应用系统的扩展I/O口。8155的PA口作为LED的字形输出口,PC口作为LED的位选控制口,采用共阴显示接法。将计算好的距离数据设置显示缓冲区其实地址,显示缓冲区中被显示的字符的字形码的地址偏移量预先制表放入。流程图及部分源程序如图4-2所示。
外部中断入口
关闭外部中断
读取T0时间值
计算距离
结果送显示并报警提示
开外部中断
返回
图4-2 子程序流程图
N 返回 返回 蜂鸣报警 距离小于50cm? Y LED显示 取值测量 显示报警子程序 部分源程序:
DISP:MOV DPTR,#7FOOH;指向8155控制口 MOV A,#0DH ;8155初始化 MOVX@DPTR,A
MOV R7,#01H ;从右边第一位显示器开始 MOV R1,#30 ;显示缓冲区首地址送R1 LOOP:MOV DPTR,#7F03H;指向8155控制口地址 MOV A,R7 ;位控码初值 MOVX@DPTR,A
MOV DPTR,#7F01H ;指向8155段控制口地址
____________________________________________________________________________________________
19
XX学院 物理系 201X届 电子信息工程专业 毕业设计
MOV A,@R1 ;取待显示数据 MOV DPTR,#TAB ;取字形段码表首地址 MOVX A,@A+DPTR ;查表获取字形段码 INC R1 ;指针指向下一缓冲单元 MOV A,R7
JB A CC.5,RETURN ;判断是否到最高位?返回 RL A ;不到,左移一位 MOV R7,A
AJMP LOOP ;继续扫描 RETURN:RET
TAB:DB OCOH,OF9H,OA4H,OBOH,99H DB 92H,82H,OF8H,80H,90H DB 88H,83H,OC6H,OA1H,86H DB 8EH,OBFH,8CH,OFFH
5 结论
本文在分析了汽车业现状的基础上,提出了汽车防撞报警设计及其重要性。文中对超声波测距的原理和实现进行了详细论述,并详细介绍了AT89C51的内部结构以及各管脚的功能。在此理论知识基础上,本文利用AT89C51单片机对系统发射与接收、显示报警及复位等硬件电路进行了设计,并对设计电路作了分析。通过掌握了系统的工作流程,设计了该系统的主程序、显示子程序和蜂鸣报警程序。
文中对倒车防撞报警系统的设计可应用于汽车倒车等场合,用于提醒驾驶员在倒车时能有效的避开可能对倒车造成危害和障碍物和行人,具有较强的实用性。
但是,该系统的测量距离有限,只有在10-300cm距离情况下可表现比较明显的线性关系。另外,当测距障碍物时斜面或是其他复杂界面也会影响测量的准确性,以上不足需要进一步改进,相信未来随着科学的不断完善发展,倒车防撞系统可完美的实现在驾驶工作中。
____________________________________________________________________________________________
20