通信技術(shù)課程設(shè)計--電子萬年歷的設(shè)計與制作_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課 程 設(shè) 計</b></p><p>  課題名稱 電子萬年歷的設(shè)計與制作 </p><p>  姓 名 </p><p>  學(xué) 號 </p><p>  班 級

2、 通信S11-1班 </p><p>  專 業(yè) 通信技術(shù) </p><p>  所 在 系 電子技術(shù)系 </p><p>  指導(dǎo)教師 </p><p>  完成日期 2013-01-04

3、 </p><p>  電子萬年歷的設(shè)計與制作</p><p><b>  摘要</b></p><p>  單片機(jī)就是微控制器,是面向應(yīng)用對象設(shè)計、突出控制功能的芯片。單片機(jī)接上晶振、復(fù)位電路和相應(yīng)的接口電路,裝載軟件后就可以構(gòu)成單片機(jī)應(yīng)用系統(tǒng)。將它嵌入到形形色色的應(yīng)用系統(tǒng)中,就構(gòu)成了眾多產(chǎn)品、設(shè)備的智能化核心。本設(shè)計就是應(yīng)用單片

4、機(jī)強(qiáng)大的控制功能制作而成的電子萬年歷</p><p>  關(guān)鍵詞:單片機(jī);時鐘電路;動態(tài)掃描;</p><p><b>  目錄</b></p><p>  一、設(shè)計要求與方案論證6</p><p><b>  1.設(shè)計要求:6</b></p><p>  2.系統(tǒng)基本方

5、案選擇:7</p><p> ?。?)單片機(jī)芯片的選擇方案和論證:7</p><p> ?。?) 顯示模塊選擇方案和論證:7</p><p>  (3) 顯示器的結(jié)構(gòu)8</p><p>  3.鍵盤模塊的選擇:8</p><p><b>  4.方案論證:9</b></p>

6、<p> ?。?)技術(shù)可行性:9</p><p>  二、系統(tǒng)的硬件設(shè)計與實(shí)現(xiàn)9</p><p>  1. 電路設(shè)計框圖:9</p><p>  2.系統(tǒng)硬件概述:10</p><p>  (1)控制模塊10</p><p><b>  (2)結(jié)構(gòu)10</b></p

7、><p>  3.腳定義及功能10</p><p>  (1)源及時鐘引腳10</p><p>  (2)控制引腳10</p><p>  (3)I/O口引腳11</p><p>  3.片外總線結(jié)構(gòu)11</p><p>  4.要單元電路的設(shè)計:11</p><p&

8、gt;  (1)控制模塊的設(shè)計:11</p><p> ?。?)模塊器件12</p><p>  (3)電路模塊的設(shè)計14</p><p> ?。?)電路原理及說明15</p><p>  (5)數(shù)據(jù)的輸出與輸入(I/O)16</p><p>  (6) DS1302的寄存器16</p>&l

9、t;p>  5. 顯示模塊的設(shè)計17</p><p>  三、系統(tǒng)的軟件設(shè)計18</p><p>  1. 程序流程框圖:18</p><p>  2. 子程序的設(shè)計:21</p><p>  (1) 鍵盤子程序的實(shí)現(xiàn):21</p><p>  (2).讀寫DS1302子程序21</p>

10、<p>  3.系統(tǒng)硬件電路設(shè)計:23</p><p>  4.系統(tǒng)硬件PROTEUS仿真原理圖:24</p><p>  5.主要單元電路的設(shè)計:24</p><p>  (1)顯示4.1 顯示部分設(shè)計24</p><p> ?。?)鍵盤接口:25</p><p>  (3)按鍵開關(guān)去抖動問題:

11、25</p><p>  (4)查詢式按鍵及其接口:26</p><p> ?。?)矩陣式鍵盤及其接口26</p><p>  (6)鍵盤掃描控制方式:26</p><p>  四、測試結(jié)果分析與結(jié)果27</p><p>  1. 測試結(jié)果分析27</p><p> ?。?)在測試中

12、遇到LEDLCD16824不顯示27</p><p> ?。?)按鍵調(diào)整時,不是按單位遞增和遞減28</p><p><b>  五、系統(tǒng)評價28</b></p><p>  六、系統(tǒng)程序清單28</p><p><b>  七、謝辭31</b></p><p>&

13、lt;b>  八、參考文獻(xiàn)31</b></p><p><b>  緒論</b></p><p>  隨著人們生活水平的提高和生活節(jié)奏的加快,對時間的要求越來越高,精準(zhǔn)數(shù)字計時的消費(fèi)需求也是越來越多。</p><p>  二十一世紀(jì)的今天,最具代表性的計時產(chǎn)品就是電子時鐘,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游

14、絲的發(fā)明,相對穩(wěn)定的機(jī)械振蕩頻率源使鐘表的走時差從分級縮小到秒級,代表性的產(chǎn)品就是帶有擺或擺輪游絲的機(jī)械鐘或表。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時精度更高的石英電子鐘表,使鐘表的走時月差從分級縮小到秒級。第三次革命就是單片機(jī)數(shù)碼計時技術(shù)的應(yīng)用,使計時產(chǎn)品的走時日差從分級縮小到1/600萬秒,從原有傳統(tǒng)指針計時的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,直觀明了,并增加了全自動日期、星期的顯示功能,它更符合消費(fèi)者的生活需求!

15、因此,電子時鐘的出現(xiàn)帶來了鐘表計時業(yè)界跨躍性的進(jìn)步……  </p><p>  本設(shè)計采用的是AT89S52單片機(jī),該單片機(jī)采用的MCU51內(nèi)核,因此具有很好的兼容性,內(nèi)部帶有8KB的ROM,能夠存儲大量的程序,最突出特點(diǎn)是具有ISP在系統(tǒng)燒寫功能,使得燒寫程序更加方便。</p><p>  計時芯片采用DALLAS公司的涓細(xì)充電時鐘芯片DS1302,該芯片通過簡單的串行通信與單片機(jī)進(jìn)行通

16、信,時鐘/日歷電路能夠?qū)崟r提供年、月、日、時分、秒信息,采用雙電源供電,當(dāng)外部電源掉電時能夠利用后備電池準(zhǔn)確計時。</p><p>  通過此次設(shè)計能夠更加牢固的掌握單片機(jī)的應(yīng)用技術(shù),增強(qiáng)動手能力、硬件設(shè)計能力以及軟件設(shè)計能力。</p><p>  一、設(shè)計要求與方案論證</p><p><b>  1.設(shè)計要求:</b></p>

17、<p>  本電子時鐘能動態(tài)顯示分鐘、秒。</p><p>  2.系統(tǒng)基本方案選擇:</p><p> ?。?)單片機(jī)芯片的選擇方案和論證:</p><p><b>  方案一: </b></p><p>  采用89C51芯片作為硬件核心,采用Flash ROM,內(nèi)部具有4KB ROM 存儲空間,能于3V

18、的超低壓工作,而且與MCS-51系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計中時由于不具備ISP在線編程技術(shù), 當(dāng)在對電路進(jìn)行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,對芯片的多次拔插會對芯片造成一定的損壞。</p><p><b>  方案二:</b></p><p>  采用AT89S52,片內(nèi)ROM全都采用Flash ROM;能以3V的超底壓工作;同

19、時也與MCS-51系列單片機(jī)完全該芯片內(nèi)部存儲器為8KB ROM 存儲空間,同樣具有89C51的功能,且具有在線編程可擦除技術(shù),當(dāng)在對電路進(jìn)行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,不需要對芯片多次拔插,所以不會對芯片造成損壞。</p><p>  所以選擇采用AT89S52作為主控制系統(tǒng).</p><p><b>  方案三:</b></p

20、><p>  DS1302是美國DALLAS公司推出的一種高性能、低功耗的實(shí)時時鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和RAM數(shù)據(jù)。實(shí)時時鐘可提供秒、分、時、日、星期、月和年,一個月小與31天時可以自動調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.5~5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對后備電源進(jìn)行涓細(xì)電流充

21、電的能力。利用單片機(jī)強(qiáng)大的控制功能就可實(shí)現(xiàn)實(shí)時計時的功能,而且消耗的系統(tǒng)資源少,程序簡單。</p><p>  (2) 顯示模塊選擇方案和論證:</p><p><b>  方案一:</b></p><p>  采用LED液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價格昂貴,需要的接口線多,所以在此設(shè)計中

22、不采用LED液晶顯示屏.</p><p><b>  方案二:</b></p><p>  采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價格也相對較高,所以也不用此種作為顯示.</p><p><b>  方案三:</b></p><

23、;p>  采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格適中,對于顯示數(shù)字最合適,而且采用動態(tài)掃描法與單片機(jī)連接時,占用的單片機(jī)口線少。</p><p><b>  LED顯示數(shù)碼管</b></p><p>  常見的LED顯示具有清晰明亮的特點(diǎn)。是顯示接口也是絕大多數(shù)單片機(jī)應(yīng)用系統(tǒng)必備的部件之一。</p><p>  發(fā)光二極管組成的顯示器

24、是單片機(jī)應(yīng)用產(chǎn)品中最常用的廉價輸出設(shè)備。它由若干個發(fā)光二極管按一定的規(guī)律排列而成。當(dāng)某一個發(fā)光二極管導(dǎo)通時,相應(yīng)的一個點(diǎn)或一筆畫被點(diǎn)亮,控制不同組合的二極管導(dǎo)通,就能顯出各種字符。</p><p>  所以采用了LED數(shù)碼管作為顯示。</p><p>  (3) 顯示器的結(jié)構(gòu)</p><p>  常用的7段顯示器的結(jié)構(gòu)如圖所示,發(fā)光二極管的陽極連在一起的稱為共陽極顯

25、示器,陰極連在一起的成為共陰顯示器。1位顯示器由8個發(fā)光二極管組成,其中7個發(fā)光二極管a~g控制7個筆畫的亮或暗,另一個控制一個小數(shù)點(diǎn)的亮和暗,這種筆畫的七段顯示器能顯示的字符較少,字符的形狀有些失真,但失控簡單,使用方便。</p><p>  3.鍵盤模塊的選擇:</p><p>  在對日期和時間進(jìn)行切換,對日期和時間進(jìn)行調(diào)節(jié)校準(zhǔn)過程中,系統(tǒng)需要產(chǎn)生激勵電流,因此需要用按鍵。</

26、p><p>  方案一:使用獨(dú)立式鍵盤。獨(dú)立式鍵盤是指直接用I/O口線構(gòu)成的單個按鍵電路。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單。</p><p>  方案二:使用矩陣式鍵盤。矩陣式鍵盤是由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上,行線、列線分別連接到按鍵開關(guān)的兩端。其特點(diǎn)是簡單且不增加成本,這種鍵盤適合按鍵數(shù)量較多的場合。</p><p>  根據(jù)以上的論述,因本系統(tǒng)需

27、要的按鍵不多,日期加1鍵,月數(shù)加1鍵,年數(shù)加1鍵,分?jǐn)?shù)加1鍵,時數(shù)加1鍵,時間/日期切換鍵,要求簡單。所以采用方案一獨(dú)立式鍵盤。</p><p><b>  4.方案論證:</b></p><p><b> ?。?)技術(shù)可行性:</b></p><p>  隨著國內(nèi)超大規(guī)模集成電路的出現(xiàn),微處理器及其外圍芯片有了迅速的發(fā)展

28、。集成技術(shù)的最新發(fā)展之一是將CPU和外圍芯片,如程序存儲器、數(shù)據(jù)存儲器、并行I/O口、串行I/O口、定時/計數(shù)器、中斷控制器及其他控制部件集成在一個芯片之中,制成單片計算機(jī)(Single-Chip Microcomputer)。而近年來推出的一些高檔單片機(jī)還包括有許多特殊功能單元,如A/D、D/A轉(zhuǎn)換器、調(diào)制解調(diào)器、通信控制器、鎖相環(huán)、DMA、浮點(diǎn)運(yùn)算單元、PWM控制輸出單元、PWM輸出時的死區(qū)可編程控制功能等。因此,只要外加一些擴(kuò)展電

29、路及必要的通道接口就可以構(gòu)成各種計算機(jī)應(yīng)用系統(tǒng),如工業(yè)流水線控制系統(tǒng)、作為家用電器的主控制器、分布式控制系統(tǒng)的終端節(jié)點(diǎn)或作為其主控制節(jié)點(diǎn)起中繼的作用、數(shù)據(jù)采集系統(tǒng)、自動測試系統(tǒng)等?!、賳纹瑱C(jī)的出現(xiàn),并在各技術(shù)領(lǐng)域中得到如此迅猛的發(fā)展,與單片機(jī)構(gòu)成計算機(jī)應(yīng)用系統(tǒng)所形成的下述特點(diǎn)有關(guān):?、趩纹瑱C(jī)構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠性。這些可靠性的獲得除了依靠單片機(jī)芯片本身的高可靠性以及應(yīng)用有最少的聯(lián)接外,還可以方便地采用軟、硬件技術(shù)?!、巯到y(tǒng)擴(kuò)

30、展、系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng),</p><p>  綜上各方案所述,對此次作品的方案選定: 采用C52作為主控制系統(tǒng); LED數(shù)碼管動態(tài)掃描作為顯示。</p><p>  二、系統(tǒng)的硬件設(shè)計與實(shí)現(xiàn)</p><p>  1. 電路設(shè)計框圖:</p><p><b>  2.系統(tǒng)硬件概述:</b>&l

31、t;/p><p><b>  (1)控制模塊</b></p><p>  AT89S52單片機(jī)為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3, MCS-51單片機(jī)共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨(dú)立地作輸出或輸入。如圖所示。</p><p><b>  (2)結(jié)構(gòu)</b><

32、;/p><p>  按功能分為8部分:CUP,程序存儲器,數(shù)據(jù)存儲器,時鐘電路,串行口,并行I/O口,中斷系統(tǒng),定時/計數(shù)器。</p><p><b>  3.腳定義及功能</b></p><p><b>  (1)源及時鐘引腳</b></p><p>  Vcc:接+5V 電源</p>

33、<p><b>  Vss:接地</b></p><p>  XTAL1和XTAL2:時鐘引腳,外接晶體引線端。當(dāng)使用芯片內(nèi)部時鐘時,此兩引腳端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于接外部時鐘脈沖信號。</p><p><b>  (2)控制引腳</b></p><p>  RST/Vpq:RST是復(fù)

34、位信號輸入端,Vpd是備用電源輸入端。當(dāng)RST輸入端保持2個機(jī)器周期以上高電平時,單片機(jī)完成復(fù)位初始化操作。</p><p>  當(dāng)主電源Vcc發(fā)生故障而突然下降到一定低電壓或斷電時,第2功能Vpd將為片內(nèi)RAM提供電源以保護(hù)片內(nèi)RAM中的信息不丟失。</p><p>  ALE/PROG:地址鎖存允許信號輸入端。在存取外存儲器時,用于鎖存低8位地址信號。當(dāng)單片機(jī)正常工作后,ALE端就周期

35、性地以時鐘振蕩頻率的1/6固定頻率向外輸出正脈沖信號。此引腳的第2功能PROG是對片內(nèi)帶有4K字節(jié)EPROM的8751固外程序時,作為編程脈沖輸入端。</p><p>  PSEN:程序存儲器允許輸出端。當(dāng)片外程序存儲器的讀選通信號,低電平有效。CPU從外部程序存儲器取指令時,PSEN信號會自動產(chǎn)生負(fù)脈沖,作為外部程序存儲器的選通信號。</p><p>  EA/Vpp:程序存儲器地址允許

36、輸入端。當(dāng)EA為高電平時,CPU執(zhí)行片內(nèi)程序存儲器指令,但當(dāng)PC中的值超過0FFFH時,將自動轉(zhuǎn)向執(zhí)行片外程序存儲器指令;當(dāng)EA為低電平時,CPU只執(zhí)行片外程序存儲器指令。</p><p><b>  (3)I/O口引腳</b></p><p>  P0.0~P0.7:P0口8位雙向I/O口;</p><p>  P1.0~P1.7:P1口8位

37、準(zhǔn)雙向I/O口;</p><p>  P2.0~P2.7:P2口8位準(zhǔn)雙向I/O口;</p><p>  P3.0~P3.7:P3口8位準(zhǔn)雙向I/O口。</p><p><b>  3.片外總線結(jié)構(gòu)</b></p><p>  分為三部分:數(shù)據(jù)總線 Data Bus(DB),地址總線 Address Bus (AB),控

38、制總線 Control Bus(CB).</p><p>  本電路是由AT89C52單片機(jī)為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實(shí)時時鐘電路,它可以對年、月、日、周日、時、分、秒進(jìn)行計時,具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1

39、302內(nèi)部有一個31*8的用于臨時性存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月、日、周日、時、分、秒,具有使用壽命長,精度高和低功耗等特點(diǎn),同時具有掉電自動保存功能;溫度的采集由DS18B20構(gòu)成;顯示部份由4個數(shù)碼管,74ls138、74ls47譯碼器構(gòu)成。使用動態(tài)掃描顯示方式對數(shù)字的顯示。</p><p>  4. 單元電路的設(shè)計:</p><p> ?。?)控制模塊的設(shè)計:</p&g

40、t;<p><b> ?、?單片機(jī)原理</b></p><p>  單片機(jī)就是簡化的微型計算機(jī)。CPU中本身自帶存儲器ROM和RAM。CPU片內(nèi)也有總線。IC(集成電路)技術(shù)是將電路通過特殊工藝做在一塊硅基片上封裝成芯片,比如CPU,片外存儲器等等。 將單片機(jī)CPU(比如51系列),晶振,存儲器,地址鎖存器,邏輯門,七段譯碼器(顯示器),按鈕(類似鍵盤),擴(kuò)展芯片,接口等通過

41、PCB工藝(比如SMT貼片,或者插裝)做在環(huán)氧樹脂板上。這樣才是一個完整的單片(做在一塊PCB板上)的微型計算機(jī)。 AT89S52單片機(jī)為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3, MCS-51單片機(jī)共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨(dú)立地作輸出或輸入。</p><p>  單片機(jī)的最小系統(tǒng)如下圖所示,18引腳和19引腳接時鐘電路,XTAL1接外部晶振

42、和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出.第9引腳為復(fù)位輸入端,接上電容,電阻及開關(guān)后夠上電復(fù)位電路,20引腳為接地端,40引腳為電源端. 如圖-1 所示</p><p><b>  圖-1 主控制系統(tǒng)</b></p><p> ?。?)一個8位的微處理器(CPU)</p>

43、;<p>  (2)片內(nèi)數(shù)據(jù)存儲器RAM(128B/256B)</p><p> ?。?)片內(nèi)程序存儲器ROM/EPROM(4kB/8kB)</p><p> ?。?)4個8位并行I/O拉口P0-P3,每個口既可以作輸入也可以作輸出</p><p>  (5)2個16位定時器/計數(shù)器</p><p> ?。?)5個中斷源的中斷控

44、制系統(tǒng)</p><p>  (7)1個全雙工的串行I/O接口</p><p> ?。?)片內(nèi)時鐘振蕩器</p><p><b>  (2)模塊器件</b></p><p><b> ?、?4LS164</b></p><p>  它是個串入并出的8位移位寄存器,它常用于單片機(jī)

45、系統(tǒng)中,下面結(jié)束一下這個元件的基本知識:</p><p>  74LS164引腳圖</p><p>  74LS164_內(nèi)部功能圖</p><p>  74LS164_邏輯符合表</p><p><b>  串行輸入帶鎖存 </b></p><p>  時鐘輸入,串行輸入帶緩沖 </p>

46、;<p><b>  異步清除 </b></p><p>  最高時鐘頻率可高達(dá)36Mhz </p><p>  功耗:10mW/bit </p><p>  74系列工作溫度: 0°C to 70°C </p><p>  Vcc最高電壓:7V </p><p>

47、;  輸入最高電壓:7V </p><p>  高電平:-0.4mA </p><p><b>  低電平:8mA</b></p><p>  (3)電路模塊的設(shè)計</p><p>  圖-2示出DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運(yùn)行。DS1302由

48、Vcc1或Vcc2兩者中的較大者供電。</p><p>  當(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ù)

49、據(jù)的傳送手段。</p><p>  當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RSTS置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電動行時,在Vcc大于等于2.5V之前,RST必須保持低電平。中有在SCLK 為低電平時,才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。</p><p>  圖-2 DS

50、1302的引腳圖</p><p> ?。?)電路原理及說明</p><p> ?、贂r鐘芯片DS1302的工作原理:</p><p>  DS1302在每次進(jìn)行讀、寫程序前都必須初始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫時序如下圖4所示。圖5為DS1302的控制字,此控制字的位7必須置1,若為0則不能把對DS1302進(jìn)行讀

51、寫數(shù)據(jù)。對于位6,若對程序進(jìn)行讀/寫時RAM=1,對時間進(jìn)行讀/寫時,CK=0。位1至位5指操作單元的地址。位0是讀/寫操作位,進(jìn)行讀操作時,該位為1;該位為0則表示進(jìn)行的是寫操作??刂谱止?jié)總是從最低位開始輸入/輸出的。表6為DS1302的日歷、時間寄存器內(nèi)容:“CH”是時鐘暫停標(biāo)志位,當(dāng)該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時,時鐘開始運(yùn)行?!癢P”</p><p>  是寫保護(hù)位,

52、在任何的對時鐘和RAM的寫操作之前,WP必須為0。當(dāng)“WP”為1時,寫保護(hù)位防止對任一寄存器的寫操作。</p><p> ?、?DS1302的控制字節(jié):</p><p>  DS1302的控制字如表-1所示。控制字節(jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位

53、(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。</p><p>  (5)數(shù)據(jù)的輸出與輸入(I/O)</p><p>  在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。如下圖-4所示<

54、/p><p>  圖-4 DS1302讀/寫時序圖</p><p>  (6) DS1302的寄存器:</p><p>  DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表-1。</p><p>  表-1 DS1302的日歷、時間寄存器</p><p

55、>  此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH

56、(寫)、FFH(讀)。 </p><p>  5. 顯示模塊的設(shè)計</p><p>  如圖-5所示,采用動態(tài)掃描顯示,由21個數(shù)碼管,3-8譯碼器74LS138接1K限流電阻,再接8550三極管接到共陽數(shù)碼管的CoM端作為選通位碼,每位選擇相應(yīng)的列。74ls47接240Ω限流電阻,再接共行的LED數(shù)碼管的斷碼。</p><p>  圖-5 LED動態(tài)掃描顯示<

57、;/p><p><b>  三、系統(tǒng)的軟件設(shè)計</b></p><p>  1. 程序流程框圖:</p><p>  圖-A 主程序流程圖</p><p>  圖-B計算陽歷程序流程圖</p><p>  圖-C 時間調(diào)整程序流程圖</p><p>  2. 子程序的設(shè)計:&

58、lt;/p><p>  (1) 鍵盤子程序的實(shí)現(xiàn):</p><p><b>  鍵盤示意圖如圖所示</b></p><p><b>  圖21 按鍵示意圖</b></p><p>  主要函數(shù)模塊(C語言):</p><p>  函 數(shù) 名: void key_count()&l

59、t;/p><p>  功能描述:設(shè)置狀態(tài)轉(zhuǎn)換函數(shù),根據(jù)變量count的不同值,對應(yīng)不同的設(shè)置狀態(tài)按下設(shè)置鍵,自動切換設(shè)置位</p><p>  函 數(shù) 名: void key_out()</p><p>  功能描述:跳出設(shè)置模式</p><p>  函 數(shù) 名: uchar key_up(int temp,int max,int min)<

60、;/p><p>  功能描述: 按鍵加函數(shù),在最大值與最小值之間變化</p><p>  函 數(shù) 名: uchar key_down(int temp,int max,int min)</p><p>  功能描述: 按鍵減函數(shù),在最大值與最小值之間變化</p><p>  函 數(shù) 名:void set_year(); void set_mon

61、th(); void set_day(); void set_hour();</p><p>  void set_minute(); </p><p>  (2).讀寫DS1302子程序</p><p><b>  CLR SCLK</b></p><p><b>  NOP</b></p&

62、gt;<p><b>  SETB RST</b></p><p><b>  NOP</b></p><p><b>  MOV A,32H</b></p><p><b>  MOV R4,#8</b></p><p><b>

63、  WRITE1:</b></p><p>  RRC A ;送地址給1302</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  CLR SCLK</b></p><p>

64、<b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  MOV IO,C</b></p><p><b>  NOP</b></p>

65、<p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  SETB SCLK</b></p><p><b>  NOP</b></p><p><b>  NOP</b>

66、</p><p>  DJNZ R4,WRITE1</p><p><b>  CLR SCLK</b></p><p><b>  NOP</b></p><p><b>  MOV A,31H</b></p><p><b>  MOV R

67、4,#8</b></p><p><b>  WRITE2:</b></p><p><b>  RRC A</b></p><p>  NOP ;送數(shù)據(jù)給1302</p><p><b>  CLR SCLK</b></p><p>

68、;<b>  NOP</b></p><p><b>  NOP</b></p><p><b>  MOV IO,C</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p>

69、<p><b>  NOP</b></p><p><b>  SETB SCLK</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  DJNZ R4,WRITE2</p&

70、gt;<p><b>  CLR RST</b></p><p><b>  RET</b></p><p><b>  ;讀1302程序</b></p><p><b>  READ:</b></p><p><b>  CLR

71、SCLK</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  SETB RST</b></p><p><b>  NOP</b></p><p>

72、<b>  MOV A,32H</b></p><p><b>  MOV R4,#8</b></p><p><b>  READ1:</b></p><p>  RRC A ;送地址給1302</p><p><b>  NOP</b></p

73、><p><b>  MOV IO,C</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  SETB SCLK

74、</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  CLR SCLK</b></p><p><

75、b>  NOP</b></p><p><b>  NOP</b></p><p>  DJNZ R4,READ1</p><p><b>  MOV R4,#8</b></p><p><b>  READ2:</b></p><p>

76、;<b>  CLR SCLK</b></p><p>  NOP ;從1302中讀出數(shù)據(jù)</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  MOV C,IO</b></p>

77、<p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p&

78、gt;<p><b>  RRC A</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b>

79、</p><p><b>  SETB SCLK</b></p><p><b>  NOP</b></p><p>  DJNZ R4,READ2</p><p><b>  MOV 31H,A</b></p><p><b>  CLR R

80、ST</b></p><p><b>  RET</b></p><p>  3.系統(tǒng)硬件電路設(shè)計:</p><p>  本設(shè)計硬件電路圖如下</p><p>  4.系統(tǒng)硬件PROTEUS仿真原理圖:</p><p>  5.主要單元電路的設(shè)計:</p><p&g

81、t; ?。?)顯示4.1 顯示部分設(shè)計</p><p>  基本顯示原理:時鐘開始顯示為0時0分0秒,也就是數(shù)碼管顯示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。10秒位到5后,即59秒 ,分鐘加1,10秒位回0。依次類推,時鐘最大的顯示值為23小時59分59秒。這里只要確定了1秒的定時時間, 其他位均以此為基準(zhǔn)往上累加。 同時時鐘達(dá)到最大值的時候天數(shù)也增加一位,知道顯示了7后再變?yōu)?,同時

82、陰歷和陽歷的天數(shù)也加1,根據(jù)不同的月份顯示的天數(shù)陽歷有28,29,30,31天,陰歷就要經(jīng)過計算得到,到了12個月后,年數(shù)自動增加1,以此類推,顯示萬年歷的現(xiàn)實(shí)。</p><p>  另外,連接方式總電路圖上可以看到,這里就不做說明了,下圖為顯示部分的電路圖。</p><p>  顯示部分電路圖電路:</p><p>  顯示部分采用普通的共陽數(shù)碼管顯示,采用動態(tài)掃

83、描,以減少硬件電路。采用動態(tài)掃描,顯示時采用串行口輸出段碼。</p><p><b> ?。?)鍵盤接口:</b></p><p>  鍵盤在單片機(jī)系統(tǒng)中是一個很重要的部件。為了輸入數(shù)據(jù)、查詢和控制系統(tǒng)的工作狀態(tài),都要用到鍵盤,鍵盤是人工干預(yù)計算機(jī)的主要手段</p><p> ?。?)按鍵開關(guān)去抖動問題:</p><p>

84、;  按鍵開關(guān)在電路中的連接如圖所示。按鍵未按下時,A點(diǎn)電位為高電平5V;按鍵按下時,A點(diǎn)電位為低電平。A點(diǎn)電位就用于向CPU傳遞按鍵的開關(guān)狀態(tài)。但是由于按鍵的結(jié)構(gòu)為機(jī)械彈性開關(guān),在按鍵按下和斷開時,觸點(diǎn)在閉合和斷開瞬間還會接觸不穩(wěn)定,引起A點(diǎn)電平不穩(wěn)定,如圖2-11b所示,鍵盤的抖動時間一般為5~10ms,抖動現(xiàn)象會引起CPU對一次鍵操作進(jìn)行多次處理,從而可能產(chǎn)生錯誤。因此必須設(shè)法消除抖動的不良后果。</p><p

85、>  圖2.3 鍵操作和鍵抖動</p><p>  為了節(jié)省硬件,通常在單片機(jī)系統(tǒng)中,一般不采用硬件方法消除鍵的抖動,而是用軟件消除抖動的方法。根據(jù)抖動特性,在第一次檢測到按鍵按下后,執(zhí)行一段延時5~10ms讓前延抖動消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)真正有鍵按下。當(dāng)檢測到按鍵釋放后,也要給5~10ms的延時,待后延抖動消失后才轉(zhuǎn)入該鍵處理程序。</p><p>

86、; ?。?)查詢式按鍵及其接口:</p><p>  盤與CPU的連接方式可以分為查詢按鍵和矩陣式鍵盤。查詢式按鍵是各按鍵相互獨(dú)立,每個按鍵占用一根I/O口線,每根I/O口線上的按鍵工作狀態(tài)不會影響其他I/O口線上按鍵的工作狀態(tài)。查詢式按鍵電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根I/O口線,在按鍵數(shù)量較多時,I/O口線浪費(fèi)較大,且電路結(jié)構(gòu)顯得繁雜。故這種形式適用于按鍵數(shù)量較少的場合。</p>

87、<p> ?。?)矩陣式鍵盤及其接口</p><p>  矩陣式鍵盤又稱行列式鍵盤,有n個行線和m個列線,經(jīng)限流電阻接+5V電源上,按鍵跨接在行線和列線上,n×m行列結(jié)構(gòu)可構(gòu)成mn個按鍵,組成一個鍵盤。與獨(dú)立式按鍵相比,mn個按鍵只占用m+n根I/O口線,因此適用于按鍵較多的場合。</p><p>  當(dāng)無鍵閉合時,相應(yīng)的I/O之間開路。當(dāng)有鍵閉合時,與閉合鍵相連接

88、的兩條I/O口線之間短路。判斷有無鍵按下的方法是:第一步,置列線相關(guān)I/O口為輸入態(tài),從行線相對應(yīng)的I/O口輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。第二步,置行線相關(guān)I/O口輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。綜合一二兩步的結(jié)果,可確定按鍵編號。但是鍵閉合一次只能進(jìn)行一次鍵功能操作,因此須等待近按鍵釋放后,再進(jìn)行鍵功能操作,否則按一次鍵,有可能會連續(xù)多次進(jìn)行同樣的鍵操作。</

89、p><p>  (6)鍵盤掃描控制方式:</p><p>  在單片機(jī)應(yīng)用系統(tǒng)中,對鍵盤的處理工作僅是CPU工作內(nèi)容的一部分,CPU還要進(jìn)行數(shù)據(jù)處理、顯示和其他輸入輸出操作,因此鍵盤處理工作既不能占用CPU太多時間,又需要CPU對鍵盤操作及時作出響應(yīng)。CPU對鍵盤處理控制的工作方式有以下幾種:</p><p><b>  ①程序控制掃描方式</b>

90、</p><p>  程序控制掃描方式是在CPU工作空余,調(diào)用鍵盤掃描子程序,響應(yīng)鍵輸入信號要求。</p><p> ?、?定時控制掃描方式</p><p>  定時控制掃描方式是利用定時/計數(shù)器每隔一段時間產(chǎn)生定時中斷,CPU響應(yīng)中斷后對鍵盤進(jìn)行掃描,并在有鍵閉合時轉(zhuǎn)入該鍵的功能子程序。</p><p><b> ?、壑袛嗫刂茠呙?/p>

91、方式</b></p><p>  中斷控制掃描方式是利用外部中斷源,響應(yīng)輸入信號。當(dāng)無按鍵按下時,CPU執(zhí)行正常工作程序。當(dāng)有按鍵按下時,CPU立即產(chǎn)生中斷。在中斷服務(wù)子程序中掃描鍵盤,判斷是哪一個鍵被按下,然后執(zhí)行該鍵的功能子程序。這種控制方式克服了前兩種控制方式可能產(chǎn)生的空掃描和不能及時響應(yīng)鍵輸入的缺點(diǎn),既能及時處理鍵輸入,又能提高CPU運(yùn)行效率,但要占用一個寶貴的中斷資源。圖即工作于中斷方式的矩

92、陣式鍵盤接口電路。在初始化時P1.4~P1.7置輸出0,P1.0~P1.3置為輸入態(tài),P1.0~P1.3分別接至與門各輸入端。當(dāng)有鍵閉合時=0,CPU中斷后,在中斷服務(wù)子程序中,再完成鍵識別和鍵功能處理。</p><p>  圖5.2.3工作于中斷方式的矩陣式鍵盤接口電路</p><p>  四、測試結(jié)果分析與結(jié)果</p><p><b>  1. 測試結(jié)

93、果分析</b></p><p> ?。?)在測試中遇到LEDLCD16824不顯示</p><p>  分析:首先使用試測儀對電路進(jìn)行測試,觀察是否存在漏焊,虛焊,或者元件損壞。再接著研究程序的時序圖是否正確。最后發(fā)現(xiàn)程序時序方面出了點(diǎn)小錯。修改后就把問題解決了。</p><p> ?。?)按鍵調(diào)整時,不是按單位遞增和遞減</p><

94、p>  分析:在鍵盤程序中,按鍵一次,向芯片寫入一個新的數(shù)字,在寫入數(shù)字后必須有一定延時才再寫入另一個數(shù)字。</p><p><b>  五、系統(tǒng)評價</b></p><p>  該設(shè)計利用單片機(jī)內(nèi)部的定時/計數(shù)器進(jìn)行中斷定時,配合軟件延時實(shí)現(xiàn)時、分、秒的計時,該方案節(jié)省硬件成本,且能使設(shè)計者對單片機(jī)的指令系統(tǒng)能有更深入的了解,從而掌握單片機(jī)應(yīng)用技術(shù)MCS-52

95、 c語言程序設(shè)計方法,因此,本系統(tǒng)設(shè)計采用此種軟件控制方法來實(shí)現(xiàn)時,而由于ATMEL公司的AT89C52單片機(jī)是低功耗的具有4KB在線可編程FLASH存儲器的單片機(jī)。它與通用80C52系列單片機(jī)的指令第和引腳兼容。片內(nèi)的FLASH集成在一個芯片上,形成了功能強(qiáng)大、使用靈活和具有較高性能價格比的微控制器。它的功能強(qiáng)大,而且也較容易購買。</p><p>  總結(jié):所要實(shí)現(xiàn)的功能通過單片機(jī)編程就可以達(dá)到,不需要額外的

96、時鐘芯片來增加成本,并使外圍電路更加簡單明了。</p><p><b>  六、系統(tǒng)程序清單</b></p><p><b>  /*</b></p><p>  1、按鍵可以調(diào)整當(dāng)時時間</p><p>  2、按鍵可以調(diào)節(jié)定時時間</p><p>  3、定時時間到繼電器

97、吸合</p><p>  *8位數(shù)碼管顯示 時間格式格式 12-30-30 表示:12點(diǎn)30分30秒</p><p>  S1 用于小時 加1操作 </p><p>  S2 用于小時減1操作</p><p>  S3 用于分鐘 加1操作</p><p>  S4 用于分鐘減1操作</p><p&

98、gt;  ;********************************</p><p>  ;* 萬年歷程序 *</p><p>  ;********************************</p><p>  61H(分)60H(秒)</p><p>  SCLK EQU P3.2</

99、p><p>  IO EQU P3.3</p><p>  RST EQU P3.4</p><p>  YEAR DATA 66H</p><p>  MONTH DATA 65H</p><p>  WEEK DATA 64H</p><p>  DAY DATA 63H

100、</p><p>  HOUR DATA 62H</p><p>  MINTUE DATA 61H</p><p>  SECOND DATA 60H</p><p>  DS1302_ADDR DATA 32H</p><p>  DS1302_DATA DATA 31H</p><p>

101、;  ORG 0000H</p><p>  AJMP START</p><p>  ORG 0003H</p><p><b>  RETI</b></p><p>  ORG 000BH</p><p><b>  RETI</b></p><

102、p>  ORG 0013H</p><p><b>  RETI</b></p><p>  ORG 001BH</p><p>  LJMP INTT1</p><p>  ORG 0023H</p><p><b>  RETI</b></p>

103、<p>  ORG 002BH</p><p><b>  RET</b></p><p>  START: SETB EA</p><p>  MOV SCON,#00H ;串行輸出,方式0</p><p>  MOV TMOD,#10H ;計數(shù)器1,方式1</p><p

104、>  MOV TL1,#00H</p><p>  MOV TH1,#00H</p><p>  MOV 74H,R1</p><p>  MOV 44H,R1</p><p>  MOV 75H,R2</p><p>  MOV 45H,R2</p><p>  MOV R0,MINTU

105、E ;分分離,送顯示緩存</p><p>  LCALL DIVIDE</p><p>  MOV 72H,R1</p><p>  MOV 42H,R1</p><p>  MOV 73H,R2</p><p>  MOV 43H,R2</p><p>  MOV R0,SECOND

106、;秒分離,送顯示緩存</p><p>  LCALL DIVIDE</p><p>  MOV 70H,R1</p><p>  MOV 40H,R1</p><p>  MOV 71H,R2</p><p>  MOV 41H,R2</p><p><b>  LCALL DIS&l

107、t;/b></p><p><b>  七、謝辭</b></p><p>  在整個設(shè)計過程中,發(fā)揮團(tuán)隊(duì)精神,分工合作,充分發(fā)揮人的主觀能動性,自主學(xué)習(xí),學(xué)到了許多沒學(xué)到的知識,完成了對萬年歷的設(shè)計,達(dá)到了預(yù)期的目的。在最初的設(shè)計中,相互學(xué)習(xí)、相互討論、研究,完成了最初的設(shè)想。相互學(xué)習(xí)、相互討論、研究,完成了最初的設(shè)想。</p><p>

108、  在實(shí)訓(xùn)的日子里,通過親自動手實(shí)踐,鞏固了以前的知識,發(fā)現(xiàn)了自己的不足然后加以改進(jìn)。</p><p>  在做論文設(shè)計的日子里得到了指導(dǎo)教師的悉心指導(dǎo),在此向我們的指導(dǎo)教師致以誠摯的謝意。感謝提供相關(guān)技術(shù)幫助的老師和同學(xué),你們的支持和鼓勵使我們對這次的作品完成有了信心和動力,也給了我們很多無私的幫助和支持,我們在此深表謝意。</p><p><b>  八、參考文獻(xiàn)</b

109、></p><p>  [1] ATMEL公司AT89S52單片機(jī)中文PDF資料;</p><p>  [2] 天津銳志單片機(jī)開發(fā)網(wǎng);</p><p>  [4] 祝詩平. Proteus和Keil軟件在單片機(jī)教學(xué)中的應(yīng)用[J] .西南農(nóng)業(yè)大學(xué)學(xué)報(社會科學(xué)版),2011(2);</p><p>  [5] 王慶利.單片機(jī)設(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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論