語音播報記事器論文_第1頁
語音播報記事器論文_第2頁
語音播報記事器論文_第3頁
語音播報記事器論文_第4頁
語音播報記事器論文_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、專業(yè):電氣工程及其自動化 專業(yè):電氣工程及其自動化 學號:9210090214 Hebei Normal University of Science & Technology本科畢業(yè)設計(自然科學)題 目: 語音播報記事器 院(系、部): 機電科學與工程系 學 生 姓 名: 指 導 教 師: 職 稱 2013 年 5 月 28日河北科技師范學院教務處制資料目錄1.學術聲明1-1 頁2.河北科技師范學院本科畢業(yè)論文(設計)1-31 頁3.河北科技師范學院本科畢業(yè)論文(設計)任務書1-2 頁4.河北科技師范學院本科畢業(yè)論文(設計)開題報告1-3 頁5.河北科技師范學院本科畢業(yè)論文(設計)中期檢查表

2、1 頁6.河北科技師范學院本科畢業(yè)論文(設計)答辯記錄表1 頁7.河北科技師范學院本科畢業(yè)論文(設計)成績評定匯總表1 頁8河北科技師范學院本科畢業(yè)論文(設計)工作總結1 頁9其他反映研究成果的資料(如公開發(fā)表的論文復印件、效益證明等) 頁河北科技師范學院本科畢業(yè)設計語音播報記事器專 業(yè) 名 稱: 學 生 姓 名:學 生 學 號: 指 導 教 師: 2013 年 5 月 18 日河北科技師范學院教務處制摘 要本文主要介紹了由實時時鐘RTC、提醒時間設置、語音錄放控制、當前時間調整和LED譯碼及驅動模塊、蜂鳴器控制、4位時鐘型LED顯示組成的語音播報記事器。主機是以Intel公司的8051單片機

3、為核心芯片,外接主要芯片包括語音芯片ISD1420和串行時鐘芯片DS1302。能夠實現顯示當前時間、錄制和播放語音信息、調整當前時間、設置鬧鐘時間并且在到鬧鐘時間后,能夠以語音的形式進行提醒并以蜂鳴提示。最后詳細地介紹了系統設計過程中各種模塊的硬件設計和軟件設計的實現過程,最終成功實現了語音播報、鬧鐘提醒蜂鳴、顯示時間的基本功能。該設計的主要特點是:設計以語音播報的形式進行提醒,改變了以人們以前常用的無聲的書本記錄,這樣可以及時提醒每日的行程,避免了遲到和耽誤行程。并且這樣的設計還能夠顯示和修改當前的年份、月份、星期,完全可以作為一般的鐘表來使用,還有遇到閏年自動修正的功能,這樣不僅便捷而且實

4、用功能得到加強。關鍵詞:單片機;語音播報;時間調整AbstractThis article mainly introduced by the real-time clock RTC reminder time settings, voice recording control, time to adjust and LED decoder and driver module, buzzer control, four clock LED display consisting of voice broadcast Notepad. The host is based on Intels 8051

5、 core chip, the external chip ISD1420 voice chip and the serial clock chip DS1302. Aiming to achieve the current time, the recording and playback of voice messages, adjusting the current time, seting the alarm time and to the alarm time, the form of a voice reminded to Beeper. Finally, detailed desc

6、ription of the various modules in the system design process, hardware design and software design, implementation process, and ultimately successful voice broadcast, the alarm beep, display the basic functions of time.The design of the main features are: the design in the form of voice broadcast remi

7、nders, change to people previously silent books, records, a timely reminder of the trip on a daily basis to avoid late and delay the trip. And this design is also able to display and modify the current year, month, week, can as a general watch to use, as well as automatic leap year correction functi

8、on is encountered, so that not only convenient and practical function has been strengthened.Keywords: MCU;Voice broadcast;Time to adjust目 錄 TOC o 1-3 h z u HYPERLINK l _Toc290283810 摘 要 HYPERLINK l _Toc290283811 Abstract HYPERLINK l _Toc290283812 1 緒論1 HYPERLINK l _Toc290283813 1.1 論文研究背景與意義 PAGEREF

9、 _Toc290283813 h 1 HYPERLINK l _Toc290283814 1.2 設計方案的提出1 HYPERLINK l _Toc290283815 1.2.1 設計要求1 HYPERLINK l _Toc290283816 1.2.2 設計思路2 HYPERLINK l _Toc290283817 1.3 系統設計2 HYPERLINK l _Toc290283818 1.3.1 系統設計框圖2 HYPERLINK l _Toc290283820 2 系統方案論證3 HYPERLINK l _Toc290283816 2.1 ISD14203 HYPERLINK l _To

10、c290283816 2.2 DS13024 HYPERLINK l _Toc290283816 2.3 LED顯示電路模塊4 HYPERLINK l _Toc290283816 2.4 鍵盤設計5 HYPERLINK l _Toc290283816 2.5 蜂鳴器設計6 HYPERLINK l _Toc290283820 3 軟件設計6 HYPERLINK l _Toc290283816 3.1 軟件設計方案6 HYPERLINK l _Toc290283816 3.2 主程序設計6 HYPERLINK l _Toc290283823 結論8 HYPERLINK l _Toc29028382

11、4 致謝9 HYPERLINK l _Toc290283825 附錄101 緒論 1.1 論文研究背景與意義隨著時代的發(fā)展與進步,人們的生活節(jié)奏越來越快,競爭也越來越激烈。因此,合理安排時間,遵守時間,準時上課、上班、赴約、到會、洽談等是每個人的迫切需要。對于現在的人來說,時間越來越重要,可以這樣說吧,寸金難買寸光陰。但是,往往稍一疏忽又經常無人提醒,造成遲到或耽誤行程,甚至產生嚴重的后果和經濟損失。大部分的時候,我們都是通過看手表或者手機知道時間的,這是一個很經典的方法,但是現在有更時尚便捷的方法,比如有一臺智能語音提示器,將各種約定時間記錄下來,而且自動讓我們知道我們想要知道的時間,按時進

12、行語音提醒,就可以避免遲到、缺席事件的發(fā)生,能在生活中抽出時間來,同時也給我們的工作和學習帶來極大的方便。它不僅體積小,便于攜帶而且實用性更佳1。隨著現代化技術的發(fā)展,有關專家分析指出,我國電子商務的基礎設施將日臻完善,三網合一潮流勢不可擋,高速寬帶互聯網將扮演越來越重要的角色,移動通訊將成為進行電子商務的主要媒介。而今,我們已經進入了數字時代,數字設備的使用將會越來越受歡迎。在這種瞬息萬變的新形勢下,全球的信息化使人們足不出戶便可以獲取全方位的知識和信息,與此同時人們的生活節(jié)奏也隨之加快,競爭變得日趨激烈。因此,能夠合理的安排和利用時間在日常的學習和工作中就顯得尤為重要了。但是在充滿壓力的生

13、活中,往往很容易因一時的疏忽就耽誤已安排好的事情造成遲到或其他延遲事件,甚至產生了嚴重的后果和經濟損失。此時,若有一臺智能語音記事器,將各種約定時間記錄下來,按時進行語音提醒,就可以避免遲到、缺席事件的發(fā)生,從而給我們的工作和學習帶來極大的方便2。本設計的目的在于通過本次設計能將學到的單片機理論知識應用于時間生產中,增強自己的社會實踐能力,為將來在社會上更好的立足做充分的準備,同時在實踐中學習更多的理論知識,繼續(xù)深造。1.2 設計方案的提出1.2.1 設計要求以MSC-51系列單片機為核心器件組成一個語音提示系統。系統具有標準的日歷/時鐘,即年、月、日、星期、時、分、秒,遇閏年自動修正的功能。

14、系統顯示器由4位數字型數碼管組成。顯示時間值和日期,常態(tài)下顯示時間,利用一個按鍵控制顯示日期。能夠隨時對當前時間進行調整。能夠隨時輸入定時播報(鬧鐘)時間。定時播報(鬧鐘)時間到,發(fā)出語音提醒信號和蜂鳴器提示信號。 1.2.2 設計思路語音處理由ISD1420.74LS377與單片機相連實現,通過P0口與單片機連接3。系統的標準時間采用日歷/時鐘芯片DS1320實現,通過P2口與單片機連接4。時間顯示使用4位LED數碼管,接入P1口。LED數碼管的段碼輸入,由并行端口P1低四位產生。LED數碼管的位碼輸入,由并行端口P1高四位產生。同時本電路的LED顯示還要通過74LS48芯片與單片機連接驅動

15、。時間調整與定時時間的輸入由鍵盤電路控制。由5個按鍵控制,通過P3口與單片機連接。蜂鳴器由HA、三極管和上拉電阻組成的蜂鳴電路與單片機連接實現。1.3 系統設計1.3.1 系統設計框圖實時時鐘RTC實時時鐘RTC提醒時間設置當前時間調整語音錄放控制LED譯碼驅動模塊4位時鐘型LED顯示實時時鐘RTC蜂鳴器控制揚聲器送話器單片機圖1 系統設計框圖本設計的語音播報系統采用8051單片機作為控制核心器件,具有可下載在線編程等功能容易操作,使用起來十分方便。 由B1、C8、C9組成系統工作時鐘,由S1、R7、R8、C10組成系統復位電路。 系統語音處理模塊由ISD1420、74LS377、HA1、MI

16、C1、R1-R6、R10和C1-C6、S2、R14、VD1、VD2組成模塊,實現語音錄入和語音播報功能。通過鎖存器74LS377與單片機的P0口連接。 系統的時間模塊由DS1302、B2、C11、C12和BAT1組成,產生系統的標準時間。DS1302內部具有事時時鐘/日歷和31B的靜態(tài)RAM,給系統提供秒、分、時、日、月和年等信息,對小與31他的月末的日期進行調整,還包括閏年的校正功能。時鐘的運行可選擇24小時或帶AM和PM的12小時格式。DS1302是一個串行接口芯片,既RST(復位線)、I/O(數據線)及SCLK(串行時鐘線)通過P2口P2.0、P2.1、P2.2與單片機連接5。 采用4位

17、一體時鐘型LED顯示器,用與顯示系統時間和一些提示信息。由74LS48、ULN2003、R15和DISP1組成時間顯示模塊,通過P1口與單片機連接6。 由5個獨立式按鍵REC、SET、ALM、+1、RET,上拉電阻R13和中斷擴展電路74LS08組成按鍵輸入控制電路,與單片機的P3口的相應引腳連接,實現該系統的提示語音錄入、定時時間設置和時間調整功能。 由蜂鳴器HA2、三極管VT1、R9、組成蜂鳴器控制電路,完成鬧鐘功能,通過編程可以實現時間到時發(fā)出蜂鳴的提示音7。系統電源由電源變壓器T1(220V/9V)、橋式整流模塊2W06、穩(wěn)壓模塊7805以及C13-C16組成,提供系統所需的+5V電源

18、。2 系統方案論證2.1 ISD1420為實現語音播報的錄入和播放功能,我們在此接入了ISD1420語音芯片,并采用鎖存器74LS377對其控制鎖存達到良好的語音信息的錄制與播報。語音芯片ISD1420為單片語音記錄、回放一體化芯片,記錄時長為20s;可被劃分為160小段,每段125ms。當REC腳為低電平時,進行錄音,PLAYE或PLAYL為低時進行放音,ISD1420可進行連續(xù)錄音,也可進行分段錄音。語音芯片ISD1420的接入可以使語音播報應用系統工作時實現能夠錄入語音信息,能夠對錄入的語音信息進行播放兩項基本功能。在單片機與ISD1420芯片中間連接一個鎖存器,就解決了單片機與ISD1

19、420芯片在工作時存在工作時序上的不一致的問題8。在本設計中是用74LS377來做鎖存器的。它的CLK端的信號由P2.6口來控制的。當P2.6端口產生上升沿脈沖時,74LS377將P0口送過來的地址鎖存到74LS377的Q端,并等待語音芯片DS1420將該地址取走。其后芯片ISD1420便根據單片機傳送給它的地址進行語音信息的錄制與播報9。74LS377是一種8D觸發(fā)器,它的/E端是控制端、CLK端是時鐘端,當它的/E端為低電平時只要在CLK端產生一個正跳變,D1D7將被鎖存到QOQ7端輸出,在其他情況下Q0Q7端的輸出保持不變10。模擬語音信號從MIC和MICREF兩個端口輸入,經放大器放大

20、后又從ANAOUT端輸出,然后通過外接耦合電容輸入到ANAIN端,該信號再經適當放大后就可被時鐘信號采樣存儲到EPROM中。2.2 DS1302DS1302是一種高性能、低功耗、帶RAM的實時時鐘芯片,它可以對年、月、日、星期、時、分、秒進行計時,且具有閏年補償功能。表1 DS1302寄存器地址及命令字時鐘/日歷讀操作寫操作RAM讀操作寫操作秒81H80H第1個字節(jié)C1HC0H分 83H82H第2個字節(jié)C3HC2H小時85H84H日 87H86H月 89H88H星期 8BH8AH年 8DH8CH第30個字節(jié)FDHFCH控制寄存器 8FH8EH第31個字節(jié)FFHFEH2.3 LED顯示電路模塊L

21、ED顯示器的驅動是一個非常重要的問題,由系統硬件設計框圖可知,顯示電路由LED顯示器、段驅動電路和位驅動電路組成。由于單片機的并行口不能直接驅動LED顯示器,必須采用專用的驅動電路芯片,使之產生足夠大的電流,顯示器才能夠正常工作。如果驅動電路能力差,即負載能力不夠時,顯示器亮度就低,而且驅動電路長期在超負荷下運行容易損壞。因此,在實際使用中必須接入LED驅動電路。本設計采用的LED的輸出接口是單片機的P1口,就是用P1口的低四位作LED的段碼輸出信號,P1口的高四位作LED位碼的輸出控制信號的13。電阻為可以保證LED可靠導通與截止的上拉電阻。74LS48的作用是接收來自單片機的BCD碼型的輸

22、入信號,經過鎖存、譯碼和放大后,輸出7段字型碼到LED顯示器,完成對BCD碼到7段字型碼的鎖存、譯碼和驅動的功能。LED驅動電路的工作原理是:當P1口的低四位輸出段碼信號的BCD碼后,通過74LS48芯片的鎖存、譯碼和驅動作用,在其輸出端輸出具有一定驅動能力的七段字型碼,由于4LED的段碼輸入引腳是并聯在一起的,所以每一位LED的段碼輸入引腳都能獲得這個段碼信號。若要控制在每一時刻只有一位LED被點亮,必須靠位碼信號控制。P1口的高4位輸出位碼信號,經ULN2003反向后接到LED的位碼控制端,因此P1口的位碼信號在每一時刻只有一位是“1”,其它位全為“0”,然后按時間順序改變輸出“1”的位置

23、,控制在每一時刻只有一位LED被點亮,達到動態(tài)顯示的目的。LED的位驅動較常用的芯片是ULN2003,它具有7個達林頓電路的集成芯片。此種芯片集電極可以收集最大達500mA的電流,耐壓為30V,能驅動常規(guī)的LED顯示器。ULN2003的作用是接收來自單片機的位碼輸入信號,經過反相放大后輸出,送到LED顯示器位碼引腳,完成對位碼信號的反向和驅動的功能。2.4鍵盤設計將“1”鍵、“RET”鍵直接與單片機的P3.0與P3.1口連接;“SET”與“ALM”通過74LS08相與后連接到INT1口,“REC”與T0口通過74LS08相與后連接到INT0口,其中T0、T1口作為基本輸入輸出口使用。 “PLA

24、Y” 鍵與“REC”鍵的功能:這兩鍵是用來控制語音信息的錄音和放音的,在與“1”、“RET”鍵配合使用時可以對不同地址段進行的錄音放音選擇的。 “RET”鍵的功能:確認,即對“1”鍵調整位進行確認,該鍵按下時,說明被調整位的值已經修改完,轉去調整下一位。 該引腳與P3.1引腳連接,使用在I/O接口方式,同樣為了保證P3.1使用在輸入方式在初始化程序中對它進行編程:SETB P3.1;即設置P3.1引腳作為輸入口使用鍵盤的硬件電路設計只能保證六個按鍵信號的可靠進入,要想完成鍵盤的輸入功能,還要靠軟件編程來具體實現。“ALM”鍵與“SET”鍵的功能:“ALM”鍵設置時間而“SET”鍵則是調整當前時

25、間的,被調整值的修改和修改確認只要與“1”、“RET”鍵的配合使用就能完成。 按下“ALM”鍵時在單片機的INT1口產生一個中斷, T1口為低電平,單片機就去執(zhí)行設置鬧鐘時間的操作。按下“SET”鍵時,INT1口也產生一個中斷, T1口為高電平,單片機就是執(zhí)行對當前時間調整的操作。 INT1為服務程序的標號地址。 “1”鍵的功能:分別對時間值的小時十位、小時個位、分的十位、分的個位進行1調整,即該鍵每按下一次,對應的時間調整位1。該引腳與P3.0引腳連接,工作在I/O接口方式,為了保證P3.0工作在輸入方式,在初始化程序中對它進行編程:SETB P3.0;P3.0引腳作為輸入口使用。 “REC

26、”鍵是進行語音信息的錄制。如果在單片機的INT0口產生一個中斷,單片機先判斷T0口是否是低電平,如果是,表明 “PLAY”鍵被按下了,就執(zhí)行放音操作,如果不是,則表明按下的是“REC”鍵,程序轉到錄音操作。2.5 蜂鳴器設計本設計選擇一只蜂鳴器來實現當預先規(guī)定的提醒時間到時有聲音提醒信號產生。壓電式蜂鳴器(HA)工作時約需要10mA的驅動電流,并設計一個相應的驅動及控制電路。 蜂鳴器(HA)作為三極管VT1的集電極負載,VT1用來控制蜂鳴器的發(fā)聲與否。在單片機P2.7口通過限流電阻R9接入蜂鳴器(HA)作為三極管VT1的發(fā)射極負載,當P2.70時,VT1導通時,蜂鳴器中有電流通過,發(fā)出蜂鳴音。

27、反之蜂鳴器不發(fā)聲。3 軟件設計3.1 軟件設計方案僅有這些硬件模塊還達不到我們預期設計的目的,因此,我們要加入編程以實現電路設計的簡潔優(yōu)化,這其中包括系統對各組語音錄放不同存放地址的設置及實現,對具體時間的規(guī)定和調整(如每星期的天數設定、每天的小時固定數字顯示設定等),對記事器的定時中斷等,從而達到預期的數據采集及傳送的效果。根據設計要求,首選要確定軟件設計方案,思考軟件設計中應包括哪些功能,其次是規(guī)劃為了完成這些功能需要分成多少個功能模塊,以及每一個程序模塊的具體任務是什么14。由于對每個模塊進行劃分時有很大的靈活性,但也不能隨意劃分。劃分模塊時應遵循下述原則:(1)每個模塊應該具有獨立的功

28、效,能產生一個明顯的結果。(2)模塊之間的控制參數應盡量簡單,數據參數應盡量少。控制參數是模塊進入和退出的條件及方式,數據參數是指模塊間的信息交換方式、交換量的多少及交換的頻繁程度。(3)長度適中。模塊語句的長度通常在20100條比較適合。模塊太長的時侯,會給分析和調試造成困難;模塊太短則引起信息交換頻繁,也不適合。(4)根據模塊的劃分原則,將該程序劃分成五個模塊。3.2 主程序設計 主程序的內容一般包括:主程序的起始地址,中斷服務程序的起始地址,有關內存單元及相關部件的初始化和一些子程序調用等等。(1)程序的起始地址MCS51系列單片機復位后,(PC)0000H,而0003H002BH分別為

29、各中斷源的入口地址,所以,編程時應在0000H處寫一跳轉指令15。當CPU接收到中斷請求信號予以響應后,CPU把當前的PC內容壓入棧中進行保護,然后轉入相應的中斷服務程序入口處執(zhí)行。一般應在相應的中斷服務程序入口處寫一條跳轉指令,并以跳轉指令的目標地址作為中斷服務程序的起始地址進行編程。以/INT0為例,中斷矢量地址為0003H,中斷服務程序從INTA標號地址開始。(2)主程序的初始化內容對主程序初始化,其實是對將要用到的MCS51系列單片機內部部件或擴展芯片進行初始化,使其工作狀態(tài)得到一個初始設定。如應對特殊功能寄存器IE、IP進行初始化,因為8051復位后,IE、IP中的內容均為00H,所

30、以應對其進行初始化編程,以開放CPU中斷,允許某些其他中斷源中斷和設置中斷優(yōu)先級等。對于本設計,用T0、T1、INT0、INT1四個中斷,其中:T0中斷: T0定時中斷,達到LED動態(tài)掃描的目的。T1中斷: T1定時中斷,達到每分鐘從DS1302中讀取當前時間的目的。INT0中斷:接受外部中斷信息,達到語音信息的錄制與播報的目的。INT1中斷:接受外部中斷信息,達到對當前時間的調整和鬧鐘時間的設置的目的。(3)代碼轉換程序由于日常我們都是識別十進制數(BCD碼),而計算機它只識別二進制數,因此,在程序設計中經常要涉及代碼的轉換。即將當前時間的二進制數轉換成BCD碼,并送到顯示緩沖區(qū)最終顯示出來

31、。 主程序主程序錄放音當前時間定時時間顯示LED顯示定時一分鐘中斷鍵盤控制圖2 軟件設計框圖(4)在主程序中進行各項初始化設置后,首先CPU會先查詢當前有沒有對鬧鐘設初值,如果有,就把此鬧鐘時間與當前時間相比較,看看是否到了鬧鐘所定的時間,如果到了,就進行語音提示,如果沒有到,CPU就對P3.0口進行掃描,判斷“1”鍵有沒有按下,如果按下, 4LED就會顯示當前的年份、月份、日期、星期、小時、分鐘,滿足人們的查詢要求。結論語音提示在生活中的應用方便了人們的生活,保障了人們的生命和財產價值,人們是相當歡迎的,但是發(fā)展還有不夠快,主要原因就是在智能化,微型化方向上的研究跟不上,這也與很多人的不重視

32、有關。在本論文中,本人按照“提出問題、分析問題、解決問題、總結問題”的寫作思路,詳細的闡述了語音播報系統的硬件、軟件設計的全過程,并且從這些過程中分析提煉出了相關的技術難點以及相對應的解決思路,在完成這一切的同時,我從兩個角度方面完成了所做的設計:其一,如何實現語音播報;其二,在完成既定功能的同時,如何開發(fā)出其它補充功能。在這過程中,我提煉出了具有普遍意義的類似開發(fā)過程的若干條準則。本論文的創(chuàng)新點就是將以前的無聲記錄提醒或蜂鳴提醒換成了形象的語音提醒,使提醒更加有效、及時、準確。本論文完成了軟硬件主要功能模塊的設計,為進一步設計開發(fā)及功能擴展打下了良好的基礎。由于時間關系和自身的學術水平有限,

33、在設計中存在著一些缺陷和不足,還有待于在今后的進一步設計過程中不斷完善。畢業(yè)設計是我大學四年來的總結,更是我走向社會一種新的生活的開始。雖然在本次的設計也暴露了我不少的缺點和不足,但是通過本次的設計,我提高了獨立思考,獨立解決問題的能力,同時也增強了自學能力。我認為本次設計不僅僅體現在設計的結果上,更重要的是設計過程中的那種精神,那種對新知識渴求的精神以及人與人之間的協作關系。參考文獻 1 Rengang Chen;Strydom,J.T;Van Wyk,J.D. Design of plonar integrated passive module for zero-voltage-switc

34、hed asymmetrical half-bridge PWM converterJ. IEEE Transactions on Industry Applications the Industry of Electrical and Electronic Engineers.2002,(6):1112-1116.2 丁元杰.單片微機原理及應用M.第2版.機械工業(yè)出版社,2004:42893 周荷琴 吳秀青.微型計算機原理與接口技術M.第3版.中國科技大學出版社,2004:126155、263-3004 閻石.數字電子技術基礎M.第4版.高等教育出版社,1998:150-1595 孫和平.單

35、片微機原理與接口技術M.冶金工業(yè)出版社,2002 6 沈紅衛(wèi).單片機應用系統設計實例與分析M.北京航空大學出版社,20037 吳金戎.8051單片機實踐與應用M.清華大學出版社,2002 8 李華.MCS51系列單片機實用接口技術M.北京航空航天大學出版社,19999 李朝表.單片機原理及接口技術M.北京航空航天大學出版社,200210 胡漢才.單片機原理及系統設計M.清華大學出版社,200211 公茂法.單片機人機接口實例集A.北京航空航天大學出版社,200212 余錫存.單片機接口及接口技術M.西安電子科技大學出版社,200013 馬中梅.單片機的C語言程序設計M.北京航空航天大學出版社,

36、199914 肖紅兵.跟我學用單片機M.北京航空航天大學出版社,200215 ZHANGShuyun,SUNJiangbei,HUOZhiming. The serial port communication of the computer and single chipJ. Chinese Science and Technology Information,2005 (10): 130-131.致謝本文的工作能得以順利的完成完全離不開大家對我的關心和幫助,在此,謹向他們表示我最誠摯的感謝。首先由衷感謝我的指導老師劉金華老師,本文是在他的指導下完成的,導師嚴謹的治學作風和精益求精的治學態(tài)度給

37、我留下了深刻的印象。當我遇到問題的時候,他耐心的向我講解,并且他工作認真,督促我們完成畢業(yè)設計。在此謹向我的指導老師致以深深的敬意和感謝!本人在四年的本科生學習期間,始終得到了機電科學與工程系所有的老師無微不至的關懷,是他們給了我許多幫助和指導使我能夠在四年的時間里能夠學有所成,同時本人的一些同學也在本人的學習過程中提出一些有益的建議和無私的幫助,在此也一并感謝!感謝支持過和關心過我的人們。畢業(yè)設計是一個艱苦的過程,同時也是一個學習的過程,通過它我涉足了許多未知領域,極大地拓寬了自己的知識面,為以后踏上工作崗位更好地學習和工作打下良好的基礎。相信將來有一天,我將會以優(yōu)秀的工作成績來回報老師,回

38、報學校,回報社會。附錄系統源程序: SCL EQU P2.0 DATA EQU P2.1 RST EQU P2.2 ORG 0000H LJMP MAIN ;轉主程序 ORG 0003H ;外部中斷0中斷服務程序入口地址 LJMP INTA ;轉外部中斷0中斷服務地址 ORG 000BH ;T0定時中斷服務程序 LJMP T0SEV ORG 0013H ;外部中斷1中斷服務程序入口地址 LJMP INTB ;轉外部中斷1中斷服務程序 ORG 001BH ;T1定時中斷服務程序入口地址 LJMP T1SEV ;轉T1中斷服務程序 ORG 0030H ;設置主程序起始地址=0030HMAIN: M

39、OV SP, #60H ;設置堆棧指針 MOV R7, #10H ;系統初始化 MOV R0, #30H ;設置顯示緩沖區(qū) MOV A, #0 MOV R0, A INC R0 DJNZ R7, LOP MOV 35H, #01H ;設置上電后的初始和日期MOV 36H, #01H MOV 37H, #01H MOV 38H, #01H MOV 3CH, 33H MOV 3DH, 34H MOV 3EH, #01H MOV 44H, #10H ;LED位選擇碼 MOV 45H, #20H MOV 46H, #40H MOV 47H, #80H CLR RS1 CLR RS0 MOV R5, #

40、00H MOV R6, #00H MOV R7, #06H LCALL SET1302 ;DS1302時鐘芯片初始化 SETB RS1 CLR RS0 ;選擇工作寄存器2組 MOV R0, #4AH MOV TMOD, #10H ;設置T0 T1工作方式:定時器,工作方式1 MOV TH1, #3CH MOV TL1, #0B0H ;設置定時/計數器1初值 MOV TH0, #40H MOV TL0, #098H ;設置定時/計數器0初值 MOV IP, #08H ;定時/計數器1為優(yōu)先級中斷 MOV TCON, #40H ;啟動定時器T1 MOV IE, #8DH ;定時/計數器1允許中斷,

41、開中斷 LOP: LCALL CHANGE ;當前時間送顯示緩沖區(qū) LCALL DISPLAY ;顯示當前時間 SETB RS1 CLR RS0 MOV 3AH, R0 ;判斷設置定時時間 INC R0 MOV 3BH, R0 MOV A, 3AH CJNE A, #0, NT MOV A, 3BH CJNE A, #0, NT NTM: INC R0 INC R0 CJNE R0, #59H, LOP MOV R0, #4AH SJMP BBX NT: MOV A, 3BH ;取當前時間與定時時間比較 CJNE A, 34H, NTM ;判斷定時時間是否到 DEC R0 DEC R0 MOV

42、 39H, R0 INC R0 INC R0 INC R0 INC R0 CJNE R0, #59H, NT1 MOV R0, #4AH NT1: MOV A, 39H ;若定時時間到 CJNE A, #05H, BBXX LCALL YUYIN ;發(fā)出語音提示 CLR P2.7 ;啟動蜂鳴器發(fā)出報警信號 SJMP LP0 BBX: SETB P2.7 SJMP LP0 BBXX: LCALL YUYIN SJMP LP0 LP0: JB P3.0, LP6 ;掃描鍵盤,判斷切換顯示日期按鍵有沒有按下 LCALL DISPLAY JB P3.0, LP0 LP1: JNB P3.0, LP1

43、SETB P2.7 MOV 5EH, #06H LP1A: MOV 3CH, 35H MOV 3DH, 36H LCALL CHANGE LCALL DISPLAY ;切換顯示日、月 LP1B: JB P3.0, LP1C LCALL DISPLAY JB P3.0, LP1B LP1D: JNB P3.0, LP1D SJMP LP2 LP1C: MOV A, 5EH CJNE A, #00H, LP1A LJMP FUZHI LP2: MOV 5EH, #06H LP3A: MOV 3CH, 38H MOV 3DH, #20H LCALL CHANGE LCALL DISPLAY ;切換顯

44、示年份 LP3B: JB P3.0, LP3C LCALL DISPLAY JB P3.0, LP3B LP3D: JNB P3.0, LP3D SJMP LP4 LP3C: MOV A, 5EH CJNE A, #00H, LP3A LJMP FUZHI LP4: MOV 5EH, #06H LP5A: MOV 3CH, 37H MOV 3DH, #0BBH LCALL CHANGE LCALL DISPLAY ;切換顯示星期 LP5B: JB P3.0, LP5C LCALL DISPLAY JB P3.0, LP5B LP5D: JNB P3.0, LP5D LJMP FUZHILP5C

45、: MOV A, 5EH CJNE A, #00H, LP5A LJMP FUZHI LP6: JB P3.1, LP6A SJMP LP6B LP6A: LJMP LOP LP6B: LCALL DISPLAY JB P3.0, LP6 LP7: LCALL DISPLAY JNB P3.0, LP7 SETB P2.7 MOV 3CH, 32H MOV 3DH, #0FFH LCALL CHANGE LCALL DISPLAY JB P3.1, LP7 LCALL DISPLAY JB P3.1, LP7 LP: LCALL DISPLAY JNB P3.1, LP8 FUZHI: MOV

46、 3CH, 33H MOV 3DH, 34H LJMP LOP CHANGE: MOV A, 3DH PUSH A ANL A, #0FH ;保留3DH單元中的低字節(jié)MOV 42H, A POP A SWAP A ANL A, #0FH ;保留3DH單元中的高字節(jié) MOV 43H, A MOV A ,3CH PUSH A ANL A, #0FH ;保留3CH單元中的低字節(jié) MOV 40H, A POP A SWAP A ANL A, #0FH ;保留3CH單元中的高字節(jié) MOV 41H, A RET YUYIN: MOV A, 3FH CJNE A, #0, CC1 CLR P3.4 MOV

47、3FH, #01H CC1: RET ;4位LED動態(tài)掃描顯示子程序 DISPLAY: SETB RS1 SETB RS0 ;選擇工作寄存器3組 MOV R2, #04H ;顯示指針 MOV R0, #40H MOV R1, #44H GOON: MOV A, R1 ADD A, R0 MOV P1, A LCALL DELAY1 INC R0 INC R1 DJNZ R2, GOON RET DELAY1:MOV R3, #14H AGAIN: MOV R4, #19H DELAY: DJNZ R4, DELAY DJNZ R3, AGAIN RET ;T1定時中斷程序,定時1min中斷一次

48、,讀出當前時間 T1SEV: MOV TH1, #3CH MOV TL1, #0B0H CLR EA PUSH A ;恢復現場 PUSH B PUSH PSW CLR RS1 CLR RS0 INC R5 CJNE R5, #14H, EN MOV R5, #0 DEC 5EH MOV 30H, 33H LCALL RD1302 MOV A, 33H CJNE A, 30H, CLR3FH SJMP EN1 CLR3FH:MOV 3FH, #0 EN1: MOV 3CH, 33H MOV 3DH, 34H EN: POP PSW POP B POP A SETB EA RETI ;當前時間、定

49、時時間設置程序 INTB: SETB P3.0 SETB P3.1 CLR TR1 CLR ET1 CLR EX0 CLR EX1 SETB EA SETB ET0 SETB PT0 PUSH A ;保護現場 PUSH BPUSH PSW JB P3.5, TIME LJMP ALARM ;跳轉到設置鬧鐘子程序 TIME: MOV 31H, #02H MOV 29H, 34H MOV 48H, #03H MOV 3CH, 33H MOV 3DH, 34H LCALL CHANGE LP0: JB P3.0, NEXT0 LCALL DISPLAY JB P3.0, LP0 LP1: LCALL

50、 DISPLAY JNB P3.0, LP1 MOV A, 29H ADD A, #01H DA A MOV 29H, A MOV A, 48H CJNE A, #03H, XX1 ;29H單元中的數是否為3 MOV 3DH, 34H MOV 3CH, 33H LCALL CHANGE LCALL DISPLAY LJMP LO1 XX1: CJNE A, #02H, XX2 ;對時,分值調整 MOV 3DH, 36HMOV 3CH, 35H LCALL CHANGE LCALL DISPLAY LJMP LO3 XX2: MOV 3DH, 38H ;對月,日值調整 MOV 3CH, 37H

51、LCALL CHANGE LCALL DISPLAY LJMP LO5 NEXT0: JNB P3.1, LF1 LJMP L1 LF1: LCALL DISPLAY JB P3.1, NEXT0 LD1: LCALL DISPLAY JNB P3.1, LD1 MOV A, 48H CJNE A, #03H, X1 MOV 3CH, 33H MOV 3DH, 34H LCALL CHANGE MOV 29H, 33H DJNZ 31H, LB1 DEC 48H MOV 31H, #02H MOV 29H, 36HMOV 3DH, 36H MOV 3CH, 35H LCALL CHANGE L

52、JMP L1 LB1: LJMP L1 X1: MOV A, 48H CJNE A, #02H, X2 MOV 3CH, 35H MOV 3DH, 36H LCALL CHANGE MOV 29H, 35H DJNZ 31H, LC1 DEC 48H MOV 31H, #02H MOV 29H, 38H MOV 3DH, 38H MOV 3CH, 37H LCALL CHANGE LJMP L1 LC1: LJMP L1 X2: MOV A, 48H CJNE A, #01H, X3 MOV 3CH, 37H MOV 3DH, 38H LCALL CHANGE MOV 29H, 37H DEC

53、 31H DEC 48H LJMP L1 X3: LJMP LL LO1: MOV A, 31H ;對年,星期值調整 CJNE A, #02H, LO2 MOV 3CH, 33H MOV A, 29H CJNE A, #24H, LA1 MOV 29H, #00H LA1: MOV 34H, 29H MOV 3DH, 34H LCALL CHANGE LJMP L1 LO2: MOV 3DH, 34H MOV A, 29H CJNE A, #60, LA2 MOV 29H, #0 LA2: MOV 33H, 29H ;小時修改子程序 MOV 3CH, 33H LCALL CHANGE LJMP

54、 L1 LO3: MOV A, 31H CJNE A, #02H, LO4 MOV 3CH, 35H MOV A, 29H CJNE A, #13, LA3 MOV 29H, #00H LA3: MOV 36H, 29H ;年修改子程序 MOV 3DH, 36H LCALL CHANGE LJMP L1 LO4: MOV A, 36H ;日期修改 MOV 3DH, 36H MOV A, 29H CJNE A, #30H, LA4 MOV 29H,#00H SJMP LA4 A1: MOV A, 29H CJNE A, 32H, LA4 MOV 29H, #00H LA4: MOV 35H, 2

55、9H MOV 3CH, 35H LCALL CHANGE LJMP L1 LO5: MOV A, 31H ;月,日值調整子程序 CJNE A, #02H, LO6 MOV 3CH, 37H MOV 38H, 29H MOV 3DH, 38H LCALL CHANGE LJMP L1 LO6: MOV A, 29H ;星期修改子程序 CJNE A, #08H, LA6 MOV 29H, #00H LA6: MOV 3DH, 38H MOV 37H, 29H MOV 3CH, 37H LCALL CHANGE L1: LCALL DISPLAY LJMP LP0 LL: MOV 32H, #00H

56、 LCALL SET1302 LJMP ET ;定時時間設置子程序 ALARM: SETB P3.5 MOV 39H, #01H LCALL SEARCH PP0: MOV 3CH, #0ABH LCALL CHANGE NEXTA: LCALL DISPLAY JB P3.1, NEXTA LCALL DISPLAY JB P3.1, NEXTA LD11B: LCALL DISPLAY JNB P3.1, LD11B LCALL SEARCH MOV 3DH, 3BHMOV 3CH, 3AH LCALL CHANGE MOV 31H, #02H MOV 29H, 3BH LP0B: JB

57、P3.0, NEXTB LCALL DISPLAY JB P3.0, LP0B LP1B: LCALL DISPLAY JNB P3.0, LP1B MOV A, 29H ADD A, #01H DA A MOV 29H, A SJMP LO1B NEXTB: LCALL DISPLAY JB P3.1, LQB LCALL DISPLAY JB P3.1, NEXTB LD1B: LCALL DISPLAY JNB P3.1, LD1B MOV 29H, 3AH DJNZ 31H, LO1B SJMP LLB LO1B: MOV A, 31H DJNE A, #02H, LO2B MOV A

58、, 29H CJNE A, #24H, LA1B ;鬧鐘小時時間是否為24 MOV 29H, #00H LA1B: MOV 3BH, 29H ;改變小時 MOV 3DH, 3BH LCALL CHANGE SJMP LQB LO2B: MOV A, 29H ;改變分鐘 CJNE A, #60H, LA2B MOV 29H, #00H LA2B: MOV 3AH, 29H MOV 3CH, 3AH LCALL CHANGE L1B: MOV A, 31H CJNE A, #00H, LP0B LLB: LCALL WRIT INC 39H MOV A, 39H CJNE A, #6, PA0 S

59、JMP ET PA0: LJMP PP0 ET: POP PSW POP B POP A MOV TH1, #3CH MOV TL1, #0B0H SETB TR1 SETB ET1 SETB PT1 SETB EX0 SETB EX1 CLR TR0 CLR ET0 RETI WRIT: CLR RS1 SETB RS0 MOV A, 39H MOV B, #3 MUL AB ADD A, #46H MOV R1, A MOV R0, #39H MOV R2, #3 MORE: MOV A, R0 MOV R1, A INC R0 INC R1 DJNZ R2, MORE RET SEARC

60、H: CLR RS1 SETB RS0 MOV A, 39H MOV B, #3 MUL AB ADD A, #46H MOV R1, 0 MOV R0, #39H MOV R2, #2 INC R0 INC R1 MORE1: MOV A, R1 MOV R0, A INC R0 INC R1 DJNZ R2, MORE1 RET INTA: SETB P3.0 SETB P3.1 CLR TR1 CLR ET1 CLR EX0 CLR EX1 PUSH A PUSH B PUSH PSW JB P3.4, RECORD LJMP PLAY ;錄音子程序 RECORD: MOV 3EH, #

溫馨提示

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

評論

0/150

提交評論