四川工程职业技术学院
单片机应用技术课程电子教案
Copyright ? Http://mcu.scetc.net
第 讲 12
汇编语言程序设计案例 3— 障碍物方位检测
Copyright ? Http:// mcu.scetc.net 2 SiChuan Engineering Technical College-1959
本讲主要内容,
12-1,智能小车障碍物方位检测原理
12-2,智能小车障碍物方位检测硬件实现
12-3,智能小车障碍物方位检测软件实现
12-4,课后思考和实验准备
Copyright ? Http:// mcu.scetc.net 3 SiChuan Engineering Technical College-1959
12-1,智能小车障碍物方位检测原理
? 智能小车障碍检测原理示意图一
障碍物
红外线信号
红外发射模块
红外发射模块
接收模块
小车
Copyright ? Http:// mcu.scetc.net 4 SiChuan Engineering Technical College-1959
12-1,智能小车障碍物方位检测原理
? 智能小车障碍检测原理示意图二
障碍物
红外发射模块
红外发射模块
接收模块
小车
红外线信号
红外线信号
Copyright ? Http:// mcu.scetc.net 5 SiChuan Engineering Technical College-1959
12-1,智能小车障碍物方位检测原理
? 智能小车障碍检测原理示意图三
障碍物
红外发射模块
红外发射模块
接收模块
小车
红外线信号
红外线信号
Copyright ? Http:// mcu.scetc.net 6 SiChuan Engineering Technical College-1959
12-1,智能小车障碍物方位检测原理
? 智能小车障碍物方位检测原理分析
? 在小车的车头安装三个红外传感器,采用, 两边分时发射,中间接
收, 的检测方案(时分复用)。
? 确定障碍物方位过程中,采用以下的原则,
? 假如左边红外发射二极管工作时,检测到障碍物,而右边红外发射二极管工作时,
没有检测到障碍物,则确定障碍物存在于小车的左侧。
? 假如右边红外发射二极管工作时,检测到障碍物,而左边红外发射二极管工作时,
没有检测到障碍物,则确定障碍物存在于小车的右侧。
? 假如两边边红外发射二极管工作时,都检测到障碍物,则确定障碍物存在于小车
中间。
? 假如两边边红外发射二极管工作时,都没有检测到障碍物,则确定没有存在障碍
物,
Copyright ? Http:// mcu.scetc.net 7 SiChuan Engineering Technical College-1959
12-2.智能小车障碍物方位检测硬件实现
? 红外发射模块硬件电路
? 红外接收模块电路
38KHz载
波信号
Copyright ? Http:// mcu.scetc.net 8 SiChuan Engineering Technical College-1959
12-2.智能小车障碍物方位检测硬件实现
? 红外发射模块硬件电路分析
? 电路中 U1A和 C2,R2组成振荡器,振荡频率约 38KHz。
? U1D用于对 D1是否发光进行控制,当 U1D的输入端位高电平时,其
输出端为低电平,D1可以导通,相反则 D1不能导通,因此只要控制
U1D输入端的状态就可以控制 D1是否发射红外线。
? R1的大小就可以调整 D1发射的红外线的强度,可以改变红外传感器
的作用距离。
? 红外接收模块电路分析
? U1是专用红外接收芯片,其 3脚是输出端。当接收芯片收到 38KHz的
红外信号后(接收模块的响应时间为 160uS),其 3脚输出低电平;
没接收到反射的红外信号时输出高电平。
Copyright ? Http:// mcu.scetc.net 9 SiChuan Engineering Technical College-1959
12-3.智能小车障碍物方位检测软件实现
? 软件思路
由于在检测方案的设计中采用, 两边分时发射,中间接收,
的方式,所以在确定障碍物的过程中,必须包含以下 3个步骤,
? 首先,开启左边的红外发射二极管,进行左边的障碍物检测,记录
状态;
? 其次,开启右边的红外发射二极管,进行右边的障碍物检测,记录
状态;
? 最后,根据两次的状态来判断障碍物的方位。
Copyright ? Http:// mcu.scetc.net 10 SiChuan Engineering Technical College-1959
12-3.智能小车障碍物方位检测软件实现
? 程序流程
启动左发射模块
判断接收模块是否接收到信号;如果有反射,位单元 00H为 1,否则为 0
关闭左发射模块,启动右发射模块
判断障碍物的状态( 20H)
障碍物在中间 障碍物在左边 障碍物在右边 没有障碍物
判断接收模块是否接收到信号;如果有反射,位单元 01H为 1,否则为 0
01H 03H 00H 02H
Copyright ? Http:// mcu.scetc.net 11 SiChuan Engineering Technical College-1959
12-3.智能小车障碍物方位检测软件实现
? 单片机硬件资源分配
? 单片机 I/O口分配
左边红外发射传感器发射控制信号, P3.2
右边红外发射传感器发射控制信号, P2.4
红外接收传感器返回信号端, P1.3
? 单片机寄存器分配
发送脉冲数目控制单元, R0
接收脉冲数目存放单元, R1
160uS延时程序寄存器, R2
方位状态存储单元, 20H(位 00H代表左边,位 01H代表右边)
Copyright ? Http:// mcu.scetc.net 12 SiChuan Engineering Technical College-1959
12-3.智能小车障碍物方位检测软件实现
? 程序关键点
? 左边红外信号的检测程序
LEFT,CLR P3.2 ;关闭发射模块
MOV R0,#10 ;设定为发送 10个脉冲
MOV R1,#00 ;接收寄存器清零
LOOP0,SETB P3.2 ;发射模块起动
LCALL DEL160US ;延时 160US
JB P1.3,LOOP1 ;判断是否有信号, 当为低电平时有反射 。
INC R1 ;脉冲数目加 1
LOOP1,CLR P3.2 ;发射停止
LCALL DEL160US
DJNZ R0,LOOP0 ;判断是否 10个脉冲发送结束
CJNE R1,#06,LOOP2 ;判断收到的脉冲个数是否大于 6
LOOP2,JC LOOP3
SETB 00H ; 00H位为, 1”表示有障碍物
SJMP EXIT
LOOP3,CLR 00H ;脉冲小于 6,00H位为, 0”表示没有障碍物
EXIT,RET
Copyright ? Http:// mcu.scetc.net 13 SiChuan Engineering Technical College-1959
12-3.智能小车障碍物方位检测软件实现
? 程序关键点
? 右边红外信号的检测程序
RIGHT,CLR P2.4 ;关闭发射模块
MOV R0,#10 ;设定为发送 10个脉冲
MOV R1,#00 ;接收寄存器清零
LOP0,SETB P2.4 ;发射模块起动
LCALL DEL160US ;延时 160US
JB P1.3,LOP1 ;判断是否有信号, 当为低电平时有反射 。
INC R1 ;脉冲数目加 1
LOP1,CLR P2.4 ;发射停止
LCALL DEL160US
DJNZ R0,LOP0 ;判断是否 10个脉冲发送结束
CJNE R1,#06,LOP2 ;判断收到的脉冲个数是否大于 6
LOP2,JC LOP3
SETB 01H ; 01H位为, 1”表示有障碍物
SJMP EXIT0
LOP3,CLR 01H ;脉冲小于 6,01H位为, 0”表示没有障碍物
EXIT0,RET
Copyright ? Http:// mcu.scetc.net 14 SiChuan Engineering Technical College-1959
12-3,智能小车障碍检测软件实现
? 程序关键点
? 障碍物方位判决
DECIDE,MOV A,20H ;将障碍状态存储单元 20H→A
ANL A,#03H
CJNE A, #00H,RESULT1 ;判断结果是否为,0”。
MOV P0, # ;等于 00H,无障碍, 显示, 0”。
SJMP LOOP
RESULT1,CJNE A,#01H, RESULT2 ;判断结果是否为, 1”。
MOV P0, # ;等于 01H,左面有障碍, 显示, L”。
SJMP LOOP
RESULT2,CJNE A,#02H, RESULT3 ;判断结果是否为, 2”。
MOV P0, # ;等于 02H,右面有障碍, 显示, r”。
SJMP LOOP
RESULT3,MOV P0, # ;等于 03H,中间有障碍, 显示, A”。
LOOP,RET
Copyright ? Http:// mcu.scetc.net 15 SiChuan Engineering Technical College-1959
12-3,智能小车障碍检测软件实现
? 程序清单
ORG 0000H
MAIN,LCALL LEFT ;调用左边 障碍检测子程序
LCALL RIGHT ;调用右边 障碍检测子程序
LCALL DECIDE ;调用方位判决 子程序
LJMP MAIN
LEFT,……
RET
RIGHT,……
RET
DECIDE,……
RET
END
障碍物方位
检测程序结

需要小车实现
避障功能,如
何实现?
Copyright ? Http:// mcu.scetc.net 16 SiChuan Engineering Technical College-1959
12-4,课后思考和实验准备
? 课后思考
? 障碍物方位检测的软件流程;
? 障碍物方位的判断原则;
? 思考如何实现小车的避障运行。
? 实验准备
? 利用实验的电路图,找出实验 7中 I/O口与控制信号的连接;
? 完成实验指导书中实验 7的各项预习任务。