《基于单片机的电子琴制作.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子琴制作.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、#include #define uchar unsigned char; #define uint unsigned int;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar temp,key,STH0,STL0;uint i,j,xms;uint code tab=64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,651
2、57,65178;sbit led1=P34;sbit led2=P35;sbit led3=P36;sbit led4=P37;sbit led5=P15; void delayms(xms) for(i=xms;i0;i-) for (j=110;j0;j-); void main()TMOD=0x01;ET0=1;EA=1;while(1)P3=0xff;led1=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f)delayms(50);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp &
3、 0x0f;switch(temp)case 0x0e:key=0;break;case 0x0d:key=1;break;case 0x0b:key=2;break;case 0x07:key=3;break;temp=P3;led5=led5;P2=0x00;P0=tablekey;STH0=tabkey/256;STL0=tabkey%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=temp & 0x0f;TR0=0;P3=0xff;led2=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0
4、f)delayms(50);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=4;break;case 0x0d:key=5;break;case 0x0b:key=6;break;case 0x07:key=7;break;temp=P3;led5=led5;P0=tablekey;STH0=tabkey/256;STL0=tabkey%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=temp &
5、 0x0f;TR0=0;P3=0xff;led3=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f)delayms(50);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=8;break;case 0x0d:key=9;break;case 0x0b:key=10;break;case 0x07:key=11;break;temp=P3;led5=led5;P0=tablekey;STH0=tabkey/256;STL0=tab
6、key%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=temp & 0x0f;TR0=0;P3=0xff;led4=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f)delayms(50);temp=P3;temp=temp & 0x0f;if (temp!=0x0f)temp=P3;temp=temp & 0x0f;switch(temp)case 0x0e:key=12;break;case 0x0d:key=13;break;case 0x0b:key=14;break;case 0x07:key=15;break;temp=P3;led5=led5;P0=tablekey;STH0=tabkey/256;STL0=tabkey%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f)temp=P3;temp=temp & 0x0f;TR0=0;void t0(void) interrupt 1 using 0TH0=STH0;TL0=STL0;led5=led5;