999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于51單片機的電子節拍器設計

2024-03-11 13:20:28楊輝
機電信息 2024年3期
關鍵詞:單片機

摘 要:節拍器是一種專門用來打奏拍子的設備,它可以使練音者或練琴者正確掌握樂曲速度,對音樂練習達到事半功倍的效果。鑒于此,設計了一款電子式節拍器,以AT89C51為控制核心,通過C語言設計程序,充分利用單片機內部中斷和定時系統控制外部電路,準確產生拍子,且實現了節拍類型和節拍速度的實時調節、數碼管的清晰顯示。該節拍器音色優美、精度較高,具有很好的視覺和聽覺效果。

關鍵詞:節拍器;單片機;中斷;數碼管

中圖分類號:TP202? ? 文獻標志碼:A? ? 文章編號:1671-0797(2024)03-0032-04

DOI:10.19514/j.cnki.cn32-1628/tm.2024.03.008

0? ? 引言

在音樂的教學和學習中,學習者的音準感和節奏感非常重要,但是速度感同樣不可忽視,精準地確定所需要表達的速度,在音樂學習和創作中逐步建立敏銳的速度感對于一個優秀的音樂人尤為重要。節拍器就是在各種速度中發出穩定節拍的裝置,它不僅可以提高音樂練習的效率,而且能提高練習者的注意力,使演奏更均勻平衡[1]。目前主流的節拍器有機械式和電子式兩種,機械式節拍器調節不便,不宜攜帶,精確度不高且價格昂貴,所以本次設計將要完成一個電子式節拍器[2]。它基于單片機系統,不僅能發出聲音信號,同時能在數碼管上顯示當前的節拍類型和節拍速度,使用者可以通過鍵盤實時更改節拍類型、調整節拍速度。設計采用單片機的中斷程序實現按鍵檢測、數碼管掃描和蜂鳴器發音等一系列功能。

1? ? 硬件設計

節拍用于控制各個音的快慢,即各個音產生及持續的時長,在單片機中可用延時程序或定時器來控制。節拍器發出的強弱拍聲音由兩個不同的頻率驅動,每個拍子的時長由另一個定時器控制。設計基于AT89C51芯片完成,運行的單片機最小系統中,用P0口作為數碼管的接口,用P1.6端口作為蜂鳴器電路信號輸出口,用P2口高四位作為按鍵的接口;T0中斷用于定期掃描按鍵輸入模塊、數碼管顯示模塊和節拍延時模塊,T1中斷用于反轉蜂鳴器發出不同頻率的音。

本系統分為兩個部分,一部分是節拍類型切換,另一部分是節拍速度調整。對于節拍的處理,使用單片機C語言來編寫,用定時器T1來控制脈沖頻率發音,用定時器T0來控制每個節拍的時長[3],電路共5個按鍵。具體功能如下:

按鍵A和按鍵B用于切換節拍類型,使節拍類型在1~6幾個檔位間循環,分別實現1/4拍、2/4拍、3/4拍、4/4拍、3/8拍、6/8拍這些常用拍子。復位電路按鍵用于停止節拍器發音,且復位后節拍類型顯示0。按鍵C和按鍵D用于調整節拍速度,初始節拍速度設置為90拍/min。按下按鍵,數碼管實時顯示節拍器當前的參數值。節拍速度在40~200拍/min循環。根據節拍速度可以求出每個節拍的時長,即一個音符該唱多長時間。設計中以四分音符為一拍,則八分音符的時長為四分音符的一半,時長越短,節奏越輕快[4]。

由于本次設計的電子節拍器要實現按鍵輸入、數碼管顯示、蜂鳴器發音等功能,利用Proteus仿真設計的硬件電路如圖1所示,實現過程為:以AT89C51作為控制核心,通過按鍵輸入來改變節拍類型和節拍速度,74HC245芯片在數碼管LED小燈和單片機I/O口間起電流緩沖作用,防止電流產生瓶頸效應,保證通道足夠暢通[5]。74HC245具有雙向緩沖作用,無任何邏輯功能,1引腳DIR是方向引腳,當1引腳輸入為高電平時,使B等于A的狀態。74HC138芯片開啟數碼管段選功能,顯示當前節拍類型和節拍速度[6]。段的選擇(指該段的亮滅)是通過單片機的P0口控制,經過74HC245驅動,再將T0中斷以1 ms為定時,實現4個數碼管的動態顯示。電路設計中,4個數碼管都是共陽極,第一個數碼管用于顯示節拍類型,后三個數碼管用于顯示節拍速度。由于本次節拍器的設計中用到的按鍵較少,所以按鍵部分選用獨立式按鍵。4條輸入線分別連接到單片機的P2.4~2.7端口上。發聲部分的蜂鳴器電路采用無源蜂鳴器設計,BUZZ引腳連接至單片機P1.6端口,由于蜂鳴器電流依然相對較大,所以用三極管來驅動,并加連一個100 Ω的電阻來限流,此外還增加一個D4續流二極管,從而很好地避免電感電流的反向沖擊,接續關斷電流。程序控制單片機I/O口反轉,使蜂鳴器發出有節奏的聲音[7]。電子節拍器復位電路為含手動開關復位的復位電路,連接到單片機的9引腳RST(Reset)復位引腳上。復位按鍵可作為節拍器的停止發音開關。

2? ? 軟件設計

本設計軟件部分全部用C語言編寫,軟件程序由主程序、數碼管顯示子程序、按鍵輸入子程序和音頻輸出子程序幾個模塊組成。主程序用來開啟74HC138使能和啟動定時器T0、T1,T0中斷負責按鍵檢測,刷新數碼管顯示和控制每個拍子的時長,T1中斷控制單片機I/O口反轉,使蜂鳴器發音。現就各個程序模塊的執行流程分別進行敘述。

2.1? ? 主程序流程

圖2為系統主程序流程圖。當給節拍器上電后,數碼管顯示節拍類型為0,此時無節拍,節拍器不發音。當按下A、B鍵后,切換節拍類型,節拍器開始打拍;按下C、D鍵開始動態調整節拍速度;按下復位鍵,節拍器回到上電時狀態。

2.2? ? 音頻輸出子程序

節拍器開始打奏節拍時,發出的強弱拍聲音實質為兩個不同的脈沖頻率產生,由單片機內部的T1中斷控制,通過反轉與蜂鳴器電路連接的單片機I/O口來實現,過程如圖3所示。

2.3? ? 數碼管顯示和按鍵檢測子程序

節拍器的數碼管顯示和按鍵檢測執行過程都是用T0中斷實現,每1 ms刷新一次數碼管顯示且檢測一次按鍵狀態值并保存,連續檢測四次,如果四次檢測到的按鍵狀態值相同,說明按鍵已經穩定地按下或彈起,相應地要改變按鍵值,即實現了按鍵消抖功能。同時備份當前按鍵狀態(按下或彈起),方便下次檢測比較用。

3? ? 系統調試

在上電前確保電路中不存在短路和斷路的情況,這是整個調試過程的第一步,也是最重要的一步。萬用表是這一步驟的主要工具,用萬用表的兩個探頭檢測電路中是否存在短路和斷路等情況,特別要注意焊點是否虛焊、焊點之間有無短接以及焊點的美觀,確保電路沒有開路、短路問題。

實物電路沒問題后,接下來從電子節拍器的顯示、按鍵和聲音等方面進行調試:

(1)顯示觀察:起初將程序燒錄單片機運行時,發現數碼管在顯示時有些不應亮的段似乎微微在發亮,但持續的時間很短,只是一閃而過。這是數碼管消影問題,解決方法是在數碼管刷新之前關閉所有的段,改變好位選后再打開即可。即在數碼管掃描程序switch(i)代碼之前,加入P0=0xFF,這樣數碼管所有的段都關閉了,當把位選“ADDR”全部賦值之后,再給P0賦對應的值即可,數碼管“鬼影”問題就順利解決。程序如下:

static unsigned char i = 0;? //動態掃描的索引

P0 = 0xFF;? ?//顯示消影

switch (i)

{

case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=LedBuff[0]; break;

case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=LedBuff[1]; break;

case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=LedBuff[2]; break;

case 3: ADDR2=0; ADDR1=1; ADDR0=1; i=0; P0=LedBuff[3]; break;

default: break;

}

(2)聲音調試:在設計電子節拍器時,暫不確定強拍和弱拍該用什么頻率較為合適,通過在程序中反復修改頻率,燒錄單片機進行測試,最終決定用1 400 Hz和1 000 Hz兩個頻率來表示強弱拍,起始拍和其余拍聲音區別明顯,短促有力更耐聽,在鋼琴彈奏環境中清晰可聞。

(3)按鍵測試:初期程序中沒加入按鍵消抖代碼,經常按一下按鍵,數字卻不止加1,而是加2或者更多,于是考慮按鍵消抖問題。最后通過單片機T0中斷的1 ms定時來解決,每1 ms中斷就記錄一次按鍵狀態,記錄四次,如果四次按鍵狀態一樣,說明按鍵已穩定按下或彈起。將程序燒錄單片機測試,即使快速按下按鍵,數字也能準確地加1,實現了按鍵消抖功能[8]。程序如下:

unsigned char i;

static unsigned char keybuf[4] = {? //按鍵掃描緩沖區

0xFF, 0xFF, 0xFF, 0xFF? ?};

//將一行的4個按鍵值移入緩沖區

keybuf[0] = (keybuf[0] << 1) | KEY_IN_1;

keybuf[1] = (keybuf[1] << 1) | KEY_IN_2;

keybuf[2] = (keybuf[2] << 1) | KEY_IN_3;

keybuf[3] = (keybuf[3] << 1) | KEY_IN_4;

//消抖后更新按鍵狀態

for (i=0; i<4; i++)? //4個按鍵,所以循環4次

{

if ((keybuf[i] & 0x0F) == 0x00)

{? ?//連續4次掃描值為0,即4 ms內都是按下狀態時,可認為按鍵已穩定地按下

KeySta[i] = 0;

}

else if ((keybuf[i] & 0x0F) == 0x0F)

{? ?//連續4次掃描值為1,即4 ms內都是彈起狀態時,可認為按鍵已穩定地彈起

KeySta[i] = 1;

}

}

(4)節拍器精度測試:使用秒表測量節拍器400拍所用時間。節拍速度分別為90、120、160拍/min的時候,用時分別為267.7、200.7、151.3 s,誤差分別為0.22%、0.35%、0.86%,節拍器精度較高。

4? ? 結束語

最終將程序燒錄硬件電路,經測試,節拍器能打奏響亮而有規律的節奏,并可任意切換不同類型節拍,節拍速度也可實時調整。數碼管能清晰地顯示當前節拍類型和節拍速度,無論是音樂初學者還是專業音樂人,都能輕松上手,調節一個適合自己的速度,練習起來效果顯著。該節拍器基于單片機設計,成本較低,可靠性高,使用方便,控制功能強,容易產品化,若將產品外形工藝化,市場空間廣闊。

[參考文獻]

[1] 吳迪.跳動的音符——淺析鋼琴教學中節拍器的重要性[J].北方音樂,2018,38(24):130-131.

[2] 劉惠明.鋼琴學習過程中節拍器的功能及應用[J].音樂時空,2014(24):188-189.

[3] 宋雪松.手把手教你學51單片機 C語言版[M].北京:清華大學出版社,2014.

[4] 楊夢雅,黃堂森,邵金俠,等.基于單片機演奏音階設計[J].信息技術與信息化,2021(4):143-145.

[5] 吳靜進,何尚平,萬彬.MCS-51單片機原理與應用[M].重慶:重慶大學出版社,2019.

[6] 黃有全,李桂平.多功能節拍器的研制[J].電子技術,2004(11):56-58.

[7] 孫可旭.基于Atmega16的LED電子節拍器的設計[J].電聲技術,2009,33(增刊1):35-37.

[8] 張紅軍.C語言下的抗干擾消抖按鍵程序設計研究[J].數碼世界,2018(1):349-350.

收稿日期:2023-10-10

作者簡介:楊輝(1992—),男,云南云龍人,碩士研究生,助理講師,研究方向:電子信息技術。

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 中文字幕在线欧美| 欧美日韩亚洲国产主播第一区| 高清亚洲欧美在线看| 亚洲va在线∨a天堂va欧美va| 久久青草精品一区二区三区| 国产精品无码制服丝袜| 国产91高清视频| 精品国产电影久久九九| 无码人妻免费| 国产无码精品在线| 亚洲无码视频一区二区三区| 色爽网免费视频| 国产激情在线视频| 亚洲男人天堂久久| 色综合久久无码网| 日韩在线永久免费播放| 国产精品大白天新婚身材| 99这里只有精品免费视频| 国产国模一区二区三区四区| 无码高潮喷水专区久久| 亚洲一区色| 青青热久麻豆精品视频在线观看| 亚洲第一成网站| 爽爽影院十八禁在线观看| 天堂av综合网| 97se亚洲综合在线天天| 亚洲欧美一区二区三区麻豆| 国产成人一区免费观看| 一本大道香蕉中文日本不卡高清二区| 国产一区二区三区在线观看免费| 亚洲一区二区黄色| 在线精品亚洲国产| 久久综合九色综合97婷婷| 国产精品自拍露脸视频| 久久美女精品国产精品亚洲| 国产99在线| 国产aⅴ无码专区亚洲av综合网| 中文成人在线视频| 亚洲天堂777| 亚洲国产一区在线观看| a亚洲天堂| 99无码熟妇丰满人妻啪啪| 日韩精品免费一线在线观看| 国产精品视屏| 另类欧美日韩| 在线观看免费国产| 四虎国产在线观看| 久久久受www免费人成| 亚洲日韩精品综合在线一区二区| 亚洲第一视频网| 她的性爱视频| 欧美中文一区| 免费午夜无码18禁无码影院| 欧美一区二区三区不卡免费| 91精品国产91欠久久久久| 色综合综合网| 精品久久高清| 青青久在线视频免费观看| 国产成人精品一区二区免费看京| 午夜色综合| 草逼视频国产| 亚洲综合片| 成人精品免费视频| 亚洲国产日韩在线观看| 亚洲成a人片7777| 亚洲天堂视频网站| 国产日本一区二区三区| 啪啪永久免费av| 91无码人妻精品一区| 国产精品偷伦在线观看| 97精品久久久大香线焦| 婷婷综合缴情亚洲五月伊| 玖玖精品在线| 美女被躁出白浆视频播放| 国产一级在线播放| 日本午夜精品一本在线观看| 一区二区在线视频免费观看| 91系列在线观看| 天堂岛国av无码免费无禁网站 | 国产自在自线午夜精品视频| 国产日本欧美亚洲精品视| 免费在线不卡视频|