欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1593|回復: 3
收起左側

請教51單片機嗡鳴器程序問題

[復制鏈接]
ID:680011 發表于 2021-10-11 21:16 | 顯示全部樓層 |閱讀模式
我想在程序中添加嗡鳴器,也就是按一下按鍵,嗡鳴器響一聲的,這個嗡鳴器程序怎么寫?
#include<reg52.h
#define uint unsigned int
uint i,j;
sbit led0=P1^3;
sbit k1=P1^1;
sbit k2=P3^7;
sbit k3=P3^3;
sbit LED1=P1^0;
sbit LED2=P3^6;
sbit LED3=P1^5;
void DelayUs2x(unsigned char t);//函數聲明
void DelayMs(unsigned char t);
void main()
{        
        EA=1;
        EX0=1;
        IT0=1;
        k2=1;
        k1=1;        
        k3=1;
        LED1=1;
        LED2=1;
        LED3=1;
        //led0=1;
        while(1)
        {
        
        if(!k1)         //K1按鍵指令
          DelayMs(10);
           if(!k1)
           {
                           
                 while(!k1)
                   {  

            k1=0;   
            k2=1;
                k3=1;
                LED1=0;
                LED2=1;
                LED3=1;
                 {
                   led0=0;//釋放則執行需要的程序
                        break;
                 }
                   }
           }
                if(!k2)                 //K2按鍵指令
             DelayMs(10);
               if(!k2)
             {
                 while(!k2)
                   {
                 k2=0;
                 k1=1;        
                 k3=1;
                 LED2=0;
                 LED1=1;
                 LED3=1;
                {
                     led0=0;//釋放則執行需要的程序
                          for(i=7000;i>0;i--)
                                for(j=220;j>0;j--);        
                     led0=1;
                      for(i=7000;i>0;i--)
                                for(j=220;j>0;j--);        
                            break;
                        }         
                   }
                 }
        if(!k3)          //K3按鍵指令
     DelayMs(10);
          if(!k3)
           {
                 while(!k3)
                   {
                k3=0;
                k1=1;   
                k2=1;
                LED3=0;
                LED1=1;
                LED2=1;
                    {
                            led0=0;//釋放則執行需要的程序
                            for(i=7000;i>0;i--)
                                    for(j=220;j>0;j--);        
                        led0=1;
                            for(i=12000;i>0;i--)
                                    for(j=220;j>0;j--);        
                        break;
                        }                  
               }
           }
     }
}


void DelayUs2x(unsigned char t)
{   
while(--t);
}
void DelayMs(unsigned char t)
{

while(t--)
{
     //大致延時1mS
     DelayUs2x(245);
         DelayUs2x(245);
}
}
void K1(void) interrupt 0 using 1
{
        
        k1=1;
        k2=1;
        k3=1;
        LED1=1;
        LED2=1;
        LED3=1;        
    led0=1;//釋放則執行需要的程序
                          //for(i=0;i>0;i--)  
                        //        for(j=0;j>0;j--);         
}  

回復

使用道具 舉報

ID:624769 發表于 2021-10-11 23:03 | 顯示全部樓層
先確定有源蜂鳴器,還是無源蜂鳴器,有源的話,就和控制LED燈亮一下一樣的操作。
無源的話,需要翻轉IO口來操作。
回復

使用道具 舉報

ID:752974 發表于 2021-10-12 16:32 | 顯示全部樓層
市場上常用的蜂鳴器使用很簡單,用一個三極管驅動,和LED一樣操作即可。
回復

使用道具 舉報

ID:514901 發表于 2021-10-13 09:17 | 顯示全部樓層
按照你的要求,建議使用有源蜂鳴器比較好,記得要加驅動電路,一般是三極管,其控制方法跟LED一樣的,無源蜂鳴器就復雜一點,需要給他一個特定頻率的脈沖才會響
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表