電子時鐘設計畢業(yè)論文_第1頁
電子時鐘設計畢業(yè)論文_第2頁
電子時鐘設計畢業(yè)論文_第3頁
電子時鐘設計畢業(yè)論文_第4頁
電子時鐘設計畢業(yè)論文_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

指導教師評閱書指導教師評價:一、撰寫(設計)過程1、學生在論文(設計)過程中的治學態(tài)度、工作精神□優(yōu)□良□中□及格□不及格2、學生掌握專業(yè)知識、技能的扎實程度□優(yōu)□良□中□及格□不及格3、學生綜合運用所學知識和專業(yè)技能分析和解決問題的能力□優(yōu)□良□中□及格□不及格4、研究方法的科學性;技術線路的可行性;設計方案的合理性□優(yōu)□良□中□及格□不及格5、完成畢業(yè)論文(設計)期間的出勤情況□優(yōu)□良□中□及格□不及格二、論文(設計)質(zhì)量1、論文(設計)的整體結構是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設計)任務(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設計)水平1、論文(設計)的理論意義或對解決實際問題的指導意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設計是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設計說明書)所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格建議成績:□優(yōu)□良□中□及格□不及格(在所選等級前的□內(nèi)畫“√”)指導教師:(簽名)單位:(蓋章)年月日評閱教師評閱書評閱教師評價:一、論文(設計)質(zhì)量1、論文(設計)的整體結構是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設計)任務(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格二、論文(設計)水平1、論文(設計)的理論意義或對解決實際問題的指導意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設計是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設計說明書)所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格建議成績:□優(yōu)□良□中□及格□不及格(在所選等級前的□內(nèi)畫“√”)評閱教師:(簽名)單位:(蓋章)年月日教研室(或答辯小組)及教學系意見教研室(或答辯小組)評價:一、答辯過程1、畢業(yè)論文(設計)的基本要點和見解的敘述情況□優(yōu)□良□中□及格□不及格2、對答辯問題的反應、理解、表達情況□優(yōu)□良□中□及格□不及格3、學生答辯過程中的精神狀態(tài)□優(yōu)□良□中□及格□不及格二、論文(設計)質(zhì)量1、論文(設計)的整體結構是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設計)任務(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設計)水平1、論文(設計)的理論意義或對解決實際問題的指導意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設計是否有創(chuàng)意?□優(yōu)□良□中□及格□不及格3、論文(設計說明書)所體現(xiàn)的整體水平□優(yōu)□良□中□及格□不及格評定成績:□優(yōu)□良□中□及格□不及格(在所選等級前的□內(nèi)畫“√”)教研室主任(或答辯小組組長):(簽名)年月日教學系意見:系主任:(簽名)年月日摘要隨時代的發(fā)展,生活節(jié)奏的加快,人們的時間觀念愈來愈強;隨自動化、智能化技術的發(fā)展,機電產(chǎn)品的智能度愈來愈高,用到時間提示、定時控制的地方也會愈來愈多,因此,設計開發(fā)數(shù)字時鐘具有良好的應用前景。由于單片機價格的低成本、高性能,在自動控制產(chǎn)品中得到了廣泛的應用。本設計利用Atmel公司的AT89S52單片機對電子時鐘進行開發(fā),設計了實現(xiàn)所需功能的硬件電路,應用匯編語言進行軟件編程,并用實驗板進行演示、驗證。在介紹本單片機的發(fā)展情況基礎上,說明了本設計實現(xiàn)的功能,以及實驗板硬件情況,并對各功能電路進行了分析。主要工作放在軟件編程上,用實驗板實現(xiàn)時間、日期、定時及它們的設定功能,詳細對軟件編程流程以及調(diào)試進行了說明,并對計時誤差進行了分析及校正,提出了定時音與顯示相沖突問題及解決方案。實驗證明效果良好,可以投入使用。關鍵詞:單片機AT89S52電子時鐘匯編語言目錄摘要 I目錄 II第一章設計任務分析 11.1課題背景 11.2設計任務 11.3課題意義 11.4本章小節(jié) 2第二章系統(tǒng)功能及操作 32.1系統(tǒng)功能的確定 32.1.1基本功能 32.1.2擴展功能 32.2系統(tǒng)操作說明 42.3本章小節(jié) 43系統(tǒng)硬件設計—實驗板介紹 53.1芯片的選擇 53.2實驗板電路原理圖 63.3功能電路分析 63.3.1時鐘電路 63.3.2復位電路 63.3.3鍵盤電路 73.3.4數(shù)碼顯示電路 73.3.5蜂鳴器電路 83.4本章小節(jié) 84系統(tǒng)軟件設計 94.1數(shù)據(jù)單元分配 94.1.1數(shù)據(jù)存儲單元分配 94.1.2標志位單元分配 94.2計時時鐘實現(xiàn)的基本方法 94.3實現(xiàn)時鐘程序設計步驟 104.3.1主程序模塊設計 104.3.2計時子程序模塊的實現(xiàn) 114.3.3顯示子程序模塊的實現(xiàn) 124.3.4時鐘設定子程序模塊的實現(xiàn) 124.3.5日期、定時設定子程序模塊的實現(xiàn) 124.4程序說明 124.4.1定時器初值計算 124.4.2程序初始化 124.4.3誤差分析及校正 134.4.4實現(xiàn)閃動設定 134.4.5實現(xiàn)連續(xù)加1 134.4.6定時音與顯示相沖突問題及解決方案 134.5本章小節(jié) 135系統(tǒng)調(diào)試 14結束語 15致謝 16附錄A:實驗板原理圖 17附錄B:程序清單 18參考文獻 45第一章設計任務分析1.1課題背景單片機自1976年由Intel公司推出MCS-48開始,迄今已有二十多年了。由于單片機集成度高、功能強、可靠性高、體積小、功耗低、使用方便、價格低廉等一系列優(yōu)點,目前已經(jīng)滲入到人們工作和生活的方方面面,單片機的應用領域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費產(chǎn)品、辦公自動化、汽車電子、PC機外圍以及網(wǎng)絡通訊等廣大領域。單片機有兩種基本結構:一種是在通用微型計算機中廣泛采用的,程序存儲器和數(shù)據(jù)存儲器共用一個存儲器空間的結構,稱為“馮·諾依曼”(VonNeumann)結構。另一種是將程序存儲器和數(shù)據(jù)存儲器截然分開,分別尋址的結構,稱為“哈佛”(Harvard)結構,目前的單片機采用此種結構為多。本文討論的單片機多功能時鐘系統(tǒng)的核心是目前應用極為廣泛的51系列單片機,配置了外圍設備,構成了一個可編程的計時定時系統(tǒng),具有體積小,可靠性高,功能多等特點。不僅能滿足所需要求而且還有很多功能可供擴展,有著廣泛的應用領域。1.2設計任務1.3課題意義在日常生活和工作中,我們常常用到定時控制,如擴印過程中的曝光定時等。早期常用的一些時間控制單元都使用模擬電路設計制作的,其定時準確性和重復精度都不是很理想,現(xiàn)在基本上都是基于數(shù)字技術的新一代產(chǎn)品,隨著單片機性價比的不斷提高,新一代產(chǎn)品的應用也越來越廣泛。大則可以構成復雜的工業(yè)過程控制系統(tǒng),完成復雜的控制功能;小則可以用于家電控制,甚至可以用于兒童電子玩具。它功能強大、體積小、質(zhì)量輕、靈活好用,配以適當?shù)慕涌谛酒?,可以構成各種各樣、功能各異的微電子產(chǎn)品。隨著電子技術的飛速發(fā)展,家用電器和辦公電子設備逐漸增多,不同的設備都有自己的控制器,使用起來很不方便。這些具有人們所需要的智能化特性的產(chǎn)品減輕了人的勞動,擴大了數(shù)字化的范圍,為家庭數(shù)字化提供了可能。根據(jù)這種實際情況,設計了一個單片機多功能時鐘系統(tǒng),它有基本的時間功能,還有定時功能,既可作為鬧鈴,也可擴展為定時對家電等電氣產(chǎn)品的自動控制,可以避免多種控制器的混淆,利用一個控制器對多路電器進行控制;可增加溫度傳感器,進行實時溫度顯示,進一步擴展為利用不同的溫度某些電氣產(chǎn)品進行自動控制;也可增加濕度傳感器,進行實時濕度顯示,以便對濕度進行控制,方便人們的生活。1.4本章小節(jié)本章主要介紹了課題背景、設計任務和課題意義,對單片機的優(yōu)點及結構作了簡要敘述,也對本系統(tǒng)的應用及概況進行了說明。第二章系統(tǒng)功能及操作2.1系統(tǒng)功能的確定2.1.1基本功能系統(tǒng)具有時間、日期、三路定時功能,并可以對時間、日期、定時進行設定,有定時提示音。要求計時精度盡量提高。顯示格式為:時間:“時”(第1、2位)、“分”(第3、4位)、“秒”(第5、6位);日期:“年”(第1、2位,如2007年顯示為07)、“月”(第3、4位)、“日”(第5、6位);定時:“時”(第1、2位)、“分”(第3、4位)、“狀態(tài)標志”(第5、6位)。鍵盤及數(shù)碼管排列如圖2-1所示。2.1.2擴展功能該系統(tǒng)可以增加溫度傳感器,實現(xiàn)溫度測量,以實時顯示溫度,用1、2位數(shù)碼管顯示;還可以增加濕度傳感器,實現(xiàn)濕度測量,以實時顯示濕度,用5、6位數(shù)碼管顯示。多路定時器功能也可擴展為對多種家電等電氣產(chǎn)品的自動控制,比如電飯煲等;也可利用溫度對某些電氣產(chǎn)品進行自動控制,比如空調(diào)等;還可利用濕度傳感器對濕度進行調(diào)節(jié)。如圖2-1所示。圖2-1系統(tǒng)功能圖2.2系統(tǒng)操作說明(1)按K1鍵顯示日期,3秒后自動返回時間顯示,3秒內(nèi)按K2鍵進入日期設置,此時年位閃爍,按K1鍵進行年位加1或連續(xù)加1調(diào)整。按K2鍵依次切換到月位、日位,分別按K1鍵進行月位、日位調(diào)整,日位設置好后,再按K2鍵保存日期設定值,并返回顯示時間。(2)按K2鍵大于1秒進入時間設置,此時小時位閃爍,秒位自動清零,按K1鍵進行小時調(diào)整,按K2鍵切換到分鐘位,按K1鍵進行分鐘調(diào)整,分位設置好后,再按K2鍵保存時間設定值,并返回顯示時間,按所設定的時間值進行計時。(3)連續(xù)按K3鍵顯示3路定時及其開關狀態(tài),當顯示某一路定時時,3秒后自動返回時間顯示,3秒內(nèi)按K2鍵進入定時設置,設置同日期(5、6位顯示00為當路定時關,顯示01為當路定時開)。當路定時設置完后按K2鍵保存定時設定值并返回時間顯示。(4)按K4鍵顯示實時溫度和濕度,5秒后自動返回時間顯示。2.3本章小節(jié)本章主要對本系統(tǒng)的基本功能和擴展功能進行了說明,也對本系統(tǒng)的系統(tǒng)的顯示情況及操作作了詳細說明。3系統(tǒng)硬件設計—實驗板介紹3.1芯片的選擇本設計選用AT89S52芯片,它是一種低功耗、高性能CMOS8位微控制器,具有8K(0000H~1FFFH)在線系統(tǒng)可編程Flash存儲器。片上Flash允許程序存儲器在線編程,也適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在線系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供靈活、高效的解決方案。AT89S52具有以下標準功能:8K(0000H~1FFFH)Flash,256字節(jié)(00H~FFH)數(shù)據(jù)存儲器(RAM),64K(0000H~FFFFH)程序存儲器(ROM),32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口內(nèi)晶振及時鐘電路。其中,數(shù)據(jù)存儲器(RAM)用于存放各種運算的中間結果,作緩存和數(shù)據(jù)暫存,以及設置特征標志等。AT89S52的片內(nèi)數(shù)據(jù)存儲器用位尋址方式,最大尋址范圍為256字節(jié)(00H~FFH)。按使用情況不同可分成低128字節(jié)(00H~7FH)和高128字節(jié)(80H~FFH)。其中低128字節(jié)為真正的RAM存儲器,高128字節(jié)為特殊功能寄存器(SFR)區(qū),如累加器ACC、程序狀態(tài)字PSW、數(shù)據(jù)指針DPTR、程序計數(shù)器PC等。整個片內(nèi)RAM區(qū)分布如圖3-1所示。圖3-1片內(nèi)RAM區(qū)3.2實驗板電路原理圖實驗板電路結構框圖如圖3-2所示,原理電路圖(只有本設計所需部分)見附錄A。圖3-2實驗板結構框圖3.3功能電路分析3.3.1時鐘電路實驗板的時鐘振蕩源電路如圖3-3所示。其中JT為11.0592MHz的晶振,改變兩電容CB的值即可對此晶振頻率進行調(diào)節(jié)。該電路提供單片機工作所需的振蕩頻率,計算定時器初值即需此晶振頻率,在通信時也需知道晶振頻率,以對波特率進行計算。圖3-3時鐘電路3.3.2復位電路如圖3-4所示為實驗板的復位電路,當RESET信號為低電平時,實驗板為工作狀態(tài),當RESET信號為高電平時,實驗板為復位或下載程序狀態(tài)。由于AT89S52具有ISP的功能,即可以通過并口線直接將程序下載到單片機內(nèi),因此,AT89S52具有兩種狀態(tài),下載程序狀態(tài)和運行狀態(tài)。該復位電路能實現(xiàn)上電自動復位,也能手動復位,一般復位時RESET應保持20毫秒以上高電平,此復位時間由接地電容控制。圖3-4復位電路3.3.3鍵盤電路如圖3-5所示為陣列按鍵電路,各設置及轉換信號由此電路輸入,實驗板提供了16個按鍵,由P1口經(jīng)SN74F244(驅動芯片)輸出擴展成4×4的陣列按鍵,P1.0~P1.3為行線,P1.4~P1.7為列線。SN74F244有一片選信號線,當此口線為低電平時,A1~A4與Y1~Y4接通,反之,A1~A4與Y1~Y4斷開。此鍵盤用掃描工作方式,若有鍵按下,則相應位端口被拉低為低電平,由于本系統(tǒng)只用了4個按鍵,所以只需對4個按鍵進行掃描。掃描時,先置P3.3口為高電平,向P1口送0EFH(MOVP1,#0EFH),再置P3.3口為低電平,讀P1口(MOVA,P1),最后判斷P1口低4位哪位是低電平,若某位為低電平,則相應按鍵被按下,如P1.0為低電平(ACC.0=0),則K1鍵被按下。圖3-5陣列按鍵3.3.4數(shù)碼顯示電路如圖3-6所示為數(shù)碼顯示電路,實驗板使用了6個共陽數(shù)碼管,P0口為段碼信號線,B1~B6為位控線,是P1口經(jīng)SN74F573(反向驅動芯片,即輸入為高電平,則輸出為低電平,反之則輸出為高電平,該芯片也有一片選信號C,當此信號為高電平時有效)反向得到,再由B1~B6控制晶體管Q1~Q6,以達到控制每位數(shù)碼管的目的。系統(tǒng)采用動態(tài)顯示,先向P0口送第一位數(shù)碼管需要顯示的段碼值,再給P1口送0FEH,延時1毫秒使第一位數(shù)碼管顯示,又向P0口送第二位數(shù)碼管需要顯示的段碼值,P1口送0FDH,延時1毫秒,使第二位數(shù)碼管顯示。依次遞推,直到最后一位數(shù)碼管,然后再循環(huán)。改變延時時長可以調(diào)節(jié)數(shù)碼管顯示的亮度,由于單片機執(zhí)行速度很快(微秒級),所以看上去數(shù)碼管一直亮著。圖3-6數(shù)碼顯示電路3.3.5蜂鳴器電路其硬件原理圖如圖3-7所示。此電路用于定時時發(fā)出提示音。SPEAKER與P3.2口相連,當SPEAKER輸出高電平時蜂鳴器不響,而SPEAKER輸出低電平時蜂鳴器發(fā)出響聲。只需控制SPEAKER輸出高低電平的時間和變化頻率,就可以讓蜂鳴器發(fā)出不同的聲音。此電路用于產(chǎn)生定時器提示音。圖3-7蜂鳴器電路3.4本章小節(jié)本章主要對芯片作了介紹,對其內(nèi)存單元作了詳細說明,并對系統(tǒng)硬件(實驗板)的結構框圖和各功能電路作了說明,以及這些電路在本設計中的用途。4系統(tǒng)軟件設計4.1數(shù)據(jù)單元分配4.1.1數(shù)據(jù)存儲單元分配數(shù)據(jù)存儲單元分配如下表所示:項目秒分時日月年存儲單元30H31H32H33H34H35H項目定時1:開關定時1:分定時1:時定時2:開關定時2:分定時2:時存儲單元36H37H38H39H3AH3BH項目定時3:開關定時3:分定時3:時存顯示首地址堆棧起始單元存儲單元3CH3DH3EH3FH50H4.1.2標志位單元分配標志位單元(20H)分配如下表所示:位單元項目位單元項目01H1、2位數(shù)碼管閃爍標志位08H定時1顯示標志位02H09H定時2顯示標志位03H3、4位數(shù)碼管閃爍標志位0AH定時3顯示標志位04H0BH定時1響鈴標志位05H5、6位數(shù)碼管顯示標志位0CH定時2響鈴標志位06H0DH定時3響鈴標志位07H日期顯示標志位0EH總響鈴標志位4.2計時時鐘實現(xiàn)的基本方法時鐘的最小計時單位是秒,使用定時器的方式1,最大的定時時間也只能達到131毫秒。可把定時器的定時時間定為50毫秒,這樣,計數(shù)溢出20次即可得到時鐘的最小計時單位─秒。計數(shù)20次可以用軟件實現(xiàn),對定時器溢出次數(shù)進行計數(shù),計滿20次即為1秒。從秒到分,從分到時,以及日、月、年都是通過軟件累加并進行比較的方法實現(xiàn)的。4.3實現(xiàn)時鐘程序設計步驟系統(tǒng)采用模塊化結構,主程序只需調(diào)用各個子程序模塊即可實現(xiàn)相應功能。其模塊結構圖如圖4-1所示。圖4-1程序各模塊方框圖4.3.1主程序模塊設計整個程序進行模塊化設計,主程序只需調(diào)用相應的程序即可。主程序流程如圖4-2所示。圖4-2主程序流程圖4.3.2計時子程序模塊的實現(xiàn)當T0中斷時,執(zhí)行本程序,因T0設為50毫秒中斷,故中斷20次為1秒。中斷程序分別有20次計數(shù)(1秒),60次計數(shù)(1分),60次計數(shù)(1小時),24次計數(shù)(1天),28、29、30、31次計數(shù)(1個月),12次計數(shù)(1年)。當前位到設定數(shù)值時寫0或1,下一位加1。由于本世紀是21世紀,年位前兩位是4的倍數(shù),故判斷閏年時只需對年的后兩位進行計算,能被4整除為閏年,否則為平年,年位只進行加1,大于99時又重新開始。計時中斷流程圖如圖4-3所示。圖4-3計時子程序流程圖圖4-4顯示子程序流程圖4.3.3顯示子程序模塊的實現(xiàn)顯示原理在3.3.4節(jié)已給予了說明,流程圖如圖4-4所示。4.3.4時鐘設定子程序模塊的實現(xiàn)當設定時間時,斷開T0中斷,秒單元清0,進入時、分單元設定。設定好后重裝T0初值,開T0中斷。流程圖如圖4-6所示。圖4-6時鐘設定子程流程圖4.3.5日期、定時設定子程序模塊的實現(xiàn)日期、定時的設定同時鐘設定。定時設定時,把時鐘的秒位換成定時標志位,“00”為當路定時關,“01”為當路定時開,流程圖與時鐘設定程序相似。4.4程序說明4.4.1定時器初值計算因定時器工作于方式1,需要50ms的中斷,所以計數(shù)初值:χ=216-t×fosc/12=65536-50×10-3×11.0592×106/12=19456表示成十六進制為χ=4C00H,故(TH0)=4CH,(TL0)=00H。4.4.2程序初始化程序初始化時,清相應內(nèi)存單元(20H~4FH共48個單元),送時間(00時00分00秒)、日期(07年10月01日)初值,送定時器T0、T1初值,TH0=TH1=4CH,TL0=TL1=00H,特殊寄存器(SP=50H、TMOD=11H)值等。4.4.3誤差分析及校正當T0中斷時,需重裝定時初值,且要加上從斷開T0中斷到允許T0中斷共有13個周期,以減小誤差,故理論重裝定時初值為(TH0)=4CH,(TL0)=13H。但該外接晶振電路的晶振頻率可調(diào),可能出現(xiàn)誤差,所以實際不是這個值。經(jīng)調(diào)試,當定時初值為(TH0)=4CH,(TL0)=06H時,24小時約慢2秒,所以每當計時24小時之后,給秒單元(30H)送02H,使秒累加時從2加起,24小時就少加2秒,即可使時間得到校正。4.4.4實現(xiàn)閃動設定閃動可選用段碼送00H實現(xiàn),也可禁止當前位顯示,選通位送0實現(xiàn)。本設計選用后者實現(xiàn)閃動,用定時器T1進行控制。4.4.5實現(xiàn)連續(xù)加1先判斷鍵是否松開,若松開,則只執(zhí)行一次加1程序段,進行單次加1;若未松開則連續(xù)執(zhí)行加1程序段,實現(xiàn)連續(xù)加1。每執(zhí)行一次加1程序段就調(diào)用顯示子程序進行延時,以對調(diào)節(jié)速度進行控制。本系統(tǒng)以5Hz的速度連續(xù)加1,這樣能快速對時間、日期、定時進行設定。4.4.6定時音與顯示相沖突問題及解決方案由于蜂鳴器響時P3.2口的電平呈高頻變化,頻率1K~2K,其間隙時間為0.5~1毫秒,小于6毫秒,因顯示時每個數(shù)碼管顯示1毫秒,至少需要6毫秒,故蜂鳴器響時無法進行顯示。為解決此問題,可增加鎖存器,采用靜態(tài)顯示;也可增加一語音芯片,既可解決此問題,也可把定時音換成音樂或語音提示,或增加其它功能,使系統(tǒng)功能更強。4.5本章小節(jié)本章主要對系統(tǒng)的軟件設計進行了詳細說明,從數(shù)據(jù)單元及標志單元的分配,到各子程序模塊的實現(xiàn)方法,以及對時鐘的誤差分析、校正,定時音與顯示相沖突問題及解決方案。5系統(tǒng)調(diào)試該時鐘程序的功能模塊先后實現(xiàn)的順序為:主程序→時間模塊→顯示模塊→鍵盤模塊→時間設定及其顯示模塊→日期及其顯示模塊→日期設定及其顯示模塊→定時及其顯示模塊→定時設定及其顯示模塊→定時提示音及與顯示相沖突的協(xié)調(diào)模塊。每完成一個模塊就與前一個已完成的模塊結合起來調(diào)試,直至實現(xiàn)相應功能,再編寫下一模塊程序。在與主程序銜接時,主程序和各子程序也需作相應的改動,以便與子程序更好的銜接,特別是顯示子程序需作較大改動,以便對不同內(nèi)容進行顯示。程序用偉福軟件進行匯編語言程序編寫,該軟件還可進行軟件仿真。用匯編語言編好程序后,先編譯,把匯編語言編譯成二進制代碼和十六進制代碼。若編譯無法進行,說明程序有語法錯誤,需進行修改。編譯成功后則可進行軟件仿真,仿真可單步運行,也可連續(xù)運行。仿真時應調(diào)出數(shù)據(jù)窗口,看各單元數(shù)據(jù)是否正確,這是軟件仿真的目的。當然,有些錯誤軟件仿真不容易發(fā)現(xiàn),這就得把編譯得到二進制代碼或十六進制代碼下載到實驗板上運行(用Easy51Pro下載軟件,與實驗板相配的下載軟件。下載時先擦再寫,若不能能正常寫入,則再擦,再寫,直到寫入芯片),看是否正常,若不正常,再根據(jù)出錯的地方返回用軟件仿真,查看相應的數(shù)據(jù)單元,再修改程序,這樣反復調(diào)試,直至程序可用,在實驗板上能正常運行。待程序調(diào)試成功后即可燒寫到實驗板上,讓其運行,至此,完成系統(tǒng)調(diào)試。結束語經(jīng)過兩個多月的工作,基于單片機的電子時鐘系統(tǒng)的設計已經(jīng)完成。經(jīng)試驗驗證,滿足設計要求。由于加入了計時修正,在精度方面已經(jīng)相當準確了,不過還可以達到更高精度,需要精確計算定時器T0中斷次數(shù)的誤差,再予以修正;在軟件的定時部分可以進行改進,用循環(huán)程序實現(xiàn),每次循環(huán)只需更改相應單元即可,這樣使程序精簡。由于時間原因,沒能實現(xiàn)這兩部分。該系統(tǒng)的擴展功能由于硬件原因不能實現(xiàn),以后如硬件允許可以實現(xiàn)這部分功能,還可增加其它功能。本次設計主要涉及了單片機原理及接口技術的相關知識和匯編語言編程的諸多要領。設計中涉及的許多問題,更是對以前所學的知識的回顧及在過去的三年中學到知識的系統(tǒng)總結,這次設計對我們將來的工作有很大的幫助。在設計中,我積極查閱資料,細心鉆研各個細節(jié),完成了多功能時鐘的開發(fā)與調(diào)試,也讓我們明白了在設計中考慮問題應該全面。在設計中既鍛煉了我的動手能力,又學會查閱資料,提煉需要的信息。由于本人水平有限,文中難免出現(xiàn)錯誤與不足之處,懇請各位老師批評指正。致謝首先要感謝我的家人,是他們讓我能上大學;在大學里,先要學會學習才能學的更好,是老師教了我怎樣學習,到現(xiàn)在能完成畢業(yè)設計,都少不了老師的功勞;在整個設計過程中,從硬件電路圖到軟件編程,應用了相當多的知識,包含了大學三年所學的知識,在此向各位任課老師表示感謝。在設計過程中,指導老師 xxx老師給予了我很大幫助,李老師對設計中出現(xiàn)的問題作了及時講解和耐心指導,使我的設計得以順利完成。在此,特向xxx老師、xxx老師、xxx老師等表示感謝;同時,很多同學也給我提供了很多幫助,也向幫助我的同學表示感謝。附錄A:實驗板原理圖附錄B:程序清單ORG0000HLJMPSTARTORG000BHLJMPINTT0ORG001BHLJMPINTT1;;;;;;;;;;;;主程序;;;;;;;;;;;;ORG0020HSTART:MOVR0,#20H;清20H--4FH共48個單元MOVR7,#30H;20H,21H標志用CLEARA:MOV@R0,#00HINCR0DJNZR7,CLEARACLRP2.2CLRP2.1CLRP2.0MOVSP,#50HMOV33H,#01HMOV34H,#0AHMOV35H,#07HMOVTMOD,#11H;設T0、T1為16位定時器MOVTL0,#00H;50MS定時初值(T0計時用)MOVTH0,#4CHMOVTL1,#00HMOVTH1,#4CHSETBEASETBET0SETBTR0MOVR4,#14HSTART1:LCALLDISPLAYLCALLKEYJBACC.3,$+6DATE1:LCALLDATEJBACC.2,$+6TIMEA:LCALLTIMEJBACC.1,$+6SETTIME1:LCALLSETTIMEJBACC.0,$+6JNB0EH,$+6;定時顯示判斷LCALLRING1SJMPSTART1;;;;;;;;;;;;;;;;;;;計時程序;;;;;;;;;;;;;;;;;;;INTT0:PUSHACCPUSHPSWCLRET0CLRTR0MOVA,#06H;TL=#06H,TH=#4CHADDA,TL0;低8位初值修正MOVTL0,A;重裝初值(低8位修正值)MOVA,#4CHADDCA,TH0 ;高8位初值修正MOVTH0,A;重裝初值(高8位修正值)SETBTR0DJNZR4,$+5;1s未到中斷退出LJMP$+6LJMPOUTT0MOVR4,#14HINC30HMOVA,30HCJNEA,#3CH,$+6LJMP$+6LJMPOUTT0MOV30H,#00HINC31HLCALLTIME1;調(diào)定時比較程序MOVA,31HCJNEA,#3CH,$+5SJMP$+5LJMPOUTT0MOV31H,#00HINC32HMOVA,32HCJNEA,#18H,$+6LJMP$+6LJMPOUTT0MOV32H,#00HINC33HMOV 30H,#02H ;時間修正MOVA,34HCJNEA,#02H,$+6LJMPMON2CJNEA,#04H,$+6LJMPDAY30CJNEA,#06H,$+6LJMPDAY30CJNEA,#09H,$+6LJMPDAY30CJNEA,#0BH,$+6LJMPDAY30MOVA,33HCJNEA,#20H,$+6LJMPLOOP1LJMPOUTT0DAY30:MOVA,33HCJNEA,#1FH,$+6LJMPLOOP1LJMPOUTT0MON2:MOVA,35HMOVB,#04HDIVABMOVA,BJZDAY29MOVA,33HCJNEA,#1DH,$+6LJMPLOOP1LJMPOUTT0DAY29:MOVA,33HCJNEA,#1EH,$+6LJMPLOOP1LJMPOUTT0LOOP1:MOV33H,#01HINC34HMOVA,34HCJNEA,#0DH,$+6LJMP$+6LJMPOUTT0MOV34H,#01HINC35HMOVA,35HCJNEA,#64H,$+6LJMP$+6LJMPOUTT0MOV35H,#00HOUTT0:POPPSWPOPACCSETBET0RETI;;;;;;;;;;;;;;;;;;;定時比較程序;;;;;;;;;;;;;;;TIME1:JNB0BH,TIME2MOVA,31HCJNEA,37H,TIME2MOVA,32HCJNEA,38H,TIME2SETB08H;鬧鈴1顯示標志位置位SJMPRINGTIME2:JNB0CH,TIME3MOVA,31HCJNEA,3AH,TIME3MOVA,32HCJNEA,3BH,TIME3SETB09H;鬧鈴2顯示標志位置位SJMPRINGTIME3:JNB0DH,OUTTIMEMOVA,31HCJNEA,3DH,OUTTIMEMOVA,32HCJNEA,3EH,OUTTIMESETB0AH;鬧鈴3顯示標志位置位SJMPRINGOUTTIME:RETRING:SETB0EHRET;;;;;;;;;;;;;;;;;;;時鐘調(diào)整程序;;;;;;;;;;;;;;;;TIME:LCALLDL1SLCALLKEYJBACC.2,$+5SJMP$+5LJMPSTART1CLRET0CLRTR0MOV30H,#00HSETB05HSETB06H;5、6位閃爍標志位置位SETBET1SETBTR1MOVR2,#06HLCALLDISPLAYLCALLKEYJNBACC.2,$-6;等待鍵釋放TIMEHOUR:LCALLDISPLAYLCALLKEYJNBACC.2,TIMEMIN;等待鍵按下JBACC.3,$-9TIMEHOUR1:LCALLDL02SLCALLKEYJNBACC.3,$+19;等待鍵釋放INC32HMOVA,32HCJNEA,#18H,$+6MOV32H,#00HSETB05HSETB06HSJMPTIMEHOURCLR05HCLR06HINC32HMOVA,32HCJNEA,#18H,$+6MOV32H,#00HSJMPTIMEHOUR1TIMEMIN:CLR05HCLR06HSETB03H;3、4位閃爍標志位置位SETB04HLCALLDISPLAYLCALLKEYJNBACC.2,$-6;等待鍵釋放TIMEMIN1:LCALLDISPLAYLCALLKEYJNBACC.2,TIMEOUT;等待鍵按下JBACC.3,$-9TIMEMIN2:LCALLDL02SLCALLKEYJNBACC.3,$+19;等待鍵釋放INC31HMOVA,31HCJNEA,#3CH,$+6MOV31H,#00HSETB03HSETB04HSJMPTIMEMIN1CLR03HCLR04HINC31HMOVA,31HCJNEA,#3CH,$+6MOV31H,#00HSJMPTIMEMIN2TIMEOUT:CLR03HCLR04HCLRET1CLRTR1MOVR4,#14HSETBET0SETBTR0LCALLDISPLAYLCALLKEYJNBACC.2,$-6;等待鍵釋放RET;;;;;;;;;;;;;;;;;;;T1中斷程序;;;;;;;;;;;;;;INTT1:PUSHACCPUSHPSWMOVTL1,#00HMOVTH1,#4CHDJNZR2,INTT1OUTMOVR2,#06HJNB01H,$+7CPL02HSJMPINTT1OUTJNB03H,$+7CPL04HSJMPINTT1OUTJNB05H,$+5CPL06HINTT1OUT:POPPSWPOPACCRETI;;;;;;;;;;;;;;;;;;;定時顯示與設定;;;;;;;;;;SETTIME:SETB08HLCALLDISPLAYLCALLKEYJNBACC.1,$-6;等待鍵釋放MOV40H,#0FH;顯示時長LCALLDL02SLCALLKEYJNBACC.2,TIME1SETJNBACC.1,DISPLAYTIME2DJNZ40H,$-12CLR08HRETDISPLAYTIME2:CLR08HSETB09HLCALLDISPLAYLCALLKEYJNBACC.1,$-6;等待鍵釋放MOV40H,#0FH;顯示時長LCALLDL02SLCALLKEYJNBACC.2,TIME2SET1JNBACC.1,DISPLAYTIME3DJNZ40H,$-12CLR09HRETTIME2SET1:LJMPTIME2SETDISPLAYTIME3:CLR09HSETB0AHLCALLDISPLAYLCALLKEYJNBACC.1,$-6;等待鍵釋放MOV40H,#0FH;顯示時長LCALLDL02SLCALLKEYJNBACC.1,$+9JNBACC.2,TIME3SET1DJNZ40H,$-12CLR0AHLCALLDISPLAYLCALLKEYJNBACC.1,$-6;等待鍵釋放RETTIME3SET1:LJMPTIME3SETTIME1SET:SETB05H ;5、6位閃爍標志位置位SETB06HSETBET1SETBTR1MOVR2,#06HLCALLDISPLAYLCALLKEYJNBACC.2,$-6;等待鍵釋放TIME1HOUR:LCALLDISPLAYLCALLKEYJNBACC.2,TIME1MIN;等待鍵按下JBACC.3,$-9TIME1HOUR1:LCALLDL02SLCALLKEYJNBACC.3,$+19;等待鍵釋放INC38HMOVA,38HCJNEA,#18H,$+6MOV38H,#00HSETB05HSETB06HSJMPTIME1HOURCLR05HCLR06HINC38HMOVA,38HCJNEA,#18H,$+6MOV38H,#00HSJMPTIME1HOUR1TIME1MIN:CLR05HCLR06HSETB03H;3、4位閃爍標志位置位SETB04HLCALLDISPLAYLCALLKEYJNBACC.2,$-6;等待鍵釋放TIME1MIN1:LCALLDISPLAYLCALLKEYJNBACC.2,TIME1SIGN;等待鍵按下JBACC.3,$-9TIME1MIN2:LCALLDL02SLCALLKEYJNBACC.3,$+19;等待鍵釋放INC37HMOVA,37HCJNEA,#3CH,$+6MOV37H,#00HSETB03HSETB04HSJMPTIME1MIN1CLR03HCLR04HINC37HMOVA,37HCJNEA,#3CH,$+6MOV37H,#00HSJMPTIME1MIN2TIME1SIGN:CLR03HCLR04HSETB01H;1、2位閃爍標志位置位SETB02HLCALLDISPLAYLCALLKEYJNBACC.2,$-6;等待鍵釋放TIME1SIGN1:LCALLDISPLAYLCALLKEYJNBACC.2,SETTIME1OUT;等待鍵按下JBACC.3,$-9INC36HMOVA,36HCJNEA,#02H,$+6MOV36H,#00HCPL0BHLCALLDISPLAYLCALLKEYJNBACC.3,$-6;等待鍵釋放SJMPTIME1SIGN1SETTIME1OUT:CLR08HLJMPSETTIMEOUTTIME2SET:SETB05H ;5、6位閃爍標志位置位SETB06HSETBET1SETBTR1MOVR2,#06HLCALLDISPLAYLCALLKEYJNBACC.2,$-6;等待鍵釋放TIME2HOUR:LCALLDISPLAYLCALLKEYJNBACC.2,TIME2MIN;等待鍵按下JBACC.3,$-9TIME2HOUR1:LCALLDL02SLCALLKEYJNBACC.3,$+19;等待鍵釋放INC3BHMOVA,3BHCJNEA,#18H,$+6MOV3BH,#00HSETB05HSETB06HSJMPTIME2HOURCLR05HCLR06HINC3BHMOVA,3BH

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論