找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 1796|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)音樂(lè)譜曲程序,但是只能重復(fù)播放,如何讓它播放完一次就停止

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:61140 發(fā)表于 2023-12-18 13:36 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
各位大神幫小弟看一下這個(gè)怎么改
弄了個(gè)STC32G12K128的音樂(lè)譜曲程序,但是這個(gè)目前只能重復(fù)播放,我想讓它播放完一次就停止,不知道該怎么高,求助各位大神!

STC32G12K128-譜曲.zip (59.68 KB, 下載次數(shù): 3)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:274834 發(fā)表于 2023-12-18 13:53 | 只看該作者
如果希望只運(yùn)行一次,可以定制一個(gè)變量標(biāo)志 ,
  if(cishu<1)   {執(zhí)行音樂(lè)代碼函數(shù), 然后cishu++;}  ,這

樣下次循環(huán)到這里的時(shí)候,由于if(cishu不滿足小于1),所以不會(huì)繼續(xù)執(zhí)行音樂(lè)代碼。
回復(fù)

使用道具 舉報(bào)

板凳
ID:1034262 發(fā)表于 2023-12-18 14:19 | 只看該作者
設(shè)置一個(gè)標(biāo)志,表示正在播放,播放完成就清除,停止播放。
回復(fù)

使用道具 舉報(bào)

地板
ID:1012735 發(fā)表于 2023-12-18 15:31 | 只看該作者
uchar play=1;
...

if(play==1)
{
    play = 0;

    music();
}
回復(fù)

使用道具 舉報(bào)

5#
ID:61140 發(fā)表于 2023-12-18 15:47 | 只看該作者
簡(jiǎn)簡(jiǎn)單單562 發(fā)表于 2023-12-18 13:53
如果希望只運(yùn)行一次,可以定制一個(gè)變量標(biāo)志 ,
  if(cishu

不管用,只要一開(kāi)始播放,就不會(huì)停止,加了標(biāo)志位也不行
回復(fù)

使用道具 舉報(bào)

6#
ID:61140 發(fā)表于 2023-12-18 15:54 | 只看該作者
簡(jiǎn)簡(jiǎn)單單562 發(fā)表于 2023-12-18 13:53
如果希望只運(yùn)行一次,可以定制一個(gè)變量標(biāo)志 ,
  if(cishu

不行,一但開(kāi)始播放,加了標(biāo)志位也停不了
好像和定時(shí)器中斷有關(guān),具體我也沒(méi)看明白
回復(fù)

使用道具 舉報(bào)

7#
ID:161164 發(fā)表于 2023-12-18 16:52 | 只看該作者

簡(jiǎn)單粗暴
回復(fù)

使用道具 舉報(bào)

8#
ID:61140 發(fā)表于 2023-12-19 00:27 | 只看該作者

謝謝,這次可以播放一次了,按一下鍵只播放一次,但是下次就不管用了,單片機(jī)上電只能按一下鍵放一次,再按就不管用了。
回復(fù)

使用道具 舉報(bào)

9#
ID:161164 發(fā)表于 2023-12-19 08:43 | 只看該作者
xiaoyuxinke 發(fā)表于 2023-12-19 00:27
謝謝,這次可以播放一次了,按一下鍵只播放一次,但是下次就不管用了,單片機(jī)上電只能按一下鍵放一次,再 ...

你有說(shuō)過(guò)按鍵嗎?
回復(fù)

使用道具 舉報(bào)

10#
ID:1105250 發(fā)表于 2023-12-20 20:50 | 只看該作者
在單片機(jī)音樂(lè)譜曲程序中,如果你希望讓它播放完一次后停止,可以使用一個(gè)計(jì)數(shù)器或者標(biāo)志位來(lái)控制播放次數(shù),并在播放完成后停止程序執(zhí)行。

下面是一個(gè)偽代碼示例,展示如何實(shí)現(xiàn)播放一次后停止的邏輯:

c
// 假設(shè)這是播放音樂(lè)的函數(shù)
void playMusic() {
    // 播放音樂(lè)的代碼邏輯,這里是示例
    // 可以是音符、頻率等控制輸出音樂(lè)的具體內(nèi)容
    // 例如使用延時(shí)、定時(shí)器等方式播放音樂(lè)
}

int main() {
    int playCount = 0; // 初始化播放次數(shù)計(jì)數(shù)器為0

    // 循環(huán)播放音樂(lè),直到播放次數(shù)達(dá)到1次
    while (playCount < 1) {
        playMusic(); // 調(diào)用播放音樂(lè)的函數(shù)

        // 播放完成后增加播放次數(shù)計(jì)數(shù)器
        playCount++;
    }

    // 播放完成后,可以執(zhí)行停止播放或其他操作
    // 停止播放的代碼可以放在這里

    // 停止后的其他程序邏輯或者空閑狀態(tài)的處理

    return 0;
}
在這個(gè)示例中,playMusic() 函數(shù)用于播放音樂(lè)。通過(guò) playCount 變量記錄播放的次數(shù),當(dāng)播放次數(shù)達(dá)到1次后,程序?qū)⑻鲅h(huán)停止播放,并執(zhí)行停止播放后的其他操作。

根據(jù)你的具體單片機(jī)和音樂(lè)播放邏輯進(jìn)行相應(yīng)的調(diào)整和實(shí)現(xiàn)。實(shí)際實(shí)現(xiàn)可能需要使用特定的單片機(jī)指令、定時(shí)器或其他硬件功能來(lái)產(chǎn)生音樂(lè)和控制播放。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表