數(shù)字音樂盒的課程設計_第1頁
數(shù)字音樂盒的課程設計_第2頁
數(shù)字音樂盒的課程設計_第3頁
數(shù)字音樂盒的課程設計_第4頁
數(shù)字音樂盒的課程設計_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔.數(shù)字音樂盒的課程設計【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔.數(shù)字音樂盒的設計摘 要傳統(tǒng)音樂盒,多是機械型的,體積笨重,發(fā)音單調(diào),水、灰塵等外在因素,容易使內(nèi)部金屬發(fā)音條變形,從而造成發(fā)音跑調(diào)。另外,機械音樂盒放音時為了讓音色穩(wěn)定,必須放平不能動搖,而且價格昂貴,不能實現(xiàn)大批量生產(chǎn)。本設計是一個基于AT89C51系列單片機的音樂盒。該音樂盒主要由按鍵電路、復位電路、時鐘電路、顯示電路以及蜂鳴器組成。使用四個按鍵控制音樂盒,其中兩個按鍵用來控制歌曲的播放、暫停,另兩個用來控制液晶上歌曲次序的變化,本音樂盒共有三

2、首歌曲。播放歌曲時,相應歌曲對應相應數(shù)碼管上歌曲次序及歌名的顯示。關鍵詞:AT89C51,蜂鳴器,LCD 液晶顯示,音樂盒【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔.目 錄1 緒論.11.1 課題描述.11.2 基本工作原理及框圖.12 相關芯片及硬件電路設計.12.1 AT89C51 芯片.22.1.1 AT89C51 的功能特性.22.1.2 AT89C51 的主要性能參數(shù).22.2 時鐘電路.32.3 復位電路.32.4 按鍵電路.42.5 蜂鳴器電路.42.6 顯示電路.52.6.1 線段的顯示.52.6.2 字符的顯示.52.7 總體電路.63 系統(tǒng)軟件設計.73

3、.1 程序主要流程.73.2 程序設計.84 系統(tǒng)軟件仿真.15總 結(jié).18致 謝.19參考文獻.20【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔.1 緒論1.1 課題描述 隨著人類社會的發(fā)展,人們對視覺、聽覺方面的享受提出了越來越高的要求。小小的音樂盒可以給人們帶來美好的回憶,提高人們的精神文化享受。傳統(tǒng)的音樂盒大多數(shù)是機械型的,體積笨重,發(fā)音單調(diào),不能實現(xiàn)批量生產(chǎn)。本文設計的音樂盒是以單片機為核心元件的電子式音樂盒,體積小,重量輕,能演奏和旋音樂,功能多,使用方便,可以批量生產(chǎn),具有一定的商業(yè)價值。本設計是基于單片機的數(shù)字音樂盒設計,由單片機 AT89C51 芯片和 LE

4、D 數(shù)碼管為核心,輔以必要的電路,構(gòu)成的一個單片機電子數(shù)字音樂盒1。 1.2 基本工作原理及框圖本次設計是一個基于AT89C51單片機的音樂盒,該音樂盒主要由時鐘電路、復位電路、按鍵電路、蜂鳴器以及顯示電路組成。使用其中兩個按鍵來控制播放和暫停另外兩個按鍵用來控制換曲。利在液晶上顯示曲目的更換,共三首音樂,蜂鳴器每播放一首歌時液晶上顯示相對應的歌曲次序。系統(tǒng)組成框圖如圖1。圖 1 基本工作原理框圖2 相關芯片及硬件電路設計2.1 AT89C51 芯片圖 2 AT89C51 引腳圖2.1.1 AT89C51 的功能特性AT89C51 提供以下標準功能:4K 字節(jié) Flash 閃速存儲器,128

5、字節(jié)內(nèi)部 RAM,32個 I/O 口線,兩個十六位定時/計數(shù)器,一個 5 向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C51 可降至 0Hz 的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止 CPU 的工作,但允許 RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM 中的內(nèi)容,但振蕩器停止工作并禁止其他所有部件工作直到下一個硬件復位。AT89C51單片機LCD 液晶顯示蜂鳴器時鐘電路復位電路按鍵電路【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔.2.1.2 AT89C51 的主要性能參數(shù)AT89C51 主要性能

6、參數(shù)如下:與 MC51 產(chǎn)品指令系統(tǒng)完全兼容K 字節(jié)可編程閃爍 存儲器 壽命:1000 寫/擦循環(huán)數(shù)據(jù)保留時間: 10 年全靜態(tài)工作: 0Hz-24Hz三級程序存儲器鎖定128*8 位內(nèi)部 RAM32 可編程 I/O 線兩個 16 位定時器/計數(shù)器5 個中斷源 可編程串行通道低功耗的閑置和掉電模式 2.2 時鐘電路時鐘電路在單片機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎。在一個單片機應用系統(tǒng)中,時鐘是保障系統(tǒng)正常工作的基準振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢2。為達到振蕩周期是12MHZ 的要求,這里要采用 12MHZ 的晶振,另外有兩個

7、22PF 的電容,晶振引腳分別連到 XTAL1 和 XTAL2 振蕩脈沖輸入引腳。時鐘電路如圖 3。圖 3 時鐘電路2.3 復位電路單片機在啟動時都需要進行復位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。51系列單片機的復位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以響應并將系統(tǒng)復位3。單片機系統(tǒng)的復位方式有:手動按鈕復位和上電復位。復位電路如圖4?!揪肺臋n】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔.圖 4 復位電路2.4 按鍵電路按

8、鍵的閉合與否,反映在行線輸出電壓上就呈現(xiàn)高電平或低電平,如果高電平表示鍵斷開,低電平則表示鍵閉合,通過對行線電平高低狀態(tài)的檢測,便可確認按鍵按下與否。P1.0,P1.1,P1.4,P1.5 作為控制按鍵,其中 P1.0-P1.1 掃描行,P1.4-P1.5 掃描列;可通過功能鍵選擇樂曲、暫停、播放。按鍵電路如圖 5。圖 5 按鍵電路2.5 蜂鳴器電路電路中蜂鳴器是發(fā)聲元件,在其兩端施加直流電壓(有源蜂鳴器)或者方波(無源蜂鳴器)就可以發(fā)聲,其主要參數(shù)是外形尺寸、發(fā)聲方向、工作電壓、工作頻率、工作電流、驅(qū)動方式(直流/方波)等4。由于蜂鳴器的工作電流一般比較大,單片機的I/O口是無法直接驅(qū)動的(

9、但AVR可以驅(qū)動小功率蜂鳴器) ,所以要利用放大電路來驅(qū)動,一般使用三極管來放大電流就可以了。蜂鳴器由一個三極管,兩個電阻和一個二極管組成。蜂鳴器電路如圖6。圖 6 蜂鳴器電路2.6 顯示電路2.6.1 線段的顯示點陣圖形式液晶由MN顯示單元組成,假設LCD顯示屏有64行,每行有128列,每8列對應1字節(jié)的8位,即每行由16字節(jié),共168=128個點組成,屏上6416個顯示單元與顯示RAM區(qū)1024字節(jié)相對應,每一字節(jié)的內(nèi)容和顯示屏上相應位置的亮暗對應。例如屏的第一行的亮暗由RAM區(qū)的000H00FH的16字節(jié)的內(nèi)容決定,當(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點;當

10、(3FFH)=FFH時,則屏幕的右下角顯示一條短亮線;當(000H)=FFH, (001H)=00H, (002H)=00H,(00EH)=00H, (00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理5。2.6.2 字符的顯示【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔.用 LCD 顯示一個字符時比較復雜,因為一個字符由 68 或 88 點陣組成,要找到和顯示屏幕上某幾個位置對應的顯示 RAM 區(qū)的 8 字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。這樣一來就組成某個字符。但由于內(nèi)帶字

11、符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在 LCD 上開始顯示的行列號及每行的列數(shù)找出顯示 RAM 對應的地址,設立光標,在此送上該字符對應的代碼即可6。顯示電路如圖 7。圖 7 顯示電路2.7 總體電路總結(jié)時鐘電路、復位電路、按鍵電路、蜂鳴器以及顯示電路,把其放入一個電路。得到總體的電路??傮w電路如圖 8。圖 8 總體電路圖3 系統(tǒng)軟件設計3.1 程序主要流程流程圖如圖 9 所示。圖 9 流程圖【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔.3.2 程序設計對音樂do re mi fa so la si分別編碼為17,重音do編為8,重音r

12、e編為9,停頓編為0。播放長度以十六分音符為單位(在本程序中為165ms) ,一拍即四分音符等于4個十六分音符,編為4,其它的播放時間以此類推。音調(diào)作為編碼的高4位,而播放時間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個編碼。以0 xff作為曲譜的結(jié)束標志7。舉例1:音調(diào)do,發(fā)音長度為兩拍,即二分音符,將其編碼為0 x18。舉例2:音調(diào)re,發(fā)音長度為半拍,即八分音符,將其編碼為0 x22歌曲播放的設計。先將歌曲的簡譜進行編碼,儲存在一個數(shù)據(jù)類型為unsigned char的數(shù)組中。程序從數(shù)組中取出1個數(shù),然后分離出高4位得到音調(diào),接著找出相應的值賦給定時器0,使之定時操作蜂鳴器,得出相應的音調(diào);

13、接著分離出該數(shù)的低4位,得到延時時間,接著調(diào)用軟件延時。程序:#include #include #define uchar unsigned char#define uint unsigned intuchar m,n; uchar i,timecount=0,timesec=0,timemin=0,timecheck=0;char r0=2;sbit beepIO=P30;typedef unsigned char BYTE;typedef unsigned int WORD;typedef bit BOOL ; sbit rs= P20;sbit rw = P21;sbit ep = P

14、22;sbit pausekey=P11;uchar k,q,f;uchar code dis1 =1 ji mo sha zhou; uchar code dis2 = 2 tong hua;uchar code dis3 =3 qian nian lian;uchar code T492=0,0,0 xF8,0 x8B,0 xF8,0 xF2,0 xF9,0 x5B,0 xF9,0 xB7,0 xFA,0 x14,0 xFA,0 x66,0 xFA,0 xB9,0 xFB,0 x03,0 xFB,0 x4A,0 xFB,0 x8F,0 xFB,0 xCF,0 xFC,0 x0B,0 xFC

15、,0 x43,0 xFC,0 x78,0 xFC,0 xAB,0 xFC,0 xDB,0 xFD,0 x08,0 xFD,0 x33,0 xFD,0 x5B,0 xFD,0 x81,0 xFD,0 xA5,0 xFD,0 xC7,0 xFD,0 xE7,0 xFE,0 x05,0 xFE,0 x21,0 xFE,0 x3C,0 xFE,0 x55,0 xFE,0 x6D,0 xFE,0 x84,0 xFE,0 x99,0 xFE,0 xAD,0 xFE,0 xC0,0 xFE,0 x02,0 xFE,0 xE3,0 xFE,0 xF3,0 xFF,0 x02,【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪

16、除,僅供學習與交流.精品文檔.0 xFF,0 x10,0 xFF,0 x1D,0 xFF,0 x2A,0 xFF,0 x36,0 xFF,0 x42,0 xFF,0 x4C,0 xFF,0 x56,0 xFF,0 x60,0 xFF,0 x69,0 xFF,0 x71,0 xFF,0 x79,0 xFF,0 x81uchar code music12=0,4, 22,4,22,4,17,4,15,4,15,4,17,12,15,4,15,2,17,2,15,4,13,4,13,4,15,12,0,4,20,4,20,4,20,4,17,4,20,4,20,4,20,4,17,4,22,4,17

17、,4,17,4,15,4,15,4,17,12,22,4,22,4,17,4,15,4,15,4,17,12,15,4,15,2,17,2,15,4,13,4,13,4,15,12,20,4,20,4,20,2,17,2,17,4,20,4,20,4,20,2,17,2,17,2,17,2,24,4,20,4,20,2,17,2,17,4,20,4,22,12,17,4,22,4,25,4,25,4,17,4,22,4,25,8,24,4,22,2,24,2,22,4,20,4,15,4,17,12,15,4,15,4,15,4,10,4,15,4,17,4,20,8,17,4,24,4,24

18、,4,20,4,15,4,17,12,17,4,22,4,25,4,25,4,17,4,22,4,25,8,29,4,27,2,29,2,27,4,25,4,25,4,27,12,29,4,29,2,27,4,25,4,27,6,27,2,25,4,24,4,20,4,20,2,17,2,20,4,20,2,22,2,22,16,0 xFF,0 xFF;uchar code music22=0,4, 16,6,19,2,19,6,16,2,14,6,0,10,16,6,19,2,19,6,16,2,14,8,0,8,26,8,21,6,24,2,23,6,21,2,19,8,21,16,0,8

19、,16,6,19,2,19,6,16,2,14,8,0,8,26,8,21,6,23,2,21,14,24,6,23,2,21,6,19,2,16,6,14,2,13,8,14,16,0,4,19,6,19,2,21,6,21,2,23,8,21,4,0,4,19,6,19,2,16,6,19,2,16,8,14,6,0,4,19,6,19,2,21,6,21,2,23,8,21,4,0,4,19,6,19,2,16,6,19,2,16,8,14,6,0,4,26,16,21,4,26,4,21,4,26,16,21,4,26,16,0,4,16,8,16,8,14,8,16,8,21,4,2

20、6,4,21,4,26,4,0,8,16,8,16,8,14,8,16,8,21,4,26,4,21,4,26,4,0,8,19,8,19,6,21,2,16,8,0,8,19,6,21,2,19,6,21,2,16,8,0,8,21,8,26,8,21,4,24,12,23,6,21,2,19,8,21,16,14,4,21,4,14,4,19,4,16,6,14,2,13,8,14,16,0 xFF,0 xFF;uchar code music32=0,4,27,4,19,4,19,4,27,4,26,4,26,2,27,2,24,8,22,4,17,4,24,4,22,4,19,16,1

21、5,4,12,4,12,4,15,4,17,8,19,8,26,6,26,2,26,4,24,4,24,4,19,4,19,8,27,4,19,4,19,4,27,4,26,4,26,2,27,2,24,6,24,2,22,4,17,4,24,4,22,4,19,16,15,4,12,4,12,4,15,4,17,8,19,8,19,6,19,2,19,4,17,4,14,4,14,4,【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔.14,4,7,4,12,24,0 xFF,0 xFF;uchar timetable =00:00;void delay(uchar p) uch

22、ar i,j; for(;p0;p-) for(i=181;i0;i-) for(j=181;j0;j-);BOOL lcd_bz()BOOL result;rs = 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (BOOL)(P0 & 0 x80);ep = 0;return result; void lcd_wcmd(BYTE cmd)while(lcd_bz();rs = 0;rw = 0;ep = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_(

23、);ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;void lcd_pos(BYTE pos)lcd_wcmd(pos | 0 x80);void lcd_wdat(BYTE dat)while(lcd_bz();rs = 1;rw = 0;【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔.ep = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0; void lcd_init()lcd_wcmd(0 x38

24、);delay(1);lcd_wcmd(0 x0c);delay(1);lcd_wcmd(0 x06);delay(1);lcd_wcmd(0 x01);delay(1); void pause() uchar i,j; for(i=150;i0;i-) for(j=150;j0;j-); void timecount_init() interrupt 3 TH1=(65535-45872)/256; TL1=(65535-45872)%256; timecount+; if(timecount=20) timesec+;timecount=0;if(timesec=60)timesec=0;

25、timemin+;void adfa() interrupt 0 timesec=0; timemin=0; r0+; delay(5); if(r011) r0=11; void adfii() interrupt 2 if(pausekey=0)【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔. beepIO=0; while(pausekey=0); while(pausekey=1); while(pausekey=0); delay(8); else timesec=0; timemin=0; r0-; delay(5); if(r0=0) r0=1;void T0_i

26、nt() interrupt 1 beepIO=!beepIO; TH0=Tm0; TL0=Tm1;void zhuanhuan()timetable3=timesec/10+0;timetable4=timesec%10+0;timetable2=:;timetable0=timemin/10+0;timetable1=timemin%10+0;void timedis()if(timecheck!=timesec)timecheck=timesec;zhuanhuan();lcd_pos(0 x49);lcd_wdat(timetable0);lcd_wdat(timetable1);lc

27、d_wdat(timetable2);lcd_wdat(timetable3);lcd_wdat(timetable4);void main() uchar i=0,lcd_check=0; TMOD=0 x11; TH1=(65535-45872)/256; TL1=(65535-45872)%256; PX0=1; PX1=1; EX0=1; EX1=1; EA=1; ET0=1; ET1=1; TR1=1; 【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔. pausekey=1; lcd_init(); while(1) if(r0=0) delay(1);lcd_pos

28、(0); i = 0; while(dis1i != 0) lcd_wdat(dis222i); i+; if(r0=1)timedis(); if(lcd_check!=r0)lcd_wcmd(0 x01); delay(1);lcd_check=r0;lcd_pos(0); i = 0; while(dis1i != 0) lcd_wdat(dis1i); i+; m=music1i0;n=music1i1; if(m=0 x00) TR0=0;delay(n);i+;/ else if(m=0 xFF) TR0=0;delay(30);i=0;timesec=0;timemin=0;/

29、else if(m=music1i+10) TR0=1;delay(n);TR0=0;pause();i+; else TR0=1;delay(n);i+;if(r0=2) timedis(); if(lcd_check!=r0) lcd_wcmd(0 x01); delay(1); lcd_check=r0; lcd_pos(0); i = 0; while(dis2i != 0) lcd_wdat(dis2i); i+; m=music2i0;n=music2i1; if(m=0 x00) TR0=0;delay(n);i+;/ 【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流.精品文檔. else if(m=0 xFF) TR0=0;delay(30);i=0;timesec=0;timemin=0;/ else if(m=music2i+10) TR0=1;delay(n);TR0=0;pause();i+; else TR0=1;delay(n);i+;4 系統(tǒng)軟件仿真在這里系統(tǒng)仿真我們使用實驗室常用的 Protues 仿真軟件,把總電路畫入 ISIS 軟件,把程序加入 Keil 軟件,然后進行軟件和硬件的統(tǒng)一調(diào)試8。圖 10 仿真初始界面圖 11 仿真播放第一首圖 12 仿真播放第二首圖 13 仿真播放第三首【精品文檔】如有侵權(quán),請聯(lián)系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論