多功能數(shù)字鐘畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)論文</b></p><p>  課程設(shè)計(jì) :多功能數(shù)字鐘 </p><p>  學(xué) 院:信息科學(xué)與工程學(xué)院</p><p>  姓 名:———— </p><p>  班 級(jí):09通1班 </p><

2、p>  學(xué) 號(hào):———— </p><p>  指導(dǎo)老師 :—————— </p><p>  時(shí) 間 :2012.2.20—3.11 </p><p><b>  摘要</b></p><p>  近年來(lái)隨著計(jì)算機(jī)在社會(huì)領(lǐng)域的滲透和大規(guī)模集成電路的發(fā)展,單片

3、機(jī)的應(yīng)用正在不斷地走向深入,由于它具有功能強(qiáng),體積小,功耗低,價(jià)格便宜,工作可靠,使用方便等特點(diǎn),因此特別適合于與控制有關(guān)的系統(tǒng),越來(lái)越廣泛地應(yīng)用于自動(dòng)控制,智能化儀器,儀表,數(shù)據(jù)采集,軍工產(chǎn)品以及家用電器等各個(gè)領(lǐng)域,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,以作完善。</p><p>  本次設(shè)計(jì)中以單片機(jī)的發(fā)展過程和發(fā)展方向?yàn)楸尘埃榻B了單片機(jī)的輸入輸出的工作

4、原理和操作方法,中斷的工作原理和操作方法,74LS245譯碼器的工作原理和與,LED連接的方法。</p><p>  本次做的數(shù)字鐘是以單片機(jī)(AT89C51)為核心,結(jié)合相關(guān)的元器件(共陰極LED數(shù)碼顯示器、BCD-鎖存/7段譯碼/驅(qū)動(dòng)器74LS245等),再配以相應(yīng)的軟件,是它具有時(shí),分,秒顯示的功能,并且時(shí),分,秒還可以調(diào)整。此次設(shè)計(jì)電子數(shù)字鐘是為了了解電子數(shù)字鐘的原理,從而學(xué)會(huì)制作電子數(shù)字鐘。而且通過電子

5、數(shù)字鐘的制作進(jìn)一步的了解各種在制作中用到的中小規(guī)模集成電路的作用及實(shí)用方法。通過它可以進(jìn)一步學(xué)習(xí)與掌握單片機(jī)原理與使用方法。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī) AT89C51 共陰極LED數(shù)碼顯示器 74LS245譯碼器 </p><p><b>  目錄</b></p><p><b>  摘要- 2

6、-</b></p><p><b>  目錄- 3 -</b></p><p>  第一章 數(shù)電字子鐘的背景、意義、應(yīng)用- 4 -</p><p>  第二章 單片機(jī)和數(shù)字鐘的基本知識(shí)?- 4 -</p><p>  2.1應(yīng)用知識(shí)簡(jiǎn)介- 4 -</p><p>  2.2單片

7、機(jī)數(shù)字鐘的基本原理- 5 -</p><p>  第三章系統(tǒng)硬件電路的設(shè)計(jì)- 5 -</p><p>  3.1 單片機(jī)的基本結(jié)構(gòu)- 5 -</p><p>  3.2 74LS245 引腳圖及功能:- 7 -</p><p>  3.3七段數(shù)碼管的引腳圖及使用:- 9 -</p><p>  3.4硬件電

8、路的設(shè)計(jì)原則- 9 -</p><p>  第四章軟件程序的設(shè)計(jì)- 11 -</p><p>  4.2 軟件流程圖- 11 -</p><p>  4.2.1 系統(tǒng)軟件設(shè)計(jì)流程圖- 11 -</p><p>  4.3 定時(shí)程序設(shè)計(jì)- 14 -</p><p>  4.3.1實(shí)時(shí)時(shí)鐘實(shí)現(xiàn)的基本方法:- 1

9、4 -</p><p>  4.3.2 實(shí)時(shí)時(shí)鐘程序設(shè)計(jì)步驟:- 14 -</p><p>  結(jié)束語(yǔ)- 21 -</p><p>  參考文獻(xiàn)- 22 -</p><p>  第一章 數(shù)電字子鐘的背景、意義、應(yīng)用 </p><p>  20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了

10、社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。 時(shí)間對(duì)人們來(lái)說(shuō)總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無(wú)傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。</p><p>  目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體

11、積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢(shì)。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來(lái)實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。</p><p>  單片機(jī)模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的

12、裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更更長(zhǎng)的使用壽命,因此得到了廣泛的使用。</p><p>  數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì).時(shí),分,秒.數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展

13、了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。 </p><p>  數(shù)字鐘已成為人們?nèi)粘I钪校罕夭豢缮俚谋匦杵罚瑥V泛用于個(gè)人家庭以及車站、碼頭、劇場(chǎng)、辦公室等公共場(chǎng)所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來(lái)極大的方便。由

14、于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進(jìn)的石英技術(shù),使數(shù)字鐘具有走時(shí)準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn),它還用于計(jì)時(shí)自動(dòng)報(bào)時(shí)及自動(dòng)控制的領(lǐng)域。 </p><p>  第二章 單片機(jī)和數(shù)字鐘的基本知識(shí)? </p><p><b>  2.1應(yīng)用知識(shí)簡(jiǎn)介</b></p><p><b>  51單片機(jī):</b&

15、gt;</p><p>  單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。作為嵌入式系統(tǒng)控制核心的單片機(jī)具有其體積小、功能全、性價(jià)比高等諸多優(yōu)點(diǎn)。51 系列單片機(jī)是國(guó)內(nèi)目前應(yīng)用最廣泛的單片機(jī)之一,隨著嵌入式系統(tǒng)、片上系統(tǒng)等概念的提出和普遍接受及應(yīng)用,51 系列單片機(jī)的發(fā)展又進(jìn)入了一個(gè)新的階段。在今后很長(zhǎng)一段時(shí)間內(nèi)51 系列單片機(jī)仍將占據(jù)嵌入式系統(tǒng)產(chǎn)品的中低端市場(chǎng)。&

16、lt;/p><p><b>  ? 匯編語(yǔ)言:</b></p><p>  匯編語(yǔ)言是一種面向機(jī)器的計(jì)算機(jī)低級(jí)編程語(yǔ)言,通常是為特定的計(jì)算機(jī)或系列計(jì)算機(jī)專門設(shè)計(jì)的。匯編語(yǔ)言保持了機(jī)器語(yǔ)言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷的特點(diǎn),其代碼具有效率高實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn)。但是對(duì)于復(fù)雜的運(yùn)算或大型程序,用匯編語(yǔ)言編寫將非常耗時(shí)。匯編語(yǔ)言可以與高級(jí)語(yǔ)言配合使用,應(yīng)用十分廣泛。</p>

17、<p><b>  ? ISP</b></p><p>  ISP(In-System Programming)在系統(tǒng)可編程,是當(dāng)今流行的單片機(jī)編程模式,指電路板上的空白元器件可以編程寫入最終用戶代碼,而不需要從電路板上取下元器件。已經(jīng)編程的器件也可以用ISP 方式擦除或再編程。本次課程設(shè)計(jì)便使用ISP 方式,直接將編寫好的程序下載到連接好的單片機(jī)中進(jìn)行調(diào)試。</p>

18、<p>  2.2單片機(jī)數(shù)字鐘的基本原理</p><p>  它是利用單片機(jī)的內(nèi)部的定時(shí)/計(jì)數(shù)器工作與定時(shí)方式,對(duì)機(jī)器周期計(jì)數(shù)形成基準(zhǔn)時(shí)間(如10ms)然后用另外一個(gè)計(jì)數(shù)器或軟件計(jì)數(shù)的形式對(duì)基準(zhǔn)時(shí)間進(jìn)行計(jì)數(shù)形成秒(如對(duì)10ms計(jì)數(shù)100次),“秒”計(jì)數(shù)60次“分”,“分”計(jì)數(shù)60次形成“時(shí)”,“時(shí)”計(jì)數(shù)24次滿一天清零,然后通過譯碼器,數(shù)碼管把他們的內(nèi)容在相應(yīng)的位置顯示出來(lái)。在具體的設(shè)計(jì)時(shí)定時(shí)器采用中

19、斷方式工作,對(duì)時(shí)鐘的形成在終中斷序中實(shí)現(xiàn),在主程序只是對(duì)定時(shí)/計(jì)數(shù)器的定義初始化,調(diào)用顯示程序和控制程序的初始化。另外為了使用的方便,也設(shè)計(jì)了按鍵,可以通過按鍵對(duì)時(shí)分秒進(jìn)行調(diào)整,這樣程序就加了按鍵程序。</p><p>  第三章系統(tǒng)硬件電路的設(shè)計(jì)</p><p>  3.1 單片機(jī)的基本結(jié)構(gòu)</p><p>  MCS-51單片機(jī)內(nèi)部結(jié)構(gòu):</p>

20、<p>  8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說(shuō)明:</p><p><b>  中央處理器:</b></p><p>  中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)

21、據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。</p><p>  數(shù)據(jù)存儲(chǔ)器(RAM)</p><p>  8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用

22、戶定義的字型表。</p><p>  圖3-1 單片機(jī)8051的內(nèi)部結(jié)構(gòu)</p><p>  程序存儲(chǔ)器(ROM):</p><p>  8051共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。</p><p>  定時(shí)/計(jì)數(shù)器(ROM):</p><p>  8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,

23、以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。</p><p>  并行輸入輸出(I/O)口:</p><p>  8051共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。</p><p>  MCS-51的引腳說(shuō)明:</p><p>  MCS-52系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直

24、接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說(shuō)明:</p><p>  MCS-51的引腳說(shuō)明:</p><p>  MCS-52系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線

25、兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說(shuō)明:</p><p>  圖3-2 單片機(jī)的引腳</p><p>  Pin9:RESET/Vpd復(fù)位信號(hào)復(fù)用腳,當(dāng)8052通電,時(shí)鐘電路開始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高

26、電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8052的初始態(tài)。 </p><p>  3.2 74LS245 引腳圖及功能:</p><p>  總線驅(qū)動(dòng)器74LS245經(jīng)常用作三態(tài)數(shù)據(jù)緩沖器,74LS245為雙向三態(tài)數(shù)據(jù)緩沖器。單向的內(nèi)部有8個(gè)三態(tài)

27、驅(qū)動(dòng)器,分成兩組,分別由控制端 1G  和2G   控制; 雙向的有16個(gè)三態(tài)驅(qū)動(dòng)器,每個(gè)方向8個(gè)。在控制端  G   有效時(shí)(  G   為低電平),由DIR端控制驅(qū)動(dòng)方向:DIR為“1”時(shí)方向從左到右(輸出允許),DIR為“0”時(shí)方向從右到左(輸入允許)。 74LS2

28、45的引腳圖。</p><p>  G=0,DIR=0,B->A;G=0, DIR=1, A->B;G=1, DIR=X, X=0或者1,輸入和輸出均為高阻態(tài);高阻態(tài)的含意就是相當(dāng)于沒有這個(gè)芯片</p><p>  74LS245是8路3態(tài) 雙向緩沖驅(qū)動(dòng),也叫做總線驅(qū)動(dòng)門電路或線驅(qū)動(dòng)。主要使用在數(shù)據(jù)的雙向緩沖,原來(lái)常見于51的數(shù)據(jù)接口電路,比如,早期電路中,擴(kuò)展了很多的82

29、55/8155/8251/8253/573等芯片的時(shí)候,擔(dān)心8031的數(shù)據(jù)驅(qū)動(dòng)能力不足,就使用一片74LS245作為數(shù)據(jù)緩沖電路,增強(qiáng)驅(qū)動(dòng)能力;也常見與ISA卡的接口電路.</p><p>  3.3七段數(shù)碼管的引腳圖及使用:</p><p><b>  數(shù)碼管使用條件:</b></p><p>  a、段及小數(shù)點(diǎn)上加限流電阻。</p&g

30、t;<p>  b、使用電壓:段:根據(jù)發(fā)光顏色決定; 小數(shù)點(diǎn):根據(jù)發(fā)光顏色決定。</p><p>  c、使用電流:靜態(tài):總電流 80mA(每段 10mA);動(dòng)態(tài):平均電流 4-5mA 峰值電流 100mA</p><p>  上面這個(gè)只是七段數(shù)碼管引腳圖,其中共陽(yáng)極數(shù)碼管引腳圖和共陰極的是一樣的。</p><p>  LED數(shù)碼管根據(jù)LED的接法不同

31、分為共陰和共陽(yáng)兩類,了解LED的這些特性,對(duì)編程是很重要的,因?yàn)椴煌愋偷臄?shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。右圖是共陰和共陽(yáng)極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。 將多只LED的陰極連在一起即為共陰式,而將多只LED的陽(yáng)極連在一起即為共陽(yáng)式。以共陰式為例,如把陰極接地,在相應(yīng)段的陽(yáng)極接上正電源,該段即會(huì)發(fā)光。當(dāng)然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如我們將&q

32、uot;b"和"c"段接上正電源,其它端接地或懸空,那么"b"和"c"段發(fā)光,此時(shí),數(shù)碼管顯示將顯示數(shù)字“1”。而將"a"、"b"、"d"、"e"和"g"段都接上正電源,其它引腳懸空,此時(shí)數(shù)碼管將顯示“2”。其它字符的顯示原理類同。</p><p&g

33、t;  3.4硬件電路的設(shè)計(jì)原則</p><p>  在性價(jià)比滿足應(yīng)用系統(tǒng)要求的情況下,選擇更可靠,更熟悉的單片機(jī)縮短研制周期。</p><p>  盡可能選擇自己較為熟悉的應(yīng)用電路,以提高系統(tǒng)的可靠性。</p><p>  單片機(jī)內(nèi)部的資源與外部的擴(kuò)展資源應(yīng)在滿足系統(tǒng)設(shè)計(jì)的基礎(chǔ)上留有余地,為進(jìn)一步的升級(jí)和擴(kuò)展提供方便。</p><p>  

34、應(yīng)充分的結(jié)合軟件方案考慮硬件的結(jié)構(gòu),通常硬件功能較完善,其相應(yīng)的軟件程序就簡(jiǎn)單,但硬件的成本較高,而功能較低,其相應(yīng)的軟件就復(fù)雜,其實(shí)際常用軟件代替硬件來(lái)降低成本。</p><p>  整個(gè)系統(tǒng)相關(guān)的器件盡可能的做到性能相匹配。</p><p>  充分的考慮系統(tǒng)的抗干擾性,如具有抗干擾的單片機(jī)并充分的帥選芯片與器件,在電路中采取隔離或屏蔽的措施等。</p><p>

35、;  更具以上的原則我們選擇我們較為熟悉的80c51單片機(jī);為了LED數(shù)碼管的顯示和和鍵盤的控制,我們也選擇了74LS245的譯碼器和#1,#2,#3號(hào)按鍵作為時(shí)鐘的參數(shù)修改加一鍵</p><p>  #1鍵修改時(shí),按一下時(shí)加一</p><p>  #2鍵修改分,按一下分加一</p><p>  #3鍵修改秒,按一下秒加一</p><p> 

36、 時(shí)鐘硬件連接圖如下圖所示</p><p>  第四章軟件程序的設(shè)計(jì)</p><p>  4.1 軟件程序內(nèi)容</p><p>  本設(shè)計(jì)的軟件程序包括主程序、中斷子程序、打鈴子程序、時(shí)鐘顯示子程序、查詢時(shí)間表切換程序和延時(shí)子程序等等。另外由于電路中有四個(gè)按鍵,還另外設(shè)計(jì)了防抖動(dòng)程序來(lái)防止干擾。</p><p><b>  4.2

37、軟件流程圖</b></p><p>  4.2.1 系統(tǒng)軟件設(shè)計(jì)流程圖</p><p>  這次的數(shù)字電子鐘設(shè)計(jì)用到很多子程序,它們的流程圖如下所示。</p><p>  主程序是先開始,然后啟動(dòng)定時(shí)器,定時(shí)器啟動(dòng)后在進(jìn)行按鍵檢測(cè),檢測(cè)完后,就可以顯示時(shí)間。</p><p>  圖4-1 主程序流程圖</p><

38、;p>  按鍵處理是先檢測(cè)秒按鍵是否按下,秒按鍵如果按下,秒就加1;如果沒有按下,就檢測(cè)分按鍵是否按下,分按鍵如果按下,分就加1;如果沒有按下,就檢測(cè)時(shí)按鍵是否按下,時(shí)按鍵如果按下,時(shí)就加1;如果沒有按下,就把時(shí)間顯示出來(lái)。</p><p>  圖4-2 按鍵處理流程圖</p><p>  定時(shí)器中斷時(shí)是先檢測(cè)1秒是否到,1秒如果到,秒單元就加1;如果沒到,就檢測(cè)1分鐘是否到,1分鐘

39、如果到,分單元就加1;如果沒到,就檢測(cè)1小時(shí)是否到,1小時(shí)如果到,時(shí)單元就加1,如果沒到,就顯示時(shí)間。</p><p>  圖4-3 定時(shí)器中斷流程圖</p><p>  時(shí)間顯示是先秒個(gè)位計(jì)算顯示,然后是秒十位計(jì)算顯示,再是分個(gè)位計(jì)算顯示,再然后是分十位顯示,再就是時(shí)個(gè)位計(jì)算顯示,最后是時(shí)十位顯示。</p><p>  4.3 定時(shí)程序設(shè)計(jì)</p>

40、<p>  單片機(jī)的定時(shí)功能也是通過計(jì)數(shù)器的計(jì)數(shù)來(lái)實(shí)現(xiàn)的,此時(shí)的計(jì)數(shù)脈沖來(lái)自單片機(jī)的內(nèi)部,即每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖,也就是每經(jīng)過1個(gè)機(jī)器周期的時(shí)間,計(jì)數(shù)器加1。如果MCS-52采用的12MHz晶體,則計(jì)數(shù)頻率為1MHz,即每過1us的時(shí)間計(jì)數(shù)器加1。這樣可以根據(jù)計(jì)數(shù)值計(jì)算出定時(shí)時(shí)間,也可以根據(jù)定時(shí)時(shí)間的要求計(jì)算出計(jì)數(shù)器的初值。MCS-51單片機(jī)的定時(shí)器/計(jì)數(shù)器具有4種工作方式,其控制字均在相應(yīng)的特殊功能寄存器中,通過對(duì)特

41、殊功能寄存器的編程,可以方便的選擇定時(shí)器/計(jì)數(shù)器兩種工作模式和4種工作方式。</p><p>  定時(shí)器/計(jì)數(shù)器工作在方式0時(shí),為13位的計(jì)數(shù)器,由TLX(X=0、1)的低5位和THX的高8位所構(gòu)成。TLX低5位溢出則向THX進(jìn)位,THX計(jì)數(shù)溢出則置位TCON中的溢出標(biāo)志位TFX.</p><p>  當(dāng)定時(shí)器/計(jì)數(shù)器工作于方式1,為16位的計(jì)數(shù)器。本設(shè)計(jì)師單片機(jī)多功能定時(shí)器,所以MCS-

42、51內(nèi)部的定時(shí)器/計(jì)數(shù)器被選定為定時(shí)器工作模式,計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘脈沖,每個(gè)機(jī)器周期產(chǎn)生一個(gè)脈沖使計(jì)數(shù)器增1。</p><p>  4.3.1實(shí)時(shí)時(shí)鐘實(shí)現(xiàn)的基本方法:</p><p>  時(shí)鐘的最小計(jì)時(shí)單位是秒,但使用定時(shí)器的方式1,最大的定時(shí)時(shí)間也只能達(dá)到131ms。我們可把定時(shí)器的定時(shí)時(shí)間定為50ms。這樣,計(jì)數(shù)溢出20次即可得到時(shí)鐘的最小計(jì)時(shí)單位:秒。而計(jì)數(shù)20次可以用軟件實(shí)現(xiàn)。

43、</p><p>  秒計(jì)時(shí)是采用中斷方式進(jìn)行溢出次數(shù)的累積,計(jì)滿20次,即得到秒計(jì)時(shí)。從秒到分,從分到時(shí)是通過軟件累加并進(jìn)行比較的方法來(lái)實(shí)現(xiàn)的。要求每滿1秒,則“秒”單元中的內(nèi)容加1;“秒”單元滿60,則“分”單元中的內(nèi)容加1;“分”單元滿60,則“時(shí)”單元中的內(nèi)容加1;“時(shí)”單元滿24,則將時(shí)、分、秒的內(nèi)容全部清零。:</p><p>  4.3.2 實(shí)時(shí)時(shí)鐘程序設(shè)計(jì)步驟:</p

44、><p> ?。?)選擇工作方式,計(jì)算初值;</p><p> ?。?)采用中斷方式進(jìn)行溢出次數(shù)累計(jì);</p><p> ?。?)從秒——分——時(shí)的計(jì)時(shí)是通過累加和數(shù)值比較實(shí)現(xiàn)的;</p><p>  (4)時(shí)鐘顯示緩沖區(qū):時(shí)鐘時(shí)間在方位數(shù)碼管上進(jìn)行顯示,為此在內(nèi)部</p><p>  RAM中要設(shè)置顯示緩沖區(qū),共6個(gè)地址

45、單元。顯示緩沖區(qū)從左到右依次存放時(shí)、分、秒數(shù)值;</p><p>  (5)主程序:主要進(jìn)行定時(shí)器/計(jì)數(shù)器的初始化編程,然后反復(fù)調(diào)用顯示</p><p>  子程序的方法等待中斷的到來(lái)。</p><p> ?。?)中斷服務(wù)程序:進(jìn)行計(jì)時(shí)操作</p><p>  (7)加1子程序:用于完成對(duì)時(shí)、分、秒的加操作,中斷服務(wù)程序在秒、</p&g

46、t;<p>  分、時(shí)加1時(shí)共有三種條調(diào)用加1子程序,包括三項(xiàng)內(nèi)容:合字、加1并進(jìn)行十進(jìn)制調(diào)整、分字。</p><p><b>  源程序如下:</b></p><p>  S_SETBITP1.0;數(shù)字鐘秒控制位</p><p>  M_SETBITP1.1;分鐘控制位</p>

47、<p>  H_SETBITP1.2;小時(shí)控制位</p><p>  SECONDEQU30H</p><p>  MINUTEEQU31H</p><p>  HOUREQU32H</p><p>  TCNTEQU34H</p><p><b>  OR

48、G00H</b></p><p>  SJMPSTART</p><p><b>  ORG0BH</b></p><p>  LJMPINT_T0</p><p>  START:MOVDPTR,#TABLE</p><p>  MOVHOUR,#0

49、;初始化</p><p>  MOVMINUTE,#0</p><p>  MOVSECOND,#0</p><p>  MOVTCNT,#0</p><p>  MOVTMOD,#01H</p><p>  MOVTH0,#(65536-50000)/256;定時(shí)50毫秒</p>

50、<p>  MOVTL0,#(65536-50000)MOD 256</p><p>  MOVIE,#82H</p><p><b>  SETBTR0</b></p><p>  ;****************************************************</p><p

51、>  ;判斷是否有控制鍵按下,是哪一個(gè)鍵按下</p><p>  A1:LCALLDISPLAY</p><p>  JNBS_SET,S1</p><p>  JNBM_SET,S2</p><p>  JNBH_SET,S3</p><p><b>  LJMPA1&

52、lt;/b></p><p>  S1:LCALLDELAY;去抖動(dòng)</p><p>  JBS_SET,A1</p><p>  INCSECOND;秒值加1</p><p>  MOVA,SECOND</p><p>  CJNEA,#60,J0;判斷是否加到60秒</p&g

53、t;<p>  MOVSECOND,#0</p><p><b>  LJMPK1</b></p><p>  S2:LCALLDELAY</p><p>  JBM_SET,A1</p><p>  K1:INCMINUTE;分鐘值加1</p><p>  

54、MOVA,MINUTE</p><p>  CJNEA,#60,J1;判斷是否加到60分</p><p>  MOVMINUTE,#0</p><p><b>  LJMPK2</b></p><p>  S3:LCALLDELAY</p><p>  JBH_SET,A1&

55、lt;/p><p>  K2:INCHOUR;小時(shí)值加1</p><p>  MOVA,HOUR</p><p>  CJNEA,#24,J2;判斷是否加到24小時(shí)</p><p>  MOVHOUR,#0</p><p>  MOVMINUTE,#0</p><p>  

56、MOVSECOND,#0</p><p><b>  LJMPA1</b></p><p>  ;****************************************************</p><p><b>  ;等待按鍵抬起</b></p><p>  J0:JB

57、S_SET,A1</p><p>  LCALLDISPLAY</p><p><b>  SJMPJ0</b></p><p>  J1:JBM_SET,A1</p><p>  LCALLDISPLAY</p><p><b>  SJMPJ1</b>&l

58、t;/p><p>  J2:JBH_SET,A1</p><p>  LCALLDISPLAY</p><p><b>  SJMPJ2</b></p><p>  ;***********************************************</p><p>  ;定時(shí)

59、器中斷服務(wù)程序,對(duì)秒,分鐘和小時(shí)的計(jì)數(shù)</p><p>  INT_T0:MOVTH0,#(65536-50000)/256</p><p>  MOVTL0,#(65536-50000)MOD 256</p><p><b>  INCTCNT</b></p><p>  MOVA,TCNT<

60、;/p><p>  CJNEA,#20,RETUNE;計(jì)時(shí)1秒</p><p>  INCSECOND</p><p>  MOVTCNT,#0</p><p>  MOVA,SECOND</p><p>  CJNEA,#60,RETUNE</p><p>  INCMINU

61、TE</p><p>  MOVSECOND,#0</p><p>  MOVA,MINUTE</p><p>  CJNEA,#60,RETUNE</p><p><b>  INCHOUR</b></p><p>  MOVMINUTE,#0</p><p

62、>  MOVA,HOUR</p><p>  CJNEA,#24,RETUNE</p><p>  MOVHOUR,#0</p><p>  MOVMINUTE,#0</p><p>  MOVSECOND,#0</p><p>  MOVTCNT,#0</p><p&g

63、t;  RETUNE:RETI</p><p>  ;******************************************</p><p><b>  ;顯示控制子程序</b></p><p>  DISPLAY:MOVA,SECOND;顯示秒</p><p>  MOVB,#10</p

64、><p><b>  DIVAB</b></p><p><b>  CLRP3.6</b></p><p>  MOVCA,@A+DPTR</p><p><b>  MOVP0,A</b></p><p>  LCALLDELAY<

65、/p><p><b>  SETBP3.6</b></p><p><b>  MOVA,B</b></p><p><b>  CLRP3.7</b></p><p>  MOVCA,@A+DPTR</p><p><b>  MOV

66、P0,A</b></p><p>  LCALLDELAY</p><p><b>  SETBP3.7</b></p><p><b>  CLRP3.5</b></p><p>  MOVP0,#40H;顯示分隔符</p><p>  LC

67、ALLDELAY</p><p><b>  SETBP3.5</b></p><p>  MOVA,MINUTE;顯示分鐘</p><p>  MOVB,#10</p><p><b>  DIVAB</b></p><p><b>  CLR

68、P3.3</b></p><p>  MOVCA,@A+DPTR</p><p><b>  MOVP0,A</b></p><p>  LCALLDELAY</p><p><b>  SETBP3.3</b></p><p><b>  

69、MOVA,B</b></p><p><b>  CLRP3.4</b></p><p>  MOVCA,@A+DPTR</p><p><b>  MOVP0,A</b></p><p>  LCALLDELAY</p><p><b>

70、;  SETBP3.4</b></p><p><b>  CLRP3.2</b></p><p>  MOVP0,#40H;顯示分隔符</p><p>  LCALLDELAY</p><p><b>  SETBP3.2</b></p><p&g

71、t;  MOVA,HOUR;顯示小時(shí)</p><p>  MOVB,#10</p><p><b>  DIVAB</b></p><p><b>  CLRP3.0</b></p><p>  MOVCA,@A+DPTR</p><p><b&g

72、t;  MOVP0,A</b></p><p>  LCALLDELAY</p><p><b>  SETBP3.0</b></p><p><b>  MOVA,B</b></p><p><b>  CLRP3.1</b></p>

73、<p>  MOVCA,@A+DPTR</p><p><b>  MOVP0,A</b></p><p>  LCALLDELAY</p><p><b>  SETBP3.1</b></p><p><b>  RET</b></p>&

74、lt;p>  TABLE: DB 3FH,06H,5BH,4FH,66H</p><p>  DB6DH,7DH,07H,7FH,6FH</p><p>  DELAY:MOVR6,#10</p><p>  D1:MOVR7,#250</p><p><b>  DJNZR7,$</b>

75、</p><p>  DJNZR6,D1</p><p><b>  RET</b></p><p><b>  END</b></p><p>  調(diào)試結(jié)果如下圖所示:</p><p><b>  結(jié)束語(yǔ)</b></p><p&g

76、t;  做了一周的數(shù)字鐘課程設(shè)計(jì),讓我感受頗深,有關(guān)于單片機(jī)知識(shí)的,但更多是團(tuán)隊(duì)和合作。</p><p>  我們小組一共5個(gè)人,人多,分工就顯得很重要,在我們的集體的討論之下,我得到了設(shè)計(jì)硬件電路和總體調(diào)試的任務(wù),當(dāng)時(shí)讓我感到很有壓力。因?yàn)槲覀兤綍r(shí)接觸的都是純粹理論的東西,做實(shí)驗(yàn)也是霧里看花,對(duì)硬件的認(rèn)識(shí)是很缺乏的。</p><p>  一回來(lái)我就去圖書館查閱的大量的單片機(jī)和數(shù)字芯片的資

77、料,由于資料比較分散,所以整理有用的資料</p><p>  就顯得很重要,有些東西實(shí)在是不懂我就把資料帶回來(lái)請(qǐng)教同學(xué),讓我受益匪淺。然后在硬件電路的設(shè)計(jì)中,由于要涉及軟件設(shè)計(jì)的具體情況,又和組員共同討論,最終確定了一個(gè)大家都可以接受的方案。</p><p>  當(dāng)時(shí)感覺這下任務(wù)該完成了,沒有想到的是在實(shí)際的調(diào)試中更是遇到了太多的麻煩。</p><p>  我們拿著

78、設(shè)計(jì)好的電路接線圖和設(shè)計(jì)的程序去實(shí)驗(yàn)室調(diào)試,第一次就給了我們致命的打擊,設(shè)計(jì)的功能</p><p>  全沒有實(shí)現(xiàn),只有數(shù)碼管一滅一亮的循環(huán),其它的計(jì)時(shí)、調(diào)試、都沒有現(xiàn)象,當(dāng)時(shí)由于沒有一些元件沒當(dāng)時(shí)只是對(duì)程序進(jìn)行了修改,但還是沒有明顯的效果,就垂頭喪氣的回來(lái)反復(fù)的去調(diào)試,可效果還是一個(gè)樣。眼看著就要到演示的時(shí)間了,可我們的成果卻沒有很大的改觀,當(dāng)然之所以現(xiàn)在時(shí)間這么緊迫和我們剛開始低估課題有很大的關(guān)系,我記得都已

79、經(jīng)是星期四的中午了還沒有弄好,我們一直都是在程序上面做修改卻沒有想到是電路的問題,這個(gè)問題還是我們的組員在無(wú)意見提出來(lái)的,當(dāng)時(shí)我眼前一亮,對(duì)啊,</p><p>  為什么不改改電路呢,這下我們五個(gè)人集中力量對(duì)電路排查,終于找到了問題之所在啊!我們把74LS47換成74LS245后,調(diào)試結(jié)果馬上就對(duì)了。現(xiàn)在想想我們的這個(gè)結(jié)果來(lái)的卻是不容易??!這與我們組成員的認(rèn)真、團(tuán)結(jié)十分不開的。當(dāng)然更重要的是老師的指導(dǎo)?。?lt

80、;/p><p><b>  參考文獻(xiàn)</b></p><p>  《單片機(jī)原理及應(yīng)用》 姜志海 電子工業(yè)出版社</p><p>  《電子技術(shù)基礎(chǔ)試驗(yàn)》 陳大欽 高等教育出版社</p><p>  《C程序設(shè)計(jì)》 潭浩強(qiáng) 北京航空航天出版社</p><p>  《電路基礎(chǔ)》 許熙

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論