📄 忙音检测c51.txt
字号:
电话遥控机,忙音检测是这样做的,实际使用效果十分理想,语音不会造成误操作。
方案用一个NE567解出450Hz单音,NE567的8脚通过一个简单的低通进入C51的一个IO,这里用的是P1.6。在主程序中循环检测P1.6,低电平跳转到下面的子程序。
mang yin jian ce:
lcall yanshi150 ;先延时150ms,躲过不稳定的下降沿
jb p1.6, fanhui ;p1.6电平低继续
lcall yanshi350 ;延时350ms
jnb p1.6, fanhui ;p1.6电平高继续
lcall yanshi350 ;延时350ms
jb p1.6, fanhui ;p1.6电平低继续
lcall yanshi350 ;延时350ms
jnb p1.6, fanhui ;p1.6电平高继续
lcall yanshi350 ;延时350ms
jb p1.6, fanhui ;p1.6电平低继续
lcall yanshi350 ;延时350ms
jnb p1.6, fanhui ;p1.6电平高继续
lcall yanshi350 ;延时350ms
jb p1.6, fanhui ;p1.6电平低继续
lcall yanshi350 ;延时350ms
jnb p1.6, fanhui ;p1.6电平高继续
lcall yanshi350 ;延时350ms
jb p1.6, fanhui ;p1.6电平低继续
lcall yanshi350 ;延时350ms
jnb p1.6, fanhui ;p1.6电平高继续
lcall yanshi350 ;延时350ms
jb p1.6, fanhui ;p1.6电平低继续
lcall yanshi350 ;延时350ms
jnb p1.6, fanhui ;p1.6电平高继续
lcall yanshi350 ;延时350ms
jb p1.6, fanhui ;p1.6电平低继续
lcall yanshi350 ;延时350ms
jnb p1.6, fanhui ;p1.6电平高继续
lcall yanshi350 ;延时350ms
jb p1.6, fanhui ;p1.6电平低继续
@#¥%……&* ;这里安排一个跳转语句,转到挂机处理程序
fanhui:
ret ;忙音次数不够返回继续检测
yanshi150:延时程序自己写,150ms左右
yanshi350:这个350ms的延时要十分精确
这段程序的思路是,NE567的8脚出现低电平后,延时150ms,将下一个检测点落在忙音的中部,然后350ms检测一次,一次检测高电平,一次检测低电平,有一次检测错误,就跳出子程序,判为非忙音。只有满足8次循环的条件,才判为是忙音,这样做可靠性极高
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -