久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

用51單片機做的音樂頻譜顯示器

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1 發(fā)表于 2013-6-16 03:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
注意按鍵一定要離單片機很近,觸摸按鍵最怕有干擾






































制作資料下載:
DIY音樂頻譜顯示資料.zip (4.69 MB, 下載次數(shù): 3416)



評分

參與人數(shù) 2黑幣 +10 收起 理由
cai764127922 + 5 共享資料的黑幣獎勵!
LQL-LQL + 5 很給力!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2013-6-16 03:31 | 只看該作者
下面是主函數(shù)的源代碼:完整的可到樓主的貼中下載
#include "src\STC12C5A.h"		 

#include <intrins.h>      //51基本運算(包括_nop_空函數(shù))
#include <math.h>

#include "src\Define.h"


///////全局變量///////
uchar data DelayTime=9;	  //<=8效果最好;
uchar data INTTime=0x40;  //0x40;	
uchar data gain=6;
uchar data Menu=2;
uchar idata refreshflag[40];
uchar  data LEDBuf[35];	  //15列;從左到右;亮的位為真(1);
uint32  data TouchKey=0;
uchar data CBeep=0;
//////////////////////


void Delays(uint t)
{  
	uint j;
	while(--t)
		for(j=0;j<5;j++);    
}
void Delaysms(uint t)
{  
	uint j;
	while(--t)
		for(j=0;j<15;j++);    
}



#include "src\ADC.c"
#include "src\Font.c"
#include "src\fft.h"



void PWM_init (void)	  //PWM初始化函數(shù)	 //PWM模式,接P1.3接口(PWM0),強上拉.
{		   
	CMOD=0x00;    //設(shè)置PCA定時器	  0x00~0x03;
 	CL=0xEF; 
 	CH=0xEF;
	CCAPM0=0x42; //PWM0設(shè)置PCA工作方式為PWM方式(0100 0010)
 	CCAP0L=0xEF; //設(shè)置PWM0初始值與CCAP0H相同
 	CCAP0H=0xFF; // PWM0初始時為0

 	CR=1;        //啟動PCA定時器
}

void PWM0_set (uchar set)	   //PWM0占空比設(shè)置函數(shù)	(0x00~0xFF)
{
	CCAP0L= set; //設(shè)置值寫入CCAP0L
 	CCAP0H= set; //設(shè)置值寫入CCAP0H
}


void IOINIT(void)							  //I/O強上拉模式;
{
	P4SW = 0xff;	                          //啟動I/O:P4;
	P4M1 = B(00000000); P4M0 = B(10000000);P47=0;//震動馬達;
	P0M1 = 0x00;	    P0M0 = 0xff;       P0=0; //點陣列(Y)(L:OFF; H,H+:ON,ON+;)
	P1M1 = B(01000011); P1M0 = B(00110100);P1=B(10110111); //(P17@(高阻,IN)&P16@(高阻,IN);TouchKey) ... P14@(傳統(tǒng)IO,Beep,IN) P13@(強推,OUT)呼吸燈 ... P11@(高阻,IN)AD2;P10@(高阻,IN)AD1;      
	P2M1 = B(00000000); P2M0 = B(11111111);P2=0; //點陣行(X0(Left))(L:OFF; H,H+:ON,ON+;)  
	P3M1 = B(00000000);	P3M0 = B(11111111);P3=0; //點陣行(X1(Right))(L:OFF; H,H+:ON,ON+;)  	      
	P1ASF =B(00000011);                          //將P10,P11的IO設(shè)置為模擬輸入功能;     

//  Y(P0)
//  ↑
//H	|
// 	|
//	|
//L	|
//	 ---------------------→
//	[L:X0(P2):H][L:X1(P3):H]

//TestCode:
//	P0=B(10000000);
//	P2=B(00000001);
//	P3=B(00010000);

}



void BufToLED_Refresh()                     //Refresh&Write Buf to LED ;
{	
	 uchar data i; 
	 uchar data X=1;	  
	 uchar data Y=1;
	 for(X=1,i=2;X;X<<=1,i+=2)              //for(X=1;X!=0;X<<=1) //8bit
	 {
	  	P2=X;
		for(Y=1;Y!=0;Y<<=1)		            //Y=Y<<1;
	 	{
			P0=Y&LEDBuf[i];
			Delays(DelayTime);
			P0=0;
		}
		P2=0;	
	 };
	 for(X=1;X<B(10000000);X<<=1,i+=2)	    //7bit
	 {
	  	P3=X;
		for(Y=1;Y!=0;Y<<=1)		            //Y=Y<<1;
	 	{
			P0=Y&LEDBuf[i];
			Delays(DelayTime);
			P0=0;
		}
		P3=0;	
	 };
		
}




void LEDRefresh_INT() interrupt 3 //using 3   
{ 
	static uint x=0;		   
	static uchar flag=1;

    TL1 = 0x00;      
    TH1 = INTTime;               //0x50~0x80 

 	if(flag)
	{
		if(++x==0xFF)			 //MINOUTPUT
		{
			flag=0;		
		}		
	}
	else
	{
		if(--x==0xCF)	         //MAXOUTPUT
		{
			flag=1;			
		}
	}	 		
	PWM0_set(x);                 //設(shè)置PWM占空比

	BufToLED_Refresh();	 		
}  


void Timer_INT()
{
 	TMOD = 0x11; //高4位控制T/C1 
	EA = 1;	     //開總中斷
	TH1 = 0x00;  //16位計數(shù)寄存器T1高8位
	TL1 = 0x00;  //16位計數(shù)寄存器T1低8位
	ET1 = 1;     //T/C1中斷開
    TR1 = 1;     //T/C1啟動

}


void FullScan()
{
	uchar data X=1;	  
	uchar data Y=1;

	 for(Y=1;Y!=0;Y<<=1)		       //Y=Y<<1;
	 {	
	 	P0=Y;
		for(X=1;X;X<<=1)	           //8bit
		{
		 	P2=X;
			Delays(7);	
		};

		P2=0;
		for(X=1;X<B(10000000);X<<=1)    //7bit
		{
		 	P3=X;
			Delays(7);
		};
		P3=0;
		P0=0;
	 }
}


void Main()
{  
	uint data Count=700;
	uchar data i,Cgain,num=0;

	IOINIT();
	InitADC();                   

	while(--Count)
		FullScan();

	for(i=0;i<40;i++) refreshflag[i]=0x09;
	
	P14=0;			  //Beep
	Delays(4000);
	P14=1;

	PWM_init();      //PWM初始化
	PWM0_set(0xFB);
	
	Timer_INT();

	for(i=0;i<34;i++) 
		LEDBuf[i]=0x00;
	FontDisp();

	while(520)
	{
		for(i=0;i<65;i++)
		{  
			dd[i].real=(GetADCResult(0)+GetADCResult(1))<<gain;	  //讀取ad結(jié)果并放大;
		}

		 processfft();//傅立葉變化及處理

		 ///////////////////TouchKey//////////////////////////
		 while(P16==1)					   //依據(jù):脈沖 干擾持續(xù)時間短;
		 {	
			if(CBeep)P14=0;
			if(++TouchKey>0x0000FF00)break;	
		 }
		 P14=1;

		 if(P16==1)
		 {
			if(++Menu==4)Menu=0;

			P14=0;
			P47=1;
			Delays(7000);	  
			P14=1;
			P47=0;		
		 }	
			TouchKey=0;
		 //////////////////////////////////////////////

		if(P17==0)CBeep=!CBeep;

		 if(dd[2].real<32)
		 {
			 if(++Count==300)	  //電平值過小,這降低gain,減少噪音的電平顯示;
			 {
				Count=0;
				//if(++Menu==4)Menu=0;	  	//切換Menu,顯示方式;
				gain=6;

				P14=0;			  //Beep
				Delays(1000);
				P14=1;
			 }
		 }
		 else 
		 {
			 Count=1;
	
			 if(++num==0xAF)			 //播放時,Auto gain;
			 {
				num=0;

				P14=0;			           //Beep
				Delays(700);
				P14=1;
				                           //自動增益;Automatic gain;
				Cgain=dd[2].real/32;
				if(7<Cgain<=8) 
				{
					gain=4;
					
				}
				else if(4<Cgain<=6) 
				{
					gain=5;
					
				}
				else if(2<Cgain<=4) 
				{
					gain=6;
				}
				else 
				{
					gain=7;
			
				}
	
			 }

		  }		 
	}
	while(1);
}


回復(fù)

使用道具 舉報

板凳
ID:7485 發(fā)表于 2013-6-16 15:36 | 只看該作者
PRJ.C(299): error C249: 'DATA': SEGMENT TOO LARGE  
??
回復(fù)

使用道具 舉報

地板
ID:1 發(fā)表于 2013-6-16 18:32 | 只看該作者
keil4 的工程文件呢
回復(fù)

使用道具 舉報

5#
ID:51557 發(fā)表于 2013-7-7 00:21 | 只看該作者
貌似要焊到手抽~~
回復(fù)

使用道具 舉報

6#
ID:51952 發(fā)表于 2013-7-17 17:46 | 只看該作者
看看,,程序齊的吧
回復(fù)

使用道具 舉報

7#
ID:52053 發(fā)表于 2013-7-20 13:49 | 只看該作者
謝謝分享~~~~~~~~~~
回復(fù)

使用道具 舉報

8#
ID:34619 發(fā)表于 2013-7-21 08:17 | 只看該作者
很強啊,樓主
回復(fù)

使用道具 舉報

9#
ID:52177 發(fā)表于 2013-7-23 22:22 | 只看該作者
有套件賣嗎?我要
回復(fù)

使用道具 舉報

10#
ID:52314 發(fā)表于 2013-7-26 21:24 | 只看該作者
真帥!!!
回復(fù)

使用道具 舉報

11#
ID:52315 發(fā)表于 2013-7-26 21:54 | 只看該作者
kanakn
回復(fù)

使用道具 舉報

12#
ID:52318 發(fā)表于 2013-7-26 23:05 | 只看該作者
學(xué)習(xí)中
回復(fù)

使用道具 舉報

13#
ID:52785 發(fā)表于 2013-8-8 04:05 | 只看該作者
謝謝 分享
回復(fù)

使用道具 舉報

14#
ID:52785 發(fā)表于 2013-8-10 11:05 | 只看該作者
程序 還需要修改嗎??按照你 套件我也做了一套  燒出來沒反應(yīng)
回復(fù)

使用道具 舉報

15#
ID:52962 發(fā)表于 2013-8-12 15:27 | 只看該作者
進來看看
回復(fù)

使用道具 舉報

16#
ID:55734 發(fā)表于 2013-10-9 02:35 | 只看該作者
看看學(xué)習(xí)學(xué)習(xí)。。
回復(fù)

使用道具 舉報

17#
ID:55707 發(fā)表于 2013-10-10 12:22 | 只看該作者
手都要掉了
回復(fù)

使用道具 舉報

18#
ID:55772 發(fā)表于 2013-10-10 12:33 | 只看該作者
keil4 的工程文件呢
回復(fù)

使用道具 舉報

19#
ID:55875 發(fā)表于 2013-10-13 05:49 | 只看該作者

很強啊
回復(fù)

使用道具 舉報

20#
ID:58168 發(fā)表于 2013-12-25 20:16 | 只看該作者
同二樓問題相同
回復(fù)

使用道具 舉報

21#
ID:58110 發(fā)表于 2013-12-27 18:32 | 只看該作者
怎么沒見效果圖?
回復(fù)

使用道具 舉報

22#
ID:59679 發(fā)表于 2014-3-18 14:25 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

23#
ID:59700 發(fā)表于 2014-3-21 22:27 | 只看該作者
謝謝 分享
回復(fù)

使用道具 舉報

24#
ID:60263 發(fā)表于 2014-4-2 16:56 | 只看該作者
有做成功的嗎?
回復(fù)

使用道具 舉報

25#
ID:59964 發(fā)表于 2014-4-3 16:40 | 只看該作者
我頂,向樓主學(xué)習(xí)。
回復(fù)

使用道具 舉報

26#
ID:34763 發(fā)表于 2014-4-4 11:36 | 只看該作者
admin 發(fā)表于 2013-6-16 03:31
下面是主函數(shù)的源代碼:完整的可到樓主的貼中下載
#include "src\STC12C5A.h"                 

很好  學(xué)習(xí)  謝謝
回復(fù)

使用道具 舉報

27#
ID:61600 發(fā)表于 2014-5-9 13:05 | 只看該作者
好東西
回復(fù)

使用道具 舉報

28#
ID:61785 發(fā)表于 2014-5-13 20:44 | 只看該作者
要焊死
回復(fù)

使用道具 舉報

29#
ID:61732 發(fā)表于 2014-5-14 11:54 | 只看該作者
進來看看
回復(fù)

使用道具 舉報

30#
ID:61343 發(fā)表于 2014-5-15 10:46 | 只看該作者
好東西.謝謝
回復(fù)

使用道具 舉報

31#
ID:63606 發(fā)表于 2014-7-6 18:48 | 只看該作者
恩恩,下載來自己做做
回復(fù)

使用道具 舉報

32#
ID:63697 發(fā)表于 2014-7-7 10:26 | 只看該作者
謝樓主分享啊。。
回復(fù)

使用道具 舉報

33#
ID:65533 發(fā)表于 2014-8-28 16:22 | 只看該作者
正想學(xué)習(xí)學(xué)習(xí)。
回復(fù)

使用道具 舉報

34#
ID:64246 發(fā)表于 2014-9-5 13:03 | 只看該作者
放個視頻出來更好
回復(fù)

使用道具 舉報

35#
ID:67103 發(fā)表于 2014-10-8 19:55 | 只看該作者
好復(fù)雜啊
回復(fù)

使用道具 舉報

36#
ID:67370 發(fā)表于 2014-10-14 17:53 | 只看該作者
謝了。
回復(fù)

使用道具 舉報

37#
ID:67422 發(fā)表于 2014-10-15 19:34 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

38#
ID:68955 發(fā)表于 2014-11-17 22:10 | 只看該作者
支持一下~謝謝分享
回復(fù)

使用道具 舉報

39#
ID:69215 發(fā)表于 2014-11-25 01:25 | 只看該作者
不錯 頂頂頂頂
回復(fù)

使用道具 舉報

40#
ID:68692 發(fā)表于 2014-12-9 03:07 | 只看該作者
如果 我還想控制更多的LED我該怎么做呢?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美成年人视频在线观看 | 亚洲一区二区三区久久 | 精品国产欧美一区二区三区成人 | 一区2区| 国产视频观看 | 国产欧美日韩一区二区三区在线观看 | 久久天天躁狠狠躁夜夜躁2014 | 一级毛片观看 | 你懂的在线视频播放 | 成人性生交大片免费看r链接 | 国产午夜在线观看 | 亚洲午夜小视频 | www.久久 | 欧美激情一区二区三区 | 国产精品爱久久久久久久 | 久久精品一区 | 99re在线视频观看 | 亚洲另类自拍 | 91免费小视频 | 天堂网色 | 久久久免费少妇高潮毛片 | 日韩精品一区二区三区中文字幕 | 91久久久精品国产一区二区蜜臀 | 91精品在线播放 | 亚洲一区二区免费视频 | 激情国产在线 | 一区二区免费在线 | 黄色日批视频 | 成人自拍视频 | 日本一区二区三区免费观看 | 91精品国产一区二区三区香蕉 | 激情欧美日韩一区二区 | 日本一区二区电影 | 亚洲一区影院 | 欧美三级成人理伦 | 亚洲精品中文字幕在线观看 | 欧美国产视频 | 精品综合视频 | 精品欧美一区二区在线观看欧美熟 | 国产美女免费视频 | 色在线看 |