以下是一个使用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开发板的频率进行调整。此外,蜂鸣器的引脚连接可能需要根据你的实际硬件连接进行调整

C51编写一个程序使蜂鸣器播放小星星

原文地址: https://www.cveoy.top/t/topic/hLYj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录