![]() |
data D區 不是00h-7fh嗎 為什么會有0a0h ?地址是連續的,有但是已經不是data。 |
檢查焊的是不是搞錯成無源蜂鳴器,5V有源蜂鳴器外殼上有標示+號,長腳為正 |
應該是你們震蕩源有問題,在測試看看 |
無源蜂鳴器震蕩須有高低電平變化 三極管導通必須是b極和e極有足夠的壓降 而你的無源蜂鳴器放在c極無形中抬高了c、b極電勢 使b、e極壓降不能夠使三極管正常導通 就沒有了高低電平的變化 蜂鳴器就無法震蕩 你可以吧蜂鳴器連接在e極 和vcc之間 再加個限流電阻 |
給你一個適合這個電路的演示程序試試 #include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit Buzzer=P2^4; /*------------------------------- 1ms延時程序(12MHz 12T) -------------------------------*/ void delayms(uint k) { uint i,j; for(i=k;i>0;i--) for(j=114;j>0;j--); } /*--------------------------- 無源蜂鳴器驅動程序(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; //復位 } void main() { while(1) { BUZZER(500); delayms(500); } } |
光有方波不行,頻率必須滿足人的耳朵可聽范圍,過低就是次聲波,過高是超聲波,蜂鳴器不能工作,人耳也無法接受 |
試試將延時時間,減到50~100ms ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
人中狼 發表于 2018-9-8 23:03 可是我寫了方波信號,所以無論是有源無源的蜂鳴器都應該至少會響吧。 |