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

QQ登錄

只需一步,快速開始

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

為什么蜂鳴器不會(huì)響是程序的問題還是電路圖

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:191774 發(fā)表于 2017-4-26 20:29 來自手機(jī) | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg51.h>        //頭文件 #define uchar unsigned char    //預(yù)定義 #define uint unsigned int #define lcd_dat  P0 BUZZsbit lcdrs=P2^6;     //1602的數(shù)據(jù)/指令選擇控制線 sbit lcdrw=P2^5;      //1602的讀寫控制線sbit lcden=P2^4;      //1602的使能控制線sbit yihao=P2^0;        //一號(hào)病房按鍵sbit erhao=P2^1;sbit sanhao=P2^2; sbit sihao=P2^3; uchar table1[]="Number";uchar table2[]="1234"; void delay(uint z)       //延時(shí)子程序 {   uint x,y;   for(x=z;x>0;x--)   for(y=110;y>0;y--); }void write_com(uchar com)    //寫命令子程序 {  lcdrs=0;   lcdrw=0;     P0=com;  delay(5);  lcden=1; delay(3);lcden=0; } void write_data(uchar date)     //寫數(shù)據(jù)子程序 { lcdrs=1;   lcdrw=0;     P0=date;   delay(5);  lcden=1;  delay(3);  lcden=0;} void init()              //1602初始化子程序 {  write_com(0x38);//顯示模式設(shè)置。         delay(5);  write_com(0x0c);//關(guān)光標(biāo),不閃爍        delay(5);   write_com(0x06);  //顯示地址遞增,即寫一個(gè)數(shù)據(jù)后,顯示位置右移位          delay(5);  write_com(0x01); //清屏  delay(5); } void Number()                //顯示Number子程序 {uchar m;  write_com(0x80);        for(m=0;m<6;m++)     //將table[]中的數(shù)據(jù)依次寫入1602顯示      {              write_data(table1[m]);                        delay(200); } } void main()            //主函數(shù)  { unsigned char FLAG;   //FLAG的值為P2口的值   init(); do{     FLAG=P2;  switch(FLAG&0X0f)      //屏蔽P2口高四位 { case 0X0E:        Number();        write_com(0x80+10);   //顯示地址設(shè)為90H(即10H,)上排第十位                          write_data(table2[0]);                   delay(200);      break; case 0X0D:         Number();         write_com(0x80+10);   //顯示地址設(shè)為90H(即10H,)上排第十位                                write_data(table2[1]);                               delay(200);                   break;case 0X0B:        Number();        write_com(0x80+10);   //顯示地址設(shè)為90H(即10H,)上排第十位                          write_data(table2[2]);                               delay(200);             break;case 0X07:             Number();        write_com(0x80+10);   //顯示地址設(shè)為90H(即10H,)上排第十位                        write_data(table2[3]);                               delay(200);                     break; default:         break;          }       } while(1); }sbit BUZZ =P1^1;   //蜂鳴器控制引腳unsigned char T0LoadH= 0;  //T0重載值的高字節(jié)unsigned char T0LoadL=0;  //T0重載值的低字節(jié)void OpenBuzz(unsigned int frequ);void StopBuzz();void major(){    unsigned int i=0;    TMOD=0x01; //配置T0工作在模式1,暫不啟動(dòng)    EA=1;      //使能全局中斷    while (1)    {      OpenBuzz(4000); //以4KHz的頻率啟動(dòng)蜂鳴器      for (i=0; i<40000; i++);      StopBuzz();      for (i=0; i<40000; i++);      OpenBuzz(1000); //以1KHz的頻率啟動(dòng)蜂鳴器      for (i=0; i<40000; i++);      StopBuzz();      for (i=0; i<40000; i++);    } }void OpenBuzz(unsigned int frequ){    unsigned int reload;    reload = 65536-(11059200/12)/(frequ*2);  //由給定頻率值計(jì)算定時(shí)器重載值    T0LoadH=reload>>8;  //16位重載值分解為高低兩個(gè)字節(jié)    T0LoadL = reload;    TH0=0xFF;//設(shè)定一個(gè)接近溢出的初值,以使定時(shí)器馬上投入工作    TL0=0xFE;    ET0=1;   //使能T0中斷    TR0=1;   //啟動(dòng)T0}void StopBuzz(){   ET0=0;   //禁用T0中斷   TR0=0;   //停止T0}void InterruptTimer0() interrupt 1{   TH0=T0LoadH;  //溢出后進(jìn)入中斷重新賦值   TL0=T0LoadL;   BUZZ=BUZZ; //反轉(zhuǎn)蜂鳴器控制電平}

-34b938c2cb06363d.png (67.78 KB, 下載次數(shù): 69)

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

使用道具 舉報(bào)

來自 2#
ID:149451 發(fā)表于 2017-4-28 11:42 | 只看該作者
在仿真里跑了下LZ的程序,1602能隨按鍵顯示被按下的按鍵號(hào),BUZZ端的蜂鳴貌似沒有看到如何控制的,有個(gè)按鍵沒定義、使用(P2.7),是否應(yīng)接在中斷T0上?并在程序初始化里加入有關(guān)T0的應(yīng)用,即按下BUZZ鍵,蜂鳴器響再按就停。另,LZ的按鍵上拉電阻位置都不對(duì)吧??

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

來自 3#
ID:194466 發(fā)表于 2017-4-28 11:44 | 只看該作者
我仔細(xì)分析了你的電路圖,在4/6那張圖右端,200hz蜂鳴器的正負(fù)極直接聯(lián)通是錯(cuò)誤的,就算其它電路和軟件系統(tǒng)都正常工作,蜂鳴器也不會(huì)鳴響的。請(qǐng)仔細(xì)檢查電路板,可以將板上連接正負(fù)極的線路斷開試試,應(yīng)該能正常發(fā)聲了。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:112693 發(fā)表于 2017-4-26 20:36 | 只看該作者
程序里面定義
sbit BUZZ =P1^1;//蜂鳴器控制引腳

你給的線路圖,BUZZ是接在 P1^0 上,你換一下試試。。
回復(fù)

使用道具 舉報(bào)

5#
ID:193976 發(fā)表于 2017-4-26 20:47 | 只看該作者
可能是電壓的問題你測(cè)一下
回復(fù)

使用道具 舉報(bào)

6#
ID:7485 發(fā)表于 2017-4-26 21:00 | 只看該作者
有一種無源蜂鳴器像喇叭一樣需要音頻或脈沖電流推動(dòng)。直接接直流不響的。但是這種比較少見。
回復(fù)

使用道具 舉報(bào)

7#
ID:194034 發(fā)表于 2017-4-26 23:19 | 只看該作者
程序不對(duì)或者電路圖不對(duì)都可能影響這個(gè)蜂鳴器。檢查一下就好了。
回復(fù)

使用道具 舉報(bào)

8#
ID:194367 發(fā)表于 2017-4-27 21:33 | 只看該作者
應(yīng)該是程序問題
回復(fù)

使用道具 舉報(bào)

9#
ID:193970 發(fā)表于 2017-4-27 22:19 | 只看該作者
我就知道一點(diǎn)接到的電阻不要太大。
回復(fù)

使用道具 舉報(bào)

10#
ID:193877 發(fā)表于 2017-4-27 22:33 | 只看該作者

程序不對(duì)或者電路圖不對(duì)都可能影響這個(gè)蜂鳴器。檢查一下就好了。
回復(fù)

使用道具 舉報(bào)

11#
ID:194425 發(fā)表于 2017-4-28 00:10 | 只看該作者
程序或者電路圖都可能影響這個(gè)蜂鳴器
回復(fù)

使用道具 舉報(bào)

12#
ID:194454 發(fā)表于 2017-4-28 09:07 | 只看該作者
最后一條語句  BUZZ=BUZZ;并沒有反轉(zhuǎn),要 BUZZ=~BUZZ;
回復(fù)

使用道具 舉報(bào)

13#
ID:194489 發(fā)表于 2017-4-28 10:33 | 只看該作者
是不是沒接好線路
回復(fù)

使用道具 舉報(bào)

14#
ID:194489 發(fā)表于 2017-4-28 10:34 | 只看該作者
檢查一下程序吧
回復(fù)

使用道具 舉報(bào)

15#
ID:183046 發(fā)表于 2017-4-28 12:17 | 只看該作者
仿真軟件的聲音上仿真不是很好,我自己試過了聲音一卡一卡的。具體的你可以用開發(fā)板搭下電路來看下的。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

16#
ID:74868 發(fā)表于 2017-4-28 17:16 | 只看該作者
要考慮蜂鳴器的頻率是否合適
回復(fù)

使用道具 舉報(bào)

17#
ID:170955 發(fā)表于 2017-4-28 17:54 | 只看該作者
修改下蜂鳴器里邊的電壓把12V改成5V應(yīng)該就行了
回復(fù)

使用道具 舉報(bào)

18#
ID:194608 發(fā)表于 2017-4-28 17:54 | 只看該作者
蜂鳴器的電源連接有問題
回復(fù)

使用道具 舉報(bào)

19#
ID:194619 發(fā)表于 2017-4-28 18:26 | 只看該作者
大兄弟,這個(gè)要你自己仔細(xì)檢查的呀
回復(fù)

使用道具 舉報(bào)

20#
ID:158622 發(fā)表于 2017-4-28 22:50 | 只看該作者
D1二極管去除試試
回復(fù)

使用道具 舉報(bào)

21#
ID:111634 發(fā)表于 2017-4-29 18:58 | 只看該作者
這么亂的程序!
回復(fù)

使用道具 舉報(bào)

22#
ID:197441 發(fā)表于 2017-5-6 19:04 | 只看該作者
可以試試將蜂鳴器元件換成buzzer,再調(diào)一下電壓就好
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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