找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3213|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

[求助]

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:45595 發(fā)表于 2012-10-19 09:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

    大家可以幫忙看一下一下代碼嗎? 我已經(jīng)看了將近一周了但達(dá)不到我的目的,每個(gè)獨(dú)立鍵盤(pán)控制不同頻率的聲音,求各位大師幫忙啊!

#include <reg52.h>
unsigned char i,j,key;
#define uint unsigned int
#define uchar unsigned char
uchar table[]={63343,640,63330};
uchar hz;
sbit key1=P3^2;
sbit key2=P3^3;
sbit key3=P1^0;
sbit key4=P1^1;
sbit fenmingqi=P3^4;
void delay(uint x);
void program(uchar key);
void init();
void main(void)
{
 init();
 
  if(key1==0)
       {
       hz=table[0];
       program(key1);
       }
     if(key2==0)
       {
       hz=table[1];
       program(key2);
       }
     
      
      
}

void t0(void) interrupt 1 using 0
{
 TH0=(65536-hz)/256;
 TL0=(65536-hz)%256;
 fenmingqi=~fenmingqi;
}
void program(uchar key)

  
    TH0=(65536-hz)/256;
 TL0=(65536-hz)%256;
 if (key==0)           
  {
        delay(2);
        if(key==0)                 
  TR0=1;
        }
   while(key1==0)
         fenmingqi=1;
         TR0=1;
  
}
void init()
{
 TMOD=0x01;
 ET0=1;
 EA=1;
}
void delay(uint x)
{
 uint y,i;
 for (y=0;y<x;y++)
    for(i=0;i<3;i++);
}




 

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表