13-1.演示范例——声控小车 ◇拍手动作的响应—硬件接口 ◇声音检测电路的工作原理—灵敏度调节 R20 100k GND U9A U9B R25 5K 2K CAP CON3 10uR191N414810 LM358 K MICROPHONEZ ◇调节RP1电位器可以调节声音检测电路的灵敏度,环境噪声比较大时,应降低灵 敏度,在环境噪声较小时可以提高灵敏度。 SiChuan Engineering Technical Colledge-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical Colledge-1959 6 Copyright © Http:// mcu.scetc.net 13-1. 演示范例——声控小车 拍手动作的响应——硬件接口 声音检测电路的工作原理——灵敏度调节 调节RP1电位器可以调节声音检测电路的灵敏度,环境噪声比较大时,应降低灵 敏度,在环境噪声较小时可以提高灵敏度。 5 6 7 4 8 U9B LM358 4 8 2 3 1 U9A LM358 R25 2K R23 2K R20 100k C29 10u R24 2K D11 1N4148 C28 10u VCC R21 5K R18 10k GND R19 10k R22 5k R15 RES2 GND VCC C10 CAP MK1 MICROPHONE2 DI4 1 2 3 JP17 CON3 RP1 POT2 VCC
13-1.演示范例——声控小车 ◇拍手动作的响应一程序设计 ◇方案一:根据硬件特点,当有声音时,单片机的P3出现 故可在程 序中通过查询P32的状态得知是否拍手。可在顺 无法对外部事件 变询 P32的状态,查询部分程序如下: 实现实时响应。 JBP3.2EXT;若无拍手则返回执行 ◇方案一存在的问题 由于查询是在每个动作结束后进行,可能会存在如下问题: ◇在小车每种运动的5秒钟内,无法查询到拍手的动作; 当5秒钟运动结束后可能拍手的动作已过去了,查不到了,没能响应 ◇反复查询和判断,使PU利用率降低; 没有提高资源 利用率,实现 资源共享。 SiChuan Engineering Technical Colledge-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical Colledge-1959 7 Copyright © Http:// mcu.scetc.net 13-1. 演示范例——声控小车 拍手动作的响应——程序设计 方案一:根据硬件特点,当有声音时,单片机的P3.2出现低电平,故可在程 序中通过查询P3.2的状态得知是否拍手。可在顺时针运动一段时间后查询 P3.2的状态,查询部分程序如下: JB P3.2 EXIT ;若无拍手则返回执行原来运动状态 方案一存在的问题: 由于查询是在每个动作结束后进行,可能会存在如下问题: 在小车每种运动的5秒钟内,无法查询到拍手的动作; 当5秒钟运动结束后可能拍手的动作已过去了,查不到了,没能响应; 反复查询和判断,使CPU利用率降低; 没有提高资源 利用率,实现 资源共享。 无法对外部事件 实现实时响应
13-1.演示范例——声控小车 ◇拍手动作的响应一程序设计 ◇方案二:只有当拍手时才中断小车当前运动,转去处理拍手动作, 没有拍手动作时保持原有运动状~3 ◇方案二基本思路: ◇无拍手动作时,程序正常执行原有功能; ◇当拍手时,“通知”0PU法去处理; 这样可以提高cPU 令暂停目前的工作,根据拍手次数执行相应的操作的利用率,并对拍 ◇动作处理完毕后,回到暂停前的状态继续执行原 手动作作出及时响 SiChuan Engineering Technical Colledge-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical Colledge-1959 8 Copyright © Http:// mcu.scetc.net 13-1. 演示范例——声控小车 拍手动作的响应——程序设计 方案二:只有当拍手时才中断小车当前运动,转去处理拍手动作, 没有拍手动作时保持原有运动状态。 方案二基本思路: 无拍手动作时,程序正常执行原有功能; 当拍手时, “通知”CPU去处理; CPU暂停目前的工作,根据拍手次数执行相应的操作; 动作处理完毕后,回到暂停前的状态继续执行原有功能。 这样可以提高CPU 的利用率,并对拍 手动作作出及时响 应
13-2.中断的概念 ◇CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处 理(中断发生或中断请求); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断 服务); ◇待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继 续处理事件A(中断返回)。 事件A 中断是 中断 什么? 事件B 事件B的 中断请求→中断响应→中断服务→中断返回 处理过程 SiChuan Engineering Technical Colledge-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical Colledge-1959 9 Copyright © Http:// mcu.scetc.net 13-2. 中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处 理(中断发生或中断请求); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断 服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继 续处理事件A(中断返回)。 中断是 什么? 中断请求→中断响应→中断服务→中断返回 中 断 事件B的 处理过程 事件A 事件B