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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6907|回復: 30
收起左側

51單片機怎么實現蜂鳴器和數顯管同時工作?

  [復制鏈接]
回帖獎勵 50 黑幣 回復本帖可獲得 50 黑幣獎勵! 每人限 1 次(中獎概率 50%)
ID:417679 發表于 2018-11-6 08:09 | 顯示全部樓層 |閱讀模式
如何用51單片機實現數顯管和蜂鳴器一起工作
回復

使用道具 舉報

ID:1 發表于 2018-11-7 00:57 | 顯示全部樓層

回帖獎勵 +50 黑幣

回復

使用道具 舉報

ID:311157 發表于 2018-11-8 17:37 | 顯示全部樓層
你是說兩者一起工作嗎?設定一個基礎時間,一個時間變量控制數碼管點亮,一個時間變量控制蜂鳴器。蜂鳴器隨數碼管變化而工作的話,定時器中斷掃描數碼管,再設定標志判斷蜂鳴器的狀工作態
回復

使用道具 舉報

ID:422973 發表于 2018-11-8 14:18 | 顯示全部樓層
數碼管與蜂鳴器連接起來,就好了吧
回復

使用道具 舉報

ID:419294 發表于 2018-11-8 13:00 | 顯示全部樓層
#include<reg51.h>

//--定義使用的IO--//
#define GPIO_DIG P0

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

//--定義全局變量--//
unsigned char code DIG_CODE[17]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼
unsigned char DisplayData[8];
//用來存放要顯示的8位數的值

//--聲明全局函數--//
void DigDisplay(); //動態顯示函數
/*******************************************************************************
* 函 數 名         : main
* 函數功能                   : 主函數
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
void main(void)
{
        unsigned char i;
        for(i=0;i<8;i++)
        {
                DisplayData[i]=DIG_CODE[i];       
        }
        while(1)
        {
                DigDisplay();
        }                               
}
/*******************************************************************************
* 函 數 名         : DigDisplay
* 函數功能                   : 使用數碼管顯示
* 輸    入         : 無
* 輸    出         : 無
*******************************************************************************/
void DigDisplay()
{
        unsigned char i;
        unsigned int j;
        for(i=0;i<8;i++)
        {
                switch(i)         //位選,選擇點亮的數碼管,
                {
                        case(0):
                                LSA=0;LSB=0;LSC=0; break;//顯示第0位
                        case(1):
                                LSA=1;LSB=0;LSC=0; break;//顯示第1位
                        case(2):
                                LSA=0;LSB=1;LSC=0; break;//顯示第2位
                        case(3):
                                LSA=1;LSB=1;LSC=0; break;//顯示第3位
                        case(4):
                                LSA=0;LSB=0;LSC=1; break;//顯示第4位
                        case(5):
                                LSA=1;LSB=0;LSC=1; break;//顯示第5位
                        case(6):
                                LSA=0;LSB=1;LSC=1; break;//顯示第6位
                        case(7):
                                LSA=1;LSB=1;LSC=1; break;//顯示第7位       
                }
                GPIO_DIG=DisplayData[i];//發送段碼
                j=10;                                                 //掃描間隔時間設定
                while(j--);       
                GPIO_DIG=0x00;//消隱
        }
}
回復

使用道具 舉報

ID:420363 發表于 2018-11-7 18:45 | 顯示全部樓層
把他們的io口分別配置好吧
回復

使用道具 舉報

ID:421812 發表于 2018-11-7 15:12 | 顯示全部樓層
讓控制蜂鳴器的端口有效,也讓控制LED的端口有效.或者說考慮為單片機驅動不足,可添加三極管輔助驅動.
回復

使用道具 舉報

ID:420218 發表于 2018-11-7 11:49 | 顯示全部樓層
程序調試好可以實現,MCU沒試過,找機會試試
回復

使用道具 舉報

ID:422024 發表于 2018-11-6 21:45 | 顯示全部樓層
51沒有進程的,也不能(微觀)同時;(宏觀)是可以的,增大晶振,減少數據的時長。
回復

使用道具 舉報

ID:422033 發表于 2018-11-6 21:45 | 顯示全部樓層
使用定時器來控制蜂鳴器的開啟和關閉
回復

使用道具 舉報

ID:422033 發表于 2018-11-6 21:45 | 顯示全部樓層
使用定時器來控制蜂鳴器的開啟和關閉
回復

使用道具 舉報

ID:421986 發表于 2018-11-6 21:07 | 顯示全部樓層
蜂鳴器最好還是用另外的供電?不要直接用引腳啊,接個三極管驅動。
回復

使用道具 舉報

ID:421986 發表于 2018-11-6 20:48 | 顯示全部樓層
三極管驅動蜂鳴器,程序的話用輪流處理也ok
回復

使用道具 舉報

ID:396996 發表于 2018-11-6 19:20 | 顯示全部樓層
寫在一個for循環里 for{數碼管=1 ;delay(2500);數碼管=0;delay(2500);beep=~beep;delay(1);}
回復

使用道具 舉報

ID:413632 發表于 2018-11-6 18:41 | 顯示全部樓層
這個不難,只是可能你還沒寫過這類似程序,單片機運行速度是很快的,所以單片機可以在很短的時間內做很多事情,以至于讓你感覺這些事情是同時做的。你可以使用標志位控制蜂鳴器,比如你想讓蜂鳴器發聲標志位置1,關閉蜂鳴器置0;還可以使用定時器控制蜂鳴器發聲頻率。

評分

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

查看全部評分

回復

使用道具 舉報

ID:243982 發表于 2018-11-6 18:09 | 顯示全部樓層
樓上正解 新人學習了
回復

使用道具 舉報

ID:115473 發表于 2018-11-6 17:49 | 顯示全部樓層
這兩個器件使能肯定要連接在一起。
回復

使用道具 舉報

ID:421883 發表于 2018-11-6 17:42 | 顯示全部樓層
將蜂鳴器使能引腳與數顯管的使能引腳一起置位就好了
回復

使用道具 舉報

ID:421859 發表于 2018-11-6 17:04 | 顯示全部樓層
# include "reg52.h" # define u16 unsigned int  typedef unsigned char u8; sbit k1 = P3^1;     //  位定義 k1 sbit k2 = P3^0;     //  位定義 k2 sbit k3 = P3^2;        //  位定義 k3 sbit k4 = P3^3;        //  位定義 k4 sbit beep = P1^5;    //  定義P1^5為蜂鳴器 sbit a = P2^2;     //     sbit b = P2^3; sbit c = P2^4; u8 h,m; u8 code n[]={0x79,0x3e,0x3f,0x38}; // 顯示L o v  # define smg P0     //  宏定義 數碼管 u8 p=0, q=0;    void delay(u16 i)  //  延時函數 { while (i--); } void love()    //  數碼管顯示LOVE  { u8 i=100;         while (i--)   //  該循環可以跳出 即可執行其下程序 {   for(h=0;h<=7;h+=2)   {    switch (h)           //  位選,選擇點亮的數碼管,    {     case 0: a=0;b=0;c=0;break; //顯示第0位     case 2: a=0;b=1;c=0;break; //    2     case 4: a=0;b=0;c=1;break; //    4     case 6: a=0;b=1;c=1;break; //    6    }       m=h/2;              smg=n[m];         //  發送段碼    delay(100);   } } }     void sound()   //  蜂鳴器響 { u8 i=100; while (i--)     // 只要不是死循環(while(1))即可 {   beep=~beep;   delay(500); } } void key()            //  判斷哪個開關按下 { if (k1==0)  //  開 {   delay(1000);  // 消抖   if (k1==0)     {    q=1;    }   while (!k1); } if (k2==0)   // 關 {   delay(1000);  // 消抖   if (k2==0)     {    q=0;    }   while (!k2); } if (k3==0)    //  開 {   delay(1000);  // 消抖   if (k3==0)     {    p=1;    }   while (!k3); } if (k4==0)  //  關 {   delay(1000);     if (k4==0)     {    p=0;    }   while (!k4); } } void main() { while (1) { key();   if (q == 1)  LOVE   {    love();    }   else    {    smg=0x00;   }      key();      if (p == 1)    {    sound();    }   else     {    beep = 1;   } } }
回復

使用道具 舉報

ID:421859 發表于 2018-11-6 17:03 | 顯示全部樓層
使用定時器來控制蜂鳴器的開啟和關閉
回復

使用道具 舉報

ID:421859 發表于 2018-11-6 17:02 | 顯示全部樓層
使用定時器來控制蜂鳴器的開啟和關閉
回復

使用道具 舉報

ID:421836 發表于 2018-11-6 16:47 | 顯示全部樓層
蜂鳴器使能引腳與數顯管 相連接
加上程序代碼可以實現
回復

使用道具 舉報

ID:421836 發表于 2018-11-6 16:46 | 顯示全部樓層
數碼管與蜂鳴器連接起來,用三極管驅動蜂鳴器,用鎖存器控制數顯再找相關應用電路就很好解決
回復

使用道具 舉報

ID:421165 發表于 2018-11-6 15:26 來自觸屏版 | 顯示全部樓層
引腳接好
回復

使用道具 舉報

ID:354498 發表于 2018-11-6 14:39 | 顯示全部樓層
你在這指的是功率上怎么解決還是指電路怎么實現或者軟件怎么寫呢?前兩者的話用三極管驅動蜂鳴器,用鎖存器控制數顯再找相關應用電路就很好解決,至于程序的話可以百度一下相關例程,移植組合一下就行了
回復

使用道具 舉報

ID:386762 發表于 2018-11-6 13:55 | 顯示全部樓層
程序都可以實現呀
回復

使用道具 舉報

ID:277550 發表于 2018-11-6 13:03 | 顯示全部樓層

如果是無源的,還有浪費一點的做法,就是另外用一個MCU來發聲。
回復

使用道具 舉報

ID:123289 發表于 2018-11-6 13:03 | 顯示全部樓層
好好按排一下,輪流處理兩者,時間足夠。
回復

使用道具 舉報

ID:421569 發表于 2018-11-6 10:56 | 顯示全部樓層
數碼管與蜂鳴器連接起來
回復

使用道具 舉報

ID:421526 發表于 2018-11-6 10:11 | 顯示全部樓層
將蜂鳴器使能引腳與數顯管的使能引腳一起置位就好了
回復

使用道具 舉報

ID:89515 發表于 2018-11-6 09:42 | 顯示全部樓層
有源蜂鳴器還是無源蜂鳴器,只是簡單的發出一種頻率嗎?一直響,還是間歇響?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人精品免费视频大全最热 | 久久久一| av在线免费播放 | 亚洲一区综合 | 亚洲成网站 | 日韩精品在线播放 | 日本成人毛片 | 中文字幕一区二区三区乱码图片 | 日韩插插 | 香蕉二区| 日韩精品人成在线播放 | 精品国产乱码久久久久久丨区2区 | 婷婷久久久久 | 精品免费看| 日韩一区二区在线视频 | 国产精品久久久久久久久久久久久久 | 日韩一区二区三区精品 | 国产成人免费视频网站视频社区 | 久久精品小视频 | 91麻豆精品国产91久久久久久 | 精品亚洲一区二区三区 | 91偷拍精品一区二区三区 | 亚洲精品二区 | 亚洲性综合网 | 国产精品成人一区二区三区 | 成人午夜影院 | 亚洲午夜在线 | 国产精品久久久久久妇女6080 | 日韩成人在线免费视频 | 欧美精品久久久久久久久老牛影院 | 欧美福利专区 | 国产精品爱久久久久久久 | 日韩精品视频在线 | jizz视频| 一二区成人影院电影网 | 久久毛片 | 91久久久久| 91操操操 | 国产一区二区免费在线 | 久久人人国产 | 免费观看色 |