版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
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í)現(xiàn);&l
2、t;/p><p> 2.顯示年、月、日和時間;</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)老師對設(shè)計(jì)報(bào)告進(jìn)行檢查、修改,并定稿設(shè)計(jì)論文。</p><p> 指導(dǎo)教師(簽名):
4、 </p><p><b> 摘 要</b></p><p> 本次設(shè)計(jì)的題目是電子日歷,可以正常的顯示年、月、日、時、分、秒。電子日歷具有性能穩(wěn)定、精確度高、成本低、易于產(chǎn)品化,以及方便、實(shí)用等特點(diǎn)。適用于家庭、公司、機(jī)關(guān)等眾多場所。為人們的日常生活、出行安排提供了方便,成為人們?nèi)粘I钪胁豢扇鄙俚囊徊糠帧?lt;/p><p&g
5、t; 本次設(shè)計(jì)可分為兩部分:硬件系統(tǒng)、軟件系統(tǒng)。</p><p> 硬件部分包括:AT89C51單片機(jī)、DS12C887時鐘芯片、74LS154譯碼器、ULN2003A驅(qū)動芯片。</p><p> 利用單片機(jī)將RC復(fù)位電路、動態(tài)顯示電路、電源電路、去抖電路等正確的連接在一起,并通過單片機(jī)的編程來實(shí)現(xiàn)本次設(shè)計(jì)任務(wù)中的要求。</p><p> 關(guān)鍵詞:單片機(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 時鐘芯片DS12C887介紹11</p><p> 3.5 74LS154芯片介紹及ULN2003A的簡介15</p><p
9、><b> 4 軟件設(shè)計(jì)18</b></p><p> 5 單片機(jī)應(yīng)用系統(tǒng)的測試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ī)的一個主要分支,在結(jié)構(gòu)上的最大特點(diǎn)是把CPU
11、、存儲器、定時器和多種輸入/輸出接口電路集成在一塊超大規(guī)模集成電路芯片上。就其組成和功能而言,一塊單片機(jī)芯片就是一臺計(jì)算機(jī)。 </p><p> 單片機(jī)通過內(nèi)部總線把計(jì)算機(jī)的各主要部件接為一體,其內(nèi)部總線包括地址總線、數(shù)據(jù)總線和控制總線。其中,地址總線的作用是在進(jìn)行數(shù)據(jù)交換時提供地址,CPU通過它們將地址輸出到存儲器或I/O接口;/數(shù)據(jù)總線的作用是在CPU與存儲器或I/O接口之間,或存儲器與外設(shè)之間交換數(shù)據(jù);控
12、制總線包括CPU發(fā)出的控制信號線和外部送入CPU的應(yīng)答信號線等。單片機(jī)中的CPU、存儲器等部件將在后面章節(jié)陸續(xù)介紹。 </p><p> 由于單片機(jī)的這種結(jié)構(gòu)形式及它所采取的半導(dǎo)體工藝,使其具有很多顯著的特點(diǎn),因而在各個領(lǐng)域都得到了迅猛的發(fā)展。單片機(jī)主要發(fā)如下特點(diǎn): </p><p> ?。?)有優(yōu)異的性能價格比。 </p><p> (2)高、體積小、有很高
13、的可靠性。單片機(jī)把各功能部件集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機(jī)的可靠性與抗干擾能力。另外,其體積小,對于強(qiá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é)構(gòu)。 </p><p> (6)單片機(jī)的系統(tǒng)擴(kuò)展和系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。 </p><
15、p> 單片機(jī)作為計(jì)算機(jī)發(fā)展的一個重要領(lǐng)域,應(yīng)用一個較科學(xué)的分類方法。根據(jù)目前發(fā)展情況,從不同角度單片機(jī)大致可以分為通用型/專用型、總線型/非總線型及工控型/家電型。</p><p> 1. 通用型/專用型 </p><p> 這是按單片機(jī)適用范圍來區(qū)分的。例如,89C51是通用型單片機(jī),它不是為某種專用途設(shè)計(jì)的;專用型單片機(jī)是針對一類產(chǎn)品甚至某一個產(chǎn)品設(shè)計(jì)生產(chǎn)的,例如為了滿足電
16、子體溫計(jì)的要求,在片內(nèi)集成ADC接口等功能的溫度測量控制電路。 </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ī)多為專用型,通常是小封裝、低價格,外圍器件和外設(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)用遍及各個領(lǐng)域,主要表現(xiàn)在以下幾個方面: </p><p> 單片機(jī)在智能儀表中的應(yīng)用 <
19、/p><p> 單片機(jī)廣泛地用于各種儀器儀表,使儀器儀表智能化,并可以提高測量的自動化程度和精度,簡化儀器儀表的硬件結(jié)構(gòu),提高其性能價格比。 </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ī)器的自動化、智能化程度。 </p><p> 3.單片機(jī)在實(shí)時控制中的應(yīng)用 </p><p> 單片機(jī)廣泛地用于各種實(shí)時控制系統(tǒng)中。例如,在工業(yè)測控、航空航天、尖端武器、機(jī)器人等各種實(shí)時控制系統(tǒng)中,都可以用單片機(jī)作為控制器。單片機(jī)的實(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)一般由若干臺功能各異的單片機(jī)組成,各自完成特定的任務(wù),它們通過串行通信相互聯(lián)系、協(xié)調(diào)工作。單片機(jī)在這種系統(tǒng)中往往作為一個終端機(jī),安裝在系統(tǒng)的某些節(jié)點(diǎn)上,對現(xiàn)場信息進(jìn)行實(shí)時的測量和控制。單片機(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)用的一個重要方面。單片機(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í)現(xiàn)上述功能,就必須將硬件系統(tǒng)和軟件系統(tǒng)有機(jī)的結(jié)合在一起,方可實(shí)現(xiàn)我們設(shè)計(jì)任務(wù)中的各項(xiàng)要求。</p><p> 硬件系統(tǒng)主要有單片機(jī)AT89C51、DS12C887、74LS154 等。</p>
25、<p> AT89C51 主要功能是存儲程序、根據(jù)程序的內(nèi)容對各個端口進(jìn)行判斷并做出相應(yīng)的處理。DS12C887主要的功能是控制年、月、日、時、分、秒的顯示效果。</p><p> 根據(jù)設(shè)計(jì)要求,電子日歷要顯示年、月、日、時、分、秒就需要16個顯示數(shù)碼管,由于數(shù)碼管的數(shù)量較多,必須采用動態(tài)顯示掃描的方法。例如07-12-01,首先日分為個位和十位,個位顯示到09時,應(yīng)向日的十位自動進(jìn)位,即個位清0
26、,十位置1,顯示為10,繼續(xù)累計(jì);當(dāng)顯示為31時,日的十位就應(yīng)自動向月的個位進(jìn)位,顯示為01,當(dāng)月顯示到09時,月的個位自動向月的十位進(jìn)位,個位清0,十位置1,即為10,當(dāng)月至12時,月向年的個位進(jìn)位,即顯示08,同時月、日開始從01月01日繼續(xù)顯示,依次周而復(fù)始的循環(huán)運(yùn)行。</p><p> 根據(jù)按鍵電路可實(shí)現(xiàn)年、月、日、時、分、秒的調(diào)整,當(dāng)K1鍵按下時,可以調(diào)整時間,K2、K3鍵分別對時間進(jìn)行加或減,K4鍵
27、可以切換正常模式與省電模式。</p><p> 利用單片機(jī)將RC復(fù)位電路、動態(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作為程序存儲器。顯示部分位碼的擴(kuò)展采用74L
28、S154,七段數(shù)碼管的驅(qū)動采用ULN2003A控制部分采用普通獨(dú)立按鍵。</p><p> 在確定系統(tǒng)的大體形式之后,畫出系統(tǒng)的總框圖如圖2.1所示。</p><p> 圖2.1 系統(tǒng)總框圖</p><p> 系統(tǒng)總體框圖包括:單片機(jī)、控制電路、復(fù)位電路、顯示電路、電源部分。</p><p> 單片機(jī)AT89C51芯片的主要功能是:存
29、儲程序,對存儲程序進(jìn)行相應(yīng)的處理從I/O口輸出。</p><p> 復(fù)位電路:在單片機(jī)上有一個復(fù)位引腳RST,在單片機(jī)外部用電容和電阻控制RST。</p><p> 控制電路:是用一個按鍵控制日歷的省電和正常顯示。</p><p> 顯示電路:主要用于顯示日歷的結(jié)果。</p><p> 電源電路:采用+5V的直流電源供電。</p
30、><p><b> 3 硬件設(shè)計(jì)</b></p><p> 硬件電路主要包括:時鐘芯片、單片機(jī)、顯示電路、譯碼器以及電源等幾部分。</p><p> 時鐘芯片選擇:選用DS12C887實(shí)時芯片。</p><p> 單片機(jī)的選擇:選用AT89C8051單片機(jī),配備11.0592MHz晶振。P1.0—P1.4作數(shù)碼管的位
31、選口,P0.0—P0.6作數(shù)碼管的段選口。</p><p> 顯示電路的選擇:采用軟件譯碼器動態(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ì)上是一個芯片,在實(shí)際應(yīng)用中,必須外加各種擴(kuò)展接口電路、外部設(shè)備等相關(guān)硬件和軟件,才能構(gòu)成一個單片機(jī)系統(tǒng)。盡管各類單片機(jī)很多,但無論是從世界范圍或是從全國范圍來看,使用最為廣泛的應(yīng)屬M(fèi)CS-51單片機(jī)。</p><p> 單片微型計(jì)算機(jī)市指集成在一個芯片上的微型計(jì)算機(jī),也就是把組成微型計(jì)算機(jī)的各種功能部件,包括CPU、隨機(jī)存
33、儲器RAM、只讀存儲器ROM、基本輸入/輸出接口電路、定時器/計(jì)數(shù)器等部件都制作在一塊集成芯片上,構(gòu)成一個完整的微型計(jì)算機(jī),從而實(shí)現(xiàn)微型計(jì)算機(jī)的基本功能。</p><p> 89C51單片機(jī)是在一塊芯片中集成了CPU、存儲器、定時器/計(jì)數(shù)器和多種功能的I/O現(xiàn)等一臺計(jì)算機(jī)所需的基本功能部件。主要包括1個8位CPU、1個片內(nèi)振蕩器及時鐘電路、128B RAM、4KB ROM、2個16位定時器計(jì)數(shù)器、32條可編程的
34、I/O線和一個可編程的全雙工串行接口、5個中斷源、2個中斷優(yōu)先級套中斷結(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)部核心部件,是一個8位二進(jìn)制數(shù)的中央處理單元,主要由運(yùn)算器,控制器和寄存器陣列構(gòu)成。</p><p> 2、控制器 控制器是單片機(jī)內(nèi)部各部件按一定時序
35、協(xié)調(diào)工作的控制核心,是分析和執(zhí)行指令的部件。控制器主要由程序計(jì)數(shù)器、指令寄存器、指令譯碼器、振蕩和定時控制邏輯電路等構(gòu)成。</p><p> 3、寄存器陣列 寄存器陣列式單片機(jī)內(nèi)部的臨時存儲單元或固定用途單元,包括通用寄存器組和專用寄存器組。</p><p> 4、存儲器 程序存儲器是可讀不可寫的,用于存放編號的程序和表格常數(shù)。</p><p> 5、數(shù)據(jù)
36、存儲器是即可讀也可寫的,用于存放運(yùn)算的中間結(jié)果,進(jìn)行數(shù)據(jù)暫存及數(shù)據(jù)緩沖等。</p><p> 6、定時器計(jì)數(shù)器 89C51內(nèi)部有2個16位可編程定時器計(jì)數(shù)器,簡稱為定時器0(T0)和定時器1(T1),T0和T1在定時器控制寄存器TCON和定時器方式選擇寄存器TMOD的控制下,可工作在定時器模式或計(jì)數(shù)器模式下,每種模式又有不同的工作方式。89C51有兩個16位的可編程定時/計(jì)數(shù)器,以實(shí)現(xiàn)定時或計(jì)數(shù)產(chǎn)生中斷用于控
37、制程序轉(zhuǎn)向。</p><p> 7、并行輸入輸出(I/O)口 89C51共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(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口為一個8位漏極開路的雙向I/O口,每腳可以吸收8TTL門電流。當(dāng)P0口的管腳第一次寫
39、“1”時,被定義為高阻輸入,P0口能夠用于外部數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位,在FLASH編程時,P0口作為原碼輸入口,當(dāng)FLASH進(jìn)行校驗(yàn)時,P0口輸出原碼,此時,P0外部必須被拉高。</p><p> P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流,P1口管腳寫入1時,被內(nèi)部上拉為高,可用作輸出,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部
40、上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為第八位地址接收。</p><p> P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可以接收、輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。因此作為輸入時,P2口的管腳被外部拉低,將輸出電流,這就是內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“
41、1”時,它利用內(nèi)部上拉的優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時接收八位地址信號和控制信號。</p><p> P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可以接收輸出4個TTL門電流。當(dāng)P3口寫入“1”時,它們被內(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 (定時/計(jì)數(shù)器0)</p><p> P3.5: T1 (定時/計(jì)數(shù)器1)</p><p> P3.6: (外部數(shù)據(jù)存儲器寫選通線)</p><p> P3.7: (外部數(shù)據(jù)存儲器讀選通線)</p><p> P3口同時為閃爍編程和編程校驗(yàn)接收一些控制信號</p><p>
44、; RST復(fù)位輸出:當(dāng)振蕩器復(fù)位時,要保持RST腳兩個機(jī)器周期的高電平時間。</p><p> XTAL1:反向振蕩器的輸入及內(nèi)部時鐘工作電路的輸入;</p><p> XTAL2:來自反向振蕩器的輸出。</p><p> 振蕩器特性 XTAL1和XTAL2分別為反向放大器的輸入和輸出,該反向放大器可以配置為片內(nèi)振蕩器,石英振蕩器和陶瓷振蕩器均可采用,如果
45、采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不連接,有余的輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈沖沒有任何嚴(yán)格的要求,但必須保證脈沖的高低電平要求的寬度。</p><p><b> 3.2 復(fù)位電路</b></p><p> 單片機(jī)在開機(jī)時或在工作中因干擾而使程序失控,或工作中程序處于某種死循環(huán)狀態(tài),在這種情況下都需要復(fù)位. 復(fù)位的作用是使中央處
46、理器CPU以及其他功能部件都恢復(fù)到一個確定的初始狀態(tài),并從這個狀態(tài)重新開始工作.</p><p> 89S51單片機(jī)的復(fù)位靠外部電路實(shí)現(xiàn),信號由RESET(RST)引腳輸入,高電平有效,在振蕩器工作時,只要保持RST引腳高電平兩個機(jī)器周期,單片機(jī)即復(fù)位. 復(fù)位后,PC程序計(jì)數(shù)器的內(nèi)容為0000H,片內(nèi)RAM中內(nèi)容不變. 復(fù)位電路一般有上電復(fù)位、手動開關(guān)復(fù)位和自動復(fù)位電路3種,如圖3.3所示.</p>
47、<p> a.上電復(fù)位電路 b. 手動復(fù)位電路 c. 自動復(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> 時鐘周期就是單片機(jī)外接晶振的倒數(shù),例如12M的晶振,它的時間周期就是1/12us),是計(jì)算機(jī)中最基本的、最小的時間單位。<
49、/p><p> 在一個時鐘周期內(nèi),CPU僅完成一個最基本的動作。對于某種單片機(jī),若采用了1MHZ的時鐘頻率,則時鐘周期為1us;若采用4MHZ的時鐘頻率,則時鐘周期為250us。由于時鐘脈沖是計(jì)算機(jī)的基本工作脈沖,它控制著計(jì)算機(jī)的工作節(jié)奏(使計(jì)算機(jī)的每一步都統(tǒng)一到它的步調(diào)上來)。顯然,對同一種機(jī)型的計(jì)算機(jī),時鐘頻率越高,計(jì)算機(jī)的工作速度就越快。但是,由于不同的計(jì)算機(jī)硬件電路和器件的不完全相同,所以其所需要的時鐘周頻
50、率范圍也不一定相同。我們學(xué)習(xí)的51系列單片機(jī)的時鐘范圍是1.2MHz-12MHz。</p><p> 3.4 時鐘芯片DS12C887介紹</p><p> 本次設(shè)計(jì)采用實(shí)時時鐘芯片是DS12C887,這種實(shí)時時鐘芯片具備年、月、日、時、分、秒計(jì)時功能和多點(diǎn)定時功能,計(jì)時數(shù)據(jù)的更新每秒自動進(jìn)行一次,不需程序干預(yù)。此外,事實(shí)上時鐘芯片多數(shù)帶有鋰電池做后備電源,具備永不停止的計(jì)時功能;具有
51、可編程方波輸出功能,可用做實(shí)時測控系統(tǒng)的采樣信號等;有的實(shí)時時鐘芯片內(nèi)部還帶有非易失性RAM,可用來存放需長期保存但有時也變更的數(shù)據(jù)。LED數(shù)碼管電子時鐘電路采用24小時記時方式,日期和時間用16位數(shù)碼管顯示,采用AT89C51單片機(jī),5V電池供電,只要使用一個按鍵開關(guān)即可進(jìn)入省電(顯示LED數(shù)碼管)和正常顯示兩種狀態(tài)。</p><p> 顯示范圍:年份可走99年,如2001—2099;日、月正常顯示,能識別閏
52、年閏月;時間采用24小時制。</p><p> 顯示格式:日期按照年、月、日排列,如2005年12月20日顯示為:05-12-20;時間按時、分、秒排列,如12點(diǎn)30分55秒顯示為12-30-55。</p><p> 顯示位數(shù):6位七段LED數(shù)碼管工作正常和節(jié)電顯示。</p><p> 時鐘誤差:24小時誤差3-5秒。</p><p>
53、 DS12C887時鐘芯片采用CMOS技術(shù)制成,該芯片帶有內(nèi)部晶體振蕩器并內(nèi)置有鋰電池,因此斷電后仍可運(yùn)行十年以上不丟失數(shù)據(jù)。時間、日歷和定鬧具有二進(jìn)制碼和BCD碼兩種形式,并可設(shè)定12小時或24小時制式以及Motorola和Intel總線時序。DS12C887內(nèi)含128字節(jié)RAM,其中有10個時鐘寄存器、4個控制寄存器和114字節(jié)通用RAM,所有RAM單元都具有掉電保護(hù)功能,因此可被用作非易失性RAM。DS12C887內(nèi)部具有定鬧中
54、斷、周期中斷、時鐘更新周期、結(jié)束中斷等,且三個中斷源可分別由軟件屏蔽。</p><p> 3.4.1 DS12C887主要功能簡介</p><p> (1) 內(nèi)含一個鋰電池,斷電后運(yùn)行十年以上不丟失數(shù)據(jù)。</p><p> (2) 計(jì)秒、分、時、天、星期、日、月、年、并有閏年補(bǔ)償功能。</p><p> (3) 二進(jìn)制數(shù)碼或BCD碼表
55、示時間,日歷和定鬧。</p><p> (4) 12小時或24小時制,12小時時鐘模式帶有PM和AM指示,有夏令時功能。</p><p> (5) Motorola和Intel總線時序選擇。</p><p> (6) 有128個字節(jié)RAM單元與軟件接口,其中14個字節(jié)作為時鐘和控制寄存器,114字節(jié)為通用RAM,所有RAM單元數(shù)據(jù)都具有掉電保護(hù)功能。</
56、p><p> (7) 可編程方波信號輸出。</p><p> (8) 中斷信號輸出(IRQ)和總線兼容、定鬧中斷、周期性中斷、時鐘更新周期、結(jié)束中斷可分別由軟件屏蔽,也可分別進(jìn)行測試。</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ù)據(jù)可讀寫;當(dāng)VCC低于4.25V,讀寫被禁止,計(jì)時功能仍繼續(xù);當(dāng)VCC下降到3V以下時,RAM和計(jì)數(shù)器被切換到內(nèi)部鋰電池。</p><p> MOT(模式選擇):MOT管腳接到VCC時,選擇MOTORLA時序;當(dāng)接到GFND時。選擇INTEL時序。</p>
58、<p> SQW(方波信號同):SQW管腳能從實(shí)時時鐘內(nèi)部15級分頻器的13個抽頭中選擇一個作為輸出信號,其輸出頻率可通過對寄存器A編程改變。</p><p> AD0~AD7(雙向地址數(shù)據(jù)復(fù)用線):總線接口即MOROROLA微機(jī)系列和INTEL微機(jī)系列接口。</p><p> AS(地址選通輸入):用于實(shí)現(xiàn)信號分離,在ADALE的下降沿把地址鎖入DS12C887。&l
59、t;/p><p> DS(數(shù)據(jù)選通或讀輸入):DSRD客腳有兩種操作模式,取決于MOT管腳放的電平,當(dāng)使用MOTOROLA時序時,DS時一正脈沖,出現(xiàn)在總線周期的后段稱為數(shù)據(jù)選通;在讀周期DS指示DS12C887驅(qū)動雙向總的時刻,在寫周期DS的后沿使DS12C887鎖存寫數(shù)據(jù)。選擇INTEL時序時DS稱作(RD),RD與典型存儲器的允許信號(OE)的定義相同。</p><p> R/W(讀
60、/寫輸入):R/W管腳也有兩種操作模式。選MOTOROLA時序時,R/W是一電平信號,指示當(dāng)前周期是讀或?qū)懼芷?;DSO為高電平時,R/W高電平指示讀周期,R/W低電平指示寫周期;選INTEL時序,R/W信號是一低電平信號,稱為WR。在此模式下,R/W管腳與通用RAM的寫允許信號(WE)的含義相同。</p><p> CS(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號必須保持為低。</p>
61、<p> IRQ(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上接電阻。</p><p> RESET(復(fù)位輸出):當(dāng)該腳保持低電平時間大于200ms,保證DS12C887有效復(fù)位。</p><p> DS12C887內(nèi)部由振蕩電路、分頻電路、周期中斷/方波選擇電路,14字節(jié)時鐘和控制單元,114
62、字節(jié)用戶非易失RAM,十進(jìn)制/二進(jìn)制累加器,總線接口電路,電源開關(guān)寫保護(hù)單元和內(nèi)部鋰電池等部分組成。Vcc:直流電源+5V電壓。當(dāng)5V電壓在正常范圍內(nèi)時,數(shù)據(jù)可讀寫,當(dāng)Vcc低于4。25V,讀寫被禁止,計(jì)時功能仍繼續(xù);當(dāng)Vcc下降到3V以下時,RAM和計(jì)時器供電被切換到內(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小時制取值范圍是上午(AM)01H~0CH(1~12),下午(PM)81H~8CH(81~92)按24小時制取值范圍使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的專用時標(biāo)年寄存器只有一個,但通過軟件編程可利用其內(nèi)部的不掉電的RAM區(qū)的一個字節(jié)實(shí)現(xiàn)年度的高兩位顯示。</p><p><b> 寄存器A</b></p><p>
65、寄存器A各位不受復(fù)位的影響,UIP位為只讀位,其它各位可讀寫,寄存器的控制字的格式。</p><p> A、UIP位:更新周期標(biāo)志位。該位為“1”時,表示芯片正處于或?qū)㈤_始更新周期,此時程序不準(zhǔn)讀寫師表寄存器;該位為“0”時,表示至少在244us后開始更新周期,此時程序可讀芯片內(nèi)時標(biāo)寄存器。該位是只讀位。</p><p> B、DV0、DV1、DV2:芯片內(nèi)部震蕩器RTC控制位。當(dāng)芯片
66、接觸復(fù)位狀態(tài),并將010寫入DV0、DV1、DV2后,另一個更新周期將在500ms后開始。因此,在程序初始化時可用這三各精確地使芯片在設(shè)定的時間開始工作。這與MC146818不同的使DS12C887固定使用32768Hz的內(nèi)部晶體,所以DV0=“0”、DV1=“1”、DV2=“0”,即可啟動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)時,每秒鐘將產(chǎn)生一個更新周期,芯片處于更新周期的標(biāo)志是寄存器A中的CPU位為1。在更新周期內(nèi),芯片內(nèi)部時標(biāo)寄存器數(shù)據(jù)處于更新階段,故在該周期內(nèi),微處理器不能讀芯
68、片時標(biāo)寄存器中的內(nèi)容,同時秒時標(biāo)寄存器內(nèi)容加1,并檢查其他時標(biāo)寄存器內(nèi)容是否有溢出。如果有溢出則相應(yīng)進(jìn)位日、月、年。另外一個功能是檢查三個時、分、秒報(bào)警時標(biāo)寄存器的內(nèi)容是否與對應(yīng)時標(biāo)寄存器的內(nèi)容相符,如果相符則寄存器C中的AF位置1。如果報(bào)警時標(biāo)寄存器的內(nèi)容為COH到FFH之間的數(shù)據(jù),則為不關(guān)閉狀態(tài)。</p><p> 為了采樣時標(biāo)寄存器中的數(shù)據(jù),DS12C887提供了兩種避開更新周期內(nèi)訪問時標(biāo)寄存器的方案:第
69、一種是利用更新周期結(jié)束發(fā)出的中斷。它可以編程允許在每次更新周期結(jié)束后發(fā)生中斷申請,提醒CPU將有998ms左右的時間去獲取有效的數(shù)據(jù),在中斷之后的998ms時間內(nèi),程序可先將時標(biāo)數(shù)據(jù)讀支芯片內(nèi)部的不掉電靜態(tài)RAM中。因?yàn)樾酒瑑?nèi)部的靜態(tài)RAM和狀態(tài)寄存器是可隨時讀寫的,在離開中斷服務(wù)子程序前應(yīng)清除寄存器C中的IRQF位。另一種是:利用寄存器A中的UIP位來指示芯片是否處于更新周期。在UIP位從低變高244us后,芯片將進(jìn)行更新周期,所以檢
70、測到UIP位為低電平時,則利用224us的間隔時間去讀取時標(biāo)信息。如檢測到UIP位為1,則可暫緩讀數(shù)據(jù),等到UIP變成低電平再去讀數(shù)據(jù)。</p><p> 3.4.5 DS12C887初始化方法</p><p> DS12C887采用連續(xù)工作制,一般無須每次都初始化,即使是系統(tǒng)復(fù)位時也如此。但初始化時,首先應(yīng)禁止芯片內(nèi)部的更新周期操作,所以先將DS12C887狀態(tài)寄存器B中的SET位置
71、1,然后初始化00H~09H時標(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位將自動置1,最后將狀態(tài)寄存器B中的SET位置0,芯片開始計(jì)時工作。</p><p> 3.5 74LS154芯片介紹及ULN2003A的簡介</p><p> 本設(shè)計(jì)要用
72、到16個七段數(shù)碼管,單片機(jī)的P0端口只有8根線,根本不夠用,所以用74LS154來擴(kuò)展,74LS154使4——16譯碼器,只用單片機(jī)的四根線就可以接16個數(shù)碼管的位碼端,因?yàn)?4LS154使一個4入16出的譯碼器,在本設(shè)計(jì)中共有16個顯示數(shù)碼管,所以一個74LS154譯碼器的輸出端剛好夠用。LED數(shù)碼管采用共陰極。</p><p> 在設(shè)計(jì)中74LS154的輸入端有單片機(jī)的P1.0~P1.3口提供段碼控制信號,
73、輸出端接數(shù)碼管的段碼管腳(既圖中的0管腳)。</p><p> 74LS154管腳圖如圖3.6所示,74LS154真值表如表3.7所示:</p><p> 圖3.6 74LS154管腳</p><p> 表3.7 74LS154真值表</p><p> ULN2003A有美國Texas Instruments公司、美國Sprague
74、公司生產(chǎn),由7組達(dá)林頓晶體管陣列和相應(yīng)的電阻網(wǎng)絡(luò)以及鉗位二極管網(wǎng)絡(luò)構(gòu)成,具有同時驅(qū)動7組負(fù)載的能力,為單片雙機(jī)型大功率高速集成電路。</p><p> ULN2003A是一個驅(qū)動器,它的輸入端接單片機(jī)的P0.0~P0.7口,輸出接數(shù)碼管的位碼端上,由于此設(shè)計(jì)中用到的數(shù)碼管數(shù)量多,而單片機(jī)的輸出不能一下驅(qū)動,所以通過ULN2003A進(jìn)行驅(qū)動。</p><p> ULN2003A管腳如圖3
75、.8所示:</p><p> 圖3.8 ULN2003A管腳圖</p><p><b> 4 軟件設(shè)計(jì)</b></p><p> 軟件設(shè)計(jì)分為:動態(tài)掃描、主程序、系統(tǒng)資源分配和軟件模塊幾部分,在此設(shè)計(jì)中采用定時器來完成動態(tài)掃描顯示。用定時器T0定20ms的時間間隔,每次定時時間到時就輸出一個LED信號,即顯示一位。主程序初始化后,就開始進(jìn)
76、行對DS12C887的讀時間;讀完后送顯示緩沖區(qū),同時并對定時時間進(jìn)行判斷比較。DS12C887的地址由114字節(jié)的用戶RAM存放。10字節(jié)的存放實(shí)時時鐘時間\日歷和定鬧RAM及用于控制和狀態(tài)的4字節(jié)特殊寄存器組成,幾乎所有的128個字節(jié)直接讀寫。</p><p> 設(shè)計(jì)程序有:主程序、讀取時間的子程序和顯示刷新程序。</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 ;時鐘芯片寄存器</p><p> HOUR EQU
79、2004H </p><p> WEEK EQU 2006H ;它們代表秒、分鐘、時、日期</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 ;四個控制寄存器</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,時鐘芯片更新</p><p> TBHALT EQU 10000010B ;24/12=1,采用24小時計(jì)時制</p><p> 將TBHALT寫入TREGB,停止計(jì)時</p><p> TBSALT
82、 EQU 0000000B ;將TBSTART寫入TREGB繼續(xù)計(jì)時</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ì)時</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> 讀取時間子程序框圖如圖4.2所示:</p><p> 圖4.2 讀取時間的子程序
86、框圖</p><p> 讀取時間程序如下所示:</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 ;如果時間未改變則退出</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ù)時間值</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 ;讀取并存儲分鐘</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 ;讀取并存儲小時</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 ;讀取并存儲日期</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 ;讀取并存儲月份</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、 ;讀取并存儲年號</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 ;得到小時的十位</p><p> MOV @R0 ,A</p><p> INC R0 ;顯示指針加一</p><p> MOV A, R3</p><p> ANL A, #OFOH ;得到小時的個位<
103、;/p><p> MOV @R0,A ;存入顯示緩沖區(qū)</p><p> INC R0 ;跳過分號的顯示單元</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 ;得到分的個位</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 ;延時一毫秒</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 ;延時子程序</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)的測試</p><p> 5.1 在偉福中的調(diào)試</p><p> 通過偉福仿真軟件和Keil軟件來驗(yàn)證程序。首先打開偉福仿真軟件的界面,對仿真器的參數(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)試,剛開始有好幾處錯誤,我們的程序沒有通過編譯,然后我就查
114、找錯誤的所在,一一更改之后終于通過編譯,其運(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仿真軟件,首先要新建一個項(xiàng)目,點(diǎn)菜單Project→New Project,在彈出的對話框中選擇保存的路徑并輸入項(xiàng)目名稱“wang”后保存,然后在彈出新的項(xiàng)目窗口中選擇參數(shù),其參數(shù)的設(shè)置如下,由于我們使用的是Atmel公司的芯片,所以要選Atmel后,點(diǎn)擊確定。 </p><p><b> 2、設(shè)置芯片</b></p>
116、<p> 在彈出的對話框中選擇AT89C51這個芯片,點(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這個標(biāo)簽,選中第二個Use復(fù)選框后點(diǎn)擊Setting在彈出的對話框中選擇Baudrate這一項(xiàng),設(shè)置它的參數(shù)為38400。如圖5.6所示:</p><p><b> 圖
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)--電子日歷
- 畢業(yè)設(shè)計(jì)---電子日歷的設(shè)計(jì)
- 單片機(jī)電子日歷畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(2) 單片機(jī)電子日歷
- 單片機(jī)電子日歷畢業(yè)設(shè)計(jì)2
- 畢業(yè)設(shè)計(jì)論文 基于單片機(jī)的電子日歷設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---可調(diào)式電子日歷時鐘的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)碼日歷鐘畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)---基于51單片機(jī)的電子日歷的應(yīng)用
- 日歷時鐘顯示系統(tǒng)畢業(yè)設(shè)計(jì)
- 數(shù)字日歷時鐘畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)(論文)-電子日歷的制作51單片機(jī)的應(yīng)用
- 單片機(jī)電子日歷設(shè)計(jì)原文(機(jī)械畢業(yè)設(shè)計(jì)含cad圖紙和說明書)
- 電子日歷課程設(shè)計(jì)報(bào)告
- 基于android的日歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)設(shè)計(jì)
- 單片機(jī)日歷和時鐘畢業(yè)設(shè)計(jì)論文
- 電子信息工程畢業(yè)設(shè)計(jì)帶實(shí)時日歷時鐘的溫度檢測系統(tǒng)的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于android的日歷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 電子日歷的制作-課程設(shè)計(jì)
- 電子日歷的制作-課程設(shè)計(jì)
評論
0/150
提交評論