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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、 </p><p><b>  摘 要</b></p><p>  本次設計的題目是電子日歷,可以正常的顯示年、月、日、時、分、秒。電子日歷具有性能穩(wěn)定、精確度高、成本低、易于產品化,以及方便、實用等特點。適用于家庭、公司、機關等眾多場所。為人們的日常生活、出行安排提供了方便,成為人們日常生活中不可缺少的一部分。</p><p&g

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

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 單片機的組成及特點1</p><p>  1.2 單片機的應用2</p><p><b>  2 設計方案4</b></p><p>  2.1 設計思路4</p><p>  2.2 系統(tǒng)總體框圖4</p><p><b>  3 硬件設計6</b

8、></p><p>  3.1 單片機的選擇6</p><p>  3.2 復位電路9</p><p>  3.3 晶振電路10</p><p>  3.4 時鐘芯片DS12C887介紹11</p><p>  3.5 74LS154芯片介紹及ULN2003A的簡介15</p><p

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

10、p><b>  總 結32</b></p><p><b>  參考文獻33</b></p><p><b>  1 概 述 </b></p><p>  1.1 單片機的組成及特點 </p><p>  單片機是微型機的一個主要分支,在結構上的最大特點是把CPU

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

41、1”時,它利用內部上拉的優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收八位地址信號和控制信號。</p><p>  P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可以接收輸出4個TTL門電流。當P3口寫入“1”時,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平;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ù)器0)</p><p>  P3.5: T1 (定時/計數(shù)器1)</p><p>  P3.6: (外部數(shù)據(jù)存儲器寫選通線)</p><p>  P3.7: (外部數(shù)據(jù)存儲器讀選通線)</p><p>  P3口同時為閃爍編程和編程校驗接收一些控制信號</p><p>

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

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

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

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

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

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

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

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

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

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

54、斷、周期中斷、時鐘更新周期、結束中斷等,且三個中斷源可分別由軟件屏蔽。</p><p>  3.4.1 DS12C887主要功能簡介</p><p>  (1) 內含一個鋰電池,斷電后運行十年以上不丟失數(shù)據(jù)。</p><p>  (2) 計秒、分、時、天、星期、日、月、年、并有閏年補償功能。</p><p>  (3) 二進制數(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ù)都具有掉電保護功能。</

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

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

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

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

60、/寫輸入):R/W管腳也有兩種操作模式。選MOTOROLA時序時,R/W是一電平信號,指示當前周期是讀或寫周期;DSO為高電平時,R/W高電平指示讀周期,R/W低電平指示寫周期;選INTEL時序,R/W信號是一低電平信號,稱為WR。在此模式下,R/W管腳與通用RAM的寫允許信號(WE)的含義相同。</p><p>  CS(片選輸入):在訪問DS12887的總線周期內,片選信號必須保持為低。</p>

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

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

63、部RAM和專用寄存器地址功能,地址00H~03H單元取值范圍是00H~3BH(10進制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和各專用寄存器的訪問如下實現(xiàn),若片選地址DS=#0DDXXH,則芯片內部RAM和寄存器和地址為#0DD00H~#ODD7FH。應指出的是,盡管DS12C887的專用時標年寄存器只有一個,但通過軟件編程可利用其內部的不掉電的RAM區(qū)的一個字節(jié)實現(xiàn)年度的高兩位顯示。</p><p><b>  寄存器A</b></p><p>  

65、寄存器A各位不受復位的影響,UIP位為只讀位,其它各位可讀寫,寄存器的控制字的格式。</p><p>  A、UIP位:更新周期標志位。該位為“1”時,表示芯片正處于或將開始更新周期,此時程序不準讀寫師表寄存器;該位為“0”時,表示至少在244us后開始更新周期,此時程序可讀芯片內時標寄存器。該位是只讀位。</p><p>  B、DV0、DV1、DV2:芯片內部震蕩器RTC控制位。當芯片

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

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

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

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

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

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

72、到16個七段數(shù)碼管,單片機的P0端口只有8根線,根本不夠用,所以用74LS154來擴展,74LS154使4——16譯碼器,只用單片機的四根線就可以接16個數(shù)碼管的位碼端,因為74LS154使一個4入16出的譯碼器,在本設計中共有16個顯示數(shù)碼管,所以一個74LS154譯碼器的輸出端剛好夠用。LED數(shù)碼管采用共陰極。</p><p>  在設計中74LS154的輸入端有單片機的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、公司生產,由7組達林頓晶體管陣列和相應的電阻網(wǎng)絡以及鉗位二極管網(wǎng)絡構成,具有同時驅動7組負載的能力,為單片雙機型大功率高速集成電路。</p><p>  ULN2003A是一個驅動器,它的輸入端接單片機的P0.0~P0.7口,輸出接數(shù)碼管的位碼端上,由于此設計中用到的數(shù)碼管數(shù)量多,而單片機的輸出不能一下驅動,所以通過ULN2003A進行驅動。</p><p>  ULN2003A管腳如圖3

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

76、行對DS12C887的讀時間;讀完后送顯示緩沖區(qū),同時并對定時時間進行判斷比較。DS12C887的地址由114字節(jié)的用戶RAM存放。10字節(jié)的存放實時時鐘時間\日歷和定鬧RAM及用于控制和狀態(tài)的4字節(jié)特殊寄存器組成,幾乎所有的128個字節(jié)直接讀寫。</p><p>  設計程序有:主程序、讀取時間的子程序和顯示刷新程序。</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 ;可以改變實際連線,地址也相應改變</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小時計時制</p><p>  將TBHALT寫入TREGB,停止計時</p><p>  TBSALT

82、 EQU 0000000B ;將TBSTART寫入TREGB繼續(xù)計時</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 ;設置控制寄存器,開晶振。</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 ;開始計時</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 ;恢復時間值</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 ;寄存器恢復保護</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 ;顯示指針首址保護,存入R6</p

101、><p>  INC DPTR ;先將指針指向分鐘單元</p><p>  MOVX A,@DPTR</p><p>  MOV R3,A ;保護寄存器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 ;轉顯示下一位</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 單片機應用系統(tǒng)的測試</p><p>  5.1 在偉福中的調試</p><p>  通過偉福仿真軟件和Keil軟件來驗證程序。首先打開偉福仿真軟件的界面,對仿真器的參數(shù)值進行設置。其設置如圖5.1所示:</p>&l

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論