微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 在编写单片机的关于电子琴的程序时,对于按键的一个问题。

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

时间:10-02 整理:3721RD 点击:
现在想编一个电子琴的程序,三个按键形成一个组为中高低音,七个按键代表七个音,怎样做到按下中高低音中的一个后,释放按键,再按七个按键中的一个,可以发出预期声音?

解决之后  来个分享贴

我的理解是,不同的声音应该是由不同的频率触发的。高中低三个音域可以设三个数组,每个数组包含7个预设频率值;按下高中低三个键的其中一个时,定下要查询的是哪一个数组,再按下七个键中的一个时,去查询该数组中对应的频率,输出到发音系统,进行发音。

现在编好程序之后遇到一个问题就是,要同时按下中高低音中的一个和七个音符中的一个,然后释放按键后才能让蜂鸣器发出声音,可是现在想让按下的同时就发出声音,要怎么做到呢?

你调整下判断按键的机制,不要用一般的按键判断办法,因为一般情况下判断按键都是在按键按下后松掉的瞬间判断有效。你可以判断IO口电平,比如说,如果按键松开时是高电平,按下时是低电平,你就判断IO口为低电平时蜂鸣器发音,为高电平时不发音,这样就行了。

不同音调其实就是用定时器做的不同频率的声音,感觉在软件中嵌套一下,先识别高中低音,然后在识别按键,这样再调用你数组中的不同频率对应的数值。

不同音调其实就是用定时器做的不同频率的声音,感觉在软件中嵌套一下,先识别高中低音,然后在识别按键,这样再调用你数组中的不同频率对应的数值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top