版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、湖南湖南鐵鐵路科技路科技職業(yè)職業(yè)技技術(shù)術(shù)學(xué)院學(xué)院 單單片機(jī)片機(jī)課課程程設(shè)計(jì)設(shè)計(jì) 題題 目:基于目:基于單單片機(jī)的數(shù)字音片機(jī)的數(shù)字音樂樂盒盒設(shè)計(jì)設(shè)計(jì) 專專 業(yè)業(yè):機(jī):機(jī)電電一體化一體化 系系 部:機(jī)械工程系部:機(jī)械工程系 姓姓 名:名: 班班 級(jí)級(jí): :309-2 班班 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 1 基于單片機(jī)的數(shù)字音樂盒設(shè)計(jì) 任 務(wù) 書 一、任務(wù) 設(shè)計(jì)一款基于 at89c51 單片機(jī)的數(shù)字音樂盒。 二、設(shè)計(jì)要求 (1)利用單片機(jī)的 i/o 口產(chǎn)生一定頻率的方波,驅(qū)動(dòng)蜂鳴器,發(fā)出不 同的音調(diào),從而演奏樂曲。 (2)共有10首音樂,每
2、首樂曲都由相應(yīng)的按鍵控制,并有開關(guān)鍵、暫 停鍵、上一曲及下一曲控制鍵; (3)利用 lcd 液晶顯示歌曲的序號(hào)、播放時(shí)間,開機(jī)時(shí)顯示英文歡迎 提示字符。 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 2 目 錄 任任 務(wù)務(wù) 書書 .1 1 目目 錄錄 .2 2 1 概述 .5 5 1.1 單片機(jī)數(shù)字音樂盒有關(guān)介紹.5 5 1.2 led 顯示屏控制技術(shù)狀況.9 1.3 本設(shè)計(jì)任務(wù) .10 2 總體方案論證與設(shè)計(jì).1212 2.1 單片機(jī)的選取 .12 2.2 led 顯示方式.13 2.3 led 驅(qū)動(dòng)模塊.13 2.4 系統(tǒng)總體結(jié)構(gòu)框圖 .14 3
3、 系統(tǒng)硬件設(shè)計(jì) .1515 3.1 at89c51 芯片功能和硬件連接.15 3.2 led 顯示器.18 3.3 鍵盤 .19 3.4 系統(tǒng)復(fù)位電路的設(shè)計(jì) .20 3.5 時(shí)鐘電路模塊 .20 3.6 輸出顯示電路 .21 3.7 音頻輸出部分 .21 3.8 整體硬件電路 .23 4 系統(tǒng)軟件設(shè)計(jì).25 4.1 主模塊的設(shè)計(jì) .25 4.2 外部中斷源系統(tǒng)設(shè)計(jì) .26 4.3 基本顯示模塊設(shè)計(jì) .27 4.4 系統(tǒng)初始化程序 .28 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 3 4.5 音調(diào)、節(jié)拍以及編碼的確定方法.28 4.6 程序流程圖.
4、33 4.7 文檔頂端程序清單 .35 5 調(diào)試結(jié)果 .46 5.1 系統(tǒng)總電路圖 .46 5.2 運(yùn)行結(jié)果及分析 .46 總 結(jié) .48 參考文參考文獻(xiàn)獻(xiàn) .4949 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 4 1 概述 傳統(tǒng)的音樂盒多是機(jī)械音樂盒,其工作原理是通過齒輪帶動(dòng)一個(gè)帶有 鐵釘?shù)蔫F桶轉(zhuǎn)動(dòng),鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是, 機(jī)械式的音樂盒體積比較大,比較笨重,且發(fā)音單調(diào)。水、灰塵等外在因 素,容易使內(nèi)部金屬發(fā)音條變形,從而造成發(fā)音跑調(diào)。另外,機(jī)械音樂盒 放音時(shí)為了讓音色穩(wěn)定,必須放平不能動(dòng)搖,而且價(jià)格昂貴,不能實(shí)現(xiàn)
5、大批 量生產(chǎn)?;趩纹瑱C(jī)設(shè)計(jì)制作的電子式音樂盒。與傳統(tǒng)的機(jī)械式音樂盒相 比更小巧,音質(zhì)更優(yōu)美且能演奏和弦音樂。電子式音樂盒動(dòng)力來源是電池, 制作工藝簡(jiǎn)單,可進(jìn)行批量生產(chǎn),所以價(jià)格便宜?;趩纹瑱C(jī)制作的電子 式音樂盒,控制功能強(qiáng)大,可根據(jù)需要選歌,使用方便。所放歌曲的節(jié)奏 可以根據(jù)需要進(jìn)行設(shè)置,根據(jù)存儲(chǔ)容量的大小,可以盡可能多的存儲(chǔ)歌曲。 另外,可以設(shè)計(jì)彩燈外觀效果,增設(shè)放歌時(shí)間、序號(hào)顯示燈功能,使音樂 盒的功能更加豐富。 1.1 單片機(jī)數(shù)字音樂盒有關(guān)介紹 電子音樂已廣泛地應(yīng)用于社會(huì)生活的各個(gè)領(lǐng)域。其類型從音樂卡片到 cd、mp3 等多種多樣,制作原理也各不相同。聲音是通過振動(dòng)產(chǎn)生的。單 片機(jī)對(duì)
6、某一 i/o 引腳以一定的頻率循環(huán)置 1 和清 0,這一引腳便產(chǎn)生一定頻 率的方波,該方波通過放大后作用于揚(yáng)聲器便產(chǎn)生一定頻率的聲音。若改 變輸出方波的頻率,產(chǎn)生的聲音也就改變了。通過控制輸出方波的時(shí)間長 短,聲音的長短也就得到控制。因此,根據(jù)樂譜,單片機(jī)就可產(chǎn)生電子音樂。 音樂中最關(guān)鍵的兩個(gè)要素是音符和節(jié)拍。單片機(jī)控制的音樂發(fā)生器系統(tǒng)由 硬件電路和軟件兩部分構(gòu)成。利用單片機(jī)控制的電子音樂發(fā)生器軟硬件上 具有獨(dú)特的優(yōu)點(diǎn),系統(tǒng)的開發(fā)周期短,成本低,電路制作容易。更換歌曲 時(shí),硬件電路無需作任何修改,只需修改軟件即可實(shí)現(xiàn)。軟件編程時(shí),可 用 51 系列單片機(jī)的匯編語言或 c51 語言實(shí)現(xiàn)。同時(shí)還可
7、根據(jù)個(gè)人的習(xí)好通 過軟件改變節(jié)拍的延時(shí)時(shí)間,增加電子音樂的趣味性。 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 5 1.1.1 發(fā)音原理介紹 發(fā)音原理:播放一段音樂需要的是兩個(gè)元素,一個(gè)是音調(diào),另一個(gè)是 音符。首先要了解對(duì)應(yīng)的音調(diào),音調(diào)主要由聲音的頻率決定,同時(shí)也與聲 音強(qiáng)度有關(guān)。對(duì)一定強(qiáng)度的純音,音調(diào)隨頻率的升降而升降;對(duì)一定頻率 的純音、低頻純音的音調(diào)隨聲強(qiáng)增加而下降,高頻純音的音調(diào)卻隨強(qiáng)度增 加而上升。另外,音符的頻率有所不同?;谏厦娴膬?nèi)容,這樣就對(duì)發(fā)音 的原理有了一些初步的了解。 音符的發(fā)音主要靠不同的音頻脈沖。利用單片機(jī)的內(nèi)部定時(shí)器/計(jì)
8、數(shù)器 0,使其工作在模式 1,定時(shí)中斷,然后控制 p3.7 引腳的輸出音樂。只要算 出某一音頻的周期(1/頻率),然后將此周期除以 2,即為半周期的時(shí)間, 利用定時(shí)器計(jì)時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的 i/o 反相, 然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì) i/o 反相,就可在 i/o 腳上得到此頻率的脈 沖。 1.1.2 音符頻率的產(chǎn)生 音符及定時(shí)器初始值: 例如:中音 1(do)的音頻=523hz,周期 t=1/523s=1912 s 定時(shí)器/計(jì)數(shù)器 0 的定時(shí)時(shí)間為:t/2=1912/2 s =956 s 定時(shí)器 956 s 的計(jì)數(shù)值=定時(shí)時(shí)間/機(jī)器周期=956 s /1 s =956
9、(時(shí)鐘頻 率=12mhz) 裝入 t0 計(jì)數(shù)器初值為 65536-956=64580 將 64580 裝入 t0 寄存器中,啟動(dòng) t0 工作后,每計(jì)數(shù) 956 次時(shí)將產(chǎn)生 溢出中斷,進(jìn)入中斷服務(wù)時(shí),每次對(duì) p3.0 引腳的輸出值進(jìn)行取反,就可得 到中音 do(523hz)的音符音頻。將 51 單片機(jī)內(nèi)部定時(shí)器工作在計(jì)數(shù)器 模式 1 下,改變計(jì)數(shù)初值 th0,tl0 以產(chǎn)生不同的頻率。下表 1.1 是 c 調(diào)各 音符頻率與計(jì)數(shù)初值 t 的對(duì)照表: 表 1.1 c 調(diào)各音符頻率與計(jì)數(shù)初值 t 的對(duì)照表 音符頻率(hz)/初值( s )音符頻率(hz)/初值( s ) 低 1do262/63627中
10、 1do 523/64580 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 6 高 1do1042/65056低 2re 294/63835 中 2re589/64687高 2re 1245/65134 低 3m330/64021中 3m 661/64780 高 3m1318/65157低 4fa 350/64107 中 4fa700/64822高 4fa 1397/65178 低 5so393/64264中 5so 786/64900 高 5so1568/65217低 6la 441/64402 中 6la 882/64969高 6la 1760/
11、65252 低 7si 495/64526中 7si 990/65031 高 7si 1967/65282 音符、音符編碼及定時(shí)器初始值: 為了產(chǎn)生音符,必須求出音符低音 5高音 5 的計(jì)數(shù)初值。例如 c 調(diào)的 低 1do 的 thtl=65536-50000/262=63627,中音 do 的 thtl=65536- 500000/523=64580,高音 do 的 thtl=65536-500000/1042=65056。為了方便 寫譜,對(duì)其進(jìn)行簡(jiǎn)單的編碼,在編程時(shí),根據(jù)音符編碼(表 1.2)查找對(duì)應(yīng) 的計(jì)數(shù)初值。比如說音樂是 c 調(diào)的,那么出現(xiàn)低音的 5so,直接將代碼寫為 1;出現(xiàn)低音
12、 6la,直接寫一個(gè) 2 的代碼;出現(xiàn)低音 7si,直接寫一個(gè) 3 代碼。 表 1.2 音符編碼表 音符音符編碼 音符音符編碼 不發(fā)音0低 5so1 低 6la2 低 7si3 中 1do4中 2re5 中 3m6中 4fa7 中 5so8 中 6la9 中 7sia高 1dob 高 2rec高 3md 高 4fae 高 5sof 高 6lag 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 7 1.1.3 節(jié)拍頻率的產(chǎn)生 節(jié)拍的產(chǎn)生與編碼: 音樂中的節(jié)拍用延時(shí)時(shí)間產(chǎn)生。例如,1 拍=0.4s,1/4 拍=0.1s,以此 類推。假設(shè) 1/4 拍執(zhí)行一次
13、延時(shí)程序,則 1/2 拍就執(zhí)行兩次延時(shí)程序,所 以只要求出 1/4 拍的延時(shí)時(shí)間,其余節(jié)拍就是它的倍數(shù)。為了方便,將節(jié) 拍數(shù)也進(jìn)行了編碼,并且計(jì)算了樂譜節(jié)拍編程時(shí)的延時(shí)時(shí)間,如表 1.3 和 表 1.4 所示。 表 1.3 節(jié)拍數(shù)編碼表 按 1/4 拍為一個(gè)延時(shí)時(shí)間的節(jié)拍編碼與節(jié) 拍對(duì)應(yīng)的表 按 1/8 拍為一個(gè)延時(shí)時(shí)間的節(jié)拍編碼與節(jié) 拍對(duì)應(yīng)的表 節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍節(jié)拍編碼節(jié)拍 11/466/411/866/8 22/488/422/888/8 33/4a10/433/8a10/8 44/4c12/444/8c12/8 55/4f15/455/8 表 1.4 樂譜節(jié)拍編程時(shí)的
14、時(shí)間延時(shí)表 樂譜節(jié)拍1/4 拍的延時(shí)時(shí)間樂譜節(jié)拍1/8 拍的延時(shí)時(shí)間 4/4125 ms4/462 ms 3/4187 ms3/494 ms 2/4250 ms2/4125 ms 音符編碼和節(jié)拍編碼完成后,在編程時(shí),每個(gè)音符占一個(gè)字節(jié),高四位是 音符編碼,低四位是節(jié)拍編碼。 1.2 led 顯示屏控制技術(shù)狀況 顯示屏的控制系統(tǒng)包括輸入接口電路、信號(hào)控制、轉(zhuǎn)換和數(shù)字化處理 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 8 電路及輸出接口電路等,涉及的具體技術(shù)很多,其關(guān)鍵技術(shù)包括串行傳輸 與并行傳輸技術(shù)、動(dòng)態(tài)掃描與靜態(tài)鎖存技術(shù)、自動(dòng)檢測(cè)及遠(yuǎn)程控制技術(shù)等。
15、 1.2.1 串行傳輸與并行傳輸技術(shù) led 顯示屏的數(shù)據(jù)傳輸方式主要有串行和并行兩種。日前普遍采用串行 控制技術(shù),顯示屏每個(gè)單元內(nèi)部的不同驅(qū)動(dòng)電路和各級(jí)聯(lián)單元之間,每個(gè) 時(shí)鐘僅傳送一位數(shù)據(jù)。采用這種方式的驅(qū)動(dòng) ic 種類較多,不同顯示單元之 間的聯(lián)線較少,可減少顯示單元的數(shù)據(jù)傳輸驅(qū)動(dòng)元件,從而提高整個(gè)系統(tǒng) 的可靠性和性價(jià)比,具體工程實(shí)現(xiàn)也較為容易。 1.2.2 動(dòng)態(tài)掃描與靜態(tài)鎖存技術(shù) led 顯示屏控制系統(tǒng)實(shí)現(xiàn)顯示信息的刷新技術(shù)有動(dòng)態(tài)掃描和靜態(tài)鎖存兩 種方式。一般室內(nèi)顯示屏多采用動(dòng)態(tài)掃描技術(shù),即一行發(fā)光二極管共用一 行驅(qū)動(dòng)寄存器,根據(jù)共用一行驅(qū)動(dòng)寄存器的發(fā)光二極管像素?cái)?shù)目,分為 1/4、1/
16、16 掃描等。室外顯示屏基本上采用靜態(tài)鎖存技術(shù),即每一個(gè)發(fā)光一 極管都對(duì)應(yīng)有一個(gè)驅(qū)動(dòng)寄存器,無需時(shí)分工作,從而保證了每一個(gè)發(fā)光一 極管的亮度占空比為 100%。動(dòng)態(tài)掃描法可以大大減少控制器的 i/o 口,因 此應(yīng)用較廣。 1.2.3 自動(dòng)檢測(cè)及遠(yuǎn)程控制技術(shù) led 顯示屏的構(gòu)成復(fù)雜,特別是室外顯示屏,供電、環(huán)境亮度、環(huán)境溫 度條件等都直接影響顯示屏的正常運(yùn)行。在 led 顯示屏的控制系統(tǒng)中,因 根據(jù)需要對(duì)溫度、亮度、電源等進(jìn)行自動(dòng)檢測(cè)控制,也可根據(jù)需要,遠(yuǎn)程 實(shí)現(xiàn)對(duì)顯示屏的亮度、色度調(diào)節(jié)、圖像水平和垂直位置的調(diào)節(jié)以及工作方 式的轉(zhuǎn)換等。 1.3 本設(shè)計(jì)任務(wù) 隨著人類社會(huì)的發(fā)展,人們對(duì)視覺、聽覺
17、方面的享受提出了越來越高 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 9 的要求。小小的音樂盒可以給人們帶來美好的回憶,提高人們的精神文化 享受。傳統(tǒng)的音樂盒多是機(jī)械型的,體積笨重,發(fā)音單調(diào),不能實(shí)現(xiàn)批量 生產(chǎn)。本文設(shè)計(jì)的音樂盒是以單片機(jī)為核心元件的電子式音樂盒,體積小, 重量輕,能演奏和旋音樂,功能多,使用方便,可以批量生產(chǎn),具有一定 的商業(yè)價(jià)值。 本設(shè)計(jì)是基于單片機(jī)控制的數(shù)字音樂盒的設(shè)計(jì),由單片機(jī) at89c51 芯片 和 led 數(shù)碼管為核心,輔以必要的電路,構(gòu)成的一個(gè)單片機(jī)數(shù)字音樂盒。 若該設(shè)計(jì)使用數(shù)字電路完成,所設(shè)計(jì)的電路相當(dāng)復(fù)雜,大概需
18、要十幾片 數(shù)字集成塊,其功能也主要依賴于數(shù)字電路的各功能模塊的組合來實(shí)現(xiàn),焊 接的過程比較復(fù)雜,成本也非常高。若用單片機(jī)來設(shè)計(jì)制作完成,由于其功 能的實(shí)現(xiàn)主要通過軟件編程來完成,那么就降低了硬件電路的復(fù)雜性,而且 其成本也有所降低,所以在該設(shè)計(jì)中采用單片機(jī)利用 at89c51,它是低功耗、 高性能的 cmos 型 8 位單片機(jī)。片內(nèi)帶有 4kb 的 flash 存儲(chǔ)器,且允許在系 統(tǒng)內(nèi)改寫或用編程器編程。另外, at89c51 的指令系統(tǒng)和引腳與 8051 完全 兼容,片內(nèi)有 128b 的 ram、32 條 i/o 口線、2 個(gè) 16 位定時(shí)計(jì)數(shù)器、5 個(gè)中 斷源、一個(gè)全雙工串行口等。 在該設(shè)
19、計(jì)中利用單片機(jī) i/o 口產(chǎn)生一定頻率的方波,驅(qū)動(dòng)蜂鳴器,發(fā) 出各種不同的音調(diào),從而演奏樂曲,并能夠由 lcd 顯示信息。鍵盤在單片 機(jī)應(yīng)用系統(tǒng)中能實(shí)現(xiàn)向單片機(jī)輸入數(shù)據(jù),傳送命令等功能,是人工干預(yù)單 片機(jī)的主要手段。本設(shè)計(jì)采用 4*4 鍵盤,16*2 lcd,七段顯示數(shù)碼管 led。 在開機(jī)按鈕按下時(shí)有英文歡迎提示字符,播放時(shí)顯示歌曲序號(hào)(或名 稱)。在演奏過程中可通過功能鍵選擇樂曲,暫停,播放。 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 10 2 總體方案論證與設(shè)計(jì) 本設(shè)計(jì)是基于單片機(jī)的數(shù)字音樂盒設(shè)計(jì),由單片機(jī) at89c51 芯片和 led
20、數(shù)碼管為核心,輔以必要的電路,構(gòu)成的一個(gè)單片機(jī)電子數(shù)字音樂盒。要 求利用 i/o 口產(chǎn)生一定頻率的方波,驅(qū)動(dòng)蜂鳴器,發(fā)出不同的音調(diào)并采用 lcd 顯示信息,從而演奏樂曲,開機(jī)時(shí)有英文歡迎提示字符,播放時(shí)顯示歌 曲序號(hào)(或名稱),可通過功能鍵選擇樂曲,暫停,播放。本設(shè)計(jì)采用 4*4 鍵盤,16*2 lcd,七段顯示數(shù)碼管 led。下面對(duì)各模塊的設(shè)計(jì)逐一進(jìn)行論證 比較。 2.1 單片機(jī)的選取 首先選擇單片機(jī)中最為普遍的 mcs51 系列。其中 at89c2051 是美國 atmel 公司生產(chǎn)的低電壓、高性能 cmos 8 位單片機(jī),片內(nèi)含 2k bytes 的可 反復(fù)擦寫的只讀程序存儲(chǔ)器(pero
21、m)和 128bytes 的隨機(jī)數(shù)據(jù)存儲(chǔ)器 (ram),器件采用 atmel 公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo) 準(zhǔn) mcs-51 指令系統(tǒng),片內(nèi)置通用 8 位中央處理器和 flash 存儲(chǔ)單元,功能 強(qiáng)大的 at89c2051 單片機(jī)可應(yīng)用于許多高性價(jià)比的應(yīng)用場(chǎng)合。 主要性能: 和 mcs-51 產(chǎn)品兼容; 2kb 可重編程 flash 存儲(chǔ)器(1000 次); 2.7-6v 電壓范圍; 全靜態(tài)工作:0hz-24khz 2 級(jí)程序存儲(chǔ)器保密鎖定 128*8 位內(nèi)部 ram 15 條可編程 i/o 線 兩個(gè) 16 位定時(shí)器/計(jì)數(shù)器 6 個(gè)中斷源 可編程串行通道 高精度電壓比較器(p1.
22、0,p1.1,p3.6) 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 11 直接驅(qū)動(dòng) led 的輸出端口 由于完成核心功能音頻輸出只需一個(gè) i/o 口,并且額外功能 led 移位顯示可根據(jù)所選單片機(jī)的剩余 i/o 口進(jìn)行設(shè)計(jì),因此 at89c2051 足以 滿足基本要求。其 20 個(gè)引腳體積小巧,內(nèi)部 2k 字節(jié)的程序存儲(chǔ)器容量適 中,低壓低頻工作條件,并且價(jià)格低廉容易購得。 綜上,本次設(shè)計(jì)選擇 at89c2051 單片機(jī)。 2.2 led 顯示方式 方案一:靜態(tài)顯示。將一幀圖像中的每一個(gè)二極管的狀態(tài)分別用 0 和 1 表示,若為 0,則表示 le
23、d 無電流,即暗狀態(tài);若為 1 則表示二極管被點(diǎn) 亮。若給每一個(gè)發(fā)光二極管一個(gè)驅(qū)動(dòng)電路,一幅畫面輸入以后,所有 led 的狀態(tài)保持到下一幅畫。對(duì)于靜態(tài)顯示方式,所需的譯碼驅(qū)動(dòng)裝置很多, 引線多而復(fù)雜,成本高,且可靠性也較低。 方案二:動(dòng)態(tài)顯示。對(duì)一幅畫面進(jìn)行分割,對(duì)組成畫面的各部分分別 顯示,是動(dòng)態(tài)顯示方式。動(dòng)態(tài)顯示方式,可以避免靜態(tài)顯示的問題。但設(shè) 計(jì)上如果處理不當(dāng)易造成亮度低,閃爍問題。因此合理的設(shè)計(jì)既應(yīng)保證驅(qū)動(dòng) 電路易實(shí)現(xiàn),又要保證圖像穩(wěn)定、無閃爍。動(dòng)態(tài)顯示采用多路復(fù)用技術(shù)的 動(dòng)態(tài)掃描顯示方式,復(fù)用的程度不是無限增加的,因?yàn)槔脛?dòng)態(tài)掃描顯示 使我們看到一幅穩(wěn)定畫面的實(shí)質(zhì)是利用了人眼的暫留
24、效應(yīng)和發(fā)光二極管發(fā) 光時(shí)間的長短,發(fā)光的亮度等因素。通過實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)掃描刷新頻率(發(fā) 光二極管的停閃頻率)為 50hz,發(fā)光二極管導(dǎo)通時(shí)間1ms 時(shí)顯示亮度較 好,無閃爍感。 鑒于上述原因,采用方案二。 2.3 led 驅(qū)動(dòng)模塊 方案一:采用靜態(tài)鎖存方式,將每一個(gè) led 發(fā)光管的一端接至單片機(jī) 的一個(gè) i/o 口,另一端通過電阻接電源。這種方法可以直接驅(qū)動(dòng) led,原理 簡(jiǎn)單,驅(qū)動(dòng)能力強(qiáng),led 的亮度也可以通過限流電阻調(diào)節(jié),非常方便,但此 種方法太浪費(fèi)單片機(jī)的 i/o 口,只適合于較小的系統(tǒng)。 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 12
25、方案二:采用動(dòng)態(tài)掃描方式,通過三極管驅(qū)動(dòng)并聯(lián)在一起的 led 發(fā)光 管的一端(共陰或共 2 端),led 發(fā)光管的另一腳接通用 i/o 口,控制其亮滅。 該方法能驅(qū)動(dòng)較多的 led,控制方式較靈活,而且節(jié)省單片機(jī)的資源。 比較以上兩種方案,系統(tǒng)設(shè)計(jì)中采用方案二。 2.4 系統(tǒng)總體結(jié)構(gòu)框圖 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 13 3 系統(tǒng)硬件設(shè)計(jì) 本設(shè)計(jì)中用到了 at89c51 單片機(jī),4*4 鍵盤,蜂鳴器,2 lcd 等硬件電 路常用元器件。 3.1 at89c51 芯片功能和硬件連接 at89c51 是一種帶 4k 字節(jié)閃爍可編程可擦除
26、只讀存儲(chǔ)器的低電壓,高 性能 cmos8 位微處理器,俗稱單片機(jī)。該器件采用 atmel 高密度非易失存 儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 mcs-51 指令集和輸出管腳相兼容。由于 將多功能 8 位 cpu 和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel 的 at89c51 是一 種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方 案。 3.1.1 主要特性: 與 mcs-51 兼容 4k 字節(jié)可編程閃爍存儲(chǔ)器 壽命:1000 寫/擦循環(huán) 數(shù)據(jù)保留時(shí)間:10 年 全靜態(tài)工作:0hz-24hz 三級(jí)程序存儲(chǔ)器鎖定 128*8 位內(nèi)部 ram 32 可編程 i/o 線 兩個(gè) 16 位定時(shí)器
27、/計(jì)數(shù)器 5 個(gè)中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時(shí)鐘電路 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 14 3.1.2 管腳說明(如圖 3.1): 圖 3.1 vcc:供電電壓。 gnd:接地。 p0 口:p0 口為一個(gè) 8 位漏級(jí)開路雙向 i/o 口,每腳可吸收 8ttl 門電 流。當(dāng) p1 口的管腳第一次寫 1 時(shí),被定義為高阻輸入。p0 能夠用于外部程 序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在 fiash 編程時(shí),p0 口作為原碼輸入口,當(dāng) fiash 進(jìn)行校驗(yàn)時(shí),p0 輸出原碼,此時(shí) p0 外部必須 被
28、拉高。 p1 口:p1 口是一個(gè)內(nèi)部提供上拉電阻的 8 位雙向 i/o 口,p1 口緩沖器 能接收輸出 4ttl 門電流。p1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸 入,p1 口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。 在 flash 編程和校驗(yàn)時(shí),p1 口作為第八位地址接收。 p2 口:p2 口為一個(gè)內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 口緩沖器可 接收,輸出 4 個(gè) ttl 門電流,當(dāng) p2 口被寫“1”時(shí),其管腳被內(nèi)部上拉電 阻拉高,且作為輸入。并因此作為輸入時(shí),p2 口的管腳被外部拉低,將輸 出電流。這是由于內(nèi)部上拉的緣故。p2 口當(dāng)用于外部程序存儲(chǔ)器
29、或 16 位地 址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2 口輸出地址的高八位。在給出地址“1” 時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2 口輸出其特殊功能寄存器的內(nèi)容。p2 口在 flash 編程和校驗(yàn)時(shí)接收高八位 地址信號(hào)和控制信號(hào)。 p3 口:p3 口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 i/o 口,可接收輸出 4 個(gè) ttl 門電流。當(dāng) p3 口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作 輸入。作為輸入,由于外部下拉為低電平,p3 口將輸出電流(ill)這是由 于上拉的緣故。p3 口也可作為 at89c51 的一些特殊功能口,如下表所示: 管口管腳 備選功能 p3.0
30、rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷 0) p3.3 /int1(外部中斷 1) 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 15 p3.4 t0(記時(shí)器 0 外部輸入) p3.5 t1(記時(shí)器 1 外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通) p3 口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 rst 腳兩個(gè)機(jī)器周期的 高電平時(shí)間。 ale/prog:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存 地
31、址的地位字節(jié)。在 flash 編程期間,此引腳用于輸入編程脈沖。在平時(shí), ale 端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的 1/6。因 此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用 作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè) ale 脈沖。如想禁止 ale 的輸出可在 sfr8eh 地址上置 0。此時(shí), ale 只有在執(zhí)行 movx,movc 指令是 ale 才起作 用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ale 禁止, 置位無效。 /psen:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間, 每個(gè)機(jī)器周期兩次/psen 有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器
32、時(shí),這兩次有效的 /psen 信號(hào)將不出現(xiàn)。 /ea/vpp:/ea 保持低電平時(shí),在此期間外部程序存儲(chǔ)器(0000h- ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式 1 時(shí),/ea 將內(nèi)部鎖 定為 reset;當(dāng)/ea 端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在 flash 編程 期間,此引腳也用于施加 12v 編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。 3.1.3 振蕩器特性: xtal1 和 xtal2 分別為反向放大器的輸入和輸出。該反向放大器可以配 置為 片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)
33、鐘源驅(qū)動(dòng) 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 16 器件,xtal2 應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器, 因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求 的寬度。 3.1.4 芯片擦除: 整個(gè) perom 陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合, 并保持 ale 管腳處于低電平 10ms 來完成。在芯片擦操作中,代碼陣列全被寫 “1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外, at89c51 設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟 件可選的掉電模式。在閑置
34、模式下,cpu 停止工作。但 ram,定時(shí)器,計(jì)數(shù) 器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存 ram 的內(nèi)容并且凍結(jié) 振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。 3.2 led 顯示器 led(light emitting diode)是發(fā)光二極管英文名稱的縮寫。led 顯示器是由發(fā)光二極管構(gòu)成的,所以在顯示器前面冠以“l(fā)ed”。led 顯示 器在單片機(jī)系統(tǒng)中的應(yīng)用非常普遍。 3.23.2.1.1 led 顯示器的結(jié)構(gòu) 常用的 led 顯示器為 8 段。每一個(gè)段對(duì)應(yīng) 1 個(gè)發(fā)光二極管,這種顯示 器有共陽極和共陰極兩種:共陰極 led 顯示器的發(fā)光二極管的陰極連接在 一起,通常
35、此公共陰極接地。當(dāng)某個(gè)發(fā)光二極管的陽極為高電平時(shí),發(fā)光 二極管點(diǎn)亮,相應(yīng)的段被顯示。同樣,共陽極 led 顯示器的發(fā)光二極管的 陽極連接在一起,通常此公共陽極接正電壓,當(dāng)某個(gè)發(fā)光二極管的陰極接 低電平時(shí),發(fā)光二極管被點(diǎn)亮,相應(yīng)的段被顯示。為了使 led 顯示器顯示 不同的符號(hào)或數(shù)字,就要把不同段的發(fā)光二極管點(diǎn)亮,這樣就要為 led 提 供代碼,因?yàn)檫@些代碼可使 led 相應(yīng)的段發(fā)光,從而顯示不同字型,因此 該代碼稱為段碼。 7 段發(fā)光二極管,再加上 1 個(gè)小數(shù)點(diǎn)位,共計(jì) 8 位。因此提供給 led 顯 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 1
36、7 示器的段碼正好是 1b。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下表 3.1: 表 3.1 8 段 led 結(jié)構(gòu)及外形 代碼位d7d6d5d4d3d2d1d0 顯示位dpgfedcba 3.23.2.2.2 led 顯示器工作原理 由 n 個(gè) led 顯示塊可以拼接成 n 位的 led 顯示器。 如圖是 led 顯示器的結(jié)構(gòu)原理圖 3.2。 n 個(gè) led 顯示器有 n 個(gè)位選線和 8*n 位 根段碼線。 段碼線控制顯示字符的字型,而位選線為各個(gè) led 顯示塊中 各段的公共端,它控制該 led 顯示位的亮或暗。led 顯示器 有靜態(tài)顯示和動(dòng)態(tài)顯示兩種。 3.3 鍵盤 鍵盤在單片機(jī)應(yīng)用系統(tǒng)中能實(shí)現(xiàn)向單片
37、機(jī)輸入數(shù)據(jù),傳送命令等功能, 是人工干預(yù)單片機(jī)的主要手段。 3.33.3.1.1 鍵盤輸入的特點(diǎn) 鍵盤實(shí)質(zhì)上是一級(jí)按鍵開關(guān)的集合。通常,鍵盤開關(guān)利用了機(jī)械觸點(diǎn) 的合、斷作用。 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 18 3.33.3.2.2 按鍵的確認(rèn) 鍵的閉合與否,反映在行線輸出電壓上就呈現(xiàn)高電平或低電平,如果 高電平表示鍵斷開,低電平則表示鍵閉合,通過對(duì)行線電平高低狀態(tài)的檢 測(cè),便可確認(rèn)按鍵按下與否。為了確保 cpu 對(duì)一次按鍵動(dòng)作只確認(rèn)一次按 鍵有效,必須消除抖動(dòng)的影響。按鍵輸入電路由 4*4 矩陣鍵盤組成, p1 口 作為輸入控制按鍵
38、,其中 p1.0p1.3 掃描行,p1.4p1.7 掃描列。 3.33.3.3.3 如何消除按鍵的抖動(dòng) 采用軟件來消除按鍵抖動(dòng)的基本思想是:在一次檢測(cè)到有鍵按下時(shí), 該鍵所對(duì)應(yīng)的行線為低電平,執(zhí)行一段延時(shí) 10ms 的子程序后,確認(rèn)該行線 電平是不否仍為低電平,如果仍為低電平,則確認(rèn)為該行確實(shí)有鍵按下。 當(dāng)按鍵松開時(shí),行線的低電平變?yōu)楦唠娖?,?zhí)行一段延時(shí) 10ms 的子程序后, 檢測(cè)該行線為高電平,說明按鍵確實(shí)已經(jīng)松開。 3.4 系統(tǒng)復(fù)位電路的設(shè)計(jì) 智能系統(tǒng)一般應(yīng)有手動(dòng)或上電復(fù)位電路。復(fù)位電路的實(shí)現(xiàn)通常有兩種 方式:rc 復(fù)位電路和專用 監(jiān)控電路。前者實(shí)現(xiàn)簡(jiǎn)單,成本低,但復(fù)位 可靠性相對(duì)較低;
39、后者成本較高,但復(fù)位可靠性高,尤其是高可靠重復(fù)復(fù) 位。對(duì)于復(fù)位要求高、并對(duì)電源電壓進(jìn)行監(jiān)視的場(chǎng)合,大多采用這種方式。 本次課程設(shè)計(jì)采用了上電按鈕電平復(fù)位電路,如圖 3.2 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 19 圖 3.2 3.5 時(shí)鐘電路模塊 時(shí)鐘電路在單片機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作 的基礎(chǔ)。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘是保障系統(tǒng)正常工作的基準(zhǔn)振蕩 定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機(jī)系 統(tǒng)工作的快慢。為達(dá)到振蕩周期是 12mhz 的要求,這里要采用 12mhz 的晶 振,另外有兩個(gè) 22p
40、 的獨(dú)石電容,兩晶振引腳分別連到 xtal1 和 xtal2 振 蕩脈沖輸入引腳。具體連接圖如圖 3.3 所示: 圖 3.3 3.6 輸出顯示電路 用 p2.0p2.2 作為 lcd 的 rs、r/w、e 的控制信號(hào);用 p0.0p0.7 作為 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 20 lcd 的 d0d7 的控制信號(hào)。由于 p0 口作為輸出,應(yīng)加上拉電阻。 3.7 音頻輸出部分 整個(gè)輸出部分由一個(gè) 100uf 電容、兩個(gè) s9013 npn 三極管和一個(gè)蜂鳴 器/喇叭組成,原理圖如右圖所示: 100uf 電容是用來濾波的,兩個(gè) npn 三
41、極管起到放大信號(hào)的作用,最后 由蜂鳴器/喇叭表現(xiàn)出信號(hào)。用 p3.7 口控制蜂鳴器。輸出顯示電路如圖 3.4 所示: xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/in
42、t1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 u1 at89c51 ls1 speaker q1 pnp r1 1k d7 14 d6 13 d5 12 d4 11 d3 10 d2 9 d1 8 d0 7 e 6 rw 5 rs 4 vss 1 vdd 2 vee 3 lcd1 lm016l 2 3 4 5 6 7 8 9 1 rp1 respack-8
43、 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 21 圖 3.4 輸出顯示電路 3.8 整體硬件電路 如圖 3.5 所示: 圖 3.5 音樂盒硬件電路原理圖 3.8.1 原理說明: 當(dāng)鍵盤有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器 t0,產(chǎn)生一定頻率的脈沖, 驅(qū)動(dòng)蜂鳴器,放出樂曲。同時(shí)啟動(dòng)定時(shí)器 t1,顯示樂曲播放的時(shí)間,并驅(qū) 動(dòng) lcd,顯示歌曲號(hào)及播放時(shí)間。 1) 硬件電路中用 p1.0p1.7 控制按鍵,其中 p1.0p1.3 掃描行, 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 22 p1.4p1.7 掃描
44、列; 2)用 p2.0p2.2 作為 lcd 的 rs、r/w、e 的控制信號(hào); 3)用 p0.0p0.7 作為 lcd 的 d0d7 的控制信號(hào); 4)用 p3.7 口控制蜂鳴器; 5)電路為 12mhz 晶振頻率工作,起振電路中 c1,c2 均為 30pf。 3.8.2 鍵盤按鍵 鍵盤按鍵分布如下: 012 3 45 6 7 89ab cde f 按鍵功能說明: 1a十首歌曲 c下一首歌曲 d上一首歌曲 e暫停 f開機(jī)畫面 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 - -23 4 系統(tǒng)軟件設(shè)計(jì) 4.1 主模塊的設(shè)計(jì) 主模塊是系統(tǒng)軟件的主框架。
45、結(jié)構(gòu)化程序設(shè)計(jì)一般有“自上而下”和 “自下而上”兩種方式,“自上而下”法的核心就是主框架的構(gòu)建。它的 合理與否關(guān)系到程序最終的功能的多少和性能的好壞。本系統(tǒng)的主模塊的 程序框圖如下圖 6 所示: 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 - -24 圖 6 4.2 外部中斷源系統(tǒng)設(shè)計(jì) 在本設(shè)計(jì)中中斷源是采用外部中斷 0 方式,其入口地址是 0003h。其中 斷響應(yīng)級(jí)別最高。 (1)定時(shí)器/計(jì)數(shù)器 工作方式寄存器 tmod 用于選擇定時(shí)器/計(jì)數(shù)器的工作方式和工作模式。 其格式如下表 4.1: d7d6d5d4d3d2d1d0 gatem1m0gat
46、em1m0 tmod t1 方式字段t0 方式字段 表 4.1 下面表 4.2 對(duì) tmod 各位進(jìn)行說明: 門控位gate 工作方式選擇位m1、m0 m1m0 工作方式 00 方式 0,為 13 位定時(shí)器/計(jì)數(shù)器 01 方式 1,為 16 位定時(shí)器/計(jì)數(shù)器 10 方式 2,8 位的常數(shù)自動(dòng)重新裝載的定時(shí)器/計(jì)數(shù)器 11 方式 3,僅適用于 t0 表 4.2 其中,在本設(shè)計(jì)中采用方式 1 的 16 位定時(shí)器/計(jì)數(shù)器。 計(jì)數(shù)器模式和定時(shí)器模式選擇位 =0,為定時(shí)器模式。 =1,為計(jì)數(shù)模式。 定時(shí)器/計(jì)數(shù)器控制寄存器 tcon,其格式如下表 4.3: 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖
47、南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 - -25 d7d6d5d4d3d2d1d0tcon tf1tr1tf0tr0ie1it1ie0ito 表 4.3 其各位的功能如下: tf1、tf0計(jì)數(shù)溢出標(biāo)志位當(dāng)計(jì)數(shù)器溢出時(shí),該位置 1。 tr1、tr0計(jì)數(shù)運(yùn)行控制位 4.3 基本顯示模塊設(shè)計(jì) 基本顯示模塊設(shè)計(jì)的重點(diǎn)是由顯示代碼取得相應(yīng)的段碼,顯示段碼數(shù) 據(jù)的并行發(fā)送,高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于 電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好, 使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替 機(jī)械式傳動(dòng),用 led 顯示器代替顯示器代替
48、指針顯示進(jìn)而顯示時(shí)間,減小 了計(jì)時(shí)誤差,這種表具有時(shí),分,秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分 的校對(duì),片選的靈活性好。 程序流程如圖 4.4 所示。 圖 4.4 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 - -26 4.4 系統(tǒng)初始化程序 rs bit p2.0;定義液晶顯示端 口標(biāo) rw bit p2.1 e bit p2.2 l50ms equ 60h l1ms equ 61h l250ms equ 62h sec equ 65h min equ 64h hou equ 63h org 0000h ljmp main ljmp tt0 org
49、 001bh ljmp t1int org 1000h main: 液晶初始化 mov sp,#70h mov p0,#01h ;清屏 call enable mov p0,#38h ;8 位,2 行顯示 lcall enable org 000bh 4.5 音調(diào)、節(jié)拍以及編碼的確定方法 一般說來,單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的 諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片 機(jī)奏樂只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和節(jié)拍表示一個(gè)音符唱 多長的時(shí)間。 4.5.1 音調(diào)的確定 不同音高的樂音是用 c、d、e、f、g、a、b 來表示,這 7 個(gè)字母就是 音
50、樂的音名,它們一般依次唱成 do、re、mi、fa、so、la、si,即唱成簡(jiǎn)譜 的 1、2、3、4、5、6、7,相當(dāng)于漢字“多來米發(fā)梭拉西”的讀音,這是唱 曲時(shí)樂音的發(fā)音,所以叫“音調(diào)”,即 tone。把 c、d、e、f、g、a、b 這 一組音的距離分成 12 個(gè)等份,每一個(gè)等份叫一個(gè)“半音”。兩個(gè)音之間的 距離有兩個(gè)“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,cd、d 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 - -27 e、fg、ga、ab 兩音之間隔著一個(gè)黑鍵,他們之間的距離就是全音; ef、bc 兩音之間沒有黑鍵相隔,它們之間的距離就是
51、半音。通常唱成 1、2、3、4、5、6、7 的音叫自然音,那些在它們的左上角加上號(hào)或者 b 號(hào)的叫變化音。叫升記號(hào),表示把音在原來的基礎(chǔ)上升高半音,b 叫降記 音,表示在原來的基礎(chǔ)上降低半音。例如高音 do 的頻率(1046hz)剛好是 中音 do 的頻率(523hz)的一倍,中音 do 的頻率(523hz)剛好是低音 do 頻率(266 hz)的一倍;同樣的,高音 re 的頻率(1175hz)剛好是中音 re 的頻率(587hz)的一倍,中音 re 的頻率(587hz)剛好是低音 re 頻率 (294 hz)的一倍。 1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后 將此周期除以
52、 2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)這半個(gè)周期時(shí)間,每 當(dāng)計(jì)時(shí)到后就將輸出脈沖的 i/o 反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì) i/o 反相,就可在 i/o 腳上得到此頻率的脈沖。 2)利用 at89c51 的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式 mode1 下, 改變計(jì)數(shù)值 th0 及 tl0 以產(chǎn)生不同頻率的方法。 此外結(jié)束符和休止符可以分別用代碼 00h 和 ffh 來表示,若查表結(jié) 果為 00h,則表示曲子終了;若查表結(jié)果為 ffh,則產(chǎn)生相應(yīng)的停頓效果。 3)例如頻率為 523hz,其周期 t=1/523=1912us,因此只要令計(jì)數(shù) 器計(jì)時(shí) 956us/1us=956,在每次技術(shù) 956
53、 次時(shí)將 i/o 反相,就可得到中音 do(523hz)。 計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下: n=fi2fr n:計(jì)算值;fi:內(nèi)部計(jì)時(shí)一次為 1us,故其頻率為 1mhz; 其計(jì)數(shù)值的求法如下: t=65536-n=65536-fi2fr 例如:設(shè) k=65536,f=1000000=fi=1mhz,球低音 do(261hz)。中音 do(523hz)。高音的 do(1046hz)的計(jì)算值 t=65536-n=65536-fi2fr=65536-10000002fr=65536-500000/fr 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 -
54、-28 低音 do 的 t=65536-500000/262=63627 低音 do 的 t=65536-500000/523=64580 低音 do 的 t=65536-500000/1047=65059 c 調(diào)各音符頻率與計(jì)數(shù)值 t 的對(duì)照表如表 4.4 所示。 表 4.4 c 調(diào)各音符頻率與計(jì)數(shù)值 t 的對(duì)照表 低音頻率t參數(shù)中音頻率t參數(shù)高音頻率t參數(shù) do2621908229do523956115do10465757 do2771805217do554903108do11095454 re2941701204re587852102re11755151 re3111608193re62
55、280497re12454848 mi3301515182mi65975991mi13184545 fa3491433172fa69871686fa13974343 fa3701351162fa74067681fa14804141 so3921276153so78463877so15683838 so4151205145so83160272so16613636 la4401136136la88056868la17603434 la4641078129la93253664la18653232 si4941012121si98850661si19763030 4.5.2 節(jié)拍的確定 若要構(gòu)成音樂,
56、光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂具有旋律 (固定的律動(dòng)),而且可以調(diào)節(jié)各個(gè)音的快滿度?!肮?jié)拍”,即 beat,簡(jiǎn)單 說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若 1 拍實(shí) 0.5s,則 1/4 拍為 0.125s。至于 1 拍多少 s,并沒有嚴(yán)格規(guī)定,就像人的 心跳一樣,大部分人的心跳是每分鐘 72 下,有些人快一點(diǎn),有些人慢一點(diǎn), 只要聽的悅耳就好。音持續(xù)時(shí)間的長短即時(shí)值,一般用拍數(shù)表示。休止符 表示暫停發(fā)音。 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 - -29 一首音樂是由許多不同的音符組成的,而每個(gè)音符對(duì)應(yīng)著不同頻率, 這樣
57、就可以利用不同的頻率的組合,加以與拍數(shù)對(duì)應(yīng)的延時(shí),構(gòu)成音樂。 了解音樂的一些基礎(chǔ)知識(shí),我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音 樂。對(duì)于單片機(jī)來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機(jī)的 定時(shí)/計(jì)數(shù)器來產(chǎn)生這樣的方波頻率信號(hào)。因此,需要弄清楚音樂中的音符 和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。 表 4.5 節(jié)拍與節(jié)拍碼對(duì)照 節(jié)拍碼節(jié)拍數(shù)節(jié)拍碼節(jié)拍數(shù) 11/4 拍11/8 拍 22/4 拍21/4 拍 33/4 拍33/8 拍 41 拍42/1 拍 51 又 1/4 拍55/8 拍 61 又 1/2 拍63/4 拍 82 拍81 拍 a2 又 1/2 拍a1 又 1/4 拍 c3 拍c1
58、 又 1/2 拍 f3 又 3/4 拍 每個(gè)音符使用 1 個(gè)字節(jié),字節(jié)的高 4 位代表音符的高低,低 4 位代表 音符的節(jié)拍,圖 4.5 為節(jié)拍碼的對(duì)照。如果 1 拍為 0.4 秒,1/4 拍實(shí) 0.1 秒, 只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè) 1/4 拍為 1delay,則 1 拍應(yīng) 為 4delay,以此類推。所以只要求得 1/4 拍的 delay 時(shí)間,其余的節(jié)拍就 是它的倍數(shù),如表 4.5 為 1/4 和 1/8 節(jié)拍的時(shí)間設(shè)定。 表 4.5 1/4 和 1/8 節(jié)拍的時(shí)間設(shè)定 曲調(diào)值delay曲調(diào)值delay 調(diào) 4/4125 毫秒調(diào) 4/462 毫秒 調(diào) 3/4187 毫秒調(diào)
59、 3/494 毫秒 調(diào) 2/4250 毫秒調(diào) 2/4125 毫秒 湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書湖南鐵路科技職業(yè)技術(shù)學(xué)院?jiǎn)纹瑱C(jī)課程設(shè)計(jì)說明書 - -30 4.5.3 編碼 do re mi fa so la si 分別編碼為 17,重音 do 編為 8,重音 re 編為 9,停頓編為 0。播放長度以十六分音符為單位(在本程序中為 165ms), 一拍即四分音符等于 4 個(gè)十六分音符,編為 4,其它的播放時(shí)間以此類推。 音調(diào)作為編碼的高 4 位,而播放時(shí)間作為低 4 位,如此音調(diào)和節(jié)拍就構(gòu)成 了一個(gè)編碼。以 0 xff 作為曲譜的結(jié)束標(biāo)志。 舉例 1:音調(diào) do,發(fā)音長度為兩拍,即
60、二分音符,將其編碼為 0 x18。 舉例 2:音調(diào) re,發(fā)音長度為半拍,即八分音符,將其編碼為 0 x22 歌曲播放的設(shè)計(jì)。先將歌曲的簡(jiǎn)譜進(jìn)行編碼,儲(chǔ)存在一個(gè)數(shù)據(jù)類型為 unsigned char 的數(shù)組中。程序從數(shù)組中取出一個(gè)數(shù),然后分離出高 4 位 得到音調(diào),接著找出相應(yīng)的值賦給定時(shí)器 0,使之定時(shí)操作蜂鳴器,得出相 應(yīng)的音調(diào);接著分離出該數(shù)的低 4 位,得到延時(shí)時(shí)間,接著調(diào)用軟件延時(shí)。 表 4.6 簡(jiǎn)譜對(duì)應(yīng)的簡(jiǎn)譜碼、t 值、節(jié)拍數(shù) 簡(jiǎn)譜發(fā)音簡(jiǎn)譜碼t 值節(jié)拍碼節(jié)拍數(shù) 5低音 so16426011/4 拍 6低音 la26440022/4 拍 7低音 ti36452433/4 拍 1中音
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年帶家私家電房產(chǎn)買賣合同(三篇)
- 2024年大學(xué)學(xué)習(xí)部工作計(jì)劃樣本(三篇)
- 2024年小學(xué)教師個(gè)人總結(jié)樣本(二篇)
- 2024年各種公共場(chǎng)所的衛(wèi)生管理制度樣本(二篇)
- 2024年工廠質(zhì)檢員崗位職責(zé)說明范本(二篇)
- 2024年半年工作總結(jié)(四篇)
- 2024年員工入股協(xié)議范本(二篇)
- 2024年學(xué)校美術(shù)教學(xué)工作計(jì)劃模版(四篇)
- 2024年衛(wèi)生管理制度制度(四篇)
- 【《房建工程施工管理中精細(xì)化管理運(yùn)用探析》3200字】
- 艾奇遜石墨化電爐爐阻計(jì)算方法_呂鳳桐
- 管道支架及吊架施工方案
- 施工現(xiàn)場(chǎng)環(huán)境因素清單(全)
- 并網(wǎng)前單位工程調(diào)試報(bào)告
- 三年級(jí)語文家長會(huì)(課堂PPT)
- 從事通信專業(yè)工作年限證明
- 《Monsters怪獸》中英對(duì)照歌詞
- 高壓水槍-安全操作規(guī)程
- 金代澤州同知宋雄飛事輯
- 水閘工作橋計(jì)算說明書
- 陜西省主要樹種代碼表
評(píng)論
0/150
提交評(píng)論