#include "sys.h"	
#include "delay.h"	
#include "led.h" 
#include "beep.h" 
 


int pyte=1000;
int blank=150;
void duo(int ms)
{
int time=ms*1000/3900;
while(time>0)
{
	BEEP=1;	
	delay_us(100);
	BEEP=0;
	delay_us(3800);
	time--;
}
}
void re(int ms)
{
int time=ms*1000/3500;
while(time>0)
{
	BEEP=1;	
	delay_us(100);
	BEEP=0;
	delay_us(3400);
	time--;

}
}
void mi(int ms)
{
int time=ms*1000/3133;
while(time>0)
{
	BEEP=1;	
	delay_us(100);
	BEEP=0;
	delay_us(3033);
	time--;
}
}
void fa(int ms)
{
int time=ms*1000/2963;
while(time>0)
{
	BEEP=1;	
	delay_us(100);
	BEEP=0;
	delay_us(2863);
	time--;
}
}
void so(int ms)
{
int time=ms*1000/2651;
while(time>0)
{
	BEEP=1;	
	delay_us(100);
	BEEP=0;
	delay_us(2551);
	time--;
}
}
void la(int ms)
{
int time=ms*1000/2372;
while(time>0)
{
	BEEP=1;	
	delay_us(100);
	BEEP=0;
	delay_us(2272);
	time--;
}
}
void si(int ms)
{
int time=ms*1000/2125;
while(time>0)
{
	BEEP=1;	
	delay_us(100);
	BEEP=0;
	delay_us(2025);
	time--;
}
}
void bfm(int note)
{
switch(note){
    case 1:
       duo(pyte);
       break; 
    case 2:
       re(pyte);
       break; 
    case 3:
       duo(pyte);
       break; 
    case 4:
       re(pyte);
       break; 
		case 5:
       duo(pyte);
       break; 
    case 6:
       re(pyte);
       break; 
		case 7:
       duo(pyte);
       break; 

   
    default : 
       duo(pyte);
}
}

 int main(void)
 {	
	char song[]="115566544332215544332554433211556654433221";
	 int i=0;
	 
	 
	delay_init();	    	
	LED_Init();		  	 	
	BEEP_Init();         	
	
	 BEEP=0;
duo(1000);
	 re(1000);
	 mi(1000);
	 bfm(4);
	 bfm(5);
	 bfm(6);
	 
	 while (song[i] != '\0') {
        int value = song[i] - '0';
        bfm(value);
		 BEEP=0;
		 delay_ms(blank);
        i++;
    }

//	while(1)
//	{
//		
//		LED0=0;
//		BEEP=1;		  
//		delay_ms(1000);
//		LED0=1;	  
//		BEEP=0;  
//		delay_ms(1000);
//	}
 }

#include "sys.h"	
#include "delay.h"	
#include "led.h" 
#include "beep.h" 
 
// 以国际标准音A-la-440HZ为准:do的频率为261.
// 6HZ,re的频率为293.6HZ,mi的频率为329.6HZ,
// fa的频率为349.2HZ,sol的频率为392HZ,la的频率为440HZ,si的频率为493.8HZ

float highbeepratio=0.5;

int pyte=1000;
int blank=150;

void duo(int ms)
{
int t=1000000/261.6;   //3822us
int time=(ms*1000)/t;
while(time>0)
{
		
	int beep_on=highbeepratio*t;
  int beep_off=t-highbeepratio*t;
	BEEP=1;
	delay_us(beep_on);
	BEEP=0;
	delay_us(beep_off);
	time--;
}
}
void re(int ms)
{
int t=1000000/293.6;   //3822us
int time=(ms*1000)/t;
while(time>0)
{
		
	int beep_on=highbeepratio*t;
    int beep_off=t-highbeepratio*t;
	BEEP=1;
	delay_us(beep_on);
	BEEP=0;
	delay_us(beep_off);
	time--;
}
}
void mi(int ms)
{
int t=1000000/329.6;   //3822us
int time=(ms*1000)/t;
while(time>0)
{
		
	int beep_on=highbeepratio*t;
    int beep_off=t-highbeepratio*t;
	BEEP=1;
	delay_us(beep_on);
	BEEP=0;
	delay_us(beep_off);
	time--;
}
}
void fa(int ms)
{
int t=1000000/349.2;   //3822us
int time=(ms*1000)/t;
while(time>0)
{
		
	int beep_on=highbeepratio*t;
    int beep_off=t-highbeepratio*t;
	BEEP=1;
	delay_us(beep_on);
	BEEP=0;
	delay_us(beep_off);
	time--;
}
}
void so(int ms)
{
int t=1000000/392;   //3822us
int time=(ms*1000)/t;
while(time>0)
{
		
	int beep_on=highbeepratio*t;
    int beep_off=t-highbeepratio*t;
	BEEP=1;
	delay_us(beep_on);
	BEEP=0;
	delay_us(beep_off);
	time--;
}
}
void la(int ms)
{
int t=1000000/440;   //3822us
int time=(ms*1000)/t;
while(time>0)
{
		
	int beep_on=highbeepratio*t;
    int beep_off=t-highbeepratio*t;
	BEEP=1;
	delay_us(beep_on);
	BEEP=0;
	delay_us(beep_off);
	time--;
}
}
void si(int ms)
{
int t=1000000/493.8;   //3822us
int time=(ms*1000)/t;
while(time>0)
{
		
	int beep_on=highbeepratio*t;
    int beep_off=t-highbeepratio*t;
	BEEP=1;
	delay_us(beep_on);
	BEEP=0;
	delay_us(beep_off);
	time--;
}
}
void bfm(int note)
{
switch(note){
    case 1:
       duo(pyte);
       break; 
    case 2:
       re(pyte);
       break; 
    case 3:
       duo(pyte);
       break; 
    case 4:
       re(pyte);
       break; 
		case 5:
       duo(pyte);
       break; 
    case 6:
       re(pyte);
       break; 
		case 7:
       duo(pyte);
       break; 

   
    default : 
       duo(pyte);
}
}

 int main(void)
 {	
	char song[]="115566544332215544332554433211556654433221";
	 int i=0;
	 
	 
	delay_init();	    	
	LED_Init();		  	 	
	BEEP_Init();         	
	
	 BEEP=0;
duo(1000);
	 re(1000);
	 mi(1000);
	 bfm(4);
	 bfm(5);
	 bfm(6);
	 
	 while (song[i] != '\0') {
        int value = song[i] - '0';
        bfm(value);
		 BEEP=0;
		 delay_ms(blank);
        i++;
    }

//	while(1)
//	{
//		
//		LED0=0;
//		BEEP=1;		  
//		delay_ms(1000);//锟斤拷时300ms
//		LED0=1;	  
//		BEEP=0;  
//		delay_ms(1000);//锟斤拷时300ms
//	}
 }

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐