熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2018-9-8 21:40
正文摘要:用的是在線調(diào)試模式,大神求解 還有一個(gè)問(wèn)題就是 data D區(qū) 不是00h-7fh嗎 為什么會(huì)有0a0h |
data D區(qū) 不是00h-7fh嗎 為什么會(huì)有0a0h ?地址是連續(xù)的,有但是已經(jīng)不是data。 |
檢查焊的是不是搞錯(cuò)成無(wú)源蜂鳴器,5V有源蜂鳴器外殼上有標(biāo)示+號(hào),長(zhǎng)腳為正 |
應(yīng)該是你們震蕩源有問(wèn)題,在測(cè)試看看 |
無(wú)源蜂鳴器震蕩須有高低電平變化 三極管導(dǎo)通必須是b極和e極有足夠的壓降 而你的無(wú)源蜂鳴器放在c極無(wú)形中抬高了c、b極電勢(shì) 使b、e極壓降不能夠使三極管正常導(dǎo)通 就沒(méi)有了高低電平的變化 蜂鳴器就無(wú)法震蕩 你可以吧蜂鳴器連接在e極 和vcc之間 再加個(gè)限流電阻 |
給你一個(gè)適合這個(gè)電路的演示程序試試 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit Buzzer=P2^4; /*------------------------------- 1ms延時(shí)程序(12MHz 12T) -------------------------------*/ void delayms(uint k) { uint i,j; for(i=k;i>0;i--) for(j=114;j>0;j--); } /*--------------------------- 無(wú)源蜂鳴器驅(qū)動(dòng)程序(12MHz 12T) ---------------------------*/ void BUZZER(uint x) //0.24ms半周期蜂鳴器程序 { uchar t; while(x--) { Buzzer=~Buzzer; //蜂鳴器諧振頻率2048Hz for(t=0;t<28;t++); //0.24ms半周期=2083Hz } Buzzer=1; //復(fù)位 } void main() { while(1) { BUZZER(500); delayms(500); } } |
光有方波不行,頻率必須滿足人的耳朵可聽(tīng)范圍,過(guò)低就是次聲波,過(guò)高是超聲波,蜂鳴器不能工作,人耳也無(wú)法接受 |
試試將延時(shí)時(shí)間,減到50~100ms ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
無(wú)源蜂鳴器就是沒(méi)有震蕩源,需要自己加振蕩源的,你可以讓buzzer驅(qū)動(dòng)管腳,2-3KHz的頻率輸出試一下 |
參與人數(shù) 1 | 黑幣 +30 | 收起 理由 |
---|---|---|
![]() | + 30 | 回帖助人的獎(jiǎng)勵(lì)! |
人中狼 發(fā)表于 2018-9-8 23:03 可是我寫了方波信號(hào),所以無(wú)論是有源無(wú)源的蜂鳴器都應(yīng)該至少會(huì)響吧。 |
無(wú)源蜂鳴器是需要一定頻率的脈沖波來(lái)驅(qū)動(dòng)的,首先確定是否是無(wú)源蜂鳴器,現(xiàn)在非必要情況一般應(yīng)該都是用有源蜂鳴器,電路簡(jiǎn)單,程序也簡(jiǎn)單。 現(xiàn)在的51單片機(jī)的RAM都已經(jīng)是0-0XFF了,不過(guò)0x80-0xff的尋址方式好像和0-0X7F有不同 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
Powered by 單片機(jī)教程網(wǎng)