c语言程序设计分段定时器,单片机C语言程序设计:按键控制定时器选播多段音乐...

//主程序

void main()

{

P2=0xc0;

SPK=0;

TMOD=0x00;

IE=0x83;

IT0=1;

IP=0x02;

while(1)

{

//T0 方式 0

while(K1==1);  //未按键等待

while(K1==0);  //等待释放

TR0=1;    //开始播放

Tone_Index=0;  //从第 0 个音符开始

//播放过程中按下 K1 可提前停止播放(K1=0)。

//若切换音乐段会触发外部中断,导致 TR0=0,播放也会停止

while(Song[Song_Index][Tone_Index]!=-1&&K1==1&&TR0==1)

{

DelayMS(300*Len[Song_Index][Tone_Index]);  播放延时(节拍)

Tone_Index++;    //当前音乐段的下一音符索引

}

TR0=0;   //停止播放

while(K1==0); //若提前停止播放,按键未释放时等待

}

}

4335b30e10d53b91f4787c0f07a75783.png

c2c9ed493cd281aa86d8a6f5178c4c01.gif [1] [2] 610626052e95c7fbe3d254abc769d9ad.gif

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值