(最新版)基于51单片机的电子琴毕业设计论文 联系客服

发布时间 : 星期六 文章(最新版)基于51单片机的电子琴毕业设计论文更新完毕开始阅读e1163d69492fb4daa58da0116c175f0e7cd119c7

0x6F,*9*

0x37,*N*中音 0x38,*L*低音

0x76,*H*高音

0x79 *E*};共阴极数码管

0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,中音

code unsigned char FH[]={

0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,低音的高8位

0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF, }; 音阶频率表 低八位 code unsigned char FL[]={

0x8E,0xED,0x44,0x6B,0xB4,0xF4,0x2D,中音

0x21,0xDB,0x87,0xD7,0x68,0xE8,0x5B,低音的低8位

0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16, };

code uchar star[]={ 3,4,5, 3,4,5, 1,12*低音5*,1, 1,12,1}; code uchar shijian[]={ 4,4,4, 4, 4,4,8, 4,4,8, 4,4,6, 4,4,6}; void init(void); void music(); void play(); void seg1(); void yinjie();

*********主程序***** void main() {

init(); while(1)

9 }

{ }

if(a==0) else

play(); music();

*******1ms延迟******** void delay(uint x) { }

*******初始化数据***** void init(void) { }

******数码管动态显示*******

10 uint i,j; for(i=x;i>0;i--)

for(j=340;j>0;j--);

speaker=0; LED1=1; LED2=0; EA=1;开总中断

TCON=0x01;外部中断0设置为边沿触发 EX0=1;开外部中断0 ET0=1; ET1=1;

TMOD=0x11;定时器0,1工作在定时状态,均为方式1

void seg1() { }

********高低音的选择******* void yinjie() {

if(normal==0)

{ }

delay(5); if(normal==0)

{ yin=10; }

m=0;

返回10为seg[10]显示C

P2_0=1;关数码管1 P2_1=0;开数码管2

P0=seg[n+1];送数码管2的数据 delay(15);延时15ms P2_1=1;关数码管2 P2_0=0;开数码管1

P0=seg[yin];yin为high,normal,low的判断结果送数码管1的数据 delay(15);延时15ms

if(low==0)

{

delay(5); if(low==0)

{

yin=11; m=1;

11 }

}

返回11为seg[11]显示L

}

if(=12;

}

}

m=2;

返回12为seg[12]显示H

if(yin==0)

{ yin=13; }

********外部中断0******** void inter0() interrupt 0 { }

*******播放音乐程序***** void music()

12 if(change==0)

{ }

delay(5);

while(change==0); a=~a;

LED1=~LED1; LED2=~LED2;