16个按键,一个按键一个音。按下去就响,松开就不响。
伪代码:
c while (1)
{
key = get_key(); //获取按键
if (key)
{
key=map[key-1];
CCR0 = SYSCLK / fre_st[key - 1] / 2; /*选一个频率 */
while (get_key())
; //等待按键松开
TACTL = TASSEL_2 + MC_0; /* 关闭中断 蜂鸣器不发出声音 */
//P2OUT |= BIT2;
P2OUT &= ~BIT2;
}
}
}
/* Timer A0 interrupt service routine */
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A(void)
{
P2OUT ^= BIT2; //取反蜂鸣器 发声
}
csharphttps://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!