|
此例為單音頻輸出,想學習51的師兄可以先從此入手。
代碼:
#include<reg51.h>
sbit SOND=P1^0;
sbit KL=P3^0;
sbit KH=P3^2;
void tone(unsigned char t)
{
unsigned char j;
unsigned int i;
for(i=0;i<(30000/t);i++)
{
SOND=~SOND;
for(j=0;j<t;j++);
}
SOND=0;
}
void main()
{
unsigned char n,k;
unsigned int t;
unsigned char T[21]=
{219,193,170,159,139,122,107,100,87,75,70,60,52,43,40,33,27,25,20,16,12}; //音符1-7的高低音
while(1)
{
if((KL==0)&(KH!=0)) n=0;
else if((KH==0)&(KL!=0)) n=2;
else n=1;
if((~(P1|0x01))!=0)
{
k=P1|0x01;
for(t=0;t<2000;t++);
while((~(P1|0x01))!=0);
switch(k)
{
case 0xfd:tone(T[1+n*7]);break;//音符1
case 0xfb:tone(T[2+n*7]);break;//音符2
case 0xf7:tone(T[3+n*7]);break;//音符3
case 0xef:tone(T[4+n*7]);break;//音符4
case 0xdf:tone(T[5+n*7]);break;//音符5
case 0xbf:tone(T[6+n*7]);break;//音符6
case 0x7f:tone(T[7+n*7]);break;//音符7
default:;
}
}
}
}
|
-
proteus.PNG
(52.93 KB, 下載次數: 24)
下載附件
2019-1-1 21:48 上傳
proteus仿真圖
-
代碼2.PNG
(17.95 KB, 下載次數: 20)
下載附件
2019-1-1 21:42 上傳
C語言代碼
-
代碼1.PNG
(19.54 KB, 下載次數: 26)
下載附件
2019-1-1 21:42 上傳
C語言代碼
-
-
單音頻輸出.zip
2019-1-1 21:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
50.69 KB, 下載次數: 2, 下載積分: 黑幣 -5
仿真資料
|