电子小制作:有声倒计时装置

 

电子小制作:有声倒计时装置

 

 

功能是:用一个按钮来设定,一个开关来控制总电源。用2节普通5号电池,3V工作。按钮功能是在10分钟以内每按一次加30秒,在10分钟以上每按一次加1分钟。长按加5分钟。如果当前正在播放声音就中断声音。按后发出BEEP的声音。停止按后5秒开始倒计时,每到整分钟时发声播报分钟数,每到半分钟时发出提示BEEP和发出半分钟。计时到0时播放钢琴曲。

 

声音数据保存在SD卡中。不采用文件系统,全都直接采用扇区读写法。采用Stc12LE5A60S2,它有1280字节内存。基本设计是这样的:开2个数组,每个都是512字节,作为播音缓冲区。其它的内存作为一般运行时用途。运行时一个状态机负责产生pwm驱动喇叭进行播放,另一个状态机负责从SD卡中取数据。2者一个是消费者,一个是生产者。在消费者播放完一个数组后,消费者就开始播放第2个数组,而此时生产者就同时负责填充第1个数组,这样循环往复,形成连续连贯播放的效果。


 

整个程序只利用了1个中断。用timer0设定到8K的速度来播放,但每秒的倒计时就需要一个状态机来模拟一个软定时器来完成。

 

另外还需要一个状态机来下发发音任务。内部的SD卡中只记录了0至9每个字的发音,倒计时到了需要发音时,需要根据这个数字来组合多个发音文件顺序播放,也就是说,一次发音事件对应多个发音任务。所以这个发音任务状态机是双驱动的,一方面在main中驱动,让它能完成所有的发音任务,另一方面在倒计时事件中驱动,让它能启动首个发音任务。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值