4x4電子琴 發出不同的聲音。學校要求做無聊就做了.....
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
捕獲.PNG (54.44 KB, 下載次數: 79)
下載附件
仿真
2018-9-23 18:51 上傳
捕獲1.PNG (24.11 KB, 下載次數: 76)
下載附件
源碼
2018-9-23 18:51 上傳
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png (15.92 KB, 下載次數: 68)
下載附件
2018-9-23 19:50 上傳
單片機源程序如下:
- #include <reg51.h>
- #define uint unsigned int
- #define uchar unsigned char
- #define output P1
- #define input P1
- enum KEY{key0,key1,key2,key3,key4,key5,key6,key7,key8,key9,key10,key11,key12,key13,key14,key15};
- unsigned int code Freqtab[] = {
- 64021,64103,64260,64400,
- 64524,64580,64684,64777,
- 64820,64898,64968,65030,
- 65058,65110,65157,65178};
- uint FreqTemp;
- sbit SPEAK = P3^7;
- void delay1ms(uint n)
- {
- uint a,b,c;
- for(c=n;c>0;c--)
- for(b=199;b>0;b--)
- for(a=1;a>0;a--);
- }
-
- uint key_input(void)
- {
- uchar temp1,temp2;
- uchar num = 16;
- output = 0x0f;
- temp1 = input;
- if(0x0f != temp1)
- {
- delay1ms(5);
- temp1 = input;
- if(0x0f != temp1)
- {
- temp1 = temp1 & 0x0f;
- output = 0xf0;
- delay1ms(1);
- temp2 = input;
- temp2 = temp2 & 0xf0;
- temp1 = temp1 | temp2;
- }
- }
- switch(temp1)
- {
- case 0xee:num=0;break;
- case 0xde:num=1;break;
- case 0xbe:num=2;break;
- case 0x7e:num=3;break;
- case 0xed:num=4;break;
- case 0xdd:num=5;break;
- case 0xbd:num=6;break;
- case 0x7d:num=7;break;
- case 0xeb:num=8;break;
- case 0xdb:num=9;break;
- case 0xbb:num=10;break;
- case 0x7b:num=11;break;
- case 0xe7:num=12;break;
- case 0xd7:num=13;break;
- case 0xb7:num=14;break;
- case 0x77:num=15;break;
- default:break;
- }
- return num;
- }
- void T0_INT(void) interrupt 1
- {
- TL0 = FreqTemp;
- TH0 = FreqTemp >> 8;
- SPEAK = ~SPEAK;
- }
- int main()
- {
- TMOD = 0X01;
- EA = 1;
- ET0 = 1;
- TR0 = 0;
- while(1)
- {
- uint num,temp;
- num = key_input();
- temp = num;
- if(16 != num)
- {
- FreqTemp = Freqtab[num];
- TR0 = 1;
- while(0xf0 != output);
- TR0 = 0;
- SPEAK = 1;
- }
- }
- return 0;
- }
復制代碼
0.png (12.93 KB, 下載次數: 73)
下載附件
2018-9-23 19:50 上傳
所有資料51hei提供下載:
電子琴30.rar
(91.92 KB, 下載次數: 76)
2018-9-23 18:55 上傳
點擊文件名下載附件
包含仿真 源碼 原理圖 pcb 下載積分: 黑幣 -5
|