版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于單片機的同步電子時鐘設(shè)計 摘 要 單片計算機既單片微型計算機。由ram,rom,cup構(gòu)成,定時,計數(shù)和多種接口與一體的微型控制器。他體積小,成本低,功能強,廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動化上。而51/52系列單片機是各單片機中最為典型和最有代表性的一種。這次畢業(yè)設(shè)計通過對它的學(xué)習(xí),應(yīng)用,從而達到學(xué)習(xí),設(shè)計的能力。單片機模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。數(shù)字鐘是采用數(shù)字電路實現(xiàn)對“時”、“分”、“秒”數(shù)字顯示的計時裝置。數(shù)字鐘的精度、穩(wěn)定度遠遠超過老式
2、機械鐘。本設(shè)計使用12mhz晶振與單片機at89c52相連接,以at89c52芯片為核心,ds1302為時鐘芯片,實現(xiàn)在lcd上顯示日期、時間、定時,通過5個按鍵實現(xiàn)設(shè)置日期、進行調(diào)時、設(shè)定鬧鈴等功能,在實現(xiàn)各功能時lcd進行相應(yīng)顯示,鬧鈴或定時時間到時蜂鳴器響。軟件部分用c語言實現(xiàn),分為顯示、延遲、調(diào)時、鬧鈴、定時、調(diào)整日期等部分。通過軟硬件結(jié)合達到最終目的。 關(guān)鍵詞:單片機,數(shù)字鐘,ds1302,lcd,c語言 synchronous electronic clock design based on scm abstract a monolithic computer is single
3、chip microcomputer. by ram, rom, cup, timing, counting and multiple interfaces and the integration of the micro controller. he has the advantages of small volume, low cost, strong function, widely used in smart industries, and industrial automation. and 51 series scm is the most typical and the most
4、 representative one. the graduation design through the study, application, to achieve the study, design ability. scm module are the most common digital clock, a digital clock is a kind of digital circuit technology implementation, minutes and seconds timing device, and the mechanical clock compared
5、with higher accuracy and intuitive, and without a mechanical device, has more longer service life, so it has been widely used. a digital clock is adopting digital circuit implementation of hour points and second digital display timer device. a digital clock precision, stability than old mechanical c
6、lock. this design uses a 12 mhz crystal to connect with the machine at89c52, takes at89c52 chips as core,ds1302 chip is used as the lock chip, we are able to show date, time and fix the time,on lcd. we can use 5 key to constitute date, adjust time, enact the bell and set the countdown timer. when th
7、e electric carrying out each function, the lcd shows the tight function .when the alarm clock and the countdown timer were reached, the voice begins. the software part is realized by c language. it was divided into to show, delay, adjust, make bell, in fixed time, and adjust date etc. part. we get t
8、he end purpose combining the software and the hardware. keywords:scm,digital clock, ds1302,lcd,c language 目 錄前言1第1章 設(shè)計要求與方案選擇21.1 設(shè)計目的21.2 設(shè)計要求21.3各模塊方案選擇與論證2第2章 總體方案42.1 系統(tǒng)設(shè)計的思路42.2 系統(tǒng)硬件描述42.3 系統(tǒng)軟件描述52.4 設(shè)計流程和預(yù)期結(jié)果6第3章 系統(tǒng)硬件電路設(shè)計與實現(xiàn)73.1 硬件芯片介紹73.1.1 單片機at89c5273.1.2 ds1302簡介153.2 系統(tǒng)硬件架構(gòu)173.2.1 電源部分183
9、.2.2 復(fù)位與晶振電路183.2.3 液晶顯示電路193.2.4 按鍵電路19第4章 系統(tǒng)軟件設(shè)計214.1 軟件設(shè)計的總體說明214.2主程序流程圖21第5章 系統(tǒng)的仿真及調(diào)試225.1 系統(tǒng)軟硬件調(diào)試225.2 系統(tǒng)的仿真235.2.1 仿真軟件的簡介235.2.2 電子鐘系統(tǒng)protues仿真結(jié)果24結(jié)論26參考文獻27致謝28附錄29前 言 數(shù)字電子時鐘,自從它發(fā)明的那天起,就成為人類的朋友,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。但隨著時間的推移,科學(xué)技術(shù)的不斷發(fā)展,生活節(jié)奏越來越快,基于51/52單片機的多功能電子鐘設(shè)計競爭日益激烈,人們對時間計量的精度要求越來越高,應(yīng)用越
10、來越廣??梢哉f時間的準確已成為各行各業(yè)安全運行的基礎(chǔ),如果時間出現(xiàn)誤差而不能及時校正,會造成一系列嚴重的后果和經(jīng)濟損失。電子時鐘的設(shè)計方法有多種,可用中小規(guī)模集成電路組成電子鐘,也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘,還可以利用對單片機編程來實現(xiàn)電子鐘。其中,利用單片機實現(xiàn)的電子時鐘具有硬件結(jié)構(gòu)簡單、編程靈活、便于功能擴展等特點。由單片機作為數(shù)字鐘的核心控制器,可以通過它的時鐘信號實現(xiàn)計時功能,將其時間數(shù)據(jù)經(jīng)單片機輸出,利用顯示器顯示出來。通過鍵盤可以進行定時、校時功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)或者數(shù)碼管顯示技術(shù)。多功能電子時鐘除了具有時鐘的功能外還可以包
11、含與外界時間保持同步,從而人們可以不用擔(dān)心每次在時鐘掉電后,再次得電時需要重新調(diào)時。在各個行業(yè)生產(chǎn)及日常生活中,對時間同步這一功能始終占據(jù)著非常重要的地位。目前,典型的實例是手機和電腦的時間會始終保持運轉(zhuǎn)而不用每次調(diào)時,使生活變得更方便,而且具有較強推廣應(yīng)用價值。 第1章 設(shè)計要求與方案選擇1.1 設(shè)計目的設(shè)計一種有線連接的可以實現(xiàn)主機同從機通過串行口協(xié)議來達到時間同步的同步電子時鐘,加深對所學(xué)專業(yè)知識的認識,提高分析、解決工程實際問題的能力,提高對單片機的應(yīng)用能力,提高收集文獻、資料的能力,從而達到綜合運用所學(xué)的專業(yè)知識進行電子產(chǎn)品設(shè)計、制作與調(diào)試的能力。1.2 設(shè)計要求基本功能:(1) 同
12、步電子時鐘的主機時間能與從機時間保持同步(2) 可以顯示年月日時分秒(3) 可以實現(xiàn)調(diào)時功能(4) 具有定時鬧鐘功能(5) 具有復(fù)位功能(6) 做出實物1.3各模塊方案選擇與論證根據(jù)設(shè)計要求,系統(tǒng)可分為單片機模塊,液晶顯示模塊,按鍵模塊,晶振模塊,外部時鐘控制模塊,復(fù)位模塊,鬧鈴模塊。單片機模塊: 采用型號為at89c52的單片機。因為:at89c52是一個低電壓,高性能cmos 8位單片機,片內(nèi)含8k bytes的可反復(fù)擦寫的flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準mcs-51指令系統(tǒng),片內(nèi)置通
13、用8位中央處理器和flash存儲單元,功能強大的at89c52單片機可提供許多較復(fù)雜系統(tǒng)控制應(yīng)用場合。液晶顯示模塊: 方案一:數(shù)碼管顯示,優(yōu)點價格便宜,但是不能顯示復(fù)雜的英文,顯示出來很大,布線不易,不美觀。方案二:lcd1602,價格適中,可以顯示復(fù)雜的英文,功耗不大,外觀較小,計較符合。方案三:lcd12864,彩屏,可以顯示中文和一些圖片,但是價格較高,秉著合理利用的原則,不大材小用,決定放棄。時鐘模塊: 方案一:可以利用單片機自己自帶的定時器精確定時,在通過軟件控制,這樣就減少了硬件的成本,但是這樣需要晶振絕對的穩(wěn)定,而且掉電數(shù)據(jù)不保存,還沒有年月星期的自動調(diào)整功能,對程序的要求很高,
14、不易控制. 方案二:ds1302它可以對年、月、日、周、時、分、秒進行計時,且具有閏年補償?shù)榷喾N功能。不必在程序上做太多的處理,與單片機的接口簡單,掉電有備用電池用來供電保存數(shù)據(jù),所以非常適合要求。 第2章 總體方案 2.1 系統(tǒng)設(shè)計的思路本設(shè)計采用at89c52單片機芯片配合ds1302時鐘芯片為主構(gòu)成的主機和從機以有線連接而達到時間同步的電子時鐘。文中設(shè)計了一個顯時、調(diào)時、定時鬧鐘以及時間同步功能的電子鐘。電子鐘使用12mhz晶振與 ds1302時鐘芯片相連接, 通過晶振為時鐘芯片提供最為基本的脈沖信號的方法實現(xiàn)了在時鐘芯片中的計時作用, 再經(jīng)過單片機的編程作用,而達到在lcd液晶屏上顯示
15、年月日時分秒,并可以調(diào)時、定時,在定時時間到時有蜂鳴器報警。設(shè)計通過主機和從機的配合作用,采用在主機和從機之間用有線連接,簽訂串行口協(xié)議,而實現(xiàn)主機和從機的時間同步功能。該電子鐘設(shè)有同步(p3.3),鬧鈴(p3.4),選定(p3.5),加(p3.6),減(p3.7)等五個基本按鍵。每按一下同步按鍵可以使主機與從機時間達到同步,按下鬧鈴鍵,在達到定時時間時有蜂鳴器報警,按下選定鍵可以選定年月日時分秒的每一位,再按加、減鍵,而達到調(diào)時效果。2.2 系統(tǒng)硬件描述 基于單片機系統(tǒng)的同步電子時鐘基本結(jié)構(gòu)框架如圖2-1所示: 圖2-1 系統(tǒng)基本結(jié)構(gòu)框圖該系統(tǒng)所需要的器件包括單片機at89c52芯片兩塊,時
16、鐘芯片ds1302兩塊,液晶顯示屏lcd1602一塊,蜂鳴器一個,12mhz的晶振兩個,排針排線若干組,電容電阻若干導(dǎo)線若干,按鈕七個。2.3 系統(tǒng)軟件描述系統(tǒng)程序?qū)崿F(xiàn)三部分功能:一、實現(xiàn)年、月、日、時、分、秒的顯示和設(shè)置;二、實現(xiàn)鬧鐘部分的顯示和設(shè)置;三、實現(xiàn)主機和從機之間的時間同步。如圖2-2所示: 圖2-2 功能整體流程框圖2.4 設(shè)計流程和預(yù)期結(jié)果 該設(shè)計的主要流程如下:首先閱讀大量參考文獻,進行設(shè)計方案的確定,然后在 protues 上進行原理圖的繪制和修改,在電器檢查無誤的情況下,購買所需要的元器件(元器件應(yīng)該考慮裕量)。接著把元器件焊接到各個功能電路的模塊上,并結(jié)合程序進行調(diào)試。
17、最后將各個功能的電路程序組合起來,然后再進行總體調(diào)試直到成功。 本設(shè)計能達到以下結(jié)果:(1) 顯示年、月、日、時、分、秒,并能通過按鍵設(shè)置。(2) 可以定時鬧鐘,定時時間達到時,蜂鳴器報警。(3) 可以通過按鍵來實現(xiàn)主機和從機的時間同步。 第3章 系統(tǒng)硬件電路設(shè)計與實現(xiàn)3.1 硬件芯片介紹3.1.1 單片機at89c52 at89c52有40個引腳,32個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,at89c52可以按照常規(guī)方法進行編程,但不可以在線編程(s系列的才支持在線編程)。其將通用的微處理器和flash存儲器結(jié)
18、合在一起,特別是可反復(fù)擦寫的flash存儲器可有效地降低開發(fā)成本。 兼容mcs51指令系統(tǒng) 8k可反復(fù)擦寫(1000次)flash rom 32個雙向i/o口 256x8bit內(nèi)部ram 3個16位可編程定時/計數(shù)器中斷 時鐘頻率0-24mhz 2個串行中斷 可編程uart串行通道 2個外部中斷源 共6個中斷源 2個讀寫中斷口線 3級加密位 低功耗空閑和掉電模式 軟件設(shè)置睡眠和喚醒功能 at89c52 p為40 腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標準的c51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會聚調(diào)整時的功能控制。功能包括對會聚主ic 內(nèi)部寄存器、數(shù)據(jù)ra
19、m及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號ir的接收解碼及與主板cpu通信等。主要管腳有:xtal1(19 腳)和xtal2(18 腳)為振蕩器輸入輸出端口,外接12mhz 晶振。rst/vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。vcc(40 腳)和vss(20 腳)為供電端口,分別接+5v電源的正負端。p0p3 為可編程通用i/o 腳,其功能用途由軟件定義,在本設(shè)計中,p0 端口(3239 腳)被定義為n1 功能控制端口,分別與n1的相應(yīng)功能管腳相連接,13 腳定義為ir輸入端,10 腳和11腳定義為i2c總線控制端口,分別連接n1的sdas
20、(18腳)和scls(19腳)端口,12 腳、27 腳及28 腳定義為握手信號功能端口,連接主板cpu 的相應(yīng)功能端,用于當(dāng)前制式的檢測及會聚調(diào)整狀態(tài)進入的控制功能。p0 口 p0 口是一組8 位漏極開路型雙向i/o 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8 個ttl邏輯門電路,對端口p0 寫“1”時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在flash 編程時,p0 口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。p1 口 p1 是一個帶內(nèi)部
21、上拉電阻的8 位雙向i/o 口, p1 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個ttl 邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。與at89c51 不同之處是,p1.0 和p1.1 還可分別作為定時/計數(shù)器2 的外部計數(shù)輸入(p1.0/t2)和輸入(p1.1/t2ex),參見表1。flash 編程和程序校驗期間,p1 接收低8 位地址。引腳號功能特性p1.0t2,時鐘輸出p1.1t2ex(定時/計數(shù)器2) 表1p2 口 p2 是一個帶有內(nèi)部上拉電阻的8 位雙向i/o
22、口,p2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個ttl 邏輯門電路。對端口p2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(iil)。 在訪問外部程序存儲器或16 位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行movx dptr 指令)時,p2 口送出高8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行movx ri 指令)時,p2 口輸出p2 鎖存器的內(nèi)容。flash 編程或校驗時,p2亦接收高位地址和一些控制信號。p3 口 p3 口是一組帶有內(nèi)部上拉電阻的8 位雙向i/o 口。p3 口輸出緩沖級可驅(qū)
23、動(吸收或輸出電流)4 個ttl 邏輯門電路。對p3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的p3 口將用上拉電阻輸出電流(iil)。p3 口除了作為一般的i/o 口線外,更重要的用途是它的第二功能。p3 口還接收一些用于flash 閃速存儲器編程和程序校驗的控制信號。rst復(fù)位輸入。當(dāng)振蕩器工作時,rst引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。ale/prog當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ale 仍以時鐘振蕩頻率的1/6 輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。
24、要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ale 脈沖。對flash 存儲器編程期間,該引腳還用于輸入編程脈沖(prog)。如有必要,可通過對特殊功能寄存器(sfr)區(qū)中的8eh 單元的d0 位置位,可禁止ale 操作。該位置位后,只有一條movx 和movc指令才能將ale 激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ale 禁止位無效。psen程序儲存允許(psen)輸出是外部程序存儲器的讀選通信號,當(dāng)at89c52 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次psen 有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次psen信號。ea/vpp外
25、部訪問允許。欲使cpu 僅訪問外部程序存儲器(地址為0000hffffh),ea 端必須保持低電平(接地)。需注意的是:如果加密位lb1 被編程,復(fù)位時內(nèi)部會鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu 則執(zhí)行內(nèi)部程序存儲器中的指令。flash 存儲器編程時,該引腳加上+12v 的編程允許電源vpp,當(dāng)然這必須是該器件是使用12v 編程電壓vpp。xtal1振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。xtal2振蕩器反相放大器的輸出端。定時器0和定時器1:at89c52的定時器0和定時器1 的工作方式與at89c51 相同。定時器2定時器2 是一個16 位定時/計數(shù)器。它既可當(dāng)定時器
26、使用,也可作為外部事件計數(shù)器使用,其工作方式由特殊功能寄存器t2con(如表3)的c/t2 位選擇。定時器2 有三種工作方式:捕獲方式,自動重裝載(向上或向下計數(shù))方式和波特率發(fā)生器方式,工作方式由t2con 的控制位來選擇。定時器2 由兩個8 位寄存器th2 和tl2 組成,在定時器工作方式中,每個機器周期tl2 寄存器的值加1,由于一個機器周期由12 個振蕩時鐘構(gòu)成,因此,計數(shù)速率為振蕩頻率的1/12。在計數(shù)工作方式時,當(dāng)t2 引腳上外部輸入信號產(chǎn)生由1 至0 的下降沿時,寄存器的值加1,在這種工作方式下,每個機器周期的5sp2 期間,對外部輸入進行采樣。若在第一個機器周期中采到的值為1,
27、而在下一個機器周期中采到的值為0,則在緊跟著的下一個周期的s3p1 期間寄存器加1。由于識別1 至0 的跳變需要2 個機器周期(24 個振蕩周期),因此,最高計數(shù)速率為振蕩頻率的1/24。為確保采樣的正確性,要求輸入的電平在變化前至少保持一個完整周期的時間,以保證輸入信號至少被采樣一次。自動重裝載(向上或向下計數(shù)器)方式當(dāng)定時器2工作于16位自動重裝載方式時,能對其編程為向上或向下計數(shù)方式,這個功能可通過特殊功能寄存器t2con(見表5)的dcen 位(允許向下計數(shù))來選擇的。復(fù)位時,dcen 位置“0”,定時器2 默認設(shè)置為向上計數(shù)。當(dāng)dcen置位時,定時器2 既可向上計數(shù)也可向下計數(shù),這取
28、決于t2ex 引腳的值,參見圖5,當(dāng)dcen=0 時,定時器2 自動設(shè)置為向上計數(shù),在這種方式下,t2con 中的exen2 控制位有兩種選擇,若exen2=0,定時器2 為向上計數(shù)至0ffffh 溢出,置位tf2 激活中斷,同時把16 位計數(shù)寄存器rcap2h 和rcap2l重裝載,rcap2h 和rcap2l 的值可由軟件預(yù)置。若exen2=1,定時器2 的16 位重裝載由溢出或外部輸入端t2ex 從1 至0 的下降沿觸發(fā)。這個脈沖使exf2 置位,如果中斷允許,同樣產(chǎn)生中斷。定時器2 的中斷入口地址是:002bh 0032h 。當(dāng)dcen=1 時,允許定時器2 向上或向下計數(shù),如圖6 所
29、示。這種方式下,t2ex 引腳控制計數(shù)器方向。t2ex 引腳為邏輯“1”時,定時器向上計數(shù),當(dāng)計數(shù)0ffffh 向上溢出時,置位tf2,同時把16 位計數(shù)寄存器rcap2h 和rcap2l 重裝載到th2 和tl2 中。 t2ex 引腳為邏輯“0”時,定時器2 向下計數(shù),當(dāng)th2 和tl2 中的數(shù)值等于rcap2h 和rcap2l中的值時,計數(shù)溢出,置位tf2,同時將0ffffh 數(shù)值重新裝入定時寄存器中。當(dāng)定時/計數(shù)器2 向上溢出或向下溢出時,置位exf2 位。波特率發(fā)生器當(dāng)t2con(表3)中的tclk 和rclk 置位時,定時/計數(shù)器2 作為波特率發(fā)生器使用。如果定時/計數(shù)器2 作為發(fā)送
30、器或接收器,其發(fā)送和接收的波特率可以是不同的,定時器1 用于其它功能,如圖7 所示。若rclk 和tclk 置位,則定時器2工作于波特率發(fā)生器方式。波特率發(fā)生器的方式與自動重裝載方式相仿,在此方式下,th2 翻轉(zhuǎn)使定時器2 的寄存器用rcap2h 和rcap2l 中的16位數(shù)值重新裝載,該數(shù)值由軟件設(shè)置。在方式1 和方式3 中,波特率由定時器2 的溢出速率根據(jù)下式確定:方式1和3的波特率=定時器的溢出率/16定時器既能工作于定時方式也能工作于計數(shù)方式,在大多數(shù)的應(yīng)用中,是工作在定時方式(c/t2=0)。定時器2 作為波特率發(fā)生器時,與作為定時器的操作是不同的,通常作為定時器時,在每個機器周期(
31、1/12 振蕩頻率)寄存器的值加1,而作為波特率發(fā)生器使用時,在每個狀態(tài)時間(1/2 振蕩頻率)寄存器的值加1。波特率的計算公式如下:方式1和3的波特率=振蕩頻率/32*65536-(rcp2h,rcp2l)式中(rcap2h,rcap2l)是rcap2h 和rcap2l中的16 位無符號數(shù)。定時器2 作為波特率發(fā)生器使用的電路如圖7 所示。t2con 中的rclk 或tclk=1 時,波特率工作方式才有效。在波特率發(fā)生器工作方式中,th2 翻轉(zhuǎn)不能使tf2 置位,故而不產(chǎn)生中斷。但若exen2 置位,且t2ex 端產(chǎn)生由1 至0 的負跳變,則會使exf2 置位,此時并不能將(rcap2h,r
32、cap2l)的內(nèi)容重新裝入th2 和tl2 中。所以,當(dāng)定時器2 作為波特率發(fā)生器使用時,t2ex 可作為附加的外部中斷源來使用。需要注意的是,當(dāng)定時器2 工作于波特率器時,作為定時器運行(tr2=1)時,并不能訪問th2 和tl2。因為此時每個狀態(tài)時間定時器都會加1,對其讀寫將得到一個不確定的數(shù)值。然而,對rcap2 則可讀而不可寫,因為寫入操作將是重新裝載,寫入操作可能令寫和/或重裝載出錯。在訪問定時器2或rcap2 寄存器之前,應(yīng)將定時器關(guān)閉(清除tr2)??删幊虝r鐘輸出定時器2 可通過編程從p1.0 輸出一個占空比為50%的時鐘信號,如圖8 所示。p1.0 引腳除了是一個標準的i/o
33、口外,還可以通過編程使其作為定時/計數(shù)器2 的外部時鐘輸入和輸出占空比50%的時鐘脈沖。當(dāng)時鐘振蕩頻率為16mhz 時,輸出時鐘頻率范圍為61hz4mhz。當(dāng)設(shè)置定時/計數(shù)器2 為時鐘發(fā)生器時,c/t2(t2con .1)=0,t2oe (t2mod.1) =1,必須由tr2(t2con.2)啟動或停止定時器。時鐘輸出頻率取決于振蕩頻率和定時器2 捕獲寄存器(rcap2h,rcap2l)的重新裝載值,公式如下:輸出時鐘頻率=振蕩器頻率/4*65536-(rcp2h,rcp2l)在時鐘輸出方式下,定時器2 的翻轉(zhuǎn)不會產(chǎn)生中斷,這個特性與作為波特率發(fā)生器使用時相仿。定時器2 作為波特率發(fā)生器使用時
34、,還可作為時鐘發(fā)生器使用,但需要注意的是波特率和時鐘輸出頻率不能分開確定,這是因為它們同使用rcap2l和rcap2l。uart at89c52的uart 工作方式與at89c51 工作方式相同。中斷at89c52 共有6 個中斷向量:兩個外中斷(int0 和int1),3 個定時器中斷(定時器0、1、2)和串行口中斷。所有這些中斷源如圖9 所示。這些中斷源可通過分別設(shè)置專用寄存器ie 的置位或清0 來控制每一個中斷的允許或禁止。ie 也有一個總禁止位ea,它能控制所有中斷的允許或禁止。注意表5 中的ie.6 為保留位,在at89c51 中ie.5 也是保留位。程序員不應(yīng)將“1”寫入這些位,它
35、們是將來at89 系列產(chǎn)品作為擴展用的。定時器2 的中斷是由t2con 中的tf2 和exf2 邏輯或產(chǎn)生的,當(dāng)轉(zhuǎn)向中斷服務(wù)程序時,這些標志位不能被硬件清除,事實上,服務(wù)程序需確定是tf2 或exf2 產(chǎn)生中斷,而由軟件清除中斷標志位。定時器0 和定時器1 的標志位tf0 和tf1 在定時器溢出那個機器周期的s5p2 狀態(tài)置位,而會在下一個機器周期才查詢到該中斷標志。然而,定時器2 的標志位tf2 在定時器溢出的那個機器周期的s2p2 狀態(tài)置位,并在同一個機器周期內(nèi)查詢到該標志。時鐘振蕩器at89c52 中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳xtal1 和xtal2 分別是該放大器
36、的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激振蕩器,振蕩電路參見圖10。外接石英晶體(或陶瓷諧振器)及電容c1、c2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容c1、c2 雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pf10pf,而如使用陶瓷諧振器建議選擇40pf10f。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖10 右圖所示。這種情況下,外部時鐘脈沖接到xtal1 端,即內(nèi)部時鐘發(fā)生器的輸入端,xtal2 則懸空。由于外部時鐘信號是通過一
37、個2 分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。flash存儲器的編程at89c52單片機內(nèi)部有8k字節(jié)的flash perom,這個flash 存儲陣列出廠時已處于擦除狀態(tài)(即所有存儲單元的內(nèi)容均為ffh),用戶隨時可對其進行編程。編程接口可接收高電壓(+12v)或低電壓(vcc)的允許編程信號。低電壓編程模式適合于用戶在線編程系統(tǒng),而高電壓編程模式可與通用eprom 編程器兼容。at89c52 單片機中,有些屬于低電壓編程方式,而有些則是高電壓編程方式,用戶可從芯片上的型號和讀取芯片內(nèi)的簽名字
38、節(jié)獲得該信息。at89c52 的程序存儲器陣列是采用字節(jié)寫入方式編程的,每次寫入一個字節(jié),要對整個芯片內(nèi)的perom 程序存儲器寫入一個非空字節(jié),必須使用片擦除的方式將整個存儲器的內(nèi)容清除。編程方法編程前,須按表9 和圖11 所示設(shè)置好地址、數(shù)據(jù)及控制信號, at89c52 編程方法如下:1 在地址線上加上要編程單元的地址信號。2 在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。3 激活相應(yīng)的控制信號。4 在高電壓編程方式時,將ea/vpp 端加上+12v 編程電壓。5 每對flash 存儲陣列寫入一個字節(jié)或每寫入一個程序加密位,加上一個ale/prog 編程脈沖。每個字節(jié)寫入周期是自身定時的,通常約為1.5
39、ms。重復(fù)15 步驟,改變編程單元的地址和寫入的數(shù)據(jù),直到全部文件編程結(jié)束。3.1.2 ds1302簡介ds1302的結(jié)構(gòu)及工作原理ds1302 是美國dallas公司推出的一種高性能、低功耗、帶ram的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或ram數(shù)據(jù)。ds1302內(nèi)部有一個318的用于臨時性存放數(shù)據(jù)的ram寄存器。ds1302是ds1202的升級產(chǎn)品,與ds1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進行涓細電流充電的能力
40、。 引腳功能及結(jié)構(gòu)ds1302的引腳排列,其中vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc1+0.2v時,vcc2給ds1302供電。當(dāng)vcc2小于vcc1時,ds1302由vcc1供電。x1和x2是振蕩源,外接32.768khz晶振。rst是復(fù)位/片選線,通過把rst輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)rst為高電平時,所有的數(shù)據(jù)傳送被初始化,允許
41、對ds1302進行操作。如果在傳送過程中rst置為低電平,則會終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運行時,在vcc2.0v之前,rst必須保持低電平。只有在sclk為低電平時,才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細說明。sclk為時鐘輸入端。 下圖為ds1302的引腳功能圖: ds1302封裝圖ds1302的控制字節(jié)ds1302 的控制字如圖2所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入ds1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取ram數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要
42、進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。 數(shù)據(jù)輸入輸出(i/o)在控制指令字輸入后的下一個sclk時鐘的上升沿時,數(shù)據(jù)被寫入ds1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個sclk脈沖的下降沿讀出ds1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。ds1302的寄存器ds1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為bcd碼形式,其日歷、時間寄存器及其控制字見表1。 此外,ds1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與ram相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存
43、器內(nèi)容。 ds1302與ram相關(guān)的寄存器分為兩類:一類是單個ram單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為c0hfdh,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的ram寄存器,此方式下可一次性讀寫所有的ram的31個字節(jié),命令控制字為feh(寫)、ffh(讀)。 3.2 系統(tǒng)硬件架構(gòu) 本設(shè)計以模塊化的方式來進行硬件電路的設(shè)計和調(diào)試。單片機的模塊化就是把系統(tǒng)分成各個具有獨立功能又可以互相銜接的簡單模塊,將復(fù)雜難懂的指令、語法、編程及其電路分解,使設(shè)計簡單化。本設(shè)計的電路模塊可以分為穩(wěn)壓電源模塊、時鐘模塊、晶振模塊、液晶顯示模塊、按鍵模塊、蜂鳴器報警模塊等。3.2.
44、1 電源部分 圖 3-1 穩(wěn)壓電源如圖3.1所示,從外部引入4.5v的直流電,為時鐘芯片、單片機、復(fù)位電路等提供電源。3.2.2 復(fù)位與晶振電路 圖3-2 復(fù)位電路 圖3-3 晶振電路如圖3.2所示,復(fù)位電路主要由型號為10uf的電容, 10k的電阻以及按鍵s1構(gòu)成,s1接芯片的相應(yīng)引腳rst,當(dāng)開關(guān)按下時引腳rst為高電平1,斷開時引腳為低電平0。晶振電路中晶振為12mhz與 ds1302時鐘芯片相連接, 為時鐘芯片提供最為基本的脈沖信號的方法實現(xiàn)了在時鐘芯片中的計時作用。實驗板的時鐘振蕩源電路如圖3.3所示。該電路提供單片機工作所需的振蕩頻率,計算定時器初值即需此晶振頻率,在通信時也需知道
45、晶振頻率,以對波特率進行計算。3.2.3 液晶顯示電路 圖3-4 液晶顯示電路 液晶顯示電路部分,通過液晶屏與單片機相連接,再經(jīng)過進一步的編程,使電子時鐘的時間、調(diào)時、定時、同步都能夠明確的顯示出來,使人一目了然。3.2.4 按鍵電路 圖3-5 按鍵電路電子鐘的按鍵電路設(shè)有同步(p3.3),鬧鈴(p3.4),選定(p3.5),加(p3.6),減(p3.7)等五個基本按鍵。每按一下同步按鍵可以使主機與從機時間達到同步,按下鬧鈴鍵,在達到定時時間時有蜂鳴報警,按下選定鍵可以選定年月日時分秒的每一位,再按加、減鍵,而達到調(diào)時效果。 第4章 系統(tǒng)軟件設(shè)計 4.1 軟件設(shè)計的總體說明 本系統(tǒng)的程序采用c
46、語言編寫,為了便于修改和調(diào)試,系統(tǒng)軟件采用模塊化設(shè)計,程序的編寫編譯在keil軟件中完成。 首先對at89c52、ds1302、lcd1602進行初始化,日歷和時間信息通過lcd1602顯示出來。系統(tǒng)中有五個按鍵,即:設(shè)置鍵(選定)、切換鍵(鬧鐘)、上調(diào)鍵(加)、下調(diào)鍵(減)以及同步鍵。通過按鍵選定、加、減鍵可對系統(tǒng)時間進行修改;當(dāng)按下鬧鐘鍵,系統(tǒng)可調(diào)用鬧鐘程序,并可通過選定、加、減鍵對鬧鐘時間進行修改;當(dāng)按下同步鍵,主機系統(tǒng)可讀取從機系統(tǒng)的時間,并通過lcd顯示出來。4.2 主程序流程圖 圖4-1 主程序流程圖 第5章 系統(tǒng)的仿真及調(diào)試5.1 系統(tǒng)軟硬件調(diào)試調(diào)試工作分硬件調(diào)試和軟件調(diào)試兩部分
47、,調(diào)試方法介紹如下:首先,硬件調(diào)試主要是先搭建硬件平臺,然后利用萬用表等工具對電路檢查,最后應(yīng)用程序進行功能調(diào)試。硬件調(diào)試比較費時,需要細心和耐心,也需要熟練掌握電路原理。然后,可以直接應(yīng)用一些編輯或仿真軟件進行軟件調(diào)試,比如單片機c51編輯軟件keil。該軟件提供了一個集成開發(fā)環(huán)境uvision,它包括c編輯器、宏編輯器、連接器、庫管理和一個功能強人的仿真調(diào)試器。通過編譯、運行,可以檢查程序錯誤。但應(yīng)用此方法,仍需要十分了解所使用元器件的工作方式和管腳連接方式。存軟件調(diào)試過程中要仔細耐心,即便是多寫或少寫一兩個字符,都無法編譯成功。而有時往往在keil巾編譯、運行無錯,但燒錄到單片機中運行起
48、來就會出錯,很可能是編程時管腳或時序編輯得不對。還有一種方式,即應(yīng)用仿真軟件搭建電路的軟件平臺,再導(dǎo)入程序進行仿真調(diào)試。如果電路出錯,可以在計算機上方便的修改電路,程序出錯可以重新編輯程序,這種方法節(jié)時、省力,經(jīng)濟、方便。筆者應(yīng)用的仿真軟件為proteus。總之,調(diào)試過程是一個軟硬件相結(jié)合調(diào)試的過程,硬件電路是基礎(chǔ),軟件是檢測硬件電路和實現(xiàn)其功能的關(guān)鍵。在調(diào)試過程中,首先必須明確調(diào)試順序。例如:本設(shè)計是在單片機系統(tǒng)基礎(chǔ)上建立起米的,所以必須先確定單片機基礎(chǔ)電路能否正常工作。為了正確顯示時間,接下來還要確定顯示電路能否正常工作。硬件調(diào)試的過程,也是軟件調(diào)試的過程。然后,要準備好調(diào)試的工具。硬件調(diào)
49、試需要萬用表、示波器等,軟件調(diào)試一般需要諸如keil等仿真編輯器。筆者根據(jù)自己實際制作該多功能電時鐘的經(jīng)驗,將調(diào)試過程介紹如下:軟件調(diào)試時先進行單元測試,分別對各個代碼模塊進行測試,看其是否實現(xiàn)了規(guī)定功能,再把已經(jīng)測試過的模塊組合起來進行測試,一旦不能正確運行,要找出程序中的錯誤,確定大致的出錯位置,研究有關(guān)部分的錯誤程序,找出錯誤原因,修改設(shè)計和代碼,以排除錯誤。我們在程序編寫完成后,就可以利用仿真器進行初步調(diào)試,觀察在計算機里能否通過編譯與運行并達到設(shè)計的基本要求。在基本符合的情況下,利用仿真器與工作正常的硬件連接進行仿真調(diào)試;或用編程器把程序燒寫到芯片中,直接觀察能否正常運行。如果達不到
50、設(shè)計要求或者不能正常運行,可以直接在程序中進行修改。在系統(tǒng)上電開始測量前,要用萬用表的電壓檔對被測電壓進行估測,然后以此選擇適當(dāng)?shù)牧砍蹋乐闺妷哼^大燒壞硬件。首先用萬用表按照原理圖逐步檢查印刷板中各器件的電源及各引腳的連接是否正確,有否斷路、短路或者虛焊,尤其是給電路供電的電源部分要重點檢查,如果電壓沒有達到要求,要及時排查給予解決,以免燒壞芯片和其他元器件。系統(tǒng)調(diào)試中遇到的問題及解決的方法:1)由于源程序的多處錯誤,使得仿真無法通過,后經(jīng)過單步調(diào)試,把存在的錯誤一一排除,通過了軟件仿真。2)程序下載到硬件上之后,在檢查過程中發(fā)現(xiàn)年歷中的日期中出現(xiàn)了00日,所以軟件編程時出錯,經(jīng)過改正之后重新
51、下載調(diào)試正確。3)在燒錄芯片的過程中,由于選擇燒錄文件的錯誤及芯片自身問題,經(jīng)過多次多次燒錄,才燒錄正確。5.2 系統(tǒng)的仿真 5.2.1 仿真軟件的簡介本電子鐘的設(shè)計用的pretues仿真軟件設(shè)計電路并仿真。proteus isis是英國labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于windows操作系統(tǒng)上,可以仿真、分析(spice)各種模擬器件和集成電路,該軟件的特點是:實現(xiàn)了單片機仿真和spice電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、rs232動態(tài)仿真、i2c調(diào)試器、spi調(diào)試器、鍵盤和lcd系統(tǒng)仿真的功能;有各種虛擬儀器,如示
52、波器、邏輯分析儀、信號發(fā)生器等。支持主流單片機系統(tǒng)的仿真。目前支持的單片機類型有:68000系列、8051系列、avr系列、pic12系列、pic16系列、pic18系列、z80系列、hc11系列以及各種外圍芯片。提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點等調(diào)試功能,同時可以觀察各個變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境,如keil c51 uvision2等軟件。具有強大的原理圖繪制功能。總之,該軟件是一款集單片機和spice分析于一身的仿真軟件,功能極其強大。因為pretues仿真軟件中所有的情況都是在理想想
53、的條件下,但是與實際電路的工作還是有很大的差別,所以我們必需考慮到實際情況應(yīng)接入驅(qū)動限流等電路它才能被實際所應(yīng)用。5.2.2 電子鐘系統(tǒng)protues仿真結(jié)果按下同步按鍵前:按下同步按鍵后:此仿真結(jié)果的主要實現(xiàn) (1)將其電源鍵打開,按下電源開關(guān)即開始常工作,lcd液晶顯示屏顯示年、月、日、時、分、秒。(2)按鍵說明:復(fù)位鍵,當(dāng)發(fā)現(xiàn)系統(tǒng)運行不正常,進入死循環(huán),顯示數(shù)值。嚴重失真時,按復(fù)位鍵,其內(nèi)部功能為使用單片機復(fù)位。強行使單片機從頭開始運行,跳出錯誤區(qū)。鬧鐘顯示鍵,該鍵接外部中斷零(1nt0引腳)。通過中斷服務(wù)子程序來達到顯示鬧鐘時間的目的。中斷程序只進行一秒后返回主程序,顯示年、月、日、時、分、秒。調(diào)時鍵(選定)按下此鍵進入調(diào)時子程序,按一下調(diào)分鐘,兩下調(diào)時,三下調(diào)日期,四下調(diào)月份,五下調(diào)年份。加鍵每按一下增加一,減鍵每按一下減少一,三個鍵組合在一起完成調(diào)時功能。 按鬧鐘鍵可以顯示定時鬧鐘時間,并通過按選定、加、減三鍵可以進行具體日期時間調(diào)整,當(dāng)定時設(shè)定后,到預(yù)定時間后,時鐘會發(fā)出連續(xù)的蜂鳴聲。按同步鍵可以實現(xiàn)主機和從機的時間同步。 結(jié) 論 本文通過對同步電子時鐘的設(shè)計仿真,使自己對單片機和c語言有了進一步的溫故掌握。在設(shè)計過程中,吸收了前輩的一些先進的理論成果,我在設(shè)計
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北醫(yī)藥學(xué)院《生物醫(yī)藥倫理與藥事管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年房屋建筑防水分包合同
- 自貢四川自貢市第一人民醫(yī)院招聘針灸推拿技師筆試歷年參考題庫附帶答案詳解
- 綿陽2024年四川省綿陽第一中學(xué)第三批招聘教師3人筆試歷年參考題庫附帶答案詳解
- 玉溪云南玉溪市江川區(qū)醫(yī)共體招聘編制外人員6人筆試歷年參考題庫附帶答案詳解
- 2025年技術(shù)支持咨詢服務(wù)合同5篇
- 2025年文物收藏品鑒定與轉(zhuǎn)讓服務(wù)合同3篇
- 沈陽2025年中共沈陽市委黨校招聘高層次人才16人筆試歷年參考題庫附帶答案詳解
- 專業(yè)全新櫥柜安裝工程合同范本(2024年版)
- 2025年度租賃合同(含機器設(shè)備、房產(chǎn)、汽車等)2篇
- GB/T 12914-2008紙和紙板抗張強度的測定
- GB/T 1185-2006光學(xué)零件表面疵病
- ps6000自動化系統(tǒng)用戶操作及問題處理培訓(xùn)
- 家庭教養(yǎng)方式問卷(含評分標準)
- 城市軌道交通安全管理課件(完整版)
- 線纜包覆擠塑模設(shè)計和原理
- TSG ZF001-2006 安全閥安全技術(shù)監(jiān)察規(guī)程
- 部編版二年級語文下冊《蜘蛛開店》
- 鍋爐升降平臺管理
- 200m3╱h凈化水處理站設(shè)計方案
- 個體化健康教育記錄表格模板1
評論
0/150
提交評論