版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、沈陽(yáng)航空航天大學(xué)課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告課程設(shè)計(jì)名稱:?jiǎn)纹瑱C(jī)系統(tǒng)綜合課程設(shè)計(jì)單片機(jī)系統(tǒng)綜合課程設(shè)計(jì)課程設(shè)計(jì)題目:數(shù)字音樂(lè)盒的設(shè)計(jì)與實(shí)現(xiàn)數(shù)字音樂(lè)盒的設(shè)計(jì)與實(shí)現(xiàn)院(系):計(jì)算機(jī)學(xué)院專 業(yè): 班 級(jí): 學(xué) 號(hào): 姓 名: 指導(dǎo)教師: 說(shuō)明:結(jié)論(優(yōu)秀、良好、中等、及格、不及格)作為相關(guān)教環(huán)節(jié)考核必要依據(jù);格式不符合要說(shuō)明:結(jié)論(優(yōu)秀、良好、中等、及格、不及格)作為相關(guān)教環(huán)節(jié)考核必要依據(jù);格式不符合要求;數(shù)據(jù)不實(shí)求;數(shù)據(jù)不實(shí),不予通過(guò)。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)的關(guān)鍵依據(jù)。不予通過(guò)。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)的關(guān)鍵依據(jù)。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 I 學(xué)術(shù)誠(chéng)信聲明 本人聲明
2、本人聲明:所呈交的報(bào)告(含電子版及數(shù)據(jù)文件)是我個(gè)人在導(dǎo)師指導(dǎo)下獨(dú)立進(jìn)行設(shè)計(jì)工作及取得的研究結(jié)果。盡我所知,除了文中特別加以標(biāo)注或致謝中所羅列的內(nèi)容以外,報(bào)告中不包含其他人己經(jīng)發(fā)表或撰寫(xiě)過(guò)的研究結(jié)果,也不包含其它教育機(jī)構(gòu)使用過(guò)的材料。與我一同工作的同學(xué)對(duì)本研究所做的任何貢獻(xiàn)均己在報(bào)告中做了明確的說(shuō)明并表示了謝意。報(bào)告資料及實(shí)驗(yàn)數(shù)據(jù)若有不實(shí)之處,本人愿意接受本教學(xué)環(huán)節(jié)“不及格”和“重修或重做”的評(píng)分結(jié)論并承擔(dān)相關(guān)一切后果。 本人簽名: 日期: 年 月 日沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 II 沈陽(yáng)航空航天大學(xué)沈陽(yáng)航空航天大學(xué)課課程程設(shè)設(shè)計(jì)計(jì)任任務(wù)務(wù)書(shū)書(shū)課程設(shè)計(jì)名稱XXXX 課課程程設(shè)設(shè)計(jì)計(jì)專業(yè)學(xué)生姓
3、名班級(jí)學(xué)號(hào)題目名稱起止日期年月日起至年月日止課設(shè)內(nèi)容和要求:參考資料: 教教研研室室審審核核意意見(jiàn)見(jiàn): 教教研研室室主主任任簽簽字字:指導(dǎo)教師(簽名)指導(dǎo)教師(簽名)年月日學(xué)學(xué) 生(簽名)生(簽名)年月日沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 III 課程設(shè)計(jì)總結(jié):課程設(shè)計(jì)總結(jié):在不知不覺(jué)中兩個(gè)星期過(guò)去了,回想起來(lái),真是一言難盡,期間既有無(wú)奈辛酸,又有成功的喜悅。學(xué)了一學(xué)期的單片機(jī),對(duì)單片機(jī)的硬件設(shè)計(jì),軟件設(shè)計(jì)掌握的掌握程度遠(yuǎn)遠(yuǎn)不夠,但經(jīng)過(guò)這段時(shí)間努力,在老師的耐心指導(dǎo)下,從設(shè)計(jì)、論證、修改到編程、調(diào)試,終于使我的設(shè)計(jì)完成了。使我無(wú)論在理論基礎(chǔ)知識(shí)還是在實(shí)際的操作能力上都有了較大的提高,更讓我懂得了一分
4、耕耘一分收獲的道理。通過(guò)本次音樂(lè)盒的設(shè)計(jì),極大地激發(fā)了我對(duì)單片機(jī)的學(xué)習(xí)興趣,同時(shí)也讓我學(xué)習(xí)到了很多新的東西,比如單片機(jī)的定時(shí)器功能,LED 的數(shù)碼顯示,功能鍵盤的設(shè)計(jì)等,這些都讓我受益匪淺。這其中有以前書(shū)本上學(xué)習(xí)過(guò)的知識(shí),也有很多未曾注意到得新知識(shí),比如如何將樂(lè)譜轉(zhuǎn)換成機(jī)器能識(shí)別的代碼,并讓機(jī)器演奏音樂(lè)這一點(diǎn),課本上并未涉及,但通過(guò)查找資料,讓我學(xué)會(huì)了如何實(shí)現(xiàn),我認(rèn)為更主要的是讓我明白了如何主動(dòng)學(xué)習(xí)。這些曾使我的設(shè)計(jì)出錯(cuò)的問(wèn)題,通過(guò)自己的努力,老師指導(dǎo)和同學(xué)的幫助,終于被我一個(gè)一個(gè)的克服了,順利把硬件實(shí)物順利做好,把軟件調(diào)試完成了。通過(guò)此次課程設(shè)計(jì),讓我明白了很多,不光讓我明白了很多新的知識(shí),
5、更讓我懂得了如何學(xué)習(xí),讓我知道了如何做人,這一點(diǎn)主要感謝我的課設(shè)指導(dǎo)老師,是他一直在教導(dǎo)我,鼓勵(lì)我,才讓我順利完成了任務(wù),在這里我表示衷心的感謝。一分耕耘一分收獲,只要真心付出了,就一定會(huì)有所回報(bào)。我愿在未來(lái)的學(xué)習(xí)和研究過(guò)程中,以更加豐厚的成果來(lái)答謝曾經(jīng)幫助過(guò)我的老師,同學(xué)和朋友.沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 IV 目目 錄錄1 概述概述.11.1 數(shù)字音樂(lè)盒簡(jiǎn)介 .11.2 發(fā)聲原理介紹 .12 音樂(lè)盒總體設(shè)計(jì)音樂(lè)盒總體設(shè)計(jì).42.1 設(shè)計(jì)要求 .42.2 方案論證與設(shè)計(jì) .42.2.1 總體方案設(shè)計(jì).42.2.2 LED 驅(qū)動(dòng)模塊設(shè)計(jì) .52.2.3 系統(tǒng)總體結(jié)構(gòu)框圖.53 系統(tǒng)硬件設(shè)計(jì)系
6、統(tǒng)硬件設(shè)計(jì).63.1 管腳說(shuō)明 .63.2 振蕩器特性 .73.3 LED 顯示器的結(jié)構(gòu) .83.4 LED 顯示器工作原理 .83.5 鍵盤.93.6 時(shí)鐘電路模塊.93.7 音頻輸出部分 .113.8 整體電路設(shè)計(jì) .124 子函數(shù)描述子函數(shù)描述.134.1 定時(shí)器中斷設(shè)計(jì): .134.2 數(shù)碼管顯示模塊設(shè)計(jì): .134.3 鍵盤控制模塊設(shè)計(jì): .144.4 蜂鳴器演奏子函數(shù)模塊設(shè)計(jì): .164.5 整體流程圖設(shè)計(jì): .185 調(diào)試與結(jié)果分析調(diào)試與結(jié)果分析.195.1 調(diào)試步驟及方法 .195.2 實(shí)驗(yàn)結(jié)果 .19參考文獻(xiàn)參考文獻(xiàn).20附附 錄(關(guān)鍵部分程序清單)錄(關(guān)鍵部分程序清單).2
7、1沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 1 1 概述1.1 數(shù)字音樂(lè)盒簡(jiǎn)介數(shù)字音樂(lè)盒簡(jiǎn)介 音樂(lè)盒的起源,可追溯至中世紀(jì)歐洲文藝復(fù)興時(shí)期。當(dāng)時(shí)為使教會(huì)的的鐘塔報(bào)時(shí),而將大小的鐘表上機(jī)械裝置,被稱為 “可發(fā)出聲音的組鐘 ”。音樂(lè)盒 300 多年的產(chǎn)品發(fā)展,同時(shí)也是人類文明300 多年發(fā) 展的歷史鑒證。每個(gè)不同時(shí)期的音樂(lè)盒造型,都能折射出當(dāng)時(shí)不同的社會(huì)心態(tài)和文明發(fā)展現(xiàn)狀,它也成了時(shí)代的一面鏡子?,F(xiàn)今,音樂(lè)盒的制造,延襲傳統(tǒng),結(jié)合現(xiàn)代,正日益成為人們或?yàn)榱说洳匾欢螝q月,或?yàn)榱耸詹匾环萸楦校虺鲇趯?duì)音樂(lè)的追求,或?qū)τ谂f時(shí)代的懷念,或?yàn)榱司邮业拿阑?,等等,而得到眾多品位人士的追求?音樂(lè)盒的分類 :18 音,30
8、 音,這些是代表音樂(lè)盒機(jī)芯的音數(shù),其實(shí)也就是機(jī)芯里面,那一排鋼條的數(shù)量,鋼條的數(shù)量越多,也就是音數(shù)越高,奏出來(lái)的音色就越豐富,曲子也就是越好聽(tīng),同時(shí)曲子的播放時(shí)間也相應(yīng)長(zhǎng)一點(diǎn)。一般18 音的曲子為 25 秒左右,30 音的曲子為 35 秒左右。50 音的差不多有 60 秒。目前來(lái)說(shuō),一般市面上賣的 “愛(ài)麗絲”都是 18 音的,其次是 30 音,50 音。此次設(shè)計(jì)的目的就是運(yùn)用單片機(jī)來(lái)設(shè)計(jì)一套控制系統(tǒng),來(lái)完成音樂(lè)播放的控制,并設(shè)計(jì)一套硬件來(lái)進(jìn)行音調(diào)播放的實(shí)際模擬,從而有欣賞音樂(lè)的效果。1.2 發(fā)聲原理介紹發(fā)聲原理介紹 首先介紹蜂鳴器的發(fā)聲原理。眾所周知, 音調(diào)和音調(diào)的時(shí)長(zhǎng) 是音符的主要特征,通過(guò)
9、產(chǎn)生不同的音調(diào)和音調(diào)的時(shí)長(zhǎng)可以奏出不同的音符來(lái)。然后一個(gè)個(gè)音符串聯(lián)在一起就可以產(chǎn)生美妙的音樂(lè)來(lái)了。 音調(diào)主要由聲音的頻率決定 ,通過(guò)單片機(jī)給蜂鳴器不同的音頻脈沖來(lái)產(chǎn)生不同的音調(diào)。要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(周期 =1/頻率),然后將此周期除以 2 即為半周期的時(shí)間。利用單片機(jī)的定時(shí)器工作在計(jì)數(shù)模式MODE1 下,設(shè)定 TH0 和 TL0 的沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 2 值以產(chǎn)生這半個(gè)周期,每當(dāng)計(jì)時(shí)到達(dá)時(shí)就將輸出脈沖的I/O(即接蜂鳴器的那個(gè)管腳)反相,然后重復(fù)計(jì)時(shí)此半個(gè)周期再對(duì)I/O 反相,就可以在 I/O 引腳上得到此頻率的脈沖。下面附上不同音調(diào)所對(duì)應(yīng)的頻率表:音符頻率(Hz
10、)/初值(s)音符頻率(Hz)/初值(s)低 1DO262/63627中 1DO 523/64580高 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中 6LA882/64969高 6LA 1760/65252低 7SI495/64526中
11、 7SI 990/65031表表 1.1 C 調(diào)各音符頻率與計(jì)數(shù)初值調(diào)各音符頻率與計(jì)數(shù)初值 T 的對(duì)照表的對(duì)照表節(jié)拍的產(chǎn)生:音樂(lè)中的節(jié)拍用延時(shí)時(shí)間產(chǎn)生。例如, 1 拍=0.4s,1/4 拍=0.1s,以此類推。假設(shè) 1/4 拍執(zhí)行一次延時(shí)程序,則 1/2 拍就執(zhí)行兩次延時(shí)程序,所以只要求出 1/4 拍的延時(shí)時(shí)間,其余節(jié)拍就是它的倍數(shù)。為了方便,將節(jié)拍數(shù)也進(jìn)行了編碼,并且計(jì)算了樂(lè)譜節(jié)拍編程時(shí)的延時(shí)時(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/822/488
12、/422/888/833/4A10/433/8A10/844/4C12/444/8C12/855/4F15/455/8 表表 1.2 節(jié)拍數(shù)編碼表節(jié)拍數(shù)編碼表沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 3 樂(lè)譜節(jié)拍1/4 拍的延時(shí)時(shí)間樂(lè)譜節(jié)拍1/8 拍的延時(shí)時(shí)間4/4125 ms4/462 ms3/4187 ms3/494 ms2/4250 ms2/4125 ms表表 1.3 樂(lè)譜節(jié)拍編程時(shí)的時(shí)間延時(shí)表樂(lè)譜節(jié)拍編程時(shí)的時(shí)間延時(shí)表 如果沒(méi)有必要進(jìn)行精確的計(jì)時(shí),可以用for 循環(huán)空語(yǔ)句來(lái)粗略計(jì)時(shí)即可(本次課設(shè)選用此法)。當(dāng)單片機(jī)使用11.0592Mhz 的晶振時(shí),for(i=0;i115;i+);這個(gè)空循環(huán)延時(shí)
13、約為 1ms;當(dāng)晶振選用 12Mhz 時(shí),可使用 for(i=0;i125;i+);這個(gè)空循環(huán)來(lái)延時(shí) 1ms。在這個(gè)空循環(huán)外頭再進(jìn)行一次循環(huán)就可以實(shí)現(xiàn)延時(shí)若干 ms。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 4 2 音樂(lè)盒總體設(shè)計(jì)2.1 設(shè)計(jì)要求設(shè)計(jì)要求 本次數(shù)字音樂(lè)盒課程設(shè)計(jì)是利用 I/O 口產(chǎn)生一定頻率的方波,從而驅(qū)動(dòng)蜂鳴器,發(fā)出不同的音調(diào),從而演奏樂(lè)曲因?yàn)楫a(chǎn)生的頻率不同,所以導(dǎo)致蜂鳴器發(fā)出的音調(diào)不同,由不同的音調(diào)和節(jié)拍可組成不同的音樂(lè)。演奏過(guò)程中可采用七段數(shù)碼管顯示當(dāng)前播放的歌曲序號(hào)和播放時(shí)間。同時(shí)可通過(guò)鍵盤數(shù)字鍵直接選擇樂(lè)曲,也可以用功能鍵選擇上一曲和下一曲,具有暫停和播放控制功能。例如本次課設(shè)按
14、 1 鍵選擇第一首歌曲,按 2 鍵選擇第二首歌曲,按 A 鍵暫停,按 B 鍵繼續(xù)唱歌。2.2 方案論證與設(shè)計(jì)方案論證與設(shè)計(jì)2.2.1 總體方案設(shè)計(jì)總體方案設(shè)計(jì)通過(guò)單片機(jī)的定時(shí)器產(chǎn)生一定長(zhǎng)度的方波,方波脈沖驅(qū)動(dòng)蜂鳴器發(fā)聲。要產(chǎn)生音頻脈沖,只需算出某一音頻的周期(1/音頻) ,然后取半周期的時(shí)間定時(shí)。利用定時(shí)器計(jì)時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的 I/O 反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì) I/O 口反相,就可在 I/O 腳上得到此頻率的脈沖。如中音 D0,頻率為 523HZ,其周期 T=1/523=1912 微秒,因此只要令計(jì)數(shù)器定時(shí) 1912/2=956,在每計(jì)數(shù) 956 次時(shí)將 I
15、/O 口反相,就可得到中音D0(523HZ)。 當(dāng)鍵盤有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器 T0,產(chǎn)生一定頻率的脈沖,驅(qū)動(dòng)蜂鳴器,放出樂(lè)曲。同時(shí)啟動(dòng)定時(shí)器 T1,在 LED 顯示歌曲號(hào), 。數(shù)碼管采用共陰極數(shù)碼管,實(shí)現(xiàn)歌曲序號(hào)的顯示;功能鍵盤采用按鍵開(kāi)關(guān),實(shí)現(xiàn)歌曲播放順序的調(diào)換和暫停播放功能;蜂鳴器由單片機(jī)的 P3.6 口控制,實(shí)現(xiàn)歌曲播放。通過(guò)按下功能鍵實(shí)現(xiàn)上一首和下一首及暫停播放,同時(shí)有數(shù)碼管顯示當(dāng)前沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 5 播放歌曲的序號(hào),蜂鳴器播放出音樂(lè)。2.2.2 LED 驅(qū)動(dòng)模塊設(shè)計(jì)驅(qū)動(dòng)模塊設(shè)計(jì)方案一:采用靜態(tài)鎖存方式,將每一個(gè) LED 發(fā)光管的一端接至單片機(jī)的一個(gè)I/O 口,
16、另一端通過(guò)電阻接電源。這種方法可以直接驅(qū)動(dòng) LED,原理簡(jiǎn)單,驅(qū)動(dòng)能力強(qiáng),LED 的亮度也可以通過(guò)限流電阻調(diào)節(jié),非常方便,但此種方法太浪費(fèi)單片機(jī)的 I/O 口,只適合于較小的系統(tǒng)。方案二:采用動(dòng)態(tài)掃描方式,通過(guò)三極管驅(qū)動(dòng)并聯(lián)在一起的 LED 發(fā)光管的一端(共陰極),LED 發(fā)光管的另一腳接通用 I/O 口,控制其亮滅。該方法能驅(qū)動(dòng)較多的 LED,控制方式較靈活,而且節(jié)省單片機(jī)的資源。比較以上兩種方案,系統(tǒng)設(shè)計(jì)中采用方案二。2.2.3 系統(tǒng)總體結(jié)構(gòu)框圖系統(tǒng)總體結(jié)構(gòu)框圖 MCS-51單片機(jī)電源電路LED顯示復(fù)位電路晶振電路蜂鳴器電路按鍵矩陣電路沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 6 3 系統(tǒng)硬件設(shè)計(jì)本設(shè)
17、計(jì)中用到了 8051 單片機(jī),4*6 鍵盤,蜂鳴器,8 段數(shù)碼管等硬件電路常用元器件。3.13.1 管腳說(shuō)明管腳說(shuō)明 8051 芯片如圖 3.1 所示:VCC:供電電壓。 GND:接地。P0 口,P1 口,P2 口,P3 口:四個(gè) 8 位 I/O 口P3 口也可作為 8051 的一些特殊功能口,如下所示: 管口管腳 備選功能P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷 0) P3.3 /INT1(外部中斷 1) P3.4 T0(記時(shí)器 0 外部輸入) P3.5 T1(記時(shí)器 1 外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通) P3.7 /
18、RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持 RST 腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。/EA/VPP:/EA 保持低電平時(shí),在此期間為外部程序存儲(chǔ)器(0000H-FFFFH) ,不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式 1 時(shí),/EA 將內(nèi)部鎖定為 RESET;沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 7 當(dāng)/EA 端保持高電平時(shí),此時(shí)為內(nèi)部程序存儲(chǔ)器。X1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。X2:來(lái)自反向振蕩器的輸出。圖圖 3.13.1 80518
19、051 芯片示意圖芯片示意圖 3.23.2 振蕩器特性振蕩器特性X1 和 X2 分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,X2 應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 8 3.33.3 LEDLED 顯示器的結(jié)構(gòu)顯示器的結(jié)構(gòu)常用的 LED 顯示器為 8 段。每一個(gè)段對(duì)應(yīng) 1 個(gè)發(fā)光二極管,這種顯示器有共陽(yáng)極和共陰極兩種:共陰極 LED 顯示器的發(fā)光二極管的陰極連接在一起,通常此公共陰極接地。當(dāng)某個(gè)發(fā)光二極
20、管的陽(yáng)極為高電平時(shí),發(fā)光二極管點(diǎn)亮,相應(yīng)的段被顯示。同樣,共陽(yáng)極 LED 顯示器的發(fā)光二極管的陽(yáng)極連接在一起,通常此公共陽(yáng)極接正電壓,當(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 顯示器的段碼正好是 1B。各段與字節(jié)中各位對(duì)應(yīng)關(guān)系如下表 3.2:代碼位D7D6D5D4D3D2D1D0顯示位dpgfEdcba表表 3.2
21、 8 段段 LED 結(jié)構(gòu)及外形結(jié)構(gòu)及外形3.43.4 LEDLED 顯示器工作原理顯示器工作原理由 N 個(gè) LED 顯示塊可以拼接成 N 位的 LED 顯示器。如圖是 LED 數(shù)碼管。圖圖 3.33.3 數(shù)碼管結(jié)構(gòu)圖數(shù)碼管結(jié)構(gòu)圖沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 9 N 個(gè) LED 顯示器有 N 個(gè)位選線和 8*N 位 根段碼線。段碼線控制顯示字符的字型,而位選線為各個(gè) LED 顯示塊中各段的公共端,它控制該 LED 顯示位的亮或暗。LED 顯示器有靜態(tài)顯示和動(dòng)態(tài)顯示兩種。 3.53.5 鍵盤鍵盤圖圖 3.43.4 鍵盤電路鍵盤電路鍵盤在單片機(jī)應(yīng)用系統(tǒng)中能實(shí)現(xiàn)向單片機(jī)輸入數(shù)據(jù),傳送命令等功能,是人工
22、干預(yù)單片機(jī)的主要手段。鍵盤實(shí)質(zhì)上是一級(jí)按鍵開(kāi)關(guān)的集合。通常,鍵盤開(kāi)關(guān)利用了機(jī)械觸點(diǎn)的合、斷作用。鍵的閉合與否,反映在行線輸出電壓上就呈現(xiàn)高電平或低電平,如果高電平表示鍵斷開(kāi),低電平則表示鍵閉合,通過(guò)對(duì)行線電平高低狀態(tài)的檢測(cè),便可確認(rèn)按鍵按下與否。為了確保 CPU 對(duì)一次按鍵動(dòng)作只確認(rèn)一次按鍵有效,必須消除抖動(dòng)的影響。采用軟件來(lái)消除按鍵抖動(dòng)的基本思想是:在一次檢測(cè)到有鍵按下時(shí),該鍵所對(duì)應(yīng)的行線為低電平,執(zhí)行一段延時(shí) 10MS 的子程序后,確認(rèn)該行線電平是不否仍為低電平,如果仍為低電平,則確認(rèn)為該行確實(shí)有鍵按下。當(dāng)按鍵松開(kāi)時(shí),行線的低電平變?yōu)楦唠娖剑瑘?zhí)行一段延時(shí) 10MS的子程序后,檢測(cè)該行線為高
23、電平,說(shuō)明按鍵確實(shí)已經(jīng)松開(kāi)。3.63.6 時(shí)鐘電路模塊時(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)工作的快慢。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 10 圖圖 3.53.5 時(shí)鐘電路時(shí)鐘電路為達(dá)到振蕩周期是 12MHZ 的要求,這里要采用 12MHZ 的晶振,另外有兩個(gè)22P 的獨(dú)石電容,兩晶振引腳分別連到 X1 和 X2 振蕩脈沖輸入引腳。其中74HC244-2 表示 74HC244 芯片的 2 號(hào)引腳。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 11 3.
24、73.7 音頻輸出部分音頻輸出部分 圖圖 3.63.6 音頻輸出部分音頻輸出部分音頻輸出部分主要由 NPN 三極管和蜂鳴器組成。用 P1.0 口控制蜂鳴器。沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 12 3.83.8 整體電路設(shè)計(jì)整體電路設(shè)計(jì)圖圖 3.73.7 整體電路設(shè)計(jì)整體電路設(shè)計(jì)沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 13 4 子函數(shù)描述4.1 定時(shí)器中斷設(shè)計(jì):定時(shí)器中斷設(shè)計(jì):在本設(shè)計(jì)中采用定時(shí)器中斷 0 方式。工作方式寄存器 TMOD 用于選擇定時(shí)器/計(jì)數(shù)器的工作方式和工作模式。其格式如下表 4.1:D7D6D5D4D3D2D1D0GATEM1M0GATEM1M0TMODT1 方式字段T0 方式字段 表表
25、4.14.1 寄存器寄存器 TMODTMOD 工作方式和工作模式工作方式和工作模式定時(shí)器初始化子函數(shù)如下:void TimerConfiguration() TMOD = 0 x01; /選擇工作方式 1 TH0 = 0 xfc; /設(shè)置初始值,定時(shí) 1ms TL0 = 0 x18; EA = 1;/打開(kāi)總中斷 ET0 = 1;/打開(kāi)定時(shí)器 0 中斷 TR0 = 0;/關(guān)閉定時(shí)器 04.2 數(shù)碼管顯示模塊設(shè)計(jì):數(shù)碼管顯示模塊設(shè)計(jì):模塊設(shè)計(jì)的重點(diǎn)是由顯示代碼取得相應(yīng)的段碼,顯示段碼數(shù)據(jù)的并行發(fā)送,高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告
26、14 鐘都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用 LED 顯示器代替顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí),分,秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。子函數(shù)如下:void DigDisplay() /顯示函數(shù)unsigned char i; unsigned char Pos; unsigned char LED; Pos = 0 x04; / 從左邊開(kāi)始顯示 for (i = 0; i = 1; / 顯示下一位 4.3 鍵盤控制模塊設(shè)計(jì):鍵盤控制模塊設(shè)計(jì):此模塊主要由鍵
27、盤掃描程序組成,在主函數(shù)中通過(guò) switch()語(yǔ)句根據(jù)鍵盤掃描函數(shù)的返回值來(lái)進(jìn)入相應(yīng)的功能函數(shù)中。掃描程序具體為先掃描列找出按鍵所在的列再掃描行找出按鍵所在的行,列為高四位行為低四位,因此有鍵值=列*4+行,然后等待鍵位釋放,最后根據(jù)相應(yīng)的鍵碼值返回按鍵對(duì)應(yīng)的值,若無(wú)按鍵則返回 0 xff。流程圖如下:沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 15 開(kāi)始掃描列有低電平掃描行是計(jì)算鍵值結(jié)束返回鍵值下一列圖圖 4.24.2 鍵盤掃描流程圖鍵盤掃描流程圖函數(shù)代碼如下:unsigned char GetKey() unsigned char Pos; unsigned char i; unsigned char
28、 k; i = 6; Pos = 0 x20; / 找出鍵所在列 do 沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 16 OUTBIT = Pos; Pos = 1; k = IN & 0 x0f; while (-i != 0) & (k = 0); / 鍵值 = 列 x 4 + 行 if (k != 0) i *= 4; if (k & 2) i += 1; else if (k & 4) i += 2; else if (k & 8) i += 3; OUTBIT = 0; do Delay(1); while (TestKey(); / 等鍵釋放 return(KeyTablei); / 取出鍵碼
29、else return(0 xff);4.4 蜂鳴器演奏子函數(shù)模塊設(shè)計(jì):蜂鳴器演奏子函數(shù)模塊設(shè)計(jì):本模塊通過(guò)循環(huán)獲取頻率和節(jié)拍數(shù)組來(lái)使蜂鳴器發(fā)出不同的音調(diào)以及延時(shí)音調(diào)時(shí)間,子函數(shù)如下:void yanzou(unsigned char pinlv,unsigned int jiepai)/播放樂(lè)曲unsigned char pl;unsigned int jp;沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 17 for(jp=0;jpjiepai;jp+) KeyDown();if(flag=1)TR0=0;DisplayData0=LEDMAPKeyValue;DisplayData1=LEDMAPs/10
30、; DisplayData2=LEDMAPs%10;while(1)KeyDown();DigDisplay();if(flag=2)TR0=1;break;else if(flag=3)TR0=0; Buzzer=0; for(pl=0;plpinlv;pl+); Buzzer=1; for(pl=0;plpinlv;pl+); 沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 18 4.5 整體流程圖設(shè)計(jì):整體流程圖設(shè)計(jì):開(kāi)始初始化有按鍵是鍵值為1演奏樂(lè)曲1是有按鍵獲取鍵值是暫停音樂(lè)和計(jì)時(shí)判斷鍵值鍵值為10判斷鍵值結(jié)束否關(guān)定時(shí)器否判斷按鍵鍵值11演奏樂(lè)曲2鍵值為2否結(jié)束有按鍵否是關(guān)定時(shí)器獲取鍵值是判斷鍵值暫停
31、音樂(lè)和計(jì)時(shí)鍵值為10判斷按鍵鍵值11否 圖圖 4.34.3 整體流程圖設(shè)計(jì)整體流程圖設(shè)計(jì)沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 19 5 調(diào)試與結(jié)果分析5.1 調(diào)試步驟及方法調(diào)試步驟及方法1.在實(shí)驗(yàn)箱上連接所需要的線2.將實(shí)驗(yàn)箱 LAB8000 和電腦相連接3.將程序載入實(shí)驗(yàn)箱4.復(fù)位5.運(yùn)行程序5.2 實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果程序運(yùn)行后,實(shí)驗(yàn)箱的數(shù)碼管顯示三個(gè) 0,按 1 鍵蜂鳴器開(kāi)始演奏第一首音樂(lè),同時(shí)開(kāi)始計(jì)時(shí),并且顯示當(dāng)前演奏音樂(lè)的序號(hào)程序運(yùn)行過(guò)程中,按 A 鍵音樂(lè)暫停,同時(shí)計(jì)時(shí)暫停,再按 B 鍵,音樂(lè)繼續(xù)演奏,數(shù)碼管繼續(xù)計(jì)時(shí),音樂(lè)結(jié)束后,可繼續(xù)選擇播放音樂(lè)序號(hào),如此循環(huán) 。綜上,本次設(shè)計(jì)符合設(shè)計(jì)要求。沈
32、陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 20 參考文獻(xiàn)1 張毅剛.單片機(jī)原理及應(yīng)用M.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,20082 戴仙金.51 單片機(jī)及其 C 語(yǔ)言程序開(kāi)發(fā)實(shí)例M.北京:清華大學(xué)出版社,20113 黃惟公.單片機(jī)原理及應(yīng)用技術(shù)M.西安:西安電子科技大學(xué)出版社,20104 高鋒.單片微型計(jì)算機(jī)原理與接口技術(shù)M.北京:科學(xué)出版社,20075 李葉紫.MCS-51 單片機(jī)應(yīng)用教程M .北京:清華大學(xué)出版社,2002 6 劉守亦.單片機(jī)應(yīng)用技術(shù)M .陜西:西安電子科技大學(xué)出版社,1995沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 21 附 錄(關(guān)鍵部分程序清單)#include xdata unsigned ch
33、ar OUTBIT _at_ 0 x8002; / 位控制口xdata unsigned char OUTSEG _at_ 0 x8004; / 段控制口xdata unsigned char IN _at_ 0 x8001; / 鍵盤讀入口sbit Buzzer=P10; /蜂鳴器unsigned char DisplayData10; /數(shù)碼管顯示碼unsigned char code LEDMAP = / 共陰極八段管顯示碼 0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x7d, 0 x07, 0 x7f, 0 x6f, 0 x77, 0 x7c
34、, 0 x39, 0 x5e, 0 x79, 0 x71;unsigned char code wema= 0 x20,0 x10,0 x08,0 x04,0 x02,0 x01 ;/位選,0-5位數(shù)碼管 code unsigned char KeyTable = / 鍵碼定義 0 x16, 0 x15, 0 x14, 0 xff, 0 x13, 0 x12, 0 x11, 0 x10, 0 x0d, 0 x0c, 0 x0b, 0 x0a, 0 x0e, 0 x03, 0 x06, 0 x09, 0 x0f, 0 x02, 0 x05, 0 x08, 0 x00, 0 x01, 0 x04,
35、 0 x07; unsigned char code pinlv1=131,110,98, 87, 73, 87, 110,98, 131,0,110,98, 87, 73, 73, 65, 98, 87,87,87,73,65,73,65,55,58,65,73,65,87,110,98,87,73,110,131,110,98,87,65,73,73,0,87,65,65,73,82,87,98,87,73,131,110,98,0,110,98,87,73,65,55,58,65,73,87,65,65,; unsigned int code 沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 22 jiep
36、ai1=110,131,147,494,196,165,131,294,440,1,131,147,165,588,196,440,294,660,330,165,196,880,588,220,262,124,110,196,220,330,131,147,495,196,262,220,131,147,165,22,0,784,392,2,660,660,220,196,175,330,588,495,196,110,131,147,2,131,147,330,392,440,524,247,220,196,165,880,880;unsigned char code pinlv2=66
37、,55 ,44, 55, 49, 65, 55, 44, 37, 37, 65, 37, 41, 44, 41, 37, 29, 33, 44, 58, 65, 44;unsigned int code jiepai2=220,262,350,262,587,262,247,660,587,880,262,330,392,440,392,349,2640,698,784,492,440,660;unsigned int Num=0; /計(jì)數(shù)到 1Sunsigned int s=0,i=0;unsigned char flag=0;unsigned char KeyValue=0;unsigne
38、d char Key;unsigned char k=0;unsigned char t=0;unsigned char Pos=0 x04;void Delay(unsigned char CNT);/延時(shí)函數(shù)void DigDisplay(); /數(shù)碼管顯示函數(shù)void TimerConfiguration(); /配置定時(shí)器unsigned char GetKey(); /獲取鍵值unsigned char TestKey();void KeyDown();void yanzou(unsigned char pinlv,unsigned int jiepai);/播放音樂(lè)void Mus
39、ic_1(); /第一首樂(lè)曲沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 23 void Music_2(); /第二首樂(lè)曲void main() /主函數(shù) DisplayData0=LEDMAP0; DisplayData1=LEDMAP0;DisplayData2=LEDMAP0;TimerConfiguration(); while (1) DisplayData1=LEDMAPs/10;DisplayData2=LEDMAPs%10;DigDisplay();if(TestKey()TR0=1;KeyValue=GetKey();DisplayData0=LEDMAPKeyValue;switch(KeyValue) case 1 : Music_1();KeyValue=0;TR0 = 0;break; case 2 : Music_2();KeyValue=0;TR0 = 0;break;void yanzou(unsigned char pinlv,unsigned int jiepai)/播放樂(lè)曲沈陽(yáng)航空航天大學(xué)課程設(shè)計(jì)報(bào)告 24 unsigned char pl;unsigned int jp;for(jp=0;jpjiepai;jp+) KeyDown();if(fl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度租賃合同(商業(yè)物業(yè))
- 2025年度二手車買賣合同包含二手車交易法律咨詢服務(wù)
- 二零二五年度水泥制品市場(chǎng)推廣與品牌合作合同
- 二零二五年度餐廳節(jié)假日促銷活動(dòng)策劃合同3篇
- 乙方負(fù)責(zé)建設(shè)的2024年度智能交通系統(tǒng)合同3篇帶眉腳
- 二零二五年度餐飲店衛(wèi)生安全責(zé)任合同3篇
- 2025年度電影院場(chǎng)地租賃合同范本4篇
- 2025年度電商運(yùn)營(yíng)專業(yè)人才勞務(wù)服務(wù)合同范本3篇
- 二零二五年度酒店餐飲業(yè)務(wù)合作開(kāi)發(fā)與市場(chǎng)拓展合同2篇
- 2025年度高爾夫球場(chǎng)場(chǎng)地及球具租賃合同3篇
- JB-T 8532-2023 脈沖噴吹類袋式除塵器
- 深圳小學(xué)英語(yǔ)單詞表(中英文)
- 護(hù)理質(zhì)量反饋內(nèi)容
- 山東省濟(jì)寧市2023年中考數(shù)學(xué)試題(附真題答案)
- 抖音搜索用戶分析報(bào)告
- 板帶生產(chǎn)工藝熱連軋帶鋼生產(chǎn)
- 鉆孔灌注樁技術(shù)規(guī)范
- 2023-2024學(xué)年北師大版必修二unit 5 humans and nature lesson 3 Race to the pole 教學(xué)設(shè)計(jì)
- 供貨進(jìn)度計(jì)劃
- 國(guó)際尿失禁咨詢委員會(huì)尿失禁問(wèn)卷表
- 彌漫大B細(xì)胞淋巴瘤護(hù)理查房
評(píng)論
0/150
提交評(píng)論