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

下載本文檔

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

文檔簡介

1、<p><b>  摘要</b></p><p>  本設計是基于51系列的單片機進行的實時日歷和時鐘顯示設計,可以顯示年月日時分秒及周信息,具有可調(diào)整日期和時間功能。在設計的同時對單片機的理論基礎和外圍擴展知識進行了比較全面準備。</p><p>  實時日歷和時鐘顯示的設計過程在硬件與軟件方面進行同步設計。硬件部分主要由AT89S52單片機,LED顯示電

2、路,以及調(diào)時按鍵電路等組成,系統(tǒng)通過LED顯示數(shù)據(jù),所以具有人性化的操作和直觀的顯示效果。軟件方面主要包括時鐘程序、鍵盤程序,顯示程序等。本系統(tǒng)以單片機的匯編語言進行軟件設計,為了便于擴展和更改,軟件的設計采用模塊化結構,使程序設計的邏輯關系更加簡潔明了,以便更簡單地實現(xiàn)調(diào)整時間及日期顯示功能。所有程序編寫完成后,在wave軟件中進行調(diào)試,確定沒有問題后,在Proteus軟件中嵌入單片機內(nèi)進行仿真。</p><p&g

3、t;  關鍵詞:AT89S52; DS1302; LED</p><p>  the led display at89s52 monolithic integrated circuits, and when should the electrical circuits, the system through the led display data so be humanized operate and intu

4、itive that effect. including the software application programs, the keyboard, the program, etc. This system to monolithic integrated circuits of the assembly language for easily developing software design, and changes, s

5、oftware design to use modular design, the programming logical relationship with more and more so as to realize </p><p>  Key Words:AT89S52; DS1302; LED</p><p><b>  目錄</b></p>

6、<p><b>  1概述1</b></p><p><b>  2設計方案論證2</b></p><p><b>  2.1功能要求2</b></p><p><b>  2.2方案確定2</b></p><p>  2.2.1單片機芯

7、片的選擇方案和論證2</p><p>  2.2.2顯示模塊選擇方案和論證3</p><p>  2.2.3時鐘芯片的選擇方案和論證3</p><p>  2.2.4電路設計最終方案確定3</p><p>  3主控制器和外圍器件4</p><p>  3.1AT89S52單片機4</p>&

8、lt;p>  3.2DS1302時鐘芯片4</p><p>  3.2.1DS1302芯片介紹4</p><p>  3.2.2DS1302 的應用8</p><p>  3.3數(shù)碼管LED8</p><p>  3.4譯碼器74HC1389</p><p>  3.5鎖存器74LS2449</

9、p><p><b>  4硬件設計10</b></p><p>  4.1電路設計框圖10</p><p>  4.2系統(tǒng)概述10</p><p>  4.3電源設計10</p><p>  4.4單片機的復位電路11</p><p>  4.5單片機系統(tǒng)的晶振電路

10、11</p><p>  4.6主電路設計12</p><p><b>  5軟件設計13</b></p><p>  5.1主程序設計13</p><p>  5.2鍵盤子程序設計14</p><p>  5.3日歷時鐘子程序設計16</p><p>  5.4

11、顯示子程序設計18</p><p><b>  6系統(tǒng)調(diào)試18</b></p><p>  6.1軟件調(diào)試18</p><p>  6.2硬件調(diào)試19</p><p><b>  7結論20</b></p><p><b>  致謝22</b>

12、;</p><p><b>  參考文獻23</b></p><p><b>  附錄24</b></p><p>  附錄Ⅰ硬件電路圖24</p><p>  附錄Ⅱ主程序源代碼25</p><p>  附錄Ⅲ外文翻譯原文39</p><p&g

13、t;  附錄Ⅳ外文翻譯譯文50</p><p><b>  -</b></p><p><b>  1概述</b></p><p>  在日新月異的21世紀里,家用電子產(chǎn)品得到了迅速發(fā)展。許多家電設備都趨于人性化、智能化,這些電器設備大部分都含有CPU控制器或者是單片機。單片機以其高可靠性、高性價比、低電壓、低功耗等一系

14、列優(yōu)點,近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應用于工業(yè)控制系統(tǒng)、通訊設備、日常消費類產(chǎn)品和玩具等。并且已經(jīng)深入到工業(yè)生產(chǎn)的各個環(huán)節(jié)以及人民生活的各個方面,如車間流水線控制、自動化系統(tǒng)等、智能型家用電器(冰箱、空調(diào)、彩電)等。用單片機來控制的小型家電產(chǎn)品具有便攜實用,操作簡單的特點。</p><p>  時鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著時間的推移,科學技術的不斷發(fā)展,人們對時間計量的精度要求越來越

15、高,應用越來越廣。怎樣讓時鐘更好的為人民服務,怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設計出新型時鐘。</p><p>  現(xiàn)今,高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術,因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時,分,秒顯

16、示時間的功能,還可以進行時和分的校對,片選的靈活性好。</p><p>  時鐘電路在計算機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎。在一個單片機應用系統(tǒng)中,時鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標準定時時鐘,即定時時間,它通常有兩種實現(xiàn)方法:一是用軟件實現(xiàn),即用單片機內(nèi)部的可編程定時/計數(shù)器來實現(xiàn)

17、,但誤差很大,主要用在對時間精度要求不高的場合;二是用專門的時鐘芯片實現(xiàn),在對時間精度要求很高的情況下,通常采用這種方法,典型的時鐘芯片有:DS1302,DS12887,X1203等都可以滿足高精度的要求。</p><p>  本文設計的日歷和時鐘的顯示廣泛用于小型智能家用電子產(chǎn)品,如電子鐘。利用單片機進行控制,實時時鐘芯片DS1302進行記時,外加掉電存儲電路和顯示電路,可實現(xiàn)時間的調(diào)整和顯示。電子鐘既可廣泛應

18、用于家庭,也可應用于銀行、郵電、賓館、醫(yī)院、學校、企業(yè)、商店等相關行業(yè)的大廳,以及單位會議室、門衛(wèi)等場所。因而,此設計具有相當重要的現(xiàn)實意義和實用價值。</p><p><b>  2設計方案論證</b></p><p><b>  2.1功能要求</b></p><p>  1、能顯示年、月、日、時、分、秒、星期<

19、/p><p>  2、能對時間進行手動修正</p><p><b>  3、采用24小時制</b></p><p>  4、使用LED顯示時間參數(shù)</p><p>  5、上電后,電子鐘顯示“2010年 1月 1日”</p><p>  “1時 1分 1秒 星期1”</p>&

20、lt;p>  對時,分,秒,日,月,年高位為0時做消隱處理,只顯示單個數(shù)字以增強其可讀性。</p><p><b>  2.2方案確定</b></p><p>  2.2.1單片機芯片的選擇方案和論證</p><p><b>  方案一: </b></p><p>  采用89C51芯片作為硬

21、件核心,采用Flash ROM,內(nèi)部具有4KB ROM 存儲空間,能于3V的超低壓工作,而且與MCS-51系列單片機完全兼容,但是運用于電路設計中時由于不具備ISP在線編程技術, 當在對電路進行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,對芯片的多次拔插會對芯片造成一定的損壞。</p><p><b>  方案二:</b></p><p>  采用AT

22、89S52,片內(nèi)ROM全都采用Flash ROM;能以3V的超底壓工作;同時也與MCS-51系列單片機完全該芯片內(nèi)部存儲器為8KB ROM 存儲空間,同樣具有89C51的功能,且具有在線編程可擦除技術,當在對電路進行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,不需要對芯片多次拔插,所以不會對芯片造成損壞。</p><p>  所以選擇采用AT89S52作為主控制系統(tǒng).</p><

23、;p>  2.2.2顯示模塊選擇方案和論證</p><p><b>  方案一:</b></p><p>  采用LED液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價格昂貴,需要的接口線多,所以在此設計中不采用LED液晶顯示屏。</p><p><b>  方案二:</b>&l

24、t;/p><p>  采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。</p><p><b>  方案三:</b></p><p>  采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格適中,對于顯示數(shù)字最合適,而且采用動態(tài)掃描法與單片機連接時,占

25、用的單片機口線少。</p><p>  所以采用了LED數(shù)碼管作為顯示。</p><p>  2.2.3時鐘芯片的選擇方案和論證</p><p><b>  方案一:</b></p><p>  直接采用單片機定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但

26、是,實現(xiàn)的時間誤差較大。所以不采用此方案。</p><p><b>  方案二:</b></p><p>  采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償?shù)哪赀M行計數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V~5.5V范圍內(nèi),2.5V時耗電小于300nA.</p>

27、<p>  2.2.4電路設計最終方案確定</p><p>  綜上各方案所述,對此次作品的方案選定: 以單片機AT89S52為主控制器,時間數(shù)據(jù)是通過時鐘芯片DS1302來讀取,并通過LED數(shù)碼管顯示出來,并用鍵盤來完成對當前時間的調(diào)整。</p><p>  3主控制器和外圍器件</p><p>  3.1AT89S52單片機</p>&l

28、t;p>  AT89S52是一種低功耗、高性能CMOS 8位微控制器,使用 ATMEL 公司高密度非易失性存儲器技術制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。并具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模

29、式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。</p><p>  3.2DS1302時鐘芯片</p><p>  3.2.1DS1302芯片介紹</p><p>  低功耗時鐘芯片DS1302可以對年、月、日、時、分、秒進行計時,且具

30、有閏年補償?shù)榷喾N功能。DS1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄上,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。這種記錄對長時間的連續(xù)測控系統(tǒng)結果的分析以及對異常數(shù)據(jù)出現(xiàn)的原因的查找有重要意義。</p><p>  采用DS1302作為記錄測控系統(tǒng)中的數(shù)據(jù)記錄,其軟硬件設計簡單,時間記錄準確,既避免了連續(xù)記錄的大工作量,又避免了定時記錄的盲目性,給連續(xù)長時間的測量、控制系統(tǒng)的正常運行及檢查都來了很

31、大的方便,可廣泛應用于長時間連續(xù)的測控系統(tǒng)中。在測量控制系統(tǒng)中,特別是長時間無人職守的測控系統(tǒng)中,經(jīng)常需要記錄某些具有特殊意義的數(shù)據(jù)及其出現(xiàn)的時間。記錄及分析這些特殊意義的數(shù)據(jù),對測控系統(tǒng)的性能分析及正常運行具有重要的意義。傳統(tǒng)的數(shù)據(jù)記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此只能記錄數(shù)據(jù)而無法準確記錄其出現(xiàn)的時間;若采用單片機計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設置中斷、查詢等,同樣耗費單片機的資源,而且某

32、些測控系統(tǒng)可能不允許。而在系統(tǒng)中采用DS1302則能很好地解決這個問題。</p><p>  DS1302的性能特性</p><p>  ·實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償?shù)哪赀M行計數(shù);</p><p>  ·用于高速數(shù)據(jù)暫存的31×8位RAM;</p><p>  ·最少引腳的串行I

33、/O;</p><p>  ·2.5~5.5V 電壓工作范圍;</p><p>  ·2.5V時耗電小于300nA;</p><p>  ·用于時鐘或RAM數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式;</p><p><b>  ·簡單的3線接口;</b></p>

34、;<p>  ·可選的慢速充電(至VCC1)的能力。</p><p>  DS1302時鐘芯片包括實時時鐘/日歷和31字節(jié)的靜態(tài)RAM。它經(jīng)過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月和月末的日期自動進行調(diào)整,還包括閏年校正的功能。時鐘的運行可以采用24h或帶AM(上午)/PM(下午)的12h格式。采用三線接口與CPU進行同步通

35、信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302有主電源/后備電源雙電源引腳:VCC1 在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電池備份;VCC2在雙電源系統(tǒng)中提供主電源,在這種運用方式中,VCC1 連接到備份電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由VCC1或VCC2中較大者供電。當VCC2大于VCC1+0.2V時,VCC2給DS1302供電;當VCC2小于VCC1時,DS

36、1302由VCC1供電。</p><p>  DS1302數(shù)據(jù)操作原理</p><p>  DS1302在任何數(shù)據(jù)傳送時必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被輸入。無論是讀周期還是寫周期,開始8位指定40個寄存器中哪個被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。

37、時鐘脈沖的個數(shù)在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加字節(jié)數(shù),最大可達248字節(jié)數(shù)。</p><p>  圖3-1 DS1302管腳圖</p><p>  如果在傳送過程中置RST為低電平,則會終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在VCC >=2.5V之前,RST腳必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。DS1302的管腳圖如圖3-1

38、所示,表3-2為各引腳的功能。</p><p>  表3-2 DS1302引腳功能表</p><p>  DS1302的控制字如圖3-3所示。控制字節(jié)的最高有效位(位7)必須是邏輯1;如果它為邏輯0,則不能把數(shù)據(jù)寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù);為1表示存取RAM數(shù)據(jù)。位5~1(A4~A0)指示操作單元的地址。最低有效位(位0)如為0,表示要進行寫操作;為1表示進

39、行讀操作??刂谱止?jié)總是從最低位開始輸入/輸出。</p><p>  圖3-3 控制字節(jié)的含義</p><p>  為了提高對32個地址的尋址能力(地址/命令位1~5=邏輯1),可以把時鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或?qū)?。在時鐘/日歷寄存器中的地址9~31或RAM寄存器中的地址31不能存儲數(shù)據(jù)。在多字節(jié)方式中,讀或?qū)憦牡刂?的位0開始

40、。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個寄存器。但是,當以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有31字節(jié)。不管是否寫了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。數(shù)據(jù)讀寫程序如圖3-4所示。</p><p>  圖3-4數(shù)據(jù)讀寫程序</p><p>  DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表3-5,其中

41、奇數(shù)為讀操作,偶數(shù)為寫操作。</p><p>  表3-5 片內(nèi)時鐘數(shù)據(jù)寄存器</p><p>  3.2.2DS1302 的應用</p><p>  實時時鐘芯片DS1302采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,也可以關閉充電功能,芯片采用32768Hz晶振。要特別說明的是,備用電源BT1可以用電池或超級電容(10萬μF以上)。雖然DS1302在

42、主電源掉電后耗電很小,但如果要長時間保證時鐘正常,最好選用小型充電電池。如果斷電時間較短(幾小時或幾天),可以用漏電較小的普通電解電容代替(100μF就可以保證1小時的正常走時)。DS1302在第一次加電后,需進行初始化操作。初始化后就可以按正常方法調(diào)整時間。DS1302的時鐘電路如圖3-6所示。</p><p>  圖3-6 DS1302時鐘電路</p><p><b>  3

43、.3數(shù)碼管LED</b></p><p>  LED顯示器由若干個發(fā)光二極管組成,當發(fā)光二極管導通時,相應的一個筆畫或一個點就發(fā)光??刂葡鄳墓軐ǎ湍茱@示出對應字符。各段LED顯示器需要由驅(qū)動電路驅(qū)動。在七段LED顯示器中,通常將各段發(fā)光二極管的陰極或陽極連在一起作為公共端。將各段發(fā)光二極管連在一起的叫共陽極顯示器,用低電平驅(qū)動;將陰極連在一起的叫共陰極顯示器,用高電平驅(qū)動。</p>

44、<p>  靜態(tài)顯示就是每一個顯示器各筆畫段都要獨占具有一個鎖存功能的輸出口線,CPU把要顯示的字形代碼送到輸出口上,就可以使顯示器上顯示所需的數(shù)字或符號,此后,即使CPU不在去訪問它,因為各筆畫段借口具有鎖存功能,顯示的內(nèi)容也不會消失。</p><p>  動態(tài)顯示是指顯示器顯示某一字符時,相應段的發(fā)光二極管恒定地導通或截止。靜態(tài)顯示有并行輸出和串行輸出兩種方式。在本系統(tǒng)中數(shù)碼管使用共陰極接法而且是

45、用動態(tài)顯示。</p><p>  3.4譯碼器74HC138</p><p>  74HC138譯碼器是通過3條線來達到控制8條線的狀態(tài),就是通過3條控制線A0、A1、A2不同的高低電平組合來控制Y0~Y7的輸出狀態(tài),其中4和5為使能地端,與8引腳共同接地,當接高電平時Y0到Y7輸出高電平。6號腳為使能端,為高電平時有效。74HC138封裝如圖3-7。當需要級聯(lián)時只需要改變使能端信號引腳即

46、可,連接方法簡單。</p><p>  圖3-7 74HC138封裝圖</p><p>  3.5鎖存器74LS244</p><p>  74ls244由2組、每組四路輸入、輸出構成。每組有一個控制端G,由控制端的高或低電平?jīng)Q定該組數(shù)據(jù)被接通還是斷開。</p><p>  圖3-8 74LS244引腳圖</p><p&g

47、t;<b>  4硬件設計</b></p><p><b>  4.1電路設計框圖</b></p><p><b>  4.2系統(tǒng)概述</b></p><p>  本電路是由AT89S52單片機為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時鐘電路由DS1302提供,它是一種高性能、低功耗

48、、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31*8的用于臨時性存放數(shù)據(jù)的RAM寄存器。可產(chǎn)生年、月、日、周日、時、分、秒,具有使用壽命長,精度高和低功耗等特點,同時具有掉電自動保存功能;顯示部份由15個數(shù)碼管,74Hs138、74ls244構成。使用

49、動態(tài)掃描顯示方式對數(shù)字的顯示。</p><p>  硬件的結構和可靠性直接影響著整個系統(tǒng)的可靠性,所以合理的安排電路能提高電子產(chǎn)品的性能。</p><p><b>  4.3電源設計</b></p><p>  在這里因設計分工和側(cè)重點不同,電源模塊用通用的5v變壓器。</p><p>  4.4單片機的復位電路<

50、/p><p>  圖4-2手動復位電路</p><p>  在系統(tǒng)運行的過程中,有時可能對系統(tǒng)需要進行復位,為了避免對硬件系統(tǒng)經(jīng)常加電和斷電造成的損害,設計了手動的復位電路。如圖4-2所示。這種電路的設計,在系統(tǒng)的運行過程中需要復位時,只需使開關閉合,在RST端就會出現(xiàn)一定時間的高電平信號,從而使單片機實現(xiàn)復位。</p><p>  4.5單片機系統(tǒng)的晶振電路</

51、p><p>  單片機必須在時鐘的驅(qū)動下才能進行工作。MCS-51系列單片機內(nèi)部都有一個時鐘振蕩電路,只需外接晶振源,就能產(chǎn)生一定頻率的時鐘信號送到單片機的內(nèi)部的各個單元,決定單片機的工作速度。圖4-3就是內(nèi)部時鐘工作方式的電路圖,這是一種常用的方式。這種方式是外界振蕩源,本設計就采用這種外接晶振的方法。電路中的兩個電容的作用有兩個:一是幫助振蕩器起振(C1 C2的值大,起振的速度慢;反之,速度快。);二是對振蕩器的

52、頻率起到微調(diào)的作用(C1 C2的值大,頻率略有減少,反之,頻率略有提高)。C1 C2的值采用30pF。</p><p>  圖4-3單片機內(nèi)部晶振電路連接圖</p><p><b>  4.6主電路設計</b></p><p>  主電路的功能是完成年、月、日、星期、時、分、秒之間的轉(zhuǎn)換, 再送往LED顯示,并且接受鍵盤操作,對日期和時間進行校

53、正。</p><p>  電路原理圖如圖4-4所示,顯示部分用P0口做為輸出數(shù)據(jù)接到LED數(shù)碼管a到h,并接74ls244做為各段的驅(qū)動(為了簡化電路圖在此用了8個上拉電阻代替74ls244)。用P3口的低3位接譯碼器的A0,A1,A2端,用P3.3,P3.4,P3.5分別接譯碼器的使能端,通過控制P3口來控制LED的動態(tài)掃描。單片機的18和19引腳接12MHZ的晶振,并接兩個22PF的電容同時接地,單片機復位端

54、接一極性電容并連接到電源處,在極性電容的負極接一10K的電阻,并連接至地做為放電用。本設計用到四個獨立式鍵盤分別接到P1口的低4位,用P1口的P1.4,P1.5,P1.6接日歷時鐘的使能端和時鐘端及數(shù)據(jù)輸入輸出口,并在日歷時鐘上接一32.768KHZ的晶振,并接兩個22PF的電容終端和地相連,各芯片的電源部分分別接到有開關式電源產(chǎn)生的+5V電源上,芯片的接地端都接在公共地上,在這里接電源部分就不再一一詳述。</p><

55、;p>  設計采用動態(tài)顯示,輪流掃描各個LED使之顯示相應的數(shù)型碼,當掃描頻率大于人眼所能識別的頻率時就看不到閃爍現(xiàn)象。動態(tài)顯示的亮度不如靜態(tài)顯示,但靜態(tài)顯示占用的I/O口資源較多,往往用移位寄存器74LS164等來擴充其I/O口不足的情況,當顯示位數(shù)較多時,這樣勢必增加硬件開銷,增大成本,不利于開闊市場。本設計的突出之處在于硬件電路簡單,大大減少了硬件開銷,這樣又勢必增加了軟件開發(fā)的難度,但降低了成本有利于市場的開闊。</

56、p><p><b>  圖4-4電路原理圖</b></p><p><b>  5軟件設計</b></p><p>  軟件的設計是設計控制系統(tǒng)的應用程序。其任務是在整體設計和硬件設計的基礎上,確定程序結構,分配內(nèi)RAM資源,劃分功能模塊,然后進行主程序和各模塊程序的設計,最后連接起來成為一個完整應用程序,與硬件相結合完成相應

57、功能。</p><p><b>  5.1主程序設計</b></p><p>  主程序才用模塊化設計,流程圖如圖5-1所示。</p><p>  從上面主程序看出,主程序的組成是通過分別調(diào)用各子程序組成總體系統(tǒng)功能,能很直觀的看出主程序所要完成的功能,首先是初始化各模塊,之后調(diào)用鍵盤完成時間的調(diào)整,調(diào)用日歷子程序完成日歷時鐘的初始化和時間數(shù)據(jù)

58、的讀寫,調(diào)用顯示子程序顯示數(shù)據(jù),最后又轉(zhuǎn)到鍵盤程序來回循環(huán)。</p><p>  初始化部分主要有初始化定時器部分和和一些寄存器、標志位、初始化時間等。</p><p>  對定時器T0初始化時,首先置初值,CPU開中斷,定時器T0開中斷,并且開始計數(shù),而對定時器T1初始化時,首先置初值,定時器T1關中斷,并且停止計數(shù),只有收到命令時才能產(chǎn)生中斷。</p><p>

59、  寄存器的初始化主要是初始化執(zhí)行程序時用到的部分RAM空間,防止程序執(zhí)行時帶來混亂。</p><p>  標志位初始化是對時間調(diào)整時判斷是調(diào)分還是調(diào)時等而專設的位標志,初始化過程中標志位全部置0,即開始時是處于顯示狀態(tài),而不是調(diào)整狀態(tài),這一點在程序中相當明了。</p><p>  初始化時間是開機時顯示的時間,并通過調(diào)用日歷時鐘的寫程序來完成時間的置初值。</p><

60、p><b>  圖5-1程序流程圖</b></p><p>  5.2鍵盤子程序設計</p><p>  多功能鍵盤程序的設計是本設計的難點,也是完成本設計的重點,當有鍵按下時,調(diào)用10ms延時程序,再判斷是否有鍵按下無則返回,若有先調(diào)用顯示程</p><p>  序再判斷是否松開,否則再轉(zhuǎn)到顯示程序,這樣避免了在按鍵松開之前能正常顯示。

61、其中K1鍵功能最多,通過判斷K1鍵按下的次數(shù)來判斷是調(diào)時間還是定時,并對對應的位置閃爍。本鍵盤深度為7級,即連續(xù)按下K1鍵8次時則返回到原來界面。當判斷鍵值為1時則為調(diào)秒狀態(tài),對應的秒低位閃爍,為2時為調(diào)分狀態(tài)并分閃爍,為3時為調(diào)時狀態(tài)并時閃爍,為4時為調(diào)日狀態(tài)并日閃爍,為5時為調(diào)月狀態(tài)并月閃爍,為6時為調(diào)年狀態(tài)并年閃爍,為7時為調(diào)星期狀態(tài)并星期閃爍。 K2為加1鍵,K3為減1鍵,K4為總返回鍵,即在調(diào)時見時不用只有按下K1鍵值為8才返

62、回,而通過按下K4鍵即可返回。由于鍵盤流程圖非常復雜,在此只表示秒,如圖5-2所示,其余略。</p><p>  5.3日歷時鐘子程序設計</p><p>  DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。日歷時鐘DS1302的讀寫需要初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數(shù)據(jù)的傳輸都是從主機啟動

63、寫時序開始,如果要求單總線器件回送是低位在先。讀寫都是16位數(shù)據(jù)高8位是地址低8位是數(shù)據(jù),在讀寫時要嚴格遵從其讀寫時序,否則讀寫將會失效。</p><p>  當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平

64、,這一點我們要一定注意。</p><p>  當RST置為高電平時,在串行時鐘的SCLK的上升沿,DS1302從I/O端口讀入一位數(shù)據(jù),8個串行時鐘脈沖就可以讀入一字節(jié)的數(shù)據(jù)。在串行時鐘的下降沿,DS1302向I/O端口輸出一位數(shù)據(jù),8個串行時鐘脈沖就可以輸出一字節(jié)的數(shù)據(jù)。</p><p>  顯示子程序設計電子產(chǎn)品是否實用其中顯示占了很重要的地位,很多數(shù)人都渴求用視覺效果好,范圍廣,直觀

65、明了,LED符合以上的要求,但相應的硬件設計相對復雜。</p><p>  5.4顯示子程序設計</p><p>  本設計的顯示部分具有消隱和閃爍功能,當時分秒等高位為0時顯示消隱, 此時在讀時間時更加明了,但低位不能顯示消隱。閃爍功能也是本設計的一個難點,本設計采用8個位標志位,其中一個標志位通過用定時器0產(chǎn)生一個周期大約為每秒1.5次,使閃爍時效果達到最好。此時定時器采用定時中斷的工

66、作方式,這樣可以充分利用CPU資源。另外7個標志位是時分秒等的位標志位,當秒標志位置1時即秒開閃爍,與用中斷產(chǎn)生的標志位相結合,即在一個周期內(nèi)為0時此時消隱為1時開顯示,這樣就使在調(diào)時間時對應的位閃爍。</p><p><b>  6系統(tǒng)調(diào)試</b></p><p>  單片機系統(tǒng)經(jīng)過總體設計,完成了硬件和軟件設計開發(fā)。通過軟件和硬件相結合系統(tǒng)即可運行。但編制好的程序

67、或焊接好的線路不能按預計的那樣正常工作是常見的事,經(jīng)常會出現(xiàn)一些硬件、軟件上的錯誤,這是軟件和硬件開發(fā)者經(jīng)常遇見的,這就需要通過調(diào)試來發(fā)現(xiàn)錯誤并加以改正。調(diào)試可分為硬件調(diào)試和軟件調(diào)試。本設計系統(tǒng)的已經(jīng)在PC機上用模擬開發(fā)軟件進行了檢測和調(diào)試,并運行成功,最后進行實物圖的硬件組裝與調(diào)試,這樣就給開發(fā)者在提供了方便。</p><p><b>  6.1軟件調(diào)試</b></p>&l

68、t;p>  本設計是在Proteus軟件和Wava6000軟件相結合調(diào)試的,完全用仿真軟件在PC機上對目標電路原理圖和程序進行檢測和調(diào)試。調(diào)試過程中單片機相應輸入端由通用鍵盤和鼠標設定,運行狀態(tài)、各寄存器狀態(tài)、端口狀態(tài)等都可以在指定的窗口區(qū)域顯示出來,以確定程序運行有無錯誤。</p><p>  目標程序糾錯:該階段工作通常在目標程序編輯時就完成。一般來說,仿真軟件能為用戶輸入的程序指令糾錯,包括書寫格式、

69、標號未定義或多重定義、轉(zhuǎn)移地址溢出等錯誤。</p><p>  整體程序調(diào)試:即把各子程序整體連起來進入到綜合電路調(diào)試,看是否能實現(xiàn)預計的功能顯示。在這階段若發(fā)生故障,可以考慮各子程序在運行時是否破壞現(xiàn)場,數(shù)據(jù)緩沖單元是否發(fā)生沖突,標志位的建立和清除在設計上是否失誤,堆棧是否溢出,輸入輸出狀態(tài)是否正常等。</p><p>  經(jīng)過多次修改程序最后調(diào)試出來理想的效果,如圖6-1所示</

70、p><p>  圖6-1 Proteus仿真</p><p>  用軟件模擬器調(diào)試不需任何在線仿真器,也不需要用戶樣機,直接就可以在PC機上開發(fā)和調(diào)試。調(diào)試和修改完畢后可以直接使用編程器將軟件固化在目標系統(tǒng)ROM中,然后投入運行。</p><p><b>  6.2硬件調(diào)試</b></p><p>  焊接電路板如圖6-2所

71、示</p><p>  單片機應用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開的,許多硬件故障在軟件調(diào)試時才能發(fā)現(xiàn),但通常要先排除系統(tǒng)中明顯的硬件故障。調(diào)試工作可以分為四步:</p><p>  線路檢查:根據(jù)硬件邏輯設計圖,仔細檢查樣機線路是否連接正確,并核對元器件的型號、規(guī)格和安裝是否符合要求,必要時可用萬用表檢測線路通斷情況。</p><p>  電源調(diào)試:樣機的第一次通

72、電測試很重要,若樣機中存在電源故障,則加電后將造成器件損壞。調(diào)試的方法有兩種:一種是斷開樣機穩(wěn)壓電源的輸出端,檢查空載時電源工作情況;另一種是拔下樣機上的主要集成芯片,檢查電源的負載能力(用假負載)。確保電源無故障并性能符合設計要求。</p><p>  通電檢查:在確保電源良好前提下,接通電源。最好在電源與其余電路之間串接一個電流表。若接通后電流很大,必須立即切斷電源。電源大得超出正常范圍,說明電路中有短路或故

73、障。通電檢查的主要目的是看系統(tǒng)是否存在短路或由元器件損壞、裝配錯誤引起的電流異常。</p><p>  檢查芯片的邏輯關系是否出錯:加電后檢查各芯片插座上相關引腳的電位,仔細測量相應的輸入輸出電平是否正常。單片機系統(tǒng)大都是數(shù)字邏輯電路,使用電平檢查法可首先查出邏輯設計是否正確,選用器件和連接關系是否符合要求等。</p><p>  本設計特點突出,性價比高,適合于家庭掛歷,有很高應用價值。

74、</p><p><b>  7結論</b></p><p>  硬件系統(tǒng)關系到所要設計的電子產(chǎn)品好懷,如系統(tǒng)抗干擾性等,所以要合理的安排盡量減少干擾提高性能。單片機是很容易受干擾的控制器,當采用外部晶振時,應盡量讓其靠近單片機減少對其干擾,防止程序亂飛現(xiàn)象。同時還可以采用隔離等方式減少干擾,硬件系統(tǒng)設計的好壞很大部分來源于經(jīng)驗,所以我們要有動手的好習慣。</p

75、><p>  軟件設計是核心部分,具有多樣化,靈活性高,易移植等優(yōu)點,要深深理會各指令的含義才能更加熟練應用,中斷的合理利用可以減少CPU利用資源,具有執(zhí)行效率高等優(yōu)點,本設計用到定時器中斷以減少對CPU的占用,更好的處理其他功能。軟件的設計大部分采用模塊化設計的方法以方便調(diào)試,并使其可讀性大大增強,方便更改和移植。</p><p>  在這次設計中我學到了很多,也發(fā)現(xiàn)了自己的不足,也難免有錯

76、誤之處,敬請?zhí)岢觯?lt;/p><p><b>  致謝</b></p><p>  不知不覺,十二周的畢業(yè)設計結束了。我的畢業(yè)論文已整理完畢,電路調(diào)試進展良好。畢業(yè)設計的完成意味著我的大學學習生活即將結束,從此我將進入一個新的人生旅途、開始一段嶄新的生活——工作。在此,我衷心地感謝所有在我做畢業(yè)設計期間幫助過我的人。 </p><p>  首先我

77、要感謝XX老師、XX老師XX老師的大力幫助和支持。在整個設計過程當中,為我的畢業(yè)設計帶來了很大方便。同時在我完成畢業(yè)設計的過程中提供了很多指導性的意見,使我受益匪淺。在此,我衷心感謝老師們給予我的幫助和教育。</p><p>  此外,還要衷心感謝其他所有對本課題的研究和論文撰寫有過幫助的同學。</p><p>  最后,我要感謝我的母?!猉XXXXXX,在校期間,這里給我留下了美好的回

78、憶。特別是在我即將踏上工作崗位的同時,畢業(yè)設計整個過程給了我這樣一個鍛煉的機會,使我加深了對以前知識的理解和鞏固,拓寬了知識面,也提高了我對所學知識的綜合應用能力。祝愿母校的將來更美好!</p><p><b>  參考文獻</b></p><p>  [01]何宏主編.單片機原理與接口技術.北京:國防工業(yè)出版社.2006.07</p><p>

79、;  [02]楊西明,朱騏主編.單片機編程與應用入門.北京:機械工業(yè)出版社.2004.06</p><p>  [03]先鋒工作室編著.單片機程序設計實例.北京:清華大學出版社.2003.01</p><p>  [04]謝宜仁主編.單片機實用技術問答.北京:人民郵電出版社.2003.02</p><p>  [05]孫江宏,李良玉等編著.Protel99電路設計與

80、應用.北京:機械工業(yè)出版社.2004.07</p><p>  [06]房小翠,王金鳳編著.單片機實用系統(tǒng)設計技術.北京:國防工業(yè)出版社.1999.06</p><p>  [07]秦曾煌主編.電工學(電子技術).北京:高等教育出版社,2004</p><p>  [08]何立民.單片機高級教程應用與設計.北京:北京航空航天大學出版社,2000</p>

81、<p>  [09]劉國榮單片微型計算機技術.北京:機械工業(yè)出版社,1996</p><p>  [10]王迎旭.單片機原理與應用.北京:機械工業(yè)出版社,2004</p><p>  [11]于永權.ATMEL89系列單片機應用技術.北京:北京航空航天大學出版社,2001</p><p>  [12]高峰.單片微型計算機原理與接口技術.北京:科學出版社,

82、2003</p><p>  [13]各種網(wǎng)絡教程及其他</p><p><b>  附錄</b></p><p><b>  附錄Ⅰ硬件電路圖</b></p><p><b>  附錄Ⅱ主程序源代碼</b></p><p>  ZHUAN BIT 50

83、H ;閃爍標志位輔助標志位</p><p>  ZHUAN1 BIT 51H ;年開閃爍的標志位</p><p>  ZHUAN2 BIT 52H ;月開閃爍的標志位</p><p>  ZHUAN3 BIT 53H ;日開閃爍的標志位</p><p>  ZHUAN4 BIT 54H ;時開閃爍的標志位</p&g

84、t;<p>  ZHUAN5 BIT 55H ;分開閃爍的標志位</p><p>  ZHUAN6 BIT 56H ;秒開閃爍的標志位</p><p>  ZHUAN7 BIT 57H ;星期開閃爍的標志位</p><p><b>  ORG 0000H</b></p><p>  LJMP S

85、TART ;開始并初始化</p><p>  ORG 000BH ;定時/計數(shù)T0中斷</p><p>  LJMP ZDUAN </p><p>  ORG 001BH ;定時/計數(shù)T1中斷</p><p>  LJMP ZDUAN2</p><p>  Z

86、DUAN:MOV TH0,#00H ;使ZHUAN由正到負周期大約為1.5即當開閃爍時 每秒大約閃爍1.5次環(huán)境</p><p>  MOV TL0,#00H</p><p>  DJNZ R7,ZDUAN1 ;循環(huán)指令</p><p>  CPL ZHUAN ;閃爍標志位求反</p><p><b>  

87、MOV R7,#3</b></p><p>  ZDUAN1:RETI ;中斷返回</p><p>  ZDUAN2:MOV TH1,#0FCH</p><p>  MOV TL1,#43H</p><p><b>  CPL P3.0</b></p><p><b&

88、gt;  RETI</b></p><p><b>  ORG 0100H</b></p><p>  START:MOV SP,#70H ;設堆棧</p><p>  MOV TMOD,#11H ;T0,TI工作方式1</p><p>  MOV TH0,#00H</p><p>

89、;  MOV TL0,#00H</p><p>  MOV TH1,#0FCH</p><p>  MOV TL1,#43H</p><p>  SETB EA ;開放CPU</p><p>  SETB ET0 ;開放T0中斷</p><p>  SETB TR0

90、 ;啟動T0工作</p><p>  CLR ZHUAN1 ;初始化標志位</p><p>  CLR ZHUAN2</p><p>  CLR ZHUAN3</p><p>  CLR ZHUAN4</p><p>  CLR ZHUAN5</p><p>  CLR ZH

91、UAN6</p><p>  CLR ZHUAN7</p><p><b>  MOV R7,#3</b></p><p>  MOV 5FH,#00H ;初始化寄存器</p><p>  MOV 30H,#01H ;時間賦初始值</p><p>  MOV 31H,#01H</p&

92、gt;<p>  MOV 32H,#01H</p><p>  MOV 33H,#01H</p><p>  MOV 34H,#01H</p><p>  MOV 35H,#01H</p><p>  MOV 36H,#10H</p><p>  SETB P1.4 ;啟動設置寫保護寄存器</p&

93、gt;<p>  MOV A,#10001110B ;命令字節(jié),07H寄存器寫</p><p>  ACALL WBYTE </p><p>  MOV A,#00H ;允許寫數(shù)據(jù)字節(jié)</p><p>  ACALL WBYTE</p><p>  CLR P1.4 ;RST=0,停止傳送</p>

94、<p>  MOV R0,#30H ;數(shù)據(jù)存放首地址</p><p>  MOV R2,#8 ;寫8個字節(jié)</p><p>  SETB P1.4 ;啟動連續(xù)寫8個字節(jié)</p><p>  MOV A,#0BEH ;設多字節(jié)寫命令字</p><p>  LCALL WBYTE</p><p&

95、gt;  CHUSHI:MOV A,@R0 ;取數(shù)據(jù)</p><p>  LCALL WBYTE ;寫一個字節(jié)</p><p><b>  INC R0</b></p><p>  DJNZ R2,CHUSHI ;循環(huán)寫8個字節(jié)</p><p><b>  ;主程序</b></p&g

96、t;<p>  MAIN:LCALL JIAN ;調(diào)鍵盤子程序</p><p>  LCALL RILI ;調(diào)日歷時鐘程序</p><p>  LCALL XIAN ;調(diào)顯示程序</p><p>  SJMP MAIN </p><p><b>  ;鍵盤程序</b></p&g

97、t;<p>  JIAN:MOV P1,#0FFH ;初始</p><p><b>  MOV A,P1</b></p><p><b>  CPL A</b></p><p>  JNZ JI1 ;判鍵按下</p><p>  LJMP JIAN4</p&g

98、t;<p>  JI1:LCALL DELAY ;調(diào)延時</p><p><b>  CPL A</b></p><p><b>  JNZ JI2 </b></p><p>  LJMP JIAN4</p><p>  JI2:JNB P1.1,JIAN3 ;判K2鍵為0轉(zhuǎn)&

99、lt;/p><p>  JNB P1.2,JIAN3 ;判K3鍵為0轉(zhuǎn)</p><p>  JIAN0:MOV P1,#0FFH</p><p>  JNB P1.3,JIAN3 ;判K4鍵為0轉(zhuǎn)</p><p>  JNB P1.0,JIAN1 ;判K1鍵為0轉(zhuǎn)</p><p>  LJMP JI

100、ANX</p><p>  JIAN1:LCALL DELAY ;調(diào)延時去抖動</p><p>  JB P1.0,JIANX ;為1就是鍵抖動</p><p>  JIAN11:LCALL XIAN ;調(diào)顯示</p><p>  JNB P1.0,JIAN11 ;判鍵K1松開</p><p>  MOV

101、 A,5FH </p><p>  ADD A,#1 ;寄存器加1</p><p><b>  MOV 5FH,A</b></p><p>  CJNE A,#8,JIANX</p><p>  LJMP JIAN3</p><p>  JIANX:MOV A,5FH</p

102、><p>  CJNE A,# 1,JIA1 ;比較轉(zhuǎn)移指令A不等于#時,轉(zhuǎn)移</p><p>  LJMP TIAOM ;轉(zhuǎn)調(diào)秒子程序</p><p>  JIA1:MOV A,5FH</p><p>  CJNE A,#2,JIA2</p><p>  LJMP TIAOF ;轉(zhuǎn)調(diào)分子程序</p&g

103、t;<p>  JIA2:MOV A,5FH</p><p>  CJNE A,#3,JIA3</p><p>  LJMP TIAOS ;轉(zhuǎn)調(diào)時子程序</p><p>  JIA3:MOV A,5FH</p><p>  CJNE A,#4,JIA4</p><p>  LJMP TIAOR

104、 ;轉(zhuǎn)調(diào)日子程序</p><p>  JIA4:MOV A,5FH</p><p>  CJNE A,#5,JIA5</p><p>  LJMP TIAOY ;轉(zhuǎn)調(diào)月子程序</p><p>  JIA5:MOV A,5FH</p><p>  CJNE A,#6,JIA6</p><p>

105、;  LJMP TIAON ;轉(zhuǎn)調(diào)年子程序</p><p><b>  JIA6:</b></p><p>  LJMP TIAOX ;轉(zhuǎn)調(diào)星期子程序</p><p>  JIAN3:CLR ZHUAN1 ;標志位清0</p><p>  CLR ZHUAN2</p><p>  C

106、LR ZHUAN3</p><p>  CLR ZHUAN4</p><p>  CLR ZHUAN5</p><p>  CLR ZHUAN6</p><p>  CLR ZHUAN7</p><p>  MOV 5FH,#00H</p><p>  JIAN2:LCALL XIAN ;調(diào)顯

107、示子程序</p><p>  MOV A,P1 </p><p><b>  CPL A</b></p><p><b>  JNZ JIAN2</b></p><p><b>  JIAN4:RET</b></p><p><

108、b>  ;調(diào)秒</b></p><p>  TIAOM:SETB ZHUAN6 ;秒閃爍標志位置1</p><p>  LCALL XIAN</p><p>  JNB P1.1,MIAOZ ;加轉(zhuǎn)移</p><p>  JNB P1.2,MIAOJ ;減轉(zhuǎn)移 </p><p>  LJ

109、MP JIAN0</p><p>  MIAOZ:LCALL DELAY ;調(diào)延時去抖動</p><p>  JNB P1.1,MIAOZ1</p><p>  LJMP JIAN0</p><p>  MIAOZ1:LCALL XIAN</p><p>  JNB P1.1,MIAOZ1 ;判鍵K2松開</

110、p><p>  MOV A,30H ;取秒數(shù)據(jù)</p><p>  ADD A,#1 ;加1</p><p>  DA A ;十進制調(diào)整指令</p><p>  MOV 30H,A ;送回秒寄存器</p><p>  CJNE A,#60H,MIAOZ2</p

111、><p>  MOV 30H,#00H ;秒值過60為0</p><p>  LJMP MIAOZ2</p><p>  MIAOJ:LCALL DELAY;調(diào)延時去抖動</p><p>  JNB P1.2,MIAOJ1</p><p>  LJMP JIAN0</p><p>  MIAOJ

112、1:LCALL XIAN</p><p>  JNB P1.2,MIAOJ1 ;判鍵K3松開</p><p>  MOV A,30H ;取秒數(shù)據(jù)</p><p>  MOV B,#10H</p><p>  DIV AB ;A除以B</p><p>  MOV 61H,B

113、 ;數(shù)據(jù)個位放到61H</p><p>  MOV B,#10 </p><p>  MUL AB ;A乘以B</p><p>  ADD A,61H ;不帶進位加法</p><p>  DEC A ;A減1</p><p>  MOV B,#10 </p>

114、<p><b>  DIV AB </b></p><p><b>  SWAP A</b></p><p><b>  ADD A,B</b></p><p><b>  MOV 30H,A</b></p><p>  CJNE A,#96H,

115、MIAOZ2</p><p>  MOV 30H,#59H</p><p>  MIAOZ2:MOV A,30H</p><p>  ANL A,#0FH ;分離低四位</p><p>  MOV 40H,A ;存數(shù)據(jù)到寄存器</p><p>  MOV A,30H </p><p&

116、gt;  SWAP A ;半字節(jié)交換</p><p>  ANL A,#0FH</p><p>  MOV 41H,A ;存數(shù)據(jù)到寄存器</p><p>  SETB P1.4 ;啟動設置寫保護寄存器</p><p>  MOV A,10001110B ;命令字節(jié),寄存器07H</p><p&

117、gt;  ACALL WBYTE</p><p>  MOV A,#00H ;允許寫數(shù)據(jù)字節(jié)</p><p>  ACALL WBYTE</p><p>  CLR P1.4 ;停止傳送</p><p>  SETB P1.4 ;啟動寫</p><p>  MOV A,#80H

118、 ;秒寫命令字節(jié)</p><p>  LCALL WBYTE</p><p>  MOV A,30H ;寫秒數(shù)據(jù)到DS1302</p><p>  LCALL WBYTE</p><p>  LCALL XIAN </p><p>  LJMP JIAN0</p><p><b

溫馨提示

  • 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

提交評論