简单电子琴,从程序怎么看出我的引脚?

2019-07-15 22:43发布

这是我在这论坛找的电子琴资料,有原理图和程序,但是我不知道我的按键键盘8个脚,应该分别连着单片机哪8个脚。希望有人看出来能告诉我,新手在此万分感谢...... 电子琴电路图.jpg

#include<at89x51.h>#include<INTRINS.H>typedef unsigned char uchar;typedef unsigned int uint;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchar temp;uchar key;uchar i,j;uchar STH0;uchar STL0;uint code tab[]={64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178}; void main(void){TMOD=0x01;ET0=1;EA=1; while(1){P3=0xff;P3_4=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);temp=P3;temp=temp & 0x0f;if (temp!=0x0f){temp=P3;temp=temp & 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;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}} P3=0xff;P3_5=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);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;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}} P3=0xff;P3_6=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);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;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}} P3=0xff;P3_7=0;temp=P3;temp=temp & 0x0f;if (temp!=0x0f){for(i=50;i>0;i--)for(j=200;j>0;j--);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;P1_0=~P1_0;P0=table[key];STH0=tab[key]/256;STL0=tab[key]%256;TR0=1;temp=temp & 0x0f;while(temp!=0x0f){temp=P3;temp=temp & 0x0f;}TR0=0;}}}} void t0(void) interrupt 1 using 0{TH0=STH0;TL0=STL0;P1_0=~P1_0;}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。