C51编写一个程序使蜂鸣器播放小星星
以下是一个使用C51编写的程序,用于控制蜂鸣器播放《小星星》的旋律。
#include <reg51.h>
sbit buzzer = P1^0; // 将蜂鸣器连接到P1.0引脚
void delay(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 120; j++);
}
void main() {
unsigned char melody[] = {0x0E, 0x0E, 0x0F, 0x0F, 0x10, 0x10, 0x0F, 0x0E, 0x0E, 0x0F, 0x0F, 0x10, 0x10, 0x0F, 0x0E, 0x0E, 0x0F, 0x0F, 0x0F, 0x0E, 0x0E, 0x0F, 0x0F, 0x10, 0x10, 0x0F, 0x0E};
unsigned char duration[] = {1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2};
while (1) {
unsigned char i;
for (i = 0; i < sizeof(melody); i++) {
unsigned char j;
for (j = 0; j < duration[i]; j++) {
buzzer = 1; // 蜂鸣器发声
delay(30); // 发声持续时间
buzzer = 0; // 停止发声
delay(30); // 停止发声时间
}
delay(100); // 两个音符之间的延迟
}
delay(500); // 整首歌曲结束后的延迟
}
}
请注意,这里使用的延迟函数delay()可能需要根据你的C51开发板的频率进行调整。此外,蜂鸣器的引脚连接可能需要根据你的实际硬件连接进行调整
原文地址: https://www.cveoy.top/t/topic/hLYj 著作权归作者所有。请勿转载和采集!