您现在所在的是:

单片机论坛

回帖:1个,阅读:950 [上一页] [1] [下一页]
912
sfmcu
文章数:44
年度积分:50
历史总积分:912
注册时间:2006/8/22
发站内信
08年优秀博客奖
发表于:2010/2/28 10:08:02
#0楼
 
一、 实验简介:
本程序主要通过话筒对声音信号进行识别,由于本电路有效的去除杂波,所以仅能对响度较大的声音进行识别(例:拍手声)。像正常的说话声对本电路虑除,不会产生信息的输入。话筒识别的加入,为我们建立了声控平台。
二、 实验原理图:
[URL=http://www.sfmcu.com/bbs/upfile/2010_2/201021510335326933.jpg]
图
700){this.width=700;} border=0>[/URL]
三、 实现代码:
//============================================================ === //
//  开发日期: 2009/01/27                       //
//  修改日期:                                                          //
//  程序作者: guojun    益芯科技                                //
//  程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用.     //
//  特别声明: 此程序可作研究之用,但引用,转载,使用请注明出处.             //
//================================================================//
#include                  //包含51单片机相关头文件
sbit leftled=p2^0;                   //定义前方左侧指示灯端口
sbit rightled=p0^7;                  //定义前方右侧指示灯端口
sbit b1=p0^4;                       //定义话筒输入端口
void delay()                        //定义去除杂音延时子程序
{ unsigned int delaytime=1000;       //定义去除杂音变量
 while(delaytime--);               //延时循环开始
 return;
}
void main()                         //主程序入口
{
leftled=0;                         //前方左侧指示灯亮
rightled=0;                        //前方右侧批示灯亮
while(1)                           //程序主循环
{
 if(0==b1)                         //判断是否有声音输入
 {
  while(0==b1);                    //等待声音信号结束
  delay();                         //去除多余杂音
  leftled=!leftled;                //前方左侧指示灯取反
  rightled=!rightled;              //前方右侧指示灯取反
 }
}
四、 运行效果:
程序运行效果:本程序开机后,前方两侧的指示灯点亮,拍一下手后,前方指示灯关闭。再一次进行拍手,指示灯又一次被点亮。
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=110866&Name=sfmcu
匿名用户
文章数:N/A
年度积分:0
历史总积分:0
注册时间:2010/3/2
发站内信
发表于:2010/3/2 7:26:12
#1楼
该用户被锁定,回复内容不予显示!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003