chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用單片機(jī)編寫(xiě)的音樂(lè)程序

Wildesbeast ? 來(lái)源:福星電子網(wǎng) ? 作者:福星電子網(wǎng) ? 2020-01-21 12:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

使用單片機(jī)編寫(xiě)的音樂(lè)程序


6=440Hz,#6=440*1.059463=466.2Hz,7=440*1.059463*1.059463=493.9Hz

#5=440÷1.059463=415.3Hz

5=440÷1.059463÷1.059463=392Hz

相鄰半音階的關(guān)系為1.059463倍,只要知道“A”=440Hz,即可算出其余半音階的頻率,比A高的用“*”,比A低的用“÷”

1.059463=12√2(即2開(kāi)12次根)

440Hz為鋼琴中央C組的A(即“6”音)

ok

這是本人一個(gè)產(chǎn)品中的音樂(lè)單元,很完整,供愛(ài)好者參考。

ORG 0000H

AJMP CSH 主程序進(jìn)入點(diǎn)

ORG 000BH

LJMP TIM0 定時(shí)中斷T0入口

;

;**********

;* 初始化 *

;**********

;

ORG 0020H

CSH: MOV R0,#7FH 內(nèi)部RAM(00H~7FH)清零

CSH1: MOV @R0,#00H

DJNZ R0,CSH1

MOV SP,#60H 堆棧60H~7FH,【使用89C51】

MOV TMOD,#01H TMOD=11H,T0作16位計(jì)數(shù)器(4M晶振)

CLR TCON.4 T0禁止動(dòng)作

SETB IE.1 T0允許中斷

SETB PT0 T0中斷優(yōu)先

SETB IE.7 系統(tǒng)允許中斷

;

;**********

;* 主程序 *

;**********

;

MAIN: MOV 5CH,#00 取簡(jiǎn)碼譜指針

LCALL MUSIC

MOV 5CH,#49 取簡(jiǎn)碼譜指針

LCALL MUSIC

MOV 5CH,#66 取簡(jiǎn)碼譜指針

LCALL MUSIC

MOV 5CH,#100 取簡(jiǎn)碼譜指針

LCALL MUSIC

MOV 5CH,#108 取簡(jiǎn)碼譜指針

LCALL MUSIC

MOV 5CH,#136 取簡(jiǎn)碼譜指針

LCALL MUSIC

MOV 5CH,#174 取簡(jiǎn)碼譜指針

LCALL MUSIC

AJMP MAIN

;

;*************************

;* 音樂(lè)子程序 MUSIC *

;* 入口: 5CH←簡(jiǎn)碼譜指針 *

;*************************

;

MUSIC: MOV A,5CH 簡(jiǎn)碼譜指針裝入A

MOV DPTR,#TABLE 至TABLE取簡(jiǎn)碼

MOVC A,@A+DPTR

MOV R2,A 取到的簡(jiǎn)碼暫存于R2

JZ END1 是否取到00(結(jié)束碼)?

ANL A,#0FH 不是,則取低四位(節(jié)拍碼)

MOV R6,A 將節(jié)拍碼存入R6

MOV A,R2 將取到的簡(jiǎn)碼再裝入R2

SWAP A 高低四位交換

ANL A,#0FH 取低四位(音符碼)

JNZ SING 取到的音符碼是否為0?

CLR TR0 是,則不發(fā)音

AJMP D1 跳到D1

;

SING: DEC A 取到的音符碼減1

MOV 4BH,A 存入(4BH)

RL A 乘2

MOV DPTR,#TABLE1 至TABLE1取相對(duì)的高字節(jié)計(jì)數(shù)值

MOVC A,@A+DPTR

MOV TH0,A 取到的高字節(jié)存入TH0

MOV 4AH,A 取到的高字節(jié)存入(4AH)

MOV A,4BH 再裝入取到的音符碼

RL A 乘2

INC A 加1

MOVC A,@A+DPTR 至TABLE1取相對(duì)的低位

MOV TL0,A 取到的低字節(jié)存入TL0

MOV 49H,A 取到的低字節(jié)存入(49H)

SETB TR0 啟動(dòng)TIMER0

D1: CALL DELAY 基本單位時(shí)間1/4拍187毫秒

INC 5CH 取簡(jiǎn)碼譜指針加1

AJMP MUSIC 取下一個(gè)碼

DD1: RET

;

STOP: NOP

; JB P3.7,STOP1 在軟件延時(shí)中摻插做其他動(dòng)作

; SETB P2.7 P2.7←“1”

NOP

NOP

STOP0: NOP

RET

STOP1: NOP

; JB P3.6,STOP0 在軟件延時(shí)中摻插做其他動(dòng)作

; SETB P2.6 P2.6←“1”

RET

;

END1: CLR TR0 停止TIMER0

RET

;

TIM0: PUSH A 將A的值暫存于堆棧區(qū)

PUSH PSW 將PSW的值暫存于堆棧區(qū)

MOV TL0,49H 重設(shè)計(jì)數(shù)值

MOV TH0,4AH

CPL P1.7 將輸出端P1.1取反(P1.7接至無(wú)源蜂鳴器)

POP PSW 至堆棧區(qū)取回PSW的值

POP A 至堆棧區(qū)取回A的值

RETI 返回主程序

;

DELAY: MOV R7,#02 187毫秒

D2: MOV R4,#24

D3: MOV R3,#48

DJNZ R3,$

ACALL STOP 在軟件延時(shí)中摻插做其他動(dòng)作

DJNZ R4,D3

DJNZ R7,D2

DJNZ R6,DELAY 決定節(jié)拍

RET

; .5 .6 .7 1

TABLE1: DW 65111,65150,65199,65217 4M晶振時(shí)的定時(shí)中斷時(shí)間常數(shù)

; 2 3 4 5 若采用其它頻率,則要根據(jù)樂(lè)音的

DW 65252,65283,65297,65323 頻率計(jì)算,例中央C的A音為440Hz,

; 6 7 1` 2` 440Hz=2.273ms,把T0設(shè)置為2.273ms

DW 65347,65367,65377,65394 中斷即可發(fā)出A音。

; 3` 4` #6

DW 65410,65417,65357

;

;***************************************************************

;* 音符代碼 1 2 3 4 5 6 7 8 9 A B C D E F 0 *

;* 音高 .5 .6 .7 1 2 3 4 5 6 7 1` 2` 3` 4` 5` 休止 *

;*-------------------------------------------------------------*

;* 節(jié)拍代碼 1 2 3 4 5 6 8 A C F *

;* 節(jié)拍 1/4 2/4 3/4 1 1(1/4) 1(1/2) 2 2(1/2) 3 3(3/4) *

;*-------------------------------------------------------------*

;* 結(jié)束代碼 00H *

;*-------------------------------------------------------------*

;* 樂(lè)譜格式 每字節(jié)的高字節(jié)為音符代碼,低字節(jié)為節(jié)拍代碼 *

;*-------------------------------------------------------------*

;* 例子: ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ *

;* DB A4H,02H,84H,02H,A4H,02H,84H,02H,D8H,04H,00H *

;* ⑴ A→唱“7” , 4→ 1 拍 *

;* ⑵ 0→休止 , 2→2/4拍 *

;* ⑶ 8→唱“5” , 4→ 1 拍 *

;* ⑷ 0→休止 , 2→2/4拍 *

;* ⑸ A→唱“7” , 4→ 1 拍 *

;* ⑹ 0→休止 , 2→2/4拍 *

;* ⑺ 8→唱“5” , 4→ 1 拍 *

;* ⑻ 0→休止 , 2→2/4拍 *

;* ⑼ D→唱“3`”, 8→ 2 拍 *

;* ⑽ 0→休止 , 4→ 1 拍 *

;* ⑾ 00H→樂(lè)曲結(jié)束 *

;***************************************************************

;

TABLE:

;【00】

DB 98H,02H,B4H,01H,94H,01H,68H,02H,94H,01H

DB 64H,01H,48H,02H,64H,01H,44H,01H,28H,02H

DB 64H,01H,94H,01H,B4H,01H,94H,01H,B4H,01H

DB 94H,01H,B4H,01H,D4H,01H,94H,01H,64H,01H

DB 44H,01H,64H,01H,98H,02H,01H,01H,00H

;【49】

DB A4H,02H,84H,02H,A4H,02H,84H,02H,D8H,04H

DB C8H,01H,01H,01H,01H,01H,00H

;【66】

DB 42H,52H,62H,72H,82H,92H,A2H,B2H,42H,52H

DB 62H,72H,82H,92H,A2H,B2H,00H

;【100】

DB 61H,81H,B1H,D1H,B1H,81H,61H,00H

;【108】

DB 11H,41H,61H,81H,61H,41H,11H,00H

;【136】

DB 24H,04H,34H,04H,44H,04H,54H,04H,64H,04H,44H,04H,64H,04H,94H,04H

DB 83H,01H,93H,01H,83H,01H,63H,01H,46H,02H,66H,02H

DB 91H,21H,91H,21H,91H,21H,91H,21H,94H,00H

;【174】

DB 94H,04H,A4H,04H,B4H,04H,C4H,04H,D4H,04H

DB B4H,04H,D8H,08H,C4H,04H,F(xiàn)4H,04H,CCH,00H

;

END
責(zé)任編輯 LK

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6067

    文章

    44992

    瀏覽量

    650604
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3826

    瀏覽量

    83004
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STC單片機(jī)范例程序

    電子發(fā)燒友網(wǎng)站提供《STC單片機(jī)范例程序.zip》資料免費(fèi)下載
    發(fā)表于 06-04 16:27 ?4次下載

    C51單片機(jī)及C語(yǔ)言知識(shí)點(diǎn)必備秘籍

    設(shè)計(jì) 26:單片機(jī)矩陣式鍵盤(pán)接口技術(shù)及 27:關(guān)于單片機(jī)的一些基本概念 28:實(shí)際案例實(shí)踐——單片機(jī)音樂(lè)程序設(shè)計(jì) 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有
    發(fā)表于 05-15 14:00

    STM8S003F的作用是什么,如何編寫(xiě)單片機(jī)程序去控制?

    下STM8S003F的作用是什么,軟件控制那幾個(gè)部分,哪些是不需要軟件控制的,該如何編寫(xiě)單片機(jī)程序去控制? 如何實(shí)現(xiàn)STM8 單片機(jī)與其他芯片的通訊?需要實(shí)現(xiàn)與哪些芯片的通訊?IIC
    發(fā)表于 11-05 07:46

    單片機(jī)編程語(yǔ)言有哪些選擇

    單片機(jī)(Microcontroller Unit,MCU)編程是指為單片機(jī)編寫(xiě)程序的過(guò)程,這些程序控制單片機(jī)的行為和功能。單片機(jī)廣泛應(yīng)用于嵌
    的頭像 發(fā)表于 11-01 14:13 ?2432次閱讀

    基于51單片機(jī)音樂(lè)彩燈

    由STC單片機(jī)+ADC0809模塊+LM386功放模塊+喇叭+音頻接口+發(fā)光二極管+電源構(gòu)成。
    的頭像 發(fā)表于 10-22 14:13 ?1867次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>音樂(lè)</b>彩燈

    基于51單片機(jī)的遙控音樂(lè)系統(tǒng)仿真

    ”,表示播放,按下接收器的停止按鍵后停止播放音樂(lè);(4)按下復(fù)位按鍵后回到初始狀態(tài)。仿真演示視頻:基于51單片機(jī)的遙控音樂(lè)系統(tǒng)仿真-仿真視頻設(shè)計(jì)介紹51單片機(jī)簡(jiǎn)介51
    的頭像 發(fā)表于 10-22 14:12 ?510次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的遙控<b class='flag-5'>音樂(lè)</b>系統(tǒng)仿真

    基于51單片機(jī)的多模式音樂(lè)跑馬燈

    ,音樂(lè)至少有3首,并可以對(duì)其進(jìn)行切換。 設(shè)計(jì)介紹 51單片機(jī)簡(jiǎn)介 51單片是一種低功耗、高性能CMOS-8位微控制器,擁有靈巧的8位CPU和可編程Flash,使得51單片機(jī)為眾多嵌入式
    的頭像 發(fā)表于 10-22 14:10 ?1069次閱讀
    基于51<b class='flag-5'>單片機(jī)</b>的多模式<b class='flag-5'>音樂(lè)</b>跑馬燈

    單片機(jī)怎么寫(xiě)入程序

    程序通常涉及以下幾個(gè)步驟: 選擇單片機(jī)和開(kāi)發(fā)環(huán)境 : 確定項(xiàng)目需求,選擇合適的單片機(jī)型號(hào)。 安裝相應(yīng)的開(kāi)發(fā)環(huán)境,如Keil、IAR、MPLAB等。 硬件連接 : 將單片機(jī)連接到開(kāi)發(fā)板或
    的頭像 發(fā)表于 10-21 11:21 ?2446次閱讀

    keil可以讀出單片機(jī)程序

    表述存在一定的誤解,因?yàn)镵eil主要是用于編寫(xiě)、編譯和調(diào)試單片機(jī)程序的工具,而不是直接從單片機(jī)中讀取已編程代碼的工具。 一、Keil的主要功能 編程開(kāi)發(fā) :Keil允許用戶(hù)使用C語(yǔ)言或
    的頭像 發(fā)表于 09-02 10:32 ?2151次閱讀

    單片機(jī)燒錄程序用什么軟件

    單片機(jī)燒錄程序單片機(jī)開(kāi)發(fā)過(guò)程中的一個(gè)重要環(huán)節(jié),涉及到將編寫(xiě)好的程序代碼通過(guò)燒錄器寫(xiě)入單片機(jī)的R
    的頭像 發(fā)表于 09-02 10:05 ?3452次閱讀

    單片機(jī)燒錄程序可以重新燒嗎

    單片機(jī)(Microcontroller Unit, MCU)是一種集成電路芯片,它將計(jì)算機(jī)的CPU、存儲(chǔ)器、輸入/輸出接口等集成在一塊芯片上,用于控制各種電子設(shè)備。單片機(jī)燒錄程序是指將編寫(xiě)
    的頭像 發(fā)表于 09-02 10:04 ?3145次閱讀

    單片機(jī)燒錄程序的線(xiàn)比單片機(jī)上的少還能燒錄嗎

    單片機(jī)燒錄原理 單片機(jī)燒錄是指將編寫(xiě)好的程序代碼通過(guò)一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)的存儲(chǔ)器中,使其能夠按照程序
    的頭像 發(fā)表于 09-02 09:54 ?1096次閱讀

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序單片機(jī)開(kāi)發(fā)過(guò)程中非常重要的一步,它涉及到將編寫(xiě)好的程序代碼通過(guò)一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)
    的頭像 發(fā)表于 09-02 09:47 ?2777次閱讀

    stm32單片機(jī)燒錄程序會(huì)擦除原來(lái)的程序

    在STM32單片機(jī)燒錄程序的過(guò)程中, 通常情況下會(huì)擦除原來(lái)的程序 ,并將新程序寫(xiě)入單片機(jī)的閃存(Flash)中。這一過(guò)程是通過(guò)燒錄工具(如S
    的頭像 發(fā)表于 09-02 09:42 ?4714次閱讀

    藍(lán)牙模塊如何實(shí)現(xiàn)單片機(jī)和手機(jī)端數(shù)據(jù)互傳

    ZX-D30、ZX-D37、ZX-D32等。 藍(lán)牙模塊設(shè)置 : 將藍(lán)牙模塊與單片機(jī)連接。通常,藍(lán)牙模塊通過(guò)串口(UART)與單片機(jī)通信。 設(shè)置藍(lán)牙模塊的工作模式和參數(shù),例如波特率、名稱(chēng)、停止位、數(shù)據(jù)位等。這通常通過(guò)發(fā)送特定的AT命令來(lái)完成。
    的頭像 發(fā)表于 07-24 17:59 ?5636次閱讀
    藍(lán)牙模塊如何實(shí)現(xiàn)<b class='flag-5'>單片機(jī)</b>和手機(jī)端數(shù)據(jù)互傳