#include 'stc8h.h'

#define BUZZER P1_5

#define C4 262 #define D4 294 #define E4 330 #define F4 349 #define G4 392 #define A4 440 #define B4 494 #define C5 523 #define D5 587 #define E5 659 #define F5 698 #define G5 784 #define A5 880 #define B5 988

void delay(int ms) { int i, j; for (i = 0; i < ms; i++) { for (j = 0; j < 100; j++); } }

void play(int freq, int duration) { int i; for (i = 0; i < duration * freq / 1000; i++) { BUZZER = 1; delay(500 / freq); BUZZER = 0; delay(500 / freq); } }

void song1() { play(C4, 500); play(C4, 500); play(D4, 500); play(E4, 500); play(E4, 500); play(D4, 500); play(C4, 500); play(B4, 500); play(B4, 500); play(C4, 500); play(C4, 500); play(B4, 500); play(B4, 500); play(A4, 500); play(A4, 500); play(G4, 500); play(G4, 500); play(F4, 500); play(F4, 500); play(E4, 500); play(E4, 500); play(D4, 500); play(D4, 500); play(C4, 500); }

void song2() { play(G4, 500); play(A4, 500); play(G4, 500); play(F4, 500); play(E4, 500); play(C4, 500); play(E4, 500); play(G4, 500); play(F4, 500); play(E4, 500); play(C4, 500); play(E4, 500); play(G4, 500); play(G4, 1000); }

void main() { int key = 0; while (1) { key = P3 & 0x0F; if (key == 0x01) { song1(); } else if (key == 0x02) { song2(); } }

STC8H单片机Keil5蜂鸣器演奏两首歌曲(按键切换)

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

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