天天看點

藍橋杯單片機比賽蜂鳴器與繼電器子產品(原理、代碼詳解)

原件原理

1、蜂鳴器

        蜂鳴器是一個發聲裝置,一般用于提示聲。分為有源蜂鳴器和無源蜂鳴器,

        有源蜂鳴器内部有一個發聲電路,也就是“源”(震蕩源,與無源蜂鳴器的差別),隻要通電就可以響;無源蜂鳴器相當于揚聲器,無源蜂鳴器直接接直流電,隻在剛接觸和離開的時候發聲(利用電磁感應現象,通電、斷電時推動振膜發聲),一般使用方波信号源驅動發聲。在這裡我們可以判斷一下我們使用的是哪種蜂鳴器?

藍橋杯單片機比賽蜂鳴器與繼電器子產品(原理、代碼詳解)
藍橋杯單片機比賽蜂鳴器與繼電器子產品(原理、代碼詳解)

                 蜂鳴器實物圖                                                            蜂鳴器驅動電路圖

2、繼電器

        繼電器是一個電子機械開關,通過開關K來控制銜鐵是與靜觸點A接觸(點亮小燈泡)還是與靜觸點B接觸(熄滅小燈泡),這就是繼電器的工作原理,如果我們用單片機來控制開關K,就可以通過程式實作控制用電器。

藍橋杯單片機比賽蜂鳴器與繼電器子產品(原理、代碼詳解)

藍橋杯單片機比賽蜂鳴器與繼電器子產品(原理、代碼詳解)

編輯

                                                            ​​​​​​​繼電器内部原理圖

原理圖

在寫程式之前,我們還是要先看懂原理圖。在這個原理圖裡,我們又見到了一個新的晶片ULN2003A。

ULN2003的内部是由一個反向放大電流的七路達令頓管的電路組成,作用是反向放大電流用來驅動蜂鳴器、繼電器、電機等大電流裝置。注意這裡的反向放大。

藍橋杯單片機比賽蜂鳴器與繼電器子產品(原理、代碼詳解)

 如果我們要通過單片機控制蜂鳴器、繼電器,首先要打開控制的573鎖存器(打開Y5  P2=0XA0)再打開控制繼電器的Q5和控制蜂鳴器的Q7,最終都是由P0端口控制的,P04=1打開繼電器、P06=1打開蜂鳴器,在這裡我們發現将IO口置高電平才能使用蜂鳴器繼電器,是因為ULN2003反向放大了電流,是以要置高電平使用。

代碼詳解

1、繼電器每隔一秒鐘打開

//繼電器每隔一秒鐘打開

#include <STC15F2K60S2.H>

void Delayms(unsigned int ms);

void main(void)    
{
    P2=0X80;P0=0XFF;P2=0XA0;P0=0X00;        //初始化程式,後面會出一章專門解釋
    while(1)
    {
        P2=0XA0;        //打開控制的573鎖存器
        P04=1;          //打開繼電器
        Delayms(500);   //延時500ms
        P04=0;          //關閉繼電器
        Delayms(500);   //延時500ms
        
    }
}

void Delayms(unsigned int ms)
{
    unsigned int i,j;
    for(i=0;i<ms;i++)
        for(j=845;j>0;j--);
}
           

2、蜂鳴器每隔一秒鐘發聲

//蜂鳴器每隔一秒鐘發聲

#include <STC15F2K60S2.H>

void Delayms(unsigned int ms);

void main(void)    
{
    P2=0X80;P0=0XFF;P2=0XA0;P0=0X00;        //初始化程式,後面會出一章專門解釋
    while(1)
    {
        P2=0XA0;        //打開控制的573鎖存器
        P06=1;          //打開蜂鳴器
        Delayms(500);   //延時500ms
        P06=0;          //關閉蜂鳴器
        Delayms(500);   //延時500ms
        
    }
}

void Delayms(unsigned int ms)
{
    unsigned int i,j;
    for(i=0;i<ms;i++)
        for(j=845;j>0;j--);
}
           

繼續閱讀