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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4391|回復: 11
收起左側

單片機C語言無源蜂鳴器使用定時器驅動程序求分析

[復制鏈接]
ID:232366 發表于 2021-2-10 16:14 來自觸屏版 | 顯示全部樓層 |閱讀模式
這次一個無源蜂鳴器驅動算是遇到問題了
此程序并非本人所寫也是借鑒于論壇大神帖子的!
程序如下:
定時器為八位自動重裝模式
定時250us;

void  timer()  interrupt   1
{

static uint16  count=0;
uint16   count;
if(num>0)
{
count++;
if(count<400)
{
beep=~beep;
if(count>=400)
beep=1;
if(count>=800)
{
count=0;
num--;
}

}


}

}
求問:三個if里面的的數值都決定了蜂鳴器的什么狀態?
回復

使用道具 舉報

ID:235200 發表于 2021-2-10 17:47 | 顯示全部樓層
void  timer()  interrupt   1
{

static uint16  count=0;
uint16   count;
if(num>0)
{
count++;
if(count<400)       //決定鳴叫
{
beep=~beep;
if(count>=400)      //決定不叫
beep=1;
if(count>=800)    //決定鳴叫和不叫的周期
{
count=0;
num--;                //決定鳴叫的次數
}
回復

使用道具 舉報

ID:702386 發表于 2021-2-10 18:04 | 顯示全部樓層
我來分析一下,如果說錯了多包涵。
這個程序運行起來的效果是,蜂鳴器會發出2000Hz的聲音(類似有源蜂鳴器的頻率),交替響100mS停100mS,響的次數由num決定。
第一個if(num>0),就是num還沒有自減到0時,才會執行里面的代碼。if(count<400),是指在前面400次中斷里(每次中斷250uS),蜂鳴器交替發聲,這就確定了發聲的聲音頻率是1s/500us=2000Hz。if(count>=400) beep=1是指,執行完前面400次中斷(100mS)后,在接下來的400次中斷(100mS)不發聲,直到if(count>=800)把count清零,才會回到發聲的代碼中,當然前提是num--后num還沒到0。
回復

使用道具 舉報

ID:236982 發表于 2021-2-10 18:33 | 顯示全部樓層
蜂鳴器的鳴響由變量NUM決定:
當變量num》時,蜂鳴器以占空比為50%、4KHZ的頻率間歇鳴響
NUM=0,蜂鳴器停止鳴響
第一個IF:蜂鳴器鳴響的先決條件
第二個IF:蜂鳴器開始鳴響1秒
第三個IF:蜂鳴器停止鳴響1秒
回復

使用道具 舉報

ID:390416 發表于 2021-2-10 19:04 | 顯示全部樓層
人人學會單片機 就是用的無源蜂鳴器,課程第25課和第26課
回復

使用道具 舉報

ID:213173 發表于 2021-2-10 21:09 | 顯示全部樓層
樓主抄作業也抄錯了吧。你這程序只能短暫響一下就沒聲音了。給你改一下并詳細注釋。
void  timer()  interrupt   1
{//功能:急促響鈴聲,適用于報警
        static uint16  count=0;//靜態局部計數變量
//        uint16   count;//錯誤:重復定義同名變量
        if(num>0)//num響鈴次數變量
        {
                count++;
                if(count<=1000)//<0.25秒
                        beep=~beep;//蜂鳴器響鈴,頻率2KHz
                if(count>1000) //>0.25秒
                        beep=1;           //蜂鳴器復位
                if(count>=2000)//0.5秒周期
                {
                        count=0;   //計數變量清0
                        num--;           //響鈴次數減1,直減到為0結束
                }
        }
}
回復

使用道具 舉報

ID:232366 發表于 2021-2-11 11:15 | 顯示全部樓層
wulin 發表于 2021-2-10 21:09
樓主抄作業也抄錯了吧。你這程序只能短暫響一下就沒聲音了。給你改一下并詳細注釋。
void  timer()  inter ...

新年好!!   非常感謝回復解答此程序正式出自您,我也照葫蘆畫瓢抄了一個 對其中運行原理弄不明白調試過程中配合邏輯分析儀調試硬是沒調通!!
回復

使用道具 舉報

ID:213173 發表于 2021-2-11 15:19 | 顯示全部樓層
SHANWAZI 發表于 2021-2-11 11:15
新年好!!   非常感謝回復解答此程序正式出自您,我也照葫蘆畫瓢抄了一個 對其中運行原理弄不明白調試過 ...

給你一個驅動無源蜂鳴器演示程序參考
示例 仿真.zip (155.53 KB, 下載次數: 40)

回復

使用道具 舉報

ID:232366 發表于 2021-2-11 16:54 | 顯示全部樓層
給壇友送個祝福:今天‬就是大年三十了,在此祝愿您新年好!新‬春快樂!祝愿您在2021年事事順心‬!天天開心!身健體‬康!闔家歡樂!恭發喜‬財!事事‬順心!萬事如意[慶祝][慶祝][慶祝][煙花][煙花][煙花][煙花][合十][合十][合十]2021發發發
回復

使用道具 舉報

ID:232366 發表于 2021-2-11 16:54 | 顯示全部樓層
wulin 發表于 2021-2-11 15:19
給你一個驅動無源蜂鳴器演示程序參考

非常感謝
回復

使用道具 舉報

ID:232366 發表于 2021-2-11 17:40 | 顯示全部樓層
wulin 發表于 2021-2-11 15:19
給你一個驅動無源蜂鳴器演示程序參考

里面元器件非常齊全很感謝
回復

使用道具 舉報

ID:420836 發表于 2021-2-15 02:00 | 顯示全部樓層
感謝大家的解釋,非常有幫助
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 爱爱视频网| 精品国产黄色片 | 久久久精品综合 | 黄色网址大全在线观看 | 三级特黄特色视频 | 国产精品a久久久久 | 免费毛片网站在线观看 | 亚洲精品欧美精品 | 男人天堂视频在线观看 | 在线观看中文字幕av | 欧美成人精品一区二区三区 | 亚洲视频在线观看 | 成人午夜激情 | 欧美综合一区二区三区 | 日韩在线中文 | 日韩亚洲视频 | 国内精品久久久久 | 丁香五月缴情综合网 | 国产wwwcom | 九色porny自拍视频 | 欧美成人精品欧美一级 | 久久高清| 亚洲一区二区三区免费在线观看 | 精品一区二区电影 | 中文字幕一区二区在线观看 | 亚洲精品丝袜日韩 | 三级在线免费观看 | 在线成人 | 亚洲欧美v | 久久99视频 | 欧美激情在线精品一区二区三区 | 99精品视频网 | 成人18亚洲xxoo | 国产精品久久久久久久久久久久久 | 日本国产欧美 | 久久精品视频网站 | 日韩精品一区在线 | 亚洲日韩中文字幕一区 | 男女网站视频 | 国产一区二区在线免费观看 | a在线视频 |