2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  學生畢業(yè)設計(論文)</p><p>  題 目: 電子定時鬧鐘設計 </p><p><b>  目錄</b></p><p>  摘要…………………………………………………………………………………3</p><p>  第一章 概述………………………………………………………………………..

2、.4</p><p>  1.1 設計本系統(tǒng)的目的和意義……………………………………………………...4</p><p>  第二章 系統(tǒng)硬件設計……………………………………………………………….4</p><p>  2.1 電路總體概念設計………………………………………………………………4</p><p>  2.2 單片機的介紹…………

3、…………………………………………………………5</p><p>  2.3 單片機的選擇……………………………………………………………………6</p><p>  2.4 復位電路………………………………………………………………………….7</p><p>  2.5 時鐘電路………………………………………………………………………….8</p><

4、;p>  2.6 LCD電路顯示部分……………………………………………………………….9</p><p>  第三章 軟件設計……………………………………………………………………9</p><p>  3.1 軟件設計概述…………………………………………………………………..9</p><p>  3.2 程序初始化…………………………………………………………

5、…………..9</p><p>  3.3 顯示程序………………………………………………………………………11</p><p>  3.4 仿真執(zhí)行………………………………………………………………………12</p><p>  總結…………………………………………………………………………………12</p><p>  參考文獻……………………

6、………………………………………………………12</p><p>  致謝…………………………………………………………………………………13</p><p>  附錄一、源程序代碼………………………………………………………………14</p><p>  附錄二、電路原理圖………………………………………………………………41</p><p>&l

7、t;b>  摘 要</b></p><p>  現(xiàn)代生活的人們越來越重視時間觀念,可以說是時間和金錢劃上了等號。對于那些對時間把握非常嚴格和準確的人或事來說,時間的不準確會帶來非常大的麻煩,電子時鐘是現(xiàn)代社會中主要計時工具之一,廣泛應用于手機,電腦,汽車等社會生活需要的各個方面,及對時間有要求的場合。</p><p>  本設計系統(tǒng)可以顯示24小時制“時時-分分-秒秒”

8、,LCD顯示;可以顯示日期,具有萬年歷功能;可以方便的設定定時時間、修改定時時間,鬧鐘功能預設定時時間到將發(fā)出音樂鬧鈴聲;能夠修改時鐘的時、分、秒,能夠修改日期的年、月、日等多種功能。硬件系統(tǒng)由復位模塊、時鐘模塊、溫度模塊、音樂模塊、光識模塊及顯示模塊共五個模塊組成,可用LCD液晶顯示來顯示時間和年、月、日。軟件部分采用時效性強的匯編語言,用模塊式結構編寫程序來完成系統(tǒng)的控制要求。</p><p>  本LCD電

9、子定時鬧鐘是以一片AT89C51單片機為主體,一種基于單片機技術的多功能、多用途的電子產(chǎn)品,有電子時鐘、日期顯示、定時鬧鐘等多種功能。本設計產(chǎn)品性能卓越,功能豐富,采用LCD顯示更加直觀,是一個比較實用的電子產(chǎn)品,具有一定的市場推廣價值。</p><p>  關鍵詞:單片機,電子鐘,LCD顯示</p><p><b>  第一章 概述</b></p>&

10、lt;p>  1.1 設計本系統(tǒng)的目的和意義</p><p><b> ?。ㄒ唬?目的</b></p><p>  復習和鞏固所學過的知識,利用此畢業(yè)設計正好可以對所學過的知識驚喜系統(tǒng)的回顧和總結。</p><p>  拓展知識面,課堂的知識是遠遠滿足不了設計的要求的,這就需要我們主動去找尋更多的資料,了解更多的知識。</p>

11、<p>  培養(yǎng)了設計能力和解決實際問題的能力,同時增強了自學能力,通過設計完整的單片機系統(tǒng)也初步掌握了組成系統(tǒng)、編程、調(diào)試等能力。</p><p>  通過本LED電子定時鬧鐘的設計初步了解了單片機應用系統(tǒng)開發(fā)研制過程,軟件和硬件設計的方法。</p><p><b>  (二) 意義</b></p><p>  本LCD電子定時

12、鬧鐘是以一片AT89C51單片機為主體,一種基于單片機技術的多功能、多用途的電子產(chǎn)品,有電子時鐘、日期顯示、定時鬧鐘等多種功能。本設計產(chǎn)品性能卓越,功能豐富,采用LCD顯示更加直觀,是一個比較實用的電子產(chǎn)品。</p><p><b>  系統(tǒng)硬件設計</b></p><p>  2.1 電路總體概念設計</p><p>  本LCD定時鬧鐘,是

13、以單片機及外圍借口電路為核心,輔以其他外圍硬件電路,用匯編語言設計的程序來實現(xiàn)的。根據(jù)C51單片機的外圍接口特點擴展相應的硬件電路,然后根據(jù)單片機的指令設計出數(shù)字鐘相應的軟件,再利用軟件執(zhí)行一定的程序來實現(xiàn)數(shù)字鐘的功能。由于采用集成芯片性的單片機,來制作電子鐘,這樣設計制作簡單而且功能多、精確度高,也可方便擴充其他功能,實現(xiàn)也十分簡單。</p><p>  本設計是利用AT89C51單片機為主控芯片,由LCD、晶

14、振、電阻、電容、三極管,開關,蜂鳴器等元件組成硬件電路,通過編寫軟件程序來實現(xiàn)和控制的數(shù)字定時鬧鐘。</p><p>  總體的硬件系統(tǒng)結構框如圖所示:</p><p>  圖1 硬件電路概念示意圖</p><p>  2.2 單片機的介紹</p><p><b>  1.單片機定義</b></p>&

15、lt;p>  “單片機”就是將計算機的基本部件集成到一塊芯片上,包括CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、并行口(Parallel Port)、串行口(Serial Port)、定時器/計數(shù)器(Timer/Counter)、中斷系統(tǒng)(Interrupt System)、系統(tǒng)時鐘及系統(tǒng)總線等。</p>&

16、lt;p><b>  2.單片機分類</b></p><p>  單片機按照其用途可分為通用型和專用型兩大類。</p><p>  通用型單片機具有比較豐富的內(nèi)部資源,性能全面且適應性強,能覆蓋多種應用需求。</p><p>  專用單片機是專門針對某個特定產(chǎn)品的,例如,專用于電機控制的單片機、車載電子設備、語音信號處理和家用電器中的單片

17、機等。</p><p>  2.3 單片機的選擇</p><p>  根據(jù)系統(tǒng)的需求選用單片機AT89C51。</p><p> ?。?) MSC-51單片機內(nèi)部總體結構:</p><p>  89C51是MSC-51系列單片機的典型產(chǎn)品,89C51單片機包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計時器、并行接口、串行

18、接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:</p><p>  下圖為單片機的內(nèi)部結構圖:</p><p>  圖2 MCS-51單片機內(nèi)部結構圖</p><p>  中央處理器: 中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)

19、的工作,完成運算和控制輸入輸出功能等操作。</p><p>  數(shù)據(jù)存儲器(RAM): 89C51內(nèi)部有128個8位用于用戶數(shù)據(jù)存儲單元和128個專門寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結果或用戶定義的字型表。</p><p>  程序存儲器(ROM): 8

20、0C51的程序存儲器的內(nèi)部結構有64KB,包括片內(nèi)ROM和片內(nèi)ROM,ROM空間用MOVC指令實現(xiàn)讀寫操作,用PSEN信號選通讀外部ROM.</p><p>  定時/計時器(ROM):89C51有兩個16位的可編程定時/計時器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。</p><p>  并行輸入輸出(I/O)口: 89C51共有4組8位I/O口(P0、P1、P2或P3),用于外部數(shù)據(jù)

21、的傳輸。</p><p>  全雙工串行口: 89C51內(nèi)置一個全雙工行通信口,用于與其他設備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器使用。</p><p>  中斷系統(tǒng):89C51具備較完善的中斷功能,有兩個外中斷、兩個定時/計時器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。</p><p> ?。?) 單片機

22、的引腳功能</p><p>  硬件電路的核心器件選用ATMEL公司的AT89C51芯片,AT89C51是一種4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能COMS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除卡存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制作技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多

23、功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器。</p><p>  下圖是AT89C51的引腳說明圖:</p><p>  圖3 AT89C51的引腳配置圖</p><p><b>  管腳說明:</b></p><p>  電源:(1)Vcc - 芯片電源,接+5

24、V;</p><p> ?。?)Vss - 接地端;</p><p>  P0口:P0口為一個8位漏極開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0口能夠</p><p>  用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,

25、此時P0外部必須被拉高。</p><p>  P1口: P1口是一個不提供上拉電阻的8位雙向I/O口,P1口緩沖器能接受輸出4TTL門電流。P1口管腳寫入1后被內(nèi)部上拉為高??捎米鬏斎?,P1口被外部下拉為低電平時將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。</p><p>  表1 P1.0和 P1.1的第二功能</p>&l

26、t;p>  P2口:P2口作為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳內(nèi)部被上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口暑促地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當時外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接受高八位地址信號

27、和控制信號。</p><p>  P3口: P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入,作為輸入,由于外部下拉為低電平,P3口將輸出電流(TTL)這是由于上拉的緣故。</p><p>  RST : 復位輸入,當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。</p><

28、p>  ALE/PROG: 當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié),在FLASH編程期間,此引腳用于輸入編程脈沖,在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器的1/6,因此它可用作對外部輸出的脈沖或用于定時目的。</p><p>  /PSEN: 外部程序存儲器的選通信號。在有外部程序存儲器取指期間每個機器周期兩次/PSEN有效,但在訪問外部數(shù)據(jù)存儲器時,這兩次

29、有效的/PSEN信號將不出現(xiàn)。</p><p>  /EA/VPP: 當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器,注意加密方式1時。/EA將內(nèi)部鎖定RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器在FLASH編程期間,次引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1: 反向振蕩放大器的輸入及內(nèi)部時鐘工作

30、電路的輸入。</p><p>  XTAL2: 來自反向振蕩器的輸出。</p><p><b>  2.4 復位電路</b></p><p>  復位是單片機的初始化操作,只要RST引腳處至少保持2個及其周期的高電平就可實現(xiàn)復位。本系統(tǒng)的復位電路如下圖所示:</p><p><b>  圖4 復位電路<

31、/b></p><p><b>  2.5 時鐘電路</b></p><p>  本電子時鐘設計是采用內(nèi)部時鐘方式,用一個12MHz晶振和兩個33PF電容組成,為單片機提供標準時鐘,其中兩個電容起微調(diào)作業(yè)。</p><p>  本系統(tǒng)的時鐘電路如下圖所示:</p><p><b>  圖5 時鐘電路&l

32、t;/b></p><p>  之所以采用高性能的振蕩電路是因為:</p><p>  單片機電子鐘的計時脈沖基準是由外部晶振的頻率經(jīng)過12分頻后提供的,采用內(nèi)部的定時/計數(shù)器來實現(xiàn)計時功能,所以,外接晶振頻率精確度直接影響電子鐘計時的準確性。</p><p>  單片機電子鐘利用內(nèi)部定時/計數(shù)器溢出產(chǎn)生中斷(12M晶振一般為50ms)再乘以相應的倍率來實現(xiàn)秒

33、、分、時的轉(zhuǎn)換。大家都知道從定時/計數(shù)器產(chǎn)生中斷請求到響應中斷需要3-8個機器周期,定時中斷子程序中的數(shù)據(jù)入棧和重裝定時/計數(shù)器的初值還需要占用數(shù)個機器周期,還有從中入口轉(zhuǎn)到中斷子程序也要占用一定的機器周期。</p><p><b>  LCD顯示電路</b></p><p><b>  一、LCD的介紹</b></p><p

34、><b>  1、LCD的背景</b></p><p>  LCD(Liquid Crystal Display)對于許多的用戶而言可能是一個比較新鮮的名詞,不過這種技術存在的歷史可能遠遠超過了我們的想象,早在1888年,一位奧地利的植物學家F.Renitxer便發(fā)現(xiàn)了液晶特殊的物理特性。</p><p><b>  二、 LCD的選材</b&g

35、t;</p><p>  為了獲得更好的效果本設計并沒有采用常見的LED,而是采用了型號為1602的 LCD。LCD有LED數(shù)碼顯示更好的更的直觀效果,也更加經(jīng)久耐用。液晶顯示模塊體積小功耗低、顯示內(nèi)容豐富,現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機應用設計中最常用的信息顯示器件之一了。本LCD是2行16列液晶 可顯示2行16列英文字符,有8位數(shù)據(jù)總線D0-D7,RS,R/W,EN三個控制端口(共14線),工作電壓為5V

36、。沒背光,和常用的1602B功能和引腳一樣(除了調(diào)背光的二個線腳)。該模塊也可只用D4-D7作為四位數(shù)據(jù)分兩次傳送。這樣的話可以節(jié)省MCU的I/O口資源。</p><p>  VDD:電源正極,4.5-5.5V,通常使用5V電壓;</p><p>  VL:LCD對比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為0-5V。接正電源時對比度最弱,接地電源時對比度最高,但對比度過高時會產(chǎn)生“鬼影”,因此通常使用一個

37、10K的電位器來調(diào)整對比度,或者直接串接一個電阻到地;</p><p>  RS:MCU寫入數(shù)據(jù)或者指令選擇端。MCU要寫入指令時,使RS為低電平;MCU要寫入數(shù)據(jù)時,使RS為高電平;</p><p>  R/W:讀寫控制端。R/W為高電平時,讀取數(shù)據(jù);R/W為低電平時,寫入數(shù)據(jù);</p><p>  E:LCD模塊使能信號控制端。寫數(shù)據(jù)時,需要下降沿觸發(fā)模塊。&l

38、t;/p><p>  D0-D7:8位數(shù)據(jù)總線,三態(tài)雙向。如果MCU的I/O口資源緊張的話,該模塊也可以只使用4位數(shù)據(jù)線D4-D7接口傳送數(shù)據(jù)。本充電器就是采用4位數(shù)據(jù)傳送方式;</p><p>  BLA: LED背光正極。需要背光時,BLA串接一個限流電阻接VDD,BLK接地,實測該模塊的背光電流為50mA左右;</p><p>  BLK: LED背光地端。<

39、;/p><p><b>  軟件設計</b></p><p><b>  3.1軟件設計概述</b></p><p>  這里用匯編的單片機程序構成了本電子鐘的軟件系統(tǒng)。該程序?qū)崿F(xiàn)時間及定時(時間以0點0分0秒為基準計算,鬧鈴定時以0時0分0秒為基準計算)的顯示,有外中斷0和四個開關實現(xiàn)校時、鬧鐘功能。其中程序的晶振頻率為12

40、MHz,最小計時單位為1/20秒。</p><p>  主芯片p0.1-p0.7輸出數(shù)據(jù)到LCD數(shù)據(jù)總線,p2.0-2.2輸出LCD控制信號,P3.7輸出聲音信號,.P1.4-P1.5輸入外部控制信號,整個軟件系統(tǒng)也是根據(jù)這個關系連接成一個完整的系統(tǒng)。</p><p><b>  3.2程序初始化</b></p><p>  下圖為本設計的主程

41、序流程圖:</p><p>  圖6 主程序流程圖</p><p>  下圖為本設計的程序分流程圖:</p><p>  圖7 程序分流程圖</p><p>  然后就是對LCD進行初始化,具體程序見附錄1。</p><p><b>  鬧鐘的實現(xiàn):</b></p><p

42、>  鬧鐘功能的實現(xiàn)涉及到兩個方面:鬧鈴時間設定和是否鬧鈴判別與相應處理。鬧鈴時間設定模塊的設計可參照時間設定模塊,這里著重闡述鬧鈴判別與處理模塊的設計問題。鬧鈴判別與鬧鈴處理的關鍵在于判別何時要進行鬧鈴。當時十位、時個位、分十位、分個位中任一位發(fā)生改變(進位)時,就必須進行鬧鈴判別。</p><p>  程序設計思想如下圖:</p><p>  圖8 鬧鈴實現(xiàn)流程圖</p&

43、gt;<p><b>  3.3 顯示程序</b></p><p>  程序包括時鐘顯示和定時顯示程序。具體程序見附錄1</p><p>  液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表3-1是TC1602EL液晶模塊的內(nèi)部

44、顯示地址。</p><p>  表2 內(nèi)部顯示地址。</p><p>  比如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位 D7恒定為高電平1所以實際寫入的數(shù)據(jù)應該是01000000B(40H)+10000000B(80H)=11000000B(C0H),</p><p>

45、;  液晶模塊內(nèi)帶標準字庫,內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了192個5×7點陣字符,32個5×10點陣字符。另外還有字符生成RAM (CGRAM)512字節(jié),供用戶自定義字符。這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固 定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”

46、。</p><p><b>  3.4 仿真執(zhí)行</b></p><p>  將完整的單片機程序保存為后綴名為.asm文件。打開偉福E6000軟件,點擊偉福E6000主菜單當中“仿真器”,在下拉菜單中點擊“仿真器設置”。在彈出對話框中,語言對話框中選—“Keil C(V5或更高),英特爾PL/M51,英特爾匯編器”,仿真器對話框中—“G6W”—“POD—51”—“8

47、031”,晶振頻率欄填12000000(Hz),然后點擊“好”完成仿真器設置。然后點擊偉福E6000主菜單,新建項目,導入上述ASM文件,選擇無包含文件,保存此項目文件,再雙擊ASM文件打開,然后選擇“項目”—“編譯”或按F9,按.asm文件進行編譯,編譯順利完成,生成.HEX文件。然后用PROTEUS7.1軟件打開設計好的硬件系統(tǒng)原理圖DZZ dan,雙擊原理圖上的AT89C51單片機加載DAA.HEX文件。然后點擊PROTEUS7.

48、1軟件窗口下方的相應仿真運行按鈕進行仿真</p><p>  經(jīng)過反復的仿真和調(diào)試,此鬧鐘可以實現(xiàn)所有的功能,既可以顯示日期時間,也可以方便調(diào)整日期和時間,定鬧鐘的功能也正常,實際的仿真效果截圖如附帶大圖,至此整個設計基本成功的完成。</p><p><b>  總結</b></p><p>  單片機是計算機技術發(fā)展的產(chǎn)物,是經(jīng)濟實用開發(fā)簡便

49、的高科技產(chǎn)品,在當今工業(yè)控制、家電等,領域占據(jù)廣泛的市場。通過此次單片機課程設計來設計個簡單的數(shù)字鬧鐘,我鞏固了自己學習的單片機知識,來初步了解了小型單片機系統(tǒng)的設計和運用,并提高自己動手能力。</p><p>  課程設計過程也使我了解了自己能力的不足,不過通過資料收集和文獻查詢等方法,找出了設計過程中是一些問題以及解決問題的方法。從而比較順利的完成了這個設計任務。這次自己所做的設計取得了一些寶貴的經(jīng)驗,提高了

50、自己的動手能力,為將來的學習和工作很有好處。</p><p>  通過這次課程設計我學到了很多全新的在課堂上沒法學到的知識,同時也加深; 以前所學的知識的理解,也增強了理論聯(lián)系實際的操作能力。但是,在實際的編程以及調(diào)試程序過程中,我發(fā)現(xiàn)自己應該學的還有太多太多。光靠書本上是遠遠行不通的!</p><p>  總之,理論必須和實際結合才有威力,知識必須通過應用才能實現(xiàn)其價值!所學的東西最終是

51、要面向社會,是在以后的工作能夠更好的應用,此時的知識積累是為以后的工作做好堅實的基礎。這個設計總體上不算完美,但是在這個課程設計的經(jīng)歷的好處是不可估量的</p><p>  由于本人用單片機制作實際應用是第一次涉及,所以在設計過程中,可能忽略; 許多的問題,再加上能力與精力,還有時間的關系,對系統(tǒng)的設計中的每一個細節(jié)不能做到完全的完美。該系統(tǒng)還需要以后進行完善。</p><p><b

52、>  參考文獻</b></p><p>  [1]王喜云。單片機應用基礎項目教程。機械工業(yè)出版社。2009年</p><p>  [2]李伯成。單片機嵌入式系統(tǒng)(第二版)。清華大學出版社。2008年</p><p>  [3]李中發(fā)。數(shù)字電子技術(第二版)。中國水利水電出版社。2007年</p><p>  [4]趙志剛。P

53、rotel DXP實用教程(修訂本)。清華大學出版社。2007年</p><p>  [5] 耿文靜、錢珊珠。單片機原理與接口技術。國防工業(yè)出版社2007年。</p><p>  [6] 賈好來。MCS—51單片機原理及應用。機械工業(yè)出版社。2007年</p><p>  [7] 凌陽科技大學計劃網(wǎng)站 http://www.unsp.com.cn</p>

54、<p>  [8] 徐江海。單片機實用教程。機械工業(yè)出版社。2007年。</p><p>  [9]樓然苗、李光飛。單片機課程設計指導。2007年</p><p>  [10] 侯媛彬。凌陽單片機原理及畢業(yè)設計精選。科學出版社。2005年。</p><p><b>  致謝:</b></p><p>  

55、光陰似箭,日月如梭,不知不覺已在美麗的婁底職業(yè)技術學院度過了自己的大學時光。三年來雖付出了許多艱辛和汗水,但有老師和同學們的教導和關愛,又有家人和朋友的期待與支持,我感到無比的快樂與辛福。在論文即將脫稿之時,我要向所有關心和支持我的人道一聲謝謝。</p><p>  衷心感謝我的導師吳水平老師,吳老師在擔任我的畢業(yè)論文指導老師以來,對學生言傳身教,學習上鼓勵學生要勤奮、努力、刻苦。生活上鼓勵學生要勤儉節(jié)約、自力更

56、生。吳老師嚴謹求實的治學態(tài)度,嚴以律己、寬以待人的崇高風范,一絲不茍的作風一直是學生學習的楷模。</p><p>  附錄一 源程序代碼</p><p>  按K1鍵,依次進入鬧鐘功能,鬧鐘時間,年,月,日和時,分,秒模式,直致退出設置狀態(tài) *</p><p>  ;按K2鍵,調(diào)整是否起用鬧鐘和調(diào)節(jié)鬧鐘時,分,秒,年,月,日,時間的時,分,秒的數(shù)字 *<

57、;/p><p>  ;鬧鐘響時,按K2 即可停止鬧鐘的聲響 *</p><p>  ;K2和K1需要配合使用</p><p>  ;設置狀態(tài),LCD 上排最前面顯示"P",下排最前面設置鬧鐘時顯示"alarm:",其他顯示"time:" *</p><p>  ;鬧鐘啟用時,在LCD 下

58、排中間顯示一小喇叭,鬧鐘禁用時,無此小喇叭 *</p><p>  ;年代變化2000--2099,星期自動轉(zhuǎn)換</p><p>  **************變量的定義*****************</p><p>  RS BIT P2.0 ;LCD 數(shù)據(jù)/命令選擇端(H/L)</p><p>  RW BIT P2.1 ;LCD讀

59、/寫選擇端(H/L)</p><p>  EP BIT P2.2 ;LCD 使能控制</p><p>  PRE BIT P1.7 ;調(diào)整鍵(K1)</p><p>  ADJ BIT P1.6 ;調(diào)整鍵(K2)</p><p>  SPK BIT P3.7 ;鬧鐘聲音輸出口</p><p>  YEAR DATA 1

60、8H ;年,月,日變量</p><p>  MONTH DATA 19H</p><p>  DATE DATA 1AH</p><p>  WEEK DATA 1BH</p><p>  HOUR DATA 1CH ;時,分,秒,百分之一秒變量</p><p>  MIN DATA 1DH</p>&l

61、t;p>  SEC DATA 1EH</p><p>  SEC100 DATA 1FH</p><p>  HOUR_ARM DATA 20H ;鬧鐘時,分,秒,變量</p><p>  MIN_ARM DATA 21H</p><p>  SEC_ARM DATA 22H</p><p>  STATE DA

62、TA 23H</p><p>  ALARM BIT STATE.0 ;鬧鐘是否啟用標志1--啟用,0--禁止</p><p>  LEAP BIT STATE.1 ;是否閏年標志1--閏年,0--平年</p><p>  KEY_S DATA 24H ;當前掃描鍵值</p><p>  KEY_V DATA 25H ;上次掃描鍵值</

63、p><p>  DIS_BUF_U0 DATA 26H ;LCD 上排顯示緩沖區(qū)</p><p>  DIS_BUF_U1 DATA 27H</p><p>  DIS_BUF_U2 DATA 28H</p><p>  DIS_BUF_U3 DATA 29H</p><p>  DIS_BUF_U4 DATA 2AH&l

64、t;/p><p>  DIS_BUF_U5 DATA 2BH</p><p>  DIS_BUF_U6 DATA 2CH</p><p>  DIS_BUF_U7 DATA 2DH</p><p>  DIS_BUF_U8 DATA 2EH</p><p>  DIS_BUF_U9 DATA 2FH</p>

65、<p>  DIS_BUF_U10 DATA 30H</p><p>  DIS_BUF_U11 DATA 31H</p><p>  DIS_BUF_U12 DATA 32H</p><p>  DIS_BUF_U13 DATA 33H</p><p>  DIS_BUF_U14 DATA 34H</p><p

66、>  DIS_BUF_U15 DATA 35H</p><p>  DIS_BUF_L0 DATA 36H ;LCD 下排顯示緩沖區(qū)</p><p>  DIS_BUF_L1 DATA 37H</p><p>  DIS_BUF_L2 DATA 38H</p><p>  DIS_BUF_L3 DATA 39H</p>&

67、lt;p>  DIS_BUF_L4 DATA 3AH</p><p>  DIS_BUF_L5 DATA 3BH</p><p>  DIS_BUF_L6 DATA 3CH</p><p>  DIS_BUF_L7 DATA 3DH</p><p>  DIS_BUF_L8 DATA 3EH</p><p>  

68、DIS_BUF_L9 DATA 3FH</p><p>  DIS_BUF_L10 DATA 40H</p><p>  DIS_BUF_L11 DATA 41H</p><p>  DIS_BUF_L12 DATA 42H</p><p>  DIS_BUF_L13 DATA 43H</p><p>  DIS_BU

69、F_L14 DATA 44H</p><p>  DIS_BUF_L15 DATA 45H</p><p>  FLAG DATA 46H ;標識調(diào)整狀態(tài) 0-鬧鐘功能,1-鬧鐘時,2-鬧鐘分,3-鬧鐘秒</p><p>  ;4-年,5-月,6-日,7-時,8-分,9-秒,10-退出調(diào)整。</p><p>  DIS_H DATA 47H&

70、lt;/p><p>  DIS_M DATA 48H</p><p>  DIS_S DATA 49H</p><p>  DIS_S0 DATA 4AH</p><p>  DIS_S1 DATA 4BH</p><p>  DIS_S2 DATA 4CH</p><p>  DIS_S3 DAT

71、A 4DH</p><p>  DIS_S4 DATA 4EH</p><p>  DIS_S5 DATA 4FH</p><p>  ;**************初始化********************</p><p><b>  ORG 0000H</b></p><p>  LJMP

72、 START</p><p><b>  ORG 000BH</b></p><p>  LJMP TIMER0</p><p><b>  ORG 001BH</b></p><p>  LJMP TIMER1</p><p><b>  ORG 0100H<

73、;/b></p><p>  START: MOV SP,#60H</p><p>  MOV R0,#18H</p><p>  MOV A,#00H</p><p>  MEM_INI: MOV @R0,A</p><p><b>  INC R0</b></p><

74、p>  CJNE R0,#5FH,MEM_INI</p><p>  LCALL DELAY_5ms ;初始化LCD</p><p>  MOV R0,#38H ;設置LCD 為16X2 顯示,5X7 點陣,八位數(shù)據(jù)接口</p><p>  LCALL LCD_WCMD</p><p>  LCALL DELAY_5ms</p&g

75、t;<p>  MOV R0,#0CH ;設置LCD 開顯示及光標形式(光標不閃爍,不顯示"-")</p><p>  LCALL LCD_WCMD</p><p>  LCALL DELAY_5ms</p><p>  MOV R0,#06H ;LCD 顯示光標移動設置(光標地址指針加1,整屏顯示不移動)</p>&

76、lt;p>  LCALL LCD_WCMD</p><p>  LCALL DELAY_5ms</p><p>  MOV R0,#01H ;清除LCD的顯示內(nèi)容</p><p>  LCALL LCD_WCMD</p><p>  LCALL DELAY_5ms</p><p><b>  ;第一自定

77、義字符:</b></p><p>  MOV R0,#40H</p><p>  LCALL LCD_WCMD ;“01 000 000”第一行地址(D7D6為地址設定命令形式D5D4D3為字符存放位置)</p><p>  MOV R0,#1FH</p><p>  LCALL LCD_WDAT ;“XXX 1111

78、1”第一行數(shù)據(jù)(D7D6D5為XXX,表示為任意數(shù),一般用000)</p><p>  MOV R0,#41H</p><p>  LCALL LCD_WCMD ;“01 000 001”第二行地址</p><p>  MOV R0,#11H</p><p>  LCALL LCD_WDAT ;“XXX 10001”第2行數(shù)據(jù)&l

79、t;/p><p>  MOV R0,#42H</p><p>  LCALL LCD_WCMD ;“01 000 010”第三行地址</p><p>  MOV R0,#15H</p><p>  LCALL LCD_WDAT ;“XXX 10101”第3行數(shù)據(jù)</p><p>  MOC R0,#43H

80、</p><p>  LCALL LCD_WCMD ;“01 000 011”第四行地址</p><p>  MOV R0,#11H</p><p>  LCALL LCD_WCMD ;“XXX 10001”第四行數(shù)據(jù)</p><p>  MOV R0,#44H</p><p>  LCALL LC

81、D_WCMD ;“01 000 100”第五行地址</p><p>  MOV R0,#1FH</p><p>  LCALL LCD_WDAT ;“XXX 11111”第五行數(shù)據(jù)</p><p>  MOV R0,#45H</p><p>  LCALL LCD_WCMD ;“01 000 101”第六行地址</p>

82、<p>  MOV R0,#0AH</p><p>  LCALL LCD_WDAT ;“XXX 01010”第六行數(shù)據(jù)</p><p>  MOV R0,#46H</p><p>  LCALL LCD_WCMD ;“01 000 110”第七行地址</p><p>  MOV R0,#1FH</p>&

83、lt;p>  LCALL LCD_WDAT ;“XXX 11111”第七行數(shù)據(jù)</p><p>  MOV R0,#47H</p><p>  LCALL LCD_WCMD ;“01 000 111”第八行地址</p><p>  MOV R0,#00H</p><p>  LCALL LCD_WDAT ;“XXX 00000”第八

84、行數(shù)據(jù)</p><p><b>  第二自定義字符:</b></p><p>  MOV R0,#48H</p><p>  LCALL LCD_WCMD ;“01 001 000”第一行地址</p><p>  MOV R0,#01H</p><p>  LCALL LCD_WDAT ;“X

85、XX 00001”第一行數(shù)據(jù)</p><p>  MOV R0,#49H</p><p>  LCALL LCD_WCMD ;“01 001 001”第二行地址</p><p>  MOV R0,#1BH</p><p>  LCALL LCD_WDAT ;“XXX 11011”第二行數(shù)據(jù)</p><p>  MO

86、V R0,#4AH</p><p>  LCALL LCD_WCMD ;“01 001 010”第三行地址</p><p>  MOV R0,#1DH</p><p>  LCALL LCD_WDAT ;“XXX 11101”第三行數(shù)據(jù)</p><p>  MOV R0,#4BH</p><p>  LCALL LCD

87、_WCMD ;“01 001 011”第四行地址</p><p>  MOV R0,#19H</p><p>  LCALL LCD_WDAT ;“XXX 11001”第四行數(shù)據(jù)</p><p>  MOV R0,#4CH</p><p>  LCALL LCD_WCMD ;“01 001 100”第五行地址</p><p

88、>  MOV R0,#1DH</p><p>  LCALL LCD_WDAT ;“XXX 11101”第五行數(shù)據(jù)</p><p>  MOV R0,#4DH</p><p>  LCALL LCD_WCMD ;“01 001 101”第六行地址</p><p>  MOV R0,#1BH</p><p>  L

89、CALL LCD_WDAT ;“XXX 11011”第六行數(shù)據(jù)</p><p>  MOV R0,#4EH</p><p>  LCALL LCD_WCMD ;“01 001 110”第七行地址</p><p>  MOV R0,#01H</p><p>  LCALL LCD_WDAT ;“XXX 00001”第七行數(shù)據(jù)</p>

90、<p>  MOV R0,#4FH</p><p>  LCALL LCD_WCMD ;“01 001 111”第八行地址</p><p>  MOV R0,#00H</p><p>  LCALL LCD_WDAT ;“XXX 00000”第八行數(shù)據(jù)</p><p>  MOV YEAR,#5 ;置年初值</p>

91、<p>  MOV MONTH,#1 ;置月初值</p><p>  MOV DATE,#1 ;置日初值</p><p>  MOV DIS_S0,#43H ;“C”</p><p>  MOV DIS_S1,#72H ;“r”</p><p>  MOV DIS_S2,#61H ; “a”</p><p&g

92、t;  MOV DIS_S3,#73H ;“s”</p><p>  MOV DIS_S4.#79H ;“y”</p><p>  MOV DIS_S5,#20H ;“”</p><p>  MOV R1,#00H ;顯示一自定義字符</p><p>  LCALL WEEK_PRO</p><p>  LCALL U

93、ODATE_BUF</p><p>  LCALL DISPLAY_PRO ;屏顯初始化</p><p>  *************************主程序*************************</p><p>  MAIN:MOV IE ,#8AH ;CPU開中斷,Timer0, Timer1開中斷</p><p> 

94、 MOV TMOD,#11H ; Timer0,Timer1工作于模式1,16位定時方式</p><p>  MOV TH0,#0DCH ; Timer0置10MS定時初值</p><p>  MOV TL0,#00H</p><p>  MOV TH1,#0FFH ; Timer1置鬧鐘聲音初值</p><p>  MOV TL1,#00

95、H</p><p>  SETB ALARM ;廚師啟動鬧鐘功能</p><p>  CLR TR1 ; Timer1禁止</p><p>  SETB TR0 ; Timer0啟動</p><p>  MOV KEY_V,#03H</p><p>  MAIN_1:LCALL KEY_SCAN</p>

96、<p>  MOV A,KEY_S</p><p>  XRL A,KEY_V</p><p><b>  JZ MAIN_1</b></p><p>  LCALL DELAY_5MS</p><p>  LCALL DELAY_5MS</p><p>  LCALL KEY_SCAN

97、</p><p>  MOV A,KEY_S</p><p>  XRL A,KEY_V</p><p><b>  JZ MAIN_1</b></p><p>  MOV KEY_V,KEY_S</p><p>  MOV A KEY_V</p><p>  XRL A,

98、#01H</p><p>  JNZ MAIN_2</p><p>  CLR TR0 ;進入調(diào)整狀態(tài),禁止Timer0</p><p>  MOV IE,#00H ;CPU禁止中斷</p><p>  LCALL KEY_PRE_PRO ;PRE按鍵按下,調(diào)用PRE按鍵處理程序</p><p>  SJMP MAIN

99、_1</p><p>  MAIN_2:MOV A,KEY_V</p><p>  XRL A,#02H</p><p>  JNZ MAIN_1</p><p>  LCALL KEY_ADJ_PRO ;DAJ按鍵按下,調(diào)用PRE按鍵處理程序</p><p>  SJMP MAIN_1</p><

100、p>  ****************************按鍵掃描程序**********************</p><p>  KEY_SCAN: CLR A </p><p>  MOV P1,#0FFH</p><p><b>  MOV C,PRE</b></p><p>  MOV ACC,

101、1,C</p><p><b>  MOV C,ADJ</b></p><p>  MOV ACC,0,C</p><p>  MOV KEY_S,A ;本次掃描鍵值存入KEY_S</p><p><b>  RET</b></p><p>  *************PR

102、E按鍵處理程序*******************</p><p>  KEY_PRE_PRO:INC FLAG</p><p>  MOV R4,FLAG</p><p>  CJNE R4,#1,KEY_PRE_1 ;注意,該指令不改變操作</p><p>  MOV R0,#0EH</p><p>  LCAL

103、L LCD_WCMD ;顯示光標“-”,整個光標不閃爍</p><p>  MOV DIS_S0,#61H ;“a”</p><p>  MOV DIS_S1,#6CH ;“1”</p><p>  MOV DIS_S2,#61H ;“a”</p><p>  MOV DIS_S3,#72H ;“r”</p><p>

104、  MOV DIS_S4,#6DH“m”</p><p>  MOV DIS_S5,#3AH“:”</p><p>  MOV R1,#50H“p”</p><p>  MOV DIS_H,HOUR_ARM</p><p>  MOV DIS_M,MIN_ARM</p><p>  MOV DIS_S,SEC_ARM&

105、lt;/p><p>  LCALL UPDATE_BUF</p><p>  LCALL DISPLAY_PAO ;更新屏顯內(nèi)容</p><p>  MOV R0,#47H</p><p>  LCALL LCD_POS ;使光標位于第一個調(diào)整項下</p><p>  JMP KEY_PRE_E</p>&l

106、t;p>  KEY_PRE_1:CJNE R4,#2,KEY_PRE_2</p><p>  MOV R0,#49H</p><p>  LCALL LCD_POS ;光標置小時報警設置位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_2:CJNE R4,#3,KEY_PRE_3</p>

107、;<p>  MOV R0,#4CH</p><p>  LCALL LCD_POS ;光標置分鐘報警設置位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_3: CJNE R4,#4,KEY_PRE_4</p><p>  MOV R0,#4FH</p><p> 

108、 LCALL LCD_POS ;光標置秒時報警設置位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_4:CJNE R4,#5,KEY_PRE_5</p><p>  MOV DIS_S0,#74H ;“t”</p><p>  MOV DIS_S1,#69H ;“i”</p><p&

109、gt;  MOV DIS_S2,#6DH ;“m”</p><p>  MOV DIS_S3,#65H ;“e”</p><p>  MOV DIS_S4,#3AH ;“:”</p><p>  MOV DIS_S5,#20H ; “ ”</p><p>  MOV R1,#50H ;“P”</p><p>  MOV

110、 DIS_H,HOUR</p><p>  MOV DIS_M,MIN</p><p>  MOV DIS_S,SEC</p><p>  LCALL UPDATE_BUF</p><p>  LCALL DISPLAY_PRO ;更新屏顯內(nèi)容</p><p>  MOV R0,#05H</p><

111、p>  LCALL LCD_POS ;光標置年調(diào)整位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_5:CJNE R4,#6,KEY_PRE_6</p><p>  MOV R0,#08H</p><p>  LCALL LCD_POS ;光標置月調(diào)整位置</p><p>

112、  JMP KEY_PRE_E</p><p>  KEY_PRE_6:CJNE R4,#7,KEY_PRE_7</p><p>  MOV R0,#0BH</p><p>  LCALL LCD_POS ;光標置日調(diào)整位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_7:CJN

113、E R4,#8,KEY_PRE_8</p><p>  MOV R0,#49H</p><p>  LCALL LCD_POS ;光標置時調(diào)整位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_8:CJNE R4,#9,KEY_PRE_9</p><p>  MOV R0,#4CH

114、</p><p>  LCALL LCD_POS ;光標置分調(diào)整位置</p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_9:CJNE R4,#10,KEY_PRE_10</p><p>  MOV R0,#4FH</p><p>  LCALL LCD_POS ;光標置秒調(diào)整位置<

115、;/p><p>  JMP KEY_PRE_E</p><p>  KEY_PRE_10:MOV FLAG,#0 ;FLAG到11,就清零</p><p>  MOB R0,#0CH</p><p>  LCALL LCD_WCMD ;設置LCD開顯示及光并不閃爍,不顯示“-”</p><p>  MOV R0,#01H&

116、lt;/p><p>  LCALL LCD_WCMD ;清除LCD的顯示內(nèi)容</p><p>  MOV IE,#8AH ;CPU開中斷,Timer0, Timer1開中斷</p><p>  SETB TE0 ;啟動Timer0</p><p>  KEY_PRE_E:</p><p><b>  RET<

117、;/b></p><p>  ******* ADJ 按鍵處理程序******************</p><p>  KEY_ADJ_PRO: MOV R5,FLAG</p><p>  CJNE R5,#0,KEY_ADJ_0 ;FLAG=0,如果有鬧鐘聲音,就停止鬧鐘聲音</p><p><b>  MOV C,TR

118、1</b></p><p>  JNC KEY_ADJ_A</p><p><b>  CLR TR1</b></p><p>  KEY_ADJ_A: JMP KEY_ADJ_E</p><p>  KEY_ADJ_0: CJNE R5,#1,KEY_ADJ_1 ;FLAG=1,調(diào)整是否啟用鬧鐘</p

119、><p><b>  CPL ALARM</b></p><p>  LCALL UPDATE_BUF</p><p>  LCALL DISPLAY_PRO</p><p>  MOV R0,#47H</p><p>  LCALL LCD_POS</p><p>  JMP

120、 KEY_ADJ_E</p><p>  KEY_ADJ_1: CJNE R5,#2,KEY_ADJ_2 ;FLAG=2,調(diào)整鬧鐘時</p><p>  INC HOUR_ARM</p><p>  MOV A,HOUR_ARM</p><p>  CJNE A,#24,KEY_ADJ_1_1</p><p>  MO

121、V HOUR_ARM,#0</p><p>  KEY_ADJ_1_1: MOV DIS_H,HOUR_ARM</p><p>  LCALL UPDATE_BUF</p><p>  LCALL DISPLAY_PRO</p><p>  MOV R0,#49H</p><p>  LCALL LCD_POS<

溫馨提示

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

評論

0/150

提交評論