版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 畢 業(yè) 設 計(論 文)</p><p> 題 目: 單片機 </p><p> 院 (系): 機電學部 </p><p> 專 業(yè):
2、 </p><p> 班 級: </p><p> 學生姓名: </p><p> 導師姓名: </p><p> 職稱:
3、 </p><p><b> 摘要</b></p><p> 本設計是基于51系列的單片機進行的實時日歷和時鐘顯示設計,可以顯示年月日時分秒及周信息,具有可調(diào)整日期和時間功能。在設計的同時對單片機的理論基礎和外圍擴展知識進行了比較全面準備。</p><p> 實時日歷和時鐘
4、顯示的設計過程在硬件與軟件方面進行同步設計。硬件部分主要由AT89S52單片機,LED顯示電路,以及調(diào)時按鍵電路等組成,系統(tǒng)通過LED顯示數(shù)據(jù),所以具有人性化的操作和直觀的顯示效果。軟件方面主要包括時鐘程序、鍵盤程序,顯示程序等。本系統(tǒng)以單片機的匯編語言進行軟件設計,為了便于擴展和更改,軟件的設計采用模塊化結構,使程序設計的邏輯關系更加簡潔明了,以便更簡單地實現(xiàn)調(diào)整時間及日期顯示功能。所有程序編寫完成后,在wave軟件中進行調(diào)試,確定沒
5、有問題后,在Proteus軟件中嵌入單片機內(nèi)進行仿真。</p><p> 關鍵詞:AT89S52; DS1302; LED</p><p><b> 目錄</b></p><p><b> 1概述1</b></p><p><b> 2設計方案論證2</b><
6、/p><p><b> 2.1功能要求2</b></p><p><b> 2.2方案確定2</b></p><p> 3主控制器和外圍器件4</p><p> 3.1AT89S52單片機4</p><p> 3.2DS1302時鐘芯片4</p>
7、<p> 3.3數(shù)碼管LED8</p><p> 3.4譯碼器74HC1389</p><p> 3.5鎖存器74LS2449</p><p><b> 4硬件設計10</b></p><p> 4.1電路設計框圖10</p><p> 4.2系統(tǒng)概述10<
8、;/p><p> 4.3電源設計10</p><p> 4.4單片機的復位電路11</p><p> 4.5單片機系統(tǒng)的晶振電路11</p><p> 4.6主電路設計12</p><p><b> 5軟件設計13</b></p><p> 5.1主程序設
9、計13</p><p> 5.2鍵盤子程序設計14</p><p> 5.3日歷時鐘子程序設計16</p><p> 5.4顯示子程序設計18</p><p><b> 6系統(tǒng)調(diào)試18</b></p><p> 6.1軟件調(diào)試18</p><p>
10、6.2硬件調(diào)試19</p><p><b> 7結論20</b></p><p><b> 致謝22</b></p><p><b> 參考文獻23</b></p><p><b> 1概述</b></p><p>
11、 在日新月異的21世紀里,家用電子產(chǎn)品得到了迅速發(fā)展。許多家電設備都趨于人性化、智能化,這些電器設備大部分都含有CPU控制器或者是單片機。單片機以其高可靠性、高性價比、低電壓、低功耗等一系列優(yōu)點,近幾年得到迅猛發(fā)展和大范圍推廣,廣泛應用于工業(yè)控制系統(tǒng)、通訊設備、日常消費類產(chǎn)品和玩具等。并且已經(jīng)深入到工業(yè)生產(chǎn)的各個環(huán)節(jié)以及人民生活的各個方面,如車間流水線控制、自動化系統(tǒng)等、智能型家用電器(冰箱、空調(diào)、彩電)等。用單片機來控制的小型家電產(chǎn)
12、品具有便攜實用,操作簡單的特點。</p><p> 時鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著時間的推移,科學技術的不斷發(fā)展,人們對時間計量的精度要求越來越高,應用越來越廣。怎樣讓時鐘更好的為人民服務,怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設計出新型時鐘。</p><p> 現(xiàn)今,高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術,
13、因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時,分,秒顯示時間的功能,還可以進行時和分的校對,片選的靈活性好。</p><p> 時鐘電路在計算機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎。在一個單片機應用系統(tǒng)中,時鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準振蕩定時
14、信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標準定時時鐘,即定時時間,它通常有兩種實現(xiàn)方法:一是用軟件實現(xiàn),即用單片機內(nèi)部的可編程定時/計數(shù)器來實現(xiàn),但誤差很大,主要用在對時間精度要求不高的場合;二是用專門的時鐘芯片實現(xiàn),在對時間精度要求很高的情況下,通常采用這種方法,典型的時鐘芯片有:DS1302,DS12887,X1203等都可以滿足高精度的要求。</p><p>
15、 本文設計的日歷和時鐘的顯示廣泛用于小型智能家用電子產(chǎn)品,如電子鐘。利用單片機進行控制,實時時鐘芯片DS1302進行記時,外加掉電存儲電路和顯示電路,可實現(xiàn)時間的調(diào)整和顯示。電子鐘既可廣泛應用于家庭,也可應用于銀行、郵電、賓館、醫(yī)院、學校、企業(yè)、商店等相關行業(yè)的大廳,以及單位會議室、門衛(wèi)等場所。因而,此設計具有相當重要的現(xiàn)實意義和實用價值。</p><p><b> 2設計方案論證</b>
16、</p><p><b> 2.1功能要求</b></p><p> 1、能顯示年、月、日、時、分、秒、星期</p><p> 2、能對時間進行手動修正</p><p><b> 3、采用24小時制</b></p><p> 4、使用LED顯示時間參數(shù)</p&
17、gt;<p> 5、上電后,電子鐘顯示“2010年 1月 1日”</p><p> “1時 1分 1秒 星期1”</p><p> 對時,分,秒,日,月,年高位為0時做消隱處理,只顯示單個數(shù)字以增強其可讀性。</p><p><b> 2.2方案確定</b></p><p> 2.2.1
18、單片機芯片的選擇方案和論證</p><p><b> 方案:</b></p><p> 采用AT89S52,片內(nèi)ROM全都采用Flash ROM;能以3V的超底壓工作;同時也與MCS-51系列單片機完全該芯片內(nèi)部存儲器為8KB ROM 存儲空間,同樣具有89C51的功能,且具有在線編程可擦除技術,當在對電路進行調(diào)試時,由于程序的錯誤修改或對程序的新增功能需要燒入程
19、序時,不需要對芯片多次拔插,所以不會對芯片造成損壞。</p><p> 所以選擇采用AT89S52作為主控制系統(tǒng).</p><p> 2.2.2顯示模塊選擇方案和論證</p><p><b> 方案一:</b></p><p> 采用LED液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰
20、可見,但是價格昂貴,需要的接口線多,所以在此設計中不采用LED液晶顯示屏。</p><p><b> 方案二:</b></p><p> 采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。</p><p> 2.2.3時鐘芯片的選擇方
21、案和論證</p><p><b> 方案一:</b></p><p> 直接采用單片機定時計數(shù)器提供秒信號,使用程序實現(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。所以不采用此方案。</p><p><b> 方案二:</b></p><p
22、> 采用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電路設計最終方案確定</p><p> 綜上各方案所述,對此次作品的方案選定: 以單片機AT89S52為主控制
23、器,時間數(shù)據(jù)是通過時鐘芯片DS1302來讀取,并通過LED數(shù)碼管顯示出來,并用鍵盤來完成對當前時間的調(diào)整。</p><p> 3主控制器和外圍器件</p><p> 3.1AT89S52單片機</p><p> AT89S52是一種低功耗、高性能CMOS 8位微控制器,使用 ATMEL 公司高密度非易失性存儲器技術制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。
24、并具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件
25、復位為止。</p><p> 3.2DS1302時鐘芯片</p><p> 3.2.1DS1302芯片介紹</p><p> 低功耗時鐘芯片DS1302可以對年、月、日、時、分、秒進行計時,且具有閏年補償?shù)榷喾N功能。DS1302用于數(shù)據(jù)記錄,特別是對某些具有特殊意義的數(shù)據(jù)點的記錄上,能實現(xiàn)數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。這種記錄對長時間的連續(xù)測控系統(tǒng)結果的分析
26、以及對異常數(shù)據(jù)出現(xiàn)的原因的查找有重要意義。</p><p> 采用DS1302作為記錄測控系統(tǒng)中的數(shù)據(jù)記錄,其軟硬件設計簡單,時間記錄準確,既避免了連續(xù)記錄的大工作量,又避免了定時記錄的盲目性,給連續(xù)長時間的測量、控制系統(tǒng)的正常運行及檢查都來了很大的方便,可廣泛應用于長時間連續(xù)的測控系統(tǒng)中。在測量控制系統(tǒng)中,特別是長時間無人職守的測控系統(tǒng)中,經(jīng)常需要記錄某些具有特殊意義的數(shù)據(jù)及其出現(xiàn)的時間。記錄及分析這些特殊意
27、義的數(shù)據(jù),對測控系統(tǒng)的性能分析及正常運行具有重要的意義。傳統(tǒng)的數(shù)據(jù)記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此只能記錄數(shù)據(jù)而無法準確記錄其出現(xiàn)的時間;若采用單片機計時,一方面需要采用計數(shù)器,占用硬件資源,另一方面需要設置中斷、查詢等,同樣耗費單片機的資源,而且某些測控系統(tǒng)可能不允許。而在系統(tǒng)中采用DS1302則能很好地解決這個問題。</p><p> DS1302的性能特性</p>&l
28、t;p> ·實時時鐘,可對秒、分、時、日、周、月以及帶閏年補償?shù)哪赀M行計數(shù);</p><p> ·用于高速數(shù)據(jù)暫存的31×8位RAM;</p><p> ·最少引腳的串行I/O;</p><p> ·2.5~5.5V 電壓工作范圍;</p><p> ·2.5V時耗電
29、小于300nA;</p><p> ·用于時鐘或RAM數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式;</p><p><b> ·簡單的3線接口;</b></p><p> ·可選的慢速充電(至VCC1)的能力。</p><p> DS1302時鐘芯片包括實時時鐘/日歷和31字
30、節(jié)的靜態(tài)RAM。它經(jīng)過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分、時、日、周、月和年等信息。對于小于31天的月和月末的日期自動進行調(diào)整,還包括閏年校正的功能。時鐘的運行可以采用24h或帶AM(上午)/PM(下午)的12h格式。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302有主電源/后備電源雙電源引腳:VCC1 在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電池
31、備份;VCC2在雙電源系統(tǒng)中提供主電源,在這種運用方式中,VCC1 連接到備份電源,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由VCC1或VCC2中較大者供電。當VCC2大于VCC1+0.2V時,VCC2給DS1302供電;當VCC2小于VCC1時,DS1302由VCC1供電。</p><p> DS1302數(shù)據(jù)操作原理</p><p> DS1302在任何數(shù)據(jù)傳送時
32、必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被輸入。無論是讀周期還是寫周期,開始8位指定40個寄存器中哪個被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫入數(shù)據(jù)。時鐘脈沖的個數(shù)在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加字節(jié)數(shù),最大可達248字節(jié)數(shù)。</p><p> 圖3-1 DS1302管腳圖<
33、;/p><p> 如果在傳送過程中置RST為低電平,則會終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在VCC >=2.5V之前,RST腳必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。DS1302的管腳圖如圖3-1所示,表3-2為各引腳的功能。</p><p> DS1302的控制字如圖3-3所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1;如果它為邏輯0
34、,則不能把數(shù)據(jù)寫入到DS1302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù);為1表示存取RAM數(shù)據(jù)。位5~1(A4~A0)指示操作單元的地址。最低有效位(位0)如為0,表示要進行寫操作;為1表示進行讀操作??刂谱止?jié)總是從最低位開始輸入/輸出。</p><p> 圖3-3 控制字節(jié)的含義</p><p> 為了提高對32個地址的尋址能力(地址/命令位1~5=邏輯1),可以把時鐘/日歷或RA
35、M寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或寫。在時鐘/日歷寄存器中的地址9~31或RAM寄存器中的地址31不能存儲數(shù)據(jù)。在多字節(jié)方式中,讀或寫從地址0的位0開始。必須按數(shù)據(jù)傳送的次序寫最先的8個寄存器。但是,當以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有31字節(jié)。不管是否寫了全部31字節(jié),所寫的每一字節(jié)都將傳送至RAM。數(shù)據(jù)讀寫程序如圖3-4所示。</p><p> 圖3-4
36、數(shù)據(jù)讀寫程序</p><p> DS1302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表3-5,其中奇數(shù)為讀操作,偶數(shù)為寫操作。</p><p> 表3-5 片內(nèi)時鐘數(shù)據(jù)寄存器</p><p> 3.2.2DS1302 的應用</p><p> 實時時鐘芯片DS130
37、2采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,也可以關閉充電功能,芯片采用32768Hz晶振。要特別說明的是,備用電源BT1可以用電池或超級電容(10萬μF以上)。雖然DS1302在主電源掉電后耗電很小,但如果要長時間保證時鐘正常,最好選用小型充電電池。如果斷電時間較短(幾小時或幾天),可以用漏電較小的普通電解電容代替(100μF就可以保證1小時的正常走時)。DS1302在第一次加電后,需進行初始化操作。初始化后就可以按正常
38、方法調(diào)整時間。</p><p><b> 3.3數(shù)碼管LED</b></p><p> LED顯示器由若干個發(fā)光二極管組成,當發(fā)光二極管導通時,相應的一個筆畫或一個點就發(fā)光??刂葡鄳墓軐ǎ湍茱@示出對應字符。各段LED顯示器需要由驅動電路驅動。在七段LED顯示器中,通常將各段發(fā)光二極管的陰極或陽極連在一起作為公共端。將各段發(fā)光二極管連在一起的叫共陽極顯示器,用
39、低電平驅動;將陰極連在一起的叫共陰極顯示器,用高電平驅動。</p><p> 靜態(tài)顯示就是每一個顯示器各筆畫段都要獨占具有一個鎖存功能的輸出口線,CPU把要顯示的字形代碼送到輸出口上,就可以使顯示器上顯示所需的數(shù)字或符號,此后,即使CPU不在去訪問它,因為各筆畫段借口具有鎖存功能,顯示的內(nèi)容也不會消失。</p><p> 動態(tài)顯示是指顯示器顯示某一字符時,相應段的發(fā)光二極管恒定地導通或
40、截止。靜態(tài)顯示有并行輸出和串行輸出兩種方式。在本系統(tǒng)中數(shù)碼管使用共陰極接法而且是用動態(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號腳為使能端,為高
41、電平時有效。74HC138封裝如圖3-7。當需要級聯(lián)時只需要改變使能端信號引腳即可,連接方法簡單。</p><p> 圖3-7 74HC138封裝圖</p><p> 3.5鎖存器74LS244</p><p> 74ls244由2組、每組四路輸入、輸出構成。每組有一個控制端G,由控制端的高或低電平?jīng)Q定該組數(shù)據(jù)被接通還是斷開。</p><p
42、> 圖3-8 74LS244引腳圖</p><p><b> 4硬件設計</b></p><p><b> 4.1電路設計框圖</b></p><p><b> 4.2系統(tǒng)概述</b></p><p> 本電路是由AT89S52單片機為控制核心,具有在線編程功能
43、,低功耗,能在3V超低壓工作;時鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31*8的用于臨時性存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月、日、周日、時、分、秒,具有使用壽命長,精度高和低功耗等特點,同時具有掉
44、電自動保存功能;顯示部份由15個數(shù)碼管,74Hs138、74ls244構成。使用動態(tài)掃描顯示方式對數(shù)字的顯示。</p><p><b> 4.3電源設計</b></p><p> 在這里因設計分工和側重點不同,電源模塊用通用的5v變壓器。</p><p> 4.4單片機的復位電路</p><p> 圖4-2手動復
45、位電路</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)的晶振電路</p><p> 單片機必須在時鐘
46、的驅動下才能進行工作。MCS-51系列單片機內(nèi)部都有一個時鐘振蕩電路,只需外接晶振源,就能產(chǎn)生一定頻率的時鐘信號送到單片機的內(nèi)部的各個單元,決定單片機的工作速度。圖4-3就是內(nèi)部時鐘工作方式的電路圖,這是一種常用的方式。這種方式是外界振蕩源,本設計就采用這種外接晶振的方法。電路中的兩個電容的作用有兩個:一是幫助振蕩器起振(C1 C2的值大,起振的速度慢;反之,速度快。);二是對振蕩器的頻率起到微調(diào)的作用(C1 C2的值大,頻率略有減少,
47、反之,頻率略有提高)。C1 C2的值采用30pF。</p><p> 圖4-3單片機內(nèi)部晶振電路連接圖</p><p><b> 4.6主電路設計</b></p><p> 主電路的功能是完成年、月、日、星期、時、分、秒之間的轉換, 再送往LED顯示,并且接受鍵盤操作,對日期和時間進行校正。</p><p> 電
48、路原理圖如圖4-4所示,顯示部分用P0口做為輸出數(shù)據(jù)接到LED數(shù)碼管a到h,并接74ls244做為各段的驅動(為了簡化電路圖在此用了8個上拉電阻代替74ls244)。用P3口的低3位接譯碼器的A0,A1,A2端,用P3.3,P3.4,P3.5分別接譯碼器的使能端,通過控制P3口來控制LED的動態(tài)掃描。單片機的18和19引腳接12MHZ的晶振,并接兩個22PF的電容同時接地,單片機復位端接一極性電容并連接到電源處,在極性電容的負極接一10
49、K的電阻,并連接至地做為放電用。本設計用到四個獨立式鍵盤分別接到P1口的低4位,用P1口的P1.4,P1.5,P1.6接日歷時鐘的使能端和時鐘端及數(shù)據(jù)輸入輸出口,并在日歷時鐘上接一32.768KHZ的晶振,并接兩個22PF的電容終端和地相連,各芯片的電源部分分別接到有開關式電源產(chǎn)生的+5V電源上,芯片的接地端都接在公共地上,在這里接電源部分就不再一一詳述。</p><p> 設計采用動態(tài)顯示,輪流掃描各個LED
50、使之顯示相應的數(shù)型碼,當掃描頻率大于人眼所能識別的頻率時就看不到閃爍現(xiàn)象。動態(tài)顯示的亮度不如靜態(tài)顯示,但靜態(tài)顯示占用的I/O口資源較多,往往用移位寄存器74LS164等來擴充其I/O口不足的情況,當顯示位數(shù)較多時,這樣勢必增加硬件開銷,增大成本,不利于開闊市場。本設計的突出之處在于硬件電路簡單,大大減少了硬件開銷,這樣又勢必增加了軟件開發(fā)的難度,但降低了成本有利于市場的開闊。</p><p><b>
51、 圖4-4電路原理圖</b></p><p><b> 5軟件設計</b></p><p> 軟件的設計是設計控制系統(tǒng)的應用程序。其任務是在整體設計和硬件設計的基礎上,確定程序結構,分配內(nèi)RAM資源,劃分功能模塊,然后進行主程序和各模塊程序的設計,最后連接起來成為一個完整應用程序,與硬件相結合完成相應功能。</p><p>&l
52、t;b> 5.1主程序設計</b></p><p> 主程序才用模塊化設計,流程圖如圖5-1所示。</p><p> 從上面主程序看出,主程序的組成是通過分別調(diào)用各子程序組成總體系統(tǒng)功能,能很直觀的看出主程序所要完成的功能,首先是初始化各模塊,之后調(diào)用鍵盤完成時間的調(diào)整,調(diào)用日歷子程序完成日歷時鐘的初始化和時間數(shù)據(jù)的讀寫,調(diào)用顯示子程序顯示數(shù)據(jù),最后又轉到鍵盤程序來
53、回循環(huán)。</p><p> 初始化部分主要有初始化定時器部分和和一些寄存器、標志位、初始化時間等。</p><p> 對定時器T0初始化時,首先置初值,CPU開中斷,定時器T0開中斷,并且開始計數(shù),而對定時器T1初始化時,首先置初值,定時器T1關中斷,并且停止計數(shù),只有收到命令時才能產(chǎn)生中斷。</p><p> 寄存器的初始化主要是初始化執(zhí)行程序時用到的部分R
54、AM空間,防止程序執(zhí)行時帶來混亂。</p><p> 標志位初始化是對時間調(diào)整時判斷是調(diào)分還是調(diào)時等而專設的位標志,初始化過程中標志位全部置0,即開始時是處于顯示狀態(tài),而不是調(diào)整狀態(tài),這一點在程序中相當明了。</p><p> 初始化時間是開機時顯示的時間,并通過調(diào)用日歷時鐘的寫程序來完成時間的置初值。</p><p><b> 圖5-1程序流程圖&
55、lt;/b></p><p> 5.2鍵盤子程序設計</p><p> 多功能鍵盤程序的設計是本設計的難點,也是完成本設計的重點,當有鍵按下時,調(diào)用10ms延時程序,再判斷是否有鍵按下無則返回,若有先調(diào)用顯示程</p><p> 序再判斷是否松開,否則再轉到顯示程序,這樣避免了在按鍵松開之前能正常顯示。其中K1鍵功能最多,通過判斷K1鍵按下的次數(shù)來判斷是
56、調(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才返回,而通過按下K4鍵即可返回。由于鍵盤流程圖非常復雜
57、,在此只表示秒,如圖5-2所示,其余略。</p><p> 5.3日歷時鐘子程序設計</p><p> DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。日歷時鐘DS1302的讀寫需要初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數(shù)據(jù)的傳輸都是從主機啟動寫時序開始,如果要求單總線器件回送是低位在先。讀寫都
58、是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>&l
59、t;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ù)人都渴求用視覺效果好,范圍廣,直觀明了,LED符合以上的要求,但相應的硬件設計相對復雜
60、。</p><p> 5.4顯示子程序設計</p><p> 本設計的顯示部分具有消隱和閃爍功能,當時分秒等高位為0時顯示消隱, 此時在讀時間時更加明了,但低位不能顯示消隱。閃爍功能也是本設計的一個難點,本設計采用8個位標志位,其中一個標志位通過用定時器0產(chǎn)生一個周期大約為每秒1.5次,使閃爍時效果達到最好。此時定時器采用定時中斷的工作方式,這樣可以充分利用CPU資源。另外7個標志位是
61、時分秒等的位標志位,當秒標志位置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)即可運行。但編制好的程序或焊接好的線路不能按預計的那樣正常工作是常見的事,經(jīng)
62、常會出現(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><p> 本設計是在Proteus軟件和Wa
63、va6000軟件相結合調(diào)試的,完全用仿真軟件在PC機上對目標電路原理圖和程序進行檢測和調(diào)試。調(diào)試過程中單片機相應輸入端由通用鍵盤和鼠標設定,運行狀態(tài)、各寄存器狀態(tài)、端口狀態(tài)等都可以在指定的窗口區(qū)域顯示出來,以確定程序運行有無錯誤。</p><p> 目標程序糾錯:該階段工作通常在目標程序編輯時就完成。一般來說,仿真軟件能為用戶輸入的程序指令糾錯,包括書寫格式、標號未定義或多重定義、轉移地址溢出等錯誤。</
64、p><p> 整體程序調(diào)試:即把各子程序整體連起來進入到綜合電路調(diào)試,看是否能實現(xiàn)預計的功能顯示。在這階段若發(fā)生故障,可以考慮各子程序在運行時是否破壞現(xiàn)場,數(shù)據(jù)緩沖單元是否發(fā)生沖突,標志位的建立和清除在設計上是否失誤,堆棧是否溢出,輸入輸出狀態(tài)是否正常等。</p><p> 經(jīng)過多次修改程序最后調(diào)試出來理想的效果,如圖6-1所示</p><p> 圖6-1 Pro
65、teus仿真</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> 單片
66、機應用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開的,許多硬件故障在軟件調(diào)試時才能發(fā)現(xiàn),但通常要先排除系統(tǒng)中明顯的硬件故障。調(diào)試工作可以分為四步:</p><p> 線路檢查:根據(jù)硬件邏輯設計圖,仔細檢查樣機線路是否連接正確,并核對元器件的型號、規(guī)格和安裝是否符合要求,必要時可用萬用表檢測線路通斷情況。</p><p> 電源調(diào)試:樣機的第一次通電測試很重要,若樣機中存在電源故障,則加電后將造成器
67、件損壞。調(diào)試的方法有兩種:一種是斷開樣機穩(wěn)壓電源的輸出端,檢查空載時電源工作情況;另一種是拔下樣機上的主要集成芯片,檢查電源的負載能力(用假負載)。確保電源無故障并性能符合設計要求。</p><p> 通電檢查:在確保電源良好前提下,接通電源。最好在電源與其余電路之間串接一個電流表。若接通后電流很大,必須立即切斷電源。電源大得超出正常范圍,說明電路中有短路或故障。通電檢查的主要目的是看系統(tǒng)是否存在短路或由元器件
68、損壞、裝配錯誤引起的電流異常。</p><p> 如圖6-2 焊接電路板</p><p> 檢查芯片的邏輯關系是否出錯:加電后檢查各芯片插座上相關引腳的電位,仔細測量相應的輸入輸出電平是否正常。單片機系統(tǒng)大都是數(shù)字邏輯電路,使用電平檢查法可首先查出邏輯設計是否正確,選用器件和連接關系是否符合要求等。</p><p> 本設計特點突出,性價比高,適合于家庭掛歷,
69、有很高應用價值。</p><p><b> 7結論</b></p><p> 硬件系統(tǒng)關系到所要設計的電子產(chǎn)品好懷,如系統(tǒng)抗干擾性等,所以要合理的安排盡量減少干擾提高性能。單片機是很容易受干擾的控制器,當采用外部晶振時,應盡量讓其靠近單片機減少對其干擾,防止程序亂飛現(xiàn)象。同時還可以采用隔離等方式減少干擾,硬件系統(tǒng)設計的好壞很大部分來源于經(jīng)驗,所以我們要有動手的好習
70、慣。</p><p> 軟件設計是核心部分,具有多樣化,靈活性高,易移植等優(yōu)點,要深深理會各指令的含義才能更加熟練應用,中斷的合理利用可以減少CPU利用資源,具有執(zhí)行效率高等優(yōu)點,本設計用到定時器中斷以減少對CPU的占用,更好的處理其他功能。軟件的設計大部分采用模塊化設計的方法以方便調(diào)試,并使其可讀性大大增強,方便更改和移植。</p><p> 在這次設計中我學到了很多,也發(fā)現(xiàn)了自己的
71、不足,也難免有錯誤之處,敬請?zhí)岢觯?lt;/p><p><b> 致謝</b></p><p> 本文研究與設計的八路多功能搶答器采用了通用的電子元器件,利用AT89S51單片機及外圍接口實現(xiàn)搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間。計分接收的單片機部分利用匯編語言編寫。
72、設計時,首先通過在線編程,然后具體安裝,仿真,完全實現(xiàn)了設計功能。</p><p> 本設計中,利用常規(guī)的單片機掃描識別的方法。通過硬件電路的具體應用和系統(tǒng)的仿真研究得出,本設計不僅安裝簡單、成本低,更重要的是工作性能穩(wěn)定,是一個實用、創(chuàng)新型的工程設計。</p><p> 由于采用匯編語言設計電路,所以本設計在編程成功后,硬件電路基本上不需要調(diào)試就可正常使用。即使在設計完畢交給用戶使用
73、后,對系統(tǒng)的功能改進或升級也只是通過改寫程序來完成,極大地方便了用戶或設計者對電路更新。</p><p> 回頭再看看該設計,還可以將設計的擴展功能增強:1、可以設計聲控裝置,在主持人說開始時,系統(tǒng)自動完成清零并開始計時的功能。2、在主持人讀題的過程中,禁止搶答,可以在主持人控制的開關上另接一個與其一樣的電路,即可實現(xiàn)“違規(guī)者可見”的功能,即在主持人讀題時如果有人違反比賽規(guī)定搶先按動按鈕,顯示器可以顯示是哪個參
74、賽隊搶先,便于作出相應的處理。如果提供相應的器材及時間上的寬限,一定可以完成上述擴展功能,進一步完善作品。</p><p> 經(jīng)過這半個學期的努力,在老師和同學的幫助下終于徹底的做完了畢業(yè)設計的所有工作。通過這次的畢業(yè)設計,我能運用已學的知識解決我在設計中遇到的問題,使自己的動手能力和思考問題的能力得到了很大的提高。在做設計的過程中我查閱了很多的資料,并認真的閱讀這些與我的設計相關的資料,從而我的專業(yè)涵養(yǎng)得到了
75、提高,知識的儲備量也有所增加。在做設計時,我復習了很多專業(yè)課的知識,這使得我的專業(yè)知識在離校之前得到了鞏固。我認為這是我在整個設計工程中得到的最好的回報。</p><p> 整個設計通過了軟件和硬件上的調(diào)試、仿真。我想這對于自己以后的學習和工作都會有很大的幫助的。在這次設計中遇到了很多實際性的問題,在實際設計中才發(fā)現(xiàn),書本上理論性的東西與在實際運用中的還是有一定的出入的,所以有些問題不但要深入地理解,而且要不斷
76、地更正以前的錯誤思維。對于單片機設計,其硬件電路是比較簡單的,主要是解決程序設計中的問題。而程序設計是一個很靈活的東西,它反映了你解決問題的邏輯思維和創(chuàng)新能力。它才是一個設計的靈魂所在。因此在整個設計過程中大部分時間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個子程序才是關鍵的問題所在,這需要對單片機的結構很熟悉。因此可以說單片機的設計是軟件和硬件的結合,二者是密不可分的。</p><p> 但
77、是,通過這次設計我也發(fā)現(xiàn)自己的很多不足之處。在設計過程中我發(fā)現(xiàn)自己考慮問題很不全面,自己的專業(yè)知識掌握的很不牢固,所掌握的計算機應用軟件還不夠多,我希望自己的這些不足之處能在今后的工作和學習中得到改善。而且,通過這次設計,我懂得了學習的重要性,學會了堅持和努力,這將為以后的學習做出了最好的榜樣!同時,該設計也有不足之處,缺少了答題計分等功能。我將會在以后的學習中繼續(xù)學習。</p><p><b> ??!
78、</b></p><p><b> 參考文獻</b></p><p> [01]何宏主編.單片機原理與接口技術.北京:國防工業(yè)出版社.2006.07</p><p> [02]楊西明,朱騏主編.單片機編程與應用入門.北京:機械工業(yè)出版社.2004.06</p><p> [03]先鋒工作室編著.單片機
79、程序設計實例.北京:清華大學出版社.2003.01</p><p> [04]謝宜仁主編.單片機實用技術問答.北京:人民郵電出版社.2003.02</p><p> [05]孫江宏,李良玉等編著.Protel99電路設計與應用.北京:機械工業(yè)出版社.2004.07</p><p> [06]房小翠,王金鳳編著.單片機實用系統(tǒng)設計技術.北京:國防工業(yè)出版社.19
80、99.06</p><p> [07]秦曾煌主編.電工學(電子技術).北京:高等教育出版社,2004</p><p> [08]何立民.單片機高級教程應用與設計.北京:北京航空航天大學出版社,2000</p><p> [09]劉國榮單片微型計算機技術.北京:機械工業(yè)出版社,1996</p><p> [10]王迎旭.單片機原理與應用
81、.北京:機械工業(yè)出版社,2004</p><p> [11]于永權.ATMEL89系列單片機應用技術.北京:北京航空航天大學出版社,2001</p><p> [12]高峰.單片微型計算機原理與接口技術.北京:科學出版社,2003</p><p> [13]各種網(wǎng)絡教程及其他</p><p><b> 附錄</b>
82、;</p><p><b> 附錄Ⅰ硬件電路圖</b></p><p><b> 附錄Ⅱ主程序源代碼</b></p><p> ZHUAN BIT 50H ;閃爍標志位輔助標志位</p><p> ZHUAN1 BIT 51H ;年開閃爍的標志位</p><p&
83、gt; ZHUAN2 BIT 52H ;月開閃爍的標志位</p><p> ZHUAN3 BIT 53H ;日開閃爍的標志位</p><p> ZHUAN4 BIT 54H ;時開閃爍的標志位</p><p> ZHUAN5 BIT 55H ;分開閃爍的標志位</p><p> ZHUAN6 BIT 56H ;秒
84、開閃爍的標志位</p><p> ZHUAN7 BIT 57H ;星期開閃爍的標志位</p><p><b> ORG 0000H</b></p><p> LJMP START ;開始并初始化</p><p> ORG 000BH ;定時/計數(shù)T0中斷</p>&
85、lt;p> LJMP ZDUAN </p><p> ORG 001BH ;定時/計數(shù)T1中斷</p><p> LJMP ZDUAN2</p><p> ZDUAN:MOV TH0,#00H ;使ZHUAN由正到負周期大約為1.5即當開閃爍時 每秒大約閃爍1.5次環(huán)境</p><p> MO
86、V TL0,#00H</p><p> DJNZ R7,ZDUAN1 ;循環(huán)指令</p><p> CPL ZHUAN ;閃爍標志位求反</p><p><b> MOV R7,#3</b></p><p> ZDUAN1:RETI ;中斷返回</p><p&
87、gt; ZDUAN2:MOV TH1,#0FCH</p><p> MOV TL1,#43H</p><p><b> CPL P3.0</b></p><p><b> RETI</b></p><p><b> ORG 0100H</b></p>&
88、lt;p> START:MOV SP,#70H ;設堆棧</p><p> MOV TMOD,#11H ;T0,TI工作方式1</p><p> MOV TH0,#00H</p><p> MOV TL0,#00H</p><p> MOV TH1,#0FCH</p><p> MOV TL1,#
89、43H</p><p> SETB EA ;開放CPU</p><p> SETB ET0 ;開放T0中斷</p><p> SETB TR0 ;啟動T0工作</p><p> CLR ZHUAN1 ;初始化標志位</p><p> C
90、LR ZHUAN2</p><p> CLR ZHUAN3</p><p> CLR ZHUAN4</p><p> CLR ZHUAN5</p><p> CLR ZHUAN6</p><p> CLR ZHUAN7</p><p><b> MOV R7,#3</
91、b></p><p> MOV 5FH,#00H ;初始化寄存器</p><p> MOV 30H,#01H ;時間賦初始值</p><p> MOV 31H,#01H</p><p> MOV 32H,#01H</p><p> MOV 33H,#01H</p><p>
92、; MOV 34H,#01H</p><p> MOV 35H,#01H</p><p> MOV 36H,#10H</p><p> SETB P1.4 ;啟動設置寫保護寄存器</p><p> MOV A,#10001110B ;命令字節(jié),07H寄存器寫</p><p> ACALL WBYTE &l
93、t;/p><p> MOV A,#00H ;允許寫數(shù)據(jù)字節(jié)</p><p> ACALL WBYTE</p><p> CLR P1.4 ;RST=0,停止傳送</p><p> MOV R0,#30H ;數(shù)據(jù)存放首地址</p><p> MOV R2,#8 ;寫8個字節(jié)</p&
94、gt;<p> SETB P1.4 ;啟動連續(xù)寫8個字節(jié)</p><p> MOV A,#0BEH ;設多字節(jié)寫命令字</p><p> LCALL WBYTE</p><p> CHUSHI:MOV A,@R0 ;取數(shù)據(jù)</p><p> LCALL WBYTE ;寫一個字節(jié)</p>&
95、lt;p><b> INC R0</b></p><p> DJNZ R2,CHUSHI ;循環(huán)寫8個字節(jié)</p><p><b> ;主程序</b></p><p> MAIN:LCALL JIAN ;調(diào)鍵盤子程序</p><p> LCALL RILI ;調(diào)日歷時
96、鐘程序</p><p> LCALL XIAN ;調(diào)顯示程序</p><p> SJMP MAIN </p><p><b> ;鍵盤程序</b></p><p> JIAN:MOV P1,#0FFH ;初始</p><p><b> MOV A,P1</b
97、></p><p><b> CPL A</b></p><p> JNZ JI1 ;判鍵按下</p><p> LJMP JIAN4</p><p> JI1:LCALL DELAY ;調(diào)延時</p><p><b> CPL A</b>
98、;</p><p><b> JNZ JI2 </b></p><p> LJMP JIAN4</p><p> JI2:JNB P1.1,JIAN3 ;判K2鍵為0轉</p><p> JNB P1.2,JIAN3 ;判K3鍵為0轉</p><p> JIAN0:MOV P
99、1,#0FFH</p><p> JNB P1.3,JIAN3 ;判K4鍵為0轉</p><p> JNB P1.0,JIAN1 ;判K1鍵為0轉</p><p> LJMP JIANX</p><p> JIAN1:LCALL DELAY ;調(diào)延時去抖動</p><p> JB P1.0,J
100、IANX ;為1就是鍵抖動</p><p> JIAN11:LCALL XIAN ;調(diào)顯示</p><p> JNB P1.0,JIAN11 ;判鍵K1松開</p><p> MOV A,5FH </p><p> ADD A,#1 ;寄存器加1</p><p><b>
101、; MOV 5FH,A</b></p><p> CJNE A,#8,JIANX</p><p> LJMP JIAN3</p><p> JIANX:MOV A,5FH</p><p> CJNE A,# 1,JIA1 ;比較轉移指令A不等于#時,轉移</p><p> LJMP TIAO
102、M ;轉調(diào)秒子程序</p><p> JIA1:MOV A,5FH</p><p> CJNE A,#2,JIA2</p><p> LJMP TIAOF ;轉調(diào)分子程序</p><p> JIA2:MOV A,5FH</p><p> CJNE A,#3,JIA3</p><p
103、> LJMP TIAOS ;轉調(diào)時子程序</p><p> JIA3:MOV A,5FH</p><p> CJNE A,#4,JIA4</p><p> LJMP TIAOR ;轉調(diào)日子程序</p><p> JIA4:MOV A,5FH</p><p> CJNE A,#5,JIA5&
104、lt;/p><p> LJMP TIAOY ;轉調(diào)月子程序</p><p> JIA5:MOV A,5FH</p><p> CJNE A,#6,JIA6</p><p> LJMP TIAON ;轉調(diào)年子程序</p><p><b> JIA6:</b></p>
105、<p> LJMP TIAOX ;轉調(diào)星期子程序</p><p> JIAN3:CLR ZHUAN1 ;標志位清0</p><p> CLR ZHUAN2</p><p> CLR ZHUAN3</p><p> CLR ZHUAN4</p><p> CLR ZHUAN5</p&g
106、t;<p> CLR ZHUAN6</p><p> CLR ZHUAN7</p><p> MOV 5FH,#00H</p><p> JIAN2:LCALL XIAN ;調(diào)顯示子程序</p><p> MOV A,P1 </p><p><b> CPL A
107、</b></p><p><b> JNZ JIAN2</b></p><p><b> JIAN4:RET</b></p><p><b> ;調(diào)秒</b></p><p> TIAOM:SETB ZHUAN6 ;秒閃爍標志位置1</p>&
108、lt;p> LCALL XIAN</p><p> JNB P1.1,MIAOZ ;加轉移</p><p> JNB P1.2,MIAOJ ;減轉移 </p><p> LJMP JIAN0</p><p> MIAOZ:LCALL DELAY ;調(diào)延時去抖動</p><p> JNB
109、 P1.1,MIAOZ1</p><p> LJMP JIAN0</p><p> MIAOZ1:LCALL XIAN</p><p> JNB P1.1,MIAOZ1 ;判鍵K2松開</p><p> MOV A,30H ;取秒數(shù)據(jù)</p><p> ADD A,#1 ;加1&
110、lt;/p><p> DA A ;十進制調(diào)整指令</p><p> MOV 30H,A ;送回秒寄存器</p><p> CJNE A,#60H,MIAOZ2</p><p> MOV 30H,#00H ;秒值過60為0</p><p> LJMP MIAOZ2</p>
111、;<p> MIAOJ:LCALL DELAY;調(diào)延時去抖動</p><p> JNB P1.2,MIAOJ1</p><p> LJMP JIAN0</p><p> MIAOJ1:LCALL XIAN</p><p> JNB P1.2,MIAOJ1 ;判鍵K3松開</p><p>
112、 MOV A,30H ;取秒數(shù)據(jù)</p><p> MOV B,#10H</p><p> DIV AB ;A除以B</p><p> MOV 61H,B ;數(shù)據(jù)個位放到61H</p><p> MOV B,#10 </p><p> MUL AB
113、 ;A乘以B</p><p> ADD A,61H ;不帶進位加法</p><p> DEC A ;A減1</p><p> MOV B,#10 </p><p><b> DIV AB </b></p><p><b> SWAP A</b&g
114、t;</p><p><b> ADD A,B</b></p><p><b> MOV 30H,A</b></p><p> CJNE A,#96H,MIAOZ2</p><p> MOV 30H,#59H</p><p> MIAOZ2:MOV A,30H<
115、;/p><p> ANL A,#0FH ;分離低四位</p><p> MOV 40H,A ;存數(shù)據(jù)到寄存器</p><p> MOV A,30H </p><p> SWAP A ;半字節(jié)交換</p><p> ANL A,#0FH</p><p> M
116、OV 41H,A ;存數(shù)據(jù)到寄存器</p><p> SETB P1.4 ;啟動設置寫保護寄存器</p><p> MOV A,10001110B ;命令字節(jié),寄存器07H</p><p> ACALL WBYTE</p><p> MOV A,#00H ;允許寫數(shù)據(jù)字節(jié)</p><p>
117、 ACALL WBYTE</p><p> CLR P1.4 ;停止傳送</p><p> SETB P1.4 ;啟動寫</p><p> MOV A,#80H ;秒寫命令字節(jié)</p><p> LCALL WBYTE</p><p> MOV A,30H ;寫秒
118、數(shù)據(jù)到DS1302</p><p> LCALL WBYTE</p><p> LCALL XIAN </p><p> LJMP JIAN0</p><p><b> RET</b></p><p><b> ;調(diào)分</b></p><p&g
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機畢業(yè)設計--基于51系列的單片機進行的實時日歷和時鐘顯示設計
- 畢業(yè)設計-基于51系列的單片機進行的實時日歷和時鐘顯示設計
- 畢業(yè)設計---基于51系列的單片機進行的實時日歷和時鐘顯示設計
- 實時日歷和時鐘顯示單片機畢業(yè)設計
- 單片機畢業(yè)設計---基于51系列的單片機日歷和時鐘顯示設計
- 基于51系列的單片機進行的實時日歷和時鐘顯示畢業(yè)論文
- 單片機畢業(yè)設計---實時日歷和時鐘顯示設計
- 畢業(yè)設計開題報告--單片機實時日歷和時鐘的顯示
- 外文翻譯---基于基于單片機進行實時日歷和時鐘顯示設計
- 單片機畢業(yè)設計開題報告---實時日歷和時鐘的顯示
- 用lcd顯示實時日歷時鐘單片機課程設計
- 用lcd顯示實時日歷時鐘單片機課程設計
- 單片機畢業(yè)設計--用單片機設計日歷和時鐘
- 單片機日歷和時鐘畢業(yè)設計論文
- 單片機畢業(yè)設計--基于51單片機的數(shù)碼日歷鐘的設計與制作
- 基于51單片機數(shù)字時鐘 畢業(yè)設計
- 單片機畢業(yè)設計--基于單片機的電子時鐘
- 畢業(yè)設計---基于51單片機的電子日歷的應用
- 基于單片機的時鐘顯示器畢業(yè)設計
- 畢業(yè)設計--基于單片機的時鐘顯示器設計
評論
0/150
提交評論