添加实验蜂鸣器唱小星星
This commit is contained in:
parent
27b4a51317
commit
c5e448b3a6
44
src/main.c
44
src/main.c
@ -14,12 +14,31 @@
|
|||||||
#include "led.h"
|
#include "led.h"
|
||||||
#include "time0.h"
|
#include "time0.h"
|
||||||
|
|
||||||
|
__code u16 toneH[10]={ //音调对应的定时器计数值的高8位 第一个音为低音7
|
||||||
|
0XF8,0XF8,0XF9,0XFA,0XFA,0XFB,0XFB,0XFC,0XFC,0XFC
|
||||||
|
};
|
||||||
|
__code u16 toneL[10]={ //音调对应的定时器计数值的低8位
|
||||||
|
0X18,0X8C,0X6B,0X15,0X67,0X04,0X90,0X0C,0X44,0XAC
|
||||||
|
};
|
||||||
|
|
||||||
|
__code u16 soundtone[42]={
|
||||||
|
1,1,5,5,6,6,5,4,4,3,3,2,2,1,
|
||||||
|
5,5,4,4,3,3,2,5,5,4,4,3,3,2,
|
||||||
|
1,1,5,5,6,6,5,4,4,3,3,2,2,1
|
||||||
|
};
|
||||||
|
|
||||||
|
__code u16 soundlong[42]={
|
||||||
|
1,1,1,1,1,1,2,1,1,1,1,1,1,2,
|
||||||
|
1,1,1,1,1,1,2,1,1,1,1,1,1,2,
|
||||||
|
1,1,1,1,1,1,2,1,1,1,1,1,1,2
|
||||||
|
};
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* 函 数 名 : main
|
* 函 数 名 : main
|
||||||
* 函数功能 : 主函数
|
* 函数功能 : 主函数
|
||||||
* 输 入 : 无
|
* 输 入 : 无
|
||||||
* 输 出 : 无
|
* 输 出 : 无
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
u16 tH, tL;
|
||||||
void main(void)
|
void main(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -39,10 +58,22 @@ void main(void)
|
|||||||
// i = rotate_left(i,1);
|
// i = rotate_left(i,1);
|
||||||
// delay_ms(1000);
|
// delay_ms(1000);
|
||||||
// 实验三:蜂鸣器
|
// 实验三:蜂鸣器
|
||||||
BEEP=!BEEP;
|
// BEEP=!BEEP;
|
||||||
// delay_10us(100);
|
// delay_10us(100);
|
||||||
time0_delay1ms(1);
|
// 实验四:小星星
|
||||||
|
for(u8 t=0;t<42;t++)
|
||||||
|
{
|
||||||
|
tH=toneH[soundtone[t]]; //提取音调对应的定时器初始值
|
||||||
|
tL=toneL[soundtone[t]];
|
||||||
|
TH0=tH; //给TH0和TL0赋值
|
||||||
|
TL0=tL;
|
||||||
|
TR0=1; //打开定时器,蜂鸣器发声
|
||||||
|
delay_ms(soundlong[t]*500); //延时soundlong[t]指定的时间长度
|
||||||
|
TR0=0;
|
||||||
|
BEEP=0; //蜂鸣器不发声,停顿片刻
|
||||||
|
delay_ms(50);
|
||||||
|
}
|
||||||
|
delay_ms(2000);
|
||||||
// printf("Hello,world!\r\n");
|
// printf("Hello,world!\r\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -69,8 +100,7 @@ void uart(void) __interrupt (4) //串口通信中断函数
|
|||||||
|
|
||||||
void time0(void) __interrupt (1) //定时器0中断函数
|
void time0(void) __interrupt (1) //定时器0中断函数
|
||||||
{
|
{
|
||||||
static u16 i;//定义静态变量i
|
TH0=tH; //给定时器赋初值,定时1ms
|
||||||
TH0=0XFC; //给定时器赋初值,定时1ms
|
TL0=tL;
|
||||||
TL0=0X18;
|
BEEP =! BEEP;
|
||||||
time0_delay_cnt++;//计数器自增
|
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user