| 网站首页 | 精品文章 | 下载中心 | 本站教程 | 邮购须知 | 电子商城 | 网站简介 | 常见问题集锦 | 
您现在的位置: 新启点单片机 >> 本站教程 >> 原创教程 >> 本站教程正文 用户登录 新用户注册
V2.0教程四:蜂鸣器演奏音乐          【字体:
V2.0教程四:蜂鸣器演奏音乐
作者:江在流    本站教程来源:本站原创    点击数:    更新时间:2006-7-2

/*  播放两首音乐(C语言)

*********************************
测试通过*/

#include<AT89X51.h>

void Music(unsigned char number);
void delay10ms(unsigned char time);
void delay50us(unsigned char time);
unsigned char code SOUNDLONG[];
unsigned char code SOUNDTONE[];
 
void main()
{
 while(1)
 {
  Music(1);  //生日快乐
  delay10ms(250);
  delay10ms(250);
  Music(2);  //三轮车
  delay10ms(250);
  delay10ms(250);
 }
}

void Music(unsigned char number)
{
 unsigned int k,n;
 unsigned int SoundLong,SoundTone;
 unsigned int i,j,m;

 for(k=0;k<number-1;k++)
 {
  while(SOUNDLONG[i] !=0){i++;}
  i++;
  if(i>=57) i=0;
 }
 for(k=0;k<number-1;k++)
 {
  while(SOUNDTONE[j] !=0){j++;}
  j++;
  if(j>=57) j=0;
 }

 do
 {
  if(i>=57) i=0;
  if(j>=57) j=0;
  SoundLong=SOUNDLONG[i];
  SoundTone=SOUNDTONE[j];
  i++;
  j++;
 
  for(n=0;n<SoundLong;n++)
  {
   for(k=0;k<12;k++)
   {
    P3_4=0;
    for(m=0;m<SoundTone/2;m++)
     ;
    P3_4=1;
    for(m=0;m<SoundTone/2;m++)
     ;
   }
  }
  delay50us(6);
 }while((SOUNDLONG[i] !=0) || (SOUNDTONE[j] !=0));
}

//延时程序
void delay10ms(unsigned char time)
{
 unsigned char a,b,c;
 for(a=0;a<time;a++)
  for(b=0;b<10;b++)
   for(c=0;c<120;c++)
   ;
}
void delay50us(unsigned char time)
{
 unsigned char a,b;
 for(a=0;a<time;a++)
  for(b=0;b<6;b++)
   ;
}

unsigned char code SOUNDLONG[]=
 {9,3,12,12,12,24,
  9,3,12,12,12,24,
  9,3,12,12,12,12,12,
  9,3,12,12,12,24,
  0, //生日快乐end
  6,6,9,3,6,6,12,
  6,6,6,6,6,6,12,
  6,6,9,3,6,6,9,3,
  6,3,3,6,3,3,6,6,9,
  0 //三轮车end
 };

unsigned char code SOUNDTONE[]=
{
212,212,190,212,159,169,
212,212,190,212,142,159,
212,212,106,126,159,169,190,
119,119,126,159,142,159,
0, //生日快乐end
239,239,212,189,159,159,189,
159,159,142,126,120,120,159,
120,120,142,159,189,142,159,189,
239,212,189,159,142,159,189,212,239,
0 //三轮车end
};

 

本站教程录入:江在流    责任编辑:江在流 
  • 上一篇本站教程:

  • 下一篇本站教程:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关本站教程
    没有相关本站教程
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)