『壹』 為什麼揚聲器不能直接接到單片機上
揚聲器當然是可以接到單片機埠的,但是由於單片機埠的驅動能力很弱,就是是帶有強上拉的單片機,一般也就20mA的驅動能力,所以沒法把一個揚聲器驅動的很響亮,所以一般都是外加三極體,MOS管或者專業晶元來驅動揚聲器的
『貳』 單片機驅動揚聲器發聲,採用的什麼波
一般都會採用功放晶元驅動,不會用單片機直接驅動。驅動揚聲器發聲,會採用單片機的DA通道,也就是數模轉換通道。將存儲在晶元內的語音數字文件,轉換成一定頻率的高低電平,輸出到功放晶元驅動揚聲器發聲。
『叄』 如何用單片機PWM功能驅動揚聲器
PC機上的所有音頻文件本來就是數字量,只不過格式不同罷了。PCM文件就是AD轉換後得到的二進制數據文件,將PCM加上文件頭和文件尾就成了WAV文件。所以PCM文件有兩個途徑得到:1、通過錄音設備。聲音經麥克風後得到模擬電流信號,此信號經過放大然後AD得到的數據文件即是PCM文件。2、通過其它格式的音頻文件轉換。使用一些轉換軟體可以將其它格式的音頻文件轉換為PCM文件。
PWM信號可看作一個直流信號與鋸齒波比較得到的信號,其占空比反映了直流信號的大小,所以PWM經低通濾波之後可以恢復直流信號,直流信號的大小由占空比決定。PWM做語音輸出時,其頻率是固定的(這個頻率決定聲調,一般的語音信號取11.025kHz。),然後將PCM文件中的數據作為占空比大小輸出PWM波,經低通濾波後驅動揚聲器即可得到聲音。
『肆』 C51單片機中用P1.0輸出1KHz和500Hz的音頻信號驅動揚聲器
開兩個計時器,計時器0用作定時中斷,計數器1用作普通計數器用,用計數器1產生兩個不同的頻率。
定時器0中斷用以判別100ms和200ms的時間隙,由於定時器中斷需要在兩個中斷間隔時間間跳變,幫需要加一個標志位FLAG,當FLAG=0時讓定時器0延時100MS中斷,當FLAG=1時定時器0延時200MS中斷。
假設p1.1外接按鈕,對輸出1khz和500hz進行切換。
#include
sbit wave = p1^0;
sbit k = p1^1;
#define fosc 12000000ul //晶振頻率,可以自行修改
#define fint 1000 //定時器中斷頻率
bit switchflag;
void delayms(unsigned int x)
{
unsigned char t;
while(x--)
for(t=0;t<120;t++);
}
void main()
{
tmod&=0xf0;
tmod|=0x01;
th0=(65536-fosc/fint/12)/256;
tl0=(65536-fosc/fint/12)%256;
ie|=0x82;
tr0=1;
while(1)
{
if(!k)
{
delayms(10);
if(!k)
switchflag=!switchflag;
}
}
}
void t0_int() interrupt 1
{
static bit i;
th0=(65536-fosc/fint/12)/256;
tl0=(65536-fosc/fint/12)%256;
i=!i;
if(switchflag) {wave=!wave;}
else {wave=(i)?!wave:wave;}
}
(4)單片機的揚聲器擴展閱讀:
單片機也被稱為單片微控器,屬於一種集成式電路晶元。在單片機中主要包含CPU、只讀存儲器ROM和隨機存儲器RAM等,多樣化數據採集與控制系統能夠讓單片機完成各項復雜的運算,無論是對運算符號進行控制,還是對系統下達運算指令都能通過單片機完成。
由此可見,單片機憑借著強大的數據處理技術和計算功能可以在智能電子設備中充分應用。簡單地說,單片機就是一塊晶元,這塊晶元組成了一個系統,通過集成電路技術的應用,將數據運算與處理能力集成到晶元中,實現對數據的高速化處理。
『伍』 單片機控制喇叭發聲原理
要有硬體電路圖才能說原理。。。一般來說用的是三極體驅動揚聲器,然後讓單片機控制三極體的基極,從而通過高低電平讓三極體導通或截止從而控制揚聲器