版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 1 引言</b></p><p> 單片機系統(tǒng)被定義為:以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。實際上單片機系統(tǒng)是計算機的一種應(yīng)用形式,是將先進的計算機技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物,具有軟件代碼小、高度自動化、響應(yīng)速度快等特點。因此它是一個技術(shù)密集、資
2、金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。特別適合于要求實時的和多任務(wù)的系統(tǒng)。</p><p> 如今單片機系統(tǒng)的應(yīng)用越來越廣泛,那么單片機系統(tǒng)應(yīng)用緣何能在近年來的信息技術(shù)應(yīng)用中脫穎而出,成為眾多商家角逐的對象。其實原因很簡單,因為這里面蘊藏著巨大的市場,巨大的商業(yè)利益,單就電視應(yīng)用而言,目前全球有2億多有線電視用戶,中國也有8000多萬戶,而且每年還在以600萬的速度遞增。如今,在這塊領(lǐng)域里,還沒有一家公司有
3、成熟的產(chǎn)品,也沒有標準的操作系統(tǒng),更沒有一個可以主導(dǎo)市場的壟斷者。在這種局勢下,雖然競爭將異常劇烈,但突圍的可能性也較大,只要能夠培養(yǎng)出自己的技術(shù)能力和市場開拓能力,是有可能取得巨大成功的。</p><p> 設(shè)計電子打鈴的最終目的是能把它應(yīng)用到實際中去。如學(xué)校的作息時鐘打鈴,車站的日期時間顯示,實時控制系統(tǒng)以及儀器儀表,家用電器等各個領(lǐng)域。由于它的應(yīng)用領(lǐng)域廣,技術(shù)要求各不相同,因此應(yīng)用系統(tǒng)的硬件設(shè)計是多樣化的
4、,但總設(shè)計方法和研制步驟相同。本論文主要介紹一下電子打鈴的設(shè)計過程與方法,以及在單片機系統(tǒng)上的調(diào)試方法。</p><p> 電子打鈴課題設(shè)計著重于實踐和動手能力的培養(yǎng),通過閱讀并學(xué)習(xí)本論文可以大概了解單片機的發(fā)展及其工作方法,了解匯編語言,掌握一定的MCS—51單片機知以及用指令編程方法和技巧。能用MCS—51單片機指令編制出一些實用的小程序。</p><p> 另一方面通過本論文可以
5、了解電子打鈴打鈴器的時鐘走時、顯示、定時器等的工作方式以及時鐘控制打鈴編程方法。時鐘走時是利用定時器計數(shù)進行的,顯示由鍵盤顯示接口電路與五個數(shù)碼顯示組成,利用可實現(xiàn)對鍵盤、顯示器的自動掃描并且可以減輕對CPU的負擔(dān),具有顯示穩(wěn)定、程序簡單、不會出現(xiàn)誤動作的特點。</p><p> 時鐘控制就是利用鍵盤輸入一個時設(shè)定的時間值,再經(jīng)過程序中的比較判斷程序來控制時鐘走。</p><p><
6、;b> 2 總體方案論證 </b></p><p> 方案:采用AT89C51單片機來實現(xiàn)系統(tǒng)的控制。此系統(tǒng)硬件簡潔,將復(fù)雜的硬件功能用軟件實現(xiàn),因此系統(tǒng)控制靈活,能很好地滿足本題的基本要求和擴展要求簡潔、靈活、可擴展性好,能完全達到設(shè)計要求,故采用這種方案。</p><p> 2.1 確定技術(shù)指標</p><p> 在開始設(shè)計前
7、,必需明確應(yīng)用系統(tǒng)的功能和技術(shù)要求,綜合考慮系統(tǒng)的先進性、可靠性、可維護性、成本及經(jīng)濟效益等。再參考國內(nèi)外同類產(chǎn)品的資料,提出合理可行的技術(shù)指標,以達到最高的性價比。</p><p><b> 2.2 機型選擇</b></p><p> 機型選擇的出發(fā)點及依據(jù),可根據(jù)市場情況,選擇成熟、穩(wěn)定、貨源充足的機型產(chǎn)品。同時還應(yīng)根據(jù)應(yīng)用系統(tǒng)的要求考慮所選的單片機應(yīng)具有很高
8、的性價比。</p><p> 另一方面為提高經(jīng)濟效率,縮短研制周期,最好選用最熟悉的機種和器件。采用性能優(yōu)良的單片機開發(fā)工具也很能加快系統(tǒng)的研制過程。</p><p><b> 2.3 器件選擇</b></p><p> 應(yīng)用系統(tǒng)除單片機以外,系統(tǒng)通常還有傳感器、模擬電路、輸入輸出設(shè)備。這些部件的選擇應(yīng)符合系統(tǒng)的精度、速度和可靠性等方面的
9、要求。</p><p> 2.4 軟、硬件功能的劃分</p><p> 系統(tǒng)的軟件與硬件的設(shè)計是緊密聯(lián)系在一起的,在某場合硬件和軟件具有一定的互換性。為了降低成本、簡化硬件結(jié)構(gòu),某些功能可由軟件來完成。若為了提高工作速度、精度、減少軟件的工作量、提高可靠性,也可以采用硬件來完成??傊?,硬件、軟件兩者是相輔相成的,可根據(jù)實際應(yīng)用情況來合理選擇。</p><p>
10、 3 模塊電路設(shè)計與比較</p><p> 3.1 時鐘方案選擇</p><p> 方案一:因為題目中只要求顯示小時和分鐘,因此可以用門電路組合構(gòu)成時鐘發(fā)生器,但此方案硬件復(fù)雜,穩(wěn)定性低,且不易控制。 </p><p> 方案二:采用時鐘芯片。該芯片可以進行時分秒的計數(shù),可編程接口,還具有報警功能和掉電保存功能,并且可以對其方便的進行程序控制,完全能
11、滿足題目的要求。</p><p> 3.2 顯示模塊的選擇 </p><p> 方案一:采用數(shù)碼管顯示。數(shù)碼管亮度高、體積小、重量輕,但其顯示信息簡單、有限,在本題目中應(yīng)用很大。 </p><p> 方案二:采用液晶顯示。液晶顯示功耗低,輕便防震。由于本題顯示信息比較簡單,采用液晶顯示界面不清晰,操作不方便。 </p>
12、<p> 3.3 其他設(shè)計的考慮 </p><p> 鬧鈴響采用帶音樂芯片的揚聲器,為實現(xiàn)題目中接觸止鬧功能,我們可以采用觸發(fā)開關(guān)控制鬧鈴的啟動。通過單片機的中斷定時控制鬧鈴?fù)V埂?#160;</p><p> 4 系統(tǒng)模塊設(shè)計及電路圖 </p><p> 4.1 鍵盤接口電路設(shè)計</p><p>
13、 我們采用 2 × 8 的鍵盤,原理圖如圖所示。 </p><p><b> 4.2電源電路設(shè)計</b></p><p><b> 4.3 顯示模塊 </b></p><p> 4.4 數(shù)碼管驅(qū)動模塊</p><p> 5
14、 測試方法及結(jié)果 </p><p> 5.1 測試方法 采用先分別調(diào)試各單元模塊,調(diào)通后再進行整機調(diào)試的方法,以提高調(diào)試效率。 </p><p> ?。?#160;1) 時鐘測試 在帶有單片機的電路板上編程調(diào)試,使其在液晶上顯示出時分秒,并可以通過鍵盤控制設(shè)定時間和鬧鈴開關(guān)的時間。利用仿真機調(diào)試成功后通過編程器將程序?qū)懭胄酒姓{(diào)試,調(diào)試結(jié)
15、果顯示,該模塊可以顯示時分秒,可以正常工作。 </p><p> ?。?#160;2) 鬧鐘測試 通過鍵盤控制設(shè)定鬧鐘開關(guān)和鬧鐘響的時間,并通過單片機程序驅(qū)動音樂電路發(fā)聲。經(jīng)過調(diào)試,鬧鐘功能正常,滿足題目的基本要求。 </p><p><b> 5.2 測試結(jié)果</b></p><p> 5.2.1
16、基本要求</p><p> 上電復(fù)位后,由顯示信息可知達到數(shù)字顯示時間、鬧鐘開、關(guān)狀態(tài)、鬧鐘燈熄滅的顯示要求,</p><p> 可進行時間設(shè)定,在新的時間點上運行,實現(xiàn)時間設(shè)置功能;可進行鬧鐘時間設(shè)定,在新的時間點到達時,發(fā)出聲報警,實現(xiàn)鬧鐘設(shè)置功能;時間到達鬧鐘設(shè)置值時,系統(tǒng)發(fā)出聲報警,實現(xiàn)鬧鐘控制。</p><p> 5.2.2 自行發(fā)揮部分</p
17、><p><b> 多鬧鐘設(shè)置</b></p><p> 系統(tǒng)可以設(shè)置多個鬧鐘時間,目前以1個為例設(shè)計了系統(tǒng),可實現(xiàn)多點啟鬧及</p><p><b> 顯示日歷、星期</b></p><p> 6 電子打鈴的研制過程</p><p> 電子打鈴的研制過程實際上是一個應(yīng)
18、用系統(tǒng)的研制過程。所謂應(yīng)用系統(tǒng),就是利用單片機為某應(yīng)用目的而設(shè)計的單片機專用系統(tǒng)(在調(diào)試過程中通常稱為目標系統(tǒng))。</p><p> 電子打鈴和一般的計算機應(yīng)用系統(tǒng)一樣,也是由硬件和軟件組成。硬件指單片機、擴展的存儲器、輸入輸出設(shè)備、控制設(shè)備、執(zhí)行部件等組成的系統(tǒng)。軟件是各種各種應(yīng)用程序的總稱。硬件和軟件只有緊密結(jié)合,協(xié)調(diào)一致,才能組成高性能的應(yīng)用系統(tǒng)。在系統(tǒng)的研制過程中,軟硬件的功能總是在不斷地調(diào)整,以便相互
19、適應(yīng),相互配合,以達到最佳的性價比。</p><p> 電子音時鐘的研制過程主要包括總體設(shè)計、硬件設(shè)計、軟件設(shè)計、在線仿真調(diào)試、程序固化等幾個階段。</p><p><b> 6.1 硬件設(shè)計</b></p><p> 硬件設(shè)計的主要任務(wù)是根據(jù)總體設(shè)計要求,以及在所選的機型上的基礎(chǔ)上,確定系統(tǒng)擴展所用到的外圍電路等,然后設(shè)計出系統(tǒng)電路原理
20、圖。</p><p> 對于電路芯片的選擇原則應(yīng)根據(jù)系統(tǒng)對它的速度、精度、價格的要求而確定。除此之外,還應(yīng)考慮和系統(tǒng)中的傳感器、放大器相匹配問題。</p><p> 1.地址譯碼電路的設(shè)計:MCS-51系統(tǒng)有充足的存儲空間,包括64KB程序存儲器和64KB的數(shù)據(jù)存儲器,在應(yīng)用系統(tǒng)中一般不需要這么大的容量。為了簡化硬件線路,同時還要使用到的存儲器空間地址連續(xù),通常采用譯碼器、線選法相結(jié)合
21、的辦法。</p><p> 2.線驅(qū)動器的設(shè)計:MCS-51系統(tǒng)單片機擴展功能比較強,但擴展總線負載能力有限。若所擴展的電路負載超過總線負載能力時,系統(tǒng)便不能可靠地工作。此情況下必須在部線上加驅(qū)動器。</p><p> 3. 其它電路的設(shè)計:由于單片機具有很多的特點,它被大量地應(yīng)用于工業(yè)測控系統(tǒng)中,而在這些系統(tǒng)中,經(jīng)常要對一些現(xiàn)場物理量進行測量或者將其采集下來進行信號處理之后,再反過來
22、去控制被測對象或相關(guān)設(shè)備。在這種情況下,應(yīng)用系統(tǒng)的硬件設(shè)計就應(yīng)該包括與此有關(guān)的外圍電路。例如,鍵盤、顯示器、開關(guān)、輸入輸出設(shè)備、采樣、放大、應(yīng)用系統(tǒng)各部分的驅(qū)動能力等外圍電路,要進行全盤合理的設(shè)計。</p><p> 4.可靠性設(shè)計:課題設(shè)計的可靠性是一項最重要最基本的技術(shù)指標,這是硬件設(shè)計時必須考慮的一個指標。</p><p> 可靠性是指在規(guī)定的條件規(guī)定的時間內(nèi)完成規(guī)定功能的能力。
23、規(guī)定的條件包括環(huán)境條件(如溫度、濕度、振動等)、供電條件等。規(guī)定的時間一般指平均故障時間,平均無故障時間、連續(xù)正常運行時間等。規(guī)定的功能隨單片機的應(yīng)用系統(tǒng)不同而不同。單片機應(yīng)用系統(tǒng)在實際工件中,可能會受到各種外部和內(nèi)部的干擾,使系統(tǒng)工作產(chǎn)生錯誤或故障,為了降低錯誤和故障的產(chǎn)生機率,常采用以下可提高可靠性的措施:</p><p> (1)提高元件的可靠性;</p><p> (2)提高印
24、刷電路板和組裝的質(zhì)量,設(shè)計電路板時布線及接地方法要符合要求;</p><p> (3)對供電電源采用擴干擾措施;</p><p> (4)輸入輸出通道擴干擾措施。</p><p> 6.1 工藝設(shè)計,包括機箱、面板、配線、接插件等,這也是一個初次進行系統(tǒng)設(shè)計人員容易疏忽但又十分重要的問題。在設(shè)計時要充分考慮到安裝、調(diào)試、維修的方便。</p>&l
25、t;p><b> 6.2 軟件設(shè)計</b></p><p> 在電子打鈴的研制中,軟件設(shè)計是工作量最大而也是最重要的一環(huán),其設(shè)計的一般方法和步驟如下。</p><p> 6.2.1 系統(tǒng)定義</p><p> 系統(tǒng)定義是指在軟件設(shè)計前,首先要進一步明確設(shè)計軟件所要完成的任務(wù),然后結(jié)合硬件結(jié)構(gòu),而確定軟件承擔(dān)的任務(wù)細節(jié)。其軟件定義內(nèi)
26、容有:</p><p> (1)確定各輸入/輸出的功能,信號的類別,電平范圍,與系統(tǒng)接口方式,占用口地址,讀取的輸入方式等。</p><p> ?。?)定義分配存儲器空間,包括系統(tǒng)主程序,常數(shù)表格,功能子程序塊的劃分,入口地址等。</p><p> ?。?)若有斷電保護措施,應(yīng)定義數(shù)據(jù)暫存區(qū)標志單元等。</p><p> ?。?)面板開關(guān),
27、按鍵等控制輸入量的定義與軟件編制密切有關(guān),系統(tǒng)運行過程的顯示,運算結(jié)果的顯示,正常運行和出錯顯示等也是由軟件完成的。所以事先要給予以定義。</p><p> 6.2.2 設(shè)計細節(jié)</p><p> ?。?)根據(jù)軟件功能要求,將系統(tǒng)軟件分成若干個相對獨立的部分。根據(jù)它們之間的聯(lián)系和時間上的關(guān)系,設(shè)計出合理的軟件總體結(jié)構(gòu),使其清晰、簡捷、流程合理。</p><p>
28、?。?)培養(yǎng)結(jié)構(gòu)化程序設(shè)計風(fēng)格,各功能程序?qū)嵭心K化、子程序化。既便于調(diào)試、鏈接,又便于移植、修改。</p><p> (3)建立正確的數(shù)學(xué)模型。即根據(jù)功能要求,描述出各個輸入和輸出變量之間的數(shù)學(xué)關(guān)系,它是關(guān)系到系統(tǒng)性能好壞的重要因素。</p><p> (4)為提高軟件設(shè)計的總體效率,以簡明、直觀的方法對任務(wù)進行描述,在編寫應(yīng)用軟件之前,應(yīng)繪制出程序流程圖。這不僅是程序設(shè)計的一個重要
29、組成部分,而且是決定成敗的關(guān)鍵部分。從某種意義上講,多花一份時間來設(shè)計程序流程圖,就可以節(jié)約幾倍源程序編輯調(diào)試時間。</p><p> ?。?)注意在程序的有關(guān)位置處寫上功能注釋,提高程序的可讀性。</p><p> ?。?)加強軟件抗干擾設(shè)計,它是提高計算機應(yīng)用系統(tǒng)可靠性的有力措施。</p><p> 6.3 軟件結(jié)構(gòu)設(shè)計</p><p>
30、; 合理的軟件結(jié)構(gòu)是設(shè)計出一個性能優(yōu)良的單片機應(yīng)用于系統(tǒng)軟件的基礎(chǔ),必須充分重視。依據(jù)系統(tǒng)的定義,把整個工作分解為若干相對獨立的操作,再考慮各操作之間的相互聯(lián)系及時間關(guān)系而設(shè)計出一個合理的軟件結(jié)構(gòu)。</p><p> 對于簡單的課題設(shè)計,可采用順序結(jié)構(gòu)設(shè)計方法,其系統(tǒng)軟件由主程序和若干個中斷服務(wù)程序構(gòu)成。明確主次序和中斷服務(wù)程序完成的操作及指定各中斷的優(yōu)先級。</p><p> 對于
31、復(fù)雜的課題設(shè)計,可采用實時多任務(wù)操作系統(tǒng),此操作系統(tǒng)應(yīng)具備任務(wù)調(diào)度,實時控制,實時時鐘,輸入輸出和中斷控制,系統(tǒng)調(diào)用,多個任務(wù)并行運行等功能。以提高系統(tǒng)的實時性和并行性。</p><p> 在程序設(shè)計方法上,模塊程序設(shè)計是單片機應(yīng)用中常用的程序設(shè)計方法。這種模塊化程序便于設(shè)計和調(diào)試,容易完成可供多個程序共享的優(yōu)點,但各個模塊之間的連接有一定的難度。根據(jù)需要也可以采用自上而下的程序設(shè)計方法,此方法先從主程序開始設(shè)
32、計,然后再編制個從屬的程序和子程序。這種方法比較符合人傘兵日常思維。缺點是上一級的程序錯誤會對整個程序產(chǎn)生影響。</p><p> 軟件結(jié)構(gòu)設(shè)計和程序設(shè)計方法確定后,根據(jù)系統(tǒng)功能定義,可先畫出程序粗框圖,再對粗框圖進行擴充和具體化,即對存儲器,寄存器,標志位等工作單元作具體的分配和說明。再繪制出詳細 的流程圖(細框圖)。</p><p> 程序流程圖設(shè)計出以后,便可著手編寫程序,單片機
33、應(yīng)用程序一般采用匯編語言較好,編寫完成后可以手工或通過主處理器連機用開發(fā)系統(tǒng)上的交叉匯編程序匯編成目標碼程序,再經(jīng)過調(diào)試正常運行后,固化到EPROM中去,完成了整個應(yīng)用系統(tǒng)的設(shè)計。</p><p> 6.4 程序設(shè)計的基本方法</p><p> 當(dāng)給定一個題目,進行程序設(shè)計時,一般應(yīng)按以下幾個步驟進行:分析題目,確定算法,程序結(jié)構(gòu)的設(shè)計,編寫源程序,匯編和調(diào)試。</p>
34、<p> 6.4.1 分析題目</p><p> 分析題目就是明確題目的任務(wù),弄清所給頂?shù)脑紨?shù)據(jù)和應(yīng)得到的結(jié)果,以及運算精度和速度的要求等。分析題目是整個程序設(shè)計的重點。若任務(wù)比較簡單,其原始數(shù)據(jù)和目的要求等比較清楚,就容易確定設(shè)計方法。而對于比較復(fù)雜的課題,必須作全面深入的分析,才能為以后的工作打下基礎(chǔ)。</p><p> 6.4.2 確定方法</p>&
35、lt;p> 確定方法就是選擇解決問題的方法。例如,對于單純的數(shù)值計算問題,匯編語言指令本身只能進行加、減、乘、除….等基本運算,但是實際問題可能是計算某個函數(shù)之后才解方程。在這種情況下,確定算法就是設(shè)法用基本運算方法來解決其它的復(fù)雜問題。往往算法不是唯一的。不同的方法在占用存儲單元數(shù),計算精度,編程工作量等方面是有差別的,這就需要進行比較和選擇。</p><p> 6.4.3 程序結(jié)構(gòu)的設(shè)計</p
36、><p> 程序結(jié)構(gòu)的設(shè)計是算法轉(zhuǎn)化為程序的準備階段。如果算法比較簡單,這一不可以省掉,直接按算法編寫程序。如果比較復(fù)雜,同需要進行程序結(jié)構(gòu)的設(shè)計。程序結(jié)構(gòu)的設(shè)計一般采用流程圖法。流程圖是有規(guī)定的圖形符號配合文字說明來表示算法或處理總是的步驟??陀^存在具有直觀.易懂的特點,是程序結(jié)構(gòu)設(shè)計的有力工具。</p><p> 6.4.4 流程圖的繪制</p><p> 有
37、一個由粗到細的過程,需要反復(fù)修改,求得完善。程序的基本結(jié)構(gòu)是有順序結(jié)構(gòu),分支結(jié)構(gòu)和子程序結(jié)構(gòu)等四類。當(dāng)程序較大時,應(yīng)根據(jù)功能將整個程序分類若干模塊。</p><p> 6.4.5 編寫源程序</p><p> 程序結(jié)構(gòu)設(shè)計完成之后,下一步是編寫程序。在編程之前要規(guī)劃好寄存器和存儲器的使用。對于程序區(qū),表格,數(shù)據(jù)緩沖區(qū),檔志單元等作好系統(tǒng)安排。編程根據(jù)程序流程圖來進行,所編寫的源程序要力
38、求簡單明了,層次清晰,運行時間短,占用存儲空間小。</p><p> 6.4.6 匯編和調(diào)試</p><p> 對于編好的程序,要進行匯編和調(diào)試。匯編是將源程序變?yōu)榭蓤?zhí)行的目的程序。在匯編過程中,可能發(fā)現(xiàn)源程序的某些錯誤,需作修改。匯編完成后還要通過調(diào)試來檢查所 </p>
39、;<p> 編程序是否正常運行。調(diào)試方法一般是輸入給定的數(shù)據(jù),使程序運行,檢查程序運行結(jié)果是否正確。調(diào)試工作可以先部分(或模塊)而后總體。在調(diào)試過程中一般總會發(fā)生不正常情況,而要反復(fù)修改程序,直到獲得正確的結(jié)果為止。</p><p><b> 7 電子打鈴的調(diào)試</b></p><p> 電子打鈴設(shè)計完成后,依據(jù)硬件的設(shè)計試制和組裝樣機及軟件設(shè)計完
40、成后,便進入系統(tǒng)的調(diào)試階段。調(diào)試電子打鈴的一般方法如下。</p><p> 7.1 硬件調(diào)試方法</p><p> 電子打鈴的硬件和軟件調(diào)試是分不開的,許多硬件故障是在軟件設(shè)計時才發(fā)現(xiàn)的。但通常是應(yīng)先排除系統(tǒng)中明顯的硬件故障后才和軟件結(jié)合起來調(diào)試。</p><p> 7.1.1 常見的硬件故障</p><p> ?。?)常見的錯誤:樣機
41、硬件的邏輯錯誤是由于設(shè)計錯誤或加工過程中的工藝性錯誤所造成的。這類錯誤包括錯線.開路.短路.相位錯等。</p><p> ?。?)器件失效:有兩方面的原因,一是器件本身已損壞或性能不符合要求;二是由于組裝錯誤造成元器件失效,如電解電容.二極管的極性錯誤,集成塊安裝方向錯誤等。</p><p> (3)可靠性差:引起可靠性差的原因很多,如金屬化孔與接插件接觸不良會造成系統(tǒng)時好時壞,經(jīng)不起振
42、動;內(nèi)部和外部的干擾.電源紋波系數(shù)大.器件負載過大等造成邏輯電平不穩(wěn)定;走線和布局不合理等也會引起系統(tǒng)可靠差。</p><p> (4)電源故障:若樣機存在電源故障,系統(tǒng)加電后將造成器件損壞。電源故障包括:電壓值不符合設(shè)計要求電源引線和插座不對.功率不足.負載能力差等。</p><p> 7.1.2 調(diào)試方法</p><p> ?。?)脫機調(diào)試:在樣機加電之前,
43、先用萬用表等工具,根據(jù)硬件電氣原理圖和裝配圖仔細檢查站樣機線路的正確性,并核對元器件的型號.規(guī)格和安裝是否符合要求。應(yīng)特別注意電源的下走線,防止電源之間的適中和極性錯誤,并重點檢查擴展系統(tǒng)總線是否存在相互間的適中或與其他信號線的短路。對于樣機所用電源事先必須單獨調(diào)試,調(diào)試好后,檢查其電壓值.負載能力.極性等均符合要求,才能加到系統(tǒng)的各個部件上。在不插片子的情況下,加電檢查各插件上引腳的電位,仔細測量各點電位是否正常,尤其應(yīng)注意單片機插座
44、上各點電位是否正常,若有高壓,聯(lián)機時將會損壞開發(fā)機。</p><p> ?。?)聯(lián)機調(diào)試:通過脫機調(diào)試可排除一些明顯的硬件故障。有些故障還是要通過聯(lián)機調(diào)試才能發(fā)現(xiàn)和排除。</p><p> 聯(lián)機前先斷電,將單片機開發(fā)系統(tǒng)的仿真頭插到樣機的單片機插座上,檢查一下開發(fā)機與樣機之間的電源.接地是否良好。一切正常,即可打開電源。通電后執(zhí)行開發(fā)機的讀寫指令,對用戶樣機的存儲器I/O端口進行讀寫操作
45、邏輯檢查,若有故障,可用示波器觀察有關(guān)波形(如選中的譯碼器輸出波形.主導(dǎo)寫控制信號.地址數(shù)據(jù)波形以及有關(guān)控制電平)。通過對波形的觀察分析,尋找故障原因,并進一步排除故障??赡艿墓收嫌校壕€路連接上有邏輯錯誤.有短路和斷路現(xiàn)象.集成電路失效等。在用戶系統(tǒng)的樣機(主機部分)調(diào)試好后,可以插上用戶系統(tǒng)的其他外圍部件如.鍵盤.顯示器輸出驅(qū)動板、A/D、D/A板等。 再對這些板進行初步的調(diào)試。在調(diào)試過程中若發(fā)現(xiàn)用戶系統(tǒng)工作不穩(wěn)定,可能有下列情況:電
46、源系統(tǒng)供電電流不足,聯(lián)機時公共地線接觸不良;擁護系統(tǒng)主板負載過大;用戶的各級電源濾波不完善等。對這些問題一定要認真查處原因,加以排除。 </p><p> 7.2 軟件調(diào)試方法</p><p> 軟件調(diào)試與所選用的軟件結(jié)構(gòu)和程序設(shè)計技術(shù)有關(guān)。如果采用模塊程序設(shè)計技術(shù),則逐個模塊分別調(diào)試。調(diào)試各子程序暗無天日定要符合現(xiàn)場環(huán)境,即入口條件和出口條件。調(diào)試的手段可采用單步運行或段點運行方式,
47、通過檢查用戶系統(tǒng)CPU的現(xiàn)場、RAM的內(nèi)容和I/O口的狀態(tài),檢查程序執(zhí)行結(jié)果是否符合設(shè)計要求。通過檢測可以發(fā)現(xiàn)程序中的死循環(huán)錯誤、機器碼錯誤及轉(zhuǎn)移地址的錯誤,同時也可以發(fā)現(xiàn)用戶系統(tǒng)中的硬件故障、軟件算法及硬件設(shè)計故障。在調(diào)試過程中不斷調(diào)整用戶系統(tǒng)的軟件和硬件,逐步通過一個一個程序模塊。</p><p> 各模塊通過以后,可以把有關(guān)的功能模塊聯(lián)合起來一起進行綜合調(diào)試。在這個階段若發(fā)生故障,可以考慮各子程序在運行時
48、是破壞現(xiàn)場,緩沖單元是否發(fā)生沖突,標志位的建立和清除上設(shè)計上有沒有失誤,堆棧區(qū)有沒有溢出。輸入設(shè)備的狀態(tài)是否正常等等。若用戶系統(tǒng)是在開發(fā)機的監(jiān)控程序下運行時,還要考慮用戶緩沖單元是否和監(jiān)控程序的工作單元發(fā)生沖突。</p><p> 經(jīng)單步和斷點運行調(diào)試后,還應(yīng)進行連續(xù)調(diào)試,這是因為單步運行只能驗證程序的正確與否,而不能確定定時的精度、CPU的實時響應(yīng)等問題。待全部調(diào)試完成后應(yīng)反復(fù)運行多次,除了觀察穩(wěn)定性之外,還
49、要觀察用戶系統(tǒng)的操作是否符合原始設(shè)計要求、安排的用戶操作是否合理等,必要時再作適當(dāng)?shù)男拚?lt;/p><p> 如果采用實時多任務(wù)操作系統(tǒng),一般是逐個任務(wù)進行調(diào)試,調(diào)試方法與上相似只是實時多任務(wù)操作系統(tǒng)的應(yīng)用程序是由若干個任務(wù)程序組成,一般是逐個進行調(diào)試,在調(diào)試某一個任務(wù)時,同時也調(diào)試相關(guān)的子程序、中斷服務(wù)程序和一些操作系統(tǒng)的程序。調(diào)試完后,再使各任務(wù)同時運行,如果操作系統(tǒng)無錯誤,一般情況下系統(tǒng)就能正常運行。&l
50、t;/p><p> 軟件和硬件聯(lián)調(diào)完成后,反復(fù)運行正常則可將用戶系統(tǒng)固化到EPROM中,插入用戶樣機后,用戶系統(tǒng)即能脫機工作,至此系統(tǒng)研制完成。</p><p><b> 結(jié) 論</b></p><p> 本系統(tǒng)以AT89C51為核心部件,利用軟件編程,通過鍵盤控制和液晶顯示實現(xiàn)了時鐘功能、鬧鐘功能,并完成了對環(huán)境溫度和市電信號頻率及有效值
51、的測量顯示,能實現(xiàn)題目的基本要求和發(fā)揮部分。盡量做到硬件電路簡單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,,充分發(fā)揮軟件編程的優(yōu)點,減小因元器件精度不夠引起的誤差。由于時間有限和本身知識水平的發(fā)揮,我們認為本系統(tǒng)還有需要改進和提高的地方,例如選用更高精度的元器件,硬件電路更加精確穩(wěn)定,軟件測量算法進一步的改進與完善等。</p><p> 此次畢業(yè)設(shè)計中,我們組做的是一個可在線調(diào)整的單片機電子打鈴,從畢業(yè)設(shè)計任務(wù)下達到設(shè)
52、計任務(wù)的完成,整個過程經(jīng)歷了確定設(shè)計目標、擬訂設(shè)計項目、執(zhí)行設(shè)計任務(wù)、完成設(shè)計任務(wù)四個步驟。在這四個步驟中,執(zhí)行設(shè)計任務(wù)是最艱辛的,但同時也是我們組團隊精神得到最大發(fā)揮的時候,是我們組最具有成就感的階段。</p><p> 在執(zhí)行設(shè)計任務(wù)的過程中,零件的選購、實物的焊接以及到后來論文的完成都不是最難的,最難的是硬件的調(diào)試,因為理論與實踐總是存在著差距,想出來的東西沒有經(jīng)過實踐的檢驗是不可靠的,任何一個小小的疏忽
53、大意都能導(dǎo)致失敗。比如說,因為P0口與其它口的區(qū)別,要在AT89C51單片機的P0口上驅(qū)動LED的顯示必須加上上拉電阻(資料書上只簡單地用一句話來描述),但是我們在擬訂設(shè)計項目的過程中忽略了這一點,以至在調(diào)試的過程中沒有達到原定的計劃,即無法驅(qū)動LED發(fā)光。在查閱了大量的資料書并對實物進行詳細的檢查分析后,我們組終于發(fā)現(xiàn)問題地所在并及時地解決了問題,之后再一次對硬件進行調(diào)試,這次終于成功了。這只是一個例子,在設(shè)計的過程中遇到的問題遠遠不
54、止這一個。從這一方面來說,我認識到要做成一件事是很難的,期中必定有很多的阻礙,但是我們一定要慢慢來,一點一點地找出問題,再一點一點地解決它,這樣的話,到達成功的彼岸也就僅僅是時間的問題了。我想,通過這次設(shè)計,特別是通過對硬件的制作而不單單是對原理的論述,我學(xué)到的不僅僅是電子方面的知識,更重要的是,我學(xué)到了作為一名電子設(shè)計者所必需的心理素質(zhì),那就是——決心加上耐心!</p><p> 當(dāng)然,在制作的過程中我也強烈
55、地感受到團隊的力量,沒有團隊地共同努力是不可能完成設(shè)計任務(wù)地。除此之外,沒有老師的關(guān)心與幫助也是很難達到設(shè)計要求的,在此再次向三位指導(dǎo)老師:魯杰爽、魯杰爽及彭俊珍老師表示感謝!</p><p> 經(jīng)過本次畢業(yè)課題設(shè)計,在為不經(jīng)意中我已掌握了不少關(guān)于單片機的實用知識。我深感自豪、充實、略有些成就感。同時也使我的能力進一步提高。為我畢業(yè)后能更好的適應(yīng)社會工作打下一定的基礎(chǔ)。為此,我忠心的感謝各級領(lǐng)導(dǎo)及指導(dǎo)老師的大力
56、支持。</p><p> 經(jīng)過兩個星期的單片機電子打鈴的課題的設(shè)計,我從中學(xué)到了很多東西。如:如何設(shè)計硬件電路,如何編寫、調(diào)試軟件程序等。這使我受益非淺,感受很深。這不僅使我重溫了單片機的基本結(jié)構(gòu)及工作原理,接口技術(shù),而且進一步熟悉了如何使用單片機匯編語言編寫程序和調(diào)用程序的方法與技巧。能夠熟練地對小鍵盤進行操作,對單片機常用的幾種芯片也有了更深一步的了解,而且學(xué)會了如何利用計算機進行程序匯編和寫入程序存儲進行
57、調(diào)試,使我對整個制作流程有了深刻的了解和體會。特別是認識到使用單片機進行軟件、硬件的開發(fā)過程中應(yīng)注意設(shè)計要求、經(jīng)過及解決一些客觀存在問題的重要性及其意義。在電子打鈴課題的設(shè)計制作過程使我們對單片機的設(shè)計、開發(fā)產(chǎn)生了更加深厚的興趣,但是也遇到了很多問題和挫折,然而經(jīng)過自己不斷的探索和請教學(xué)習(xí)后,還是將它們一一解決,并得到了很多很深刻的教訓(xùn)和許多寶貴經(jīng)驗,找出自身整個設(shè)計過程中所存在的問題,并認識到自己在以后應(yīng)該怎樣去克服它們。在整個設(shè)計過
58、程中我的動手能力與解決問題的能力也進一步提高。</p><p> 雖本次設(shè)計中我走了不少的彎路,吃了不少的苦頭。但是,我從中得到了更多。使我對單片機的開發(fā)產(chǎn)生了濃厚的興趣,對我的將來充滿斗志和信心。我相信,將來的社會,只要能想到的就能做。因為科技無邊,智慧無限。我相信我們的能力。</p><p> 由于我們設(shè)計的電子打鈴課題的重點在于軟件程序的設(shè)計,利用PROTEL99電路圖設(shè)計應(yīng)用軟
59、件進行設(shè)計硬件電路圖的原理圖與PCB電路板圖,利用計算機進行編寫程序,編譯程序和編程器將程序?qū)懭氲紸T89C2051存儲器里。在單片機上進行調(diào)試。在軟件設(shè)計時,由于相對應(yīng)單片機的中斷系統(tǒng)指令系統(tǒng)內(nèi)部和外部存儲器不是很了解,所以出現(xiàn)了許多不必要的麻煩。就拿編程來說,由于沒有處理好子程序的返回和時鐘中斷程序時間就導(dǎo)致時鐘運行到指定的時間后不打轉(zhuǎn)而是繼續(xù)走時,由于沒有把握好計數(shù)、顯示等一些細節(jié)地方,而導(dǎo)致時鐘計數(shù)不準確、不能正常顯示時間等一系
60、列相當(dāng)嚴重的問題。在經(jīng)過反復(fù)檢查、分析、調(diào)試之后,從中發(fā)現(xiàn)了中斷時的數(shù)值設(shè)置不太適合,不能使用兩個時鐘標準等一系列問題,經(jīng)過自己的反復(fù)修改、調(diào)試和驗證,最終才得以解決達到設(shè)計的要求。在整個設(shè)計過程中,程序的調(diào)試是其中一個非常重要的環(huán)節(jié)。在調(diào)試過程中,小鍵盤的操作是十分必要的,特別是在調(diào)試程序中,有時往往需要在程序中設(shè)置斷點來判斷程序是否正確,通過它,我們可以很快找到出錯的地方,對程序進行分析并加以修正。其中有一點是值得我們注意的:在程序
61、設(shè)計之前一定要知道設(shè)計要求,要清</p><p> 在這次的電子打鈴的課題設(shè)計過程中,我對所學(xué)的PROTEL99設(shè)計應(yīng)用軟件有了更深一步的理解與掌握,能夠十分熟練的運用其各個菜單的功能,在設(shè)計電路時要細心,有耐心,每一個環(huán)節(jié)都不能有半點的差錯,每一個連接點都不能粗心,否則就不能成功。就拿電路原理圖轉(zhuǎn)化為PCB板圖來說,如果有一個元件沒有封裝或封裝錯誤,一個元件的管腳編號不一至,在轉(zhuǎn)化時就會出錯。有時我們所使用的
62、元件在元件庫中無法找到,這就需要我們自己制作,在整個制作過程中,元件的定義是很關(guān)鍵很重要的一步,我們必須對元件的每一管腳功能都很熟悉,以及元件的每一項參數(shù)也要了解。元件的引腳也要畫的均勻,它們的每一步都是連貫的,都是一環(huán)扣一環(huán),對所做的元器件不進行了解就不可能制作出一個合格的元器件。</p><p> 此次課題設(shè)計大體分為準備、設(shè)計、調(diào)試驗證、整理四個階段。就準備來說,主要查資料。其目的是溫故專業(yè)知識,熟悉AT
63、89C2051等芯片;再者設(shè)計階段主要是原理圖設(shè)計、程序設(shè)計等。在前階段的基礎(chǔ)上,根據(jù)設(shè)計目的做出設(shè)計計劃。此階段要求熟練操作計算機軟件。如PROTEL及匯編等應(yīng)用軟件。同時,要具有一定的編程能力以及應(yīng)用能力;而調(diào)試驗證階段主要就程序的調(diào)試,及驗證結(jié)果。此階段要掌握編程器及單片機實驗電路板的應(yīng)用。使程序達到預(yù)期效果。整理階段就是把設(shè)計的原理圖及程序做裝飾。使其通俗易懂,一目了然,有條有理。然后把課題設(shè)計所涉及的必用資料,以書面的形式打印
64、出來,裝訂成本。提交答辯。此次畢業(yè)設(shè)計也就圓滿完成。</p><p> 在這個設(shè)計過程中,我們?nèi)绻麤]有對以上的知識進行學(xué)習(xí)就不可能對它們整體化,系統(tǒng)化;也就不能完成課題設(shè)計。我們?nèi)绻麤]有細心和耐心,沒有刻苦鉆研,艱苦奮斗的精神,整個課題就不可能設(shè)計成功。經(jīng)過本次課題設(shè)計,使我的專業(yè)知識得到進一步提高,特別是在單片機編程、匯編語言的應(yīng)用,計算機的操作,單片微型計算機實驗板的使用,編程器和電腦的配合使用,以及Pro
65、tel 99SE軟件的熟練應(yīng)用等方面。無論是那一方面都馬虎不得。因為它們步步相連,環(huán)環(huán)相扣。對待它們只有耐心、恒心,更要細心和信心。</p><p> 總之,本次單片機電子打鈴課題的設(shè)計讓我學(xué)到了很多東西,使我受益非淺。</p><p><b> 致謝</b></p><p> 衷心感謝我的指導(dǎo)老師…老師。感謝他在我的畢業(yè)設(shè)計期間對我的精
66、心指導(dǎo)和教誨。在畢業(yè)設(shè)計過程中,魯老師無論是在理論上還是在實踐中,都給了我很大的幫助。使我在程序調(diào)試等各個方面得到了很大的提高?!螌W(xué)態(tài)度嚴謹,工作態(tài)度認真負責(zé),為人親切和藹,學(xué)術(shù)理論和實踐經(jīng)驗豐富,是我學(xué)習(xí)的好榜樣。</p><p> 同時感謝和我合作的本小組成員(….)。在調(diào)試的過程中,我們團結(jié)合作,充分發(fā)揮了集體的力量。遇到技術(shù)難關(guān),我們一起商討解決辦法,提出合理方案。在整個開發(fā)過程中,是他們給了我無私的
67、協(xié)助,幫助我順利地完成這次畢業(yè)設(shè)計。</p><p> 本次用單片機設(shè)計的電子打鈴至此已全部完成,從開始至結(jié)束的一切工作都經(jīng)同組同學(xué)齊心協(xié)力的努力下,以及(….)關(guān)懷、支持和指導(dǎo)下,才能順利的完成(因為無論是資料的采集、零件選購、軟件設(shè)計、還是硬件焊接、外觀設(shè)計、論文編寫都是由先討論、后確定、再經(jīng)過老師的指導(dǎo),最后經(jīng)過分工合作來完成的),在這次的設(shè)計中體現(xiàn)出我們強大的團隊精神,讓我們感受到團隊的力量。享受到了學(xué)
68、以致用,用以助學(xué)的快樂。特別是兩位老師無微不至的關(guān)心,更另我們感受到學(xué)院的溫暖。老師的偉大。</p><p> 通過本次畢業(yè)設(shè)計,使我們對書本又有了更深層次的認識,增強了每位組員的動手能力,特別是認識到理論與實際異同。理論需要實際的驗證,實際需要理論為基礎(chǔ)和指導(dǎo)。</p><p><b> 參考文獻</b></p><p> 劉華東.單片
69、機原理與應(yīng)用.北京:電子工業(yè)出版社,2002.</p><p> 謝自美.電子線路設(shè)計·實驗·測試(第二版) .武漢:華中科技大學(xué)出版社,2000.</p><p><b> 附錄 A: 原理圖</b></p><p> 附錄 B: PCB圖(正面)</p><p> 附錄 C: PCB圖(反
70、面)</p><p> 附錄 D: 應(yīng)用程序</p><p> ORG 0000H ;設(shè)置程序起始地址</p><p> START:LJMP L0030 </p><p> ORG 000BH ;設(shè)置T0中斷起始地址</p
71、><p> INTT00:LJMP INTT1 </p><p> ORG 001BH ;設(shè)置T1中斷起始地址</p><p> INTT01:LJMP INTT1</p><p> ORG 0030H</p><p> L0030:
72、MOV 60H,#00H ;數(shù)碼管顯示緩沖單元清零</p><p> MOV 61H,#00H</p><p> MOV 62H,#00H</p><p> MOV 63H,#00H</p><p> MOV 64H,#00H</p><p> MOV
73、 65H,#00H</p><p> MOV 50H,#00H ;秒計數(shù)緩沖單元清零</p><p> MOV 51H,#00H ;分計數(shù)緩沖單元清零</p><p> MOV 52H,#00H ;時計數(shù)緩沖單元清零</p><p> MOV
74、 53H,#00H ;星期計數(shù)緩沖單元清零</p><p> MOV 54H,#00H ;日期計數(shù)緩沖單元清零</p><p> MOV 5AH,#07h</p><p> MOV 5BH,#00h</p><p> MOV 5CH,#00h</p>
75、;<p> CLR 10H ;對中斷處理的單雙兩部分單元清零 </p><p> CLR 11H</p><p> CLR 12H</p><p> CLR 13H</p><p> MOV R7,#00H
76、 ;對基礎(chǔ)計時清零</p><p> MOV R2,#00H ;對掃描計數(shù)清零</p><p> MOV P1,#0FFH ;輸出口初始化</p><p> MOV P3,#0FFH ;輸出口初始化</p><p> MOV SP,#66
77、H ;設(shè)置堆棧的起始地址</p><p> MOV TMOD,#11H ;定時器1的初始化</p><p> MOV 8BH,#38H ;對定時器給初值</p><p> MOV 8DH,#38H ;對定時器給初值</p><p
78、> SETB PT1 ;設(shè)置中斷的優(yōu)先級</p><p> SETB RS1 ;工作寄存器的設(shè)置</p><p> SETB RS0 ;T1使用第三組寄存器</p><p> MOV R1,#0FH</p><p&
79、gt; SETB ET1 ;開中斷,啟動定時器</p><p> SETB TR1 </p><p><b> SETB EA</b></p><p> CLR TR0</p><p> CLR RS1
80、 ;主程序使用第零組寄存器</p><p> CLR RS0</p><p> L01:LCALL DISPLAY1 ;調(diào)用顯示子程序</p><p> LCALL K1 ;調(diào)用鍵處理子程序</p><p> LJMP L01
81、 ;死循環(huán)</p><p> ORG 0100H ;設(shè)置定時器中斷子程序的起始地址</p><p> INTT1:PUSH ACC ;保護現(xiàn)場</p><p> PUSH PSW</p><p> PUSH DPH</p>
82、<p> PUSH DPL</p><p> MOV A,B</p><p> PUSH ACC</p><p> SETB RS0 ;設(shè)定工程環(huán)境</p><p> SETB RS1 ;定時器使用第三組寄存器</p>
83、<p> CLR TR1 ;關(guān)中斷</p><p> MOV TH1,#0FCH ;重設(shè)定時器初值</p><p> MOV TL1,#38H</p><p> SETB TR1 ;啟動中斷</p><p> L
84、OOP2:CPL 10H ;對中斷處理的單雙兩部分單元取反</p><p> JNB 10H,LOOPA1 ;(10H)的位是否為0,是則轉(zhuǎn)移</p><p> CJNE R7,#00H,LOOP3 ;(R7)等于0嗎?是則順序執(zhí)行</p><p> LJMP LOOP4&
85、lt;/p><p> LOOP3:DEC R7 ;R7減1</p><p> LOOP4:INC R2 ;R2加1</p><p> CJNE R2,#06H,LOOP5 ;(R2)等于0嗎?是則順序執(zhí)行</p><p> LOOP5:J
86、NC LOOP6 ;判斷進位是否為0,是則順序執(zhí)行</p><p> LJMP LOOP7</p><p> LOOP6:MOV R2,#00H ;對R2清零</p><p> LOOP7:CJNE R2,#00H,LOOP8 ;R2等于0嗎?是則順序執(zhí)行(顯示第一位碼)
87、</p><p> MOV A,60H ;秒的個位</p><p> MOV DPTR,#DATA1 ;查顯示字碼</p><p> MOVC A,@A+DPTR</p><p> MOV P0,A ;從P0送出去</p>
88、<p> ORL P2,#7FH ;將P2口的低7位置1</p><p> CLR P2.0 ;對顯示位位碼清零(三極管導(dǎo)通)</p><p> MOV R1,P2 ;將P2口的內(nèi)容讀出來</p><p> LJMP LOOPA<
89、/p><p> LOOP8:CJNE R2,#01H,LOOP9 ;R2等于1嗎?是則順序執(zhí)行(顯示第二位碼)</p><p> MOV A,61H ;秒的十位</p><p> MOV DPTR,#DATA1 ;查顯示字碼</p><p> MOVC A,
90、@A+DPTR</p><p> MOV P0,A ;從P0送出去</p><p> ORL P2,#7FH ;將P2口的低7位置1</p><p> CLR P2.1 ;對顯示位位碼清零(三極管導(dǎo)通)</p><p> MOV
91、 R1,P2 ;將P2口的內(nèi)容讀出來</p><p> LJMP LOOPA</p><p> LOOP9:CJNE R2,#02H,LOOP10 ;R2等于2嗎?是則順序執(zhí)行(顯示第三位碼)</p><p> MOV A,62H ;分的個位</p>&l
92、t;p> MOV DPTR,#DATA1 ;查顯示字碼</p><p> MOVC A,@A+DPTR</p><p> MOV P0,A ;從P0送出去</p><p> ORL P2,#7FH ;將P2口的低7位置1</p><p&
93、gt; CLR P2.2 ;對顯示位位碼清零(三極管導(dǎo)通)</p><p> MOV R1,P2 ;將P2口的內(nèi)容讀出來</p><p> LJMP LOOPA</p><p> LOOPA1:LJMP LOOPA1</p><p> LOOP10:C
94、JNE R2,#03H,LOOP11 ;R2等于3嗎?是則順序執(zhí)行(顯示第四位碼)</p><p> MOV A,63H ;分的十位</p><p> MOV DPTR,#DATA1 ;查顯示字碼</p><p> MOVC A,@A+DPTR</p><p&g
95、t; MOV P0,A ;從P0送出去</p><p> ORL P2,#7FH ;將P2口的低7位置1</p><p> CLR P2.3 ;對顯示位位碼清零(三極管導(dǎo)通)</p><p> MOV R1,P2 ;
96、將P2口的內(nèi)容讀出來</p><p> LJMP LOOPA</p><p> LOOP11:CJNE R2,#04H,LOOP12 ;R2等于4嗎?是則順序執(zhí)行(顯示第五位碼)</p><p> MOV A,64H ;時的個位</p><p> MOV DPTR,#DAT
97、A1 ;查顯示字碼</p><p> MOVC A,@A+DPTR</p><p> MOV P0,A ;從P0送出去</p><p> ORL P2,#7FH ;將P2口的低7位置1</p><p> CLR P2.4
98、 ;對顯示位位碼清零(三極管導(dǎo)通)</p><p> MOV R1,P2 ;將P2口的內(nèi)容讀出來</p><p> LJMP LOOPA</p><p> LOOP12: CJNE R2,#05H,LOOPA ;R2等于5嗎?是則順序執(zhí)行(顯示第六位碼)</p><p&
99、gt; MOV A,65H ;時的十位</p><p> MOV DPTR,#DATA1 ;查顯示字碼</p><p> MOVC A,@A+DPTR</p><p> MOV R1,A </p><p> MOV P0,A
100、 ;從P0送出去</p><p> ORL P2,#7FH ;將P2口的低7位置1 </p><p> CLR P2.5 ;對顯示位位碼清零(三極管導(dǎo)通)</p><p> MOV R1,P2 ;將P2口的內(nèi)容讀出來</
101、p><p> LJMP LOOPA</p><p> LOOPA:MOV A,R1 ;鍵盤處理(去抖動)</p><p> JB ACC.6,L034BH ;(ACC.6)的位是否為1,是則轉(zhuǎn)移</p><p> MOV A,R2 ;當(dāng)
102、前所點亮的數(shù)碼管的鍵值</p><p> CJNE A,5AH,L0349H ;(A)等于(5AH)嗎?是則順序執(zhí)行 </p><p><b> INC R3</b></p><p> CJNE R3,#08H,L034AH ;(R3)等于08H嗎?是則順序執(zhí)行</p><p&
103、gt; L034AH:JC L034BH ;有借位嗎?有則轉(zhuǎn)移</p><p> MOV 5BH,R2</p><p> SETB 11H ;對11H置1</p><p> L0349H:MOV R3,#00H</p><p> MOV 5A
104、H,R2</p><p> L034BH:LJMP LOOPRET ;顯示時間</p><p> LOPA1:CJNE R7,#00H,LOOPRET ;R7等于0嗎?是則順序執(zhí)行</p><p> LOOP13:MOV R7,#0CFH ;給計數(shù)器一個1000的值</p>
105、<p> INC 5CH</p><p> MOV A,50H ;一秒到</p><p> INC A ;50H是秒計時的寄存器的單元</p><p><b> DA A</b></p><p> MOV
106、 50H,A</p><p> CJNE A,#60H,LOOP14 ;是否到了60秒?是則順序執(zhí)行</p><p> MOV 50H,#00H ;分開始計時前,秒單元要清零</p><p> MOV A,51H ;一分計時</p><p> IN
107、C A ;51H是分計時的寄存器的單元</p><p><b> DA A</b></p><p> MOV 51H,A</p><p> CJNE A,#60H,LOOP14 ;是否到了60分?是則順序執(zhí)行 </p><p>
108、 MOV 51H,#00H ;時開始計時前,分單元要清零</p><p> MOV A,52H ;一小時計時</p><p> INC A ;52H是小時計時的寄存器的單元</p><p><b> DA A</b><
109、;/p><p> MOV 52H,A</p><p> CJNE A,#24H,LOOP14 ;是否到了24小時?是則順序執(zhí)行 </p><p> MOV 52H,#00H ;星期開始計時前,時單元要清零</p><p> MOV A,53H</p><p&g
110、t; INC A ;53H是星期計時的寄存器的單元</p><p><b> DA A</b></p><p> MOV 53H,A</p><p> CJNE A,#08H,LOOP14A ;是否到了一星期?是則順序執(zhí)行</p><p>
111、 MOV 53H,01H</p><p> LOOP14A:MOV A,54H</p><p> INC A ;54H是月計時的寄存器的單元</p><p><b> DA A</b></p><p> MOV 54H,A</p>
112、<p> CJNE A,#31H ,LOOP14 ;是否到了兩個星期?是則順序執(zhí)行</p><p> MOV 54H,#01H</p><p> LOOP14:LJMP LOOPRET</p><p> LOOPRET:POP ACC ;恢復(fù)現(xiàn)場</p><p
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計--單片機電子時鐘
- 單片機電子時鐘畢業(yè)設(shè)計
- 單片機電子時鐘設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計論文----單片機電子時鐘
- 單片機電子時鐘 畢業(yè)設(shè)計論文
- 單片機電子時鐘畢業(yè)設(shè)計 (2)
- 單片機電子時鐘畢業(yè)設(shè)計 (3)
- 畢業(yè)設(shè)計(論文) 單片機電子時鐘設(shè)計
- 單片機電子時鐘畢業(yè)設(shè)計開題報告
- 基于單片機電子時鐘設(shè)計與制作畢業(yè)設(shè)計
- 基于單片機電子時鐘設(shè)計與制作畢業(yè)設(shè)計
- 畢業(yè)設(shè)計----基于單片機電子時鐘設(shè)計與制作
- 單片機電子時鐘畢業(yè)論文設(shè)計
- 單片機電子時鐘畢業(yè)論文設(shè)計
- 單片機電子時鐘畢業(yè)論文設(shè)計
- 單片機電子時鐘畢業(yè)論文設(shè)計
- 單片機電子時鐘畢業(yè)論文設(shè)計
- 單片機電子時鐘畢業(yè)論文設(shè)計
- 單片機電子時鐘畢業(yè)論文
- 單片機電子時鐘畢業(yè)論文
評論
0/150
提交評論