苦逼大学生求助——期末设计题目声控电子锁

2019-07-15 23:53发布

本帖最后由 Bloody_Empire 于 2013-6-29 17:42 编辑

题目要求的功能是对着话筒拍掌,1代表拍掌,0代表暂停。设定的密码本来是1101(为了妥协现实降低难度改成

1111了),密码保存在数组key[N]
声传模块是买来的,有声音则输出低电平,无声音高电平,输出接在INT1也就是P3^3口。INT1根据老师的提议采

用下降沿触发,一旦有声音,则P3^3接收到下降沿进入中断,flag置1,然后flag写入temp,i++
为了方便采集掌声采用了时钟脉冲,通过P0^0口接一个黄灯表示,黄灯每1秒闪烁一次,用定时器0实现。P0^0低

电平时黄灯亮,黄灯亮时,检测有无脉冲
拍掌的序列暂时保存在数组temp[N],拍4次掌后开始比较key和temp两数组,一旦发现两者有不同则退出循环,错

误次数wrong+1,当wrong=3时报警(蜂鸣器响,红灯闪),如果拍对了,则绿灯亮红灯灭

现在的问题是
1.拍掌后因为有抖动的关系会产生多次电平跳变,我们也用示波器测过,虽然大致的波形很理想,但还是会有细

微的抖动。而这抖动会引起多次中断传回多个flag值。我们只学过如何去除按键的抖动并且是与中断程序无关的

情况下。但这次抖动关系到中断问题就很棘手了。网上查到可以接一个电容来去抖,于是焊了个电容上去,但也

没用
2.无论是proteus仿真还是硬件仿真,无论怎么乱拍掌都不会报警,拍对了绿灯也不亮。我看程序都看晕了找不出

哪里有错误(proteus里用一个按键来代替声传模块
3.硬件仿真时遇到个更坑爹的。声传模块上本来有个开关指示灯,接收到有声音就会亮一下。现在发现那灯竟然

会随着黄灯的节奏一起闪。也就是说黄灯每闪一次,声传就相应送一个低电平,就会触发中断,这还让人怎么做

。。。。。这是板子焊的不好的缘故吗?

后天就是死线了啊TwT这关系到期末成绩啊啊啊我们整个组都焦头烂额,论坛里的高手大大们帮帮这几个可怜的大

学生吧_(:з」∠)_

程序、仿真图还有卖家给的声传模块介绍都在压缩包里




电子实践-电子锁.rar 下载积分: 积分 -1 分
625.06 KB, 下载次数: 53, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。