0.png (7.49 KB, 下載次數: 46)
下載附件
2018-1-6 02:41 上傳
全部資料51hei下載地址:
單片機電子琴.zip
(417.49 KB, 下載次數: 58)
2018-1-5 14:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
下面是電子琴ppt課件內容預覽
0.jpg (38.77 KB, 下載次數: 48)
下載附件
2018-1-6 02:42 上傳
0.jpg (86.07 KB, 下載次數: 45)
下載附件
2018-1-6 02:42 上傳
0.jpg (46.15 KB, 下載次數: 48)
下載附件
2018-1-6 02:42 上傳
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (18.81 KB, 下載次數: 48)
下載附件
2018-1-6 02:44 上傳
器件 | | 單片機(1個) | | 八位排阻(1個) | | 振蕩電容(2個) | | 上電復位電容(1個) | | 復位端下拉電阻(1個) | | 晶振(1個) | | 揚聲器(1個) | | 數碼管(1個) | | 小型微動按鍵(16個) | |
單片機源程序如下:
- #include <AT89X51.H>
- unsigned char code table[]={0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71};
- unsigned char temp;
- unsigned char key;
- unsigned char i,j;
- unsigned char STH0;
- unsigned char STL0;
- unsigned int 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=3;
- break;
- case 0x0d:
- key=2;
- break;
- case 0x0b:
- key=1;
- break;
- case 0x07:
- key=0;
- break;
- }
- temp=P3;
-
- 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=7;
- break;
- case 0x0d:
- key=6;
- break;
- case 0x0b:
- key=5;
- break;
- case 0x07:
- key=4;
- break;
- }
- temp=P3;
-
- 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=11;
- break;
- case 0x0d:
- key=10;
- break;
- case 0x0b:
- key=9;
- break;
- case 0x07:
- key=8;
- break;
- }
- temp=P3;
-
- 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=15;
- break;
- case 0x0d:
- key=14;
- break;
- case 0x0b:
- key=13;
- break;
- case 0x07:
- key=12;
- break;
- }
- temp=P3;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
|