2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)字鐘</b></p><p>  系 別:汽車與電氣工程系 </p><p>  專 業(yè): 電氣自動化 </p><p>  班 級: 09電氣(1)班</p><p>  姓 名: </p><p> 

2、 學(xué) 號: </p><p>  指導(dǎo)教師: </p><p>  完成時間:2011年12月 15日 </p><p>  2011年 12月15日 </p><p><b>  目錄</b></p><p><b>  目錄I</b&g

3、t;</p><p><b>  摘要II</b></p><p>  第一章 緒論1</p><p>  1.1關(guān)于單片機的基礎(chǔ)知識1</p><p>  1.2開發(fā)背景及電子鐘原理2</p><p>  1.2.1 開發(fā)背景2</p><p>  1.2.

4、2 電子鐘原理2</p><p><b>  1.3方案比較2</b></p><p>  1.4 定時與中斷系統(tǒng)3</p><p>  第二章 系統(tǒng)硬件設(shè)計3</p><p>  2.1 電源電路圖3</p><p>  2.2硬件電路設(shè)計框圖4</p><

5、p>  2.3數(shù)字鐘原理圖4</p><p>  2.4單片機模塊5</p><p>  2.5 AT89S52芯片簡介5</p><p>  2.6 AT89S52功能描述6</p><p>  2.7鍵盤控制電路8</p><p><b>  2.8復(fù)位電路8</b><

6、/p><p><b>  2.9顯示電路8</b></p><p>  2.9.1 LED共陽數(shù)碼管簡介9</p><p>  第三章 系統(tǒng)軟件設(shè)計10</p><p>  3.1編程思路11</p><p>  3.2系統(tǒng)資源分配11</p><p>  3.3

7、編程流程圖初始化程序框圖:11</p><p>  3.4數(shù)字鐘程序12</p><p>  第四章 單片機應(yīng)用系統(tǒng)的調(diào)試17</p><p>  4.1.硬件調(diào)試17</p><p>  4.2軟件調(diào)試17</p><p>  4.3系統(tǒng)調(diào)試18</p><p><b&g

8、t;  謝 辭18</b></p><p><b>  參考文獻19</b></p><p><b>  摘要</b></p><p>  該數(shù)字鐘電路采用單片機AT89S52實現(xiàn),晶振頻率采用6MHZ,顯示部分采用了3個兩位一體共陽極的LED數(shù)碼管組成的動態(tài)顯示電路,通過6個驅(qū)動器(即共陽極PNP型的三極

9、管)來驅(qū)動放大LED,用4個LED閃動的點來指示秒的節(jié)拍,其中字段由P0口控制。按鍵K0進行選位,K1、k2進行時間調(diào)整,可適用顯示時,分,秒的信息。</p><p>  利用我們現(xiàn)所學(xué)的知識,本著經(jīng)濟,可靠、體積小、功能擴展方便并 具有先進性的基本原則,我們選用當(dāng)今世界流行的已被廣泛應(yīng)用的器件AT89S52單片微型計算機為核心并根據(jù)其功能要求的特性來構(gòu)成本方案的基本設(shè)計思想,利用單片機實現(xiàn)的電子鐘具有編程靈活,

10、便于電子鐘功能的擴充,體積小、精度高、功能擴展極其方便,成本低。</p><p>  關(guān)鍵詞:單片機、數(shù)碼顯示、動態(tài)顯示、AT89S52</p><p><b>  第一章 緒論</b></p><p>  1.1關(guān)于單片機的基礎(chǔ)知識</p><p>  單片機又稱微控制器,其最基本的機構(gòu)是將CPU和計算機外圍功能單元,

11、如存儲器、I/O口、定時器/計數(shù)器、中斷系統(tǒng)等集成在一個芯片上構(gòu)成的。雖然單片機只是一個芯片,但無論從組成還是從功能上來看,它都具有了危機系統(tǒng)的特征。</p><p>  目前,單片機正朝著高性能和多品種方向發(fā)展,但以MCS-51為主的8位單片機仍然占據(jù)著單片機的主導(dǎo)地位。單片機的應(yīng)用日益廣泛,如應(yīng)用在儀器儀表、家用電器和專用裝備的智能化以及過程控制等方面,單片機在人們的日常生活和工作中正扮演著越來越重要的角色。

12、</p><p>  單片機的應(yīng)用從根本上改變了傳統(tǒng)的控制系統(tǒng)的設(shè)計思想和設(shè)計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分控制功能,現(xiàn)在已能使用單片機通過軟件方法實現(xiàn)了。這種以軟件取代硬件的并能提高系統(tǒng)性能的控制技術(shù),稱之為微控制技術(shù)。微控制技術(shù)標(biāo)志著一種全新概念的出現(xiàn),是對傳統(tǒng)控制技術(shù)的一次革命。隨著單片機應(yīng)用的推廣普及,微控制技術(shù)必將不斷發(fā)展,日益完善,更加充實。</p><p> 

13、 AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52在眾多嵌入式控制應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。</p><p>  單片機具有體積小、可

14、靠性高、功能強、靈活方便等優(yōu)點,故可以廣泛應(yīng)用于國民經(jīng)濟的各個領(lǐng)域,對各行業(yè)的技術(shù)改造和產(chǎn)品更新?lián)Q代起到了推動作用。利用單片機的智能性,可以方便的實現(xiàn)具有智能的電子鐘設(shè)計。由于微處理器具有時鐘振蕩系統(tǒng),利用系統(tǒng)借助微處理器的定時器/計數(shù)器可實現(xiàn)電子鐘的功能。</p><p>  本系統(tǒng)主要由AT89S52單片機以及數(shù)碼管、按鍵等組成,實現(xiàn)有時鐘顯示及校準(zhǔn)功能。用戶可以通過按鍵校準(zhǔn)時鐘。由于本系統(tǒng)采用了數(shù)碼管作為顯

15、示器,所以在夜間看時間更加方便。</p><p>  1.2開發(fā)背景及電子鐘原理</p><p>  1.2.1 開發(fā)背景</p><p>  電子定時技術(shù)在這十年來得到了迅猛發(fā)展,尤其在家電生活領(lǐng)域如太陽能、微波爐等,也在其它電子領(lǐng)域得到廣泛應(yīng)用,隨著人們生活水平的提高,對產(chǎn)品的追求是使用更方便、更具時間化,電子定時技術(shù)正是一個重點的發(fā)展方向。為了提高對電子定時產(chǎn)

16、品的開發(fā)效率以及生產(chǎn)廠家的檢測手段等,重點推出該套定時電子鐘,它猶如一臺示波器,并且利用最先進的單片機技術(shù),對定時信號進行全面的分析,顯示詳盡的數(shù)據(jù),編碼、解碼信息,使開發(fā)人員對編、解碼情況一目了然,以便設(shè)計人員提高工作效率,增加產(chǎn)品的穩(wěn)定性、可靠性。</p><p>  1.2.2 電子鐘原理</p><p>  電子鐘的設(shè)計主要有硬件設(shè)計和軟件設(shè)計兩大部分:硬件部分主要有AT89S52

17、的最小系統(tǒng),顯示部分、鍵盤部分,以及電源部分;軟件設(shè)計則結(jié)合硬件,實現(xiàn)指標(biāo)提出的各項要求,時、分、秒的顯示則是利用AT89S52內(nèi)部的定時器,在軟件支持下,完成其精度主要取決于單片機本身的晶振頻率精度,為了提高計時的準(zhǔn)確性,采用6MHZ晶振。LED顯示采用動態(tài)掃描方式實現(xiàn),P0口輸出段碼數(shù)據(jù),P2.1—P2.6口作掃描輸出,P3.0、P3.1和P3.2接按鈕開關(guān)。為了提供LED數(shù)碼管的驅(qū)動電流,用三極管9012作電源驅(qū)動輸出。</

18、p><p><b>  1.3方案比較</b></p><p>  為了達到本次設(shè)計的要求,有眾多方法可以選擇,如:運用電子電路設(shè)計就是其中一種。采用大量門元件組成數(shù)字鐘電路,但因條件有限,再加上其十分煩瑣、焊接復(fù)雜、精度不高,達不到本次設(shè)計的目的,故不采用。為了達到實現(xiàn)LED顯示器的數(shù)字顯示,可采用動態(tài)顯示法和靜態(tài)顯示法。由于靜態(tài)顯示法需要數(shù)據(jù)鎖存器等硬件,接口又稍微復(fù)

19、雜一些,而本身此次設(shè)計時鐘顯示只有六位,并且系統(tǒng)本身又沒有其它什么繁重的處理任務(wù),所以決定采用動態(tài)掃描法實現(xiàn)LED的顯示。設(shè)計中單片機采用容易購買的AT89S52系列,單片機就具有足夠的空余硬件資源實現(xiàn)其它的擴展功能,如果考慮到要采用電池供電的話,則可采用其它適合型號的單片機。在軟件方面,通過程序的編制,可以很快的通過運用偉福軟件進行修改,大大的提高了工作效率,程序灌輸也很迅速。</p><p>  從上面幾種方

20、案可以看出,利用單片機所設(shè)計的數(shù)字鐘要比采用電子電路所設(shè)計的數(shù)字鐘有明顯的優(yōu)越性。利用AT89S52單片機控制的硬件電路比較簡單,軟件方面程序也不復(fù)雜。因此制作原理簡單,可在功能作用上要比電子電路設(shè)計的數(shù)字鐘精確廣泛,方便小巧又通俗易懂。在本次設(shè)計采用單片機設(shè)計中,動態(tài)掃描顯示法又有靜態(tài)掃描法無法比擬的優(yōu)點,故本次設(shè)計采用了以AT89S52為核心,利用其外部電路和數(shù)碼管的動態(tài)掃描的設(shè)計思想。</p><p>  

21、1.4 定時與中斷系統(tǒng)</p><p>  定時器一般指硬件定時器,其實質(zhì)就是計數(shù)器,一般都具有定時兼計數(shù)的功能。本設(shè)計采用T0定時器工作方式1,它的最大計數(shù)量是65536,最大定時時間是131.072ms,本設(shè)計定時100ms。</p><p>  AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位

22、定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。</p><p>  第二章 系統(tǒng)硬件設(shè)計</p><p&

23、gt;  2.1 電源電路圖</p><p><b>  圖2.1電源電路圖</b></p><p>  電源電路是由整流橋,7805穩(wěn)壓塊和前后濾波電容組成,整流橋接收變壓器送來的低壓交流信號,經(jīng)整流后變成直流電,在經(jīng)過100uf的電解電容濾波后,送到7805穩(wěn)壓塊后,輸出穩(wěn)定的正5V電壓,再次濾波后送到單片機內(nèi).有關(guān)計算如下:Uc=1.2U(U為變壓器二次側(cè)電壓

24、)UO=(1+R1/R2)Uoc+IqR2 (U0為輸出電壓)</p><p>  2.2硬件電路設(shè)計框圖</p><p>  2.3數(shù)字鐘原理圖 </p><p><b>  數(shù)字鐘原理圖</b></p><p><b>  2.4單片機模塊</b></p><p><

25、;b> ?。?)主控模塊電路</b></p><p>  主控模塊電路如下圖所示;單片機采用6M的晶振,EA引腳置高電平,復(fù)位電路中的開關(guān)采用按鈕控制。</p><p>  圖2.3主控模塊電路</p><p>  2.5 AT89S52芯片簡介</p><p>  AT89S52是一種低功耗、高性能CMOS 8位微控制器,

26、具有8K 在系統(tǒng)可編程Flash 存儲器,使用Atmel 公司高密度非易失性存儲器技術(shù)制造。</p><p>  AT89S52具有以下幾個特點:</p><p>  ·AT89S52與MCS-51系列的單片機在指令系統(tǒng)和引腳上完全兼容;</p><p>  ·8K字節(jié)在系統(tǒng)可編程Flash存儲器 ;</p><p>  

27、·1000次擦寫周期;</p><p>  ·全靜態(tài)操作:0Hz-33MHz;  </p><p>  ·三級加密程序存儲器;  </p><p>  ·32個可編程I/O口線; </p><p>  ·三個16位定時器/計數(shù)器;  </p><p><b>

28、  ·六個中斷源;  </b></p><p>  ·全雙工UART串行通道;  </p><p>  ·低功耗空閑和掉電模式;  </p><p>  ·掉電后中斷可喚醒;  </p><p>  ·看門狗定時器;  </p><p><b> 

29、 ·雙數(shù)據(jù)指針;  </b></p><p><b>  ·掉電標(biāo)識符 。</b></p><p>  2.6 AT89S52功能描述 AT89S52引腳圖 DIP封裝</p><p>  AT89S52 是一種低功耗、高性能CMOS8位微控制器

30、,具有 8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非 易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看

31、門狗定時器,2 個數(shù)據(jù)指針,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止?! ?lt;/p><p>  P0 口:P

32、0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏 輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下, P0不具有內(nèi)部上拉電阻。 在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗 時,需要外部上拉電阻。  </p><p>  P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙

33、向I/O 口,p1 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)?! ?lt;/p><p>  此外,P1.0和P1.1分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和定時器/計數(shù)器2 的觸發(fā)輸入(P1.1/T2EX)。 在flash編程和校驗時,P1口接收低8位地址

34、字節(jié)?! ?lt;/p><p>  引腳號第二功能:  </p><p>  P1.0 T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出  </p><p>  P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)  </p><p>  P1.5 MOSI(在系統(tǒng)編程用)  </p><p>  P1

35、.6 MISO(在系統(tǒng)編程用)  </p><p>  P1.7 SCK(在系統(tǒng)編程用)  </p><p>  P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動 </p><p>  4 個 TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電

36、阻的原因,將輸出電流(IIL)。 在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR) 時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強的內(nèi)部上拉發(fā)送1。在使用 8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號?! ?lt;/p><p>  P3 口:P3 口是一個具有內(nèi)部上拉

37、電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動4 個 TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入 口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。 P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。 在flash編程和校驗時,P3口也接收一些控制信號?! ?lt;/p><p>  端口引腳 第二功能:P3.0 RXD(串行輸入

38、口);P3.1 TXD(串行輸出口);P3.2 INTO(外中斷0);P3.3 INT1(外中斷1);P3.4 TO(定時/計數(shù)器0);P3.5 T1(定時/計數(shù)器1);P3.6 WR(外部數(shù)據(jù)存儲器寫選通);P3.7 RD(外部數(shù)據(jù)存儲器讀選通);此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復(fù)位。ALE/PROG:當(dāng)訪問外部程序存儲器

39、或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對FLASH存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激

40、活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE禁止位無效</p><p><b>  2.7鍵盤控制電路</b></p><p> ?。?)單片機系統(tǒng)中為了實現(xiàn)對系統(tǒng)的控制和數(shù)據(jù)的輸入,應(yīng)用系統(tǒng)設(shè)置了鍵盤等輸入設(shè)備,包括單片機復(fù)位用的復(fù)位鍵,功能轉(zhuǎn)換及數(shù)字輸入鍵等。</p><p>  鍵盤[4]的最根本的功能就是當(dāng)該按鍵按下

41、后,單片機應(yīng)用系統(tǒng)能夠完成該按鍵所設(shè)定的功能。當(dāng)按一下K0時,數(shù)字鐘選位;當(dāng)按一下k1,數(shù)字鐘的對應(yīng)位將加1;當(dāng)按一下K2時,數(shù)字鐘的對應(yīng)位將減1。</p><p>  圖2.5鍵盤控制電路</p><p><b>  2.8復(fù)位電路</b></p><p>  復(fù)位電路[5]在到單片機系統(tǒng)中是必不可少的。所謂的復(fù)位就是將單片機重新啟動,這時單

42、片機內(nèi)部的所有寄存器都回到初始狀態(tài)。本例電路中對應(yīng)的復(fù)位電路。</p><p><b>  圖2.6復(fù)位電路</b></p><p>  對于AT89S52[6]單片機來說,它是高電平復(fù)位,也就是說只要將單片機的RESET腳接高電平并保持一定的時間就可以實現(xiàn)單片機的復(fù)位。從上面的電路可以看出實現(xiàn)的是按鍵復(fù)位兩個復(fù)位功能。在單片機工作的時候按下復(fù)位按鈕,單片機的SERE

43、T腳接到高電平,電容C3馬上放電完畢;松開該按鈕后電容C3開始充電,經(jīng)過一定的時間后電容充電飽和,8.2K的下拉電阻把RESET腳拉回到低電平狀態(tài),實現(xiàn)了單片機的復(fù)位。</p><p><b>  2.9顯示電路 </b></p><p> ?。?)數(shù)碼管顯示電路</p><p>  LED的驅(qū)動是有52單片機來完成的,單片機的P1口接數(shù)碼管的

44、七個段選端,位選端由P2.0 、P2.1、P2.2、P2.3、P2.4、P2.5來驅(qū)動。原理圖所示電路中六位數(shù)碼管都是共陽的,當(dāng)單片機的P2.0 、P2.1、P2.2、P2.3、P2.4、P2.5引腳電平為“0”時,三極管導(dǎo)通,數(shù)碼管為高電平驅(qū)動,通過程序控制可以使數(shù)碼管顯示。</p><p>  2.9.1 LED共陽數(shù)碼管簡介</p><p>  共陽極數(shù)碼管中8個發(fā)光二極管的陽極(二

45、極管正端)連接一起,即為共陽極接法,簡稱共陽數(shù)碼管[10]。通常,公共陽極接高電平(一般接電源),其它管腳接段驅(qū)動電路輸出端。當(dāng)某段驅(qū)動電路的輸入端為低電平時,該端所連接的字段導(dǎo)通并點亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。公式為:R值=(U-Uled)/Iled (R值為限流電阻)</p><p>  

46、圖2.8 共陽極7段數(shù)碼管</p><p>  第三章 系統(tǒng)軟件設(shè)計</p><p><b>  3.1編程思路</b></p><p>  本設(shè)計中的計時采用定時器T0中斷完成,其中狀態(tài)循環(huán)調(diào)用顯示子程序。</p><p><b>  顯示子程序</b></p><p> 

47、 數(shù)碼管顯示的數(shù)據(jù)存放在內(nèi)存單元2A-2CH中,其中2AH存放秒數(shù)據(jù),2BH存放分?jǐn)?shù)據(jù),2CH存放時數(shù)據(jù),每一地址單元內(nèi)均為十進制BCD碼。由于采用軟件動態(tài)掃描實現(xiàn)數(shù)據(jù)顯示功能,顯示時用十進制BCD碼數(shù)據(jù)對應(yīng)段碼存放在ROM表中。顯示時先取出2AH-2CH每一地址中的數(shù)據(jù),然后查處對應(yīng)的顯示用段碼從P1口輸出。P3口將對應(yīng)的數(shù)碼管選中,就能該地址單元的數(shù)據(jù)值。</p><p>  定時器T0中斷服務(wù)程序</

48、p><p>  定時器T0用于時間計時。定時溢出中斷周期設(shè)為50ms,中斷累計20次(即1s)時對秒進行加1操作。時間計數(shù)單元地址分別在2AH(s)、2BH(min)、2CH(h),28H單元存放“熄滅符”數(shù)據(jù)(#0AH)。在單元中采用十進制BCD碼計數(shù),滿60進位。</p><p><b>  中斷程序</b></p><p>  T1中斷服務(wù)程

49、序用于指示調(diào)整單元數(shù)字的亮閃,對應(yīng)單元的顯示數(shù)據(jù)換成“熄滅符”數(shù)據(jù)(#0AH)。這樣在調(diào)整時間時,對應(yīng)調(diào)整單元的顯示數(shù)據(jù)就會間隔閃亮。</p><p><b>  調(diào)用功能程序</b></p><p>  調(diào)時功能程序的設(shè)計方法是:如果K1只按下1次,進入調(diào)秒狀態(tài);連續(xù)按下2次,進入調(diào)分狀態(tài);連續(xù)按下3次,進入調(diào)時狀態(tài)。當(dāng)進入調(diào)秒狀態(tài)是,秒小于30,就清零;秒大于或等

50、于30,就向分進1。進入調(diào)整時間狀態(tài),按K2進行+1。最后按K3確定。</p><p>  定時/計數(shù)器的工作方式</p><p>  設(shè)系統(tǒng)使用6MHz的晶振,定時器0工作在方式1,則10ms定時對應(yīng)的定時器初值可由下式計算得到:</p><p>  定時時間=(216—定時器0初值)×機器周期</p><p>  定時器T0的計

51、數(shù)初值</p><p>  定時時間 10ms</p><p>  計數(shù)值= ——————— = ————— =5000</p><p>  機器周期時間 2us</p><p>  計數(shù)初值= 65537- 5000 = 60537 = EC78H</p><p><

52、;b>  3.2系統(tǒng)資源分配</b></p><p>  1、數(shù)碼管顯示數(shù)據(jù)存放在2AH-2CH中,2AH顯示秒,2BH顯示分,2CH顯示時。</p><p>  2、將十進制碼數(shù)據(jù)對應(yīng)的段碼存放在ROM中,顯示時,取出2A-2CH的每一地址數(shù)據(jù),然后查處相應(yīng)的段碼從P0口輸出,P3口將選中的對應(yīng)的數(shù)碼管,就可以實現(xiàn)該地址單元數(shù)據(jù)。</p><p>

53、;<b>  3、T0中斷</b></p><p>  時間計數(shù)單元為2DH(秒)、2EH(分)、2FH(時),79H單元放“熄滅符”(#0AH),計數(shù)單元采用十進制BCD碼計數(shù),滿60位,T0中斷服務(wù)程序。</p><p>  定時器T0設(shè)為50ms溢出中斷,為秒計數(shù)用,定時器T1為調(diào)整時閃爍用,P1.0為調(diào)整按鈕,P0為字符輸出口,采用共陽顯示器。</p&g

54、t;<p><b>  4、T1中斷</b></p><p>  用于指示調(diào)整單元數(shù)字的閃亮,在時間的調(diào)整狀態(tài)下,按K2鍵+1,按K3鍵確定。</p><p>  3.3編程流程圖初始化程序框圖:</p><p><b>  3.4數(shù)字鐘程序</b></p><p><b>

55、  ;RAM分配表</b></p><p><b>  ;單元地址</b></p><p>  ;30H ;10毫秒計時</p><p>  ;31H ;0.5秒計時</p><p>

56、  ;32H;秒計數(shù)器</p><p>  ;33H;分計數(shù)器</p><p>  ;34H ;f時計數(shù)器</p><p>  ;35H;f選位計數(shù)器</p><p>  ;位地址;f用途</p><p>  ;00H

57、 ;f鍵已按下標(biāo)志</p><p>  ;01H;f秒節(jié)拍顯示標(biāo)志(兼被修改位閃動標(biāo)志)</p><p>  ORG 0000H</p><p>  S0 BIT P3.0</p><p>  S1 BIT P3.1</p><p>  S2 BIT P3.2</p>

58、<p><b>  LJMP STA</b></p><p>  ORG 000BH</p><p>  LJMP T0_SUV</p><p>  STA: MOV SP,#6FH ;設(shè)置堆棧</p><p>  MOV IE,#82H

59、 ;允許T0中斷</p><p>  MOV TMOD,#02H ;定時器方式2</p><p>  MOV TH0,#06H ;定時時間500us</p><p>  MOV TL0,#06H</p><p>  MOV 30H,#14H ;10ms計時初

60、值</p><p>  MOV 31H,#32H ;0.5s計時初值</p><p>  MOV 32H,#00H ;清秒計數(shù)器</p><p>  MOV 33H,#00H ;清分計數(shù)器</p><p>  MOV 34H,#12H ;清

61、時計數(shù)器</p><p>  MOV 35H,#03H ;置選位計數(shù)器為非修改狀態(tài)</p><p>  SETB TR0 ;啟動定時器</p><p>  MAIN: MOV A,P3 ;取鍵盤</p><p>  ORL A,#1

62、1111000B ;屏蔽非鍵盤輸入位</p><p>  CJNE A,#0FFH,LOOP1 ;有鍵按下轉(zhuǎn)LOOP1</p><p>  SJMP LOOP2 ;無鍵按下,則跳過</p><p>  LOOP1: JB 00H,LOOP3 ;有鍵已按下標(biāo)志,則跳

63、過</p><p>  SETB 00H ;無鍵已按下標(biāo)志置標(biāo)志后查鍵</p><p>  JB S0,LOOP4 ;不是選位鍵轉(zhuǎn)加1鍵</p><p>  LJMP KEY0 ;是選位鍵按下轉(zhuǎn)該鍵程序</p><p>  LOOP4:

64、 JB S1,LOOP5 ;不是選位鍵轉(zhuǎn)減1鍵</p><p>  LJMP KEY1 ;是加1鍵按下轉(zhuǎn)該鍵程序</p><p>  LOOP5: JB S2,LOOP2</p><p>  LJMP KEY2 ;是減1鍵按下轉(zhuǎn)該鍵程序</p>

65、<p>  LOOP2: CLR 00H ;無鍵按下清鍵已按下標(biāo)志</p><p>  LOOP3: MOV DPTR,#TABLE ;置7段碼表格首址</p><p>  MOV A,34H ;取時的高位顯示</p><p><b>  S

66、WAP A</b></p><p>  ANL A,#0FH</p><p>  CJNE A,#00H,AA</p><p>  MOV A,#0A0H</p><p>  AA: MOVC A,@A+DPTR</p><p>  MOV C,01H ;

67、秒節(jié)拍顯示處理</p><p>  MOV ACC.7,C</p><p>  MOV P1,A</p><p>  MOV A,35H ;如修改時單位,作閃動處理</p><p>  CJNE A,#02H,LOOP12 ;選位計數(shù)器未選中時單位跳過</p><p>

68、;  JNB 01H,LOOP12 ;無閃動標(biāo)志跳過</p><p>  ORL P1,#7FH ;清顯示</p><p>  LOOP12: CLR P2.0 ;顯示時十位</p><p>  LCALL DELY ;延時5ms</p&g

69、t;<p>  ORL P2,#0FFH ;關(guān)顯示</p><p>  MOV A,34H ;取時的低位顯示</p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p>  MOV C,01H</p>

70、<p>  MOV ACC.7,C</p><p>  MOV P1,A</p><p>  MOV A,35H</p><p>  CJNE A,#02H,LOOP13</p><p>  JNB 01H,LOOP13</p><p>  ORL P1,#7FH</p>

71、<p>  LOOP13: CLR P2.1 ; 顯示時個位</p><p>  LCALL DELY</p><p>  ORL P2,#0FFH ;關(guān)顯示</p><p>  MOV A,33H ;取分的高位顯示</p><p>

72、<b>  SWAp A</b></p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR ;取分高位段碼</p><p>  MOV C,01H ;加閃信號</p><p>  MOV ACC.7,C</p>&l

73、t;p>  MOV P1,A</p><p>  MOV A,35H ;判斷分位上否被選位</p><p>  CJNE A,#01H,LOOP14 ;分位未被選轉(zhuǎn)</p><p>  JNB 01H,LOOP14 ;無閃動標(biāo)志轉(zhuǎn)</p><p>  ORL P1

74、,#7FH ;有閃動標(biāo)志關(guān)顯示</p><p>  LOOP14: CLR P2.2 ;顯示分十位</p><p>  LCALL DELY</p><p>  ORL P2,#0FFH ;關(guān)顯示</p><p>  MOV A,33H

75、 ;取分個位顯示</p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p>  MOV C,01H ;加閃信號</p><p>  MOV ACC.7,C</p><p>  MOV P1,A

76、 ;送分個位段碼</p><p>  MOV A,35H</p><p>  CJNE A,#01H,LOOP15 ;分位未被選轉(zhuǎn)</p><p>  JNB 01H,LOOP15 ;無閃動標(biāo)志轉(zhuǎn)</p><p>  ORL P1,#7FH ;有閃動標(biāo)志關(guān)顯

77、示</p><p>  LOOP15: CLR P2.3 ;顯示分個位</p><p>  LCALL DELY</p><p>  ORL P2,#0FFH</p><p>  MOV A,32H ;取秒十位顯示</p><p><b

78、>  SWAP A</b></p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p>  MOV C,01H ;加閃信號</p><p>  MOV ACC.7,C</p><p>  MOV P1,A

79、 ;送秒十位段碼</p><p>  MOV A,35H</p><p>  CJNE A,#00H,LOOP16 ;秒位未被選轉(zhuǎn)</p><p>  JNB 01H,LOOP16 ;無閃動標(biāo)志轉(zhuǎn)</p><p>  ORL P1,#7FH ;有閃動標(biāo)

80、志關(guān)顯示</p><p>  LOOP16: CLR P2.4 ;顯示秒十位</p><p>  LCALL DELY</p><p>  ORL P3,#0FH ;關(guān)顯示</p><p>  ORL P2,#0FFH ;關(guān)顯示位碼</p><

81、p>  MOV A,32H ;取秒個位顯示</p><p>  ANL A,#0FH</p><p>  MOVC A,@A+DPTR</p><p>  MOV C,01H ;加閃信號</p><p>  MOV ACC.7,C</p><p&g

82、t;  MOV P1,A ;送秒個位段碼</p><p>  MOV A,35H</p><p>  CJNE A,#00H,LOOP17 ;秒位未被選轉(zhuǎn)</p><p>  JNB 01H,LOOP17 ;無閃動標(biāo)志轉(zhuǎn)</p><p>  ORL P1,#7FH

83、 ;有閃動標(biāo)志關(guān)顯示</p><p>  LOOP17: CLR P2.5 ;顯示秒個位</p><p>  ORL P3,#0FH ;關(guān)顯示</p><p>  LCALL DELY</p><p>  ORL P2,#0FFH ;關(guān)顯示位

84、碼</p><p>  LJMP MAIN</p><p>  KEY0 : INC 35H ;選位鍵程序</p><p><b>  MOV A,35H</b></p><p>  CJNE A,#04H,LOOP6 ;將選位計數(shù)器值限制在0~3之內(nèi)</

85、p><p>  MOV 35H,#00H</p><p>  LOOP6: LJMP LOOP3 ;返回顯示程序</p><p>  KEY1: MOV A,35H ;加1鍵程序</p><p>  ADD A,#32H ;得到被修改

86、單元地址</p><p><b>  MOV R0,A</b></p><p>  CJNE A,#32H,FXG1 ;不是修改秒轉(zhuǎn)分修改</p><p><b>  MOV A,@R0</b></p><p>  MOV 32H,#00H ;秒單

87、元清零</p><p>  SUBB A,#30 ;當(dāng)前秒數(shù)大于30秒嗎?</p><p>  JNC FXG ;大于30秒清零轉(zhuǎn)分加1</p><p>  LJMP LOOP3 ;小于30秒清零轉(zhuǎn)顯示</p><p>  FXG:

88、MOV R0,#33h</p><p>  FXG1: MOV A,@R0</p><p>  ADD A,#01H ;將該單元加1</p><p><b>  DA A</b></p><p>  MOV @R0,A</p><p>  MOV R1,

89、35H</p><p>  CJNE R1,#01H,LOOP7</p><p>  CJNE A,#60H,LOOP8 ;是修改分,滿六十則清零</p><p>  MOV @R0,#00H</p><p>  SJMP LOOP8</p><p>  LOOP7: CJNE R1,#0

90、2H,LOOP8 ;非修改狀態(tài)不作處理</p><p>  CJNE A,#24H,LOOP8 ;是修改時,滿24則清零</p><p>  MOV @R0,#00H</p><p>  LOOP8: LJMP LOOP3</p><p><b>  NOP</b></p>

91、<p>  KEY2: MOV A,35H ;減1鍵程序</p><p>  ADD A,#32H ;得到被修改單元地址</p><p>  MOV R0,A</p><p>  CJNE A,#32H,FXG2 ;不是修改秒轉(zhuǎn)分修改</p>&

92、lt;p><b>  MOV A,@R0</b></p><p>  MOV 32H,#00H ;秒單元清零</p><p>  SUBB A,#30 ;當(dāng)前秒數(shù)大于30秒嗎?</p><p>  JNC FXG ;大于30秒清零轉(zhuǎn)分加1

93、</p><p>  LJMP LOOP3 ;小于30秒清零轉(zhuǎn)顯示</p><p>  FXG2: MOV A,@R0</p><p>  ADD A,#99H ;將該單元減1</p><p><b>  DA A</b></p>

94、<p>  MOV @R0,A</p><p>  CJNE A,#99H,LOOP9 ;結(jié)果不為負(fù),則不作處理</p><p>  MOV R1,35H</p><p>  CJNE R1,#01H,LOOP10</p><p>  MOV @R0,#59H ;結(jié)果為負(fù),是

95、修改分則置成59分</p><p>  SJMP LOOP9</p><p>  LOOP10: CJNE R1,#02H,LOOP9 ;非修改狀態(tài)不作處理</p><p>  MOV @R0,#23H ;結(jié)果為負(fù),是修改時則置成23時</p><p>  LOOP9 : LJMP LOO

96、P3 ;只要有修改就將秒清零</p><p>  T0_SUV: PUSH ACC ;T0中斷服務(wù)程序(500us)</p><p><b>  PUSH PSW</b></p><p>  DJNZ 30H,LOOP11 ;10m

97、s計時</p><p>  MOV 30H,#14H</p><p>  DJNZ 31H,LOOP11 ;0.5s計時</p><p>  MOV 31H,#32H</p><p>  CPL 01H ;秒節(jié)拍顯示取反</p><

98、;p>  JNB 01H,LOOP11 ;未到1秒跳過</p><p>  MOV A,32H ;秒加1</p><p>  ADD A,#01H</p><p><b>  DA A</b></p><p>  MO

99、V 32H,A</p><p>  CJNE A,#60H,LOOP11</p><p>  MOV 32H,#00H</p><p>  MOV A,33H ;分加1</p><p>  ADD A,#01H</p><p><b>  DA

100、 A</b></p><p>  MOV 33H,A</p><p>  CJNE A,#60H,LOOP11</p><p>  MOV 33H,#00H</p><p>  MOV A,34H ;時加1</p><p>  ADD

101、A,#01H</p><p><b>  DA A</b></p><p>  MOV 34H,A</p><p>  CJNE A,#24H,LOOP11</p><p>  MOV 34H,#00H</p><p>  LOOP11: POP PSW</p>

102、<p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  DELY: MOV R2,#02H ;延時5ms</p><p>  DELY1: MOV R3,#0F9H</p><p&

103、gt;  DJNZ R3,$</p><p>  DJNZ R2,DELY1</p><p><b>  RET</b></p><p>  TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H ;7段碼字形表</p><p>  DB 92H,82H,0F8H,80H,90H,0FFH&

104、lt;/p><p><b>  END</b></p><p>  第四章 單片機應(yīng)用系統(tǒng)的調(diào)試</p><p><b>  4.1.硬件調(diào)試</b></p><p>  硬件調(diào)試是利用開發(fā)系統(tǒng)、基本測試儀器(萬用表、示波器)等,檢查用戶系統(tǒng)硬件中存在的故障。</p><p>

105、; ?。?)邏輯錯誤 樣機硬件的邏輯錯誤是由于設(shè)計錯誤或加工過程中的工藝性錯誤所造成的,包括錯線、開路和短路等幾種,其中短路是最常見的故障。</p><p> ?。?)元器件失效 元器件失效的原因有兩方面,一是器件本身已經(jīng)損壞或性能不符合要求;二是由于組裝錯誤造成的元器件失效,如電解電容﹑二極管的極性錯誤或集成塊安裝方向錯誤等。</p><p> ?。?)可靠性差 引起系統(tǒng)不可靠的

106、因素很多,如接插件接觸不良會造成系統(tǒng)時好時壞,內(nèi)部和外部的干擾﹑電源紋波系數(shù)過大或器件負(fù)載過大等造成邏輯電平不穩(wěn)定,另外走線和布局不合理等也會引起系統(tǒng)的可靠性差。</p><p> ?。?)電源故障 若樣機中存在電源故障,則加電后將造成器件損壞。電源故障包括電壓值不符合設(shè)計要求﹑電源引出線和插座不對應(yīng)﹑電源功率不足和負(fù)載能力差等。</p><p>  硬件調(diào)試可分為靜態(tài)調(diào)試與動態(tài)調(diào)試兩步

107、進行:</p><p>  靜態(tài)調(diào)試 靜態(tài)調(diào)試是在用戶系統(tǒng)未工作時的一種調(diào)試。步驟如下:</p><p>  第一步:目測。檢查外部的各種元件或者是電路是否有斷點。</p><p>  第二步:用萬用表測試。先用萬用表復(fù)核目測中有疑問的連接點,再檢測各種電源線與接地線之間是否有短路現(xiàn)象。</p><p>  第三步:加電檢測。給電路板加電,

108、檢測所有的插座或者是硬件的電源是否符合要求的值。</p><p>  第四步:聯(lián)機檢查。因為只有單片機開發(fā)系統(tǒng)才能完成對用戶系統(tǒng)的調(diào)試。</p><p>  動態(tài)調(diào)試 動態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排除用戶系統(tǒng)硬件中存在的器件內(nèi)部故障、器件連接邏輯錯誤等的一種硬件檢查。動態(tài)調(diào)試的一般方法是由近及遠(yuǎn)、由分到合。</p><p>  由近及遠(yuǎn)是將信號流經(jīng)的各器

109、件按照距離單片機的邏輯距離進行由由近及遠(yuǎn)的分層,然后分層調(diào)試。調(diào)試時,仍采用去掉無關(guān)元件的方法,逐層調(diào)試下去,就會定位故障元件了。</p><p>  由分到合是指首先按邏輯功能將用戶系統(tǒng)硬件電路分為若干塊,當(dāng)調(diào)試電路時,與該元件無關(guān)的器件全部從用戶系統(tǒng)中去掉,這樣可以將故障范圍限定在某個局部的電路上。當(dāng)各塊電路無故障后,將各電路逐塊加入系統(tǒng)中,再對各塊電路功能及各電路之間可能存在的相互聯(lián)系進行調(diào)試。由分到合的調(diào)

110、試即告完成。</p><p><b>  4.2軟件調(diào)試</b></p><p>  軟件調(diào)試是通過對用戶程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。程序運行后編輯,查看程序是否有邏輯的錯誤。</p><p><b>  4.3系統(tǒng)調(diào)試</b></p><p> 

111、 把調(diào)試好的程序灌入AT89S52芯片后,接上+5V電源,此時,數(shù)碼管顯示設(shè)置時間。這電子萬年歷設(shè)計不是很復(fù)雜,因此調(diào)試過程中沒遇到很大的困難,只是焊接時,線路板小線又多,必須得小心也要有耐心。要插好,焊好,要小心短路,或者接錯之類。要想焊的漂亮,電烙鐵的溫度也要掌握好,正確使用助焊劑。</p><p><b>  謝 辭</b></p><p>  這次做論文的經(jīng)歷

112、使我終身受益,我感受到做論文是要真正用心去做的一件事情,是真正的自己學(xué)習(xí)的過程和研究的過程,沒有學(xué)習(xí)就不可能有研究的能力,沒有自己的研究,就不會有所突破,那也就不叫論文了。同時,通過自己的獨立動手,讓我學(xué)會了分析電路、設(shè)計電路和步驟以及維修等知識,讓我進一步的鞏固和掌握前面所學(xué)到的基礎(chǔ)知識。在設(shè)計中使我掌握典型數(shù)字電路的分析與設(shè)計以及數(shù)字集成芯片的運用。將已經(jīng)學(xué)過的比較零散的數(shù)字電路知識有機的、系統(tǒng)地聯(lián)系起來,培養(yǎng)綜合分析、設(shè)計電路的能

113、力。它也鍛煉了我獨立思考問題的能力和通過查看相關(guān)資料來解決問題的習(xí)慣。在這次設(shè)計中,最重要的是設(shè)計的過程,設(shè)計的思想和設(shè)計電路中的每一個環(huán)節(jié),電路中各個部分的功能是如何實現(xiàn)的。各個芯片能夠完成什么樣的功能,使用芯片時應(yīng)該注意那些要點。同一個電路可以用那些芯片實現(xiàn),各個芯片實現(xiàn)同一個功能的區(qū)別。</p><p>  在這里特別的感謝xx老師精心指導(dǎo),從他那里我學(xué)到很多課本學(xué)不到的知識和工作態(tài)度以及碰到問題時如何一步

114、一步的解決。再則,學(xué)校給予了我們?nèi)绱撕玫臋C會,給了我們良好的設(shè)計環(huán)境和充足的必備元件,讓愛做這方面的學(xué)生充分享受了這里面的樂趣</p><p><b>  參考文獻</b></p><p>  王效華 張詠梅(主編) 單片機原理與應(yīng)用 北京交通大學(xué)出版社</p><p>  胡健 主編 《 單片機原理及接口技術(shù)

115、》 機械工業(yè)出版社</p><p>  耶定明 《單片機應(yīng)用技術(shù)》 人民郵電出版社</p><p>  楊素行 《模擬電子技術(shù)基礎(chǔ)簡明教程》 高等教育出版社</p><p>  余夢嘗 《數(shù)字電子技術(shù)基礎(chǔ)簡明教程》

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論