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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  設(shè)計(jì)任務(wù)書</b></p><p><b>  設(shè)計(jì)題目:</b></p><p><b>  電子日歷</b></p><p><b>  設(shè)計(jì)要求:</b></p><p>  1.主芯片用單片機(jī)、走時(shí)用時(shí)鐘芯片實(shí)現(xiàn);&l

2、t;/p><p>  2.顯示年、月、日和時(shí)間;</p><p>  3.用按鍵實(shí)現(xiàn)省電和正常顯示之間切換;</p><p><b>  設(shè)計(jì)進(jìn)度要求</b></p><p>  第一周:自選設(shè)計(jì)題目,查資料,收集信息;</p><p>  第二周:寫出初步設(shè)計(jì)方案;</p><p

3、>  第三周:各部分硬件框圖的設(shè)計(jì);</p><p>  第四周:軟件部分的設(shè)計(jì);</p><p>  第五周:接試驗(yàn)箱實(shí)驗(yàn),并進(jìn)行調(diào)試;</p><p>  第六周:寫設(shè)計(jì)論文;</p><p>  第七周:指導(dǎo)老師對(duì)設(shè)計(jì)報(bào)告進(jìn)行檢查、修改,并定稿設(shè)計(jì)論文。</p><p>  指導(dǎo)教師(簽名):

4、 </p><p><b>  摘 要</b></p><p>  本次設(shè)計(jì)的題目是電子日歷,可以正常的顯示年、月、日、時(shí)、分、秒。電子日歷具有性能穩(wěn)定、精確度高、成本低、易于產(chǎn)品化,以及方便、實(shí)用等特點(diǎn)。適用于家庭、公司、機(jī)關(guān)等眾多場(chǎng)所。為人們的日常生活、出行安排提供了方便,成為人們?nèi)粘I钪胁豢扇鄙俚囊徊糠帧?lt;/p><p&g

5、t;  本次設(shè)計(jì)可分為兩部分:硬件系統(tǒng)、軟件系統(tǒng)。</p><p>  硬件部分包括:AT89C51單片機(jī)、DS12C887時(shí)鐘芯片、74LS154譯碼器、ULN2003A驅(qū)動(dòng)芯片。</p><p>  利用單片機(jī)將RC復(fù)位電路、動(dòng)態(tài)顯示電路、電源電路、去抖電路等正確的連接在一起,并通過單片機(jī)的編程來實(shí)現(xiàn)本次設(shè)計(jì)任務(wù)中的要求。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī),日

6、歷,位碼,段碼,顯示</p><p><b>  目 錄</b></p><p><b>  摘 要II</b></p><p><b>  目 錄I</b></p><p><b>  1 概 述1</b></p><p

7、>  1.1 單片機(jī)的組成及特點(diǎn)1</p><p>  1.2 單片機(jī)的應(yīng)用2</p><p><b>  2 設(shè)計(jì)方案4</b></p><p>  2.1 設(shè)計(jì)思路4</p><p>  2.2 系統(tǒng)總體框圖4</p><p><b>  3 硬件設(shè)計(jì)6</b

8、></p><p>  3.1 單片機(jī)的選擇6</p><p>  3.2 復(fù)位電路9</p><p>  3.3 晶振電路10</p><p>  3.4 時(shí)鐘芯片DS12C887介紹11</p><p>  3.5 74LS154芯片介紹及ULN2003A的簡(jiǎn)介15</p><p

9、><b>  4 軟件設(shè)計(jì)18</b></p><p>  5 單片機(jī)應(yīng)用系統(tǒng)的測(cè)試26</p><p>  5.1 在偉福中的調(diào)試26</p><p>  5.2 在Keil中的調(diào)試并連接實(shí)驗(yàn)箱27</p><p><b>  致 謝31</b></p><

10、p><b>  總 結(jié)32</b></p><p><b>  參考文獻(xiàn)33</b></p><p><b>  1 概 述 </b></p><p>  1.1 單片機(jī)的組成及特點(diǎn) </p><p>  單片機(jī)是微型機(jī)的一個(gè)主要分支,在結(jié)構(gòu)上的最大特點(diǎn)是把CPU

11、、存儲(chǔ)器、定時(shí)器和多種輸入/輸出接口電路集成在一塊超大規(guī)模集成電路芯片上。就其組成和功能而言,一塊單片機(jī)芯片就是一臺(tái)計(jì)算機(jī)。 </p><p>  單片機(jī)通過內(nèi)部總線把計(jì)算機(jī)的各主要部件接為一體,其內(nèi)部總線包括地址總線、數(shù)據(jù)總線和控制總線。其中,地址總線的作用是在進(jìn)行數(shù)據(jù)交換時(shí)提供地址,CPU通過它們將地址輸出到存儲(chǔ)器或I/O接口;/數(shù)據(jù)總線的作用是在CPU與存儲(chǔ)器或I/O接口之間,或存儲(chǔ)器與外設(shè)之間交換數(shù)據(jù);控

12、制總線包括CPU發(fā)出的控制信號(hào)線和外部送入CPU的應(yīng)答信號(hào)線等。單片機(jī)中的CPU、存儲(chǔ)器等部件將在后面章節(jié)陸續(xù)介紹。 </p><p>  由于單片機(jī)的這種結(jié)構(gòu)形式及它所采取的半導(dǎo)體工藝,使其具有很多顯著的特點(diǎn),因而在各個(gè)領(lǐng)域都得到了迅猛的發(fā)展。單片機(jī)主要發(fā)如下特點(diǎn): </p><p> ?。?)有優(yōu)異的性能價(jià)格比。 </p><p>  (2)高、體積小、有很高

13、的可靠性。單片機(jī)把各功能部件集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機(jī)的可靠性與抗干擾能力。另外,其體積小,對(duì)于強(qiáng)磁場(chǎng)環(huán)境易于采取屏蔽措施,適合在惡劣環(huán)境下工作。 </p><p> ?。?)為了滿足工業(yè)控制的要求,一般單片機(jī)的指令系統(tǒng)中均有極豐富的轉(zhuǎn)移指令、I/O口的邏輯操作以及位處理功能。單片機(jī)的邏輯控制功能及運(yùn)行速度均高于同一檔次的微機(jī)。 </p><p

14、> ?。?)低電壓,便于生產(chǎn)便攜式產(chǎn)品。 </p><p> ?。?) 部總線增加了I C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行總線方式,進(jìn)一步縮小了體積,簡(jiǎn)化了結(jié)構(gòu)。 </p><p> ?。?)單片機(jī)的系統(tǒng)擴(kuò)展和系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。 </p><

15、p>  單片機(jī)作為計(jì)算機(jī)發(fā)展的一個(gè)重要領(lǐng)域,應(yīng)用一個(gè)較科學(xué)的分類方法。根據(jù)目前發(fā)展情況,從不同角度單片機(jī)大致可以分為通用型/專用型、總線型/非總線型及工控型/家電型。</p><p>  1. 通用型/專用型 </p><p>  這是按單片機(jī)適用范圍來區(qū)分的。例如,89C51是通用型單片機(jī),它不是為某種專用途設(shè)計(jì)的;專用型單片機(jī)是針對(duì)一類產(chǎn)品甚至某一個(gè)產(chǎn)品設(shè)計(jì)生產(chǎn)的,例如為了滿足電

16、子體溫計(jì)的要求,在片內(nèi)集成ADC接口等功能的溫度測(cè)量控制電路。 </p><p>  2. 總線型/非總線型 </p><p>  這是按單片機(jī)是否提供并行總線來區(qū)分的??偩€型單片機(jī)普遍設(shè)置有并行地址總線。 </p><p>  數(shù)據(jù)總線、控制總線,這些引腳用以擴(kuò)展并行外圍器件都可通過串行口與單片機(jī)連接,另外,許多單片機(jī)已把所需要的外圍器件及外設(shè)接口集成一片內(nèi),因此

17、在許多情況下可以不要并行擴(kuò)展總線,大大減省封裝成本和芯片體積,這類單片機(jī)稱為非總線型單片機(jī)。 </p><p>  3. 控制型/家電型 </p><p>  這是按照單片機(jī)大致應(yīng)用的領(lǐng)域進(jìn)行區(qū)分的。一般而言,工控型尋址范圍大,運(yùn)算。 </p><p>  能力強(qiáng);用于家電的單片機(jī)多為專用型,通常是小封裝、低價(jià)格,外圍器件和外設(shè)接口集成度高。 </p>

18、<p>  顯然,上述分類并不是惟一的和嚴(yán)格的。例如,89C51類單片機(jī)既是通用型又是總線型,還可以作工控用。 </p><p>  1.2 單片機(jī)的應(yīng)用 </p><p>  由于單片機(jī)具有顯著的優(yōu)點(diǎn),它已成為科技領(lǐng)域的有力工具,人類生活的得力助手。它的應(yīng)用遍及各個(gè)領(lǐng)域,主要表現(xiàn)在以下幾個(gè)方面: </p><p>  單片機(jī)在智能儀表中的應(yīng)用 <

19、/p><p>  單片機(jī)廣泛地用于各種儀器儀表,使儀器儀表智能化,并可以提高測(cè)量的自動(dòng)化程度和精度,簡(jiǎn)化儀器儀表的硬件結(jié)構(gòu),提高其性能價(jià)格比。 </p><p>  2.單片機(jī)在機(jī)電一體化中的應(yīng)用 </p><p>  機(jī)電一體化是械工業(yè)發(fā)展的方向。機(jī)電一體化產(chǎn)品是指集成機(jī)械技術(shù)、微電子技術(shù)、計(jì)算機(jī)技術(shù)于一體,具有智能化特征的機(jī)電產(chǎn)品,例如微機(jī)控制的車床、鉆床等。單片機(jī)

20、作為產(chǎn)品中的控制器,能充分發(fā)揮它的體積小、可靠性高、功能強(qiáng)等優(yōu)點(diǎn),可大大提高機(jī)器的自動(dòng)化、智能化程度。 </p><p>  3.單片機(jī)在實(shí)時(shí)控制中的應(yīng)用 </p><p>  單片機(jī)廣泛地用于各種實(shí)時(shí)控制系統(tǒng)中。例如,在工業(yè)測(cè)控、航空航天、尖端武器、機(jī)器人等各種實(shí)時(shí)控制系統(tǒng)中,都可以用單片機(jī)作為控制器。單片機(jī)的實(shí)時(shí)數(shù)據(jù)處理能力和控制功能,可使系統(tǒng)保持在最佳工作狀態(tài),提高系統(tǒng)的工作效率和產(chǎn)

21、品質(zhì)量。 </p><p>  4. 單片機(jī)在分布式多機(jī)系統(tǒng)中的應(yīng)用 </p><p>  在比較復(fù)雜的系統(tǒng)中,常采用分布式多機(jī)系統(tǒng)。多機(jī)系統(tǒng)一般由若干臺(tái)功能各異的單片機(jī)組成,各自完成特定的任務(wù),它們通過串行通信相互聯(lián)系、協(xié)調(diào)工作。單片機(jī)在這種系統(tǒng)中往往作為一個(gè)終端機(jī),安裝在系統(tǒng)的某些節(jié)點(diǎn)上,對(duì)現(xiàn)場(chǎng)信息進(jìn)行實(shí)時(shí)的測(cè)量和控制。單片機(jī)的高可靠性和強(qiáng)抗干擾能力,使它可以置于惡劣環(huán)境的前端工作。

22、</p><p>  5.單片機(jī)在人類生活中的應(yīng)用 </p><p>  自從單片機(jī)誕生以后,它就步入了人類生活,如洗衣機(jī)、電冰箱、電子玩具、收錄機(jī)。 </p><p>  等家用電器配上單片機(jī)后,提高了智能化程度,增加了功能,倍受人們喜愛。單片機(jī)將使人類生活更加方便、舒適、豐富多彩。 </p><p>  綜合所述,從前必須由模擬電路或數(shù)字

23、電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。</p><p>  本設(shè)計(jì)主要以單片機(jī)為主,單片機(jī)已成為計(jì)算機(jī)發(fā)展和應(yīng)用的一個(gè)重要方面。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。</p><p><b>  2 設(shè)計(jì)方案</b></p>

24、<p><b>  2.1 設(shè)計(jì)思路</b></p><p>  設(shè)計(jì)的題目是電子日歷的控制。根據(jù)設(shè)計(jì)要求日歷顯示正常的年、月、日、時(shí)、分、秒。要想實(shí)現(xiàn)上述功能,就必須將硬件系統(tǒng)和軟件系統(tǒng)有機(jī)的結(jié)合在一起,方可實(shí)現(xiàn)我們?cè)O(shè)計(jì)任務(wù)中的各項(xiàng)要求。</p><p>  硬件系統(tǒng)主要有單片機(jī)AT89C51、DS12C887、74LS154 等。</p>

25、<p>  AT89C51 主要功能是存儲(chǔ)程序、根據(jù)程序的內(nèi)容對(duì)各個(gè)端口進(jìn)行判斷并做出相應(yīng)的處理。DS12C887主要的功能是控制年、月、日、時(shí)、分、秒的顯示效果。</p><p>  根據(jù)設(shè)計(jì)要求,電子日歷要顯示年、月、日、時(shí)、分、秒就需要16個(gè)顯示數(shù)碼管,由于數(shù)碼管的數(shù)量較多,必須采用動(dòng)態(tài)顯示掃描的方法。例如07-12-01,首先日分為個(gè)位和十位,個(gè)位顯示到09時(shí),應(yīng)向日的十位自動(dòng)進(jìn)位,即個(gè)位清0

26、,十位置1,顯示為10,繼續(xù)累計(jì);當(dāng)顯示為31時(shí),日的十位就應(yīng)自動(dòng)向月的個(gè)位進(jìn)位,顯示為01,當(dāng)月顯示到09時(shí),月的個(gè)位自動(dòng)向月的十位進(jìn)位,個(gè)位清0,十位置1,即為10,當(dāng)月至12時(shí),月向年的個(gè)位進(jìn)位,即顯示08,同時(shí)月、日開始從01月01日繼續(xù)顯示,依次周而復(fù)始的循環(huán)運(yùn)行。</p><p>  根據(jù)按鍵電路可實(shí)現(xiàn)年、月、日、時(shí)、分、秒的調(diào)整,當(dāng)K1鍵按下時(shí),可以調(diào)整時(shí)間,K2、K3鍵分別對(duì)時(shí)間進(jìn)行加或減,K4鍵

27、可以切換正常模式與省電模式。</p><p>  利用單片機(jī)將RC復(fù)位電路、動(dòng)態(tài)顯示電路、電源電路、去抖電路等正確的連接在一起,并通過單片機(jī)的編程來實(shí)現(xiàn)本次設(shè)計(jì)任務(wù)中的要求。</p><p>  2.2 系統(tǒng)總體框圖</p><p>  設(shè)計(jì)電路采用ATMEL的AT89C51芯片來做CPU,用AT89C51的內(nèi)部EPROM作為程序存儲(chǔ)器。顯示部分位碼的擴(kuò)展采用74L

28、S154,七段數(shù)碼管的驅(qū)動(dòng)采用ULN2003A控制部分采用普通獨(dú)立按鍵。</p><p>  在確定系統(tǒng)的大體形式之后,畫出系統(tǒng)的總框圖如圖2.1所示。</p><p>  圖2.1 系統(tǒng)總框圖</p><p>  系統(tǒng)總體框圖包括:?jiǎn)纹瑱C(jī)、控制電路、復(fù)位電路、顯示電路、電源部分。</p><p>  單片機(jī)AT89C51芯片的主要功能是:存

29、儲(chǔ)程序,對(duì)存儲(chǔ)程序進(jìn)行相應(yīng)的處理從I/O口輸出。</p><p>  復(fù)位電路:在單片機(jī)上有一個(gè)復(fù)位引腳RST,在單片機(jī)外部用電容和電阻控制RST。</p><p>  控制電路:是用一個(gè)按鍵控制日歷的省電和正常顯示。</p><p>  顯示電路:主要用于顯示日歷的結(jié)果。</p><p>  電源電路:采用+5V的直流電源供電。</p

30、><p><b>  3 硬件設(shè)計(jì)</b></p><p>  硬件電路主要包括:時(shí)鐘芯片、單片機(jī)、顯示電路、譯碼器以及電源等幾部分。</p><p>  時(shí)鐘芯片選擇:選用DS12C887實(shí)時(shí)芯片。</p><p>  單片機(jī)的選擇:選用AT89C8051單片機(jī),配備11.0592MHz晶振。P1.0—P1.4作數(shù)碼管的位

31、選口,P0.0—P0.6作數(shù)碼管的段選口。</p><p>  顯示電路的選擇:采用軟件譯碼器動(dòng)態(tài)顯示,共陰極LED數(shù)碼管。</p><p>  復(fù)位電路的選擇:RC復(fù)位電路。</p><p>  譯碼器的選擇:采用4線—16線譯碼器74LS154。</p><p>  電源電路的選擇:采用直流+5V電源供電。</p><

32、p>  3.1 單片機(jī)的選擇</p><p>  單片機(jī)實(shí)質(zhì)上是一個(gè)芯片,在實(shí)際應(yīng)用中,必須外加各種擴(kuò)展接口電路、外部設(shè)備等相關(guān)硬件和軟件,才能構(gòu)成一個(gè)單片機(jī)系統(tǒng)。盡管各類單片機(jī)很多,但無論是從世界范圍或是從全國(guó)范圍來看,使用最為廣泛的應(yīng)屬M(fèi)CS-51單片機(jī)。</p><p>  單片微型計(jì)算機(jī)市指集成在一個(gè)芯片上的微型計(jì)算機(jī),也就是把組成微型計(jì)算機(jī)的各種功能部件,包括CPU、隨機(jī)存

33、儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、基本輸入/輸出接口電路、定時(shí)器/計(jì)數(shù)器等部件都制作在一塊集成芯片上,構(gòu)成一個(gè)完整的微型計(jì)算機(jī),從而實(shí)現(xiàn)微型計(jì)算機(jī)的基本功能。</p><p>  89C51單片機(jī)是在一塊芯片中集成了CPU、存儲(chǔ)器、定時(shí)器/計(jì)數(shù)器和多種功能的I/O現(xiàn)等一臺(tái)計(jì)算機(jī)所需的基本功能部件。主要包括1個(gè)8位CPU、1個(gè)片內(nèi)振蕩器及時(shí)鐘電路、128B RAM、4KB ROM、2個(gè)16位定時(shí)器計(jì)數(shù)器、32條可編程的

34、I/O線和一個(gè)可編程的全雙工串行接口、5個(gè)中斷源、2個(gè)中斷優(yōu)先級(jí)套中斷結(jié)構(gòu)。其內(nèi)部結(jié)構(gòu)示意圖如圖3.1:</p><p>  圖3.1 單片機(jī)內(nèi)部結(jié)構(gòu)示意圖</p><p>  1、中央處理器 CPU是單片機(jī)的內(nèi)部核心部件,是一個(gè)8位二進(jìn)制數(shù)的中央處理單元,主要由運(yùn)算器,控制器和寄存器陣列構(gòu)成。</p><p>  2、控制器 控制器是單片機(jī)內(nèi)部各部件按一定時(shí)序

35、協(xié)調(diào)工作的控制核心,是分析和執(zhí)行指令的部件。控制器主要由程序計(jì)數(shù)器、指令寄存器、指令譯碼器、振蕩和定時(shí)控制邏輯電路等構(gòu)成。</p><p>  3、寄存器陣列 寄存器陣列式單片機(jī)內(nèi)部的臨時(shí)存儲(chǔ)單元或固定用途單元,包括通用寄存器組和專用寄存器組。</p><p>  4、存儲(chǔ)器 程序存儲(chǔ)器是可讀不可寫的,用于存放編號(hào)的程序和表格常數(shù)。</p><p>  5、數(shù)據(jù)

36、存儲(chǔ)器是即可讀也可寫的,用于存放運(yùn)算的中間結(jié)果,進(jìn)行數(shù)據(jù)暫存及數(shù)據(jù)緩沖等。</p><p>  6、定時(shí)器計(jì)數(shù)器 89C51內(nèi)部有2個(gè)16位可編程定時(shí)器計(jì)數(shù)器,簡(jiǎn)稱為定時(shí)器0(T0)和定時(shí)器1(T1),T0和T1在定時(shí)器控制寄存器TCON和定時(shí)器方式選擇寄存器TMOD的控制下,可工作在定時(shí)器模式或計(jì)數(shù)器模式下,每種模式又有不同的工作方式。89C51有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控

37、制程序轉(zhuǎn)向。</p><p>  7、并行輸入輸出(I/O)口 89C51共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。</p><p>  89C51單片機(jī)內(nèi)部總線是單總線結(jié)構(gòu),即數(shù)據(jù)總線和地址總線是公用的。 89C51有40條引腳, 與其他51系列單片機(jī)引腳是兼容的。 這40條引腳可分為I/O接口線、電源線、控制線、外接晶體線4部分。 89C51單片機(jī)為雙列

38、直插式封裝結(jié)構(gòu), 如圖3.2所示。</p><p>  圖3.2 89C51引腳分配圖</p><p>  Pin40:電源腳。工作電壓為+5V</p><p><b>  Pin20:接地端</b></p><p>  P0口:P0口為一個(gè)8位漏極開路的雙向I/O口,每腳可以吸收8TTL門電流。當(dāng)P0口的管腳第一次寫

39、“1”時(shí),被定義為高阻輸入,P0口能夠用于外部數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位,在FLASH編程時(shí),P0口作為原碼輸入口,當(dāng)FLASH進(jìn)行校驗(yàn)時(shí),P0口輸出原碼,此時(shí),P0外部必須被拉高。</p><p>  P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流,P1口管腳寫入1時(shí),被內(nèi)部上拉為高,可用作輸出,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部

40、上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。</p><p>  P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可以接收、輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流,這就是內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“

41、1”時(shí),它利用內(nèi)部上拉的優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收八位地址信號(hào)和控制信號(hào)。</p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可以接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”時(shí),它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平;P3口將輸處電流(ILL),這就是上拉的緣故。</p&

42、gt;<p>  P3口也可以作為AT89C51的一些特殊功能口,如下所示:</p><p>  P3.0: RXD (串行輸入口)</p><p>  P3.1: TXD (串行輸出口)</p><p>  P3.2: (外部中斷0)</p><p>  P3.3: (外部中斷1)</p><p>

43、  P3.4:T0 (定時(shí)/計(jì)數(shù)器0)</p><p>  P3.5: T1 (定時(shí)/計(jì)數(shù)器1)</p><p>  P3.6: (外部數(shù)據(jù)存儲(chǔ)器寫選通線)</p><p>  P3.7: (外部數(shù)據(jù)存儲(chǔ)器讀選通線)</p><p>  P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)</p><p>

44、;  RST復(fù)位輸出:當(dāng)振蕩器復(fù)位時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>  XTAL1:反向振蕩器的輸入及內(nèi)部時(shí)鐘工作電路的輸入;</p><p>  XTAL2:來自反向振蕩器的輸出。</p><p>  振蕩器特性 XTAL1和XTAL2分別為反向放大器的輸入和輸出,該反向放大器可以配置為片內(nèi)振蕩器,石英振蕩器和陶瓷振蕩器均可采用,如果

45、采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不連接,有余的輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈沖沒有任何嚴(yán)格的要求,但必須保證脈沖的高低電平要求的寬度。</p><p><b>  3.2 復(fù)位電路</b></p><p>  單片機(jī)在開機(jī)時(shí)或在工作中因干擾而使程序失控,或工作中程序處于某種死循環(huán)狀態(tài),在這種情況下都需要復(fù)位. 復(fù)位的作用是使中央處

46、理器CPU以及其他功能部件都恢復(fù)到一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)重新開始工作.</p><p>  89S51單片機(jī)的復(fù)位靠外部電路實(shí)現(xiàn),信號(hào)由RESET(RST)引腳輸入,高電平有效,在振蕩器工作時(shí),只要保持RST引腳高電平兩個(gè)機(jī)器周期,單片機(jī)即復(fù)位. 復(fù)位后,PC程序計(jì)數(shù)器的內(nèi)容為0000H,片內(nèi)RAM中內(nèi)容不變. 復(fù)位電路一般有上電復(fù)位、手動(dòng)開關(guān)復(fù)位和自動(dòng)復(fù)位電路3種,如圖3.3所示.</p>

47、<p>  a.上電復(fù)位電路 b. 手動(dòng)復(fù)位電路 c. 自動(dòng)復(fù)位電路</p><p>  圖3.3 單片機(jī)復(fù)位電路</p><p><b>  3.3 晶振電路</b></p><p>  1.晶體振蕩器的作用:石英晶體振蕩器也稱石英晶體諧振器,它用來穩(wěn)定頻率和選擇頻率,是一種可以取代LC諧振回路的晶

48、體諧振元件。 </p><p>  2.本次設(shè)計(jì)所用的晶體振蕩電路如圖3.4所示: </p><p>  圖3.4 晶體振蕩電路</p><p>  此晶振電路所選用的石英晶振頻率為12MHZ。</p><p>  時(shí)鐘周期就是單片機(jī)外接晶振的倒數(shù),例如12M的晶振,它的時(shí)間周期就是1/12us),是計(jì)算機(jī)中最基本的、最小的時(shí)間單位。<

49、/p><p>  在一個(gè)時(shí)鐘周期內(nèi),CPU僅完成一個(gè)最基本的動(dòng)作。對(duì)于某種單片機(jī),若采用了1MHZ的時(shí)鐘頻率,則時(shí)鐘周期為1us;若采用4MHZ的時(shí)鐘頻率,則時(shí)鐘周期為250us。由于時(shí)鐘脈沖是計(jì)算機(jī)的基本工作脈沖,它控制著計(jì)算機(jī)的工作節(jié)奏(使計(jì)算機(jī)的每一步都統(tǒng)一到它的步調(diào)上來)。顯然,對(duì)同一種機(jī)型的計(jì)算機(jī),時(shí)鐘頻率越高,計(jì)算機(jī)的工作速度就越快。但是,由于不同的計(jì)算機(jī)硬件電路和器件的不完全相同,所以其所需要的時(shí)鐘周頻

50、率范圍也不一定相同。我們學(xué)習(xí)的51系列單片機(jī)的時(shí)鐘范圍是1.2MHz-12MHz。</p><p>  3.4 時(shí)鐘芯片DS12C887介紹</p><p>  本次設(shè)計(jì)采用實(shí)時(shí)時(shí)鐘芯片是DS12C887,這種實(shí)時(shí)時(shí)鐘芯片具備年、月、日、時(shí)、分、秒計(jì)時(shí)功能和多點(diǎn)定時(shí)功能,計(jì)時(shí)數(shù)據(jù)的更新每秒自動(dòng)進(jìn)行一次,不需程序干預(yù)。此外,事實(shí)上時(shí)鐘芯片多數(shù)帶有鋰電池做后備電源,具備永不停止的計(jì)時(shí)功能;具有

51、可編程方波輸出功能,可用做實(shí)時(shí)測(cè)控系統(tǒng)的采樣信號(hào)等;有的實(shí)時(shí)時(shí)鐘芯片內(nèi)部還帶有非易失性RAM,可用來存放需長(zhǎng)期保存但有時(shí)也變更的數(shù)據(jù)。LED數(shù)碼管電子時(shí)鐘電路采用24小時(shí)記時(shí)方式,日期和時(shí)間用16位數(shù)碼管顯示,采用AT89C51單片機(jī),5V電池供電,只要使用一個(gè)按鍵開關(guān)即可進(jìn)入省電(顯示LED數(shù)碼管)和正常顯示兩種狀態(tài)。</p><p>  顯示范圍:年份可走99年,如2001—2099;日、月正常顯示,能識(shí)別閏

52、年閏月;時(shí)間采用24小時(shí)制。</p><p>  顯示格式:日期按照年、月、日排列,如2005年12月20日顯示為:05-12-20;時(shí)間按時(shí)、分、秒排列,如12點(diǎn)30分55秒顯示為12-30-55。</p><p>  顯示位數(shù):6位七段LED數(shù)碼管工作正常和節(jié)電顯示。</p><p>  時(shí)鐘誤差:24小時(shí)誤差3-5秒。</p><p>

53、  DS12C887時(shí)鐘芯片采用CMOS技術(shù)制成,該芯片帶有內(nèi)部晶體振蕩器并內(nèi)置有鋰電池,因此斷電后仍可運(yùn)行十年以上不丟失數(shù)據(jù)。時(shí)間、日歷和定鬧具有二進(jìn)制碼和BCD碼兩種形式,并可設(shè)定12小時(shí)或24小時(shí)制式以及Motorola和Intel總線時(shí)序。DS12C887內(nèi)含128字節(jié)RAM,其中有10個(gè)時(shí)鐘寄存器、4個(gè)控制寄存器和114字節(jié)通用RAM,所有RAM單元都具有掉電保護(hù)功能,因此可被用作非易失性RAM。DS12C887內(nèi)部具有定鬧中

54、斷、周期中斷、時(shí)鐘更新周期、結(jié)束中斷等,且三個(gè)中斷源可分別由軟件屏蔽。</p><p>  3.4.1 DS12C887主要功能簡(jiǎn)介</p><p>  (1) 內(nèi)含一個(gè)鋰電池,斷電后運(yùn)行十年以上不丟失數(shù)據(jù)。</p><p>  (2) 計(jì)秒、分、時(shí)、天、星期、日、月、年、并有閏年補(bǔ)償功能。</p><p>  (3) 二進(jìn)制數(shù)碼或BCD碼表

55、示時(shí)間,日歷和定鬧。</p><p>  (4) 12小時(shí)或24小時(shí)制,12小時(shí)時(shí)鐘模式帶有PM和AM指示,有夏令時(shí)功能。</p><p>  (5) Motorola和Intel總線時(shí)序選擇。</p><p>  (6) 有128個(gè)字節(jié)RAM單元與軟件接口,其中14個(gè)字節(jié)作為時(shí)鐘和控制寄存器,114字節(jié)為通用RAM,所有RAM單元數(shù)據(jù)都具有掉電保護(hù)功能。</

56、p><p>  (7) 可編程方波信號(hào)輸出。</p><p>  (8) 中斷信號(hào)輸出(IRQ)和總線兼容、定鬧中斷、周期性中斷、時(shí)鐘更新周期、結(jié)束中斷可分別由軟件屏蔽,也可分別進(jìn)行測(cè)試。</p><p>  3.4.2 DS12C887引腳說明及原理</p><p>  DS12C887管腳圖如圖3.5所示:</p><p&

57、gt;  圖3.5 DS12C887管腳排列圖</p><p>  VCC:直流電源+5V電壓。當(dāng)5V電壓在正常范圍內(nèi)時(shí)數(shù)據(jù)可讀寫;當(dāng)VCC低于4.25V,讀寫被禁止,計(jì)時(shí)功能仍繼續(xù);當(dāng)VCC下降到3V以下時(shí),RAM和計(jì)數(shù)器被切換到內(nèi)部鋰電池。</p><p>  MOT(模式選擇):MOT管腳接到VCC時(shí),選擇MOTORLA時(shí)序;當(dāng)接到GFND時(shí)。選擇INTEL時(shí)序。</p>

58、<p>  SQW(方波信號(hào)同):SQW管腳能從實(shí)時(shí)時(shí)鐘內(nèi)部15級(jí)分頻器的13個(gè)抽頭中選擇一個(gè)作為輸出信號(hào),其輸出頻率可通過對(duì)寄存器A編程改變。</p><p>  AD0~AD7(雙向地址數(shù)據(jù)復(fù)用線):總線接口即MOROROLA微機(jī)系列和INTEL微機(jī)系列接口。</p><p>  AS(地址選通輸入):用于實(shí)現(xiàn)信號(hào)分離,在ADALE的下降沿把地址鎖入DS12C887。&l

59、t;/p><p>  DS(數(shù)據(jù)選通或讀輸入):DSRD客腳有兩種操作模式,取決于MOT管腳放的電平,當(dāng)使用MOTOROLA時(shí)序時(shí),DS時(shí)一正脈沖,出現(xiàn)在總線周期的后段稱為數(shù)據(jù)選通;在讀周期DS指示DS12C887驅(qū)動(dòng)雙向總的時(shí)刻,在寫周期DS的后沿使DS12C887鎖存寫數(shù)據(jù)。選擇INTEL時(shí)序時(shí)DS稱作(RD),RD與典型存儲(chǔ)器的允許信號(hào)(OE)的定義相同。</p><p>  R/W(讀

60、/寫輸入):R/W管腳也有兩種操作模式。選MOTOROLA時(shí)序時(shí),R/W是一電平信號(hào),指示當(dāng)前周期是讀或?qū)懼芷冢籇SO為高電平時(shí),R/W高電平指示讀周期,R/W低電平指示寫周期;選INTEL時(shí)序,R/W信號(hào)是一低電平信號(hào),稱為WR。在此模式下,R/W管腳與通用RAM的寫允許信號(hào)(WE)的含義相同。</p><p>  CS(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號(hào)必須保持為低。</p>

61、<p>  IRQ(中斷申請(qǐng)輸入):低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時(shí),IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上接電阻。</p><p>  RESET(復(fù)位輸出):當(dāng)該腳保持低電平時(shí)間大于200ms,保證DS12C887有效復(fù)位。</p><p>  DS12C887內(nèi)部由振蕩電路、分頻電路、周期中斷/方波選擇電路,14字節(jié)時(shí)鐘和控制單元,114

62、字節(jié)用戶非易失RAM,十進(jìn)制/二進(jìn)制累加器,總線接口電路,電源開關(guān)寫保護(hù)單元和內(nèi)部鋰電池等部分組成。Vcc:直流電源+5V電壓。當(dāng)5V電壓在正常范圍內(nèi)時(shí),數(shù)據(jù)可讀寫,當(dāng)Vcc低于4。25V,讀寫被禁止,計(jì)時(shí)功能仍繼續(xù);當(dāng)Vcc下降到3V以下時(shí),RAM和計(jì)時(shí)器供電被切換到內(nèi)部鋰電池。</p><p>  3.4.3 DS12C887的中寄存器的功能和作用</p><p>  DS12887內(nèi)

63、部RAM和專用寄存器地址功能,地址00H~03H單元取值范圍是00H~3BH(10進(jìn)制0~59);04H~05H單元按12小時(shí)制取值范圍是上午(AM)01H~0CH(1~12),下午(PM)81H~8CH(81~92)按24小時(shí)制取值范圍使00H~17H(1~23);06H單元取值范圍使00H~07H(0~7);07H單元取值范圍01H~1FH(1~31);08H單元取值范圍是01H~0CH(1~12);09H單元取值范圍是00H~63

64、H(0~99)。DS12C887的RAM和各專用寄存器的訪問如下實(shí)現(xiàn),若片選地址DS=#0DDXXH,則芯片內(nèi)部RAM和寄存器和地址為#0DD00H~#ODD7FH。應(yīng)指出的是,盡管DS12C887的專用時(shí)標(biāo)年寄存器只有一個(gè),但通過軟件編程可利用其內(nèi)部的不掉電的RAM區(qū)的一個(gè)字節(jié)實(shí)現(xiàn)年度的高兩位顯示。</p><p><b>  寄存器A</b></p><p>  

65、寄存器A各位不受復(fù)位的影響,UIP位為只讀位,其它各位可讀寫,寄存器的控制字的格式。</p><p>  A、UIP位:更新周期標(biāo)志位。該位為“1”時(shí),表示芯片正處于或?qū)㈤_始更新周期,此時(shí)程序不準(zhǔn)讀寫師表寄存器;該位為“0”時(shí),表示至少在244us后開始更新周期,此時(shí)程序可讀芯片內(nèi)時(shí)標(biāo)寄存器。該位是只讀位。</p><p>  B、DV0、DV1、DV2:芯片內(nèi)部震蕩器RTC控制位。當(dāng)芯片

66、接觸復(fù)位狀態(tài),并將010寫入DV0、DV1、DV2后,另一個(gè)更新周期將在500ms后開始。因此,在程序初始化時(shí)可用這三各精確地使芯片在設(shè)定的時(shí)間開始工作。這與MC146818不同的使DS12C887固定使用32768Hz的內(nèi)部晶體,所以DV0=“0”、DV1=“1”、DV2=“0”,即可啟動(dòng)RTC。</p><p>  C、RS3、RS2、RS1、RS0:周期中斷可編程方波輸出速率選擇位。各種不同的組合可以產(chǎn)生不

67、同的輸出。程序可以通過設(shè)置寄存器B的SQWF和PIE位控制是否允許周期中斷方波輸出。其寄存器A輸出速率選擇位。</p><p>  3.4.4 DS12C887的中斷和更新周期</p><p>  DSC12C887處于正常工作狀態(tài)時(shí),每秒鐘將產(chǎn)生一個(gè)更新周期,芯片處于更新周期的標(biāo)志是寄存器A中的CPU位為1。在更新周期內(nèi),芯片內(nèi)部時(shí)標(biāo)寄存器數(shù)據(jù)處于更新階段,故在該周期內(nèi),微處理器不能讀芯

68、片時(shí)標(biāo)寄存器中的內(nèi)容,同時(shí)秒時(shí)標(biāo)寄存器內(nèi)容加1,并檢查其他時(shí)標(biāo)寄存器內(nèi)容是否有溢出。如果有溢出則相應(yīng)進(jìn)位日、月、年。另外一個(gè)功能是檢查三個(gè)時(shí)、分、秒報(bào)警時(shí)標(biāo)寄存器的內(nèi)容是否與對(duì)應(yīng)時(shí)標(biāo)寄存器的內(nèi)容相符,如果相符則寄存器C中的AF位置1。如果報(bào)警時(shí)標(biāo)寄存器的內(nèi)容為COH到FFH之間的數(shù)據(jù),則為不關(guān)閉狀態(tài)。</p><p>  為了采樣時(shí)標(biāo)寄存器中的數(shù)據(jù),DS12C887提供了兩種避開更新周期內(nèi)訪問時(shí)標(biāo)寄存器的方案:第

69、一種是利用更新周期結(jié)束發(fā)出的中斷。它可以編程允許在每次更新周期結(jié)束后發(fā)生中斷申請(qǐng),提醒CPU將有998ms左右的時(shí)間去獲取有效的數(shù)據(jù),在中斷之后的998ms時(shí)間內(nèi),程序可先將時(shí)標(biāo)數(shù)據(jù)讀支芯片內(nèi)部的不掉電靜態(tài)RAM中。因?yàn)樾酒瑑?nèi)部的靜態(tài)RAM和狀態(tài)寄存器是可隨時(shí)讀寫的,在離開中斷服務(wù)子程序前應(yīng)清除寄存器C中的IRQF位。另一種是:利用寄存器A中的UIP位來指示芯片是否處于更新周期。在UIP位從低變高244us后,芯片將進(jìn)行更新周期,所以檢

70、測(cè)到UIP位為低電平時(shí),則利用224us的間隔時(shí)間去讀取時(shí)標(biāo)信息。如檢測(cè)到UIP位為1,則可暫緩讀數(shù)據(jù),等到UIP變成低電平再去讀數(shù)據(jù)。</p><p>  3.4.5 DS12C887初始化方法</p><p>  DS12C887采用連續(xù)工作制,一般無須每次都初始化,即使是系統(tǒng)復(fù)位時(shí)也如此。但初始化時(shí),首先應(yīng)禁止芯片內(nèi)部的更新周期操作,所以先將DS12C887狀態(tài)寄存器B中的SET位置

71、1,然后初始化00H~09H時(shí)標(biāo)參數(shù)寄存器和狀態(tài)寄存器A,此后再通過讀狀態(tài)寄存器C、清除寄存器C中的周期中斷標(biāo)志位PE、報(bào)警中斷標(biāo)志位AF、更新周期結(jié)束中斷標(biāo)志位UF。通過讀寄存器D中的VRT位,讀狀態(tài)寄存器后VRT位將自動(dòng)置1,最后將狀態(tài)寄存器B中的SET位置0,芯片開始計(jì)時(shí)工作。</p><p>  3.5 74LS154芯片介紹及ULN2003A的簡(jiǎn)介</p><p>  本設(shè)計(jì)要用

72、到16個(gè)七段數(shù)碼管,單片機(jī)的P0端口只有8根線,根本不夠用,所以用74LS154來擴(kuò)展,74LS154使4——16譯碼器,只用單片機(jī)的四根線就可以接16個(gè)數(shù)碼管的位碼端,因?yàn)?4LS154使一個(gè)4入16出的譯碼器,在本設(shè)計(jì)中共有16個(gè)顯示數(shù)碼管,所以一個(gè)74LS154譯碼器的輸出端剛好夠用。LED數(shù)碼管采用共陰極。</p><p>  在設(shè)計(jì)中74LS154的輸入端有單片機(jī)的P1.0~P1.3口提供段碼控制信號(hào),

73、輸出端接數(shù)碼管的段碼管腳(既圖中的0管腳)。</p><p>  74LS154管腳圖如圖3.6所示,74LS154真值表如表3.7所示:</p><p>  圖3.6 74LS154管腳</p><p>  表3.7 74LS154真值表</p><p>  ULN2003A有美國(guó)Texas Instruments公司、美國(guó)Sprague

74、公司生產(chǎn),由7組達(dá)林頓晶體管陣列和相應(yīng)的電阻網(wǎng)絡(luò)以及鉗位二極管網(wǎng)絡(luò)構(gòu)成,具有同時(shí)驅(qū)動(dòng)7組負(fù)載的能力,為單片雙機(jī)型大功率高速集成電路。</p><p>  ULN2003A是一個(gè)驅(qū)動(dòng)器,它的輸入端接單片機(jī)的P0.0~P0.7口,輸出接數(shù)碼管的位碼端上,由于此設(shè)計(jì)中用到的數(shù)碼管數(shù)量多,而單片機(jī)的輸出不能一下驅(qū)動(dòng),所以通過ULN2003A進(jìn)行驅(qū)動(dòng)。</p><p>  ULN2003A管腳如圖3

75、.8所示:</p><p>  圖3.8 ULN2003A管腳圖</p><p><b>  4 軟件設(shè)計(jì)</b></p><p>  軟件設(shè)計(jì)分為:動(dòng)態(tài)掃描、主程序、系統(tǒng)資源分配和軟件模塊幾部分,在此設(shè)計(jì)中采用定時(shí)器來完成動(dòng)態(tài)掃描顯示。用定時(shí)器T0定20ms的時(shí)間間隔,每次定時(shí)時(shí)間到時(shí)就輸出一個(gè)LED信號(hào),即顯示一位。主程序初始化后,就開始進(jìn)

76、行對(duì)DS12C887的讀時(shí)間;讀完后送顯示緩沖區(qū),同時(shí)并對(duì)定時(shí)時(shí)間進(jìn)行判斷比較。DS12C887的地址由114字節(jié)的用戶RAM存放。10字節(jié)的存放實(shí)時(shí)時(shí)鐘時(shí)間\日歷和定鬧RAM及用于控制和狀態(tài)的4字節(jié)特殊寄存器組成,幾乎所有的128個(gè)字節(jié)直接讀寫。</p><p>  設(shè)計(jì)程序有:主程序、讀取時(shí)間的子程序和顯示刷新程序。</p><p>  主程序框圖如圖4.1所示:</p>

77、<p>  圖4.1 主程序框圖</p><p><b>  主程序如下所示:</b></p><p><b>  ORG 000H</b></p><p>  LJMP START</p><p><b>  ORG 0030H</b></p>&l

78、t;p>  START: MOV 30H,#0</p><p><b>  SETB P1.1</b></p><p>  SECOND EQU 2000H</p><p>  MINUNTE EQU 2001H ;時(shí)鐘芯片寄存器</p><p>  HOUR EQU

79、2004H </p><p>  WEEK EQU 2006H ;它們代表秒、分鐘、時(shí)、日期</p><p>  DATE EQU 2007H ;年、月</p><p>  MONTH EQU 2008H</p><p>  YEAR EQU 200

80、9H ;可以改變實(shí)際連線,地址也相應(yīng)改變</p><p>  TREGA EQU 200AH ;四個(gè)控制寄存器</p><p>  TREGB EQU 200BH </p><p>  TREGC EQU 200CH</p><p>  TREGD EQU 200DH&

81、lt;/p><p>  TUPDATE EQU 80H ;如果TREGA.7=1,時(shí)鐘芯片更新</p><p>  TBHALT EQU 10000010B ;24/12=1,采用24小時(shí)計(jì)時(shí)制</p><p>  將TBHALT寫入TREGB,停止計(jì)時(shí)</p><p>  TBSALT

82、 EQU 0000000B ;將TBSTART寫入TREGB繼續(xù)計(jì)時(shí)</p><p>  F32K EQU 20H </p><p>  MOV A,#TBHALT ;SET=1,PIE,AIE,UIE,SQWE=0,DM=0</p><p>  MOVX @DPTR,A

83、 ;24/12=1,24HOURS,DSE=0</p><p>  MOV @DPTR,#TREGD</p><p>  MOV A,#32H ;設(shè)置控制寄存器,開晶振。</p><p>  MOV @DPTR,A</p><p>  MOV DPTR,BHALT<

84、;/p><p>  MOV A, @DPTR</p><p>  MOV @DPTR,A</p><p>  MOV A,@DPTR</p><p>  MOV A,#TBHALT ;開始計(jì)時(shí)</p><p>  MOVX @DPTR,A</p><p>

85、;  SS1:LCALL TIMEREC</p><p>  JNB P1.4 ,SS1</p><p>  LCALL DSPLAY</p><p><b>  LJMP SS1</b></p><p>  讀取時(shí)間子程序框圖如圖4.2所示:</p><p>  圖4.2 讀取時(shí)間的子程序

86、框圖</p><p>  讀取時(shí)間程序如下所示:</p><p>  TIMEREC:PUSH ACC</p><p>  MOV ACC,IE</p><p><b>  CLR ETO</b></p><p>  MOVRO,DPL ;將指針存入RO、

87、R1</p><p><b>  MOVR1,DPH</b></p><p>  MOV DPTR ,#TREGA ;如果DS12C887正在更新則等待</p><p>  TIMEWALT:MOVX A,@A+DPTR</p><p>  JB ACC.7,TIMEWALT

88、 ;否則,讀取秒數(shù)、分鐘等數(shù)值</p><p>  MOV DPTR,#SECOND</p><p>  MOVX A,@A+DPTR</p><p>  MOV R6 ,A</p><p>  MOV DPL ,R3 </p><p>  MOV DPH ,R1</p><p&

89、gt;  MOVX A,@DPTR ;取出原來的秒數(shù)</p><p>  SUB A, R6 ;如果時(shí)間未改變則退出</p><p>  JNZ GETTIME</p><p><b>  RET</b></p><p>  GETTIME: IN

90、C RO</p><p>  INC RO ;指向:所指單元</p><p>  MOV A, @EO</p><p>  CPL A ;將“:”取反,每秒變化一次</p><p>  MOV @EO , A

91、 ;以控制亮和滅,形成閃爍效果</p><p>  MOV A, R6 ;恢復(fù)時(shí)間值</p><p>  MOVX @DPTR ,A</p><p><b>  INC DPTR</b></p><p>  MOV R3,DPL</p><p>

92、;  MOV R1,DPH</p><p>  MOV DPTR ,#MINUTE ;讀取并存儲(chǔ)分鐘</p><p>  MOVX A,@DPTR</p><p>  MOV DPL ,R3</p><p>  MOV DPH,R1</p><p>  MOVX A, @DPTR,A

93、</p><p><b>  INC DPTR</b></p><p>  MOV R3,DPL</p><p>  MOV R1,DPH</p><p>  MOV DPTR,#HOUR ;讀取并存儲(chǔ)小時(shí)</p><p>  MOVX A, @DPTR&l

94、t;/p><p>  MOV DPL,R3</p><p><b>  MOVDPH,R1</b></p><p>  MOVX @DPTR,A</p><p><b>  INC DPTR</b></p><p>  MOV R3,#DPL</p><

95、;p>  MOV R1,#DPH</p><p>  MOV DPTR ,#DATA ;讀取并存儲(chǔ)日期</p><p>  MOVX A,@DPTR</p><p>  MOV DPL ,R3</p><p>  MOV DPH ,R1</p><p>  MOVX @DPT

96、R ,A</p><p><b>  INC DPTR</b></p><p>  MOV R3 ,#TONTH ;讀取并存儲(chǔ)月份</p><p>  MOVX A, @DPTR </p><p>  MOV DPL ,R3</p><p>  MOV

97、 DPH ,R1</p><p>  MOVX @DPTR ,A</p><p><b>  INC DPTR</b></p><p>  MOV R3,DPL</p><p>  MOV R1,DPH</p><p>  INC DPTR,#HOUR

98、 ;讀取并存儲(chǔ)年號(hào)</p><p>  MOVC A,@DPTR</p><p>  MOV DPL ,R3</p><p>  MOV DPH ,RR1</p><p>  MOVX @DPTR ,A ;寄存器恢復(fù)保護(hù)</p><p><b>  POP

99、ACC</b></p><p>  MOV IE,ACC</p><p><b>  POP ACC</b></p><p><b>  RET </b></p><p>  顯示刷新子程序框圖如圖4.3所示:</p><p>  圖4.3 顯示刷新子程序框圖

100、</p><p>  顯示刷新子程序如下所示:</p><p>  MOV 40H ,R3</p><p>  PUSH ACC</p><p>  DISPLAY: MOV A, RO</p><p>  MOV R6 ,A ;顯示指針首址保護(hù),存入R6</p

101、><p>  INC DPTR ;先將指針指向分鐘單元</p><p>  MOVX A,@DPTR</p><p>  MOV R3,A ;保護(hù)寄存器A數(shù)據(jù)</p><p>  ANL A, #OFOH</p><p>  SWAP

102、 A ;得到小時(shí)的十位</p><p>  MOV @R0 ,A</p><p>  INC R0 ;顯示指針加一</p><p>  MOV A, R3</p><p>  ANL A, #OFOH ;得到小時(shí)的個(gè)位<

103、;/p><p>  MOV @R0,A ;存入顯示緩沖區(qū)</p><p>  INC R0 ;跳過分號(hào)的顯示單元</p><p><b>  INC R0 </b></p><p>  DEC DPTR</p><p&

104、gt;  MOVX A, @DPTR</p><p>  SWAP A ;得到分鐘的十位</p><p>  MOV @R0,A</p><p>  INC R0 ;顯示指針加一</p><p><b>  MOV A,R3</b&

105、gt;</p><p>  ANL A, #OFOH ;得到分的個(gè)位</p><p>  MOV @R0 ,A ;存入顯示緩沖區(qū)</p><p>  MOVX @DPTR,A ;A\C 口均為輸出,方式0</p><p>  MOV R4,#1F

106、H ;位選字</p><p>  MOV A,R4 ;送位選字中間變量</p><p>  MOVX @DPTR,A ;從位選字入(采用共陰接法全滅)</p><p>  DEC DPTR ;指向PA口</p><

107、;p>  DEC DPTR </p><p>  MOV A,@R0 ;查段碼</p><p>  ADD A,#0DH</p><p>  MOVC A,@A+PC</p><p>  MOVX @DPTR,A ;段選碼送PB口</p><

108、p>  ACALL DLL ;延時(shí)一毫秒</p><p>  INC R0 ;指向顯示緩沖區(qū)下一單元</p><p>  MOV A, R4</p><p>  JNB ACC .0,LD1 ;判斷16位顯示完</p><p>

109、  RR A ;未顯示完,變?yōu)橄乱晃晃贿x字</p><p>  MOV A,R4</p><p>  AJMP LDO ;轉(zhuǎn)顯示下一位</p><p><b>  POP ACC</b></p><p><b>  LD1

110、:RET</b></p><p>  DSGE: DB 3FG,06H,5BH,4FH,66H,6DH,7D,07H,7FH,67H,77H,7CH,</p><p>  “ 0”“1”“2”“3”“4”“5”“6”“7”“8”“9”“A”“B”</p><p>  39H,5EH,79H,71H;</p><p>  “C”“

111、D”“E”“F”</p><p>  DL1: MOV R7,#02H ;延時(shí)子程序</p><p>  DL: MOV R6,#OFFH</p><p><b>  NOP</b></p><p>  DL6: DJNZ R6,DL6</p><p>  DJ

112、NZ R7,DL</p><p><b>  RET</b></p><p>  5 單片機(jī)應(yīng)用系統(tǒng)的測(cè)試</p><p>  5.1 在偉福中的調(diào)試</p><p>  通過偉福仿真軟件和Keil軟件來驗(yàn)證程序。首先打開偉福仿真軟件的界面,對(duì)仿真器的參數(shù)值進(jìn)行設(shè)置。其設(shè)置如圖5.1所示:</p>&l

113、t;p>  圖5.1 仿真器的選擇</p><p>  我所選的是8751的仿真器,在目標(biāo)生成文件中選擇生成BIN和HEX文件(即二進(jìn)制和十六進(jìn)制文件)其設(shè)置如圖5.2所示,設(shè)置完成后點(diǎn)“好”就可以了。</p><p>  圖5.2 生成文件的設(shè)置</p><p>  然后在偉福里面輸入我們的程序進(jìn)行調(diào)試,剛開始有好幾處錯(cuò)誤,我們的程序沒有通過編譯,然后我就查

114、找錯(cuò)誤的所在,一一更改之后終于通過編譯,其運(yùn)行結(jié)果如圖5.3所示:</p><p>  圖5.3 編譯通過后的界面</p><p>  5.2 在Keil中的調(diào)試并連接實(shí)驗(yàn)箱</p><p><b>  1、打開項(xiàng)目</b></p><p>  在偉福內(nèi)調(diào)試通過以后,再在Keil中下載到實(shí)驗(yàn)箱上進(jìn)行驗(yàn)證,顯現(xiàn)出所要求的效

115、果。而在Keil中也要進(jìn)行一些參數(shù)的設(shè)置,首先打開Keil仿真軟件,首先要新建一個(gè)項(xiàng)目,點(diǎn)菜單Project→New Project,在彈出的對(duì)話框中選擇保存的路徑并輸入項(xiàng)目名稱“wang”后保存,然后在彈出新的項(xiàng)目窗口中選擇參數(shù),其參數(shù)的設(shè)置如下,由于我們使用的是Atmel公司的芯片,所以要選Atmel后,點(diǎn)擊確定。 </p><p><b>  2、設(shè)置芯片</b></p>

116、<p>  在彈出的對(duì)話框中選擇AT89C51這個(gè)芯片,點(diǎn)擊確定。如圖5.4所示:</p><p><b>  圖5.4 芯片選擇</b></p><p><b>  3、設(shè)置參數(shù)值</b></p><p>  所設(shè)置的參數(shù)值如圖5.5所示:</p><p><b>  圖5.

117、5 參數(shù)設(shè)置</b></p><p><b>  4、設(shè)置頻率</b></p><p>  在Xtal中輸入頻率為11.0592MHz,然后再選Debug這個(gè)標(biāo)簽,選中第二個(gè)Use復(fù)選框后點(diǎn)擊Setting在彈出的對(duì)話框中選擇Baudrate這一項(xiàng),設(shè)置它的參數(shù)為38400。如圖5.6所示:</p><p><b>  圖

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論