单片机C语言程序设计:演奏音阶
时间:09-04 14:01 阅读:11002次
*温馨提示:点击图片可以放大观看高清大图
简介:名称:演奏音阶
说明:本例使用定时器演奏一段音阶,播放由 K1 控制。
/*名称:演奏音阶
说明:本例使用定时器演奏一段音
阶,播放由K1控制。
*/
#include<reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitK1=P1^0;
sbitSPK=P3^4;
uinti=0;//音符索引
//14个音符放在方式2下的定时寄存器
(TH0,TL0)
ucharcodeHI_LIST[]={0,226,229,232,233,236,238,240,241,242,244,245,246,247,248};
ucharcodeLO_LIST[]={0,4,13,10,20,3,8,6,2,23,5,26,1,4,3};
//定时器0中断函数
voidT0_INT()interrupt1
{
TL0=LO_LIST[i];
TH0=HI_LIST[i];
SPK=~SPK;
}
//延时
voidDelayMS(uintms)
{
uchart;
while(ms--)for(t=0;t<120;t++);
}
//主程序
voidmain()
{
TMOD=0x00;//T0方式0
IE=0x82;
SPK=0;
while(1)
{
while(K1==1);//未按键等待
while(K1==0);//等待释放
for(i=1;i<15;i++)
{
TR0=1;//播放一个音符
DelayMS(500);//播放延时
TR0=0;
}DelayMS(50);
}
}