#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
// }
}