資源簡介
C語言編寫的用按鍵控制單片機播放音樂,用來學習播放音樂最適合。
代碼片段和文件信息
#include
#include?
#define?uchar?unsigned?char
#define?uint?unsigned?int
uchar?Count;
void?delayms(unsigned?int?ms);
void?lcd_init();
void?lcd_wcmd(unsigned?char?cmd?bit?Check);
void?lcd_wdat(unsigned?char?dat);
void?lcd_pos(unsigned?char?xpos?unsigned?char?ypos);
void?wr_string(unsigned?char?str[]);
void??huange();
void?music1();
void?music2();
void?music3();
/***************************************************************************/
#ifndef?__SOUNDPLAY_H_REVISION_FIRST__
#define?__SOUNDPLAY_H_REVISION_FIRST__
//**************************************************************************
#define?SYSTEM_OSC? 12000000 //定義晶振頻率12000000HZ
#define?SOUND_SPACE? 4/5? //定義普通音符演奏的長度分率//每4分音符間隔
sbit????BeepIO????=??? P3^7; //定義輸出管腳
unsigned?int??code?FreTab[12]??=?{?262277294311330349369392415440466494?};?//原始頻率表
unsigned?char?code?SignTab[7]??=?{?02457911?};? ??//1~7在頻率表中的位置
unsigned?char?code?LengthTab[7]=?{?1248163264?};
unsigned?char?Sound_Temp_TH0Sound_Temp_TL0; //音符定時器初值暫存?
unsigned?char?Sound_Temp_TH1Sound_Temp_TL1; //音長定時器初值暫存
#define?DATA_PORT??P0
sbit?LCD_RS?=?P2?^?0;
sbit?LCD_RW?=?P2?^?1;
sbit?LCD_EN?=?P2?^?2;
sbit?Speak?=P3^7;?//蜂鳴器器控制腳?
/*以下數組是音符編碼*/?
unsigned?char?key;
unsigned?char?code?key_code[]?=
{
??//鍵編碼數組
??0xee?0xed?0xeb?0xe7?0xde?0xdd?0xdb?0xd7?0xbe?0xbd?0xbb
??0xb7?0x7e?0x7d?0x7b?0x77
};
//*****************************Music******************************************************
//揮著翅膀的女孩
unsigned?char?code?Music_Girl[]={?0x170x02?0x170x03?0x180x03?0x190x02?0x150x03
??????????????????????????????????0x160x03?0x170x03?0x170x03?0x170x03?0x180x03
??????????????????????????????????0x190x02?0x160x03?0x170x03?0x180x02?0x180x03
??????????????????????????????????0x170x03?0x150x02?0x180x03?0x170x03?0x180x02
??????????????????????????????????0x100x03?0x150x03?0x160x02?0x150x03?0x160x03
??????????????????????????????????0x170x02?0x170x03?0x180x03?0x190x02?0x1A0x03
??????????????????????????????????0x1B0x03?0x1F0x03?0x1F0x03?0x170x03?0x180x03
??????????????????????????????????0x190x02?0x160x03?0x170x03?0x180x03?0x170x03
??????????????????????????????????0x180x03?0x1F0x03?0x1F0x02?0x160x03?0x170x03
??????????????????????????????????0x180x03?0x170x03?0x180x03?0x200x03?0x200x02
??????????????????????????????????0x1F0x03?0x1B0x03?0x1F0x66?0x200x03?0x210x03
??????????????????????????????????0x200x03?0x1F0x03?0x1B0x03?0x1F0x66?0x1F0x03
??????????????????????????????????0x1B0x03?0x190x03?0x190x03?0x150x03?0x1A0x66
??????????????????????????????????0x1A0x03?0x190x03?0x150x03?0x150x03?0x170x03
??????????????????????????????????0x160x66?0x170x04?0x180x04?0x180x03?0x190x03
??????????????????????????????????0x1F0x03?0x1B0x03?0x1F0x66?0x20
- 上一篇:畫多邊形C++算法源代碼
- 下一篇:C++實現的學分管理系統
評論
共有 條評論