畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)_第1頁
畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)_第2頁
畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)_第3頁
畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)_第4頁
畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于單片機(jī)電子數(shù)字鐘的設(shè)計(jì) 摘要近幾年,單片機(jī)在各個(gè)領(lǐng)域得到廣泛的應(yīng)用。從工業(yè)到人們的日常生活,大部分的科技產(chǎn)品都是通過單片機(jī)來控制。在它問世之前,自動(dòng)控制設(shè)備不能被廣泛的應(yīng)用,這是因?yàn)榭刂圃O(shè)備的體積龐大,耗電量大,價(jià)格昂貴。在第一臺(tái)微處理器成功研制不久,第一個(gè)單片機(jī)就問世了。因?yàn)槠湫∏傻捏w積,低功耗,以及高效的性能,單片機(jī)受到了大家的歡迎。 今天,單片機(jī)成為了解決低復(fù)雜度,中等復(fù)雜度控制問題的傳統(tǒng)選擇。文章介紹了單片機(jī)在定時(shí)方面的基本功能。生活中,我們發(fā)現(xiàn),有時(shí)病人要在注射藥物之前作皮試試驗(yàn),防止過敏。護(hù)士們有必要在一定時(shí)間后記錄結(jié)果。這時(shí),時(shí)間的準(zhǔn)確顯得很重要的。但是,有些時(shí)候,由于病人的

2、人數(shù)眾多,忘了記錄時(shí)間。根據(jù)這種情況,我們設(shè)計(jì)了一個(gè)設(shè)備解決此問題。 我們選擇的方法是單片機(jī)開發(fā)設(shè)計(jì)使用的傳統(tǒng)方法,通過本次設(shè)計(jì),可以了解整個(gè)單片機(jī)開發(fā)的流程。文章首先介紹了單片機(jī)的基本知識。下來比較了一些可行的方法。同時(shí)給出了框圖,流程圖等。論文涵蓋了從需求分析,系統(tǒng)設(shè)計(jì),編程,原理圖,pcb圖等設(shè)計(jì)的基本過程。關(guān)鍵詞:單片機(jī),軟件仿真,原理圖,pcb圖based on the design of single-chip digital clockabstractsingle chip microcomputer has achieved a immemse popularity in al

3、l fileds in recent years.from industry to peoples common lives,most of technical applications are controlled by scm. before it appeared,the automatic devices couldt be widely used because of their huge size ,large quantity of power cost and high price.the first scm appeared as soon as the first mcu(

4、microcontroller unit) was successfully developed.due to its small size,low power cost and high performance,it has been welcomed by people. nowadays, scm has been selected as a traditional solution for low or medium complexity problems about devices controlling.this essay shows a basic application of

5、 scm in timing for peoples life. we often find that patients sometimes has to receive medical tests before using medcines for fear that patients may get allery,so it is necessary for nurses to record the result after a fixed time interval. under this condition,time accuracy is a vital factor that ef

6、fects the results.unfornately,some nurses ignore some patients when a large number of patients waiteing for tests.form this point,we design a device which can solve this problem. the approach we choose is the common way for scm developing from which we can get an acknowledge about the scm develop fl

7、owing process.the paper first introduces knowledge on 51 serial scm,then compares some possible methodologies.at the same time,it also shows block diagrams,flowing process diagrams and so on. it presents the process including requirement analysis ,system design,scm programming ,program emulation , p

8、cb design and final welding of the board which forms a complete procedure for product manufacture。key words: scm;software emulation;schemetic ;pcb目 錄摘要iabstractii目 錄iii第1章 緒 論11.1 課題背景11.2 課題來源1第2章 mcs-51單片機(jī)的知識介紹22.1單片機(jī)介紹22.3 單片機(jī)的應(yīng)用領(lǐng)域32.4 單片機(jī)的中斷與定時(shí)系統(tǒng)32.4.1 mcs51單片機(jī)中斷系統(tǒng)32.4.2 mcs-51 單片機(jī)的定時(shí)器/計(jì)數(shù)器6第3章 數(shù)

9、字鐘原理圖元件清單及設(shè)計(jì)方案83.1 時(shí)鐘電路原理圖83.2 單片機(jī)最小系統(tǒng)93.3 顯示器工作原理103.4 元件清單103.5設(shè)計(jì)方案與實(shí)現(xiàn)103.6 74ls245介紹113.6.1174ls245引腳圖113.6.2 74ls245說明123.7 at89c51介紹123.7.1at89c51引腳功能介紹123.7.2 存儲(chǔ)器的結(jié)構(gòu)16第4章 電路的硬件設(shè)計(jì)184.1 數(shù)字鐘硬件框圖184.2 程序整體設(shè)計(jì)204.3數(shù)字鐘的操作224.4 本章小結(jié)22第5章 數(shù)字鐘的工作原理介紹225.1 實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)的基本方法225.2 數(shù)字鐘的時(shí)間顯示235.3 計(jì)時(shí)235.4 鍵盤/顯示235.

10、5 本章小結(jié)23第6章軟件設(shè)計(jì)與源程序代碼246.1軟件選擇與介紹246.1.1軟件介紹246.1.2 該軟件的特點(diǎn):256.2源程序代碼26第7章 結(jié)論與總結(jié)30參考文獻(xiàn)32致謝33第1章 緒 論1.1 課題背景單片機(jī)自1976年由intel公司推出mcs-48開始,迄今已有二十多年了。由于單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗地、使用方便、價(jià)格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,幾乎“無處不在,無所不為”。單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦公自動(dòng)化、汽車電子、pc機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。 單片機(jī)有兩種基本結(jié)

11、構(gòu)形式:一種是在通用微型計(jì)算機(jī)中廣泛采用的,將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合用一個(gè)存儲(chǔ)器空間的結(jié)構(gòu),稱為普林斯頓結(jié)構(gòu)。另一種是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開,分別尋址的結(jié)構(gòu),一般需要較大的程序存儲(chǔ)器,目前的單片機(jī)以采用程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開的結(jié)構(gòu)為多。 本文討論的單片機(jī)at89s52可調(diào)數(shù)字鐘系統(tǒng)設(shè)計(jì)的核心是目前應(yīng)用極為廣泛的51系列單片機(jī),可調(diào)數(shù)字鐘配置了外圍設(shè)備,構(gòu)成了一個(gè)可編程的計(jì)時(shí)定時(shí)系統(tǒng),具有體積小,可靠性高,功能強(qiáng)等特點(diǎn)。不僅能滿足所需要求而且還有很多功能可供開發(fā),有著廣泛的應(yīng)用領(lǐng)域。 20世紀(jì)80年代中期以后,intel公司以專利轉(zhuǎn)讓的形式把8051內(nèi)核技術(shù)轉(zhuǎn)讓給許多半導(dǎo)體芯

12、片生產(chǎn)廠家,如atmel、philips、analog、devices、dallas等。這些廠家生產(chǎn)的芯片是mcs-51系列的兼容產(chǎn)品,準(zhǔn)確地說是與mcs-51指令系統(tǒng)兼容的單片機(jī)。這些兼容機(jī)與8051的系統(tǒng)結(jié)構(gòu)(主要是指令系統(tǒng))相同,采用cmos工藝,因而,常用80c51系列來稱呼所有具有8051指令系統(tǒng)的單片機(jī),它們對8051單片機(jī)一般都作了一些擴(kuò)充,更有特點(diǎn)。其功能和市場競爭力更強(qiáng),不該把它們直接稱呼為mcs-51系列單片機(jī),因?yàn)閙cs只是intel公司專用的單片機(jī)系列型號。mcs-51系列及80c51單片機(jī)有多種品種。它們的引腳及指令系統(tǒng)相互兼容,主要在內(nèi)部結(jié)構(gòu)上有些區(qū)別。目前使用的m

13、cs-51系列單片機(jī)及其兼容產(chǎn)品通常分成以下幾類:基本型、增強(qiáng)型、低功耗型、專用型、超8位型、片內(nèi)閃爍存儲(chǔ)器型。1.2 課題來源在日常生活和工作中,我們常常用到定時(shí)控制,如擴(kuò)印過程中的曝光定時(shí)等。早期常用的一些時(shí)間控制單元都使用模擬電路設(shè)計(jì)制作的,其定時(shí)準(zhǔn)確性和重復(fù)精度都不是很理想,現(xiàn)在基本上都是基于數(shù)字技術(shù)的新一代產(chǎn)品,隨著單片機(jī)性能價(jià)格比的不斷提高,新一代產(chǎn)品的應(yīng)用也越來越廣泛,大可構(gòu)成復(fù)雜的工業(yè)過程控制系統(tǒng),完成復(fù)雜的控制功能。小則可以用于家電控制,甚至可以用于兒童電子玩具。它功能強(qiáng)大,體積小,質(zhì)量輕,靈活好用,配以適當(dāng)?shù)慕涌谛酒梢詷?gòu)造各種各樣、功能各異的微電子產(chǎn)品。 隨著電子技術(shù)的

14、飛速發(fā)展,家用電器和辦公電子設(shè)備逐漸增多,不同的設(shè)備都有自己的控制器,使用起來很不方便。根據(jù)這種實(shí)際情況,設(shè)計(jì)了一個(gè)單片機(jī)多功能時(shí)間系統(tǒng),它可以避免多種控制器的混淆,利用一個(gè)控制器對多路電器進(jìn)行控制,同時(shí)又可以進(jìn)行時(shí)鐘校準(zhǔn),可以任意設(shè)置時(shí)間。這種具有人們所需要的智能化特性的產(chǎn)品減輕了人的勞動(dòng),擴(kuò)大了數(shù)字化的范圍,為家庭數(shù)字化提供了可能。第2章 mcs-51單片機(jī)的知識介紹2.1單片機(jī)介紹單片機(jī)又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單

15、片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最佳選擇。 單片機(jī)內(nèi)部也用和電腦功能類似的模塊,比如cpu,內(nèi)存,并行總線,還有和硬盤作用相同的存儲(chǔ)器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過價(jià)錢也是低的,一般不超過10元即可.用它來做一些控制電器一類不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動(dòng)滾筒洗衣機(jī)、排煙罩、vcd等等的家電里面都可以看到它的身影!.它主要是作為控制部分的核心部件它是一種在線式實(shí)時(shí)控制計(jì)算機(jī),在線式就是現(xiàn)場控制,需要的是有較強(qiáng)的抗干擾能力,較低的成本,這也是和離線式計(jì)算機(jī)的(比如家用pc)的主要區(qū)別。 單片機(jī)是靠程序的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的

16、獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的cd4000系列這些純硬件來搞定的話,電路一定是一塊大pcb板!但是如果要是用美國70年代成功投放市場的系列單片機(jī),結(jié)果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)的通過你編寫的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性! 2.2 單片機(jī)的應(yīng)用特點(diǎn)隨著集成電路技術(shù)的發(fā)展,單片機(jī)的功能越變越強(qiáng),涉及到各個(gè)電子應(yīng)用領(lǐng)域。目前單片機(jī)的系列也十分多,各有各的特點(diǎn),如目前的mcs51系列、pic系列等等,通過這幾年的應(yīng)用,普通感覺到特別需要單片機(jī)具有如下幾個(gè)應(yīng)用特點(diǎn): (

17、一)低功耗、寬電壓工作范圍,內(nèi)部看門狗。(二)高速指令系統(tǒng),單字節(jié)指令,精簡指令集易學(xué)易用。(三)內(nèi)部rom結(jié)構(gòu),且具有廉價(jià)otp(一次性寫入程式)rom,以便小批量生產(chǎn),減少mask風(fēng)險(xiǎn)。(四)程序保密功能,防止拷貝,保護(hù)成果。(五)方便的開發(fā)工具(仿真器與燒入器)2.3 單片機(jī)的應(yīng)用領(lǐng)域目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能ic卡,民用豪華轎車的安全保障系統(tǒng),錄象機(jī)、攝象機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單

18、片機(jī)。更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。 單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個(gè)范疇:2.4 單片機(jī)的中斷與定時(shí)系統(tǒng)2.4.1 mcs51單片機(jī)中斷系統(tǒng)中斷是一項(xiàng)重要的計(jì)算機(jī)技術(shù),采用中斷技術(shù)可以使多項(xiàng)任務(wù)共享一個(gè)資源,所以中斷技術(shù)實(shí)質(zhì)上就是一種資源共享技術(shù)。中斷源mcs-51是一個(gè)多中斷源的單片機(jī),以80c51為例,有三類共五個(gè)中斷源,分別是外部中斷兩個(gè),定時(shí)中斷兩個(gè)和串行中斷一個(gè)。1. 外中斷外中斷是由外部原因引起的,共有

19、兩個(gè)中斷源,即外部中斷0和外部中斷1。它們的中斷請求信號分別由引腳int0(p3.2)和int1(p3.3)引入。外部中斷請求有兩種信號方式,即電平方式和脈沖方式,可通過有關(guān)控制位進(jìn)行定義。2. 定時(shí)中斷 定時(shí)中斷是為滿足定時(shí)或計(jì)數(shù)的需要而設(shè)置的。3. 串行中斷串行中斷是為串行數(shù)據(jù)傳送的需要而設(shè)置的。中斷控制 這里所說的中斷控制是指提供給用戶使用的中斷控制手段,實(shí)際上就是一些專用寄存器。在mcs-51單片機(jī)中,用于此目的的控制寄存器共有四個(gè),即定時(shí)器控制寄存器、中斷允許控制寄存器、中斷優(yōu)先控制寄存器以及串行口控制寄存器。1. 定時(shí)器控制寄存器(tcon) 該寄存器用于保存外部中斷請求和以及定時(shí)

20、器的計(jì)數(shù)溢出。寄存器地址88h,位地址8fh88h。位地址8f8e8d8c8b8a8988位符號tf1tr1tf0tr0ie1it1ie0it0 這個(gè)寄存器既有定時(shí)器/計(jì)數(shù)器的控制功能又有中斷控制功能,其中與中斷有關(guān)的控制位共六位:ie0和ie1 、it0和it1 以及tf0和tf1 。2. 中斷允許控制寄存器(ie) 寄存器地址a8h,位地址afha8h。位地址afaeadacabaaa9a8位符號eaeset1ex1et0ex0其中與中斷有關(guān)的控制位共六位:ea、ex0和ex1 、et0和et1 、es。3. 中斷優(yōu)先級控制寄存器(ip) mcs-51的中斷優(yōu)先級控制只定義了高、低兩個(gè)優(yōu)先

21、級。各中斷源的優(yōu)先級由優(yōu)先寄存器(ip)進(jìn)行設(shè)定。ip寄存器地址b8h,位地址為bfhb8h。寄存器的內(nèi)容及位地址表示如下:位地址bfbebdbcbbbab9b8位符號pspt1px1pt0px0px0 外部中斷0優(yōu)先級設(shè)定位pt0 定時(shí)中斷0優(yōu)先級設(shè)定位px1 外部中斷1優(yōu)先級設(shè)定位pt1 定時(shí)中斷1優(yōu)先級設(shè)定位ps 串行中斷優(yōu)先級設(shè)定位為0的位優(yōu)先級為低;為1的位優(yōu)先級為高。中斷響應(yīng)中斷響應(yīng)就是對中斷源提出的中斷請求的接受,是在中斷查詢之后進(jìn)行的,當(dāng)查詢到有效的中斷請求時(shí),緊接著就進(jìn)行中斷響應(yīng)。中斷響應(yīng)的主要內(nèi)容是由硬件自動(dòng)生成一條長調(diào)用指令lcall。其格式為lcall addr16,這

22、里的addr16就是程序存儲(chǔ)器中斷區(qū)中相應(yīng)中斷的入口地址。在mcs-51單片機(jī)中,這些入口地址已由系統(tǒng)設(shè)定。例如,對于外部中斷0的響應(yīng),產(chǎn)生的長調(diào)用指令為:lcall 0003h生成lcall指令后,緊接著就由cpu執(zhí)行。首先將程序計(jì)數(shù)器pc的內(nèi)容壓入堆棧以保護(hù)斷點(diǎn),再將中斷入口地址裝入pc,使程序執(zhí)行轉(zhuǎn)向相應(yīng)的中斷區(qū)入口地址。但由于各中斷區(qū)只有8個(gè)單元。一般情況下難以安排下一個(gè)完整的中斷服務(wù)程序。因此通??偸窃诟髦袛鄥^(qū)入口地址處放置一條無條件轉(zhuǎn)移指令,使程序執(zhí)行轉(zhuǎn)向在其它地址存放的中斷服務(wù)程序。中斷返回中斷響應(yīng)后就轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,完成所需要的操作。中斷服務(wù)程序的最后一條指令必須是中斷返

23、回指令reti,cpu執(zhí)行這條指令時(shí),把響應(yīng)中斷時(shí)置位的優(yōu)先級觸發(fā)器復(fù)位,再從堆棧中彈出斷點(diǎn)地址送入程序計(jì)數(shù)器pc,以便從斷點(diǎn)處重新執(zhí)行被中斷的主程序。2.4.2 mcs-51 單片機(jī)的定時(shí)器/計(jì)數(shù)器mcs-51單片機(jī)共有兩個(gè)可編程的定時(shí)器/計(jì)數(shù)器,分別稱定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1。它們都是十六位加法計(jì)數(shù)結(jié)構(gòu),分別由th0(地址8ch)和tl0(地址8ah)及th1(地址8dh)和tl1(地址8bh)兩個(gè)8位計(jì)數(shù)器組成。這四個(gè)計(jì)數(shù)器均屬專用寄存器之列。mcs-51的每個(gè)定時(shí)器/計(jì)數(shù)器都具有定時(shí)和計(jì)數(shù)兩種功能。1. 計(jì)數(shù)功能所謂計(jì)數(shù)是指對外部事件進(jìn)行計(jì)數(shù)。外部事件的發(fā)生以輸入脈沖表示,因

24、此計(jì)數(shù)功能的實(shí)質(zhì)就是對外來脈沖進(jìn)行計(jì)數(shù)。2. 定時(shí)功能 定時(shí)功能也是通過計(jì)數(shù)器的計(jì)數(shù)來實(shí)現(xiàn)的。不過此時(shí)的計(jì)數(shù)脈沖來自單片機(jī)的內(nèi)部,即每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖。也就是每個(gè)機(jī)器周期計(jì)數(shù)器加1。由于一個(gè)機(jī)器周期等于12個(gè)振蕩脈沖周期,因此計(jì)數(shù)頻率為振蕩頻率的1/12。定時(shí)器/計(jì)數(shù)器提供給用戶使用的有:八位計(jì)數(shù)器th和tl,以及有關(guān)的控制位。這些內(nèi)容只能以軟件方法使用。2.4.3mcs-51定時(shí)器/計(jì)數(shù)器的四種工作方式1. 定時(shí)工作方式0 方式0是13位計(jì)數(shù)結(jié)構(gòu)的工作方式,其計(jì)數(shù)器由th0全部8位和tl0的低5位構(gòu)成。當(dāng)tl0的低5位計(jì)數(shù)溢出時(shí),向th0進(jìn)位,而全部13位計(jì)數(shù)溢出時(shí),則向計(jì)數(shù)溢出標(biāo)

25、志位tf0進(jìn)位。 在方式0下,當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是: 18192(213)當(dāng)為定時(shí)工作方式時(shí),定時(shí)時(shí)間的計(jì)算公式為: (213計(jì)數(shù)初值)晶振周期12 或 (213計(jì)數(shù)初值)機(jī)器周期其時(shí)間單位與晶振周期或機(jī)器周期相同(ms)。2. 定時(shí)工作方式1 方式1是16位計(jì)數(shù)結(jié)構(gòu)的工作方式,計(jì)數(shù)器由th0全部8位和tl0全部8位構(gòu)成。 當(dāng)為計(jì)數(shù)工作方式時(shí),計(jì)數(shù)值的范圍是: 165536(216)當(dāng)為定時(shí)工作方式時(shí),定時(shí)時(shí)間計(jì)算公式為: (216計(jì)數(shù)初值)晶振周期12 或 (216計(jì)數(shù)初值)機(jī)器周期3. 定時(shí)工作方式 工作方式2是自動(dòng)重新加載工作方式。在這種工作方式下,把16位計(jì)數(shù)器分為兩部分

26、,即以tl作計(jì)數(shù)器,以th作預(yù)置寄存器,初始化時(shí)把計(jì)數(shù)初值分別裝入tl和th中。當(dāng)計(jì)數(shù)溢出后,不是像前兩種工作方式那樣通過軟件方法,而是由預(yù)置寄存器th以硬件方法自動(dòng)給計(jì)數(shù)器tl重新加載。變軟件加載為硬件加載。 初始化時(shí),8位計(jì)數(shù)初值同時(shí)裝入tl0和th0中。當(dāng)tl0計(jì)數(shù)溢出時(shí),置位tf0,同時(shí)把保存在預(yù)置寄存器th0中的計(jì)數(shù)初值自動(dòng)加載tl0,然后tl0重新計(jì)數(shù)。如此重復(fù)不止。這不但省去了用戶程序中的重裝指令,而且也有利于提高定時(shí)精度。但這種工作方式下是8位計(jì)數(shù)結(jié)構(gòu),計(jì)數(shù)值有限,最大只能到255。 這種自動(dòng)重新加載工作方式非常適用于循環(huán)定時(shí)或循環(huán)計(jì)數(shù)應(yīng)用,例如用于產(chǎn)生固定脈寬的脈沖,此外還可

27、以作串行數(shù)據(jù)通信的波特率發(fā)送器使用。第3章 數(shù)字鐘原理圖元件清單及設(shè)計(jì)方案3.1 時(shí)鐘電路原理圖圖3-1 時(shí)鐘電路原理圖 圖3-1所示為時(shí)鐘電路原理圖,在at89c52芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳xtal1,輸出端為引腳xtal2。而在芯片內(nèi)部,xtal1和xtal2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過觸發(fā)器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘脈沖信號。3.2 單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。對51系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路

28、。下面給出一個(gè)51單片機(jī)的最小系統(tǒng)電路圖。如圖3-2 圖3-2 最小系統(tǒng)電路圖 復(fù)位電路:由電容串聯(lián)電阻構(gòu)成,由圖并結(jié)合電容電壓不能突變的性質(zhì)可以知道,當(dāng)系統(tǒng)一上電,rst腳將會(huì)出現(xiàn)高電平,并且,這個(gè)高電平持續(xù)的時(shí)間由電路的rc值來決定。典型的51單片機(jī)當(dāng)rst腳的高電平持續(xù)兩個(gè)機(jī)器周上就將復(fù)位,所以,適當(dāng)組合rc的取值就可以保證可靠的復(fù)位。一般教科書推薦c 取10u,r取8.2k。當(dāng)然也有其他取法的,原則就是要讓rc組合可以在rst腳上產(chǎn)生不少于2個(gè)機(jī)周期的高電平。至于如何具體定量計(jì)算,可以參考電路分析相關(guān)書籍。晶振電路:典型的晶振取11.0592mhz(因?yàn)榭梢詼?zhǔn)確地得到9600波特率和1

29、9200波特率,用于有串口通訊的場合)/12mhz(產(chǎn)生精確的us級時(shí)歇,方便定時(shí)操作) 特別注意:對于31腳(ea/vpp),當(dāng)接高電平時(shí),單片機(jī)在復(fù)位后從內(nèi)部rom的0000h開始執(zhí)行;當(dāng)接低電平時(shí),復(fù)位后直接從外部rom的0000h開始執(zhí)行.這一點(diǎn)是初學(xué)者容易忽略的。3.3 顯示器工作原理系統(tǒng)采用動(dòng)態(tài)顯示方式,用p0口來控制led數(shù)碼管的段控線,而用p2口來控制其位控線。動(dòng)態(tài)顯示通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,即循環(huán)點(diǎn)亮每一個(gè)數(shù)碼管,這樣雖然在任何時(shí)刻都只有一位數(shù)碼管被點(diǎn)亮,但由于人眼存在視覺殘留效應(yīng),只要每位數(shù)碼管間隔時(shí)間足夠短,就可以給人以同時(shí)顯示的感覺。3.4 元件清單數(shù)字鐘元

30、件清單如表1所示: 表1 電子鐘元器件清單元件名稱規(guī)格型號數(shù)量(個(gè))單片機(jī)at89c511晶振11.0592mhz1電容30pf2電容22f1按鍵button4排阻respack-8/10k1鎖存器74ls2452液晶顯示7seg-mpx6-cc13.5設(shè)計(jì)方案與實(shí)現(xiàn)本課題采用軟件程序設(shè)計(jì)的方案,利用mcs51內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷定時(shí),led數(shù)碼顯示器和按鍵,配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。運(yùn)用串行通信方式且計(jì)時(shí)不占用cpu時(shí)間,能夠充分利用好cpu。二、 軟件流程及儲(chǔ)器地址分配:本電子鐘的軟件流程可分為以下幾個(gè)功能模塊 主程序: 初始化與按鍵監(jiān)控. 計(jì)時(shí)子程序: 為定時(shí)器1中斷服務(wù)子

31、程序,完成刷新計(jì)時(shí)緩沖區(qū)的功能 時(shí)間設(shè)置: 由按鍵輸入設(shè)置當(dāng)前時(shí)間. 顯示: 完成6位動(dòng)態(tài)顯示.按鍵掃描: 判斷是否有鍵按下,并取鍵號.(6)其它輔助子程序,如按鍵設(shè)置、顯示、延時(shí)等三、 完成功能: 時(shí)間顯示: 上電后,系統(tǒng)自動(dòng)進(jìn)入時(shí)鐘顯示,從00:00:00開始計(jì)時(shí),此時(shí)可以設(shè)定當(dāng)前時(shí)間. 時(shí)間調(diào)整: 按下k1鍵,系統(tǒng)停止計(jì)時(shí),進(jìn)入設(shè)定狀態(tài),系統(tǒng)保持原有顯示,等待鍵入當(dāng)前時(shí)間,按下k2,k3鍵可以順序設(shè)置時(shí)、分,并在相應(yīng)數(shù)碼管上顯示設(shè)置值,直至6位設(shè)置完畢.放開k4開始計(jì)時(shí)顯示.3.6 74ls245介紹3.6.1174ls245引腳圖3.6.2 74ls245說明74ls245是我們常用的

32、芯片,用來驅(qū)動(dòng)led或者其他的設(shè)備,用法很簡單如上圖,這里簡單的給出一些資料,他是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。*74ls245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù)。*當(dāng)8051單片機(jī)的p0口總線負(fù)載達(dá)到或超過p0最大負(fù)載能力時(shí),必須接入74ls245等總線驅(qū)動(dòng)器。*當(dāng)片選端/ce低電平有效時(shí),dir=“0”,信號由 b 向 a 傳輸;(接收)*dir=“1”,信號由 a 向 b 傳輸;(發(fā)送)當(dāng)/ce為高電平時(shí),a、b均為高阻態(tài)。3.7 at89c51介紹3.7.1at89c51引腳功能介紹3 引腳結(jié)構(gòu)(圖2-1)與并行i/o口 1、主電源引腳(2根)(1) vcc:

33、電源輸入,接+5v電源(2)gnd:接地線2、外接晶振引腳(2根)(1) xtal1:片內(nèi)晶振電路的輸入端(2)xtal2:片內(nèi)晶振電路的輸出端3、控制引腳(4根)(1) rst/vpp:復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。(2)ale/prog:地址所存允許信號。(3)psen:外部存儲(chǔ)器讀選通訊信號。(4)ea/vpp:程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令。5.管腳說明: vcc:供電電壓。 gnd:接地。 p0口:p0口為一個(gè)8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為

34、高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。 p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并

35、因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口

36、,如下表所示:p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(記時(shí)器0外部輸入)p3.5 t1(記時(shí)器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通)p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。 /psen:外部程序存儲(chǔ)器的選通信號。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號將不出現(xiàn)。/ea/vpp:當(dāng)/

37、ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。振蕩器特性: xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,xtal2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號要通過一個(gè)二分頻觸發(fā)器,因此對外部時(shí)鐘信號的脈寬無任何要求

38、,但必須保證脈沖的高低電平要求的寬度。3.7.2 存儲(chǔ)器的結(jié)構(gòu)at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(fperomfalsh programmable and erasable read only memory)的低電壓,高性能cmos8位微處理器,俗稱單片機(jī)。at89c2051是一種帶2k字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用atmel高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel的at89c51是一種高效微控制器,at8

39、9c2051是它的一種精簡版本。at89c單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。at89c51有pdip,plcc,tqfp三種封裝方式,其中最常見的就是采用40pin封裝的雙列直接pdip封裝。 芯片共有40個(gè)引腳,引腳的排列順序?yàn)閺目啃酒娜笨冢ㄒ娚蠄D)左邊那列逆時(shí)針數(shù)起,依次為1,2,3,4。40,其中芯片的1腳頂上有一個(gè)凹點(diǎn)(見上圖)。在單片機(jī)的40 個(gè)引腳中,電源引腳2根,外接晶體振蕩器引腳2根,控制引腳4根以及4組8為可編程i/o引腳32根。數(shù)據(jù)存儲(chǔ)器:at89c51有256 字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器。高128 字節(jié)與特殊功能寄存器重疊。也就是說高128字節(jié)與特殊功能

40、寄存器有相同的地址,而物理上是分開的。當(dāng)一條指令訪問高于7fh 的地址時(shí),尋址方式?jīng)Q定cpu 訪問高128 字節(jié)ram 還是特殊功能寄存器空間。直接尋址方式訪問特殊功能寄存器(sfr)。 3.8 本章小結(jié)本章主要介紹了電子鐘的原理圖以及單片機(jī)的最小系統(tǒng),通過時(shí)鐘電路原理圖介紹單片機(jī)的時(shí)鐘脈沖信號及其相關(guān)內(nèi)容。列元件清單的主要目的是為了更好地理論聯(lián)系實(shí)際,達(dá)到心中有數(shù)。第4章 電路的硬件設(shè)計(jì)4.1 數(shù)字鐘硬件框圖數(shù)字鐘系統(tǒng)構(gòu)成1、數(shù)字鐘的構(gòu)成:振蕩器、分頻器、計(jì)數(shù)器、譯碼器、顯示器等幾部分2、數(shù)字鐘的時(shí)、分、秒實(shí)際上就是由一個(gè)24進(jìn)制計(jì)數(shù)器(00-23),兩個(gè)60進(jìn)制計(jì)數(shù)器(00-59)級聯(lián)構(gòu)成

41、。設(shè)計(jì)數(shù)字鐘實(shí)際上就是計(jì)數(shù)器的級聯(lián)。圖4-13、60進(jìn)制計(jì)數(shù)器的設(shè)計(jì)4、24進(jìn)制計(jì)數(shù)器的設(shè)計(jì)5、計(jì)數(shù)器的級聯(lián)設(shè)計(jì)(二)、數(shù)字鐘設(shè)計(jì)要點(diǎn):ewb軟件本身提供任意頻率的時(shí)鐘,因此振蕩器、分頻器不需設(shè)計(jì); 另外ewb軟件也帶有內(nèi)置譯碼驅(qū)動(dòng)的數(shù)碼管,故此譯碼器和顯示器也不需設(shè)計(jì)。 這樣,數(shù)字鐘的設(shè)計(jì)實(shí)際上就是設(shè)計(jì)如下圖的計(jì)數(shù)器ewb軟件本身提供任意頻率的時(shí)鐘,因此振蕩器、分頻器不需設(shè)計(jì); 另外ewb軟件也帶有內(nèi)置譯碼驅(qū)動(dòng)的數(shù)碼管,故此譯碼器和顯示器也不需設(shè)計(jì)。 這樣,數(shù)字鐘的設(shè)計(jì)實(shí)際上就是設(shè)計(jì)如下圖的計(jì)數(shù)器.(三)、芯片選型 由于24進(jìn)制、60進(jìn)制計(jì)數(shù)器均由集成計(jì)數(shù)器級聯(lián)構(gòu)成,且都包含有基本的十進(jìn)制計(jì)

42、數(shù)器,從設(shè)計(jì)簡便考慮,芯片選擇同步十進(jìn)制計(jì)數(shù)器74ls160。(四)、計(jì)數(shù)器電路 計(jì)數(shù)器級聯(lián)時(shí)的時(shí)鐘構(gòu)成方式可以采用同步時(shí)鐘,也可以采用異步時(shí)鐘,這里給出的參考圖采用了異步時(shí)鐘,詳圖見后頁。4.2 程序整體設(shè)計(jì)定時(shí)模塊,顯示模塊,數(shù)據(jù)調(diào)整模塊,狀態(tài)調(diào)整模塊。 (1)總體介紹:此部分主要介紹定時(shí)模塊,和顯示模塊。定時(shí)部分采用經(jīng)典的定時(shí)器定時(shí)。它實(shí)現(xiàn)了數(shù)字鐘的主要部分,和秒表的主要部分,以及產(chǎn)生報(bào)時(shí)信號,定時(shí)設(shè)置。顯示模塊是實(shí)現(xiàn)數(shù)字鐘的又一重要部分,其模塊的的獨(dú)立程度直接影響到數(shù)字鐘的可視化程度。在此部分的設(shè)計(jì)中,設(shè)置專用顯示數(shù)據(jù)緩沖區(qū)40h-45h,與分,時(shí)及其他數(shù)據(jù)緩沖區(qū)數(shù)據(jù)區(qū)別,在其中存放的

43、是顯示段碼,而其他緩沖區(qū)存放的是時(shí)間數(shù)據(jù)。在顯示時(shí),首先將時(shí)間十進(jìn)制數(shù)據(jù)轉(zhuǎn)化為顯示段碼,然后送往數(shù)碼管顯示。顯示段碼采用動(dòng)態(tài)掃描的方式。在要求改變顯示數(shù)據(jù)的類別時(shí),只須改變r(jià)0(指向數(shù)據(jù)緩沖區(qū)的指針)指向的十進(jìn)制數(shù)據(jù)緩沖區(qū)即可。(2)數(shù)據(jù)調(diào)整:數(shù)據(jù)調(diào)整有多種方式。一,可以直接進(jìn)入相關(guān)狀態(tài)進(jìn)行有關(guān)操作,二,將調(diào)整分兩步,先進(jìn)入狀態(tài),然后執(zhí)行操作,這兩步分別由兩個(gè)鍵控制。方式一,比較直接,設(shè)計(jì)思想也比較簡單,但是,這種方式存在操作時(shí)間和控制鍵數(shù)目的矛盾。如果用比較少的鍵,那么可能會(huì)在進(jìn)入狀態(tài)后處于數(shù)據(jù)調(diào)整等待狀態(tài),這樣會(huì)影響到顯示的掃描速度(顯示部分可以采用8279芯片來控制,可以解決此問題)。

44、當(dāng)然在這種方式下,還可以使用多個(gè)狀態(tài)鍵,每個(gè)狀態(tài)鍵,完成一個(gè)對應(yīng)數(shù)據(jù)的調(diào)整。如果采用二的方式,就不會(huì)出現(xiàn)這種情況。因?yàn)闋顟B(tài)的調(diào)整,與狀態(tài)的操作可以分別由兩個(gè)鍵控制,其狀態(tài)的調(diào)整數(shù)可以多達(dá)256個(gè)(理論上),操作的完成是這樣的,一鍵控制狀態(tài)的調(diào)整,一鍵控制數(shù)據(jù)的調(diào)整(具體操作如圖2)。以上兩種方式的實(shí)現(xiàn)都可以采用查詢和中斷的方式。兩種方式必須注意的問題是兩者進(jìn)行相關(guān)操作的過程不能太長否則會(huì)影響顯示的掃描。利用查詢的方式,方法傳統(tǒng),對此就不作過多的討論,以下是采用中斷的方式實(shí)現(xiàn)的數(shù)字鐘的一些討論和有關(guān)問題作的一些處理?;谝陨系挠懻摽梢栽O(shè)計(jì)如下:將調(diào)整分為狀態(tài)調(diào)整和數(shù)據(jù)調(diào)整兩部分,每次進(jìn)入中斷只執(zhí)

45、行一次操作,然后返回,這樣,就不必讓中斷處于調(diào)整等待狀態(tài),這樣,可以使中斷的耗時(shí)很小。將定時(shí)器中斷的優(yōu)先級設(shè)置為最高級,那么中斷的方式和查詢的方式一樣不會(huì)影響到時(shí)鐘的記數(shù)。在狀態(tài)進(jìn)入后,調(diào)整指針的指向如右圖所示:在右圖中r1表示指向數(shù)據(jù)緩沖區(qū)的指針,它主要是為數(shù)據(jù)的調(diào)整而設(shè)立的,在圖中:mbf ,hour,fs,ss,分別表示時(shí)鐘的分,時(shí),定時(shí)設(shè)置分,時(shí),的數(shù)據(jù)緩沖區(qū)。狀態(tài)5是秒表進(jìn)入狀態(tài),狀態(tài)6是時(shí)鐘正常顯示狀態(tài)。 在程序中r1為專用指針,它的值只在狀態(tài)調(diào)整時(shí)改變,每次運(yùn)行圖示模塊,只改變一次狀態(tài),就跳出程序。調(diào)整數(shù)據(jù)只須改變r(jià)1中的數(shù)據(jù)即可。 (3)中斷方式應(yīng)注意的問題:采用中斷的方式,最

46、好將定時(shí)器中斷的優(yōu)先級設(shè)置為最高級,關(guān)于程序數(shù)據(jù)的穩(wěn)定性應(yīng)注意兩個(gè)問題:一,在低優(yōu)先級中斷響應(yīng)時(shí),應(yīng)在入棧保護(hù)數(shù)據(jù)時(shí)禁止高優(yōu)先級的中斷響應(yīng)。二,在入棧保護(hù)有關(guān)數(shù)據(jù)后,對中斷程序執(zhí)行有影響的狀態(tài)位,寄存器,必須恢復(fù)為復(fù)位狀態(tài)的值。例如,在以下程序中,由于用到了十進(jìn)制調(diào)整,所以在中斷進(jìn)入時(shí),將psw中的ac,cy位清零,否則,十進(jìn)制調(diào)整出錯(cuò)。 (4)定時(shí)準(zhǔn)確性的討論:程序中定時(shí)器,一直處于運(yùn)行狀態(tài),也就是說定時(shí)器是理想運(yùn)作的,其中斷程序每隔0.1秒執(zhí)行一次,在理想狀態(tài)下,定時(shí)器定時(shí)是沒有系統(tǒng)誤差的,但由于定時(shí)器中斷溢出后,定時(shí)器從0開始計(jì)數(shù),直到被重新置數(shù),才開始正確定時(shí),這樣中斷溢出到中斷響應(yīng)到

47、定時(shí)器被重新置數(shù),其間消耗的時(shí)間就造成了定時(shí)器定時(shí)的誤差。如果在前述定時(shí)器不關(guān)的情況下,在中斷程序的一開始就給定時(shí)器置數(shù),此時(shí)誤差最小,誤差大約為:每0.1秒,誤差712個(gè)機(jī)器周期。當(dāng)然這是在定時(shí)器定時(shí)剛好為0.1秒時(shí)的情況,由以上分析,如果數(shù)字鐘設(shè)計(jì)為查詢的方式或是在中斷的方式下將定時(shí)器中斷設(shè)置為最高級,我們在定時(shí)值設(shè)置時(shí),可以適當(dāng)?shù)目鄢?個(gè)機(jī)器周期的時(shí)間值。但如果在中斷的情況下,沒有將定時(shí)器中斷設(shè)置為最高級,那就要視中斷程序的大小,在定時(shí)值設(shè)置時(shí),扣除相應(yīng)的時(shí)間值。(5)軟件消抖:消抖可以采用硬件(施密特觸發(fā)器)的方式,也可以采用軟件的方式。在此只討論軟件方式。軟件消抖有定時(shí)器定時(shí),和利用

48、延時(shí)子程序兩種方式。一,定時(shí)器定時(shí)消抖可以不影響顯示模塊掃描速度,其實(shí)現(xiàn)方法是:設(shè)置標(biāo)志位,在定時(shí)器中斷中將其置位,然后在程序中查詢。將其中斷優(yōu)先級設(shè)置為低于時(shí)鐘定時(shí)中斷,那么它就可以完全不影響時(shí)鐘定時(shí)。二,在采用延時(shí)子程序時(shí),如果顯示模塊的掃描速度本來就不是很快,此時(shí)可能會(huì)影響到顯示的效果,一般情況下,每秒的掃描次數(shù)不應(yīng)小于50次,否則,數(shù)碼的顯示會(huì)出現(xiàn)閃爍的情況。因此,延時(shí)子程序的延時(shí)時(shí)間應(yīng)該小于20毫秒,如果采用定時(shí)器定時(shí)的方式,延時(shí)時(shí)間不影響時(shí)鐘。如果,設(shè)計(jì)時(shí)采用的是中斷的方式來完成有關(guān)操作,同樣可以采用軟件的方式來消抖,其處理思想是:中斷不能連續(xù)執(zhí)行,兩次之間有一定的時(shí)間間隔。4.3

49、數(shù)字鐘的操作按鍵key0狀態(tài)1: key0=k-0,調(diào)整數(shù)字鐘的秒數(shù)據(jù),每按一次加1秒。狀態(tài)2: key0=k-1, 調(diào)整數(shù)字鐘的分?jǐn)?shù)據(jù),每按一次加1分。狀態(tài)3: key0=k-2,調(diào)整數(shù)字鐘的時(shí)數(shù)據(jù),每按一次加1時(shí)。狀態(tài)4: key0=k-3,設(shè)置按鍵,按一次時(shí)間為停止?fàn)顟B(tài),時(shí)間設(shè)好后再按一次時(shí)間即按設(shè)好的時(shí)間開始。說明:狀態(tài)n表示key0鍵按下n次。在進(jìn)行調(diào)整或設(shè)置狀態(tài)時(shí),顯示對應(yīng)狀態(tài)的數(shù)據(jù)并且對應(yīng)的各調(diào)整位數(shù)碼管的dp點(diǎn)亮。這樣可以使調(diào)整更加可視化。4.4 本章小結(jié) 本文從整體到部分詳細(xì)介紹了數(shù)字鐘的設(shè)計(jì),在比較重要的部分進(jìn)行了詳細(xì)的論述,并且給出了程序框圖及說明。文中在討論部分隱含的給

50、出了幾種數(shù)字鐘的設(shè)計(jì)方法,在最后給出了一種采用中斷方式設(shè)計(jì)的數(shù)字鐘,此方法得到了實(shí)驗(yàn)的證明。其可靠性和穩(wěn)定性都達(dá)到了很好的效果。在文中最后給出的設(shè)計(jì)的基礎(chǔ)上很容易擴(kuò)展寫入年月日,其方法基本與時(shí)間的顯示和調(diào)整相類似。第5章 數(shù)字鐘的工作原理介紹5.1 實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)的基本方法利用mcs-52系列單片機(jī)的可編程定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)來實(shí)現(xiàn)時(shí)鐘計(jì)數(shù)。(1) 計(jì)數(shù)初值計(jì)算:把定時(shí)器設(shè)為工作方式1,定時(shí)時(shí)間為50ms,則計(jì)數(shù)溢出20次即得時(shí)鐘計(jì)時(shí)最小單位秒,而100次計(jì)數(shù)可用軟件方法實(shí)現(xiàn)。假設(shè)使用t/c0,方式1,50ms定時(shí),fosc=12mhz。則初值x滿足(216-x)1/12mhz12s =500

51、00sx=1553600111100101100003cb0h(2) 采用中斷方式進(jìn)行溢出次數(shù)累計(jì),計(jì)滿20次為秒計(jì)時(shí)(1秒);(3) 從秒到分和從分到時(shí)的計(jì)時(shí)是通過累加和數(shù)值比較實(shí)現(xiàn)。5.2 數(shù)字鐘的時(shí)間顯示電子鐘的時(shí)鐘時(shí)間在六位數(shù)碼管上進(jìn)行顯示,因此,在內(nèi)部ram中設(shè)置顯示緩沖區(qū)共8個(gè)單元。led8 led7 led6 led5 led4 led3 led2 led137h 36h 35h 34h 33h 32h 31h 30h時(shí)十位 時(shí)個(gè)位 分隔 分十位 分個(gè)位 分隔 秒十位 秒個(gè)位5.3 計(jì)時(shí)利用at89s52單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。該方案

52、節(jié)省硬件成本,且能使讀者在定時(shí)/計(jì)數(shù)器的使用、中斷及程序設(shè)計(jì)方面得到鍛煉與提高,對單片機(jī)的指令系統(tǒng)能有更深入的了解,從而對學(xué)好單片機(jī)技術(shù)這門課程起到一定的作用。5.4 鍵盤/顯示at89s52的p0口和p2口外接由八個(gè)led數(shù)碼管(led8led1)構(gòu)成的顯示器,用p0口作led的段碼輸出口,p2口作八個(gè)led數(shù)碼管的位控輸出線,p1口外接四個(gè)按鍵a、b構(gòu)成鍵盤電路。 at89c51 是一種低功耗,高性能的cmos 8位微型計(jì)算機(jī)。它帶有8k flash 可編程和擦除的只讀存儲(chǔ)器(eprom),該器件采用atmel的高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)上標(biāo)準(zhǔn)的80c51和80c52的指令系統(tǒng)及

53、引腳兼容,片內(nèi)flash 集成在一個(gè)芯片上,可用與解決復(fù)雜的問題,且成本較低。簡易數(shù)字鐘的功能不復(fù)雜,采用其現(xiàn)有的i/o便可完成,所以本書中采用此的設(shè)計(jì)方案。5.5 本章小結(jié)要進(jìn)行基于單片機(jī)的電子鐘設(shè)計(jì),首先要對單片機(jī)的定時(shí)器/計(jì)數(shù)器有全面的理解和掌握。把理論基礎(chǔ)和實(shí)踐結(jié)合起來,才能真正的做到融會(huì)貫通。第6章軟件設(shè)計(jì)與源程序代碼6.1軟件選擇與介紹6.1.1軟件介紹proteus6.9的isis是一款labcenter出品的電路分析實(shí)物仿真系統(tǒng),可仿真各種電路和ic,并支持單片機(jī),元件庫齊全,使用方便,是不可多得的專業(yè)的單片機(jī)軟件仿真系統(tǒng)。 單片機(jī)仿真軟件proteus功能和使用場合 proteus軟件是來自英國labcenter electronics公司的eda工具軟件,proteus軟件有十多年的歷史,在全球廣泛使用,除了其具有和其它eda工具一樣的原理布圖、pcb自動(dòng)或人工布線及電路仿真的功能外,其革命性的功能是,他的電路仿真是互動(dòng)的,針對微處理器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編程,并實(shí)現(xiàn)軟件源碼級的實(shí)時(shí)調(diào)試,如有顯示及輸出,還能看到運(yùn)行后輸入輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,您不需要?jiǎng)e的,proteus為您建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境!尤其重要的是proteus lite可以完全免費(fèi),也可以花微

溫馨提示

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

評論

0/150

提交評論