標題:
單片機程序怎么實現(xiàn)按鍵按下,蜂鳴器連響三下?用50ms定時器
[打印本頁]
作者:
zgr301027
時間:
2022-4-1 16:58
標題:
單片機程序怎么實現(xiàn)按鍵按下,蜂鳴器連響三下?用50ms定時器
如題 求指導
作者:
zhxiufan
時間:
2022-4-1 17:47
檢測到按鍵后,調(diào)用三次蜂鳴器發(fā)聲程序,相互間加點延時就可以了。
作者:
lkc8210
時間:
2022-4-1 18:16
1. 選擇有源蜂鳴器并建立電路,低電平發(fā)聲
2. 用50ms中斷產(chǎn)生500ms心跳Flag_500ms
3. 在main中掃描按鍵,有鍵按下,Beep_3_time=3
4. 在main中判斷心跳,如有心跳,清零心跳并判斷Beep_3_time是否零,如Beep_3_time非零蜂鳴器輸出腳取反并判斷輸出腳是否高電平,如是高電平,Beep_3_time減1
作者:
liesnake
時間:
2022-4-1 20:01
響一下,三下,一百有區(qū)別嗎?使用一個變量,奇數(shù)響偶數(shù)不響。定時器溢出變量減1
作者:
wliuxiaoxiaow
時間:
2022-4-1 22:09
蜂鳴器響一下然后關蜂鳴器,加個延時然后再打開蜂鳴器響一下關蜂鳴器,加個延時再打開蜂鳴器
作者:
yzwzfyz
時間:
2022-4-2 09:12
教你發(fā)生N次!
初始化建立四個東東:
1、按鍵標記:B_KEY,含義=0/1=未按/已按。
2、蜂鳴次數(shù)計數(shù)器:R_TIMES,你想讓蜂鳴器叫N次,在按鍵后就置數(shù)N。
3、蜂鳴器一次鳴叫時間計時器:R_BELLTIMES,時間以50ms為單位,例:一次叫0.4秒,就置數(shù)400/50=8。
4、蜂鳴器一次鳴叫間隔時間(停叫時間):R_STOPTIMES,時間以50ms為單位,例:間隔0.3秒,就置數(shù)300/50=6。
編程操作開始了!在50ms中斷服務程序中,以序做以下事件:
1、判斷是否需要啟動鳴叫程序:B_KEY=0/1? =0什么也不做退出;=1做以下事情:
2、判斷是否鳴叫結束:R_TIMES=0? 為0,結束鳴叫(復位:蜂鳴器=不叫,B_KEY=0,R_BELLTIMES=8,R_STOPTIMES=6,準備下次),退出;非0,則做以下事情:
3、判斷是否在叫之中:R_BELLTIMES=0? 非0,蜂鳴器=鳴叫,并計時一次:R_BELLTIMES-1,退出;=0,則做以下事情:
4、判斷是否在停叫中:R_STOPTIMES=0? 非0,蜂鳴器=不叫,并計時一次:R_STOPTIMES-1,退出;=0,則做以下事情:
5、計下叫了一次:R_TIMES-1;準備下次的鳴叫:R_BELLTIMES=8,R_STOPTIMES=6。退出
作者:
yzwzfyz
時間:
2022-4-2 09:21
以上邏輯不夠精練,讓樓主去精練,但夠用了。
這種寫法有以下特點:
1、可以隨時叫停過鳴叫過程,方法是:蜂鳴器=不叫,B_KEY=0。
2、按鍵后可以任意讓它叫N聲,方法是:B_KEY=1,R_TIMES=N,R_BELLTIMES=8,R_STOPTIMES=6。
作者:
zgr301027
時間:
2022-4-2 13:40
yzwzfyz 發(fā)表于 2022-4-2 09:12
教你發(fā)生N次!
初始化建立四個東東:
1、按鍵標記:B_KEY,含義=0/1=未按/已按。
謝謝
作者:
hoolinoo
時間:
2022-4-2 16:11
調(diào)用一個響三下的函數(shù)應該可以吧
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1