当前位置:首页 > 基于C51单片机电子琴的设计与实现
0x19,0x03,0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02, 0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02,0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0xff,0xff};
unsigned char code Music_Code[]={ 0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,
10001011
0xfb,0x03,0xfb,0x8f,0xfc,0x0b,0xfd,0xee};
//11111000,
unsigned char const yinfu1[3][14]={
{0xf8,0x8b,0xf9,0x5b,0xfa,0x14,0xfa,0x66,0xfb,0x03,0xfb,0x8f,0xfc,0x0b}
{0xfc,0x43,0xfc,0xab,0xfd,0x08,0xfd,0x33,0xfd,0x81,0xfd,0xc7,0xfe,0x05}
{0xfb,0x21,0xfe,0x55,0xfe,0x84,0xfe,0x99,0xfe,0xc0,0xfe,0xe3,0xff,0x02}}; //11111000, 10001011
unsigned char const length[]={1,2,4,8,16,32,64}; unsigned char sth,stl;
void delay_ms(unsigned int k) { // 12M unsigned int i0; unsigned char i,j;
for(i0=0;i0
void Sys_Init() {
TMOD=0x10; EA=1; ET1=1; P1=0xff; }
uchar Get_Key () {
uchar i,temp; P1=0xff; temp=P1; for(i=0;i<8;i++) {if(temp==keymode[i]) return i; } return 8;
}
void Play(uchar key) { uchar j; if(key==7) { TR1=1;
for(j=0; Music_hzcb[j]!=0xff;j++) {
keycode=Music_hzcb[j]; delay_ms(10);
sth=yinfu1[(Music_hzcb[j]0)/10-1][((Music_hzcb[j])-1)*2];
stl=yinfu1[(Music_hzcb[j]0)/10-1][((Music_hzcb[j])-1)*2+1];
j++;
TR0=1;
delay_ms(4*500/length[Music_hzcb[j]]);
TR0=0; }
for (;;) {
}
else { TR1=1; keycode=key; } }
void timer1(void) interrupt 3 { buz=~buz;
TH1=toneh[keycode]/256; TL1=toneh[keycode]%6; }
void main() {
Sys_Init(); do
while(P3==0x7f); delay_ms(10); if(P3==0x7f) continue; else break; }
using 1
共分享92篇相关文档