版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選文檔數(shù)字音樂盒的設(shè)計摘 要傳統(tǒng)音樂盒,多是機(jī)械型的,體積笨重,發(fā)音單調(diào),水、灰塵等外在因素,簡潔使內(nèi)部金屬發(fā)音條變形,從而造成發(fā)音跑調(diào)。另外,機(jī)械音樂盒放音時為了讓音色穩(wěn)定,必需放平不能動搖,而且價格昂貴,不能實現(xiàn)大批量生產(chǎn)。本設(shè)計是一個基于AT89C51系列單片機(jī)的音樂盒。該音樂盒主要由按鍵電路、復(fù)位電路、時鐘電路、顯示電路以及蜂鳴器組成。使用四個按鍵把握音樂盒,其中兩個按鍵用來把握歌曲的播放、暫停,另兩個用來把握液晶上歌曲次序的變化,本音樂盒共有三首歌曲。播放歌曲時,相應(yīng)歌曲對應(yīng)相應(yīng)數(shù)碼管上歌曲次序及歌名的顯示。關(guān)鍵詞:AT89C51,蜂鳴器,LCD 液晶顯示,音樂盒精選文檔目 錄1
2、緒論.11.1 課題描述.11.2 基本工作原理及框圖.12 相關(guān)芯片及硬件電路設(shè)計.12.1 AT89C51 芯片.22.1.1 AT89C51 的功能特性.22.1.2 AT89C51 的主要性能參數(shù).22.2 時鐘電路.32.3 復(fù)位電路.32.4 按鍵電路.42.5 蜂鳴器電路.42.6 顯示電路.52.6.1 線段的顯示.52.6.2 字符的顯示.52.7 總體電路.63 系統(tǒng)軟件設(shè)計.73.1 程序主要流程.73.2 程序設(shè)計.84 系統(tǒng)軟件仿真.15總 結(jié).18致 謝.19參考文獻(xiàn).20精選文檔1 緒論1.1 課題描述 隨著人類社會的進(jìn)展,人們對視覺、聽覺方面的享受提出了越來越高
3、的要求。小小的音樂盒可以給人們帶來奇特的回憶,提高人們的精神文化享受。傳統(tǒng)的音樂盒大多數(shù)是機(jī)械型的,體積笨重,發(fā)音單調(diào),不能實現(xiàn)批量生產(chǎn)。本文設(shè)計的音樂盒是以單片機(jī)為核心元件的電子式音樂盒,體積小,重量輕,能演奏和旋音樂,功能多,使用便利,可以批量生產(chǎn),具有肯定的商業(yè)價值。本設(shè)計是基于單片機(jī)的數(shù)字音樂盒設(shè)計,由單片機(jī) AT89C51 芯片和 LED 數(shù)碼管為核心,輔以必要的電路,構(gòu)成的一個單片機(jī)電子數(shù)字音樂盒1。 1.2 基本工作原理及框圖本次設(shè)計是一個基于AT89C51單片機(jī)的音樂盒,該音樂盒主要由時鐘電路、復(fù)位電路、按鍵電路、蜂鳴器以及顯示電路組成。使用其中兩個按鍵來把握播放和暫停另外兩個
4、按鍵用來把握換曲。利在液晶上顯示曲目的更換,共三首音樂,蜂鳴器每播放一首歌時液晶上顯示相對應(yīng)的歌曲次序。系統(tǒng)組成框圖如圖1。 圖 1 基本工作原理框圖2 相關(guān)芯片及硬件電路設(shè)計AT89C51單片機(jī)LCD 液晶顯示蜂鳴器時鐘電路復(fù)位電路按鍵電路精選文檔2.1 AT89C51 芯片圖 2 AT89C51 引腳圖2.1.1 AT89C51 的功能特性AT89C51 供應(yīng)以下標(biāo)準(zhǔn)功能:4K 字節(jié) Flash 閃速存儲器,128 字節(jié)內(nèi)部 RAM,32個 I/O 口線,兩個十六位定時/計數(shù)器,一個 5 向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器準(zhǔn)時鐘電路。同時,AT89C51 可降至 0Hz 的
5、靜態(tài)規(guī)律操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止 CPU 的工作,但允許 RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)連續(xù)工作。掉電方式保存 RAM 中的內(nèi)容,但振蕩器停止工作并禁止其他全部部件工作直到下一個硬件復(fù)位。2.1.2 AT89C51 的主要性能參數(shù)AT89C51 主要性能參數(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 個中斷源 可編程串行通道低功耗的閑置和掉電模式
6、 2.2 時鐘電路時鐘電路在單片機(jī)系統(tǒng)中起著格外重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個單片機(jī)應(yīng)用系統(tǒng)中,時鐘是保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小打算了單片機(jī)系統(tǒng)工作的快慢2。為達(dá)到振蕩周期是12MHZ 的要求,這里要接受 12MHZ 的晶振,另外有兩個 22PF 的電容,晶振引腳分別連到 XTAL1 和 XTAL2 振蕩脈沖輸入引腳。時鐘電路如圖 3。圖 3 時鐘電路2.3 復(fù)位電路單片機(jī)在啟動時都需要進(jìn)行復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開頭工作。51系列單片機(jī)的復(fù)位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)
7、處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,假如RST引腳上有一個高電平并維持2個機(jī)器周期(24個振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位3。單片機(jī)系統(tǒng)的復(fù)位方式有:手動按鈕復(fù)位和上電復(fù)位。復(fù)位電路如圖4。精選文檔圖 4 復(fù)位電路2.4 按鍵電路按鍵的閉合與否,反映在行線輸出電壓上就呈現(xiàn)高電平或低電平,假如高電平表示鍵斷開,低電平則表示鍵閉合,通過對行線電平凹凸?fàn)顟B(tài)的檢測,便可確認(rèn)按鍵按下與否。P1.0,P1.1,P1.4,P1.5 作為把握按鍵,其中 P1.0-P1.1 掃描行,P1.4-P1.5 掃描列;可通過功能鍵選擇樂曲、暫停、播放。按鍵電路如圖 5。圖 5 按鍵電路2.5 蜂鳴器電路電
8、路中蜂鳴器是發(fā)聲元件,在其兩端施加直流電壓(有源蜂鳴器)或者方波(無源蜂鳴器)就可以發(fā)聲,其主要參數(shù)是外形尺寸、發(fā)聲方向、工作電壓、工作頻率、工作電流、驅(qū)動方式(直流/方波)等4。由于蜂鳴器的工作電流一般比較大,單片機(jī)的I/O口是無法直接驅(qū)動的(但AVR可以驅(qū)動小功率蜂鳴器) ,所以要利用放大電路來驅(qū)動,一般使用三極管來放大電流就可以了。蜂鳴器由一個三極管,兩個電阻和一個二極管組成。蜂鳴器電路如圖6。精選文檔圖 6 蜂鳴器電路2.6 顯示電路2.6.1 線段的顯示點(diǎn)陣圖形式液晶由MN顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對應(yīng)1字節(jié)的8位,即每行由16字節(jié),共168=12
9、8個點(diǎn)組成,屏上6416個顯示單元與顯示RAM區(qū)1024字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H00FH的16字節(jié)的內(nèi)容打算,當(dāng)(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點(diǎn);當(dāng)(3FFH)=FFH時,則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH, (001H)=00H, (002H)=00H,(00EH)=00H, (00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理5。2.6.2 字符的顯示用 LCD 顯示一個字符時比較簡單,由于一個字符由 68 或 88
10、 點(diǎn)陣組成,要找到和顯示屏幕上某幾個位置對應(yīng)的顯示 RAM 區(qū)的 8 字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個字符。但由于內(nèi)帶字符發(fā)生器的把握器來說,顯示字符就比較簡潔了,可以讓把握器工作在文本方式,依據(jù)在 LCD 上開頭顯示的行列號及每行的列數(shù)找出顯示 RAM 對應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對應(yīng)的代碼即可6。顯示電路如圖 7。精選文檔圖 7 顯示電路2.7 總體電路總結(jié)時鐘電路、復(fù)位電路、按鍵電路、蜂鳴器以及顯示電路,把其放入一個電路。得到總體的電路??傮w電路如圖 8。圖 8 總體電路圖精選文檔3 系統(tǒng)軟件設(shè)計3.1 程序主
11、要流程流程圖如圖 9 所示。初始化界面K3是否按下K4是否按下K1是否按下K2是否按下停止切換上一首切換下一首播放音樂開始計時停止音樂停止計時NNNYYYY開始圖 9 流程圖精選文檔3.2 程序設(shè)計對音樂do re mi fa so la si分別編碼為17,重音do編為8,重音re編為9,停頓編為0。播放長度以十六分音符為單位(在本程序中為165ms) ,一拍即四分音符等于4個十六分音符,編為4,其它的播放時間以此類推。音調(diào)作為編碼的高4位,而播放時間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個編碼。以0 xff作為曲譜的結(jié)束標(biāo)志7。舉例1:音調(diào)do,發(fā)音長度為兩拍,即二分音符,將其編碼為0 x1
12、8。舉例2:音調(diào)re,發(fā)音長度為半拍,即八分音符,將其編碼為0 x22歌曲播放的設(shè)計。先將歌曲的簡譜進(jìn)行編碼,儲存在一個數(shù)據(jù)類型為unsigned char的數(shù)組中。程序從數(shù)組中取出1個數(shù),然后分別出高4位得到音調(diào),接著找出相應(yīng)的值賦給定時器0,使之定時操作蜂鳴器,得出相應(yīng)的音調(diào);接著分別出該數(shù)的低4位,得到延時時間,接著調(diào)用軟件延時。程序:#include #include #define uchar unsigned char#define uint unsigned intuchar m,n; uchar i,timecount=0,timesec=0,timemin=0,timeche
13、ck=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 = P22;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
14、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,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
15、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,精選文檔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 x81;uchar code music12=0,4, 22,4
16、,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,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
17、,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,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 co
18、de 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,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
19、,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,26,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
20、,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,15,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
21、,4,14,4,14,4,14,4,7,4,12,24,0 xFF,0 xFF;uchar timetable =00:00;void delay(uchar p) uchar 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
22、(lcd_bz();rs = 0;rw = 0;ep = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();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;ep = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_no
23、p_();_nop_();_nop_();ep = 0; void lcd_init()lcd_wcmd(0 x38);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+;
24、if(timecount=20) timesec+;timecount=0;if(timesec=60)timesec=0;timemin+; void adfa() interrupt 0 timesec=0; timemin=0; r0+; delay(5); if(r011) r0=11; void adfii() interrupt 2 if(pausekey=0) beepIO=0; while(pausekey=0); while(pausekey=1); while(pausekey=0); delay(8); else timesec=0; timemin=0; r0-; de
25、lay(5); if(r0=0) r0=1;void T0_int() 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(
26、timetable0);lcd_wdat(timetable1);lcd_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; pausekey=1; lcd_init(); while(1) 精選文檔if(r0=0) delay(1);l
27、cd_pos(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;timem
28、in=0;/ 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+;/ 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 軟件,然后進(jìn)行軟件和硬件的統(tǒng)一調(diào)試8。圖 10 仿真初始界面精選文檔圖 11 仿真播放第一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 我國反商業(yè)賄賂法律制度的困境與突破:基于多維度的審視與重構(gòu)
- 我國勞動者職業(yè)風(fēng)險與補(bǔ)償工資的關(guān)聯(lián)性探究:理論、實證與對策
- 2026福建福州市馬尾海關(guān)單證資料管理崗位輔助人員招聘1人備考題庫含答案詳解
- 2026福建龍巖市青草盂地區(qū)人民檢察院新媒體工作人員招聘1人備考題庫完整參考答案詳解
- 多媒體教室設(shè)備維護(hù)與管理報告
- 2026青海海東市第二人民醫(yī)院校園引才招聘10人備考題庫及參考答案詳解一套
- 交通運(yùn)輸行業(yè)安全生產(chǎn)標(biāo)準(zhǔn)細(xì)則
- 污水處理工藝運(yùn)行培訓(xùn)資料
- 幼兒園教具采購與分類管理
- 2026重慶市綦江區(qū)郭扶鎮(zhèn)招聘公益性崗位人員1人備考題庫完整參考答案詳解
- 2025至2030中國醫(yī)療收入周期管理軟件行業(yè)深度研究及發(fā)展前景投資評估分析
- 基層醫(yī)療資源下沉的實踐困境與解決路徑實踐研究
- 1101無菌檢查法:2020年版 VS 2025年版對比表
- 醫(yī)務(wù)科副科長醫(yī)務(wù)人員調(diào)配工作方案
- 碳化硅性能參數(shù)及市場趨勢分析
- 魔芋干貨購銷合同范本
- 2025初一英語閱讀理解100篇
- 2025年道路運(yùn)輸安全員兩類人員試題庫及答案
- 保密協(xié)議書 部隊
- 鋼結(jié)構(gòu)工程變更管理方案
- 辦美國簽證邀請函
評論
0/150
提交評論