![[電子電路]基于單片機(jī)的數(shù)字電子時(shí)鐘的設(shè)計(jì)與制作.doc_第1頁](http://file.renrendoc.com/FileRoot1/2019-12/16/c67f8002-6364-4626-97b3-9e28c8eb890c/c67f8002-6364-4626-97b3-9e28c8eb890c1.gif)
![[電子電路]基于單片機(jī)的數(shù)字電子時(shí)鐘的設(shè)計(jì)與制作.doc_第2頁](http://file.renrendoc.com/FileRoot1/2019-12/16/c67f8002-6364-4626-97b3-9e28c8eb890c/c67f8002-6364-4626-97b3-9e28c8eb890c2.gif)
![[電子電路]基于單片機(jī)的數(shù)字電子時(shí)鐘的設(shè)計(jì)與制作.doc_第3頁](http://file.renrendoc.com/FileRoot1/2019-12/16/c67f8002-6364-4626-97b3-9e28c8eb890c/c67f8002-6364-4626-97b3-9e28c8eb890c3.gif)
![[電子電路]基于單片機(jī)的數(shù)字電子時(shí)鐘的設(shè)計(jì)與制作.doc_第4頁](http://file.renrendoc.com/FileRoot1/2019-12/16/c67f8002-6364-4626-97b3-9e28c8eb890c/c67f8002-6364-4626-97b3-9e28c8eb890c4.gif)
![[電子電路]基于單片機(jī)的數(shù)字電子時(shí)鐘的設(shè)計(jì)與制作.doc_第5頁](http://file.renrendoc.com/FileRoot1/2019-12/16/c67f8002-6364-4626-97b3-9e28c8eb890c/c67f8002-6364-4626-97b3-9e28c8eb890c5.gif)
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
成 績: 江西科技師范大學(xué) 畢業(yè)設(shè)計(jì)(論文)題 目: 基于單片機(jī)的數(shù)字電子時(shí)鐘的設(shè)計(jì)與制作: based on scm in digital clock the design and manufacture 院(系): 通信與電子學(xué)院 專 業(yè): 電子信息工程 學(xué)生姓名: 曾光輝 學(xué) 號(hào): 20083470 指導(dǎo)教師: 占華林 年 月 日目錄1. 前言.1 1.1電子時(shí)鐘研究意義及簡介 1 1.2數(shù)字電子時(shí)鐘功能. 12.基于單片機(jī)的數(shù)字電子時(shí)鐘的設(shè)計(jì)與方案選擇.2 2.1主控制器 2 2.2時(shí)鐘控制方案比較. 22.3鍵盤顯示方案比較. 33.系統(tǒng)功能實(shí)現(xiàn)總體設(shè)計(jì)思路 . 3 3.1 系統(tǒng)硬件介紹. 33.2數(shù)字電子鐘的總體設(shè)計(jì) 73.3數(shù)字電子鐘的功能. 74.基于單片機(jī)的數(shù)字電子鐘系統(tǒng)硬件設(shè)計(jì). 8 4.1 時(shí)鐘電路模塊. 8 4.2復(fù)位電路模塊. 9 4.3lcd1602顯示電路模塊. 9 4.4按鍵電路模塊. 10 4.5鬧鈴模塊. 104.6系統(tǒng)硬件電路圖. 115. 基于單片機(jī)的數(shù)字電子鐘系統(tǒng)的軟件設(shè)計(jì). 135.1 系統(tǒng)軟件設(shè)計(jì). 135.2主程序設(shè)計(jì). 135.3按鍵掃描程序設(shè)計(jì). 14 5.4時(shí)間更新函數(shù)程序設(shè)計(jì). 16 5.5秒表更新函數(shù)程序設(shè)計(jì). 21 5.6顯示切換函數(shù)程序設(shè)計(jì). 246.實(shí)物和結(jié)果分析. 296.1 程序調(diào)試. 296.2 電路調(diào)試. 316.3課程設(shè)計(jì)結(jié)果分析. 327.總結(jié). 33參考文獻(xiàn). 33附錄. 34元件清單. 34控制電路的c語言源程序. 35基于單片機(jī)的數(shù)字電子時(shí)鐘的設(shè)計(jì)與制作 摘要; 本系統(tǒng)由核心元件at89c51單片機(jī)、lcd1602、獨(dú)立按鍵、蜂鳴器構(gòu)成,用來實(shí)現(xiàn)數(shù)字電子鐘和秒表功能。主控部分是由單片機(jī)和獨(dú)立按鍵兩部分構(gòu)成,顯示部分是lcd1602顯示模塊構(gòu)成,鬧鈴部分是外接蜂鳴器構(gòu)成。實(shí)現(xiàn)了秒表和數(shù)字電子時(shí)鐘的功能。工作過程中有各種工作狀,顯示年月日,同時(shí)顯示時(shí)鐘;而在秒表工作狀態(tài)時(shí)只顯示啟動(dòng)秒表后或暫停秒表后的當(dāng)前累計(jì)的時(shí)間。 關(guān)鍵詞: 單片機(jī) 時(shí)鐘 秒表 at89c511. 前言1.1電子時(shí)鐘研究意義及簡介時(shí)鐘,是我們生活中不可缺少的,隨著時(shí)代的發(fā)展,人們對時(shí)鐘的要求越來越高,這就要我們對時(shí)鐘的設(shè)計(jì)的要求也越來越來高。我們用過的機(jī)械時(shí)鐘,它成本高,內(nèi)部結(jié)構(gòu)復(fù)雜,功能少;而采用集成電路的時(shí)鐘,它電路較復(fù)雜,都不符合這個(gè)時(shí)代的設(shè)計(jì)理念。通過研究對比我們選擇設(shè)計(jì)一款基于單片機(jī)的簡易電子時(shí)鐘,電子時(shí)鐘一般由震蕩器,分頻器,譯碼器,顯示器等部分組成,這些都是數(shù)字電路最基本的,應(yīng)用最廣的電路。它成本低,體積小,簡單實(shí)用,功能強(qiáng)大。這款簡易電子時(shí)鐘使用at89c51單片機(jī)芯片控制電路,單片機(jī)控制電路簡單且省去了很多復(fù)雜的線路,使得電路簡明易懂,使用鍵盤鍵上的按鍵來調(diào)整時(shí)鐘的年、月、日、時(shí)、分、秒以及鬧鈴,用一揚(yáng)聲器來進(jìn)行定時(shí)提醒,用lcd1602來進(jìn)行顯示,同時(shí)使用c語言程序來控制整個(gè)時(shí)鐘顯示,使得編程變得更容易。1.2數(shù)字電子時(shí)鐘功能電子時(shí)鐘主要是利用電子技術(shù)將時(shí)鐘電子化,數(shù)字化,擁有時(shí)間精確、體積小、界面友好、可擴(kuò)展性能強(qiáng)等特點(diǎn),被廣泛應(yīng)用于生活和工作當(dāng)中。本簡易電子時(shí)鐘設(shè)計(jì)功能主要為:1.年月日時(shí)分秒顯示及校對功能,24小時(shí)制。2.具有鬧鈴功能。3.具有秒表功能。2.基于單片機(jī)的數(shù)字電子時(shí)鐘的設(shè)計(jì)與制作方案選擇根據(jù)題目要求需求,本系統(tǒng)主要實(shí)現(xiàn)微波爐的用戶輸入控制、顯示控制、工作控制和時(shí)鐘控制和音響控制,而鍵盤和顯示分部尤其重要。對于這樣一個(gè)系統(tǒng)使用單片機(jī)控制系統(tǒng)加上外圍電路將會(huì)比較容易實(shí)現(xiàn),下面對各部分分別進(jìn)行論證。 2.1主控制器方案一 采用數(shù)字邏輯芯片。本系統(tǒng)有功能設(shè)置、數(shù)據(jù)裝入、定時(shí)、顯示、音響控制多個(gè)功能模塊。各個(gè)狀態(tài)保持或轉(zhuǎn)移的條件依賴于鍵盤控制信號(hào)。由于鍵盤控制信號(hào)繁多,系統(tǒng)的邏輯狀態(tài)以及相互轉(zhuǎn)移更是復(fù)雜,用純粹的數(shù)字電路或小規(guī)模的可編程邏輯電路實(shí)現(xiàn)該系統(tǒng)有一定的困難,需要用中大規(guī)模的可編程邏輯電路。這樣,系統(tǒng)的成本就會(huì)急劇上升相對于方案二。因此,本設(shè)計(jì)并未采用這種方案。方案二 采用單片機(jī)作為整個(gè)控制系統(tǒng)的核心。由于單片機(jī)具有體積小、成本低、可靠性高、抗干擾能力強(qiáng)、應(yīng)用靈活、開發(fā)效率高、易于被產(chǎn)品化等優(yōu)點(diǎn),其具有很強(qiáng)的面向控制的能力,自70年代以來,在很多領(lǐng)域得到廣泛的應(yīng)用。單片機(jī)有8的位,如51系列;有16位的如98系列;還有32位的,如當(dāng)前市場比較熱門的arm單片機(jī)。單片機(jī)比較容易實(shí)現(xiàn)系統(tǒng)的智能化控制,而且方便,經(jīng)濟(jì)。鑒于市場上常見的51系列8位單片機(jī)的售價(jià)比較低廉,技術(shù)成熟,對于我們的系統(tǒng)在控制上完全能夠勝任。我們的設(shè)計(jì)采用at89c51型單片機(jī)。本系統(tǒng)的主控制器采用at89c51單片機(jī)作為整個(gè)控制系統(tǒng)的核心。2.2時(shí)鐘控制方案比較方案一 使用專用時(shí)鐘芯片。使用微控制器控制專用時(shí)鐘芯片實(shí)現(xiàn)計(jì)時(shí)控制,這種方案有著計(jì)時(shí)精度高、控制簡單的優(yōu)點(diǎn),而且更易于實(shí)現(xiàn)日期/時(shí)間顯示、定時(shí)烹調(diào)等計(jì)時(shí)擴(kuò)展功能。方案二 采用小規(guī)模集成元件定時(shí)此方案主要使用計(jì)數(shù)器/分頻器。該方法價(jià)格便宜,但是接線復(fù)雜,設(shè)計(jì)也比較困難,對時(shí)序要求比較高。同時(shí)該方案功能單一,也無法實(shí)現(xiàn)復(fù)雜功能,可擴(kuò)展性差。也不能實(shí)現(xiàn)一些人性化的界面設(shè)計(jì)。方案三 利用用mcu的內(nèi)部定時(shí)器軟件現(xiàn)實(shí)時(shí)鐘功能。鑒于本系統(tǒng)采用at89c51單片機(jī)作為整個(gè)控制系統(tǒng)的核心,充分利用單片機(jī)內(nèi)部的時(shí)鐘電路,進(jìn)行定時(shí)控制,從而減少電路設(shè)計(jì)的復(fù)雜度,而且能夠減少整套系統(tǒng)的成本。另外,單片機(jī)能夠?qū)崿F(xiàn)復(fù)雜功能,充分利用單片機(jī)擴(kuò)展靈活特性,通過設(shè)計(jì)軟件,能夠設(shè)計(jì)出友好的人機(jī)界面接口和性能。況且單片機(jī)價(jià)格也比較便宜,性價(jià)比很高。 本系統(tǒng)時(shí)鐘控制部分我們采用了方案三,從而充分體現(xiàn)出高性價(jià)比。2.3鍵盤顯示方案比較方案一 采用并行口擴(kuò)展芯片擴(kuò)展并行口的方法來設(shè)計(jì)鍵顯系統(tǒng)。采用鍵盤顯示專用控制器8279顯示時(shí)鐘、火力、倒計(jì)時(shí)等等功能,而用led顯示各種工作狀態(tài)的指示信號(hào)。這種方法鍵盤控制簡單,但8279只能顯示數(shù)字信息,顯示能力有限,不靈活。如果采用這種方法,為了表達(dá)更多的信息,就必需使用許多l(xiāng)ed來引導(dǎo)用戶進(jìn)行操作。方案二 中文字符顯示和端口鍵盤掃描采用lcd液晶字符顯示。字符顯示具有強(qiáng)大的信息表達(dá)能力,采用這種顯示方法只需少量的鍵盤加上軟件配合,就可以實(shí)現(xiàn)多種用戶功能控制和選擇,目前市場上lcd1602系列的液晶顯示模塊技術(shù)比較成熟,這是一種能夠顯示2行,每行16個(gè)字符的液晶顯示模塊。而少量的鍵盤,使用軟件掃描方法將會(huì)比使用8279經(jīng)濟(jì)許多,而且控制起來也不為了實(shí)現(xiàn)更多的功能而又減少成本。我們采用了方案二作為本系統(tǒng)的鍵盤顯示。綜上所述,我們的總體設(shè)計(jì)思想是硬件盡量簡單,用軟件實(shí)現(xiàn)更多的功能,這樣就可以用比較低的成本來實(shí)現(xiàn)這個(gè)系統(tǒng) 。本系統(tǒng)采用89c51作為主控部分,lcd1602液晶作為顯示部分,鍵盤使用軟件掃描方法,使用一個(gè)蜂鳴器作為聲音提示部分。3.系統(tǒng)功能實(shí)現(xiàn)總體設(shè)計(jì)思路3.1.系統(tǒng)器件介紹1. at89c51單片機(jī)的結(jié)構(gòu) at89c51單片機(jī)是美國atmel公司生產(chǎn)低電壓,高性能cmos 8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫的只讀程序存儲(chǔ)器(eprom)和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),器件采用atmel公司的高密度、非易失性存取技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(cpu)和flash 存儲(chǔ)單元,功能強(qiáng)大。at89c51單片機(jī)可提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。圖3-1為at89c51單片機(jī)的基本組成功能方塊圖。有圖可見,在這一塊芯片上,集成了一臺(tái)微型計(jì)算機(jī)的主要組成部分,其中包括cpu、存儲(chǔ)器、可編程i/o口、定時(shí)器/計(jì)數(shù)器、串行口等,各部分通過內(nèi)部總線相連。下面介紹幾個(gè)主要部分。圖3-1 at89c51 功能方塊圖1(1)中央處理器(cpu)中央處理器是單片機(jī)最核心的部分,是單片機(jī)的大腦和心臟,主要完成運(yùn)算和控制功能。at89c51的cpu是一個(gè)字長為8位的中央處理單元,即它對數(shù)據(jù)的處理是按字節(jié)為單位進(jìn)行的。(2)內(nèi)部數(shù)據(jù)存儲(chǔ)器(內(nèi)部ram) at89c51 中共有256個(gè)ram單元,但其中能作為寄存器供用戶使用的僅有前面128個(gè),后128個(gè)被專用寄存器占用。(3)內(nèi)部程序存儲(chǔ)器(內(nèi)部rom) at89c51 共有4 kb掩膜rom,用于存放程序、原始數(shù)據(jù)等。(4)定時(shí)器/計(jì)數(shù)器at89c51 共有2 個(gè)16 位的定時(shí)器/計(jì)數(shù)器,可以實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能。(5)并行i/o 口 at89c51 共有4 個(gè)8 位的i/o口(p0、p1、p2、p3口),可以實(shí)現(xiàn)數(shù)據(jù)的并行輸入、輸出。(6)串行口at89c51有1 個(gè)全雙工的可編程串行口,以實(shí)現(xiàn)單片機(jī)和其他設(shè)備之間的串行數(shù)據(jù)傳送。(7)時(shí)鐘電路 at89c51 單片機(jī)內(nèi)部有時(shí)鐘電路,但晶振和微調(diào)電容需要外接。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列。(8)終端系統(tǒng) at89c51 的中斷系統(tǒng)功能較強(qiáng),可以滿足一般控制應(yīng)用的需要。它共有5 個(gè)中斷源:2 個(gè)外部中斷源/into和/int1 ;3 個(gè)內(nèi)部中斷源,即2個(gè)定時(shí)/計(jì)數(shù)中斷,1個(gè)串行口中斷。由上所述,at89c51雖然是一塊芯片,但它包括了構(gòu)成計(jì)算機(jī)的基本部件,因此可以說它是一臺(tái)簡單的計(jì)算機(jī),它的引腳如圖3-2所示。 圖3-2 dip封裝引腳圖10vcc:供電電壓。vss:接地。p0口:p0口為一個(gè)8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗(yàn)時(shí),p1口作為第八位地址接收。p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門電流,當(dāng)p2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 p3口:p3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。p3口也可作為at89c51的一些特殊功能口,如下表所示:p3口管腳 備選功能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 /int0(外部中斷0)p3.3 /int1(外部中斷1)p3.4 t0(計(jì)時(shí)器0外部輸入)p3.5 t1(計(jì)時(shí)器1外部輸入)p3.6 /wr(外部數(shù)據(jù)存儲(chǔ)器寫選通)p3.7 /rd(外部數(shù)據(jù)存儲(chǔ)器讀選通)p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周期的高電平時(shí)間。ale/prog:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許端的輸出電平用于鎖存地址的地址字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí), ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。/psen:外部程序存儲(chǔ)器的選通信號(hào)端。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/psen信號(hào)將不出現(xiàn)。/ea/vpp:當(dāng)/ea保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/ea將內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出1。2. lcd1602液晶的介紹 (1) lcd 1602特征及應(yīng)用微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中(2) lcd 1602指令集1602通過d0d7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設(shè)置: (初始化)0011 0000 0x38 設(shè)置162顯示,57點(diǎn)陣,8位數(shù)據(jù)接口;顯示開關(guān)及光標(biāo)設(shè)置: (初始化)0000 1dcb d顯示(1有效)、c光標(biāo)顯示(1有效)、b光標(biāo)閃爍(1有效)0000 01ns n=1(讀或?qū)懸粋€(gè)字符后地址指針加1 &光標(biāo)加1),n=0(讀或?qū)懸粋€(gè)字符后地址指針減1 &光標(biāo)減1),s=1 且 n=1 (當(dāng)寫一個(gè)字符后,整屏顯示左移)s=0 當(dāng)寫一個(gè)字符后,整屏顯示不移動(dòng)數(shù)據(jù)指針設(shè)置:數(shù)據(jù)首地址為80h,所以數(shù)據(jù)地址為80h+地址碼(0-27h,40-67h)其他設(shè)置:01h(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02h(顯示回車,數(shù)據(jù)指針=0)。(3) lcd1602管腳功能1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:vss為電源地第2腳:vdd接5v電源正極第3腳:v0為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高(對比度過高時(shí)會(huì) 產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10k的電位器調(diào)整對比度)。第4腳:rs為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。第5腳:rw為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。第6腳:e(或en)端為使能(enable)端。第714腳:d0d7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。3.2數(shù)字電子鐘的總體設(shè)計(jì)此設(shè)計(jì)原理框圖如下圖3-2-1所示,此電路包括以下三個(gè)部分:單片機(jī),鍵盤,鬧鈴電路。采用atc89c52芯片和lcd1602等來實(shí)現(xiàn)電子時(shí)鐘的功能。51單片機(jī)lcd1602顯示獨(dú)立鍵盤鬧鈴電路圖3-2-13.3 數(shù)字電子鐘的功能電子時(shí)鐘主要是利用電子技術(shù)將時(shí)鐘電子化,數(shù)字化,擁有時(shí)間精確、體積小、界面友好、可擴(kuò)展性能強(qiáng)等特點(diǎn),被廣泛應(yīng)用于生活和工作當(dāng)中。本簡易電子時(shí)鐘設(shè)計(jì)功能主要為:1.年月日時(shí)分秒顯示及校對功能,24小時(shí)制。2.具有鬧鈴功能。3.具有秒表功能。4.基于單片機(jī)的數(shù)字電子鐘系統(tǒng)硬件設(shè)計(jì)該數(shù)字鐘工作原理是用一片at89c51單片機(jī)通過編程去控制lcd1602實(shí)現(xiàn)的。通過2個(gè)開關(guān)控制來進(jìn)行時(shí)間的調(diào)節(jié)以及秒表功能,p2.0(key1)口控制按鍵,當(dāng)系統(tǒng)處于正常時(shí)間顯示并且按下此鍵時(shí),可以進(jìn)入秒表功能和時(shí)間功能的切換,此鍵還可以作為時(shí)間和日期以及鬧鈴的調(diào)整位選中鍵,當(dāng)系統(tǒng)處于時(shí)間顯示模式時(shí),按此鍵可以選中相應(yīng)的需要調(diào)整的位。當(dāng)系統(tǒng)處于時(shí)間顯示模式時(shí),p2.1(key2)口控制按鍵,按此鍵對相應(yīng)的選中位進(jìn)行加,當(dāng)系統(tǒng)處于處于秒表工作模式時(shí)按此鍵可以控制秒表計(jì)時(shí)的啟動(dòng)和暫停。其工作流程:1.年月日時(shí)分秒顯示。通電后lcd自動(dòng)顯示c語言程序設(shè)置好的默認(rèn)時(shí)間2.鬧鐘顯示和設(shè)定。通電后,a的右邊顯示的是默認(rèn)的鬧鐘時(shí)間,通過key1和key2可以設(shè)置鬧鈴時(shí)間。3.秒表顯示以及啟動(dòng)和暫停以及清零。處于正常顯示時(shí)間模式下時(shí)按下key1釋放后可以進(jìn)入秒表模式,前3次按下key2的功能依次為啟動(dòng)停止清零,每按3次key2為一個(gè)輪回。4.1時(shí)鐘電路模塊下圖4-1-1所示為時(shí)鐘電路原理圖,在at89c51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸出端為引腳xtal2,輸入為芯片引腳xtal1。而在芯片外部,xtal1和xtal2之間跨接晶體振蕩器和微調(diào)電容,構(gòu)成一個(gè)穩(wěn)定的自激振蕩電路,電路產(chǎn)生的振蕩脈沖經(jīng)過觸發(fā)器進(jìn)行十二分頻之后,便成為單片機(jī)的時(shí)鐘信號(hào)。 圖3-1-14.2復(fù)位電路模塊下圖4-2-1所示為復(fù)位電路原理圖,在單片機(jī)的實(shí)際應(yīng)用系統(tǒng)中,除單片機(jī)本身需復(fù)位以外,外部擴(kuò)展的i/o接口電路等也需要一個(gè)復(fù)位,因此需要一個(gè)系統(tǒng)的同步復(fù)位信號(hào),即單片機(jī)復(fù)位后,cpu開始工作,外部的電路一定要復(fù)位好,以保證cpu有效地對外部電路進(jìn)行初始化編程。單片機(jī)復(fù)位的條件是:必須使rst/vpd 或rst引腳加上持續(xù)兩個(gè)機(jī)器周期(即24個(gè)振蕩周期)的高電平。電路為上電復(fù)位電路,它是利用電容充電來實(shí)現(xiàn)的。在接電瞬間,rst端的電位與vcc相同,隨著充電電流的減少,rst的電位逐漸降低。只要保證rst為高電平時(shí)間大于兩個(gè)機(jī)器周期,就能正常復(fù)位。 圖4-2-14.3 lcd1602顯示電路模塊下圖4-3-1所示為lcd1602顯示模塊電路原理圖 圖4-3-14.4按鍵電路模塊下圖4-4-1所示為獨(dú)立按鍵模塊電路原理圖,根據(jù)此電子時(shí)鐘功能要求,需要設(shè)置以下兩個(gè)功能鍵:工作模式鍵(key1),模式輔助鍵(key2)。按照鍵盤與cpu的連接方式可分為獨(dú)立鍵盤和矩陣鍵盤。獨(dú)立式鍵盤是各個(gè)按鍵相互獨(dú)立,每個(gè)按鍵占用一個(gè)i/o口,外加上拉電阻,每個(gè)i/o口上的按鍵不會(huì)影響到其他i/o口的按鍵工作狀態(tài)。獨(dú)立式鍵盤電路配置靈活,軟件結(jié)構(gòu)簡單,所以本設(shè)計(jì)采用獨(dú)立式鍵盤。圖4-4-14.5鬧鈴模塊下圖4-5-1所示為鬧鈴模塊電路原理圖,鬧鈴模式時(shí),設(shè)定好鬧鈴時(shí)間,鬧鈴時(shí)間有時(shí)和分,當(dāng)設(shè)定好的鬧鈴時(shí)間跟系統(tǒng)的當(dāng)前時(shí)間的時(shí)和分相等時(shí),系統(tǒng)給p2.2端口送低交替的高低電平,蜂鳴器發(fā)出一定頻率報(bào)警聲,一分鐘后報(bào)警聲停止,如果這一分鐘內(nèi)有按鍵按下則報(bào)警聲也停止。圖4-5-14.6系統(tǒng)硬件電路圖下圖4-6-1所示系統(tǒng)電路原理圖, 該數(shù)字鐘工作原理是用一片stc89c52單片機(jī)通過編程去控制lcd1602實(shí)現(xiàn)的。通過2個(gè)開關(guān)控制來進(jìn)行時(shí)間的調(diào)節(jié)以及秒表功能,p2.0(key1)口控制按鍵,當(dāng)系統(tǒng)處于正常時(shí)間顯示并且按下此鍵時(shí),可以進(jìn)入秒表功能和時(shí)間功能的切換,此鍵還可以作為時(shí)間和日期以及鬧鈴的調(diào)整位選中鍵,當(dāng)系統(tǒng)處于時(shí)間顯示模式時(shí),按此鍵可以選中相應(yīng)的需要調(diào)整的位。當(dāng)系統(tǒng)處于時(shí)間顯示模式時(shí),p2.1(key2)口控制按鍵,按此鍵對相應(yīng)的選中位進(jìn)行加,當(dāng)系統(tǒng)處于處于秒表工作模式時(shí)按此鍵可以控制秒表計(jì)時(shí)的啟動(dòng)和暫停。其工作流程:1.年月日時(shí)分秒顯示。通電后lcd自動(dòng)顯示c語言程序設(shè)置好的默認(rèn)時(shí)間2.鬧鐘顯示和設(shè)定。通電后,a的右邊顯示的是默認(rèn)的鬧鐘時(shí)間,通過key1和key2可以設(shè)置鬧鈴時(shí)間。3.秒表顯示以及啟動(dòng)和暫停以及清零。處于正常顯示時(shí)間模式下時(shí)按下key1釋放后可以進(jìn)入秒表模式,前3次按下key2的功能依次為啟動(dòng)停止清零,每按3次key2為一個(gè)輪回。 圖4-6-15.基于單片機(jī)的數(shù)字電子鐘系統(tǒng)的軟件設(shè)計(jì)5.1系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)軟件包含四個(gè)部分:主程序,定時(shí)器掃描程序,按鍵掃描程序,按鍵處理程序;通過這四個(gè)部分可以實(shí)現(xiàn)數(shù)字電子鐘的功能設(shè)計(jì)。5.2主程序設(shè)計(jì)程序設(shè)計(jì)主要是通過單片機(jī)內(nèi)部timer0和timer1產(chǎn)生系統(tǒng)時(shí)鐘信號(hào),經(jīng)過單片機(jī)的運(yùn)算分別得到時(shí)間的 年 月 日 時(shí) 分 秒 和秒表的 時(shí) 分 秒 毫秒,單片機(jī)在主程序中循環(huán)掃描按鍵端口,根據(jù)返回的鍵值分別將這些數(shù)據(jù)傳給lcd1602對應(yīng)顯示出來。5.2.1實(shí)現(xiàn)功能 程序?qū)崿F(xiàn)的功能是:正常顯示 年 月 日 和 時(shí) 分 秒 以及鬧鐘的 時(shí) 分。若單片機(jī)檢測到key1第一次按下并釋放則lcd切換到顯示秒表模式00:00:00:00,第二次按下key2并釋放則返回到時(shí)鐘顯示模式。在時(shí)鐘正常顯示模式下若前5按下key2按鍵并釋放則一次選中鬧鐘的 時(shí) 分和時(shí)鐘的 分 時(shí) 年 月 日,選中位會(huì)出現(xiàn)光標(biāo)閃爍并且時(shí)鐘不自動(dòng)走動(dòng),第6次按下key2并釋放之后則正常顯示時(shí)鐘,6次為一個(gè)循環(huán)。在光標(biāo)閃爍的時(shí)候若按下key1并且釋放則可以對相應(yīng)位進(jìn)行校正。若在秒表顯示模式下第一次按下key2并釋放則啟動(dòng)秒表計(jì)時(shí),第二次按下key2釋放后則暫停秒表,第三次按下key2釋放后則秒表清零,三次為一個(gè)循環(huán)。5.2.2工作流程圖 通過以上分析可得圖5-2系統(tǒng)工作流程圖: 圖5-2-1 5.3按鍵掃描程序設(shè)計(jì)5.3.1實(shí)現(xiàn)功能當(dāng)系統(tǒng)檢測到有按鍵按下時(shí)返回相應(yīng)非零的鍵值,否則返回零。5.3.2按鍵掃描流程圖(如圖5-3-1) 圖5-3-15.3.3按鍵掃描部分代碼unsigned char key_scan(void)static unsigned char value;/鍵值static unsigned char do_key;/執(zhí)行相應(yīng)命令標(biāo)識(shí)static unsigned char key_scan_step;/鍵盤掃描步驟if(key_scan_step=0)key_value = 0;if(do_key=0)if(key & 0x03 != 0x03)t1=0;do_key=1;if(t1=key_shake_time)&(key & 0x03) != 0x03)value = key & 0x03;do_key = 0;key_scan_step = 1;if(key_scan_step=1)&(key & 0x03) = 0x03)key_scan_step = 0;switch(value)case 0x02 :value = 1;break;case 0x01 :value = 2;break;case 0x03 :value = 0;break;default :value = 0;break;return(value);elsereturn(0);5.4時(shí)間更新函數(shù)處理程序5.4.1實(shí)現(xiàn)功能通過對t0值的判斷來得到 秒 分 時(shí) 日 月 年 的計(jì)算5.4.2工作流程圖(如圖5-2-1) 圖5-2-15.4.2時(shí)間更新函數(shù)部分代碼void update_time(void)if(t0=20)t0=0;time.second+;if(time.second59)time.second=0;time.minute+;if(time.minute59)time.minute=0;time.hour+;if(time.hour23)time.hour=0;time.day+;switch(time.month)case 1:case 3:case 5:case 7:case 8:case 10:case 12:if(time.day31)time.day=1;time.month+;if(time.month12)time.month=1;time.year+;if(time.year 2060)time.year = 2012;break;case 4:case 6:case 9:case 11:if(time.day30)time.day=1;time.month+;if(time.month12)time.month=1;time.year+;if(time.year 2060)time.year = 2012;break; case2:if(time.year/4=0)&(time.year/100!=0)|(time.year/400=0)&(time.day29) time.day=1;time.month+;if(time.month12)time.month=1;time.year+;if(time.year max_year)time.year = min_year; else if(time.day28) time.day=1;time.month+;if(time.month12)time.month=1;time.year+;if(time.year 2060)time.year = 2012; break;default:break;if(model_flag = 0)write_lcd(0x8c,wcmd);write_lcd(time.day%10+0,wdata);write_lcd(0x8b,wcmd);write_lcd(time.day/10+0,wdata);write_lcd(0x89,wcmd);write_lcd(time.month%10+0,wdata);write_lcd(0x88,wcmd);write_lcd(time.month/10+0,wdata);write_lcd(0x83,wcmd);write_lcd(time.year/1000)+0,wdata);write_lcd(0x84,wcmd);write_lcd(time.year%1000/100)+0,wdata);write_lcd(0x85,wcmd);write_lcd(time.year%1000%100/10)+0,wdata);write_lcd(0x86,wcmd);write_lcd(time.year%10+0,wdata);if(model_flag = 0)write_lcd(0xc1,wcmd);write_lcd(time.hour%10+0,wdata);write_lcd(0xc0,wcmd);write_lcd(time.hour/10+0,wdata);if(model_flag = 0)write_lcd(0xc4,wcmd);write_lcd(time.minute%10+0,wdata);write_lcd(0xc3,wcmd);write_lcd(time.minute/10+0,wdata);if(model_flag = 0)write_lcd(0xc7,wcmd);write_lcd(time.second%10+0,wdata);write_lcd(0xc6,wcmd);write_lcd(time.second/10+0,wdata);5.5 秒表更新函數(shù)處理程序5.5.1實(shí)現(xiàn)功能通過對t1值的判斷來得到秒表的毫秒 秒 分 時(shí) 的計(jì)算5.5.2工作流程圖(如圖5-5-1)圖5-5-15.5.3函數(shù)部分代碼void update_stop_watch(void)if(sw_t1=1)sw_t1=0;time.sw_msecond+;if(time.sw_msecond99)time.sw_msecond=0;time.sw_second+;if(time.sw_second59)time.sw_second=0;time.sw_minute+;if(time.sw_minute59)time.sw_minute=0;time.sw_hour+;if(time.sw_hour23)time.sw_hour=0;if(model_flag = 1)write_lcd(0xc3,wcmd);write_lcd(time.sw_hour%10+0,wdata);write_lcd(0xc2,wcmd);write_lcd(time.sw_hour/10+0,wdata);if(model_flag = 1)write_lcd(0xc6,wcmd);write_lcd(time.sw_minute%10+0,wdata);write_lcd(0xc5,wcmd);write_lcd(time.sw_minute/10+0,wdata);if(model_flag = 1)write_lcd(0xc9,wcmd);write_lcd(time.sw_second%10+0,wdata);write_lcd(0xc8,wcmd);write_lcd(time.sw_second/10+0,wdata);if(model_flag = 1)write_lcd(0xcc,wcmd);write_lcd(time.sw_msecond%10+0,wdata);write_lcd(0xcb,wcmd);write_lcd(time.sw_msecond/10+0,wdata);5.6顯示切換函數(shù)處理程序5.6.1實(shí)現(xiàn)功能通過對模式標(biāo)志位model_flag值的判斷來決定顯示器的顯示模式5.6.2工作流程圖(如圖4-6-1)圖5-6-15.6.3顯示切換函數(shù)部分代碼void shift_display(void)if(model_flag = 0 & time_change_flag = 0 & shift_flag =0)shift_flag = 1;dowrite_lcd(0x01,wcmd);/清屏write_lcd(0x8b,wcmd);write_lcd(time.day/10+0,wdata);write_lcd(0x8b,wcmd);write_lcd(time.day/10+0,wdata);write_lcd(0x8c,wcmd);write_lcd(time.day%10+0,wdata);write_lcd(0x8a,wcmd);write_lcd(-,wdata);write_lcd(0x88,wcmd);write_lcd(time.month/10+0,wdata);write_lcd(0x89,wcmd);write_lcd(time.month%10+0,wdata);write_lcd(0x87,wcmd);write_lcd(-,wdata);write_lcd(0x83,wcmd);write_lcd(time.year)/1000+0,wdata);write_lcd(0x84,wcmd);write_lcd(time.year%1000/100+0,wdata);write_lcd(0x85,wcmd);write_lcd(time.year)%1000%100/10+0,wdata);write_lcd(0x86,wcmd);write_lcd(time.year)%10+0,wdata);write_lcd(0xcf,wcmd);write_lcd(time.alarm_minute%10+0,wdata);write_lcd(0xce,wcmd);write_lcd(time.alarm_minute/10+0,wdata);write_lcd(0xcd,wcmd);write_lcd(:,wdata);write_lcd(0xcc,wcmd);write_lcd(time.alarm_hour%10+0,wdata);write_lcd(0xcb,wcmd);write_lcd(time.alarm_hour/10+0,wdata);write_lcd(0xc9,wcmd);write_lcd(a,wdata);write_lcd(0xc7,wcmd);write_lcd(time.second%10+0,wdata);write_lcd(0xc6,wcmd);write_lcd(time.second/10+0,wdata);write_lcd(0xc5,wcmd);write_lcd(:,wdata);write_l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)義工培訓(xùn)課件
- 中國頭戴立體耳機(jī)行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告(2024-2030)
- 2025年中國高锝酸鈉注射液行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 2025年 運(yùn)河高等師范學(xué)校招聘考試筆試試題附答案
- 2025年 工業(yè)鍋爐G1證理論考試練習(xí)題附答案
- 節(jié)能報(bào)告范文17匯編
- 稅務(wù)師網(wǎng)盤課件下載指南
- 中國文化娛樂服務(wù)行業(yè)全景評估及投資規(guī)劃建議報(bào)告
- 2025年中國消防火災(zāi)報(bào)警系統(tǒng)行業(yè)發(fā)展前景預(yù)測及投資戰(zhàn)略咨詢報(bào)告
- 中國體育場地與設(shè)施建設(shè)行業(yè)全景評估及投資規(guī)劃建議報(bào)告
- 2022版義務(wù)教育課程方案測試題及答案+學(xué)習(xí)義務(wù)教育課程方案心得體會(huì)
- 最新教師培訓(xùn)課件:教師專業(yè)發(fā)展
- 水池深基坑開挖專項(xiàng)施工方案
- (整理)薩提亞溝通模式課件
- 水產(chǎn)品冷凍食品加工行業(yè)解決方案
- 茶知識(shí)與科學(xué)飲茶課件
- 手術(shù)通知單模板
- 2021年安康市中心醫(yī)院醫(yī)護(hù)人員招聘筆試試題及答案解析
- 醫(yī)院醫(yī)療精神科危險(xiǎn)物品管理PPT課件講義
- 第二講:黔東南州優(yōu)勢礦產(chǎn)資源
- 康復(fù)醫(yī)院的設(shè)計(jì)要點(diǎn)精選
評論
0/150
提交評論