在编写单片机的关于电子琴的程序时,对于按键的一个问题。

2019-07-15 12:23发布

现在想编一个电子琴的程序,三个按键形成一个组为中高低音,七个按键代表七个音,怎样做到按下中高低音中的一个后,释放按键,再按七个按键中的一个,可以发出预期声音?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
however1241
1楼-- · 2019-07-15 17:12
 精彩回答 2  元偷偷看……
blust
2楼-- · 2019-07-15 17:45
我的理解是,不同的声音应该是由不同的频率触发的。高中低三个音域可以设三个数组,每个数组包含7个预设频率值;按下高中低三个键的其中一个时,定下要查询的是哪一个数组,再按下七个键中的一个时,去查询该数组中对应的频率,输出到发音系统,进行发音。
沫羽世飞
3楼-- · 2019-07-15 19:05
现在编好程序之后遇到一个问题就是,要同时按下中高低音中的一个和七个音符中的一个,然后释放按键后才能让蜂鸣器发出声音,可是现在想让按下的同时就发出声音,要怎么做到呢?
blust
4楼-- · 2019-07-15 22:29
你调整下判断按键的机制,不要用一般的按键判断办法,因为一般情况下判断按键都是在按键按下后松掉的瞬间判断有效。你可以判断IO口电平,比如说,如果按键松开时是高电平,按下时是低电平,你就判断IO口为低电平时蜂鸣器发音,为高电平时不发音,这样就行了。
今夜雨夹雪
5楼-- · 2019-07-15 23:32
不同音调其实就是用定时器做的不同频率的声音,感觉在软件中嵌套一下,先识别高中低音,然后在识别按键,这样再调用你数组中的不同频率对应的数值。
今夜雨夹雪
6楼-- · 2019-07-16 05:14
 精彩回答 2  元偷偷看……

一周热门 更多>