(精品論文)智能音樂鬧鐘設(shè)計_第1頁
(精品論文)智能音樂鬧鐘設(shè)計_第2頁
(精品論文)智能音樂鬧鐘設(shè)計_第3頁
(精品論文)智能音樂鬧鐘設(shè)計_第4頁
(精品論文)智能音樂鬧鐘設(shè)計_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目 錄摘 要IAbstractII第1章緒論111 應(yīng)用背景112 本項目實現(xiàn)的功能2第2章 總體設(shè)計321 方案設(shè)計與論證322系統(tǒng)結(jié)構(gòu)框圖423器件說明42.3.1時鐘芯片42.3.1單片機7第3章 電路設(shè)計1031主體電路1032 單片機系統(tǒng)1133鍵盤電路1134功放電路1235顯示電路1336時鐘電路13第4章 程序設(shè)計144.1 主程序流程圖1442 比較鬧鐘與時間程序1543 鍵盤掃描程序1644 對DS1302操作的程序1845 播放音樂程序20第5章 系統(tǒng)仿真215.1軟件調(diào)試215.2 硬件調(diào)試22第6章 總結(jié)23參考文獻24致謝25附錄2636摘 要本文介紹了一種智能音樂鬧鐘的設(shè)計。本設(shè)計是由中央控制器、時鐘系統(tǒng)、顯示器及鍵盤部分組成??刂破鞑捎脝纹瑱CAT89C51,時鐘系統(tǒng)采用美國DALLAS公司生產(chǎn)的DS1302實時時鐘芯片,它將產(chǎn)生的時間信號傳遞給單片機,單片機通過74LS48譯碼,使LED 8段數(shù)碼管顯示當(dāng)前的時間,在計時過程中當(dāng)?shù)竭_(dá)所設(shè)定的鬧鈴時間后,將播放音樂,并且此時LED 數(shù)碼管所顯示的不再是時間而是一個代碼,只有用戶在將這個代碼從鍵盤上正確的輸入進去,才能將其音樂關(guān)閉,否則音樂將一直播放下去。用戶可以通過鍵盤設(shè)置鬧鈴的時間和校正時間。關(guān)鍵詞:單片機、DS1302、智能鬧鐘AbstractIn this paper, a smart alarm clock music design. This design is from the central controller, the clock system, monitor and keyboard parts. Controllers using SCM AT89C51, the clock system uses the U.S. companys DS1302 DALLAS real-time clock chip, it will have the time to signal transmitted to the microcontroller, SCM through 74 LS48 decoding, LED 8 of the digital display of the current Time, When in the course of time set by the arrival of the alarm time, will play music, and at this time of the LED digital display is no longer time but a code that only users of this code from the keyboard on the correct input into the Music can be closed, otherwise, would have been broadcast on music. Users can set the alarm through the keyboard of the time and correction time.Keywords :singlechip、DS1302、Smart alarm clock第1章 緒論11 應(yīng)用背景自單片機出現(xiàn)至今,單片機技術(shù)已走過了近20年的發(fā)展路程。電子技術(shù)和計算機技術(shù)應(yīng)用領(lǐng)域不斷擴大,單片機技術(shù)已成為電子技術(shù)領(lǐng)域中的一個新的亮點,隨著單片機技術(shù)的迅猛發(fā)展和應(yīng)用領(lǐng)域不斷擴大,縱觀20年來單片機發(fā)展里程可以看出,單片機技術(shù)滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡?;趩纹瑱C的通用定時控制系統(tǒng)正是屬于單片機技術(shù)范圍。特別是在智能化控制高度發(fā)展的前提下,定時控制是不可或缺的條件??梢哉f只要有智能化的存在,就必須要用到定時控制。導(dǎo)彈的導(dǎo)航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,民用豪華轎車的安全保障系統(tǒng),全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機通用定時技術(shù)。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械了。因此,基于單片機的通用定時控制的學(xué)習(xí)是非常重要的也是非常關(guān)鍵的。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,單片機應(yīng)用系統(tǒng)的軟件(常稱為監(jiān)控程序或固件固化到單片機內(nèi)部或外部的程序存儲器內(nèi))一般由主程序和若干個中斷程序組成,以作完善?;趩纹瑱C的通用定時控制也是如此。帶有鬧時裝置的鐘。既能指示時間,又能按人們預(yù)定的時刻發(fā)出音響信號或其他信號。43年前,現(xiàn)代鬧鐘的前輩們承擔(dān)了1964年東京奧運會的計時工作。從那時起,電子鬧鐘就慢慢的進入了我們的日常生活之中,為我們的生活與工作帶來了意想不到的結(jié)果。目前市面上的數(shù)字鬧鐘種類繁多,有可愛型的,有帶計算器的,有數(shù)碼管顯示的,有液晶顯示的等等。其中在歐西亞公司所倡導(dǎo)的數(shù)字生活中,有幾款很有特色的電子鬧鐘:法拉利版電子投影鬧鐘,BAR839HG和RMR826HG等型號的鬧鐘,不僅具有顯示時間的功能,炫酷的外形,記憶最高/最低溫度值、時鐘、日歷、鬧鐘、第二時區(qū)、夜光等功能還可以將時間投影到墻上,天花板上,讓你在黑暗里只要一睜眼就能看到時間,除了能鬧醒大家外,還提供了6種甜睡的音樂幫助用戶入睡。12 本項目實現(xiàn)的功能本設(shè)計是一個音樂智能鬧鐘,與普通的音樂鬧鐘不同的是當(dāng)鬧鐘響起時只有輸入相應(yīng)的代碼才能使其關(guān)閉否則將一直響起。以單片機作為核心主控芯片,采用美國DALLAS公司生產(chǎn)的實時時鐘芯片,產(chǎn)生時間信號傳遞給單片機,經(jīng)單片機處理再通過LED 8段數(shù)碼管完成當(dāng)前時間的顯示,當(dāng)?shù)竭_(dá)所設(shè)定的鬧鈴時間后,音樂將播放出來,并且此時LED 8段數(shù)碼管所顯示的不再是時間而是一個代碼,只有用戶在將這個代碼從鍵盤上正確的輸入進去,才能將其音樂關(guān)閉。我們可以通過鍵盤設(shè)置鬧鈴的時間和校正當(dāng)前的時間。擁有4個LED 8段數(shù)碼管作為顯示輸出,可顯示時鐘的時與分。該系統(tǒng)具有易操作,較為人性化等特點,對增強人們的時間觀念,對一些有意義事件能給予人們以提醒和警覺,對隨時提醒人們注意把握時間具有重要作用。故具有實際運用價值。第2章 總體設(shè)計21 方案設(shè)計與論證(1)、對于單片機的選擇:a)、如果用8031系列,由于它沒有內(nèi)部RAM,系統(tǒng)又需要大量內(nèi)存存儲數(shù)據(jù),因而不可用。b)、8051或8052系列具有片內(nèi)ROM或EPROM,而52子系列與51子系列的不同之處在于:片內(nèi)數(shù)據(jù)存儲器增支256字節(jié);片內(nèi)程序存儲器增之8KB(8032無);有3個16位定時/計數(shù)器,6個中斷源。8051片內(nèi)程序存儲器為4KB,對于本設(shè)計來說已經(jīng)足夠,因此選擇8051彈片機。(2)、時鐘功能的實現(xiàn)方案:a)、用軟件實現(xiàn),直接用單片機的定時器編程以實現(xiàn)時鐘;b)、用專門的時鐘芯片實現(xiàn)時鐘的記時,再把時間數(shù)據(jù)送入單片機,由單片機控制顯示。比較兩種方案,用軟件實現(xiàn)時鐘固然可以,但是程序運行的每一步都需要時間,多一步或少一步程序都會影響記時的準(zhǔn)確度,用專用時鐘芯片可以實現(xiàn)準(zhǔn)確記時。因此選擇b方案。(3)、 顯示器:a)、液晶顯示器。如果選擇此方案,將會降低系統(tǒng)的功耗,這樣就可以用電池供電,便于攜帶。但液晶顯示器的驅(qū)動電路復(fù)雜,使用起來有一定的難度。b)、用數(shù)碼管作為顯示器。數(shù)碼管的驅(qū)動電路簡單,使用方便,如果選擇了此方案,那么在夜間看時間的時候就不需要有光源,非常方便。其缺點是功耗較大。由于數(shù)碼管使用起來較為方便,在夜間看時間也很方便,因此我們選擇了方案b。(4)、 發(fā)音部分用軟件方法產(chǎn)生波性輸出,通過三極管放大后驅(qū)動喇叭發(fā)音,這樣就可以省去硬件振蕩電路,降低成本。(5)、鍵盤a):4*3矩陣式鍵盤。如果選擇此方案,那么在修改時鐘或設(shè)置鬧鈴時間時就可以直接從鍵盤輸入,方便、快捷,但程序較為復(fù)雜。b):獨立式按鍵。如果設(shè)置過多按鍵,將會占用較多I/O口,而且會給布線帶來不便,此方案適用于按鍵較少的情況。因此選擇方案a。22系統(tǒng)結(jié)構(gòu)框圖鍵盤LED功放單片機時鐘芯片圖2-1 系統(tǒng)框圖本設(shè)計以單片機AT89C51作為核心主控芯片,采用美國DALLAS公司生產(chǎn)的DS1302實時時鐘芯片,產(chǎn)生時間信號傳遞給單片機,經(jīng)單片機處理再通過LED 8段數(shù)碼管完成當(dāng)前時間的顯示,當(dāng)?shù)竭_(dá)所設(shè)定的鬧鈴時間后,音樂將播放出來,并且此時LED 數(shù)碼管所顯示的不再是時間而是一個代碼,只有用戶在將這個代碼從鍵盤上正確的輸入進去,才能將其音樂關(guān)閉。用戶可以通過鍵盤設(shè)置鬧鈴的時間和校正當(dāng)前的時間。23器件說明2.3.1時鐘芯片本設(shè)計采用的時鐘芯片DSl302是美國DALLAS公司生產(chǎn)的一種具有涓細(xì)電流充電能力的芯片,主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32.768kHz晶振。該芯片是一種體積小、高性能、低功耗、接口容易、占用CPU IO口線少、帶RAM的實時時鐘電路等主要特點,故該芯片作為實時時鐘廣泛應(yīng)用于智能化儀器儀表中。它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個318的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進行涓細(xì)電流充電的能力。引腳排列如下圖所示:圖2-2 DS1302引腳排列DS1302的引腳排列:Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc10.2V時,Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。/RST是復(fù)位/片選線,通過把/RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。/RST輸入有兩種功能:首先,/RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,/RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)/RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中/RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.5V之前,/RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向)。SCLK始終是輸入端。 1)、 DS1302 的控制字如下圖所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 圖2-3 DS1302命令碼格式DS1302與單片機的連接圖:圖2-4 DS1302與AT89C51的硬件連接圖2)、數(shù)據(jù)輸入輸出(I/O) 在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。注意:第一個數(shù)據(jù)位被送出發(fā)生在寫命令字節(jié)最后一位的第一個下降沿,數(shù)據(jù)輸出開始位為位0。單字節(jié)讀操作每次需16個時鐘,地址字節(jié)在前8個時鐘周期的上升沿輸入,而數(shù)據(jù)字節(jié)在后8個時鐘周期的下降沿輸出。圖2-5 單字節(jié)讀操作時序3)DA1302寄存器分布DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見下表。 表2-1 DS1302寄存器分布表此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。2.3.1單片機本系統(tǒng)采用最常用的AT89C51單片機,它是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。引腳排列如下圖所示:圖2-6 AT89C51引腳排列主要特性: 與MCS-51 兼容 4K字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時間:10年全靜態(tài)工作:0Hz-24Hz三級程序存儲器鎖定1288位內(nèi)部RAM32可編程I/O線兩個16位定時器/計數(shù)器5個中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時鐘電路 管腳說明:Vcc:供電電壓。GND:接地。P0口:在不接片外存儲器與不擴展I/O口時,可作為準(zhǔn)雙向輸入/輸出口。在接有片外存儲器或擴展I/O口時,P0口分時復(fù)用為低8位地址總線和雙向數(shù)據(jù)總線。P1口:準(zhǔn)雙向輸入/輸出口。P2口:一般可作為準(zhǔn)雙向輸入/輸出口。在接有片外存儲器或擴展I/O口且尋址范圍超過256字節(jié)時,用作高8位地址總線。P3口:除作為準(zhǔn)雙向輸入/輸出口外,P3口也可作為AT89C51的一些特殊功能口。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。第3章 電路設(shè)計31主體電路本設(shè)計以單片機AT89C51作為核心主控芯片,采用DS1302實時時鐘芯片,將產(chǎn)生的時間信號傳遞給單片機,經(jīng)單片機處理再通過LED 8段數(shù)碼管顯示當(dāng)前的時間。當(dāng)?shù)竭_(dá)所設(shè)定的鬧鈴時間后,單片機將調(diào)用相應(yīng)的程序,播放音樂,并且此時LED 8段數(shù)碼管所顯示的不再是時間而是一個代碼,只有用戶在將這個代碼從鍵盤上正確的輸入進去,才能將其音樂關(guān)閉,結(jié)束鬧鈴。用戶可以通過鍵盤設(shè)置鬧鈴的時間和校正當(dāng)前的時間。如下圖所示:圖3-1 主體電路圖 32 單片機系統(tǒng)圖3-2 AT89C51最小系統(tǒng)電路圖單片機采用AT89C51,使用P0口作為I/O口,則需外接上拉電阻。使用P0.0、P0.1、P0.2、P0.3分別與74LS48譯碼器的輸入端相連接;P0.4、P0.5、P0.6、P0.7分別與顯示電路的4個LED數(shù)碼管片選信號相連接;P1.0到P1.6連接外接鍵盤;P1.7(即B0)作為功放的輸出端與功放驅(qū)動電路相連接;P2.0到P2.2分別與時鐘芯片DS1302的/RET(“5”)、I/O(“6”)、 SCLK(“7”)三個引腳相連接;31腳(即/EA)接高電平,因此首先執(zhí)行片內(nèi)程序存儲器的程序;19腳(即X1)與18腳(即X2)連接外部振蕩電路;9腳(即RESET)連接復(fù)位電路。33鍵盤電路鍵盤電路采用4*3行列式鍵盤,用P1口線組成行、列結(jié)構(gòu),按鍵設(shè)置在行列的交點上。當(dāng)進行鍵盤掃描時,則將掃描信號送至P1.4、P1.5、P1.6,再從P1.0、P1.1、P1.2、P1.3讀取鍵盤狀態(tài),即可判斷哪個鍵盤被按下。P1.0、P1.1、P1.2、P1.3分別連接一個10K的上拉電阻到公共接點上,公共接點連接在VCC上,因此采用低電平掃描。送入P1.4、P1.5、P1.6的掃描信號中,只有一個為低電平(即0),其余為高電平。緊接著讀取P1.0、P1.1、P1.2、P1.3的狀態(tài),哪個為低電平(即0)則表示被按下,如果都是高電平,則從頭開始繼續(xù)掃描。按鍵S0到S11分別代表的意義是“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“鬧鐘”與“時間”。當(dāng)長時間按下“鬧鐘”鍵時,為開啟或關(guān)閉鬧鐘;當(dāng)短時間按下“鬧鐘”鍵時,為設(shè)置鬧鐘時間。當(dāng)按下“時間”鍵時,為設(shè)置時間。電路圖如下圖3-3所示:圖3-3 4*3鍵盤電路圖34功放電路本系統(tǒng)是利用程序產(chǎn)生頻率脈沖信號,送到P1.7(即B0)口,通過一個限流電阻連接到喇叭的驅(qū)動電路。P1.7口輸出的是一組脈沖信號,當(dāng)輸出為高電平時晶體管工作于飽和狀態(tài),當(dāng)輸出為低電平時晶體管工作于截止?fàn)顟B(tài),從而使喇叭播放出音樂。圖3-4 功放電路圖35顯示電路圖3-5 顯示電路圖數(shù)碼管在夜間看時間的時候就不需要有光源,非常方便,因此采用4個共陽極8段LED數(shù)碼管作為顯示系統(tǒng),片選信號分別連接在A4(P0.4)、A5(P0.5)、A6(P0.6)、A7(P0.7),LED 8段數(shù)碼管的a、b、c、d、e、f、g分別與74LS48譯碼器的輸出端相連接。LED數(shù)碼管的dp端接高電平。電路圖如上圖3-5所示。36時鐘電路圖3-6 DS1302時鐘電路圖選用DS1302作為時鐘芯片,X1與X2連接32.768kHz的晶體振蕩電路,DS1302與單片機AT89C51采用串行數(shù)據(jù)傳輸方式,/RET、I/O、 SCLK分別與單片機的P2.0(B1)、P2.1(B2)、P2.2(B3)相連接。Vcc2(即“1”)連接電源。電路圖如上圖3-6所示。第4章 程序設(shè)計本章主要講述軟件方面的實現(xiàn)。本系統(tǒng)程序緊緊圍繞所要實現(xiàn)的功能進行編寫,采用模塊化編程結(jié)構(gòu)。開始初始化鬧鐘與時間比較鍵盤掃描放音與顯示代碼關(guān)音輸入代碼比較鬧鐘或時間設(shè)置鍵是否按下顯示時間設(shè)置鬧鐘是否開啟4.1 主程序流程圖 NY N Y Y N Y N Y圖4-1主程序流程圖系統(tǒng)啟動后,進行初始化設(shè)置,鍵盤掃描,顯示當(dāng)前的時間。判斷鬧鐘或時鐘是否需要設(shè)置,如果需要則進行相應(yīng)的設(shè)置,如果不需要則跳轉(zhuǎn)到判斷鬧鐘是否開啟,如果沒有開啟則跳回鍵盤掃描,開啟則進行判斷鬧鐘與時間是否相等,相等則放音樂同時顯示代碼,進行輸入碼與顯示代碼比較是否相等,相等則關(guān)閉音樂,轉(zhuǎn)到鍵盤掃描,否則一直播放音樂直到正確輸入代碼。42 比較鬧鐘與時間程序43H,42H存放鬧鐘的時位;41H,40H存放鬧鐘的分位33H,32H存放時間的時位;31H,30H存放時間的分位 NNNNYYY(33H)=(43H)?(32H)=(42H)?(31H)=(41H)?(30H)=(40H)?開始RETY 圖4-2比較鬧鐘與時間程序MOV A,33HXRL A,43HJNZ TO-ENDMOV A,30HXRL A,40HJNZ TO-ENDSETB F0SETB P1.7TO-END:POP A RET判斷33H與43H存儲的內(nèi)容是否相等,如果不相等則停止該程序,相等說明時間與鬧鐘時位的高位相等;繼續(xù)判斷32H與42H分別存儲的時間與鬧鐘時位的低位是否相等,不相等則停止該程序,相等則繼續(xù)判斷31H與41H分別存儲的時間與鬧鐘分位的高位是否相等,與上面同理;當(dāng)判斷30H與40H存儲的內(nèi)容是否相等時,如果相等則說明鬧鐘時間到達(dá),音樂開啟,F(xiàn)0=1,此時按鍵可以使用,反之則停止該程序。43 鍵盤掃描程序系統(tǒng)啟動后,判斷有無按鍵按下,R2存儲是哪個按鍵按下,然后判斷R2的值。當(dāng)R2為11時,F(xiàn)0置位,進行時間調(diào)整,調(diào)整完畢則顯示,并從新開始鍵盤掃描。當(dāng)R2為10時,進行1秒鐘的延時,判斷是否長按鬧鐘鍵(S10),如果長按,則進行鬧鐘開啟與關(guān)閉設(shè)置,R1為FFH時鬧鐘開啟,R1為00H時鬧鐘關(guān)閉;如果沒有長按,則直接跳轉(zhuǎn)到進行F0置位,鬧鐘調(diào)整。調(diào)整完畢則顯示,并從新開始鍵盤掃描。當(dāng)R2為其他數(shù)值時,判斷F0是否為1,如果F0為1時,調(diào)用相應(yīng)鍵值程序,否則返回鍵盤掃描。F0的值判斷數(shù)字鍵“0”到“9”是否開啟,當(dāng)為1時開啟,反之關(guān)閉。在調(diào)整時間、鬧鐘、顯示代碼時F0為1。開始鍵盤掃描R1=0FFH?判斷R2F0置位,時間調(diào)整鍵值存入R2CPL R1F0置位,鬧鐘調(diào)整顯示F0=1?P1.5=0&R2=10是否調(diào)整完畢1秒延時相應(yīng)鍵值程序有無鍵按下是否調(diào)整完畢 N Y N R2為11 R2為其他 R2為10 Y N Y N Y N Y N Y圖4-3 鍵盤掃描流程圖44 對DS1302操作的程序初始化要求/RST為低電平,SCLK為低電平,/RST被設(shè)置為高就啟動了一個數(shù)據(jù)傳送的過程。SCLK的16個方波完成一次數(shù)據(jù)傳送,前8個方波用于輸入命令字節(jié),后8個方波用于數(shù)據(jù)的輸出(讀DS1302)或數(shù)據(jù)的輸入(寫DS1302)。在SCLK的上升沿,I/O線上數(shù)據(jù)被送入DS1302,在SCLK下降沿DS1302輸出數(shù)據(jù)在I/O線上。讀DS1302驅(qū)動程序圖,如下圖所示:結(jié)束YNY開始初始化/RST變高啟動一次數(shù)據(jù)傳送工作寫命令字節(jié)一位SCLK發(fā)脈沖/RST發(fā)低電平到8次嗎?SCLK發(fā)脈沖讀命令字節(jié)一位N到8次嗎?圖4-4讀DS1302驅(qū)動程序圖讀寫操作各用一個程序,讀DS1302如上圖所示,寫DS1302程序框圖與之相似,只需上圖第二個循環(huán)中“讀數(shù)據(jù)字節(jié)一位”改為“寫數(shù)據(jù)字節(jié)一位”即可。讀DS1302驅(qū)動程序:RDRTC:CLR /RET ;置控制引腳為低電平,禁止數(shù)據(jù)傳送 NOP CLR SCLK ;初始化串行時鐘線為低電平 NOP SETB /RET ;置控制引腳為高電平,允許數(shù)據(jù)傳送 NOP MOV A,#0BFH ;準(zhǔn)備“接收多字節(jié)數(shù)據(jù)”的命令碼 MOV R2,#8 ;1字節(jié)命令碼需要傳送8次RDRTC0:CLR SCLK ;置串行時鐘線為低電平 RRC A ;將最低位傳送給進位標(biāo)志C MOV P2.1,A ;再傳送至數(shù)據(jù)端口 NOP SETB SCLK ;置串行時鐘線為高電平,其上升沿發(fā)送1位數(shù)據(jù) DJNZ R2,RDRTC0 ;直到發(fā)送完1字節(jié)的命令碼 MOV R0,#2EHRDRTC1:MOV R2,#8 ;每字節(jié)數(shù)據(jù)需要接受8次RDRTC2:CLR SCLK ;置串行時鐘線為低電平,其下降沿接收1位數(shù)據(jù) NOP MOV C,P2.1 ;將數(shù)據(jù)端口的信息傳送給進位標(biāo)志C RRC A SETB SCLK ;置串行時鐘線為高電平 DJNZ R2,RDRTC2 ;直到接收到1個完整字節(jié)的數(shù)據(jù) MOV R0,A INC R0 DJNZ R3,RDRTC1 ;直到接收完全部數(shù)據(jù) CLR /RET RET45 播放音樂程序YYN時間與鬧鐘相等調(diào)用曲目,裝入相應(yīng)音符節(jié)拍單元是否為0返回主程序開始查找音頻裝入T0,節(jié)拍裝入節(jié)拍單元T0計數(shù),從P1.7輸出脈沖信號圖4-5 播放音樂程序當(dāng)時間與所設(shè)的鬧鐘時間相等時,調(diào)用曲目,查找相應(yīng)的音符,音符的高四位(即音頻)裝入T0,音符的低四位(即節(jié)拍)裝入節(jié)拍單元。T0開始計數(shù),從P1.7輸出脈沖信號,播放音樂。音樂播放結(jié)束,返回主程序。第5章 系統(tǒng)仿真由于我所設(shè)計的智能音樂鬧鐘系統(tǒng)包括軟件和硬件兩部份, 測試時先對軟件進行測試,然后再將已測試的軟件結(jié)合硬件在一起進行測試,完成整個系統(tǒng)的測試工作。5.1軟件調(diào)試在軟件調(diào)試中,我采用偉福仿真軟件進行程序調(diào)試。首先分別調(diào)試各個功能程序,再對整個程序進行調(diào)試,以便修改錯誤碼。具體的調(diào)試方法如下:首先在偉福軟件模擬器中選擇V5/L仿真器,選擇AT89C51作為CPU,將晶振頻率設(shè)置為12MHZ,然后新建一個.ASM文件,將各個功能程序錄入,先檢查程序有無明顯錯誤,保存過后編譯程序,當(dāng)有錯誤時就根據(jù)提示加以修改,當(dāng)各個功能程序編譯完成后,再對整個程序全速執(zhí)行,查看程序有哪些地方出現(xiàn)錯誤,對應(yīng)錯誤提示逐步調(diào)整程序,糾正錯誤直到程序正確無誤,調(diào)試結(jié)束后有圖5.1的軟件調(diào)試界面如下: 圖5-1 軟件調(diào)試界面5.2 硬件仿真硬件仿真使用的是ProteusPRO6.7SP3,Proteus 是目前最好的模擬單片機外圍器件的工具,它可以仿真 51 系列、AVR,PIC 等常用的 MCU 及其外圍電路。利用Proteus中的器件庫完成硬件電路的連接,如下圖所示:圖5-2硬件電路圖第6章 總結(jié)本文介紹了一種智能音樂鬧鐘設(shè)計。本設(shè)計是由中央控制器、時鐘系統(tǒng)、存儲器、顯示器及鍵盤部分組成??刂破鞑捎脝纹瑱CAT89C51,時鐘系統(tǒng)使用時鐘芯片DS1302,用LED 8段數(shù)碼管作為顯示器,用單片機內(nèi)置ROM作為存儲器件。單片機通過時鐘芯片DS1302獲取時間數(shù)據(jù),對數(shù)據(jù)處理后,單片機再把時間數(shù)據(jù)送LED數(shù)碼管顯示器顯示,還可以顯示代碼;當(dāng)?shù)竭_(dá)所設(shè)定的鬧鈴時間后,單片機將調(diào)用相應(yīng)的程序,播放音樂,并且此時LED 8段數(shù)碼管所顯示的不再是時間而是一個代碼,只有用戶在將這個代碼從鍵盤上正確的輸入進去,才能將其音樂關(guān)閉,結(jié)束鬧鈴。用戶可以通過鍵盤設(shè)置鬧鈴的時間和校正當(dāng)前的時間。軟件部分采用匯編語言,分別對鍵盤、顯示、時鐘等進行相應(yīng)的程序編輯,將編好的程序在偉福仿真軟件中進行仿真,看程序是不是能夠按照所想的運行方向正常的運行并對其修改。在整個設(shè)計過程中也存在許多問題,程序各個之間的連接不如設(shè)想的流暢,但基本上實現(xiàn)了時鐘、鬧鐘與音樂的功能。參考文獻1、潘永雄.新編單片機原理與應(yīng)用. 西安電子科技大學(xué)出版社,2002年2、張友德,趙志英,涂時亮.單片機微型機原理應(yīng)用與實驗. 復(fù)旦大學(xué)出版社,2000年3、周航慈、朱兆優(yōu)、李躍忠.智能儀器原理與設(shè)計. 北京航空航天大學(xué)出版社,2005;4、江秀漢.可編程序控制器原理及應(yīng)用(第二版).西安電子科技大學(xué)出版社,2003;5、沈慶陽、郭庭吉.單片機實踐與應(yīng)用.清華大學(xué)出版社,2002;6、竇振中.單片機外圍器件實用手冊存儲器分冊.北京航空航天大學(xué)出版社,1998; 7、關(guān)德新,馮文全.單片機外圍器件實用手冊電源器件分冊.北京航空航天大學(xué)出版社,1998;8、何立民.單片機應(yīng)用技術(shù)選編(1).北京航空航天大學(xué)出版社,1993。9、李建忠.單片機原理及運用. 西安電子科技大學(xué)出版社, 2001年 10、吳金戎、沈慶陽.8051單片機實踐與應(yīng)用.清華大學(xué)出版社 ,2001年 11、趙曉安.MCS-51單片機原理及應(yīng)用.天津大學(xué)出版社,2001年 12、馮建華、趙亮.單片機應(yīng)用系統(tǒng)設(shè)計與產(chǎn)品開發(fā). 人民郵電出版社, 2004年 13、何立民.MCS51系列單片機應(yīng)用系統(tǒng)設(shè)計.北京航空航天大學(xué)出版社, 1999年 14、李榮正、陳學(xué)軍.PIC單片機實驗教程. 北京航空航天大學(xué)出版社,2006年15、張義和、陳敵北.例說8051.人民郵電出版社,2006年致謝這次畢業(yè)設(shè)計的時間不是很長,畢業(yè)設(shè)計是自己獨立完成的,設(shè)計開始時對任務(wù)進行了按時分工,每天都要按時完成任務(wù),這樣才能為順利完成好畢業(yè)設(shè)計提供時間基準(zhǔn)。由于畢業(yè)設(shè)計是我獨立進行的設(shè)計,剛開始時,心里十分茫然,不知從何入手,通過指導(dǎo)老師的高度的責(zé)任感與敬業(yè)精神深深地感染了我,同時也深深的激勵著我奮進。通過畢業(yè)設(shè)計,使我對所學(xué)的理論知識有了更深更多的理解,操作能力也有了可喜的進步。我認(rèn)為理論知識無論學(xué)得再好再透,畢竟是抽象的,在沒用于實踐前是毫無意義的,而四年的學(xué)習(xí)生活中我所缺少的就是理論和實踐的緊密結(jié)合。畢業(yè)設(shè)計則恰恰像一場及時雨,讓我們通過親身模擬學(xué)會如何把理論知識應(yīng)用于實踐。給了我充分的鍛煉機會。獲益非淺!謝謝老師!附錄*主程序*/RST BIT P2.0I/O BIT P2.1SCLK BIT P2.2ORG 0026HLJMP STARTORG 000BHLJMP NEXTORG 0060HSTART:MOV TMOD,#01H MOV TH0,#0FCH MOV TL0,#48H MOV IE,#82H SETB TR0 ;啟動TR0LOOP:LCALL TRAID ;調(diào)用時間讀取子程序 LCALL DISPLAY1 ;時間顯示調(diào)用ONE:CJNE R2,#10,T1 LCALL DISPLAY2 ;鬧鐘時間顯示子程序 LCALL HOLD ;等待鍵按下 MOV A,R5 ;R5在顯示子程序中自減 JNZ ONE MOV R7,#04T1:CJNE R2,#11,TWO LCALL DISPLAY1 ;時間顯示子程序 LCALL HOLD DJNZ R7,T1 LCALL WRTC ;時間寫入時鐘芯片程序TWO: ;鬧鐘時間比較程序 CJNE RO,#0FFH,T4 ;判斷鬧鐘開/關(guān) LCALL TO-2 JBC F0,T2 AJMP LOOPT2:SETB P1.7 ;鬧鐘響起 MOV R7,#04 LCALL DISPLAY2 ;代碼顯示子程序 MOV R0,#3EH ;取代碼程序GO:ACALL HOLDTHREE:MOV A,R2 ;B存放的是鍵碼 ACALL DISPLAY2 CJNE A,R0,T3 AJMP T4T3:ACALL HOLD ;等待鍵按下 AJMP THREE T4:DJNZ R7,GO CLR P1.7LJMP LOOP MEXT:CLR TF0 MOV TH0,#0FCH MOV TL0,#18H MOV IE,#82H SETB TR0 RETIEND*比較程序*TO-2:PUSH A MOV A,33H XRL A,43H JNZ TO-END MOV A,32H XRL A,42H JNZ TO-END MOV A,31H XRL A,41H JNZ TO-END MOV A,30H XRL A,40H JNZ TO-END SETB F0 SETB P1.7TO-END:POP A RET*存時間與鬧鐘*WORD11:MOV R5,#00H INC R5 CJNE R5,#05H,RET11 MOV R5,#00HRET11:LJMP JZKEYWORD10:MOV R5,#00H INC R5 CJNE R5,#05H,RET10 MOV R5,#00HRET10:LJMP JZKEYWORD9:CJNE R5,#01H,RET9 ACALL GEWEIRET9:RETWORD8:CJNE R5,#01H,RET8 ACALL GEWEIRET8:RETWORD7:CJNE R5,#01H,RET7 ACALL GEWEIRET7:RETWORD6:CJNE R5,#01H,RET6 ACALL GEWEIRET6:RETWORD5:CJNE R5,#01H,RR5 ACALL GEWEI LJMP RET5RR5:CJNE R5,#02H,RET5 ACALL SHIWEIRET5:RETWORD4:CJNE R5,#01H,RR4 ACALL GEWEI LJMP RET4RR4:CJNE R5,#02H,RRR4 ACALL SHIWEI LJMP RET4RRR4:CJNE R5,#03H,RET4 ACALL BAIWEIRET4:RETWORD3:CJNE R5,#01H,RR3 ACALL GEWEI LJMP RET3RR3:CJNE R5,#02H,RRR3 ACALL SHIWEI LJMP RET3RRR3:CJNE R5,#03H,RET3 ACALL BAIWEIRET3:RETWORD2:CJNE R5,#01H,RR2 ACALL GEWEI LJMP

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論