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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9578|回復: 21
收起左側

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

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

使用道具 舉報

ID:149451 發表于 2017-4-28 11:42 | 顯示全部樓層
在仿真里跑了下LZ的程序,1602能隨按鍵顯示被按下的按鍵號,BUZZ端的蜂鳴貌似沒有看到如何控制的,有個按鍵沒定義、使用(P2.7),是否應接在中斷T0上?并在程序初始化里加入有關T0的應用,即按下BUZZ鍵,蜂鳴器響再按就停。另,LZ的按鍵上拉電阻位置都不對吧??

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:194466 發表于 2017-4-28 11:44 | 顯示全部樓層
我仔細分析了你的電路圖,在4/6那張圖右端,200hz蜂鳴器的正負極直接聯通是錯誤的,就算其它電路和軟件系統都正常工作,蜂鳴器也不會鳴響的。請仔細檢查電路板,可以將板上連接正負極的線路斷開試試,應該能正常發聲了。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:112693 發表于 2017-4-26 20:36 | 顯示全部樓層
程序里面定義
sbit BUZZ =P1^1;//蜂鳴器控制引腳

你給的線路圖,BUZZ是接在 P1^0 上,你換一下試試!!!
回復

使用道具 舉報

ID:193976 發表于 2017-4-26 20:47 | 顯示全部樓層
可能是電壓的問題你測一下
回復

使用道具 舉報

ID:7485 發表于 2017-4-26 21:00 | 顯示全部樓層
有一種無源蜂鳴器像喇叭一樣需要音頻或脈沖電流推動。直接接直流不響的。但是這種比較少見。
回復

使用道具 舉報

ID:194034 發表于 2017-4-26 23:19 | 顯示全部樓層
程序不對或者電路圖不對都可能影響這個蜂鳴器。檢查一下就好了。
回復

使用道具 舉報

ID:194367 發表于 2017-4-27 21:33 | 顯示全部樓層
應該是程序問題
回復

使用道具 舉報

ID:193970 發表于 2017-4-27 22:19 | 顯示全部樓層
我就知道一點接到的電阻不要太大。
回復

使用道具 舉報

ID:193877 發表于 2017-4-27 22:33 | 顯示全部樓層

程序不對或者電路圖不對都可能影響這個蜂鳴器。檢查一下就好了。
回復

使用道具 舉報

ID:194425 發表于 2017-4-28 00:10 | 顯示全部樓層
程序或者電路圖都可能影響這個蜂鳴器
回復

使用道具 舉報

ID:194454 發表于 2017-4-28 09:07 | 顯示全部樓層
最后一條語句  BUZZ=BUZZ;并沒有反轉,要 BUZZ=~BUZZ;
回復

使用道具 舉報

ID:194489 發表于 2017-4-28 10:33 | 顯示全部樓層
是不是沒接好線路
回復

使用道具 舉報

ID:194489 發表于 2017-4-28 10:34 | 顯示全部樓層
檢查一下程序吧
回復

使用道具 舉報

ID:183046 發表于 2017-4-28 12:17 | 顯示全部樓層
仿真軟件的聲音上仿真不是很好,我自己試過了聲音一卡一卡的。具體的你可以用開發板搭下電路來看下的。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:74868 發表于 2017-4-28 17:16 | 顯示全部樓層
要考慮蜂鳴器的頻率是否合適
回復

使用道具 舉報

ID:170955 發表于 2017-4-28 17:54 | 顯示全部樓層
修改下蜂鳴器里邊的電壓把12V改成5V應該就行了
回復

使用道具 舉報

ID:194608 發表于 2017-4-28 17:54 | 顯示全部樓層
蜂鳴器的電源連接有問題
回復

使用道具 舉報

ID:194619 發表于 2017-4-28 18:26 | 顯示全部樓層
大兄弟,這個要你自己仔細檢查的呀
回復

使用道具 舉報

ID:158622 發表于 2017-4-28 22:50 | 顯示全部樓層
D1二極管去除試試
回復

使用道具 舉報

ID:111634 發表于 2017-4-29 18:58 | 顯示全部樓層
這么亂的程序!
回復

使用道具 舉報

ID:197441 發表于 2017-5-6 19:04 | 顯示全部樓層
可以試試將蜂鳴器元件換成buzzer,再調一下電壓就好
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜激情网| 国产精品2区 | 国产日产久久高清欧美一区 | 国产精品美女久久久久久久久久久 | 欧州一区二区三区 | 成人在线一区二区三区 | 狠狠操av | 免费99视频| 欧美一区二区三区高清视频 | 国产在线www| 久久精品久久久久久 | 亚洲不卡在线观看 | av中文字幕在线 | 亚洲国产精品精华素 | 精品九九| 中国一级大毛片 | 成人区精品一区二区婷婷 | 日韩欧美国产精品 | 国产精品久久久久久av公交车 | 黄色成人国产 | 久久亚洲欧美日韩精品专区 | 黄色网络在线观看 | 91国产视频在线 | 久久高清| 亚洲美女一区 | 国产精品久久久久久影院8一贰佰 | 亚洲一区二区三区四区视频 | 国产精品免费一区二区三区 | 久久国产精品久久久久久 | 国产视频线观看永久免费 | 天天射色综合 | 色婷婷久久久久swag精品 | 国产第一区二区 | 男女视频在线免费观看 | 中文在线a在线 | 91中文字幕在线 | 精品国产乱码久久久久久久久 | 日韩精品在线一区二区 | 亚洲精品一区二区三区蜜桃久 | 蜜桃在线视频 | 视频羞羞|