基于單片機(jī)的電子時(shí)鐘的設(shè)計(jì)-畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)論文(設(shè)計(jì))</b></p><p>  題 目:基于單片機(jī)的電子時(shí)鐘的設(shè)計(jì) </p><p>  作者姓名: </p><p>  學(xué) 號(hào): </p><p>  

2、專 業(yè): 電子信息工程技術(shù) </p><p>  指導(dǎo)教師: </p><p>  2012年 6 月</p><p><b>  摘 要</b></p><p>  傳統(tǒng)的數(shù)字電子時(shí)鐘采用了較多的分立元器件,不僅占用了很大的空

3、間而且利用率也比很低,隨著系統(tǒng)設(shè)計(jì)復(fù)雜度的不斷提高,用傳統(tǒng)時(shí)鐘系統(tǒng)設(shè)計(jì)方法很難滿足設(shè)計(jì)需求。</p><p>  單片機(jī)是集CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多種接口于一體的微控制器。它體積小、成本低、功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動(dòng)化上。而51系列的單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。本文設(shè)計(jì)的電子時(shí)鐘是基于51單片機(jī),同時(shí)使用c語(yǔ)言為程序設(shè)計(jì)語(yǔ)言,從而克服傳統(tǒng)電子時(shí)鐘的弊端。</p&

4、gt;<p>  本設(shè)計(jì)擬實(shí)現(xiàn)的基本功能為單片機(jī)計(jì)時(shí)顯示功能。能夠體現(xiàn)單片機(jī)電子時(shí)鐘的可擴(kuò)展優(yōu)越性,加入時(shí)間調(diào)整程序,使用按鈕,調(diào)整年月日及時(shí)間;加入陰歷顯示功能。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī),電子時(shí)鐘,c語(yǔ)言</p><p>  ABSTRACT </p><p>  Traditional digital electronic clock

5、 with a greater amount of discrete components, not only takes up a lot of space and utilization than low, as the system design complexity continues to improve, the clock system design using traditional methods are diffic

6、ult to meet the design requirements . </p><p>  Microcontroller is a CPU, RAM, ROM, timer / counter and a variety of interfaces in one of the micro-controller. Its small size, low cost, powerful, widely used

7、 in smart products and industrial automation. And 51 of the microcontroller MCU is the most typical and most representative one. This design is based on 51 single-chip electronic clock, using both assembly language for t

8、he programming language, to overcome the drawbacks of conventional electronic clock.</p><p>  The design of the basic functions to be achieved for the microcontroller timer display. SCM can reflect the scala

9、bility advantages of electronic clock, add time to adjust, the use of buttons, adjust the date and time of year, month; to join the lunar calendar display. </p><p>  Keywords: microcontroller, electronic clo

10、ck, assembly language </p><p><b>  目錄 </b></p><p><b>  摘 要7</b></p><p>  ABSTRACT8</p><p>  第 一 章 緒 論10</p><p>  1.1單片機(jī)的定義

11、10</p><p>  1.2 單片機(jī)分類11</p><p>  1.3 單片機(jī)的特點(diǎn)11</p><p>  1.4單片機(jī)的應(yīng)用領(lǐng)域11</p><p>  1.5電子時(shí)鐘的特點(diǎn)及應(yīng)用領(lǐng)域12</p><p>  第二章 MCS-51單片機(jī)簡(jiǎn)介13</p><p>  2.1

12、單片機(jī)的結(jié)構(gòu)13</p><p>  2.2 單片機(jī)的存儲(chǔ)器16</p><p>  第三章 數(shù)碼管的簡(jiǎn)介19</p><p>  3.1 數(shù)碼管的分類19</p><p>  3.2 數(shù)碼管的應(yīng)用20</p><p>  第四章 電子時(shí)鐘的設(shè)計(jì)21</p><p>  4.1

13、可實(shí)現(xiàn)的功能21</p><p>  4.2 軟件設(shè)計(jì)流程22</p><p>  4.3 電子時(shí)鐘設(shè)計(jì)的部分主要流程25</p><p>  第五章 電子時(shí)鐘的仿真25</p><p>  5.1 單片機(jī)調(diào)試仿真軟件25</p><p>  5.2 電子時(shí)鐘的仿真27</p><p&

14、gt;  5.3 整機(jī)的仿真及調(diào)試29</p><p><b>  結(jié)束語(yǔ)32</b></p><p><b>  致 謝33</b></p><p><b>  參考文獻(xiàn)34</b></p><p>  第 一 章 緒 論</p><p&g

15、t;<b>  1.1單片機(jī)的定義</b></p><p>  單片機(jī)是指一個(gè)集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。盡管他的大部分功能集成在一個(gè)小芯片上,但是它具有一個(gè)完整計(jì)算機(jī)所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分單片機(jī)還會(huì)具有外存。同時(shí)集成諸如通訊接口、定時(shí)器,實(shí)時(shí)時(shí)鐘等外圍設(shè)備。而現(xiàn)在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上

16、。單片機(jī)也被稱為微控制器(Microcontroller),是因?yàn)樗钤绫挥迷诠I(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來(lái),最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小、更容易集成于復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣[1]。</p><p>  單片機(jī)技術(shù)是現(xiàn)代電子工程

17、領(lǐng)域一門迅速發(fā)展的技術(shù),它的應(yīng)用已經(jīng)滲透到各種嵌入式系統(tǒng)中??梢院敛豢鋸埖卣f(shuō):掌握單片機(jī)技術(shù)是電子信息類專業(yè)學(xué)生就業(yè)的一個(gè)重要條件。同時(shí)單片機(jī)技術(shù)又是一門實(shí)踐性很強(qiáng)的學(xué)科。只有我們不斷地通過(guò)實(shí)踐研究才能學(xué)習(xí)好單片機(jī)課程。</p><p><b>  1.2 單片機(jī)分類</b></p><p>  按照單片機(jī)的類型,單片機(jī)有:(1)51系列單片機(jī),為首推系列單片機(jī)。其中

18、首推Intel公司的單片機(jī) 4K字節(jié)的一次性程序存儲(chǔ)器(OTP)。(2)具有ISP功能的單片機(jī),ISP功能能夠?qū)崿F(xiàn)在系統(tǒng)可編程,可以省去通用的編程器,單片機(jī)在用戶板上即可下載和燒錄用戶程序,而無(wú)需將單片機(jī)從生產(chǎn)好的產(chǎn)品上取下。(3)PIC系列單片機(jī),PIC單片機(jī)系列是美國(guó)微芯公司(Microship)的產(chǎn)品,CPU采用RISC結(jié)構(gòu),具有精簡(jiǎn)的指令集。PIC系列單片機(jī)的I/O口是雙向的,其輸出電路為CMOS互補(bǔ)推挽輸出電路。具有在線調(diào)試及

19、編程(ISP)功能。(4)AVR單片機(jī):AVR單片機(jī)是Atmel公司推出的較為新穎的單片機(jī))其顯著的特點(diǎn)為高性能、高速度、低功耗。AVR型號(hào)的管腳,與對(duì)應(yīng)的51系列兼容。(5) AT89S52 單片機(jī): AT89S52是一種低功耗、性能高具有8K 在系統(tǒng)可編程Flash存儲(chǔ)器,向下完全兼容51子系列。</p><p>  1.3 單片機(jī)的特點(diǎn)</p><p>  單片機(jī)是以工業(yè)測(cè)控對(duì)象、環(huán)

20、境、接口特點(diǎn)出發(fā)向著增強(qiáng)控制功能,提高工業(yè)環(huán)境下的可靠性方向發(fā)展。主要特點(diǎn)如下:</p><p><b>  ·種類多,型號(hào)全</b></p><p>  ·提高性能,擴(kuò)大容量,性能價(jià)格比高</p><p>  ·增加控制功能,向真正意義上的“單片”機(jī)發(fā)展</p><p><b>

21、  ·低功耗</b></p><p>  1.4單片機(jī)的應(yīng)用領(lǐng)域</p><p>  目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子

22、寵物等等,這些都離不開(kāi)單片機(jī)。更不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開(kāi)發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。 </p><p>  單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域[2],大致可分如下幾個(gè)范疇:</p><p>  ·在智能儀器儀表上的應(yīng)用</p>&l

23、t;p>  ·在工業(yè)控制中的應(yīng)用</p><p>  ·在家用電器中的應(yīng)用</p><p>  ·在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 </p><p>  ·單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用</p><p>  ·在各種大型電器中的模塊化應(yīng)用</p><p>  此外,單

24、片機(jī)在金融,科研、教育航空航天等領(lǐng)域都有著十分廣泛的用途。</p><p>  采用以上方案具有以下優(yōu)勢(shì):從經(jīng)濟(jì)性、可移植性、可推廣性角度講,建立這樣的課程設(shè)計(jì)平臺(tái)是非常有意義的;利用仿真系統(tǒng),可以節(jié)約開(kāi)發(fā)時(shí)間和開(kāi)發(fā)成本,同時(shí)具有很大的靈活性和可擴(kuò)展性。</p><p>  為了更好地學(xué)習(xí)單片機(jī),我們采用Proteus軟件與Keil軟件整合構(gòu)建單片機(jī)虛擬實(shí)驗(yàn)平臺(tái)。首先我們要在PC上利用Pr

25、oteus軟件自己搭建硬件電路,并利用系統(tǒng)提供的功能完成電路分析、系統(tǒng)調(diào)試和輸出顯示的硬件設(shè)計(jì)部分;同時(shí)在Keil軟件中編制程序,進(jìn)行相應(yīng)的編譯和仿真,完成系統(tǒng)的軟件設(shè)計(jì)部分。當(dāng)系統(tǒng)的設(shè)計(jì)工作完成后,就可以在PC上看到最終的運(yùn)行效果。最后再通過(guò)proteus設(shè)計(jì)PCB,再完成真正硬件的調(diào)試。</p><p>  1.5電子時(shí)鐘的特點(diǎn)及應(yīng)用領(lǐng)域</p><p>  時(shí)鐘電路在計(jì)算機(jī)系統(tǒng)中起著

26、非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個(gè)單片機(jī)的應(yīng)用系統(tǒng)中,時(shí)鐘有兩方面的含義:一方面是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢[3];另一方面是指系統(tǒng)的標(biāo)準(zhǔn)定時(shí)時(shí)鐘,即定時(shí)時(shí)間,它通常有兩種實(shí)現(xiàn)方法:一是用軟件實(shí)現(xiàn),即用單片機(jī)內(nèi)部的可編程定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn),一是用專門的時(shí)鐘芯片實(shí)現(xiàn)。</p><p>  數(shù)字鐘能長(zhǎng)期、連續(xù)、可靠、穩(wěn)定地下

27、作;同時(shí)還具有體積小,功耗低等特點(diǎn),便于攜帶,使用方便。同時(shí)由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表.鐘表的數(shù)字化給人們生產(chǎn)生話帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能,數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)‘時(shí)、分、秒”數(shù)字顯示的計(jì)時(shí)裝置。使得電子時(shí)鐘廣泛應(yīng)用于個(gè)人家庭、車站、碼頭、辦公室等場(chǎng)所的各個(gè)角落,已成為人們口常生話中不可缺少的必需品。</p><p>  第二

28、章 MCS-51單片機(jī)簡(jiǎn)介</p><p>  2.1 單片機(jī)的結(jié)構(gòu)</p><p>  MCS-51單片機(jī)是美國(guó)INTE公司于1980年推出的產(chǎn)品,與MCS-48單片機(jī)相比,它的結(jié)構(gòu)更先進(jìn),功能更強(qiáng),在原來(lái)的基礎(chǔ)上增加了更多的電路單元和指令,指令數(shù)達(dá)111條,MCS-51單片機(jī)可以算是相當(dāng)成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機(jī)仍是應(yīng)用的主流產(chǎn)品,MCS-51系列單片機(jī)

29、主要包括8031、</p><p><b>  圖2.1</b></p><p>  8051和8751等通用產(chǎn)品。</p><p>  2.1.1 MCS-51的引腳說(shuō)明</p><p>  MCS-51單片機(jī)結(jié)構(gòu)框架[4]如圖2.1(</p><p>  MCS-51系列單片機(jī)中的8031

30、、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),下圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說(shuō)明:</p><p><b>  圖2.2</b></p><p>  Pin9:RESET/Vpd復(fù)位信號(hào)復(fù)用腳,當(dāng)8051通電,時(shí)鐘電路開(kāi)始工

31、作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開(kāi)始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。</p><p>  8051的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見(jiàn)下圖

32、2.3。此外,RESET/PDF還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。</p><p><b>  圖2.3</b></p><p>  2.2 單片機(jī)的存儲(chǔ)器</p><p>  單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)

33、廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式。</p><p>  2.2.1 程序存儲(chǔ)空間</p><p>  程序存儲(chǔ)空間可以被映射為內(nèi)部程序存儲(chǔ)器或者外部程序存儲(chǔ)器。AT89C51單片機(jī)內(nèi)部具有的4KB程序存儲(chǔ)器被映射到程序存儲(chǔ)空間的0000H~0FFFH區(qū)間。這部分程序存儲(chǔ)空間也可以被

34、映射為外部程序存儲(chǔ)器,它具體被映射為哪一種程序存儲(chǔ)器取決于引腳 (引腳31)所接的電平。當(dāng)引腳為高電平,內(nèi)部程序存儲(chǔ)器被映射到這部分程序存儲(chǔ)空間;當(dāng)引腳為低電平,外部程序存儲(chǔ)器被映射到這部分程序存儲(chǔ)空間。高于0FFFH的程序存儲(chǔ)空間只能被映射為外部程序存儲(chǔ)器。</p><p>  2.2.2 數(shù)據(jù)存儲(chǔ)空間</p><p>  AT89C51的內(nèi)部數(shù)據(jù)存儲(chǔ)器有256字節(jié),它們被分為兩部分:高

35、128字節(jié)和低128字節(jié)。低128字節(jié)的內(nèi)部數(shù)據(jù)存儲(chǔ)器是真正的RAM區(qū),可以被用來(lái)寫入或讀出數(shù)據(jù)。這一部分存儲(chǔ)容量不是很大,但有很大的作用。它可以進(jìn)一步被分為3部分,如圖2.4所示。</p><p>  圖2.4 內(nèi)部數(shù)據(jù)存儲(chǔ)器低128字節(jié)</p><p>  在內(nèi)部數(shù)據(jù)存儲(chǔ)器低128字節(jié)中,地址從00H~1FH的最低32個(gè)字節(jié)組成4組工作寄存器,每組有8個(gè)工作寄存器。每組中的8個(gè)工作寄存

36、器都被命名為從R0到R7。在一個(gè)具體時(shí)刻,CPU只能使用其中的一組工作寄存器。當(dāng)前正在使用的工作寄存器組由位于高128字節(jié)的程序狀態(tài)字寄存器(PSW)中第3位(RS0)和第4位(RS1)的數(shù)據(jù)決定。程序狀態(tài)字寄存器中的數(shù)據(jù)可以通過(guò)編程來(lái)改變,這種功能為保護(hù)工作寄存器的內(nèi)容提供了很大的方便。如果用戶程序中不需要全部使用4組工作寄存器,那么剩下的工作寄存器所對(duì)應(yīng)的內(nèi)部數(shù)據(jù)存儲(chǔ)器也可以作為通用數(shù)據(jù)存儲(chǔ)器使用?!?】工作寄存器在內(nèi)部數(shù)據(jù)存儲(chǔ)器中

37、的地址映射如表1.1所示。</p><p>  表1.1 工作寄存器地址映射表</p><p>  在工作寄存器區(qū)上面,內(nèi)部數(shù)據(jù)存儲(chǔ)器的地址從20H~2FH的16個(gè)字節(jié)范圍內(nèi),既可以通過(guò)字節(jié)尋址的方式進(jìn)入,也可以通過(guò)位尋址的方式進(jìn)入,位地址范圍從00H到7FH[5]。字節(jié)地址與位地址的對(duì)應(yīng)關(guān)系。</p><p>  內(nèi)部數(shù)據(jù)存儲(chǔ)器地址從30H~7FH部分僅可以用作

38、通用數(shù)據(jù)存儲(chǔ)器。內(nèi)部數(shù)據(jù)存儲(chǔ)器的高128字節(jié)被稱為特殊功能寄存器(SFR)區(qū)。特殊功能寄存器被用作CPU和在片外圍器件之間的接口【6】,它們之間的聯(lián)系方框圖如圖2.5所示。</p><p>  圖2.5 殊功能寄存器(SFR)工作框圖</p><p>  CPU通過(guò)向相應(yīng)的特殊功能存儲(chǔ)器寫入數(shù)據(jù)實(shí)現(xiàn)控制對(duì)應(yīng)的在片外圍器件的工作,從相應(yīng)的特殊功能存儲(chǔ)器讀出數(shù)據(jù)實(shí)現(xiàn)讀取對(duì)應(yīng)的在片外圍器件的工

39、作結(jié)果。</p><p>  在AT89C51單片機(jī)中,包括前面提到的程序狀態(tài)字寄存器(PSW)的特殊功能存儲(chǔ)器共有26個(gè),它們離散地分布在80H~FFH的內(nèi)部數(shù)據(jù)存儲(chǔ)器地址空間范圍內(nèi)[7],對(duì)于沒(méi)有定義的存儲(chǔ)單元用戶不能使用。如果向這些存儲(chǔ)單元寫入數(shù)據(jù)將產(chǎn)生不確定的效果,從它們讀取數(shù)據(jù)將得到一個(gè)隨機(jī)數(shù)。</p><p>  對(duì)于字節(jié)地址低位為8H或者FH的特殊功能存儲(chǔ)器,既可以進(jìn)行字節(jié)操

40、作,也可以進(jìn)行位操作。例如前面提到的用來(lái)確定當(dāng)前工作寄存器組的程序狀態(tài)字寄存器(PSW),它的地址為00H,因此對(duì)它可以進(jìn)行字節(jié)操作,也可以進(jìn)行位操作。采用位操作可以直接控制程序狀態(tài)字寄存器中的第3位(RS0)或第4位(RS1)數(shù)據(jù)而不影響其他位的數(shù)據(jù)。低位地址不為8H或FH的特殊功能存儲(chǔ)器只可以進(jìn)行字節(jié)操作,當(dāng)需要修改這些特殊功能存儲(chǔ)器中的某些位時(shí),對(duì)其他的位應(yīng)注意保護(hù)【3】。</p><p>  片外數(shù)據(jù)存儲(chǔ)

41、空間可以被映射為數(shù)據(jù)存儲(chǔ)器、擴(kuò)展的輸入/輸出接口、模擬/數(shù)字轉(zhuǎn)換器和數(shù)字/模擬轉(zhuǎn)換器等。這些外圍器件統(tǒng)一編址,所有外圍器件的地址都占用數(shù)據(jù)存儲(chǔ)空間的地址資源,因此CPU與片外外圍器件進(jìn)行數(shù)據(jù)交換時(shí)可以使用與訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器相同的指令。CPU通過(guò)向相應(yīng)的外部數(shù)據(jù)存儲(chǔ)器地址單元寫入數(shù)據(jù)實(shí)現(xiàn)控制對(duì)應(yīng)的片外外圍器件的工作,從相應(yīng)的外部數(shù)據(jù)存儲(chǔ)器地址單元讀出數(shù)據(jù)實(shí)現(xiàn)讀取對(duì)應(yīng)的片外外圍器件的工作結(jié)果。</p><p>  

42、第三章 數(shù)碼管的簡(jiǎn)介</p><p>  3.1 數(shù)碼管的分類</p><p>  數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元(多一個(gè)小數(shù)點(diǎn)顯示);按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陽(yáng)極數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(COM)的數(shù)碼管。共陽(yáng)極數(shù)碼管在

43、應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。。共陰極數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰極數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮【8】。</p><p>  3.1.1 數(shù)碼管驅(qū)動(dòng)方

44、式的分類</p><p>  數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來(lái)驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。</p><p>  3.1.2 靜態(tài)顯示驅(qū)動(dòng)[9]</p><p>  靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼

45、器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來(lái)驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。</p><p>  3.1.3 動(dòng)態(tài)顯示驅(qū)動(dòng)</p><p>  數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式

46、之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的COM端,

47、就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低【5】。</p><p>  3.2 數(shù)碼管的應(yīng)用</p><p>  數(shù)

48、碼管是一類顯示屏 通過(guò)對(duì)其不同的管腳輸入相對(duì)的電流會(huì)使其發(fā)亮從而顯示出數(shù)字。</p><p>  可以顯示、時(shí)間、日期、溫度等所有可以用數(shù)字代替的參數(shù)。</p><p>  由于它的價(jià)格便宜使用簡(jiǎn)單,所以在電器特別是家電領(lǐng)域應(yīng)用極為廣泛,如:空調(diào)、熱水器、冰箱等等。絕大多數(shù)熱水器用的都是數(shù)碼管其他家電也用液晶屏與熒光屏。</p><p>  3.2.1 數(shù)碼管使用的

49、電流與電壓[10]</p><p>  電流:靜態(tài)時(shí),推薦使用10-15mA;動(dòng)態(tài)時(shí),16/1動(dòng)態(tài)掃描時(shí),平均電流為4-5mA,峰值電流50-60mA。</p><p>  電壓:當(dāng)選擇紅色時(shí),使用1.9V;當(dāng)選擇綠色時(shí),使用2.1V。</p><p>  第四章 電子時(shí)鐘的設(shè)計(jì)</p><p>  4.1 可實(shí)現(xiàn)的功能</p>

50、<p>  1.采用六位數(shù)碼管顯示小時(shí)、分鐘、秒,并且可以任意設(shè)定時(shí)間。</p><p>  2.可以查看并且設(shè)定日期,日期采用年、月、日的顯示方式。</p><p>  3.可以查看并設(shè)定鬧鐘,鬧鐘的顯示方式采用與時(shí)間相同的顯示方式。</p><p>  4.可以查看并設(shè)定星期,數(shù)碼管的最后一位顯示星期,用數(shù)字8表示星期日。</p>&

51、lt;p>  5.系統(tǒng)設(shè)定詳細(xì)說(shuō)明:</p><p>  系統(tǒng)的初始狀態(tài)為顯示時(shí)鐘狀態(tài),此時(shí)顯示小時(shí)、分鐘、秒。初始狀態(tài)下,按K0鍵進(jìn)入時(shí)間調(diào)整程序,按K1鍵查看鬧鐘,按K2鍵查看日期,按K3鍵查看星期。</p><p>  進(jìn)入時(shí)間調(diào)整狀態(tài)后,首先調(diào)整分鐘,此時(shí)分鐘閃爍顯示,按K1鍵加一,按K2鍵減一。按K0鍵開(kāi)始調(diào)整小時(shí),此時(shí)小時(shí)閃爍顯示,按K1鍵加一,按K2鍵減一,再按K0鍵后

52、系統(tǒng)返回到顯示時(shí)間狀態(tài)。</p><p>  在調(diào)整時(shí)間狀態(tài)下按下K3鍵進(jìn)入調(diào)整鬧鐘狀態(tài),此時(shí)顯示原先的鬧鐘時(shí)間,并且鬧鐘分鐘閃爍顯示,此時(shí)按K1鍵加一,按K2鍵減一;調(diào)整后按K0鍵轉(zhuǎn)換到鬧鐘小時(shí)調(diào)整單元,此時(shí)按K1鍵加一,按K2鍵減一。鬧鐘調(diào)整完畢后按K0鍵回到調(diào)整時(shí)間狀態(tài),按K3鍵轉(zhuǎn)到調(diào)整日期狀態(tài)。</p><p>  在調(diào)整日期狀態(tài)下,日單元閃爍顯示,此時(shí)按K1鍵加一,按K2鍵減一;

53、按下K0鍵進(jìn)入調(diào)整月,此時(shí)按K1鍵加一,按K2鍵減一;按下K0鍵進(jìn)入調(diào)整年,此時(shí)按K1鍵加一,按K2鍵減一。此時(shí)按下K0鍵返回到調(diào)整時(shí)間狀態(tài),按下K3鍵進(jìn)入調(diào)整星期狀態(tài)。</p><p>  在調(diào)整星期狀態(tài)下,星期閃爍顯示,此時(shí)按K1鍵加一,按K2鍵減一。按下K0鍵返回到調(diào)整時(shí)間狀態(tài)。此時(shí)分鐘閃爍顯示,按K0鍵開(kāi)始調(diào)整小時(shí),此時(shí)小時(shí)閃爍顯示,再按K0鍵后系統(tǒng)返回到顯示時(shí)間狀態(tài)。</p><p&

54、gt;  4.2 軟件設(shè)計(jì)流程</p><p>  秒計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘信號(hào)為1Hz的標(biāo)準(zhǔn)信號(hào),可以由CPLD板上提供的20MHZ的信號(hào)通過(guò)分頻得到。秒計(jì)數(shù)器的進(jìn)位輸出信號(hào)作為分鐘計(jì)數(shù)器的計(jì)數(shù)信號(hào),分鐘計(jì)數(shù)器的進(jìn)位輸出信號(hào)又作為小時(shí)計(jì)數(shù)器的計(jì)數(shù)信號(hào)[11].設(shè)計(jì)一個(gè)同時(shí)顯示時(shí)、分、秒6個(gè)數(shù)字的數(shù)字鐘,則需要6個(gè)七段顯示器。若同時(shí)點(diǎn)亮這6個(gè)七段顯示器,則電路中會(huì)產(chǎn)生一個(gè)比較大的電流,很容易造成電路燒壞,我們通過(guò)掃描電

55、路來(lái)解決這一問(wèn)題,通過(guò)產(chǎn)生一個(gè)掃描信號(hào)LT(0)一LT(5)來(lái)控制6個(gè)七段顯示器,依次點(diǎn)亮6個(gè)七段顯示器,也就是每次只點(diǎn)亮一個(gè)七段顯示器。只要掃描信號(hào)的頻率超過(guò)人的眼睛視覺(jué)暫留頻率24Hz以上,就可以達(dá)到盡管每次點(diǎn)亮單個(gè)七段顯示器,卻能具有6個(gè)同時(shí)顯示的視覺(jué)效果,而目顯示也不致閃爍抖動(dòng)。其中6位掃描信號(hào)一方面控制七段顯示器依次點(diǎn)亮,一方面控制6選1選擇器輸出相應(yīng)顯示數(shù)字。控制電路用來(lái)將控制時(shí)鐘的一些功能加入到整個(gè)正常計(jì)數(shù)的顯示電路中,通

56、過(guò)最終的顯示來(lái)驗(yàn)證控制電路的正確性【12】。圖4.1為整體系統(tǒng)設(shè)計(jì)標(biāo)圖(下頁(yè)圖4.1)。</p><p>  圖4.1主程序流程圖</p><p>  圖4.2計(jì)時(shí)中斷服務(wù)程序流程圖</p><p>  4.3 電子時(shí)鐘設(shè)計(jì)的部分主要流程</p><p>  C語(yǔ)言是計(jì)算機(jī)提供給用戶的最快最有效的語(yǔ)言,也是能夠利用計(jì)算機(jī)的所有硬件特性并能夠直

57、接控制硬件的唯一語(yǔ)言。對(duì)于對(duì)電子時(shí)鐘的設(shè)計(jì)這樣的程序來(lái)說(shuō),用c語(yǔ)言是最快最有效的語(yǔ)言,下面是用c語(yǔ)言進(jìn)行編寫的基于單片機(jī)的電子時(shí)鐘的設(shè)計(jì)的部分主要流程程序(見(jiàn)附錄)</p><p>  第五章 電子時(shí)鐘的仿真</p><p>  5.1 單片機(jī)調(diào)試仿真軟件</p><p><b>  源文件的輸入:</b></p><p&

58、gt;  Keil單片機(jī)模擬調(diào)試軟件內(nèi)集成了一個(gè)文本編輯器,用該文本編輯器可以編輯源程序。打開(kāi)”FILE”“NEW”就打開(kāi)的此編輯器。在圖5.1中已經(jīng)完成了匯編語(yǔ)言源文件的輸入,并且完成了源程序向當(dāng)前工程的添加。然后再創(chuàng)建工程的步驟如下:打開(kāi)”project”“new uvision project”然后顯示一個(gè)對(duì)話框,在對(duì)話框里選擇ATMEL,在ATMEL的下拉框中找AT89C51選擇后點(diǎn)擊“OK”就創(chuàng)建了一個(gè)工程,注意:創(chuàng)建時(shí)把此工

59、程保存在熟悉的文件夾里,以便于后面的查找使用。</p><p>  圖5.1 Keil單片機(jī)模擬調(diào)試軟件的集成開(kāi)發(fā)環(huán)境</p><p>  完成c語(yǔ)言源文件的輸入后,接著需要把c語(yǔ)言源文件加入工程之中。選擇圖5.1中的工程管理器窗口的子目錄Source Group 1,再單擊鼠標(biāo)右鍵打開(kāi)快捷菜單。在快捷菜單中選擇“Add File to Group“Source Group 1”,加入文件

60、對(duì)話框被打開(kāi)。在這個(gè)對(duì)話框的“查找范圍”下拉列表框中選擇存儲(chǔ)匯編語(yǔ)言源文件的文件夾,在“文件類型”下拉列表框中選擇Asm Source file(*.a*;*.src),這時(shí)存儲(chǔ)的d語(yǔ)言源文件將顯示出來(lái)。雙擊要加入的文件名,或者選擇要加入的文件名再單擊Add按鈕即可完成把d語(yǔ)言源文件加入工程。這時(shí)工程管理窗口的文件選項(xiàng)卡中子目錄Source Group 1下出現(xiàn)一個(gè)c語(yǔ)言源文件,如圖5.1所示。</p><p>

61、  Proteus軟件:</p><p>  Proteus 是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。PROTEUS軟件由Labcenter公司開(kāi)發(fā),是目前世界上最先進(jìn)、最完整的嵌入式系統(tǒng)設(shè)計(jì)與仿真平臺(tái),可以實(shí)現(xiàn)數(shù)字電路、模擬電路及微控制器系統(tǒng)

62、與外設(shè)的混合電路系統(tǒng)的電路仿真、軟件仿真、系統(tǒng)協(xié)同仿真和PCB設(shè)計(jì)等功能,是目前唯一能夠?qū)Ω鞣N處理器進(jìn)行實(shí)時(shí)仿真、調(diào)試與測(cè)試的EDA工具。微控制器系統(tǒng)相關(guān)的仿真需建立編譯和調(diào)試環(huán)境,可選擇Keil C51uVision2 軟件。該軟件支持眾多不同公司的芯片,集編輯、編譯和程序仿真等于一體,同時(shí)還支持PLM、匯編和C語(yǔ)言的程序設(shè)計(jì)。它的界面友好易學(xué),在調(diào)試程序、軟件仿真方面有很強(qiáng)大的功能。 其革命性的功能是:將電路仿真和微處理器仿真進(jìn)行協(xié)

63、同,直接在基于原理圖的虛擬原型上進(jìn)行處理器編程調(diào)試,并進(jìn)行功能驗(yàn)證,通過(guò)動(dòng)態(tài)器件如電機(jī)、LED、LCD、開(kāi)關(guān)等,實(shí)時(shí)看到運(yùn)行后的輸入、輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等</p><p>  5.2 電子時(shí)鐘的仿真</p><p><b>  選擇仿真元器件</b></p><p>  在進(jìn)行仿真之前對(duì)所需的仿真的元器件的選

64、擇也是很重要的,所需仿真元器件的好壞直接影響到仿真的效果,如果選擇的元器件比較不太合理可能使仿真的結(jié)果不理想,甚至?xí)?dǎo)致仿真的失敗。下表列出本次設(shè)計(jì)中用到的元器件【14】:</p><p>  在進(jìn)行元器件的選擇后,并且在keil上完成程序的編寫測(cè)試后我們就可以著手進(jìn)行電子時(shí)鐘的仿真了。在數(shù)字電子時(shí)鐘程序初步編完之后,利用單片機(jī)硬件仿真軟件進(jìn)行仿真和調(diào)試,同時(shí)對(duì)程序進(jìn)行適當(dāng)?shù)男薷腫11]。該設(shè)計(jì)在仿真及調(diào)試過(guò)程中

65、應(yīng)注意以下幾點(diǎn):</p><p>  1.單片機(jī)時(shí)間基準(zhǔn)振蕩電路中振蕩晶體頻率的選擇必須要和程序中的時(shí)間基準(zhǔn)相一致。</p><p>  2.由于單片機(jī)處理數(shù)據(jù)過(guò)程中要響應(yīng)中斷等原因,而中斷服務(wù)程序所花費(fèi)的時(shí)間必須在中斷返回后在計(jì)時(shí)單元中扣除掉,否則精確度會(huì)變差。</p><p>  3.在仿真調(diào)試中調(diào)試數(shù)碼管的發(fā)光時(shí)間時(shí),需要反復(fù)修改程序中的給定的時(shí)間,直到整體上

66、的顯示效果較好,不會(huì)有閃爍的現(xiàn)象產(chǎn)生[12]。</p><p>  在proteus軟件中進(jìn)行電子時(shí)鐘電路原理圖的繪制,繪制結(jié)果如5.2所示,在</p><p>  電子時(shí)鐘仿真的原理圖</p><p>  此圖中的核心部分是左邊的89c51單片機(jī)中部有顯示驅(qū)動(dòng)芯片MAX7219,右上部分是一個(gè)八段的數(shù)碼管顯示屏,數(shù)碼管下面為四個(gè)按鍵,圖中的左下部的那個(gè)芯片為時(shí)鐘芯

67、片DS1302,時(shí)鐘芯片右部為蜂鳴器,原理圖中還有單片機(jī)的晶振電路和單片機(jī)的復(fù)位電路。</p><p>  DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×

68、8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。</p><p>  MAX7219是MAXIM公司生產(chǎn)的串行輸入/輸出共陰極數(shù)碼管顯示驅(qū)動(dòng)芯片,一片MAX7219可驅(qū)動(dòng)8個(gè)7段(包括小數(shù)點(diǎn)共8段)數(shù)字LED、LED條線圖形顯示器、或64個(gè)分立的LED發(fā)光二級(jí)管。該芯片具有10MHz傳輸

69、率的三線串行接口可與任何微處理器相連,只需一個(gè)外接電阻即可設(shè)置所有LED的段電流。。它的操作很簡(jiǎn)單,MCU只需通過(guò)模擬SPI三線接口就可以將相關(guān)的指令寫入MAX7219的內(nèi)部指令和數(shù)據(jù)寄存器,同時(shí)它還允許用戶選擇多種譯碼方式和譯碼位。此外它還支持多片7219串聯(lián)方式,這樣MCU就可以通過(guò)3根線(即串行數(shù)據(jù)線、串行時(shí)鐘線和芯片選通線)控制更多的數(shù)碼管顯示。</p><p>  各器件的作用:89c51單片機(jī)是總體的

70、控制器(整個(gè)電子時(shí)鐘的CPU),源程序的加載、電路的控制、數(shù)據(jù)的加載、傳送等都在單片機(jī)這一部分。顯示驅(qū)動(dòng)芯片MAX7219是連接單片機(jī)和數(shù)碼管的芯片。數(shù)碼管顯示屏其顯示作用,是信號(hào)的顯示,是本設(shè)計(jì)中唯一的顯示設(shè)備。按鍵是對(duì)時(shí)間、日期等的調(diào)整或輸入,其具體操作方法下節(jié)有具體介紹。時(shí)鐘芯片DS1302是系統(tǒng)中的計(jì)時(shí)芯片,它對(duì)年、月、日、時(shí)、分、秒等的計(jì)時(shí),它采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)。蜂鳴器

71、起鬧鐘揚(yáng)聲功能。另外單片機(jī)的晶振電路和復(fù)位電路屬于電路部分,是信號(hào)數(shù)據(jù)的傳輸。</p><p>  5.3 整機(jī)的仿真及調(diào)試</p><p><b>  調(diào)試:</b></p><p>  把編寫完的源程序放在KEIL軟件中,先自行檢查下程序是否有誤,更改有誤的部分,再創(chuàng)建工程進(jìn)行程序一個(gè)一個(gè)地調(diào)試,把調(diào)試結(jié)果顯示有誤的部分找出,檢查錯(cuò)誤的原因

72、然后再進(jìn)行更改,更改后再進(jìn)行調(diào)試,再找出錯(cuò)誤進(jìn)行更改,依次循環(huán)進(jìn)行,至到程序調(diào)試成功為止。調(diào)試結(jié)果如圖5.2:</p><p><b>  調(diào)試結(jié)果圖5.2</b></p><p><b>  仿真:</b></p><p>  仿真是把KEIL中生成的源程序找出,并加載到單片機(jī)內(nèi),檢查原理圖的設(shè)計(jì)是否有誤,更改有誤的部分

73、,然后進(jìn)行仿真,看仿真結(jié)果是否正確,如果不正確或者不顯示結(jié)果,就再此檢查原理圖進(jìn)行更改直到能順利地仿真出結(jié)果。</p><p>  如上圖5.3為電子時(shí)鐘整機(jī)仿真圖:</p><p>  該設(shè)計(jì)在仿真及調(diào)試過(guò)程中應(yīng)注意以下幾點(diǎn):</p><p>  1.單片機(jī)時(shí)間基準(zhǔn)振蕩電路中振蕩晶體頻率的選擇必須要和程序中的時(shí)間基準(zhǔn)相一致。</p><p>

74、;  2.由于單片機(jī)處理數(shù)據(jù)過(guò)程中要響應(yīng)中斷等原因,而中斷服務(wù)程序所花費(fèi)的時(shí)間必須在中斷返回后在計(jì)時(shí)單元中扣除掉,否則精確度會(huì)變差。</p><p>  3.在仿真調(diào)試中調(diào)試數(shù)碼管的發(fā)光時(shí)間時(shí),需要反復(fù)修改程序中的給定的時(shí)間,直到整體上的顯示效果較好,不會(huì)有閃爍的現(xiàn)象產(chǎn)生。</p><p>  此仿真結(jié)果的主要實(shí)現(xiàn)</p><p>  (1)將其電源鍵打開(kāi),按下電源

75、開(kāi)關(guān)即開(kāi)始常工作,8個(gè)數(shù)碼管顯示依次是時(shí)、分、秒、溫度,各占兩位。</p><p> ?。?)按鍵說(shuō)明:①?gòu)?fù)位鍵,當(dāng)發(fā)現(xiàn)系統(tǒng)運(yùn)行不正常,進(jìn)入死循環(huán),顯示數(shù)值。嚴(yán)重失真時(shí),按復(fù)位鍵,其內(nèi)部功能為使用單片機(jī)復(fù)位。強(qiáng)行使單片機(jī)從頭開(kāi)始運(yùn)行,跳出錯(cuò)誤區(qū)。②日期顯示鍵,該鍵接外部中斷零(1NT0引腳)。通過(guò)中斷服務(wù)子程序來(lái)達(dá)到顯示的年、月、日、星期的目的。其中每項(xiàng)占兩位,年份只顯示后兩位,如06 06 06 03表示

76、06年06月06號(hào)星期三。中斷程序只進(jìn)行一秒,后返回主程序,顯示時(shí)、分、秒、溫度。③調(diào)時(shí)鍵(TS)按下此鍵進(jìn)入調(diào)時(shí)子程序,按一下調(diào)分鐘,兩下調(diào)時(shí),三下調(diào)星期,四下調(diào)日期,五下調(diào)月份,六下調(diào)年份的低兩位,七下調(diào)年份的高兩位。ADD鍵表示增加,每按一下增加一,DWC鍵表示減少,每按一下減少一,三個(gè)鍵組合在一起完成調(diào)時(shí)功能。</p><p>  具體的按鍵使用:當(dāng)進(jìn)入調(diào)整功能時(shí),按第一個(gè)鍵K1進(jìn)行減運(yùn)算,按第二個(gè)鍵K2

77、進(jìn)行加運(yùn)算。按下第三個(gè)鍵K3,實(shí)現(xiàn)日期\時(shí)間調(diào)整及\定時(shí)功能,等數(shù)字閃爍后,按一二鍵進(jìn)行加減,從而可以進(jìn)行具體日期時(shí)間調(diào)整。當(dāng)定時(shí)設(shè)定后,到預(yù)定時(shí)間后,時(shí)鐘會(huì)發(fā)出連續(xù)的蜂鳴聲。按下第四個(gè)鍵K4,可以進(jìn)行時(shí)間\日期切換,8位LED數(shù)碼管將顯示時(shí)間或日期,采用24小時(shí)制。</p><p><b>  結(jié)束語(yǔ)</b></p><p>  本文通過(guò)對(duì)電子時(shí)鐘的設(shè)計(jì)仿真,使自己

78、對(duì)單片機(jī)和c語(yǔ)言有了進(jìn)一步的溫故掌握。在設(shè)計(jì)過(guò)程中,吸收了前輩的一些先進(jìn)的理論成果,也對(duì)彭小軍同志的時(shí)鐘設(shè)計(jì)經(jīng)驗(yàn)進(jìn)行了借鑒。我在設(shè)計(jì)中總結(jié)出了一個(gè)重要的經(jīng)驗(yàn):一切問(wèn)題都要結(jié)合實(shí)際進(jìn)行設(shè)計(jì)。因?yàn)椴煌脑O(shè)計(jì)技術(shù)或者設(shè)計(jì)思想都有自身的優(yōu)點(diǎn)和局限性,只有根據(jù)具體的設(shè)計(jì)要求,才能順利地進(jìn)行設(shè)計(jì)仿真,也才能對(duì)己有的設(shè)計(jì)方法進(jìn)行創(chuàng)新。</p><p>  本裝置所實(shí)現(xiàn)的功能為時(shí)鐘功能。由于時(shí)間和日期都是通過(guò)特定的芯片來(lái)獲得的,

79、單片機(jī)只起到控制和轉(zhuǎn)換的作用,在精度方面不受單片機(jī)性能和程序的限制,故容易保障其精度和效率。本次設(shè)計(jì)有較大的進(jìn)展,取得了較好的效果,對(duì)單片機(jī)軟硬件資源和接日擴(kuò)展都有深入的學(xué)習(xí)。也學(xué)習(xí)了時(shí)鐘芯片12887的基本原理和使用方法。本設(shè)計(jì)是學(xué)習(xí)單片機(jī)的較佳選擇。但是設(shè)計(jì)還有諸多功能沒(méi)有完善,以后有機(jī)會(huì)會(huì)繼續(xù)完善其相應(yīng)的功能。設(shè)計(jì)不足:本系統(tǒng)所采用的顯示模塊LED較多,占用了不少資源,包括線路板、 單片機(jī)端口等,同時(shí)使得電路穩(wěn)定性下降; 由于時(shí)間

80、比較緊迫,未能開(kāi)發(fā)出更多的功能以體現(xiàn)單片機(jī)電子時(shí)鐘的優(yōu)越性。</p><p>  本系統(tǒng)上可實(shí)現(xiàn)的功能:1.實(shí)現(xiàn)秒表功能; 2.實(shí)現(xiàn)鬧鈴功能,當(dāng)所定的時(shí)間到時(shí),產(chǎn)生斷續(xù)的蜂鳴聲;3.具有天數(shù)倒計(jì)時(shí)功能,例如:距科技文化藝術(shù)節(jié)開(kāi)幕還有**天;</p><p>  以上的功能由于時(shí)間緊迫未能完成。 但這些功能的開(kāi)發(fā)都具有可行性, 這也就是單片機(jī)可擴(kuò)展功能的優(yōu)越性之所見(jiàn),有待于繼續(xù)開(kāi)發(fā)。<

81、/p><p>  報(bào)告結(jié)束,請(qǐng)老師和同學(xué)們批評(píng)指正! 謝謝大家!</p><p><b>  致 謝</b></p><p>  本課題的研究和論文的完成是在xx老師的悉心指導(dǎo)和熱情關(guān)懷下完成的。老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、豐富的實(shí)踐經(jīng)驗(yàn)、兢兢業(yè)業(yè)的工作精神使我受益匪淺。老師豁達(dá)的胸懷對(duì)我樹(shù)立正確的人生觀和價(jià)值觀產(chǎn)生了積極的影響。在老師的指導(dǎo)和幫助下,我

82、的專業(yè)知識(shí)水平和學(xué)習(xí)能力都得到了很大的提高。我在人生道路上的每一個(gè)腳印都凝聚著老師的心血。跟隨老師學(xué)習(xí)這兩年所獲得的知識(shí)將是我一生中最寶貴的財(cái)富。在此謹(jǐn)向xx老師表示崇高的敬意和衷心的感謝!</p><p>  感謝老師在研究工作中對(duì)我進(jìn)行的悉心指導(dǎo),并為我的學(xué)習(xí)提供了良好的條件,使我的論文的撰寫得以順利進(jìn)行。感謝xx老師在我的學(xué)習(xí)和生活中給予的教誨和幫助。</p><p>  最后感謝生

83、我育我的父母!感謝你們一直以來(lái)對(duì)我的無(wú)私關(guān)愛(ài)和默默奉獻(xiàn)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]周昌七,電大理工,2006年11月,總第225期,《桌面電子時(shí)鐘制作》</p><p>  [2],彭小軍,新余高專學(xué)報(bào),2006年4月,第9卷第2期《用單片機(jī)實(shí)現(xiàn)電子時(shí)鐘》</p><p>

84、  [3]陳同洲,郭華帥,中國(guó)傳媒大學(xué)學(xué)報(bào),2009年3月,第16卷第1期,《電子時(shí)鐘仿真及FPGA實(shí)現(xiàn)》</p><p>  [4]吳鎮(zhèn)宇,2005年9月,《片上時(shí)鐘系統(tǒng)的研究與的設(shè)計(jì)》</p><p>  [5] 李建忠,2004年,西安電子科技大學(xué)出版社,《單片機(jī)原理及應(yīng)用》</p><p>  [6]孫彩蘭 蔣海琳,計(jì)算機(jī)與信息技術(shù),軟件縱橫,《基于C語(yǔ)言為

85、內(nèi)核的電子時(shí)鐘設(shè)計(jì)》</p><p>  [7]彭小軍,新余高專學(xué)報(bào),2006年4月,第9卷第2期,《用單片機(jī)實(shí)現(xiàn)電子時(shí)鐘》</p><p>  [8]顏學(xué)超,2006年5月,《一種實(shí)時(shí)時(shí)鐘芯片的設(shè)計(jì)》</p><p>  [9]翟玉文 徐宏亮 趙巖,吉林化工學(xué)院學(xué)報(bào),2007年1月,《實(shí)用多功能電子時(shí)鐘設(shè)計(jì)》</p><p>  [10]陳

86、同洲,郭華帥,中國(guó)傳媒大學(xué)學(xué)報(bào),2009年3月第16卷第1期,《電子時(shí)鐘仿真及FPGA實(shí)現(xiàn)》</p><p>  [11]吳鎮(zhèn)宇,2005年9月,《片上時(shí)鐘系統(tǒng)的研究與的設(shè)計(jì)》</p><p>  [12]簡(jiǎn)寧,企業(yè)科技與發(fā)展,2010年第16期,《電子時(shí)鐘仿真實(shí)現(xiàn)》</p><p>  [13]徐得波,葛廣英,2004年9月,自然科學(xué),《單片機(jī)動(dòng)態(tài)可調(diào)電子時(shí)鐘系統(tǒng)

87、》</p><p>  [14]戴勇,劉斌儒,《國(guó)外電子元器件》2008年第7期,《基于AVR單片機(jī)Mega16的電子時(shí)鐘的設(shè)計(jì)》</p><p>  [15] 何翠萍,劉曉剛,周功海,煤礦現(xiàn)代化,2007年1月第1期,《單片機(jī)控電子時(shí)鐘的設(shè)計(jì)》</p><p><b>  附 錄:</b></p><p>  #in

88、clude "main.h"</p><p>  #include "ds1302.h"</p><p>  code uint8 Ledcode[13]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf,0x86};</p><p>  uint8 Ti

89、me[7]={55,59,11,22,2,2,11};//秒分時(shí)日月周年10-08-15 11:59:55</p><p>  uint8 Led_buf[6];</p><p>  uint8 Num, Led_n=0, T_n=0;</p><p>  void delay(uint16 n)</p><p><b>  {&l

90、t;/b></p><p>  while (n--);</p><p><b>  }</b></p><p><b>  /*</b></p><p>  * 初始化系統(tǒng)定時(shí)器</p><p><b>  */</b></p>&

91、lt;p>  void systimer_init(void)</p><p><b>  {</b></p><p>  TMOD = 0x01;</p><p>  TH0 = 0xF8; </p><p>  TL0 = 0xCC;</p><p><b>  T

92、R0 = 0; </b></p><p><b>  ET0 = 1;</b></p><p>  TMOD &= 0x0F;</p><p>  TMOD |= 0x10;</p><p>  TH1 = 0xDC; // 定時(shí)10ms</p><p>  TL1

93、 = 0x00;</p><p><b>  TR1 = 0; </b></p><p><b>  ET1 = 0;</b></p><p><b>  EA = 1;</b></p><p><b>  }</b></p><p&g

94、t;<b>  /*</b></p><p><b>  * 判斷鍵值</b></p><p><b>  */</b></p><p>  uint8 scan_key(void)</p><p><b>  {</b></p><p

95、>  uint8 val=0;</p><p>  KeyOut1 = 0;</p><p>  KeyOut2 = 1;</p><p>  KeyOut3 = 1;</p><p>  KeyOut4 = 1;</p><p>  if (KeyIn4 == 0)</p><p>&l

96、t;b>  {</b></p><p>  delay(KEY_DELAY);</p><p>  if (KeyIn4 == 0)</p><p>  val = K_ADD;</p><p><b>  }</b></p><p>  while ((KeyIn1 == 0)

97、||(KeyIn2 == 0)||(KeyIn3 == 0)||(KeyIn4 == 0));</p><p>  KeyOut1 = 1;</p><p>  KeyOut2 = 0;</p><p>  KeyOut3 = 1;</p><p>  KeyOut4 = 1;</p><p>  if (KeyIn4

98、 == 0)</p><p><b>  {</b></p><p>  delay(KEY_DELAY);</p><p>  if (KeyIn4 == 0)</p><p>  val = K_LEFT;</p><p><b>  }</b></p>&

99、lt;p>  while ((KeyIn1 == 0)||(KeyIn2 == 0)||(KeyIn3 == 0)||(KeyIn4 == 0));</p><p>  KeyOut1 = 1;</p><p>  KeyOut2 = 1;</p><p>  KeyOut3 = 0;</p><p>  KeyOut4 = 1;<

100、;/p><p>  if (KeyIn4 == 0)</p><p><b>  {</b></p><p>  delay(KEY_DELAY);</p><p>  if (KeyIn4 == 0)</p><p>  val = K_SUB;</p><p><b&

101、gt;  }</b></p><p>  while ((KeyIn1 == 0)||(KeyIn2 == 0)||(KeyIn3 == 0)||(KeyIn4 == 0));</p><p>  KeyOut1 = 1;</p><p>  KeyOut2 = 1;</p><p>  KeyOut3 = 1;</p>

102、;<p>  KeyOut4 = 0;</p><p>  if (KeyIn2 == 0)</p><p><b>  {</b></p><p>  delay(KEY_DELAY);</p><p>  if (KeyIn2 == 0)</p><p>  val = K_SE

103、T;</p><p><b>  }</b></p><p>  if (KeyIn3 == 0)</p><p><b>  {</b></p><p>  delay(KEY_DELAY);</p><p>  if (KeyIn3 == 0)</p>&l

104、t;p>  val = K_ENTER;</p><p><b>  }</b></p><p>  if (KeyIn4 == 0)</p><p><b>  {</b></p><p>  delay(KEY_DELAY);</p><p>  if (KeyIn

105、4 == 0)</p><p>  val = K_RIGHT;</p><p><b>  }</b></p><p>  while ((KeyIn1 == 0)||(KeyIn2 == 0)||(KeyIn3 == 0)||(KeyIn4 == 0));</p><p>  return val;</p>

106、;<p><b>  }</b></p><p><b>  /*</b></p><p><b>  * 制作數(shù)碼管數(shù)據(jù)</b></p><p><b>  */</b></p><p>  void make_led_number(voi

107、d)</p><p><b>  {</b></p><p><b>  ET0 = 0;</b></p><p>  Led_buf[0] = 0x7F & Ledcode[Time[0]%10];</p><p>  Led_buf[1] = Ledcode[Time[0]/10];&l

108、t;/p><p>  Led_buf[2] = 0x7F & Ledcode[Time[1]%10];</p><p>  Led_buf[3] = Ledcode[Time[1]/10];</p><p>  Led_buf[4] = 0x7F & Ledcode[Time[2]%10];</p><p>  Led_buf[5

109、] = Ledcode[Time[2]/10];</p><p><b>  ET0 = 1;</b></p><p><b>  }</b></p><p><b>  /*</b></p><p>  * 啟動(dòng)clock數(shù)字閃爍</p><p>&l

110、t;b>  */</b></p><p>  void start_flash(void)</p><p><b>  {</b></p><p><b>  T_n = 0;</b></p><p>  Led_buf[2*Num] = 0x7F & Ledcode[Ti

111、me[Num]%10];</p><p>  Led_buf[2*Num+1] = Ledcode[Time[Num]/10];</p><p>  TH1 = 0xDC; // 定時(shí)10ms</p><p>  TL1 = 0x00;</p><p><b>  TR1 = 1;</b></p>

112、<p><b>  ET1 = 1;</b></p><p><b>  }</b></p><p><b>  /*</b></p><p>  * 停止clock數(shù)字閃爍</p><p><b>  */</b></p>&

113、lt;p>  void stop_flash(void)</p><p><b>  {</b></p><p><b>  ET1 = 0;</b></p><p><b>  TR1 = 0;</b></p><p>  Led_buf[2*Num] = 0x7F &

114、amp; Ledcode[Time[Num]%10];</p><p>  Led_buf[2*Num+1] = Ledcode[Time[Num]/10];</p><p><b>  }</b></p><p><b>  /*</b></p><p><b>  * 時(shí)鐘設(shè)置<

115、/b></p><p><b>  */</b></p><p>  void set_clock(void)</p><p><b>  {</b></p><p>  uint8 k_val, flag=0;</p><p><b>  Num = 0;&

116、lt;/b></p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  k_val = scan_key();</p><p>  if (k_val == 0)</p><p><b>  {<

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論