版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 第1章 緒論</b></p><p> 1.1 單片機基礎知識介紹</p><p> 1.1.1 單片機概述</p><p> 單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。概括的講,一塊芯片就成了一臺計算機。</p><p> M
2、CS-51單片機是美國INTEL公司于1980年推出的產(chǎn)品,與MCS- 48單片機相比,它的結構更先進,功能更強,在原來的基礎上增加了更多的電路單元和指令,指令數(shù)達111條,MCS-51單片機可以算是相當成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機仍是應用的主流產(chǎn)品,各高校及專業(yè)學校的培訓教材仍與MSC-51單片機作為代表進行理論基礎學習。</p><p> MCS-51系列單片機主要包括8031、
3、8051和8751等通用產(chǎn)品。</p><p> DP-51S單片機仿真實驗儀是由廣州致遠電子有限公司設計的DP系列單片機仿真實驗儀之一,是一種功能強大的單片機應用技術學習、調(diào)試。</p><p> 1.1.2 單片機的應用領域</p><p> 單片機廣泛應用于儀器儀表、家用電器、醫(yī)用設備、航空航天、專用設備的智能化管理及過程控制等領域,大致可分為如下幾
4、個范疇:</p><p> 一、在智能儀器儀表的應用</p><p> 單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應用于儀器儀表中,結合不同類型的傳感器,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強大。例如精密的
5、測量設備(功率計,示波器,各種分析儀)。</p><p> 二、在家用電器中的應用</p><p> 可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯煲、洗衣機、電冰箱、空調(diào)機、彩電、其他音響視頻器材、再到電子秤量設備,五花八門,無所不在。</p><p> 三、在工業(yè)控制中的應用</p><p> 用單片機可以構成形式多樣
6、的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構成二級控制系統(tǒng)等。</p><p> 四、在計算機網(wǎng)絡和通信領域中的應用</p><p> 現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡和通信設備間的應用提供了極好的物質條件,現(xiàn)在的通信設備基本上都實現(xiàn)了單片機智能控制,從手機、電話機、小型程控交換機、樓宇
7、自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。</p><p> 五、單片機在醫(yī)用設備領域中的應用</p><p> 單片機在醫(yī)用設備中的用途亦相當廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設備及病床呼叫系統(tǒng)等等。 </p><p> 此外,單片機在工商、金融、科研、教育、國防航空等領域都有著十分廣泛的
8、用途。</p><p> 1.1.3單片機的發(fā)展趨勢</p><p> 單片機現(xiàn)在可以說是百花齊放,百家爭鳴的時期,世界上各大芯片制造公司都推出了自己的單片機,從8位、16位到32位,數(shù)不勝數(shù),應有盡有,有與主流C51系列兼容的,也有不兼容的,但它們各具特色,互成互補,為單片機的應用提供了廣闊的天地。</p><p> 縱觀單片機的發(fā)展過程,可以預示單片機的發(fā)
9、展趨勢,大致有:</p><p><b> 一、微型單片化</b></p><p> 現(xiàn)在常規(guī)的單片機普遍都是將中央處理器(CPU)、隨機存取數(shù)據(jù)存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時電路、時鐘電路集成在一塊單一的芯片上,增強型的單片機集成了如A/D轉換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機將LCD(液晶)驅
10、動電路都集成在單一的芯片上,這樣單片機包含的單元電路就更多,功能就越強大。甚至單片機廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機芯片。</p><p> 此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機除了功能強和功耗低外,還要求其體積要小?,F(xiàn)在的許多單片機都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機構成的系統(tǒng)正朝微型化方向發(fā)展。</p><p&
11、gt; 二、低功耗CMOS化</p><p> MCS-51系列的8031推出時的功耗達630mW,而現(xiàn)在的單片機普遍都在100mW左右,隨著對單片機功耗要求越來越低,現(xiàn)在的各 個單片機制造商基本都采用了CMOS(互補金屬氧化物半導體工藝)。像80C51就采用了HMOS(即高密度金屬氧化物半導體工藝)和CHMOS(互補高密度金屬氧化物半導體工藝)。CMOS雖然功耗低,但由于其物理特征決定其工作速度不夠高,
12、而CHMOS則具備了高速和低功耗的特點,這些特征,更適合于要求低功耗像電池供電的應用場合。所以這種工藝將是今后一段時期單片機發(fā)展的主要途徑。</p><p> 三、主流與多品種共存</p><p> 現(xiàn)在雖然單片機的品種繁多,各具特色,但仍以80C51為核心的單片機占主流,兼容其結構和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATMEL公司的產(chǎn)品和中國臺灣的Winbond系列單片機。所以8
13、0C51占據(jù)了半壁江山。而Microchip公司的PIC精簡指令集合(RISC)也有著強勁的發(fā)展勢頭,中國臺灣的HOLTEX公司近年的單片機產(chǎn)量與日俱增,與其底價質優(yōu)的優(yōu)勢,占據(jù)一定的市場份額。此外還有MOTOROLA公司的產(chǎn)品,日本幾大公司的專用單片機。在一定的時期內(nèi),這種情形將得以延續(xù),將不存在某個單片機一統(tǒng)天下的壟斷局面,走的是依存互補、相輔相成、共同發(fā)展的道路。</p><p> 九十年代以后,單片機在
14、結構上采用雙CPU或內(nèi)部流水線,CPU位數(shù)有8位、16位、32位,時鐘頻率高達20MHZ,片內(nèi)帶有PWM輸出、監(jiān)視定時器WDT、可編程計數(shù)器陣列PCA、DMA傳輸、調(diào)制解調(diào)器等。芯片向高度集成化、低功耗方向的發(fā)展,使得單片機在大量數(shù)據(jù)的實時處理、高級通信系統(tǒng)、數(shù)字信號處理、復雜工業(yè)過程控制、高級機器人以及局域網(wǎng)等方面得到大量應用。這類單片機有NEC公司的MPD7800,MITSUBISHI公司的M337700,REVKWELL公司的R6
15、500。</p><p><b> 1.2 課題概述</b></p><p> 基于單片機的音樂播放器可應用于mp3,MP4,擴音器等很多方面,并可作為很多系統(tǒng)的輔助功能,作為單片機的重要硬件資源之一,利用定時器可以產(chǎn)生各種固定頻率的方波信號,也可以產(chǎn)生包括"Do"、"Re"、"Me"--等音階在內(nèi)的各種
16、頻率聲音。將各個音階連接在一起,便可組成一支曲子或是演奏一段旋律。基于這個思想,我設計了一款特殊的"音樂播放器",本播放器可實現(xiàn)播放、暫停、復位等功能。為了體現(xiàn)樂曲播放過程中的動態(tài)效果,增加了1只LED,作隨機閃爍以指示旋律的節(jié)奏。由于時間及條件限制,本設計實現(xiàn)了一種簡單的音樂播放器,其核心器件采用AT89C51單片機,本播放器具有電路簡單,功能強大,易于拓展等特點。在此基礎上,可以添加按鍵,LED顯示屏等模塊,實現(xiàn)
17、切換歌曲,歌名顯示,動感音樂屏等功能。</p><p> 第2章 系統(tǒng)硬件原理及設計</p><p> 2.1核心器件AT89C51介紹</p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位
18、微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案
19、。外形及引腳排列如圖所示</p><p> 圖2-1 AT89C51外形圖及引腳序列</p><p> 2.1.1 主要特性:</p><p> ·與MCS-51 兼容 </p><p> ·4K字節(jié)可編程閃爍存儲器 </p><p> ·壽命:1000寫/擦循環(huán)</p&
20、gt;<p> ·數(shù)據(jù)保留時間:10年</p><p> ·全靜態(tài)工作:0Hz-24MHz</p><p> ·三級程序存儲器鎖定</p><p> ·128×8位內(nèi)部RAM</p><p> ·32可編程I/O線</p><p>
21、·兩個16位定時器/計數(shù)器</p><p><b> ·5個中斷源 </b></p><p><b> ·可編程串行通道</b></p><p> ·低功耗的閑置和掉電模式</p><p> ·片內(nèi)振蕩器和時鐘電路</p>&l
22、t;p> 2.1.2 .管腳說明:</p><p><b> VCC:供電電壓。</b></p><p><b> GND:接地。</b></p><p> P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它
23、可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p> P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收
24、。 </p><p> P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行
25、讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。</p><p> P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p> P3口也可作為AT89C51
26、的一些特殊功能口,如下表所示</p><p> 表2.1 P3口被選功能</p><p><b> 口管腳 備選功能</b></p><p> P3.0 RXD(串行輸入口)</p><p> P3.1 TXD(串行輸出口)</p><p> P3.2 /INT0(外部中斷0
27、)</p><p> P3.3 /INT1(外部中斷1)</p><p> P3.4 T0(記時器0外部輸入)</p><p> P3.5 T1(記時器1外部輸入)</p><p> P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)</p><p> P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)<
28、;/p><p> P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p> RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p> ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻
29、率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p> /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期
30、兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。</p><p> /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>
31、; XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p> XTAL2:來自反向振蕩器的輸出。</p><p> 2.1.3.振蕩器特性:</p><p> XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內(nèi)部時鐘信號
32、要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p> 2.1.4.芯片擦除:</p><p> 整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。</p><
33、p> 此外,AT89C51設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。</p><p> 2.2 硬件電路設計</p><p> 電路主要由AT89C51芯片,LED發(fā)光二極
34、管,喇叭,晶振電路組成,由引腳輸出定時器產(chǎn)生的各種固定頻率的方波信號,然后由喇叭產(chǎn)生各種頻率的聲音。同理,方波信號通過發(fā)光二極管可以使二極管閃爍發(fā)光,產(chǎn)生韻律燈的效果。由于該方案中使用內(nèi)部振蕩電路,XTAL1、XTAL2引腳外界石英晶體和微調(diào)電容構成的晶振電路。</p><p> 第三章 系統(tǒng)軟件原理及設計</p><p> 總體原理:樂曲中不同的音符,實質就是不同頻率的聲音。通過單片
35、機產(chǎn)生不同的頻率的脈沖信號,經(jīng)過放大電路,由蜂鳴器放出,就產(chǎn)生了美妙和諧的樂曲。</p><p> 3.1 單片機產(chǎn)生不同頻率脈沖信號的原理:</p><p> (1)要產(chǎn)生音頻脈沖,只要算出某一音頻的脈沖(1/頻率),然后將此周期除以2,即為半周期的時間,利用定時器計時這個半周期的時間,每當計時到后就將輸出脈沖的I/O反相,然后重復計時此半周期的時間再對I/O反相,就可以在I/O腳上
36、得到此頻率的脈沖。</p><p> ?。?)利用8051的內(nèi)部定時器使其工作在計數(shù)器模式MODE1下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法如下:</p><p> 例如,頻率為523Hz,其周期天/523 S=1912uS,因此只要令計數(shù)器計時956uS/1us=956,在每計數(shù)956次時就將I/O反接,就可得到中音DO(532Hz)。</p><p>
37、 計數(shù)脈沖值與頻率的關系公式如下:</p><p> N=Fi/2/Fr </p><p> ?。∟:計數(shù)值,F(xiàn)i:內(nèi)部計時一次為1uS,故其頻率為1MHz,F(xiàn)r:要產(chǎn)生的頻率 )</p><p> ?。?) 其計數(shù)值的求法如下:</p><p> T=65536-N=65536-Fi/2/Fr</p><p>
38、<b> 計算舉例:</b></p><p> 設K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計數(shù)值。</p><p> T=65536-N=65536-Fi/2/Fr=65536-1000000/2/Fr=65536-500000/Fr</p><p>
39、 低音DO的T=65536-500000/262=63627</p><p> 中音DO的T=65536-500000/523=64580</p><p> 高音DO的T=65536-500000/1047=65059</p><p> (4)C調(diào)個音符頻率與計數(shù)值T的對照表如下表所示:</p><p> 表3-1 C調(diào)各音符頻率
40、與計數(shù)值T的對照表</p><p> 音 符 頻率(Hz) 簡譜碼(T值) 音 符 頻率(Hz) 簡譜碼(T值)</p><p> 低1DO 262 63628 #4FA# 740 64860</p><p> #1DO# 277 63731 中5SO 784
41、 64898</p><p> 低2RE 294 63835 #5SO# 831 64923</p><p> #2RE# 311 63928 中6LA 880 64968</p><p> 低3M 330 64103
42、#6 932 64994</p><p> 低4FA 349 64103 中7SI 988 65030</p><p> #4FA# 370 64260 高1DO 1046 65058</p><p> 低5SO 392
43、 64260 #1DO# 1109 65085</p><p> #5SO# 415 64331 高2RE 1175 65110</p><p> 低6LA 440 64400 #2RE# 1245 65124</p><p&g
44、t; #6 466 64463 高3M 1318 65157</p><p> 低7SI 494 64524 高4FA 1397 65178</p><p> 中1DO 523 64580 #4FA# 1480 651
45、98</p><p> ?。?)每個音符使用1個字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,下表為節(jié)拍碼的對照。但如果1拍為0.4秒,1/4拍是0.1秒,只要設定延遲時間就可求得節(jié)拍的時間。假設1/4節(jié)拍為1DELAY,則1拍應為4DELAY,以此類推。所以只要求得1/4拍的DELAY時間,其余的節(jié)拍就是它的倍數(shù),如下表為1/4和1/8節(jié)拍的時間設定。</p><p> 表3
46、-2 節(jié)拍碼對照表</p><p> 1/4節(jié)拍 1/8節(jié)拍</p><p> 節(jié)拍碼 節(jié)拍數(shù) 節(jié)拍碼 節(jié)拍數(shù)</p><p> 1 1/4拍 1 1/8拍</p><p> 2 2/4拍 2 1/4拍</p><p> 3 3/4拍 3 3/8
47、拍</p><p> 4 1拍 4 1/2拍</p><p> 5 1又1/4拍 5 5/8拍</p><p> 6 1又1/2拍 6 3/4拍</p><p> 7 1又3/4拍 7 7/8拍</p><p> 8 2拍 8 1拍&
48、lt;/p><p> 9 2又1/4拍 9 1又1/8拍</p><p> A 2又1/2拍 A 1又1/4拍</p><p> B 2又3/4拍 B 1又3/8拍</p><p> C 3拍 C 1又1/2拍</p><p> D 3又1/4拍 D 1又5/8拍<
49、/p><p> E 3又1/2拍 E 1又3/4拍</p><p> F 3又3/4拍 F 1又7/8拍</p><p> 表3-3 各調(diào)節(jié)拍的時間設定表</p><p> 1/4拍的延遲時間=187毫秒</p><p> DELAY: MOV R7,#2</p><p&
50、gt; D2: MOV R4,#187</p><p> D3: MOV R3,#248</p><p> DJNZ R3,$</p><p> DJNZ R4,D3</p><p> DJNZ R7,D2</p><p><b> RET</b>&l
51、t;/p><p><b> ?。?)移調(diào)</b></p><p> 一般的歌曲,有3/8、2/4、3/4、4/4等節(jié)拍類型,但不管有幾拍,基本上是在C調(diào)下演奏的。如果是C調(diào),則音名C唱Do,音名D唱Re,音名E唱Mi,音名E唱Mi,音名F唱Fa,音名G唱So,音名A唱La,音名B唱Ti等。但是,并不是所有的歌曲都是在C調(diào)下演奏的,還有D調(diào)、E調(diào)、F調(diào)、G調(diào)等。D調(diào)是將C
52、調(diào)各音符上升一個頻率實現(xiàn)的,即C調(diào)下的音名D在D調(diào)下唱Do,C調(diào)下的音名E在D調(diào)下唱Re,C大調(diào)的音名F在D調(diào)下上升高半音符F#唱Mi,C調(diào)下的音名G在D調(diào)下唱Fa,C調(diào)下的音名C在D調(diào)下上升高伴音C#符唱Ti。這種唱法稱為移調(diào)。</p><p> 表3-4 C調(diào)在各調(diào)中的音名</p><p> 3.2 音樂軟件的設計</p><p> 3.2.1音樂代碼庫
53、的建立方法</p><p> ?。?)先找出樂曲的最低音和最高音范圍,然后確定音符表T的順序。</p><p> ?。?)把T值表建立在TABLE1,構成發(fā)音符的計數(shù)值放在“TABLE”。</p><p> ?。?)簡譜碼(音符)為高位,節(jié)拍為(節(jié)拍數(shù))為低4位,音符節(jié)拍碼放在程序的“TABLE”處。</p><p> ?。?)音符節(jié)拍碼00
54、H為音樂結束標記。</p><p><b> 3.2.2選曲</b></p><p> 在一個程序中,需要演奏兩首或兩首以上的歌曲時,音樂代碼庫的建立有兩種方法:</p><p> (1)將每首歌曲建立相互獨立的音符表T和發(fā)音符計數(shù)值TABLE。</p><p> ?。?)在建立公用音符表T后,再寫每首歌的發(fā)音計數(shù)
55、值TABLE中的代碼</p><p> 不管采用那種方法,每首歌曲結束時,在TABLE中均需加上音樂結束符00H。</p><p> 3.2.3歌曲的設計</p><p> 下面以歌曲《送別》和《三個和尚》的設計為例,講述歌曲在單片機中的實現(xiàn)。曲譜如下圖所示</p><p> 從兩首歌中可看出,最低音為低7Si,最高音為高1Do。根據(jù)
56、音樂軟件的設計方法,簡譜對應的簡譜碼、T值、節(jié)拍數(shù)如表所示。</p><p> 表3-5 簡譜對應的簡譜碼、T值、節(jié)拍數(shù)</p><p><b> 程序源代碼如下:</b></p><p> ORG 0000H</p><p> LJMP START</p><p> ORG
57、 001BH</p><p> LJMP TIME1</p><p> START:MOV TMOD,#10H ;T1工作在方式1</p><p> MOV IE,#88H ;中斷使能</p><p> MAIN: MOV 40H,#00H
58、 ;設簡譜碼指針初始值</p><p> NEXT: MOV A,40H ;簡譜碼指針暫存累加器A</p><p> MOV DPTR,#TABLE ;設簡譜碼</p><p> MOVC A,@A+DPTR</p><p> CJNE A,#00H,PLAY
59、 ;取到的簡譜碼不是結束碼,傳PLAY取節(jié)拍碼</p><p> LJMP STOP ;是結束碼,退出</p><p> PLAY: MOV R1,A ;R1暫存簡譜碼</p><p> ANL A,#0FH ;取節(jié)拍碼</
60、p><p> MOV R2,A 節(jié)拍碼暫存R2</p><p> MOV A,R1</p><p> ANL A,#0F0H ;取音符碼</p><p> CJNE A,#00H,MUSIC ;音符碼不為0,調(diào)發(fā)音子程序</p
61、><p> CLR TR1 ;音符碼為0,不發(fā)音</p><p><b> LJMP DEL</b></p><p> MUSIC:SWAP A</p><p><b> DEC A</b></p><p> MOV
62、 22H,A</p><p> ADD A,22H</p><p> MOV R3,A</p><p> MOV DPTR,#TABLE1 ;取相應計數(shù)值</p><p> MOVC A,@A+DPTR </p><p> MOV TH1,A
63、 ;暫存高位字節(jié)</p><p> MOV 21H,A</p><p> MOV A,R3</p><p><b> INC A</b></p><p> MOVC A,@A+DPTR ;取相應計數(shù)值的低位字節(jié)</p><p>
64、 MOV TL1,A ;暫存低位字節(jié)</p><p> MOV 20H,A</p><p> SETB TR1 ;啟動定時器</p><p> DEL: LCALL DELAY</p><p> INC 40H
65、 ;指向下一個簡譜碼</p><p> LJMP NEXT</p><p> STOP: CLR TR1 ;停止計時器</p><p> LJMP MAIN</p><p> TIME1:PUSH ACC ;現(xiàn)場保護&l
66、t;/p><p><b> PUSH PSW</b></p><p> CPL P1.7 ;P1.7反相輸出,演奏音樂</p><p> MOV TL1,20H ;重設計數(shù)值</p><p> MOV TH1,21H</
67、p><p><b> POP PSW</b></p><p><b> POP ACC</b></p><p><b> RETI</b></p><p> DELAY:MOV R7,#02H ;4/4曲調(diào),演示125ms子程序
68、</p><p> DELA1:MOV R6,#125</p><p> DELA2:MOV R5,#248</p><p> DJNZ R5,$</p><p> DJNZ R6,DELA2</p><p> DJNZ R7,DELA1</p><p> DJNZ
69、R2,DELAY</p><p><b> RET</b></p><p> TABLE1:DW 64524,64580,64684,64777 ;簡碼值</p><p> DW 64820,64898,64968,65030,65058</p><p> DW 64400,64260</p&g
70、t;<p> TABLE:DB 14H,42H,62H,98H ;歌曲《送別》</p><p> DB 74H,92H,72H,68H</p><p> DB 64H,22H,32H,44H,32H,22H</p><p><b> DB 3CH</b></p><p>
71、; DB 64H,42H,62H,94H,04H,82H</p><p> DB 74H,94H,68H</p><p> DB 64H,32H,42H,54H,04H,12H</p><p><b> DB 2CH</b></p><p> DB 74H,94H,98H</p><p>
72、; DB 84H,72H,82H,98H</p><p> DB 72H,82H,92H,72H,72H,62H,42H,22H</p><p><b> DB 3CH</b></p><p> DB 64H,42H,62H,94H,04H,82H </p><p> DB 74H,94H,68H
73、</p><p> DB 64H,32H,42H,54H,04H,12H</p><p><b> DB 2CH</b></p><p> DB 42H,62H,72H,41H,61H,41H,31H,22H,0B2H;歌曲《三個和尚》</p><p> DB 62H,61H,61H,71H,61H,41H,64
74、H</p><p> DB 0B2H,0B2H,62H,61H,61H,71H,61H,41H,64H</p><p> DB 0B2H,0B2H,62H,61H,61H,71H,61H,41H,64H</p><p> DB 42H,62H,72H,41H,61H,41H,31H,22H,0B2H</p><p> DB 22H,3
75、1H,41H,31H,21H,0A2H,0B4H</p><p> DB 22H,31H,41H,31H,21H,0A2H,0B4H</p><p> DB 22H,31H,41H,31H,21H,0A2H,0B4H</p><p> DB 0A2H,21H,32H,42H,62H,61H,41H,62H,71H</p><p> D
76、B 42H,41H,61H,42H,32H,22H,31H,21H,0A2H</p><p> DB 42H,41H,61H,42H,32H,22H,31H,21H,0A2H</p><p> DB 42H,41H,61H,42H,32H,22H,31H,21H,0A2H</p><p> DB 62H,61H,42H,62H,71H,61H,72H,62H,
77、71H</p><p> DB 62H,61H,71H,32H,42H,64H</p><p><b> DB 00H</b></p><p><b> END</b></p><p><b> 第4章 調(diào)試與仿真</b></p><p> 下
78、面用KEIL uVision與 porteus仿真軟件介紹數(shù)字計算器的仿真與調(diào)試。</p><p> 4.1Keil C51單片機軟件開發(fā)系統(tǒng)</p><p> 1. 系統(tǒng)的整體結構</p><p> C51工具包的整體結構中,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連
79、接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。<
80、;/p><p> 2. 采用KEIL 開發(fā)的89c51單片機應用程序步驟:</p><p> ?。?)在uVision 集成開發(fā)環(huán)境中創(chuàng)建新項目(Project),擴展文件名為.UV2,并為該項目選定合適的單片機CPU器件(本設計采用ATMEL 公司下的AT89C51)</p><p> ?。?)用uVision 的文本編輯器編寫源文件,可以是匯編文件(.ASM),也
81、可以使C語言文件(擴展名.C),并將該文件添加到項目中去。一個項目文件可以包含多個文件,除了源程序文件外,還可以是庫文件、頭文件或文本說明文件。</p><p> ?。?)通過uVision 2 的相關選擇項,配置編譯環(huán)境、連接定位器以及Debug調(diào)試器的功能。</p><p> ?。?)對項目中的源文件進行編譯連接,生成絕對目標代碼和可選的HEX文件,如果出現(xiàn)編譯連接錯誤則返回到第2步,
82、修改源文件中的錯誤后重構整個項目。</p><p> ?。?)對沒有語法錯誤的程序進行仿真調(diào)試,調(diào)試成功后將HEX文件寫入到單片機應用系統(tǒng)的ROM中。</p><p> 4.2 proteus的操作</p><p> 1.硬件電路圖的接法操作 </p><p> (1).放置選擇(刪除)元器件</p><p>
83、<b> (2).移動元器件</b></p><p><b> (3).縮放視圖</b></p><p><b> (4).連接導線</b></p><p><b> (5).仿真,調(diào)試</b></p><p> 2. 單片機系統(tǒng)PROTEUS設
84、計與仿真過程</p><p> Proteus強大的單片機系統(tǒng)設計與仿真功能,使它可成為單片機系統(tǒng)應用開發(fā)和改進手段之一。全部過程都是在計算機上通過Proteus來完成的。其過程一般也可分為三步:</p><p> (1)在ISIS平臺上進行單片機系統(tǒng)電路設計、選擇元器件、接插件、連接電路和電氣檢測等。簡稱Proteus電路設計。</p><p> (2)在K
85、eil平臺上進行單片機系統(tǒng)程序設計、編輯、匯編編譯、代碼級調(diào)試,最后生成目標代碼文件(*.hex)。簡稱Proteus源程序設計和生成目標代碼文件。</p><p> (3)在ISIS平臺上將目標代碼文件加載到單片機系統(tǒng)中,并實現(xiàn)單片機系統(tǒng)的實時交互、協(xié)同仿真。它在相當程度上反映了實際單片機系統(tǒng)的運行情況。簡稱Proteus仿真。</p><p><b> 第5章 結論<
86、;/b></p><p> AT89C51芯片有多組引腳,可實現(xiàn)多種拓展功能,由于知識,能力,時間,條件所限,我只實現(xiàn)了播放自編歌曲的功能,其實,還可以同時拓展LED點陣屏幕,按鍵選歌,以及多組燈光閃亮等功能,換用更高檔的芯片后,甚至可以實現(xiàn)MP3的豐富功能,在補充了相應知識后我將嘗試實現(xiàn)更多的功能。</p><p><b> 心得體會</b></p&
87、gt;<p> 課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程。隨著科學技術發(fā)展的日新日異,單片機已經(jīng)成為當今計算機應用中空前活躍的領域,在生活中可以說得是無處不在。因此作為自動化專業(yè)的學生來說掌握單片機的開發(fā)技術是十分重要的。 我的題目是音樂播放器硬軟件的設計,對于我們這些工科學生來說,這是一次考驗。怎么才能找到課堂所學與實際
88、應用的最佳結合點?怎樣讓自己的業(yè)余更接近專業(yè)?怎樣讓自己的計劃更具有序性,而不會忙無一用?這都是我們所要考慮和努力的。這次課程設計我學到很多很多的東西,學會了怎么樣去制定計劃,怎么樣去實現(xiàn)這個計劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒。不僅鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識,掌握了一種系統(tǒng)的研究方法,可以進行一些簡單的編程。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠
89、不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。</p><p> 同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,對單片機匯編語言掌握得不夠好。這次課程設計通過自己的努力,同學的幫助,還有老師的辛勤指導下,最終順利完成了。</p><p><b> 參考
90、文獻</b></p><p> 1 侯玉寶, 陳忠平,,李成群. 基于Proteus的51系列單片機設計與仿真. 北京 電子工業(yè)出版社,2008</p><p> 2 沈德金,陳粵初.MCS-51系列單片機接口電路與應用程序實例.北京航空航天大學出版社,1990</p><p> 3 胡漢才.單片機原理及接口技術.清華大學出版社,1996&l
91、t;/p><p> 4 何立民.MCS-51系列單片機應用系統(tǒng)設計.北京航空航天大學出版社,1990.1</p><p> 5 張毅剛、彭喜元、姜守達、喬立巖.新編MCS-51系列單片機應用設計.哈爾濱工業(yè)大學出版社,2003.6</p><p> 6 楊世成.信號放大電路.電子工業(yè)出版社,1995</p><p> 7 潘立民,
92、王燕芳.微型計算機控制技術.人民郵電出版社,1990</p><p> 8 邵敏權,劉剛.單片機原理實驗及應用.吉林科學技術出版社,1995.1</p><p> 9 陳汝全.實用微機與單片機控制技術.電子科技大學出版社,1995.7</p><p> 10 李華. MCS-51系列單片機應用接口技術.北京航空航天大學出版,1993</p>
93、<p> 11 童詩白.模擬電子技術基礎。高等教育出版社,2001 </p><p> 12 www.csdn.net</p><p> 13 baike.baidu.com/view/1270245.htm</p><p> 14 www.21ic.com/app/mcu/200903/33511.htm</p>
94、<p><b> 致謝</b></p><p> 為期兩周的課程設計結束了,在這次設計中,我得到了陳志旺講師和臧懷剛副教授的悉心指導,在此深表感謝,同時,我也要向在設計過程中給予我?guī)椭膸孜煌瑢W以及班委的協(xié)助工作致以誠摯的謝意。</p><p><b> 附錄</b></p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計—基于單片機的音樂播放器
- 畢業(yè)設計---基于單片機的音樂播放器
- 畢業(yè)設計-- 基于單片機的音樂播放器設計
- 畢業(yè)設計---基于單片機的音樂播放器.doc
- 基于單片機的音樂播放器設計畢業(yè)論文
- 畢業(yè)設計---基于單片機的自動音樂播放器的設計
- 基于-單片機控制的音樂播放器的畢業(yè)設計
- 基于單片機音樂播放器設計-課程設計論文
- 單片機課程設計--基于單片機的音樂播放器
- 單片機音樂播放器課程設計報告
- 基于單片機音樂播放器設計軟件設計
- 音樂播放器畢業(yè)設計論文
- 15-單片機音樂播放器設計.doc
- 基于單片機音樂播放器設計[文獻綜述]
- 基于單片機音樂播放器課程設計
- 單片機音樂播放器課程設計報告
- 基于51單片機的音樂播放器設計
- 畢業(yè)設計論文 音樂播放器設計
- 基于單片機的mp3播放器設計-畢業(yè)設計論文
- 單片機課程設計——紅外遙控音樂播放器
評論
0/150
提交評論