用51单片机 制作简易电子琴 的两个问题
答案:4 悬赏:0
解决时间 2021-02-12 12:39
- 提问者网友:萌萌小主
- 2021-02-11 13:53
用51单片机 制作简易电子琴 的两个问题
最佳答案
- 二级知识专家网友:萝莉姐姐鹿小北
- 2021-02-11 14:08
内部大循环只要把扫描程序等需要不停执行的程序写在
while(1)
{
。。。。。。(这里)
}
识别按键只要与按键相连的引脚检测到低电平即可
给你一个按键范例:
假如按键接到单片机P2^0引脚
sbit K = P2^0;
if(K == 0)
{
delay(5); //延时去抖
if(K == 0) //确定键按下
{
while(!K); //判断松手
。。。。。(功能函数)
}
}
while(1)
{
。。。。。。(这里)
}
识别按键只要与按键相连的引脚检测到低电平即可
给你一个按键范例:
假如按键接到单片机P2^0引脚
sbit K = P2^0;
if(K == 0)
{
delay(5); //延时去抖
if(K == 0) //确定键按下
{
while(!K); //判断松手
。。。。。(功能函数)
}
}
全部回答
- 1楼网友:孤伤未赏
- 2021-02-11 17:06
对于C语言的,单片机内部使用while(1)这个语句实现不断地循环,如果是用汇编来写的话,我记得有伪指令可以实现跳转功能,这跳转功能就能实现不断地循环,汇编还有什么条件转移啊,无条件转移啊,都可实现循环
识别按键按下,对于C语言,可以使用循环语句加上键盘扫描程序来实现,就是不断地扫描端口当前的状态,一旦扫描端口信号被改变即立刻延时一段时间,然后执行一个指定的语句,这个语句可以实现你想要的放出声音或是其他的功能。
语句执行完后,即再次开始扫描,不断地循环
- 2楼网友:請叫我丶偏執狂
- 2021-02-11 16:02
1,单片机的指令系统执行以下指令就可识别按键被按下,原理就是判别连接按键的端口是否发生了电平变化.用 JNB P1.0,TO_OFF 就可判定如果P1.0脚为低电平就转去TO_OFF那执行.
2,循环是单片机执行指令系统中的转移指令来达到循环.可以用JMP无条件的跳转来循环,和如上题那样有条件判断后的循环.当然也可以利用定时器产生的定时中断来不断的执行中断程序来达到循环.
- 3楼网友:湫止没有不同
- 2021-02-11 15:35
这玩意两种实现方式吧。
一种简单点。
你本来就是通过频率驱动喇叭, 那你干脆驱动3个喇叭算了,发几个音就驱动几个。如果是3个和音,那就同时驱动三个。虽然傻逼,但是这个很简单,很容易做。
另外复杂点就是,你首先要能分析出来这三个音的和音的构成。由于是喇叭驱动的。所以音色可以不考虑,
那么就是音调,频率的事儿了。 这个在不同的频域上,混合叠加。产生新的波形。如果你能算出这个波形,ok,你可以合成这个
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯