版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 摘要</b></p><p> 本設(shè)計是基于51系列的單片機進行的實時日歷和時鐘顯示設(shè)計,可以顯示年月日時分秒及周信息,具有可調(diào)整日期和時間功能。在設(shè)計的同時對單片機的理論基礎(chǔ)和外圍擴展知識進行了比較全面準備。</p><p> 實時日歷和時鐘顯示的設(shè)計過程在硬件與軟件方面進行同步設(shè)計。硬件部分主要由AT89S52單片機,LED顯示電
2、路,以及調(diào)時按鍵電路等組成,系統(tǒng)通過LED顯示數(shù)據(jù),所以具有人性化的操作和直觀的顯示效果。軟件方面主要包括時鐘程序、鍵盤程序,顯示程序等。本系統(tǒng)以單片機的匯編語言進行軟件設(shè)計,為了便于擴展和更改,軟件的設(shè)計采用模塊化結(jié)構(gòu),使程序設(shè)計的邏輯關(guān)系更加簡潔明了,以便更簡單地實現(xiàn)調(diào)整時間及日期顯示功能。所有程序編寫完成后,在wave軟件中進行調(diào)試,確定沒有問題后,在Proteus軟件中嵌入單片機內(nèi)進行仿真。</p><p&g
3、t; 關(guān)鍵詞:AT89S52; DS1302; LED</p><p><b> Abstract</b></p><p> This design is based on 51 series monolithic integrated circuits of a real-time calendar and the clock shows the design
4、, you can show how and when a week, has may adjust the date and time functions. in the design for monolithic integrated circuits, and peripheral to expand the basic theories of knowledge was fairly comprehensive preparat
5、ion.</p><p> Real-time calendar and the clock shows the design in hardware and software design of hardware that is synchronized. the led display at89s52 monolithic integrated circuits, and when should the e
6、lectrical circuits, the system through the led display data so be humanized operate and intuitive that effect. including the software application programs, the keyboard, the program, etc. This system to monolithic integr
7、ated circuits of the assembly language for easily developing software design, and chang</p><p> Key Words:AT89S52; DS1302; LED</p><p><b> 目錄</b></p><p><b> 1概述
8、1</b></p><p><b> 2設(shè)計方案論證2</b></p><p><b> 2.1功能要求2</b></p><p><b> 2.2方案確定2</b></p><p> 2.2.1單片機芯片的選擇方案和論證2</p>&
9、lt;p> 2.2.2顯示模塊選擇方案和論證3</p><p> 2.2.3時鐘芯片的選擇方案和論證3</p><p> 2.2.4電路設(shè)計最終方案確定3</p><p> 3主控制器和外圍器件4</p><p> 3.1AT89S52單片機4</p><p> 3.2DS1302時鐘芯片
10、4</p><p> 3.2.1DS1302芯片介紹4</p><p> 3.2.2DS1302 的應(yīng)用8</p><p> 3.3數(shù)碼管LED8</p><p> 3.4譯碼器74HC1389</p><p> 3.5鎖存器74LS2449</p><p><b>
11、; 4硬件設(shè)計10</b></p><p> 4.1電路設(shè)計框圖10</p><p> 4.2系統(tǒng)概述10</p><p> 4.3電源設(shè)計10</p><p> 4.4單片機的復(fù)位電路11</p><p> 4.5單片機系統(tǒng)的晶振電路11</p><p>
12、 4.6主電路設(shè)計12</p><p><b> 5軟件設(shè)計13</b></p><p> 5.1主程序設(shè)計13</p><p> 5.2鍵盤子程序設(shè)計14</p><p> 5.3日歷時鐘子程序設(shè)計16</p><p> 5.4顯示子程序設(shè)計18</p>&l
13、t;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結(jié)論20</b></p><p><b> 致謝22</b></p><p>&l
14、t;b> 參考文獻23</b></p><p><b> 附錄24</b></p><p> 附錄Ⅰ硬件電路圖24</p><p> 附錄Ⅱ主程序源代碼25</p><p> 附錄Ⅲ外文翻譯原文39</p><p> 附錄Ⅳ外文翻譯譯文50</p&g
15、t;<p><b> -</b></p><p><b> 1概述</b></p><p> 在日新月異的21世紀里,家用電子產(chǎn)品得到了迅速發(fā)展。許多家電設(shè)備都趨于人性化、智能化,這些電器設(shè)備大部分都含有CPU控制器或者是單片機。單片機以其高可靠性、高性價比、低電壓、低功耗等一系列優(yōu)點,近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應(yīng)用
16、于工業(yè)控制系統(tǒng)、通訊設(shè)備、日常消費類產(chǎn)品和玩具等。并且已經(jīng)深入到工業(yè)生產(chǎn)的各個環(huán)節(jié)以及人民生活的各個方面,如車間流水線控制、自動化系統(tǒng)等、智能型家用電器(冰箱、空調(diào)、彩電)等。用單片機來控制的小型家電產(chǎn)品具有便攜實用,操作簡單的特點。</p><p> 時鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著時間的推移,科學(xué)技術(shù)的不斷發(fā)展,人們對時間計量的精度要求越來越高,應(yīng)用越來越廣。怎樣讓時鐘更好的為人民服務(wù),怎
17、樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設(shè)計出新型時鐘。</p><p> 現(xiàn)今,高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時,分,秒顯示時間的功能,還可以進行時和分的校對,片選的靈活
18、性好。</p><p> 時鐘電路在計算機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個單片機應(yīng)用系統(tǒng)中,時鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標準定時時鐘,即定時時間,它通常有兩種實現(xiàn)方法:一是用軟件實現(xiàn),即用單片機內(nèi)部的可編程定時/計數(shù)器來實現(xiàn),但誤差很大,主要用在對時間精度要求不高的場合;
19、二是用專門的時鐘芯片實現(xiàn),在對時間精度要求很高的情況下,通常采用這種方法,典型的時鐘芯片有:DS1302,DS12887,X1203等都可以滿足高精度的要求。</p><p> 本文設(shè)計的日歷和時鐘的顯示廣泛用于小型智能家用電子產(chǎn)品,如電子鐘。利用單片機進行控制,實時時鐘芯片DS1302進行記時,外加掉電存儲電路和顯示電路,可實現(xiàn)時間的調(diào)整和顯示。電子鐘既可廣泛應(yīng)用于家庭,也可應(yīng)用于銀行、郵電、賓館、醫(yī)院、學(xué)校
20、、企業(yè)、商店等相關(guān)行業(yè)的大廳,以及單位會議室、門衛(wèi)等場所。因而,此設(shè)計具有相當重要的現(xiàn)實意義和實用價值。</p><p><b> 2設(shè)計方案論證</b></p><p><b> 2.1功能要求</b></p><p> 1、能顯示年、月、日、時、分、秒、星期</p><p> 2、能對時
21、間進行手動修正</p><p><b> 3、采用24小時制</b></p><p> 4、使用LED顯示時間參數(shù)</p><p> 5、上電后,電子鐘顯示“2010年 1月 1日”</p><p> “1時 1分 1秒 星期1”</p><p> 對時,分,秒,日,月,年高位
22、為0時做消隱處理,只顯示單個數(shù)字以增強其可讀性。</p><p><b> 2.2方案確定</b></p><p> 2.2.1單片機芯片的選擇方案和論證</p><p><b> 方案一: </b></p><p> 采用89C51芯片作為硬件核心,采用Flash ROM,內(nèi)部具有4KB
23、ROM 存儲空間,能于3V的超低壓工作,而且與MCS-51系列單片機完全兼容,但是運用于電路設(shè)計中時由于不具備ISP在線編程技術(shù), 當在對電路進行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,對芯片的多次拔插會對芯片造成一定的損壞。</p><p><b> 方案二:</b></p><p> 采用AT89S52,片內(nèi)ROM全都采用Flash ROM
24、;能以3V的超底壓工作;同時也與MCS-51系列單片機完全該芯片內(nèi)部存儲器為8KB ROM 存儲空間,同樣具有89C51的功能,且具有在線編程可擦除技術(shù),當在對電路進行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,不需要對芯片多次拔插,所以不會對芯片造成損壞。</p><p> 所以選擇采用AT89S52作為主控制系統(tǒng).</p><p> 2.2.2顯示模塊選擇方案和論證
25、</p><p><b> 方案一:</b></p><p> 采用LED液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價格昂貴,需要的接口線多,所以在此設(shè)計中不采用LED液晶顯示屏。</p><p><b> 方案二:</b></p><p> 采用點
26、陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。</p><p><b> 方案三:</b></p><p> 采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格適中,對于顯示數(shù)字最合適,而且采用動態(tài)掃描法與單片機連接時,占用的單片機口線少。</p><
27、;p> 所以采用了LED數(shù)碼管作為顯示。</p><p> 2.2.3時鐘芯片的選擇方案和論證</p><p><b> 方案一:</b></p><p> 直接采用單片機定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。所以不采用此方案。<
28、;/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><p> 2.2.4電路設(shè)計最終方案
29、確定</p><p> 綜上各方案所述,對此次作品的方案選定: 以單片機AT89S52為主控制器,時間數(shù)據(jù)是通過時鐘芯片DS1302來讀取,并通過LED數(shù)碼管顯示出來,并用鍵盤來完成對當前時間的調(diào)整。</p><p> 3主控制器和外圍器件</p><p> 3.1AT89S52單片機</p><p> AT89S52是一種低功耗、高
30、性能CMOS 8位微控制器,使用 ATMEL 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。并具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時
31、器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。</p><p> 3.2DS1302時鐘芯片</p><p> 3.2.1DS1302芯片介紹</p><p> 低功耗時鐘芯片DS1302可以對年、月、日、時、分、秒進行計時,且具有閏年補償?shù)榷喾N功能。DS1302用于數(shù)據(jù)記錄,
32、特別是對某些具有特殊意義的數(shù)據(jù)點的記錄上,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。這種記錄對長時間的連續(xù)測控系統(tǒng)結(jié)果的分析以及對異常數(shù)據(jù)出現(xiàn)的原因的查找有重要意義。</p><p> 采用DS1302作為記錄測控系統(tǒng)中的數(shù)據(jù)記錄,其軟硬件設(shè)計簡單,時間記錄準確,既避免了連續(xù)記錄的大工作量,又避免了定時記錄的盲目性,給連續(xù)長時間的測量、控制系統(tǒng)的正常運行及檢查都來了很大的方便,可廣泛應(yīng)用于長時間連續(xù)的測控系統(tǒng)中。在
33、測量控制系統(tǒng)中,特別是長時間無人職守的測控系統(tǒng)中,經(jīng)常需要記錄某些具有特殊意義的數(shù)據(jù)及其出現(xiàn)的時間。記錄及分析這些特殊意義的數(shù)據(jù),對測控系統(tǒng)的性能分析及正常運行具有重要的意義。傳統(tǒng)的數(shù)據(jù)記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此只能記錄數(shù)據(jù)而無法準確記錄其出現(xiàn)的時間;若采用單片機計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設(shè)置中斷、查詢等,同樣耗費單片機的資源,而且某些測控系統(tǒng)可能不允許。而在系統(tǒng)中采用DS1302
34、則能很好地解決這個問題。</p><p> DS1302的性能特性</p><p> ·實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償?shù)哪赀M行計數(shù);</p><p> ·用于高速數(shù)據(jù)暫存的31×8位RAM;</p><p> ·最少引腳的串行I/O;</p><p>
35、 ·2.5~5.5V 電壓工作范圍;</p><p> ·2.5V時耗電小于300nA;</p><p> ·用于時鐘或RAM數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式;</p><p><b> ·簡單的3線接口;</b></p><p> ·可選的慢
36、速充電(至VCC1)的能力。</p><p> DS1302時鐘芯片包括實時時鐘/日歷和31字節(jié)的靜態(tài)RAM。它經(jīng)過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月和月末的日期自動進行調(diào)整,還包括閏年校正的功能。時鐘的運行可以采用24h或帶AM(上午)/PM(下午)的12h格式。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或
37、RAM數(shù)據(jù)。DS1302有主電源/后備電源雙電源引腳:VCC1 在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電池備份;VCC2在雙電源系統(tǒng)中提供主電源,在這種運用方式中,VCC1 連接到備份電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由VCC1或VCC2中較大者供電。當VCC2大于VCC1+0.2V時,VCC2給DS1302供電;當VCC2小于VCC1時,DS1302由VCC1供電。</p>
38、<p> DS1302數(shù)據(jù)操作原理</p><p> DS1302在任何數(shù)據(jù)傳送時必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被輸入。無論是讀周期還是寫周期,開始8位指定40個寄存器中哪個被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8加8,在多字節(jié)方
39、式下為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所示,表3-2為各引腳的功能。</p>
40、;<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表示進行讀操作。控制字節(jié)總是從最低位開始輸入/輸出。&
41、lt;/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開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個寄存器。但是,
42、當以多字節(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個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表3-5,其中奇數(shù)為讀操作,偶數(shù)為寫操作。</p>
43、<p> 表3-5 片內(nèi)時鐘數(shù)據(jù)寄存器</p><p> 3.2.2DS1302 的應(yīng)用</p><p> 實時時鐘芯片DS1302采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,也可以關(guān)閉充電功能,芯片采用32768Hz晶振。要特別說明的是,備用電源BT1可以用電池或超級電容(10萬μF以上)。雖然DS1302在主電源掉電后耗電很小,但如果要長時間保證時鐘正常
44、,最好選用小型充電電池。如果斷電時間較短(幾小時或幾天),可以用漏電較小的普通電解電容代替(100μF就可以保證1小時的正常走時)。DS1302在第一次加電后,需進行初始化操作。初始化后就可以按正常方法調(diào)整時間。DS1302的時鐘電路如圖3-6所示。</p><p> 圖3-6 DS1302時鐘電路</p><p><b> 3.3數(shù)碼管LED</b></p
45、><p> LED顯示器由若干個發(fā)光二極管組成,當發(fā)光二極管導(dǎo)通時,相應(yīng)的一個筆畫或一個點就發(fā)光??刂葡鄳?yīng)的管導(dǎo)通,就能顯示出對應(yīng)字符。各段LED顯示器需要由驅(qū)動電路驅(qū)動。在七段LED顯示器中,通常將各段發(fā)光二極管的陰極或陽極連在一起作為公共端。將各段發(fā)光二極管連在一起的叫共陽極顯示器,用低電平驅(qū)動;將陰極連在一起的叫共陰極顯示器,用高電平驅(qū)動。</p><p> 靜態(tài)顯示就是每一個顯示器
46、各筆畫段都要獨占具有一個鎖存功能的輸出口線,CPU把要顯示的字形代碼送到輸出口上,就可以使顯示器上顯示所需的數(shù)字或符號,此后,即使CPU不在去訪問它,因為各筆畫段借口具有鎖存功能,顯示的內(nèi)容也不會消失。</p><p> 動態(tài)顯示是指顯示器顯示某一字符時,相應(yīng)段的發(fā)光二極管恒定地導(dǎo)通或截止。靜態(tài)顯示有并行輸出和串行輸出兩種方式。在本系統(tǒng)中數(shù)碼管使用共陰極接法而且是用動態(tài)顯示。</p><p&
47、gt; 3.4譯碼器74HC138</p><p> 74HC138譯碼器是通過3條線來達到控制8條線的狀態(tài),就是通過3條控制線A0、A1、A2不同的高低電平組合來控制Y0~Y7的輸出狀態(tài),其中4和5為使能地端,與8引腳共同接地,當接高電平時Y0到Y(jié)7輸出高電平。6號腳為使能端,為高電平時有效。74HC138封裝如圖3-7。當需要級聯(lián)時只需要改變使能端信號引腳即可,連接方法簡單。</p><
48、;p> 圖3-7 74HC138封裝圖</p><p> 3.5鎖存器74LS244</p><p> 74ls244由2組、每組四路輸入、輸出構(gòu)成。每組有一個控制端G,由控制端的高或低電平?jīng)Q定該組數(shù)據(jù)被接通還是斷開。</p><p> 圖3-8 74LS244引腳圖</p><p><b> 4硬件設(shè)計</b
49、></p><p><b> 4.1電路設(shè)計框圖</b></p><p><b> 4.2系統(tǒng)概述</b></p><p> 本電路是由AT89S52單片機為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周
50、日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31*8的用于臨時性存放數(shù)據(jù)的RAM寄存器。可產(chǎn)生年、月、日、周日、時、分、秒,具有使用壽命長,精度高和低功耗等特點,同時具有掉電自動保存功能;顯示部份由15個數(shù)碼管,74Hs138、74ls244構(gòu)成。使用動態(tài)掃描顯示方式對數(shù)字的顯示。</p>
51、;<p> 硬件的結(jié)構(gòu)和可靠性直接影響著整個系統(tǒng)的可靠性,所以合理的安排電路能提高電子產(chǎn)品的性能。</p><p><b> 4.3電源設(shè)計</b></p><p> 在這里因設(shè)計分工和側(cè)重點不同,電源模塊用通用的5v變壓器。</p><p> 4.4單片機的復(fù)位電路</p><p> 圖4-2手
52、動復(fù)位電路</p><p> 在系統(tǒng)運行的過程中,有時可能對系統(tǒng)需要進行復(fù)位,為了避免對硬件系統(tǒng)經(jīng)常加電和斷電造成的損害,設(shè)計了手動的復(fù)位電路。如圖4-2所示。這種電路的設(shè)計,在系統(tǒng)的運行過程中需要復(fù)位時,只需使開關(guān)閉合,在RST端就會出現(xiàn)一定時間的高電平信號,從而使單片機實現(xiàn)復(fù)位。</p><p> 4.5單片機系統(tǒng)的晶振電路</p><p> 單片機必須在
53、時鐘的驅(qū)動下才能進行工作。MCS-51系列單片機內(nèi)部都有一個時鐘振蕩電路,只需外接晶振源,就能產(chǎn)生一定頻率的時鐘信號送到單片機的內(nèi)部的各個單元,決定單片機的工作速度。圖4-3就是內(nèi)部時鐘工作方式的電路圖,這是一種常用的方式。這種方式是外界振蕩源,本設(shè)計就采用這種外接晶振的方法。電路中的兩個電容的作用有兩個:一是幫助振蕩器起振(C1 C2的值大,起振的速度慢;反之,速度快。);二是對振蕩器的頻率起到微調(diào)的作用(C1 C2的值大,頻率略有減
54、少,反之,頻率略有提高)。C1 C2的值采用30pF。</p><p> 圖4-3單片機內(nèi)部晶振電路連接圖</p><p><b> 4.6主電路設(shè)計</b></p><p> 主電路的功能是完成年、月、日、星期、時、分、秒之間的轉(zhuǎn)換, 再送往LED顯示,并且接受鍵盤操作,對日期和時間進行校正。</p><p>
55、 電路原理圖如圖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的電容同時接地,單片機復(fù)位端接一極性電容并連接到電源處,在極性電容的負極接一
56、10K的電阻,并連接至地做為放電用。本設(shè)計用到四個獨立式鍵盤分別接到P1口的低4位,用P1口的P1.4,P1.5,P1.6接日歷時鐘的使能端和時鐘端及數(shù)據(jù)輸入輸出口,并在日歷時鐘上接一32.768KHZ的晶振,并接兩個22PF的電容終端和地相連,各芯片的電源部分分別接到有開關(guān)式電源產(chǎn)生的+5V電源上,芯片的接地端都接在公共地上,在這里接電源部分就不再一一詳述。</p><p> 設(shè)計采用動態(tài)顯示,輪流掃描各個L
57、ED使之顯示相應(yīng)的數(shù)型碼,當掃描頻率大于人眼所能識別的頻率時就看不到閃爍現(xiàn)象。動態(tài)顯示的亮度不如靜態(tài)顯示,但靜態(tài)顯示占用的I/O口資源較多,往往用移位寄存器74LS164等來擴充其I/O口不足的情況,當顯示位數(shù)較多時,這樣勢必增加硬件開銷,增大成本,不利于開闊市場。本設(shè)計的突出之處在于硬件電路簡單,大大減少了硬件開銷,這樣又勢必增加了軟件開發(fā)的難度,但降低了成本有利于市場的開闊。</p><p><b>
58、; 圖4-4電路原理圖</b></p><p><b> 5軟件設(shè)計</b></p><p> 軟件的設(shè)計是設(shè)計控制系統(tǒng)的應(yīng)用程序。其任務(wù)是在整體設(shè)計和硬件設(shè)計的基礎(chǔ)上,確定程序結(jié)構(gòu),分配內(nèi)RAM資源,劃分功能模塊,然后進行主程序和各模塊程序的設(shè)計,最后連接起來成為一個完整應(yīng)用程序,與硬件相結(jié)合完成相應(yīng)功能。</p><p>
59、<b> 5.1主程序設(shè)計</b></p><p> 主程序才用模塊化設(shè)計,流程圖如圖5-1所示。</p><p> 從上面主程序看出,主程序的組成是通過分別調(diào)用各子程序組成總體系統(tǒng)功能,能很直觀的看出主程序所要完成的功能,首先是初始化各模塊,之后調(diào)用鍵盤完成時間的調(diào)整,調(diào)用日歷子程序完成日歷時鐘的初始化和時間數(shù)據(jù)的讀寫,調(diào)用顯示子程序顯示數(shù)據(jù),最后又轉(zhuǎn)到鍵盤程
60、序來回循環(huán)。</p><p> 初始化部分主要有初始化定時器部分和和一些寄存器、標志位、初始化時間等。</p><p> 對定時器T0初始化時,首先置初值,CPU開中斷,定時器T0開中斷,并且開始計數(shù),而對定時器T1初始化時,首先置初值,定時器T1關(guān)中斷,并且停止計數(shù),只有收到命令時才能產(chǎn)生中斷。</p><p> 寄存器的初始化主要是初始化執(zhí)行程序時用到的部
61、分RAM空間,防止程序執(zhí)行時帶來混亂。</p><p> 標志位初始化是對時間調(diào)整時判斷是調(diào)分還是調(diào)時等而專設(shè)的位標志,初始化過程中標志位全部置0,即開始時是處于顯示狀態(tài),而不是調(diào)整狀態(tài),這一點在程序中相當明了。</p><p> 初始化時間是開機時顯示的時間,并通過調(diào)用日歷時鐘的寫程序來完成時間的置初值。</p><p><b> 圖5-1程序流程
62、圖</b></p><p> 5.2鍵盤子程序設(shè)計</p><p> 多功能鍵盤程序的設(shè)計是本設(shè)計的難點,也是完成本設(shè)計的重點,當有鍵按下時,調(diào)用10ms延時程序,再判斷是否有鍵按下無則返回,若有先調(diào)用顯示程</p><p> 序再判斷是否松開,否則再轉(zhuǎn)到顯示程序,這樣避免了在按鍵松開之前能正常顯示。其中K1鍵功能最多,通過判斷K1鍵按下的次數(shù)來判
63、斷是調(diào)時間還是定時,并對對應(yīng)的位置閃爍。本鍵盤深度為7級,即連續(xù)按下K1鍵8次時則返回到原來界面。當判斷鍵值為1時則為調(diào)秒狀態(tài),對應(yīng)的秒低位閃爍,為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才返回,而通過按下K4鍵即可返回。由于鍵盤流程圖非常
64、復(fù)雜,在此只表示秒,如圖5-2所示,其余略。</p><p> 5.3日歷時鐘子程序設(shè)計</p><p> DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。日歷時鐘DS1302的讀寫需要初始化時序、讀時序、寫時序。所有時序都是將主機作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機啟動寫時序開始,如果要求單總線器件回送是低位在先。讀
65、寫都是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置為高電平,這一點我們要一定注意。</p>
66、<p> 當RST置為高電平時,在串行時鐘的SCLK的上升沿,DS1302從I/O端口讀入一位數(shù)據(jù),8個串行時鐘脈沖就可以讀入一字節(jié)的數(shù)據(jù)。在串行時鐘的下降沿,DS1302向I/O端口輸出一位數(shù)據(jù),8個串行時鐘脈沖就可以輸出一字節(jié)的數(shù)據(jù)。</p><p> 顯示子程序設(shè)計電子產(chǎn)品是否實用其中顯示占了很重要的地位,很多數(shù)人都渴求用視覺效果好,范圍廣,直觀明了,LED符合以上的要求,但相應(yīng)的硬件設(shè)計相對
67、復(fù)雜。</p><p> 5.4顯示子程序設(shè)計</p><p> 本設(shè)計的顯示部分具有消隱和閃爍功能,當時分秒等高位為0時顯示消隱, 此時在讀時間時更加明了,但低位不能顯示消隱。閃爍功能也是本設(shè)計的一個難點,本設(shè)計采用8個位標志位,其中一個標志位通過用定時器0產(chǎn)生一個周期大約為每秒1.5次,使閃爍時效果達到最好。此時定時器采用定時中斷的工作方式,這樣可以充分利用CPU資源。另外7個標志
68、位是時分秒等的位標志位,當秒標志位置1時即秒開閃爍,與用中斷產(chǎn)生的標志位相結(jié)合,即在一個周期內(nèi)為0時此時消隱為1時開顯示,這樣就使在調(diào)時間時對應(yīng)的位閃爍。</p><p><b> 6系統(tǒng)調(diào)試</b></p><p> 單片機系統(tǒng)經(jīng)過總體設(shè)計,完成了硬件和軟件設(shè)計開發(fā)。通過軟件和硬件相結(jié)合系統(tǒng)即可運行。但編制好的程序或焊接好的線路不能按預(yù)計的那樣正常工作是常見的事
69、,經(jīng)常會出現(xiàn)一些硬件、軟件上的錯誤,這是軟件和硬件開發(fā)者經(jīng)常遇見的,這就需要通過調(diào)試來發(fā)現(xiàn)錯誤并加以改正。調(diào)試可分為硬件調(diào)試和軟件調(diào)試。本設(shè)計系統(tǒng)的已經(jīng)在PC機上用模擬開發(fā)軟件進行了檢測和調(diào)試,并運行成功,最后進行實物圖的硬件組裝與調(diào)試,這樣就給開發(fā)者在提供了方便。</p><p><b> 6.1軟件調(diào)試</b></p><p> 本設(shè)計是在Proteus軟件和
70、Wava6000軟件相結(jié)合調(diào)試的,完全用仿真軟件在PC機上對目標電路原理圖和程序進行檢測和調(diào)試。調(diào)試過程中單片機相應(yīng)輸入端由通用鍵盤和鼠標設(shè)定,運行狀態(tài)、各寄存器狀態(tài)、端口狀態(tài)等都可以在指定的窗口區(qū)域顯示出來,以確定程序運行有無錯誤。</p><p> 目標程序糾錯:該階段工作通常在目標程序編輯時就完成。一般來說,仿真軟件能為用戶輸入的程序指令糾錯,包括書寫格式、標號未定義或多重定義、轉(zhuǎn)移地址溢出等錯誤。<
71、;/p><p> 整體程序調(diào)試:即把各子程序整體連起來進入到綜合電路調(diào)試,看是否能實現(xiàn)預(yù)計的功能顯示。在這階段若發(fā)生故障,可以考慮各子程序在運行時是否破壞現(xiàn)場,數(shù)據(jù)緩沖單元是否發(fā)生沖突,標志位的建立和清除在設(shè)計上是否失誤,堆棧是否溢出,輸入輸出狀態(tài)是否正常等。</p><p> 經(jīng)過多次修改程序最后調(diào)試出來理想的效果,如圖6-1所示</p><p> 圖6-1 P
72、roteus仿真</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所示</p><p>
73、單片機應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開的,許多硬件故障在軟件調(diào)試時才能發(fā)現(xiàn),但通常要先排除系統(tǒng)中明顯的硬件故障。調(diào)試工作可以分為四步:</p><p> 線路檢查:根據(jù)硬件邏輯設(shè)計圖,仔細檢查樣機線路是否連接正確,并核對元器件的型號、規(guī)格和安裝是否符合要求,必要時可用萬用表檢測線路通斷情況。</p><p> 電源調(diào)試:樣機的第一次通電測試很重要,若樣機中存在電源故障,則加電后將造
74、成器件損壞。調(diào)試的方法有兩種:一種是斷開樣機穩(wěn)壓電源的輸出端,檢查空載時電源工作情況;另一種是拔下樣機上的主要集成芯片,檢查電源的負載能力(用假負載)。確保電源無故障并性能符合設(shè)計要求。</p><p> 通電檢查:在確保電源良好前提下,接通電源。最好在電源與其余電路之間串接一個電流表。若接通后電流很大,必須立即切斷電源。電源大得超出正常范圍,說明電路中有短路或故障。通電檢查的主要目的是看系統(tǒng)是否存在短路或由元
75、器件損壞、裝配錯誤引起的電流異常。</p><p> 如圖6-2 焊接電路板</p><p> 檢查芯片的邏輯關(guān)系是否出錯:加電后檢查各芯片插座上相關(guān)引腳的電位,仔細測量相應(yīng)的輸入輸出電平是否正常。單片機系統(tǒng)大都是數(shù)字邏輯電路,使用電平檢查法可首先查出邏輯設(shè)計是否正確,選用器件和連接關(guān)系是否符合要求等。</p><p> 本設(shè)計特點突出,性價比高,適合于家庭掛
76、歷,有很高應(yīng)用價值。</p><p><b> 7結(jié)論</b></p><p> 硬件系統(tǒng)關(guān)系到所要設(shè)計的電子產(chǎn)品好懷,如系統(tǒng)抗干擾性等,所以要合理的安排盡量減少干擾提高性能。單片機是很容易受干擾的控制器,當采用外部晶振時,應(yīng)盡量讓其靠近單片機減少對其干擾,防止程序亂飛現(xiàn)象。同時還可以采用隔離等方式減少干擾,硬件系統(tǒng)設(shè)計的好壞很大部分來源于經(jīng)驗,所以我們要有動手的
77、好習(xí)慣。</p><p> 軟件設(shè)計是核心部分,具有多樣化,靈活性高,易移植等優(yōu)點,要深深理會各指令的含義才能更加熟練應(yīng)用,中斷的合理利用可以減少CPU利用資源,具有執(zhí)行效率高等優(yōu)點,本設(shè)計用到定時器中斷以減少對CPU的占用,更好的處理其他功能。軟件的設(shè)計大部分采用模塊化設(shè)計的方法以方便調(diào)試,并使其可讀性大大增強,方便更改和移植。</p><p> 在這次設(shè)計中我學(xué)到了很多,也發(fā)現(xiàn)了自
78、己的不足,也難免有錯誤之處,敬請?zhí)岢觯?lt;/p><p><b> 致謝</b></p><p> 不知不覺,十二周的畢業(yè)設(shè)計結(jié)束了。我的畢業(yè)論文已整理完畢,電路調(diào)試進展良好。畢業(yè)設(shè)計的完成意味著我的大學(xué)學(xué)習(xí)生活即將結(jié)束,從此我將進入一個新的人生旅途、開始一段嶄新的生活——工作。在此,我衷心地感謝所有在我做畢業(yè)設(shè)計期間幫助過我的人。 </p><
79、p> 首先我要感謝XX老師、XX老師XX老師的大力幫助和支持。在整個設(shè)計過程當中,為我的畢業(yè)設(shè)計帶來了很大方便。同時在我完成畢業(yè)設(shè)計的過程中提供了很多指導(dǎo)性的意見,使我受益匪淺。在此,我衷心感謝老師們給予我的幫助和教育。</p><p> 此外,還要衷心感謝其他所有對本課題的研究和論文撰寫有過幫助的同學(xué)。</p><p> 最后,我要感謝我的母校——XXXXXXX,在校期間,這
80、里給我留下了美好的回憶。特別是在我即將踏上工作崗位的同時,畢業(yè)設(shè)計整個過程給了我這樣一個鍛煉的機會,使我加深了對以前知識的理解和鞏固,拓寬了知識面,也提高了我對所學(xué)知識的綜合應(yīng)用能力。祝愿母校的將來更美好!</p><p><b> 參考文獻</b></p><p> [01]何宏主編.單片機原理與接口技術(shù).北京:國防工業(yè)出版社.2006.07</p>
81、<p> [02]楊西明,朱騏主編.單片機編程與應(yīng)用入門.北京:機械工業(yè)出版社.2004.06</p><p> [03]先鋒工作室編著.單片機程序設(shè)計實例.北京:清華大學(xué)出版社.2003.01</p><p> [04]謝宜仁主編.單片機實用技術(shù)問答.北京:人民郵電出版社.2003.02</p><p> [05]孫江宏,李良玉等編著.Pro
82、tel99電路設(shè)計與應(yīng)用.北京:機械工業(yè)出版社.2004.07</p><p> [06]房小翠,王金鳳編著.單片機實用系統(tǒng)設(shè)計技術(shù).北京:國防工業(yè)出版社.1999.06</p><p> [07]秦曾煌主編.電工學(xué)(電子技術(shù)).北京:高等教育出版社,2004</p><p> [08]何立民.單片機高級教程應(yīng)用與設(shè)計.北京:北京航空航天大學(xué)出版社,2000&
83、lt;/p><p> [09]劉國榮單片微型計算機技術(shù).北京:機械工業(yè)出版社,1996</p><p> [10]王迎旭.單片機原理與應(yīng)用.北京:機械工業(yè)出版社,2004</p><p> [11]于永權(quán).ATMEL89系列單片機應(yīng)用技術(shù).北京:北京航空航天大學(xué)出版社,2001</p><p> [12]高峰.單片微型計算機原理與接口技術(shù)
84、.北京:科學(xué)出版社,2003</p><p> [13]各種網(wǎng)絡(luò)教程及其他</p><p><b> 附錄</b></p><p><b> 附錄Ⅰ硬件電路圖</b></p><p><b> 附錄Ⅱ主程序源代碼</b></p><p> ZH
85、UAN BIT 50H ;閃爍標志位輔助標志位</p><p> ZHUAN1 BIT 51H ;年開閃爍的標志位</p><p> ZHUAN2 BIT 52H ;月開閃爍的標志位</p><p> ZHUAN3 BIT 53H ;日開閃爍的標志位</p><p> ZHUAN4 BIT 54H ;時開閃爍的標
86、志位</p><p> ZHUAN5 BIT 55H ;分開閃爍的標志位</p><p> ZHUAN6 BIT 56H ;秒開閃爍的標志位</p><p> ZHUAN7 BIT 57H ;星期開閃爍的標志位</p><p><b> ORG 0000H</b></p><p&g
87、t; LJMP START ;開始并初始化</p><p> ORG 000BH ;定時/計數(shù)T0中斷</p><p> LJMP ZDUAN </p><p> ORG 001BH ;定時/計數(shù)T1中斷</p><p> LJMP ZDUAN2</p>&l
88、t;p> ZDUAN: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>&
89、lt;b> 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
90、><b> RETI</b></p><p><b> ORG 0100H</b></p><p> START:MOV SP,#70H ;設(shè)堆棧</p><p> MOV TMOD,#11H ;T0,TI工作方式1</p><p> MOV TH0,#00H</p>
91、<p> 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
92、 TR0 ;啟動T0工作</p><p> CLR ZHUAN1 ;初始化標志位</p><p> CLR ZHUAN2</p><p> CLR ZHUAN3</p><p> CLR ZHUAN4</p><p> CLR ZHUAN5</p><p&g
93、t; CLR ZHUAN6</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,#
94、01H</p><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 ;啟動設(shè)置寫保護
95、寄存器</p><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,停止傳送
96、</p><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 ;設(shè)多字節(jié)寫命令字</p><p> LCALL WBYTE</p&g
97、t;<p> 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&g
98、t;</p><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&g
99、t;</p><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 JIA
100、N4</p><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
101、 ;判K2鍵為0轉(zhuǎn)</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>
102、; LJMP JIANX</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><
103、p> MOV 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
104、,5FH</p><p> CJNE A,# 1,JIA1 ;比較轉(zhuǎn)移指令A(yù)不等于#時,轉(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)分子
105、程序</p><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> LJM
106、P TIAOR ;轉(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>
107、<p> 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>&l
108、t;p> CLR 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
109、 XIAN ;調(diào)顯示子程序</p><p> MOV A,P1 </p><p><b> CPL A</b></p><p><b> JNZ JIAN2</b></p><p><b> JIAN4:RET</b></p><
110、;p><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><
111、;p> LJMP 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 ;判
112、鍵K2松開</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,MI
113、AOZ2</p><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&
114、gt; MIAOJ1: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>
115、MOV 61H,B ;數(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 &l
116、t;/p><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> CJ
117、NE A,#96H,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&g
118、t;<p> SWAP A ;半字節(jié)交換</p><p> ANL A,#0FH</p><p> MOV 41H,A ;存數(shù)據(jù)到寄存器</p><p> SETB P1.4 ;啟動設(shè)置寫保護寄存器</p><p> MOV A,10001110B ;命令字節(jié),寄存器07H</p&g
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機畢業(yè)設(shè)計---實時日歷和時鐘顯示設(shè)計
- 畢業(yè)設(shè)計開題報告--單片機實時日歷和時鐘的顯示
- 單片機畢業(yè)設(shè)計開題報告---實時日歷和時鐘的顯示
- 單片機畢業(yè)設(shè)計---基于51系列的單片機進行的實時日歷和時鐘顯示設(shè)計
- 單片機畢業(yè)設(shè)計--基于51系列的單片機進行的實時日歷和時鐘顯示設(shè)計
- 畢業(yè)設(shè)計-基于51系列的單片機進行的實時日歷和時鐘顯示設(shè)計
- 畢業(yè)設(shè)計---基于51系列的單片機進行的實時日歷和時鐘顯示設(shè)計
- 外文翻譯---基于基于單片機進行實時日歷和時鐘顯示設(shè)計
- 用lcd顯示實時日歷時鐘單片機課程設(shè)計
- 用lcd顯示實時日歷時鐘單片機課程設(shè)計
- 單片機畢業(yè)設(shè)計---基于51系列的單片機日歷和時鐘顯示設(shè)計
- 基于51系列的單片機進行的實時日歷和時鐘顯示畢業(yè)論文
- 單片機日歷和時鐘畢業(yè)設(shè)計論文
- 單片機畢業(yè)設(shè)計--用單片機設(shè)計日歷和時鐘
- 實時日歷和時鐘的顯示開題報告
- 基于ds1302實時日歷時鐘顯示系統(tǒng)畢業(yè)設(shè)計說明書
- 畢業(yè)設(shè)計---基于單片機的時鐘顯示器設(shè)計
- 畢業(yè)設(shè)計--基于單片機的時鐘顯示器設(shè)計
- 基于單片機的時鐘顯示器畢業(yè)設(shè)計
- 單片機課程設(shè)計--電子日歷時鐘顯示器設(shè)計
評論
0/150
提交評論