淺談51系列單片機(jī)嵌入式程序設(shè)計(jì):文主要提出了一個(gè)51系列匯編語(yǔ)言通用程序設(shè)計(jì)框架,并對(duì)其作了詳細(xì)的探討.關(guān)鍵字:?jiǎn)纹瑱C(jī);嵌入式;程序設(shè)計(jì);匯編;51系列1 引言無(wú)論是測(cè)控系統(tǒng)、數(shù)控系統(tǒng),還是機(jī)電一體化、智能儀表或者接口,單片機(jī)作為現(xiàn)代工業(yè)的基本技術(shù),應(yīng)用都已日臻成熟。目前,51系列單片機(jī)應(yīng)用系統(tǒng)程序設(shè)計(jì)大多使用匯編語(yǔ)言,雖然它能最充分發(fā)揮指令系統(tǒng)的功能和效率,但是實(shí)際的程序設(shè)計(jì)給設(shè)計(jì)師增加了不少工作量。為了簡(jiǎn)化程序設(shè)計(jì),本文設(shè)計(jì)了一個(gè)通用程序框架,能夠使設(shè)計(jì)師模塊化嵌入式地輕輕松松、快速有效地編程設(shè)計(jì)。
標(biāo)簽: 51系列 單片機(jī) 嵌入式 程序設(shè)計(jì)
上傳時(shí)間: 2014-12-28
上傳用戶:萍水相逢
應(yīng)用軟件根據(jù)BYPASS信號(hào)的值來(lái)決定是否使用PLL。如果使用PLL,那么它總是輸出一個(gè)200MHz的時(shí)鐘信號(hào),并且聯(lián)合系統(tǒng)分頻器(SYSDIV)共同產(chǎn)生系統(tǒng)時(shí)鐘。饋送到PWM模塊的時(shí)鐘由系統(tǒng)時(shí)鐘提供。如果應(yīng)用中需要較低的PWM時(shí)鐘,那么在時(shí)鐘信號(hào)到達(dá)PWM模塊前可以使用PWM分頻器(PWMDIV)先分頻。ADC時(shí)鐘使用一個(gè)時(shí)鐘源(source)為200MHz的常量分頻器,這就意味著如果要使ADC時(shí)鐘的工作頻率保持在14-18MHz范圍內(nèi),必須使能并使用PLL。
標(biāo)簽: Stellaris 微控制器 時(shí)鐘
上傳時(shí)間: 2013-10-17
上傳用戶:hjshhyy
S51下載線的制作-單片機(jī)實(shí)用技術(shù)探討:在微電腦技術(shù)發(fā)展的今天,人們整天都在和單片機(jī)打交道,但作為一個(gè)電子愛(ài)好者,盡管我對(duì)微電腦非常感興趣,但我卻怎末也入不了門(mén)。在此,我將自己的學(xué)習(xí)體會(huì)寫(xiě)出來(lái),與大家共賞,希望大家能更好的了解單片機(jī),了解單片機(jī)或微電腦的工作方式,了解單片機(jī)周?chē)淖饔煤徒涌陔娐罚瑸橐院蟮木S修之路打好基礎(chǔ),如果有興趣,還可以編寫(xiě)一些符合自己要求的程序,要它根據(jù)要求做一些事情。因?yàn)樗鼰o(wú)處不在,手機(jī),電視,VC D ,D VD ,M P3,空調(diào),冰箱,全自動(dòng)洗衣機(jī),電扇等,我們都可以在其電路板上看到C PU ,當(dāng)然,我不會(huì)在此講述所有的C PU ,只介紹S52的簡(jiǎn)單電路,希望大家對(duì)C PU 有一個(gè)初步的解。為了便于初學(xué)者學(xué)習(xí),我盡量講的詳細(xì)些。便于理解,依實(shí)用為目的,讓大家更好的理解單片機(jī),應(yīng)用單片機(jī)。
標(biāo)簽: S51 下載線 單片機(jī)實(shí)用 技術(shù)探討
上傳時(shí)間: 2013-12-26
上傳用戶:3到15
基于單DSP的VoIP模擬電話適配器研究與實(shí)現(xiàn):提出和實(shí)現(xiàn)了一種新穎的基于單個(gè)通用數(shù)字信號(hào)處理器(DSP)的VoIP模擬電話適配器方案。DSP的I/O和存儲(chǔ)資源非常有限,通常適于運(yùn)算密集型應(yīng)用,不適宜控制密集型應(yīng)用[5]。該系統(tǒng)高效利用單DSP的I/O和片內(nèi)外存儲(chǔ)器資源,采用μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng),支持SIP和TCP-UDP/IP協(xié)議,通過(guò)LAN或者寬帶接入,使普通電話機(jī)成為Internet終端,實(shí)現(xiàn)IP電話。該系統(tǒng)軟硬件結(jié)構(gòu)緊湊高效,運(yùn)行穩(wěn)定,成本低,具有廣闊的應(yīng)用前景。關(guān)鍵詞:模擬電話適配器;IP電話;數(shù)字信號(hào)處理器;μC/OS-II 【Abstract】This paper presents a VoIP ATA solution based on a single digital signal processor (DSP). DSPs are suitable for arithmetic-intensiveapplication and unsuitable for control-intensive application because of the limitation of I/O and memory resources. This solution is based on a 16-bitfixed-point DSP and μC/OS-II embedded real-time operating system. It makes good use of the limited resources, supports SIP and TCP-UDP/IPprotocol. It can connect the analog telephone to Internet and realize the VoIP application. This system has a great future for its high efficiency andlow cost.【Key words】Analog telephone adapter (ATA); Voice over Internet protocol (VoIP); Digital signal processor (DSP); μC/OS-II Research and Implementation of VoIPATA Based on Single DSP
上傳時(shí)間: 2013-11-20
上傳用戶:Wwill
KEIL RTX51實(shí)時(shí)操作系統(tǒng)中文版:RTX51是一個(gè)適用于8051 家族的實(shí)時(shí)多任務(wù)操作系統(tǒng)。RTX51使復(fù)雜的系統(tǒng)和軟件設(shè)計(jì)以及有時(shí)間限制的工程開(kāi)發(fā)變得簡(jiǎn)單。RTX51是一個(gè)強(qiáng)大的工具,它可以在單個(gè)CPU上管理幾個(gè)作業(yè)(任務(wù))。RTX51有兩種不同的版本。 RTX51 Full 允許4個(gè)優(yōu)先權(quán)任務(wù)的循環(huán)和切換,并且還能并行的利用中斷功能。RTX51 支持信號(hào)傳遞,以及與系統(tǒng)郵箱和信號(hào)量進(jìn)行消息傳遞。RTX51的os_wait 函數(shù)可以等以 下事件:中斷、時(shí)間到、來(lái)自任務(wù)或中斷的信號(hào)、來(lái)自任務(wù)或中斷的消息、信號(hào)量。 RTX51 Tiny 是RTX51 Full 的一個(gè)子集。RTX51 Tiny 可以很容易的運(yùn)行在沒(méi)有擴(kuò)展外 部存儲(chǔ)器的單片機(jī)系統(tǒng)上。但是,使用RTX51 Tiny 的程序可以訪問(wèn)外部存儲(chǔ)器。RTX51 Tiny允許循環(huán)任務(wù)切換,并且支持信號(hào)傳遞,還能并行的利用中斷功能。RTX51 Tiny 的os_wait函數(shù)可以等待以下事件:時(shí)間到、時(shí)間間隔、來(lái)自任務(wù)或者中斷的信號(hào)。 本章節(jié)以后的部分用RTX-51 來(lái)指代RTX-51 Full 和RTX-51 Tiny。在兩者之間不同的 地方會(huì)加以說(shuō)明。
標(biāo)簽: KEIL RTX 51 實(shí)時(shí)操作系統(tǒng)
上傳時(shí)間: 2013-11-25
上傳用戶:axin881314
800A全自動(dòng)STC單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)板軟硬件說(shuō)明:① 將下載編程通信線的DB9串行通信RS232插頭,插入PC機(jī)的RS232串行通信座,用以實(shí)現(xiàn)對(duì)STC單片機(jī)下載編程的通信。② 將下載編程通信線的USB插頭(與DB9串行通信RS232插頭線較短的一端,注意別搞錯(cuò),否則不能工作),插入PC機(jī)的USB通信座,用以實(shí)現(xiàn)對(duì)全自動(dòng)STC單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)板的供電。③ 將下載編程通信線的USB插頭(與DB9串行通信RS232插頭線較長(zhǎng)的一端,注意別搞錯(cuò),否則不能工作),插入全自動(dòng)STC單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)板上的USB座,以實(shí)現(xiàn)對(duì)其下載編程的通信和供電。3. 所需軟件① 各類(lèi)文本編輯器軟件,如Eidt,記事本等,編輯匯編語(yǔ)言源程序*.ASM;② 集成環(huán)境WAVE6000軟件:將匯編語(yǔ)言源程序編譯成*.hex文件(也可直接在此環(huán)境下編輯匯編語(yǔ)言源程序*.ASM);③ 官方提供的STC-ISP軟件(http//www.MCU-Memory.com):將匯編語(yǔ)言源程序編譯成的*.hex文件在線下載到STC單片機(jī)中。4. 使用說(shuō)明4.1 WAVE6000軟件使用說(shuō)明① 在“WAVE6000”目錄中的“BIN”子目錄下,雙擊右圖偉福標(biāo)志執(zhí)行偉福軟件,若跳出“檢查電源……”的對(duì)話框,點(diǎn)擊“取消”,跳出如下畫(huà)面(下圖僅左上部分)。
標(biāo)簽: 800A STC 全自動(dòng) 單片機(jī)實(shí)驗(yàn)
上傳時(shí)間: 2013-11-10
上傳用戶:zuozuo1215
SPCE061A單片機(jī)硬件結(jié)構(gòu) 從第一章中SPCE061A的結(jié)構(gòu)圖可以看出SPCE061A的結(jié)構(gòu)比較簡(jiǎn)單,在芯片內(nèi)部集成了ICE仿真電路接口、FLASH程序存儲(chǔ)器、SRAM數(shù)據(jù)存儲(chǔ)器、通用IO端口、定時(shí)器計(jì)數(shù)器、中斷控制、CPU時(shí)鐘、模-數(shù)轉(zhuǎn)換器AD、DAC輸出、通用異步串行輸入輸出接口、串行輸入輸出接口、低電壓監(jiān)測(cè)低電壓復(fù)位等若干部分。各個(gè)部分之間存在著直接或間接的聯(lián)系,在本章中我們將詳細(xì)的介紹每個(gè)部分結(jié)構(gòu)及應(yīng)用。2.1 μ’nSP™的內(nèi)核結(jié)構(gòu)μ’nSP™的內(nèi)核如0所示其結(jié)構(gòu)。它由總線、算術(shù)邏輯運(yùn)算單元、寄存器組、中斷系統(tǒng)及堆棧等部分組成,右邊文字為各部分簡(jiǎn)要說(shuō)明。算術(shù)邏輯運(yùn)算單元ALUμ’nSP™的ALU在運(yùn)算能力上很有特色,它不僅能做16位基本的算術(shù)邏輯運(yùn)算,也能做帶移位操作的16位算術(shù)邏輯運(yùn)算,同時(shí)還能做用于數(shù)字信號(hào)處理的16位×16位的乘法運(yùn)算和內(nèi)積運(yùn)算。1. 16位算術(shù)邏輯運(yùn)算不失一般性,μ’nSP™與大多數(shù)CPU類(lèi)似,提供了基本的算術(shù)運(yùn)算與邏輯操作指令,加、減、比較、取補(bǔ)、異或、或、與、測(cè)試、寫(xiě)入、讀出等16位算術(shù)邏輯運(yùn)算及數(shù)據(jù)傳送操作。2. 帶移位操作的16位算邏運(yùn)算對(duì)圖2.1稍加留意,就會(huì)發(fā)現(xiàn)μ’nSP™的ALU前面串接有一個(gè)移位器SHIFTER,也就是說(shuō),操作數(shù)在經(jīng)過(guò)ALU的算邏操作前可先進(jìn)行移位處理,然后再經(jīng)ALU完成算邏運(yùn)算操作。移位包括:算術(shù)右移、邏輯左移、邏輯右移、循環(huán)左移以及循環(huán)右移。所以,μ’nSP™的指令系統(tǒng)里專(zhuān)有一組復(fù)合式的‘移位算邏操作’指令;此一條指令完成移位和算術(shù)邏輯操作兩項(xiàng)功能。程序設(shè)計(jì)者可利用這些復(fù)合式的指令,撰寫(xiě)更精簡(jiǎn)的程序代碼,進(jìn)而增加程序代碼密集度 (Code Density)。在微控制器應(yīng)用中,如何增加程序代碼密集度是非常重要的議題;提高程序代碼密集度意味著:減少程序代碼的大小,進(jìn)而減少ROM或FLASH的需求,以此降低系統(tǒng)成本與增加執(zhí)行效能。
標(biāo)簽: SPCE 061A 061 單片機(jī)
上傳時(shí)間: 2013-10-10
上傳用戶:星仔
介紹用PIC16C73 自帶的八位A/D 轉(zhuǎn)換器擴(kuò)展為十二位A/D 轉(zhuǎn)換器,給出了具體的設(shè)計(jì)方案和程序流程。它是用以 PIC16C73 為MCU 構(gòu)成的海水有機(jī)磷測(cè)控儀A/D 轉(zhuǎn)換部分的一種解決方案。為監(jiān)測(cè)海洋生態(tài)環(huán)境,研制了用于海水有機(jī)磷農(nóng)藥現(xiàn)場(chǎng)監(jiān)測(cè)的生物傳感器。為測(cè)定生物傳感器的信號(hào),使傳感器可用于船載及臺(tái)站的海洋生態(tài)環(huán)境現(xiàn)場(chǎng)自動(dòng)監(jiān)測(cè),需要對(duì)整個(gè)的采樣和排液裝置進(jìn)行控制以及對(duì)傳感器來(lái)的信號(hào)進(jìn)行實(shí)時(shí)采集處理,形成有機(jī)磷的濃度傳給上位機(jī)。為此,開(kāi)發(fā)了以PIC16C73 單片機(jī)為核心的小型測(cè)控儀器,很好的完成了上述功能。PIC1673 單片機(jī)自帶8 位的A/D 轉(zhuǎn)換器,但不能滿足系統(tǒng)對(duì)精度的要求,本設(shè)計(jì)在單片機(jī)自帶8 位A/D 基礎(chǔ)上加少量的硬件和軟件開(kāi)銷(xiāo),使其擴(kuò)展為十二位A/D 轉(zhuǎn)換器,滿足了系統(tǒng)的要求。
上傳時(shí)間: 2013-10-30
上傳用戶:a296386173
為了提高望遠(yuǎn)鏡影像穩(wěn)定系統(tǒng)的防抖性能,設(shè)計(jì)了一種小型望遠(yuǎn)鏡防抖系統(tǒng)。采用負(fù)反饋閉環(huán)控制進(jìn)行鏡片的位置伺服控制,以MSP430F169 單片機(jī)為核心控制電路,闡述了防抖系統(tǒng)的原理并給出了硬件和軟件設(shè)計(jì)方案,通過(guò)實(shí)物調(diào)試證明采用該設(shè)計(jì)方法的望遠(yuǎn)鏡防抖系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單,穩(wěn)定性好、控制精度高的優(yōu)點(diǎn)。防抖系統(tǒng)正日益廣泛地應(yīng)用于照相機(jī)和望遠(yuǎn)鏡等光學(xué)設(shè)備中。防抖主要分為光學(xué)防抖和電子防抖,光學(xué)防抖通過(guò)光學(xué)器件進(jìn)行影響穩(wěn)定;電子防抖采用軟件的方法,針對(duì)數(shù)字圖像設(shè)計(jì)基于圖像處理的影像穩(wěn)定算法[1]。對(duì)于望遠(yuǎn)鏡來(lái)說(shuō),在放大視角的同時(shí),也會(huì)將手的抖動(dòng)造成的影像晃動(dòng)放大,在高倍望遠(yuǎn)鏡中尤其明顯。天文望遠(yuǎn)鏡、軍用望遠(yuǎn)鏡等高倍望遠(yuǎn)鏡在使用時(shí)通常需要配合三腳架,而大多數(shù)的手持望遠(yuǎn)鏡在沒(méi)有影像穩(wěn)定措施的情況下觀察效果受到擾動(dòng)。如果觀察者站在車(chē)、船、飛機(jī)上時(shí),晃動(dòng)的影響更加嚴(yán)重,即使把望遠(yuǎn)鏡裝到三角架上,也不能消除晃動(dòng)的影響。因此,開(kāi)發(fā)適合望遠(yuǎn)鏡使用的影像穩(wěn)定系統(tǒng)已經(jīng)成為一項(xiàng)迫切的任務(wù),防抖動(dòng)望遠(yuǎn)鏡將會(huì)具有很大的市場(chǎng)前景。影像穩(wěn)定屬于跟蹤控制問(wèn)題。文獻(xiàn)[2]設(shè)計(jì)了一種采用形狀可變的流體棱鏡進(jìn)行抖動(dòng)補(bǔ)償?shù)姆椒ā1疚脑O(shè)計(jì)了以MSP430 單片機(jī)為核心的防抖控制系統(tǒng),給出了系統(tǒng)硬件設(shè)計(jì)電路,使用C430 語(yǔ)言進(jìn)行軟件調(diào)試,以實(shí)現(xiàn)對(duì)望遠(yuǎn)鏡防抖系統(tǒng)的有效控制。
標(biāo)簽: MSP 430 望遠(yuǎn)鏡 防抖
上傳時(shí)間: 2013-12-02
上傳用戶:blacklee
單片機(jī)音樂(lè)中音調(diào)和節(jié)拍的確定方法:調(diào)號(hào)-音樂(lè)上指用以確定樂(lè)曲主音高度的符號(hào)。很明顯一個(gè)八度就有12個(gè)半音。A、B、C、D、E、F、G。經(jīng)過(guò)聲學(xué)家的研究,全世界都用這些字母來(lái)表示固定的音高。比如,A這個(gè)音,標(biāo)準(zhǔn)的音高為每秒鐘振動(dòng)440周。 升C調(diào):1=#C,也就是降D調(diào):1=BD;277(頻率)升D調(diào):1=#D,也就是降E調(diào):1=BE;311升F調(diào):1=#F,也就是降G調(diào):1=BG;369升G調(diào):1=#G,也就是降A(chǔ)調(diào):1=BA;415升A調(diào):1=#A,也就是降B調(diào):1=BB。466,C 262 #C277 D 294 #D(bE)311 E 330 F 349 #F369 G 392 #G415A 440. #A466 B 494 所謂1=A,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同A一樣高,人們也把這首歌曲叫做A調(diào)歌曲,或叫“唱A調(diào)”。1=C,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同C一樣高,或者說(shuō)“這歌曲唱C調(diào)”。同樣是“導(dǎo)”,不同的調(diào)唱起來(lái)的高低是不一樣的。各調(diào)的對(duì)應(yīng)的標(biāo)準(zhǔn)頻率為: 單片機(jī)演奏音樂(lè)時(shí)音調(diào)和節(jié)拍的確定方法 經(jīng)常看到一些剛學(xué)單片機(jī)的朋友對(duì)單片機(jī)演奏音樂(lè)比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識(shí)做一些簡(jiǎn)介,但愿能對(duì)單片機(jī)演奏音樂(lè)比較有興趣而又不知其解的朋友能有所啟迪。 一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能象電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂(lè)只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個(gè)音符唱多高的頻率,節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。 在音樂(lè)中所謂“音調(diào)”,其實(shí)就是我們常說(shuō)的“音高”。在音樂(lè)中常把中央C上方的A音定為標(biāo)準(zhǔn)音高,其頻率f=440Hz。當(dāng)兩個(gè)聲音信號(hào)的頻率相差一倍時(shí),也即f2=2f1時(shí),則稱(chēng)f2比f(wàn)1高一個(gè)倍頻程, 在音樂(lè)中1(do)與 ,2(來(lái))與 ……正好相差一個(gè)倍頻程,在音樂(lè)學(xué)中稱(chēng)它相差一個(gè)八度音。在一個(gè)八度音內(nèi),有12個(gè)半音。以1—i八音區(qū)為例, 12個(gè)半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個(gè)音階的分度基本上是以對(duì)數(shù)關(guān)系來(lái)劃分的。如果我們只要知道了這十二個(gè)音符的音高,也就是其基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音調(diào)的頻率。 知道了一個(gè)音符的頻率后,怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?一般說(shuō)來(lái),常采用的方法就是通過(guò)單片機(jī)的定時(shí)器定時(shí)中斷,將單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反,或者說(shuō)來(lái)回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時(shí)器予置不同的定時(shí)值就可實(shí)現(xiàn)。那么怎樣確定一個(gè)頻率所對(duì)應(yīng)的定時(shí)器的定時(shí)值呢?以標(biāo)準(zhǔn)音高A為例: A的頻率f = 440 Hz,其對(duì)應(yīng)的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反的時(shí)間應(yīng)為:t = T/2 = 2272/2 = 1136μs這個(gè)時(shí)間t也就是單片機(jī)上定時(shí)器應(yīng)有的中斷觸發(fā)時(shí)間。一般情況下,單片機(jī)奏樂(lè)時(shí),其定時(shí)器為工作方式1,它以振蕩器的十二分頻信號(hào)為計(jì)數(shù)脈沖。設(shè)振蕩器頻率為f0,則定時(shí)器的予置初值由下式來(lái)確定: t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時(shí)器待確定的計(jì)數(shù)初值。因此定時(shí)器的高低計(jì)數(shù)器的初值為: TH = THL / 256 = ( TALL – t* f0/12) / 256 TL = THL % 256 = ( TALL – t* f0/12) %256 將t=1136μs代入上面兩式(注意:計(jì)算時(shí)應(yīng)將時(shí)間和頻率的單位換算一致),即可求出標(biāo)準(zhǔn)音高A在單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的予置初值為 : TH440Hz = (65536 – 1136 * 12/12) /256 = FBH TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據(jù)上面的求解方法,我們就可求出其他音調(diào)相應(yīng)的計(jì)數(shù)器的予置初值。 音符的節(jié)拍我們可以舉例來(lái)說(shuō)明。在一張樂(lè)譜中,我們經(jīng)常會(huì)看到這樣的表達(dá)式,如1=C 、1=G …… 等等,這里1=C,1=G表示樂(lè)譜的曲調(diào),和我們前面所談的音調(diào)有很大的關(guān)聯(lián), 、 就是用來(lái)表示節(jié)拍的。以 為例加以說(shuō)明,它表示樂(lè)譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如: 其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),3、4的時(shí)長(zhǎng)為八分音符的一半,即為十六分音符長(zhǎng),5的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),6的時(shí)長(zhǎng)為四分音符長(zhǎng)。那么一拍到底該唱多長(zhǎng)呢?一般說(shuō)來(lái),如果樂(lè)曲沒(méi)有特殊說(shuō)明,一拍的時(shí)長(zhǎng)大約為400—500ms 。我們以一拍的時(shí)長(zhǎng)為400ms為例,則當(dāng)以四分音符為節(jié)拍時(shí),四分音符的時(shí)長(zhǎng)就為400ms,八分音符的時(shí)長(zhǎng)就為200ms,十六分音符的時(shí)長(zhǎng)就為100ms。可見(jiàn),在單片機(jī)上控制一個(gè)音符唱多長(zhǎng)可采用循環(huán)延時(shí)的方法來(lái)實(shí)現(xiàn)。首先,我們確定一個(gè)基本時(shí)長(zhǎng)的延時(shí)程序,比如說(shuō)以十六分音符的時(shí)長(zhǎng)為基本延時(shí)時(shí)間,那么,對(duì)于一個(gè)音符,如果它為十六分音符,則只需調(diào)用一次延時(shí)程序,如果它為八分音符,則只需調(diào)用二次延時(shí)程序,如果它為四分音符,則只需調(diào)用四次延時(shí)程序,依次類(lèi)推。通過(guò)上面關(guān)于一個(gè)音符音調(diào)和節(jié)拍的確定方法,我們就可以在單片機(jī)上實(shí)現(xiàn)演奏音樂(lè)了。具體的實(shí)現(xiàn)方法為:將樂(lè)譜中的每個(gè)音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲(chǔ)器中,通過(guò)程序取出一個(gè)音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個(gè)音符的相關(guān)參數(shù)……,如此直到播放完畢最后一個(gè)音符,根據(jù)需要也可循環(huán)不停地播放整個(gè)樂(lè)曲。另外,對(duì)于樂(lè)曲中的休止符,一般將其音調(diào)參數(shù)設(shè)為FFH,F(xiàn)FH,其節(jié)拍參數(shù)與其他音符的節(jié)拍參數(shù)確定方法一致,樂(lè)曲結(jié)束用節(jié)拍參數(shù)為00H來(lái)表示。下面給出部分音符(三個(gè)八度音)的頻率以及以單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的予置初值 : C調(diào)音符 頻率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC調(diào)音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7頻率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C調(diào)音符 頻率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02
上傳時(shí)間: 2013-10-20
上傳用戶:哈哈haha
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1