版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 摘 要</b></p><p> 單片機應用技術飛速發(fā)展,縱觀我們現(xiàn)在生活的各個領域,從導彈的導航裝置,到飛機上各種儀表的控制,從計算機的網絡通訊與數(shù)據(jù)傳輸,到工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種智能IC卡、電子寵物等,這些都離不開單片機。單片機是集CPU ,RAM ,ROM ,定時,計數(shù)和多種接口于一體的微控制器。它體
2、積小,成本低,功能強,廣泛應用于智能產業(yè)和工業(yè)自動化上。而51系列單片機是各單片機中最為典型和最有代表性的一種。這次畢業(yè)設計通過對它的學習,應用,從而達到學習、設計、開發(fā)軟、硬的能力。 </p><p> 本文通過對一個基于單片機的能實現(xiàn)萬年歷功能電子時鐘的設計,從而達到學習、了解單片機相關指令在各方面的應用。系統(tǒng)由主控制器AT89C51、時鐘電路DS1302、顯示電路、按鍵電路、和復位電路等部分構成,能實現(xiàn)時
3、鐘日歷顯示的功能,能進行時、分、秒的顯示。</p><p> 關鍵詞 : 單片機, 農歷查詢, 萬年歷 </p><p><b> Abstract</b></p><p> SCM application technology develop rapidly, looking around us now in all spheres o
4、f life, from missiles, navigation equipment, to the various instruments on the aircraft control from a computer network communications and data transmission, industrial automation to real-time process control and data pr
5、ocessing, and our lives extensive use of the smart card, electronic pets, which is inseparable from the microcontroller. Monolithic single-chip is the set of CPU, RAM, ROM, the timing, number and va</p><p>
6、 Based on a microcontroller based on the will to achieve calendar of a multi-functional electronic clock design,Thereby achieve studying and understanding the relevant directives SCM in all aspects of the application. By
7、 main control AT89C51、clock circuit DS1302、display circuit、keystroke circuit and restore circuit componented, to achieve clock calendar display function can be carried out, hours seconds of the show and real-time tempera
8、ture display. </p><p> Keywords : Monolithic single-chip,lunar calendar demand, perpetual calendars</p><p><b> 目錄</b></p><p> 第一章 設計方案論證 …………………………………………………………….4<
9、;/p><p> 1.1 方案論證與設計 ……………………………………………………………………….4</p><p> 1.1.1 控制部分的方案選擇…………………………………………………………..4</p><p> 1.1.2 顯示部分的方案選擇……………………………………………………………4</p><p> 1.1.3系統(tǒng)基本方案
10、選擇和論證….……………………………………………………4</p><p> 1.2 單片機原理 …………………………………………………………………………….5</p><p> 1.3 LED顯示數(shù)碼管 ………………………………………………………………………..5</p><p> 第二章 計算部分 …………………………………………………………………..6&l
11、t;/p><p> 2.1 主要單元電路的器件 …………………………………………………………………..6</p><p> 2.1.1 單片機主控制模塊 ……………………………………………………………..6</p><p> 2.1.2 時鐘電路模塊 …………………………………………………………………. 7</p><p> 2.2 其他
12、模塊器件 ……………………………………………………………………………8</p><p> 2.2.1 74LS164 ………………………………………………………………………….8</p><p> 2.2.2 CON8 …………………………….……………………………………………… .9</p><p> 2.2.3其他元器件 ……….…………………………………
13、…………………………..9</p><p> 第三章 結構設計部分 …………………………………………………………….10</p><p> 3.1顯示部分設計 ………………………………………………………………………….10</p><p> 3.1.1萬年歷優(yōu)化算法 ……………….………………………………………………11</p><p>
14、; 3.2 實現(xiàn)時鐘,日歷顯示設計 ………………………………………………………12</p><p> 3.2.1 DS1302 的寄存器 ……….……………………………………………………12</p><p> 3.2.2 DS1302 實時顯示時間的軟硬件 …………………………………………….12</p><p> 3.2.3 DS1302 與CPU 的連接
15、 ………………………………………………………12</p><p> 3.3整體設計 ………………………………………………………………………………13</p><p> 3.4系統(tǒng)軟件設計 …………………………………………………………………………14</p><p> 3.4.1程序流程框圖 ………………………….……………………………………...14</
16、p><p> 第四章 實驗測試部分 …………………………………………………………….18</p><p> 4.1硬件測試 …………………………………………..…………………………………18</p><p> 4.2軟件測試 ………………………………………………………………………………18</p><p> 4.3測試結果分析與結論 ……
17、……………………………………………………………18</p><p> 4.3.1 測試結果分析 …………………………………….…………………………..18</p><p> 4.3.2 測試結論 ..……………………………….……………………………………19</p><p> 第五章 結論 ……………………………………………………………………….20</
18、p><p> 第六章 謝辭 ……………………………………………………………………….21</p><p> 參考文獻 …………………………………………………………………………..22</p><p> 附錄一:系統(tǒng)程序清單 ……………………………………………………………..23</p><p> 第一章 設計方案論證</p>
19、<p> 1.1方案論證與設計1.1.1.控制部分的方案選擇 a)用可編程邏輯器件設計。可采用ALTERA公司的FLEX10K系列PLD器件。設計起來結構清晰,各個模塊,從硬件上設計起來相對簡單,控制與顯示的模塊間的連接也會比較方便。但是考慮到本設計的特點,EDA在功能擴展上比較受局限,而且EDA占用的資源也相對多一些。從成本上來講,用可編程邏輯器件來設計也沒有什么優(yōu)勢。 b)用凌陽16位單片機設計。凌
20、陽16位單片機有豐富的中斷源和時基,方便本實驗的設計。它的準確度相當高,并且C語言和匯編兼容的編程環(huán)境也很方便來實現(xiàn)一些遞歸調用。I/O口功能也比較強大,方便使用。用凌陽16位單片機做控制器最有特色的就是它的可編程音頻處理,可完成語音的錄制播放和識別。這些都方便對設計進行擴展,使設計更加完善。成本也相對低一些。</p><p> 1.1.2顯示部分的方案選擇a)液晶顯示方式。液晶顯示效果出眾,可以運用菜單項來
21、方便操作,但是在顯示時,特別是使用秒表功能時掃描速度跟不上,屏幕會有明顯的閃爍。而且由于61板的存儲空間有限,液晶顯示就不能與語音播抱程序同時實現(xiàn)。這些大大影響了電子萬年歷的性能。b)相比液晶顯示,采用8段數(shù)碼管既經濟實惠,在效果上也可以加入語音報時功能,操作比較液晶顯示來說雖然略顯繁瑣,但總體也還可以做到比較人性化。所以,最后選擇LED數(shù)碼管顯示方案。</p><p> 1.1.3系統(tǒng)基本方案選擇和論證&l
22、t;/p><p> 1.單片機芯片的選擇方案和論證:</p><p><b> 方案一: </b></p><p> 采用89C51芯片作為硬件核心,采用Flash ROM,內部具有4KB ROM 存儲空間,能于3V的超低壓工作,而且與MCS-51系列單片機完全兼容,但是運用于電路設計中時由于不具備ISP在線編程技術, 當在對電路進行調試時,
23、由于程序的錯誤修改或對程序的新增功能需要燒入程序時,對芯片的多次拔插會對芯片造成一定的損壞。</p><p><b> 方案二:</b></p><p> 采用AT89S52,片內ROM全都采用Flash ROM;能以3V的超底壓工作;同時也與MCS-51系列單片機完全該芯片內部存儲器為8KB ROM 存儲空間,同樣具有89C51的功能,且具有在線編程可擦除技術,
24、當在對電路進行調試時,由于程序的錯誤修改或對程序的新增功能需要燒入程序時,不需要對芯片多次拔插,所以不會對芯片造成損壞。</p><p> 所以選擇采用AT89S52作為主控制系統(tǒng).</p><p> 2. 顯示模塊選擇方案和論證:</p><p> 方案一: 采用LED液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價格昂
25、貴,需要的接口線多,所以在此設計中不采用LED液晶顯示屏.</p><p> 方案二:采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示.</p><p> 方案三:采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格適中,對于顯示數(shù)字最合適,而且采用動態(tài)掃描法與單片機連接時,占用的單片機口線
26、少。</p><p> 所以采用了LED數(shù)碼管作為顯示。</p><p> 3.時鐘芯片的選擇方案和論證:</p><p> 方案一:直接采用單片機定時計數(shù)器提供秒信號,使用程序實現(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。所以不采用此方案。</p><p> 方案二:采用D
27、S1302時鐘芯片實現(xiàn)時鐘,DS1302芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補償?shù)哪赀M行計數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V~5.5V范圍內,2.5V時耗電小于300nA.</p><p> 4. 電路設計最終方案決定</p><p> 綜上各方案所述,對此次作品的方案選定: 采用AT89S52作為主控制系統(tǒng); DS1302提供
28、時鐘;數(shù)字式溫度傳感器;LED數(shù)碼管動態(tài)掃描作為顯示。</p><p><b> 1.2 單片機原理</b></p><p> 單片機就是簡化的微型計算機。CPU中本身自帶存儲器ROM和RAM。CPU片內也有總線。IC(集成電路)技術是將電路通過特殊工藝做在一塊硅基片上封裝成芯片,比如CPU,片外存儲器等等。 將單片機CPU(比如51系列),晶振,存儲器,地址鎖
29、存器,邏輯門,七段譯碼器(顯示器),按鈕(類似鍵盤),擴展芯片,接口等通過PCB工藝(比如SMT貼片,或者插裝)做在環(huán)氧樹脂板上。這樣才是一個完整的單片(做在一塊PCB板上)的微型計算機。 1.3 LED顯示數(shù)碼管</p><p> 常見的LED顯示具有清晰明亮的特點。是顯示接口也是絕大多數(shù)單片機應用系統(tǒng)必備的部件之一。</p><p> 發(fā)光二極管組成的顯示器是單片機應用產品中最常
30、用的廉價輸出設備。它由若干個發(fā)光二極管按一定的規(guī)律排列而成。當某一個發(fā)光二極管導通時,相應的一個點或一筆畫被點亮,控制不同組合的二極管導通,就能顯出各種字符。</p><p><b> 1. 顯示器的結構</b></p><p> 常用的7段顯示器的結構如圖所示,發(fā)光二極管的陽極連在一起的稱為共陽極顯示器,陰極連在一起的成為共陰顯示器。1位顯示器由8個發(fā)光二極管組
31、成,其中7個發(fā)光二極管a~g控制7個筆畫的亮或暗,另一個控制一個小數(shù)點的亮和暗,這種筆畫的七段顯示器能顯示的字符較少,字符的形狀有些失真,但失控簡單,使用方便。</p><p><b> 第二章計算部分</b></p><p> 2.1 主要單元電路的器件</p><p> 2.1.1單片機主控制模塊</p><p&g
32、t; AT89S52單片機為40引腳雙列直插芯片,有四個I/O口P0,P1,P2,P3, MCS-51單片機共有4個8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨立地作輸出或輸入。如圖所示。</p><p><b> 1.內部結構</b></p><p> 按功能分為8部分:CUP,程序存儲器,數(shù)據(jù)存儲器,時鐘電路,串行口,并行I/O口,中斷系統(tǒng)
33、,定時/計數(shù)器。</p><p><b> 2.引腳定義及功能</b></p><p> 1).電源及時鐘引腳</p><p> Vcc:接+5V 電源</p><p><b> Vss:接地</b></p><p> XTAL1和XTAL2:時鐘引腳,外接晶體引線
34、端。當使用芯片內部時鐘時,此兩引腳端用于外接石英晶體和微調電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。</p><p><b> 2).控制引腳</b></p><p> RST/Vpq:RST是復位信號輸入端,Vpd是備用電源輸入端。當RST輸入端保持2個機器周期以上高電平時,單片機完成復位初始化操作。</p><p> 當主電源V
35、cc發(fā)生故障而突然下降到一定低電壓或斷電時,第2功能Vpd將為片內RAM提供電源以保護片內RAM中的信息不丟失。</p><p> ALE/PROG:地址鎖存允許信號輸入端。在存取外存儲器時,用于鎖存低8位地址信號。當單片機正常工作后,ALE端就周期性地以時鐘振蕩頻率的1/6固定頻率向外輸出正脈沖信號。此引腳的第2功能PROG是對片內帶有4K字節(jié)EPROM的8751固外程序時,作為編程脈沖輸入端。</p&
36、gt;<p> PSEN:程序存儲器允許輸出端。當片外程序存儲器的讀選通信號,低電平有效。CPU從外部程序存儲器取指令時,PSEN信號會自動產生負脈沖,作為外部程序存儲器的選通信號。</p><p> EA/Vpp:程序存儲器地址允許輸入端。當EA為高電平時,CPU執(zhí)行片內程序存儲器指令,但當PC中的值超過0FFFH時,將自動轉向執(zhí)行片外程序存儲器指令;當EA為低電平時,CPU只執(zhí)行片外程序存儲
37、器指令。</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位準雙向I/O口;</p><p> P2.0~P2.7:P2口8位準雙向I/O口;</p><p> P3.0~
38、P3.7:P3口8位準雙向I/O口。</p><p><b> 3.片外總線結構</b></p><p> 分為三部分:數(shù)據(jù)總線 Data Bus(DB),地址總線 Address Bus (AB),控制總線 Control Bus(CB).</p><p><b> AT89S52</b></p>&
39、lt;p> 2.1.2時鐘電路模塊</p><p> 1. DS1302的結構及工作原理 </p><p> DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補
40、償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。</p><p> 2. 引腳功能及結構 圖1所示出DS1302 的引
41、腳排列,其中Vcc1 為后備電源,VCC2 為主電源。在主電源關閉的情況下,也能保持時鐘的連續(xù)運行。DS1302 由Vcc1 或Vcc2 兩者中的較大者供電。當Vcc2 大于Vcc1+0.2V 時,Vcc2 給DS1302供電。當Vcc2 小于Vcc1 時,DS1302 由Vcc1 供電。X1 和X2 是振蕩源,外接32.768kHz 晶振。RST 是復位/片選線,通過把RST 輸入驅動置高電平來啟動所有的數(shù)據(jù)傳送。RST 輸入有兩種功
42、能:首先,RST 接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當RST 為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302 進行操作。如果在傳送過程中RST 置為低電平,則會終止此次數(shù)據(jù)傳送,I/O 引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc≥2.5V 之前,RST 必須保持低電平。只有在SCLK 為低電平時,才能將RST 置為高電平。I/O 為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細
43、說明。SCLK 始終是輸入端。</p><p> 3. 數(shù)據(jù)輸入輸出(I/O)</p><p> 在控制指令字輸入后的下一個SCLK 時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0 開始。同樣,在緊跟8 位的控制指令字后的下一個SCLK 脈沖的下降沿讀出DS1302 的數(shù)據(jù),讀出數(shù)據(jù)時從低位0 位到高位7。</p><p><b>
44、2.2其他模塊器件</b></p><p> 2.2.1 74LS164</p><p> 它是個串入并出的8位移位寄存器,它常用于單片機系統(tǒng)中,下面結束一下這個元件的基本知識:</p><p> 74LS164引腳圖</p><p> 74LS164_內部功能圖</p><p> 74LS164
45、_邏輯符合表</p><p><b> 串行輸入帶鎖存 </b></p><p> 時鐘輸入,串行輸入帶緩沖 </p><p><b> 異步清除 </b></p><p> 最高時鐘頻率可高達36Mhz </p><p> 功耗:10mW/bit </p&g
46、t;<p> 74系列工作溫度: 0°C to 70°C </p><p> Vcc最高電壓:7V </p><p> 輸入最高電壓:7V </p><p> 高電平:-0.4mA </p><p><b> 低電平:8mA</b></p><p>
47、2.2.2 CON8</p><p> 它是一個排插符號 ,也就是一個插座,可以通過一個插頭將89C51的P0口引到外面的有關電路作擴展用,也可以作為備用。</p><p> 2.2.3其他元器件</p><p> 電阻,電容,發(fā)光二極管,三極管若干。</p><p> 第三章 結構設計部分</p><p>
48、 3.1 顯示部分設計</p><p> 基本顯示原理:時鐘開始顯示為0時0分0秒,也就是數(shù)碼管顯示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。10秒位到5后,即59秒 ,分鐘加1,10秒位回0。依次類推,時鐘最大的顯示值為23小時59分59秒。這里只要確定了1秒的定時時間, 其他位均以此為基準往上累加。 同時時鐘達到最大值的時候天數(shù)也增加一位,知道顯示了7后再變?yōu)?,同時陰歷和陽歷的天數(shù)
49、也加1,根據(jù)不同的月份顯示的天數(shù)陽歷有28,29,30,31天,陰歷就要經過計算得到,到了12個月后,年數(shù)自動增加1,以此類推,顯示萬年歷的現(xiàn)實。</p><p> 另外,連接方式總電路圖上可以看到,這里就不做說明了,下圖為顯示部分的電路圖。</p><p><b> 顯示部分電路圖</b></p><p> 3.1.1萬年歷優(yōu)化算法&l
50、t;/p><p><b> 1.陽歷算法</b></p><p> 陽歷的算法比較簡單,每十月的總的天數(shù)相對來說是固定的。只有2月份,在閏年是29天,在非閏年是28天。每個月的日歷排法.主要是確定每個月第一天是星期幾。我們知道1901年1月1日是星期二,星期的變化是7天一個周期,比如說要計算1901年2月1日是星期幾,可以這樣推算:從1901年1月1日到1901年2月
51、1日總共經過了31天(從表1可 看出),31對7取模是3:i901年1月1日是星期二,加三后,是星期五。因此1901年2月1日是星期五。同理,可以推算出從1901—2100年任何一天是星期幾。</p><p><b> 表1</b></p><p><b> 2.陰歷算法</b></p><p> 陰歷的算法比較復雜
52、,它包含兩個部分。一部分是陽歷日和陰歷日的對應關系;另一部分則是陽歷日和農歷節(jié)氣的對應關系。下面只介紹與設計有關的陰歷和陽歷的關系。</p><p><b> 表2</b></p><p> 我們先要做一個數(shù)據(jù)表,這個數(shù)據(jù)表里面每2個字節(jié),表示T一個陰所年彝個月份的天教 2個字節(jié)(共16bit)的具體意義如表2。</p><p> 其中“
53、!(0/1)中“0”表示30天,“1”表示29天?!皒 x x x(4個比特可表示數(shù)值范圍0~15)”表示該年中是否有閏月,數(shù)值“0”表示無閏月,“ 1~12” 表示某一個閏月。閏月一般是29天;在200年中(1901~2100年),閏月是30天的,可用一個特殊語句來解決。這里2OO年需要200 x 2=400個字節(jié),構成陰歷壓縮數(shù)據(jù)表。</p><p> 有了陰歷的數(shù)據(jù)表后,主要是要確定陽歷日和胡歷日的對應關
54、系。我們知道陽歷年1901年1月1日,對應的陰歷年是對應的陰歷日,可用以下算法:</p><p> ?。?)從陽歷年1901年1月1日到1901年2月1日,計算出經過了31天;</p><p> ?。?)根據(jù)陰歷數(shù)據(jù)表知道陰歷年1900年11月有29天,因此31—29=2天。原來陽歷年1901年1月1日對應的陰歷日是11日,則有11+1=13;</p><p>
55、(3)因為陰歷1901年12月份有30天,而13<=30,所以陽歷年1901年2月1日對應的陰歷年是1900年12月13日。如果上一步相加得出的散大于當前陰歷月的總的天敢,別應該繼續(xù)減去當前陰歷月的總的天數(shù),直到符合條件。 對于月份增加時,還要通過數(shù)據(jù)表查看是否要經過閏月。</p><p> 對于其他任何一個陽歷日和陰歷日的對應關系,都可以通過以上算法求得結果。</p><p>
56、 3.2 實現(xiàn)時鐘,日歷顯示設計</p><p> DS1302可以對年、月、日、周日、時、分、秒進行計時,且具有閏年補償?shù)榷喾N功能.</p><p> 3.2.1 DS1302 的寄存器</p><p> DS1302 有12 個寄存器,其中有7 個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD 碼形式,其日歷、</p><p> 時
57、間寄存器及其控制字見表1。</p><p> 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM 相關的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。 DS1302 與RAM 相關的寄存器分為兩類:一類是單個RAM 單元,共31 個,每個單元組態(tài)為一個8 位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM
58、 寄存器,此方式下可一次性讀寫所有的RAM 的31 個字節(jié),命令控制字為FEH(寫)、FFH(讀)。</p><p> 3.2.2 DS1302 實時顯示時間的軟硬件</p><p> DS1302 與CPU 的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。圖3 示出DS1302 與89C2051 的連接圖,其中,時鐘的顯示用LCD。</p><p&
59、gt; 3.2.3 DS1302 與CPU 的連接</p><p> 實際上,在調試程序時可以不加電容器,只加一個32.768kHz 的晶振即可。只是選擇晶振時,不同的晶振,誤差也較大。另外,還可以在上面的電路中加入DS18B20,同時顯示實時溫度。只要占用CPU 一個口線即可。 LCD 還可以換成LED,還可以使用北京衛(wèi)信杰科技發(fā)展有限公司生產的10 位多功能8 段液晶顯</p><p&
60、gt; 示模塊LCM101,內含看門狗(WDT)/時鐘發(fā)生器及兩種頻率的蜂鳴器驅動電路,并有內置顯示RAM,可顯示任意字段筆劃,具有3-4 線串行接口,可與任何單片機、IC 接口。功耗低,顯示狀態(tài)時電流為2μA(典型值),省電模式時小于1μA,工作電壓為2.4V~3.3V,顯示清晰。</p><p><b> 3.3整體設計</b></p><p> 實現(xiàn)過程:
61、由串行的時鐘芯片DS1302,送給單片機,單片機處理后輸出。而74LS164將串行信號變成并行信號,每個164對應LED七段碼,三個164對應三行LED數(shù)碼管。單片機P2.6-P2.0連接七個三極管作列驅動,共七列數(shù)碼管,(實際有兩行是六列)行列掃描共同形成萬年歷。</p><p> 其整個過程,如原理圖所示。</p><p><b> 3.4系統(tǒng)軟件設計</b>
62、</p><p> 3.4.1程序流程框圖</p><p> 圖-C 時間調整程序流程圖</p><p> 第四章 實驗測試部分</p><p><b> 4.1硬件測試</b></p><p> 電子萬年歷的電路系統(tǒng)較大,對于焊接方面更是不可輕視,龐大的電路系統(tǒng)中只要出于一處的錯誤,
63、則會對檢測造成很大的不便,而且電路的交線較多,對于各種鋒利的引腳要注意處理,否則會刺被帶有包皮的導線,則會對電路造成短路現(xiàn)象。</p><p> 在本成電子萬年歷的設計調試中遇到了很多的問題?;叵脒@些問題只要認真多思考都是可以避免的,以下為主要的問題:</p><p> (1)LED數(shù)碼管的斷碼錯亂,原因出于沒有認真看清a、b 、c等引腳信息。</p><p>
64、; 解決:重新排列74LS47的輸出端,相應接入LED數(shù)碼管,即可解決出現(xiàn)在的斷碼或亂碼。</p><p> ( 2)對萬年歷修改時間或日期時,有時LED數(shù)碼管被屏蔽掉,造成不亮現(xiàn)象。</p><p> 解決:根據(jù)儀器的測試,發(fā)現(xiàn)電路的驅動能力不足,最后在DS1302時鐘芯片的/CS、SCLK、RET端接入5.1K的上拉電阻后,電路的驅動能力才能滿足,即可解決不亮現(xiàn)象。</p&
65、gt;<p><b> 4.2軟件測試</b></p><p> 電子成年歷是多功能的數(shù)字型,可以看當前日期(陰、陽歷),時間,還有溫度的儀器。電子成年歷功能很多,所以對于它的程序也較為復雜,所以在編寫程序和調試時出現(xiàn)了相對較多的問題。最后經過多次的模塊子程序的修改,一步一步的完成,最終解決了軟件。在軟件的調試過程中主要遇到的問題如下:</p><p&g
66、t; 1.燒入程序后,LED數(shù)碼管顯示閃動,而且亮度不均勻。</p><p> 解決:首先對調用的延時進行逐漸修改,可以解決顯示閃動問題。其次,由于本作品使作動態(tài)掃描方式顯示的數(shù)字,動態(tài)掃描很快,人的肉眼是無法看出,但是調用的顯示程序時,如果不在反回時屏蔽掉最后的附值,則會出現(xiàn)很亮的現(xiàn)象,所以在顯示的后面加了屏蔽子令,最后解決了此問題。</p><p> 2.修改時間、日期時沒有農歷
67、沒有自動對應上。</p><p> 解決:把不相關的程序暫時屏蔽,地農歷的子程序獨立調試,發(fā)現(xiàn)在調用農歷自動更新時,對十進制和十六進制處理不好,所以會造成錯亂。最后把相應的十進制進行修改,使得可以與十六進制對應,最后解決了此問題.</p><p> 4.3測試結果分析與結論</p><p> 4.3.1 測試結果分析</p><p>
68、?。?).在測試中遇到發(fā)光二極管、LED數(shù)碼管為不顯示時,首先使用試測儀對電路進行測試,觀察是否存在漏焊,虛焊,或者元件損壞.</p><p> ?。?).LED 數(shù)碼管顯示不正常,還有亮度不夠,首先使用試測儀對電路進行測試,觀察電路是否存在短路現(xiàn)象。查看燒寫的程序是否正確無誤,對程序進行認真修改。</p><p> ?。?).DS1302 與微處理器進行數(shù)據(jù)交換時,首先由微處理器向電路發(fā)
69、送命令字節(jié),命令字節(jié)最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護;D6=0,指定時鐘數(shù)據(jù),D6=1,指定RAM 數(shù)據(jù);D5~D1 指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。</p><p> 在DS1302 的時鐘日歷或RAM 進行數(shù)據(jù)傳送時,DS1302 必須首先發(fā)送命令字節(jié)。若進行單字節(jié)傳送,8 位命令字節(jié)
70、傳送結束之后,在下2 個SCLK 周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8 個SCLK 周期的下降沿輸出數(shù)據(jù)字節(jié)。</p><p> DS1302 與RAM 相關的寄存器分為兩類:一類是單個RAM 單元,共31 個,每個單元組態(tài)為一個8 位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM 寄存器,在此方式下可一次性讀、寫所有的RAM 的31 個字節(jié)。</p>
71、<p> 要特別說明的是備用電源B1,可以用電池或者超級電容器(0.1F 以上)。雖然DS1302 在主電源掉電后的耗電很小,但是,如果要長時間保證時鐘正常,最好選用小型充電電池??梢杂美鲜诫娔X主板上的3.6V 充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。100 μF 就可以保證1 小時的正常走時。DS1302 在第一次加電后,必須進行初始化操作。初始化后就可以按正常方法調整時間。
72、</p><p> 4.3.2 測試結論</p><p> 經過多次的反復測試與分析,可以對電路的原理及功能更加熟悉,同時提高了設計能力與及對電路的分析能力.同時在軟件的編程方面得到更到的提高,對編程能力得到加強.同時對所學的知識得到很大的提高與鞏固</p><p><b> 第五章 結論</b></p><p>
73、 在整個設計過程中,發(fā)揮團隊精神,分工合作,充分發(fā)揮人的主觀能動性,自主學習,學到了許多沒學到的知識,完成了對萬年歷的設計,達到了預期的目的。在最初的設計中,發(fā)揮“三個臭皮匠,頂個諸葛亮”的作用,相互學習、相互討論、研究,完成了最初的設想。在電路焊接時雖然沒什么大問題,但從中也知道了焊接在整個作品中的重要性,電路工程量大,不能心急,一個個慢慢來不能急于求成,反而達到事半功倍的效果。對電路的設計、布局要先有一個好的構思,才顯得電路板美觀
74、、大方。程序編寫中,由于思路不清晰,開始時遇到了很多的問題,經過靜下心來思考,理清了思路,終于能夠完成它。在此次設計中,知道了做凡事要有一顆平常的心,不要想著走捷徑,一步一腳印。也練就了我們的耐心,做什么事都在有耐心。此次設計中學到了很多很多東西,這是最重要的。</p><p><b> 第六章 謝辭</b></p><p> 畢業(yè)設計的完成,為我的大學學習生活畫
75、下了最后一筆。</p><p> 應該感謝的人很多,首先感謝學院給我們提供了一個展現(xiàn)自己的舞臺,給我們一次難得煅煉的機會,使得我們的動手能力和專業(yè)技能都有了很大的提高。</p><p> 在做論文設計的日子里得到了指導教師的悉心指導,在此向我們的指導教師致以誠摯的謝意。感謝提供相關技術幫助的老師和同學,你們的支持和鼓勵使我們對這次的作品完成有了信心和動力,也給了我們很多無私的幫助和支持
76、,我們在此深表謝意。</p><p><b> 參考文獻</b></p><p> 1劉勇 編 數(shù)字電路 電子工業(yè)出版社 2004</p><p> 2陳正振 編 電子電路設計與制作 廣西交通職業(yè)技術學院信息工程系 2007</p><p> 3楊子文 編 單片機原理及應用 西安電子科技大學出版社 2006<
77、;/p><p> 4王法能 編 單片機原理及應用 科學出版社 2004</p><p> 5曹琳琳.單片機原理及接口技術【M】.北京:國防科技大學出版社,2000年.</p><p> 6許惠民.單片微型計算機原理、接口及應用fM】. 北京:北京郵電大學出版社,2000年.</p><p> 7康華光.電子技術基礎【M】.北京:高等教育
78、出版社,2001年.</p><p> 附錄一:系統(tǒng)程序清單</p><p> ;********************************</p><p> ;* 萬年歷程序 *</p><p> ;********************************</p><p
79、> 67H(高兩位年)66H(低兩位年)65H(月)64H(星期);63H(日)62H(小時)61H(分)60H(秒)57H(農歷月)56H(農歷日);顯示緩沖單元7CH~7BH(4CH~4BH)年低位,7AH~79H(4AH~49H)月;78H(48H)星期,77H~76H(47H~46H)日,75H~74H(45H~44H)時;73H72H(43H~42H)分,71H~70H(41H~40H)秒,5EH~5DH(55H~54
80、H)農歷年;5CH~5BH(53H~52H)農歷月,5AH~59H(51H~50H)農歷日</p><p> ;閏年標志為F0,定時器T1為調整時候閃爍用。</p><p> SCLK EQU P3.2</p><p> IO EQU P3.3</p><p> RST EQU P3.4</p><
81、;p> YEAR DATA 66H</p><p> MONTH DATA 65H</p><p> WEEK DATA 64H</p><p> DAY DATA 63H</p><p> HOUR DATA 62H</p><p> MINTUE DATA 61H</p>
82、<p> SECOND DATA 60H</p><p> DS1302_ADDR DATA 32H</p><p> DS1302_DATA DATA 31H</p><p> ORG 0000H</p><p> AJMP START</p><p> ORG 0003H</p&g
83、t;<p><b> RETI</b></p><p> ORG 000BH</p><p><b> RETI</b></p><p> ORG 0013H</p><p><b> RETI</b></p><p> O
84、RG 001BH</p><p> LJMP INTT1</p><p> ORG 0023H</p><p><b> RETI</b></p><p> ORG 002BH</p><p><b> RETI</b></p><p>
85、; ;********************************</p><p> 《 主程序 》 </p><p> ;********************************</p><p> START: SETB EA</p><p> MOV SCON,#00H ;串行輸出
86、,方式0</p><p> MOV TMOD,#10H ;計數(shù)器1,方式1</p><p> MOV TL1,#00H</p><p> MOV TH1,#00H</p><p> MOV DS1302_ADDR,#8EH</p><p> MOV DS1302_DATA,#00H ;允許寫1302
87、</p><p> LCALL WRITE</p><p> MOV DS1302_ADDR,#90H</p><p> MOV DS1302_DATA,#0A6H</p><p> ;1302充電,充電電流1.1mA</p><p> LCALL WRITE</p><p> MA
88、IN1: MOV DS1302_ADDR,#8DH ;READ OUT YEAR</p><p> LCALL READ</p><p> MOV YEAR,DS1302_DATA</p><p> MOV DS1302_ADDR,#8BH ;READ OUT WEEK</p><p> LCALL READ</p&g
89、t;<p> MOV WEEK,DS1302_DATA</p><p> MOV DS1302_ADDR,#89H ;READ OUT MONTH</p><p> LCALL READ</p><p> MOV MONTH,DS1302_DATA</p><p> MOV DS1302_ADDR,#87H
90、 ;READ OUT DAY</p><p> LCALL READ</p><p> MOV DAY,DS1302_DATA</p><p> MOV DS1302_ADDR,#85H ;READ OUT HOUR</p><p> LCALL READ</p><p> MOV HOUR
91、,DS1302_DATA</p><p> MOV DS1302_ADDR,#83H ;READ OUT MINTUE</p><p> LCALL READ</p><p> MOV MINTUE,DS1302_DATA</p><p> MOV DS1302_ADDR,#81H ;READ OUT SECOND<
92、;/p><p> LCALL READ</p><p> MOV SECOND,DS1302_DATA</p><p> MOV R0,YEAR ;年分離,送顯示緩存</p><p> LCALL DIVIDE</p><p> MOV 7BH,R1</p><p> MOV 4BH
93、,R1</p><p> MOV 7CH,R2</p><p> MOV 4CH,R2</p><p> MOV 78H,WEEK</p><p> MOV 48H,WEEK</p><p> MOV R0,MONTH ;月分離,送顯示緩存</p><p> LCALL DIVID
94、E</p><p> MOV 79H,R1</p><p> MOV 49H,R1</p><p> MOV 7AH,R2</p><p> MOV 4AH,R2</p><p> MOV R0,DAY ;日分離,送顯示緩存</p><p> LCALL DIVIDE</p
95、><p> MOV 76H,R1</p><p> MOV 46H,R1</p><p> MOV 77H,R2</p><p> MOV 47H,R2</p><p> MOV R0,HOUR ;小時分離,送顯示緩存</p><p> LCALL DIVIDE</p>
96、<p> MOV 74H,R1</p><p> MOV 44H,R1</p><p> MOV 75H,R2</p><p> MOV 45H,R2</p><p> MOV R0,MINTUE ;分分離,送顯示緩存</p><p> LCALL DIVIDE</p><
97、;p> MOV 72H,R1</p><p> MOV 42H,R1</p><p> MOV 73H,R2</p><p> MOV 43H,R2</p><p> MOV R0,SECOND ;秒分離,送顯示緩存</p><p> LCALL DIVIDE</p><p&g
98、t; MOV 70H,R1</p><p> MOV 40H,R1</p><p> MOV 71H,R2</p><p> MOV 41H,R2</p><p> LCALL DISPLAY</p><p> LCALL GENGXIN ;更新農歷程序</p><p&g
99、t; JNB P1.1,SETG</p><p> JNB F0,SSS</p><p> CLR P1.3 ; 閏月,則p1.3清0,指示燈亮</p><p> LJMP MAIN1</p><p> SSS: SETB P1.3 ;非閏月,則p1.3置位,指示燈滅</p><p> LJMP M
100、AIN1</p><p> ;********************************</p><p> 《 公歷設置程序 》</p><p> ;********************************</p><p> SETG: SETB TR1</p><p>&
101、lt;b> SETB ET1</b></p><p><b> CLR 08H</b></p><p><b> CLR 09H</b></p><p><b> CLR 0AH</b></p><p><b> CLR 0BH</b
102、></p><p><b> CLR 0CH</b></p><p><b> CLR 0DH</b></p><p><b> CLR 0EH</b></p><p><b> CLR 0FH</b></p><p>
103、; MOV DS1302_ADDR,#8EH</p><p> MOV DS1302_DATA,#00H ;允許寫1302</p><p> LCALL WRITE</p><p> MOV DS1302_ADDR,#80H</p><p> MOV DS1302_DATA,#80H ;1302停止振蕩</p>&
104、lt;p> LCALL WRITE</p><p> GWAIT: LCALL DISPLAY</p><p> JNB P1.1,GWAIT</p><p> SETG1: LCALL DISPLAY</p><p> JNB P1.1,SETG2</p><p> JNB P1.2,GAD
105、DYEAR</p><p> AJMP SETG1</p><p> GADDYEAR: MOV R7,66H ;年加1</p><p> LCALL ADD1</p><p><b> MOV 66H,A</b></p><p> CJNE A,#51H,GA
106、DDYEAR1</p><p> MOV 66H,#01H</p><p> GADDYEAR1: MOV DS1302_ADDR,#8CH ;年值送1302</p><p> MOV DS1302_DATA,66H</p><p> LCALL WRITE</p><p> MOV R0,66H</
107、p><p> LCALL DIVIDE ;年分離送顯示緩沖</p><p> MOV 4BH,R1</p><p> MOV 7BH,R1</p><p> MOV 4CH,R2</p><p> MOV 7CH,R2</p><p> WAITT1: LCALL DISPLA
108、Y</p><p> JNB P1.2,WAITT1</p><p> AJMP SETG1</p><p> SETG2: SETB 0AH ;調月時閃標志</p><p> GWAIT2: LCALL DISPLAY</p><p> JNB P1.1,GWAIT2</p>
109、;<p> SETG3: LCALL DISPLAY</p><p> JNB P1.1,SETG4</p><p> JNB P1.2,GADDMONTH</p><p> AJMP SETG3</p><p> GADDMONTH: MOV R7,65H ;月加1</p><p
110、> LCALL ADD1</p><p><b> MOV 65H,A</b></p><p> CJNE A,#13H,GADDMONTH1</p><p> MOV 65H,#01H</p><p> GADDMONTH1:MOV DS1302_ADDR,#88H ;月值送1302</p&g
111、t;<p> MOV DS1302_DATA,65H</p><p> LCALL WRITE</p><p> MOV R0,65H</p><p> LCALL DIVIDE ;月分離送顯示緩沖</p><p> MOV 79H,R1</p><p> MOV 49H,R1<
112、;/p><p> MOV 7AH,R2</p><p> MOV 4AH,R2</p><p> WAITT2: LCALL DISPLAY</p><p> JNB P1.2,WAITT2</p><p> AJMP SETG3</p><p> SETG4: SETB 0B
113、H ;調日時閃標志</p><p> GWAIT4: LCALL DISPLAY</p><p> JNB P1.1,GWAIT4</p><p> SETG5: LCALL DISPLAY</p><p> JNB P1.1,SETG6</p><p> JNB P1.2,GADDDAY
114、</p><p> AJMP SETG5</p><p> GADDDAY: MOV R7,63H ;日加1</p><p> LCALL ADD1</p><p><b> MOV 63H,A</b></p><p> CJNE A,#32H,GADDDAY1</p
115、><p> MOV 63H,#01H</p><p> GADDDAY1: MOV DS1302_ADDR,#86H ;日值送1302</p><p> MOV DS1302_DATA,63H</p><p> LCALL WRITE</p><p> MOV R0,63H</p><
116、p> LCALL DIVIDE ;日分離送顯示緩沖</p><p> MOV 76H,R1</p><p> MOV 46H,R1</p><p> MOV 77H,R2</p><p> MOV 47H,R2</p><p> WAITT3: LCALL DISPLAY</p>
117、;<p> JNB P1.2,WAITT3</p><p> AJMP SETG5</p><p> SETG6: SETB 0CH ;調星期時閃標志</p><p> GWAIT6: LCALL DISPLAY</p><p> JNB P1.1,GWAIT6</p><p>
118、 SETG7: LCALL DISPLAY</p><p> JNB P1.1,SETG8</p><p> JNB P1.2,GADDWEEK</p><p> AJMP SETG7</p><p> GADDWEEK: MOV R7,64H ;星期加1</p><p> LCALL AD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機的電子萬年歷設計畢業(yè)設計
- 基于單片機的萬年歷畢業(yè)設計
- 51基于單片機的電子萬年歷畢業(yè)設計
- 畢業(yè)設計----基于單片機的電子萬年歷的設計
- 基于單片機的電子萬年歷的設計畢業(yè)設計
- 基于單片機的電子萬年歷
- 基于單片機的電子萬年歷
- 單片機的電子萬年歷設計
- 基于單片機的電子萬年歷的設計畢業(yè)設計
- 【畢業(yè)設計】基于51單片機的電子萬年歷設計
- 基于單片機的萬年歷設計畢業(yè)設計
- 畢業(yè)設計---基于單片機萬年歷的設計
- 畢業(yè)設計---基于單片機萬年歷的設計
- 基于單片機的萬年歷設計畢業(yè)設計
- 單片機萬年歷系統(tǒng)畢業(yè)設計
- 基于51單片機的電子萬年歷畢業(yè)設計論文
- 基于單片機的測溫萬年歷畢業(yè)設計
- 基于51單片機的萬年歷畢業(yè)設計
- 基于單片機的電子萬年歷大學
- 基于單片機的多功能電子萬年歷設計【畢業(yè)設計】
評論
0/150
提交評論