

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