四川工程职业技术学院 单片机应用技术课程电子教案 第11讲 汇编语言程序设计案例2—障碍物检测 Copyright Http:llmcu. scetc. net
四川工程职业技术学院 单片机应用技术课程电子教案 Copyright © Http://mcu.scetc.net 第 11 讲 汇编语言程序设计案例2—障碍物检测
本讲主要内容: 11-1.智能小车障碍检测原理 112.智能小车障碍检测硬件实现 11-3.智能小车障碍检测软件实现 -4.课后思考和实验准备 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 2 Copyright © Http:// mcu.scetc.net 本讲主要内容: 11-1. 智能小车障碍检测原理 11-2. 智能小车障碍检测硬件实现 11-3. 智能小车障碍检测软件实现 11-4. 课后思考和实验准备
11-1.智能小车障碍检测原理 ◇智能小车障碍检测原理示意图 小车 障碍物 红外能信号 红外发射模块 红外接收块 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 3 Copyright © Http:// mcu.scetc.net 11-1. 智能小车障碍检测原理 智能小车障碍检测原理示意图 障碍物 红外发射模块 红外接收模块 小车 红外线信号
11-2.智能小车障碍检测硬件实现 ◇红外发射模块硬件电路 UIF 1A 104 38KHz载 GND 波信号 ◇红外接收模块电路 OUT CON 470 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 4 Copyright © Http:// mcu.scetc.net 11-2. 智能小车障碍检测硬件实现 红外发射模块硬件电路 红外接收模块电路 38KHz载 波信号
11-2.智能小车障碍检测硬件实现 ◇红外发射模块硬件电路分析 ◇电路中U1A和C2、R2组成振荡器,振荡频率约38KHz ◇U1D用于对D1是否发光进行控制,当U1D的输入端位高电平时,其 输岀端为低电平,DI可以导通,相反则D1不能导通,因此只要控制 UID输入端的状态就可以控制D是否发射红外线。 ◇R1的大小就可以调整D1发射的红外线的强度,可以改变红外传感器 的作用距离。 ◇红外接收模块电路分析 ◇U1是专用红外接收芯片,其3脚是输出端。当接收芯片收到38KHz的 红外信号后(接收模块的响应时间为160uS),其3脚输出低电平; 没接收到反射的红外信号时输出高电平。 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 5 Copyright © Http:// mcu.scetc.net 11-2. 智能小车障碍检测硬件实现 红外发射模块硬件电路分析 电路中U1A和C2、R2组成振荡器,振荡频率约38KHz。 U1D用于对D1是否发光进行控制,当U1D的输入端位高电平时,其 输出端为低电平,D1可以导通,相反则D1不能导通,因此只要控制 U1D输入端的状态就可以控制D1是否发射红外线。 R1的大小就可以调整D1发射的红外线的强度,可以改变红外传感器 的作用距离。 红外接收模块电路分析 U1是专用红外接收芯片,其3脚是输出端。当接收芯片收到38KHz的 红外信号后(接收模块的响应时间为160uS),其3脚输出低电平; 没接收到反射的红外信号时输出高电平
11-3.智能小车障碍检测软件实现 ◇软件思路 ◇在实际运用中,由于红外传感器容易受到外界的干扰,在软件设计 时,必须考虑相应的抗干扰措施。在该应用中采用以下的抗干扰方 法:发射模块发射一定数量的脉冲,接收端记录接收到的脉冲个数, 根据所记录的脉冲个数判断是否有障碍物。 ◇实现方法:发射模块连续发射10个脉冲,如果接收模块接收到的脉 冲数目大于6,则判定前方有障碍物。 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 6 Copyright © Http:// mcu.scetc.net 11-3. 智能小车障碍检测软件实现 软件思路 在实际运用中,由于红外传感器容易受到外界的干扰,在软件设计 时,必须考虑相应的抗干扰措施。在该应用中采用以下的抗干扰方 法:发射模块发射一定数量的脉冲,接收端记录接收到的脉冲个数, 根据所记录的脉冲个数判断是否有障碍物。 实现方法:发射模块连续发射10个脉冲,如果接收模块接收到的脉 冲数目大于6,则判定前方有障碍物
11-3.智能小车障碍检测软件实现 开始 ◇程序流程 定发送脉冲数 接收寄存器清0 起动发射模块 延时160us 是否接收到反射信号 脉冲数目加1 止发射 延时160us 是否发射10次 脉冲数是否>=6? 匚有障碍物 无障碍物 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 7 Copyright © Http:// mcu.scetc.net 11-3. 智能小车障碍检测软件实现 程序流程 是否接收到反射信号 起动发射模块 Y 开始 设定发送脉冲数 接收寄存器清0 延时160uS 脉冲数目加1 停止发射 延时160uS 是否发射 N 10次 脉冲数是否>=6? 有障碍物 无障碍物 Y N Y N
11-3.智能小车障碍检测软件实现 ◇单片机硬件资源分配 ◇单片机IO口分配 红外发射传感器发射控制信号 P3.2 红外接收传感器返回信号端: P13 ◇单片机寄存器分配 发送脉冲数目控制单元: RO 接收脉冲数目存放单元 RI 160uS延时程序寄存器: R2 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 8 Copyright © Http:// mcu.scetc.net 11-3. 智能小车障碍检测软件实现 单片机硬件资源分配 单片机I/O口分配 红外发射传感器发射控制信号: P3.2 红外接收传感器返回信号端: P1.3 单片机寄存器分配 发送脉冲数目控制单元: R0 接收脉冲数目存放单元: R1 160uS延时程序寄存器: R2
11-3.智能小车障碍检测软件实现 ◇程序关键点 ◇1次红外信号的检测 SETB P3.2 发射模块起动开始发射红外线 LCALL DELI6OUS ;延时160US JB P1.3.LOOP1 ;判断是否有信号,低电平有反射。 NC RI ;脉冲数目加1 LOOP1: CLR P3.2 发射停止 LCALL DELI6OUS ◇160uS延时程序 DELI6OUS: MOV R2#40 DELO: NOP NOP DNZ R2 DELO RET SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 9 Copyright © Http:// mcu.scetc.net 11-3. 智能小车障碍检测软件实现 程序关键点 1次红外信号的检测 SETB P3.2 ;发射模块起动,开始发射红外线 LCALL DEL160US ;延时160US JB P1.3,LOOP1 ;判断是否有信号,低电平有反射。 INC R1 ;脉冲数目加1 LOOP1: CLR P3.2 ;发射停止 LCALL DEL160US 160uS延时程序 DEL160US:MOV R2,#40 DEL0:NOP NOP DJNZ R2,DEL0 RET
11-3.智能小车障碍检测软件实现 ◇程序关键点 ◇发送10个脉冲的控制 MOV RO, #10 LOOPO: 发射一个脉冲,检测一次是否有反射 DNZ RO.LOOPO ◇利用脉冲数目进行的障碍物检测 CNE R1,#06,LOOP2;判断收到的脉冲个数是否大于等于6 LOOP2: JC LOOP3 MOV P0,#0F9H ;接收的脉冲大于等于6有障碍物显示“1” LOOP3: MOV P0,#0C0H ;接收的脉冲小于6,没有障碍物,显示“0” SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 10 Copyright © Http:// mcu.scetc.net 11-3. 智能小车障碍检测软件实现 程序关键点 发送10个脉冲的控制 MOV R0,#10 LOOP0: …… ;发射一个脉冲,检测一次是否有反射 DJNZ R0,LOOP0 …… 利用脉冲数目进行的障碍物检测 CJNE R1,#06,LOOP2 ;判断收到的脉冲个数是否大于等于6 LOOP2: JC LOOP3 MOV P0,#0F9H ;接收的脉冲大于等于6,有障碍物,显示“1” …… LOOP3: MOV P0,#0C0H ;接收的脉冲小于6,没有障碍物,显示“0” ……