版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 1. 綜述</b></p><p> 1.1 課題背景 </p><p><b> 1.1.1 概述</b></p><p> 隨著電子技術的迅速發(fā)展,特別是隨著大規(guī)模集成電路的產(chǎn)生而出現(xiàn)的微型計算機,給人類生活帶來了極大的方便。走入家庭,從洗衣機、微波爐到音響、汽車,到處都可以見到
2、單片機應用的蹤影。如果說微型計算機技術的出現(xiàn)使現(xiàn)代科學研究得到了質(zhì)的飛躍,那么也可以毫不夸張的說:“單片機技術的出現(xiàn)則是給現(xiàn)代工業(yè)測控領域帶來了一次新的工業(yè)革命”。目前,單片機以其可靠性高和智能性等特點被廣泛應用到工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表、辦公自動化等領域中,并已經(jīng)進入家庭,因此,單片機技術的開發(fā)和應用水平已經(jīng)逐步成為一個國家自動化發(fā)展水平的標志之一。本課題就是以單片機為主體與其它常用器件組合設計而成。代表了單片機的主
3、流發(fā)展方向。</p><p> 本課題實現(xiàn)一個實用而又相對簡單的電子萬年歷。在市場上精致而且漂亮的萬年歷有很多,不過任何一個事物都不是完美的,都有可以進一步發(fā)展的余地。本設計由51系列單片機和時鐘芯片DS1302以及LED實現(xiàn),功能齊全且實用。</p><p> 1.1.2 單片機的發(fā)展歷程</p><p> 單片機是微型計算機的一個重要分支,也是一種非?;?/p>
4、躍和頗具生命力的機種,特別適用于工業(yè)控制領域。1971年微處理器研制成功不久,就出現(xiàn)了單片機,但最早的單片機是1位的,處理能力有限。單片機的發(fā)展共分四個階段:第一階段是初級階段,功能非常簡單;第二階段是低性能階段,以INTEL公司制造的MCS-48系列單片機為代表。第三階段為高性能單片機階段,這個階段推出的單片機普遍帶有串行接口,多級中斷系統(tǒng),16位定時器/計數(shù)器,片內(nèi)ROM、RAM容量加大,直到現(xiàn)在仍被廣泛應用,是目前應用數(shù)量較多的單
5、片機。第四階段是8位單片機鞏固發(fā)展以及16位單片機、32位單片機推出階段,以滿足不同的用戶需要??v觀單片機幾十年的發(fā)展歷程,單片機的今后發(fā)展方向?qū)⑾蚨喙δ?、高性能、高速度、低功耗、低價格、外圍電路內(nèi)裝化以及內(nèi)存儲器容量增加和FLASH存儲器化方向發(fā)展。</p><p> 1.1.3 DS1302的優(yōu)點</p><p> 本次設計采用時鐘芯片DS1302,這種時鐘芯片具備年、月、日、時
6、、分、秒計時功能和多點定時功能,計時數(shù)據(jù)的更新每秒自動進行一次,但不需程序干預其輸出狀態(tài)。此外,這種時鐘芯片帶有電池做后備電源,具備永不停止的計時功能和可編程方波輸出功能,可用作實時測控系統(tǒng)的采樣信號等。這種時鐘芯片內(nèi)部還帶有非易失性RAM,可用來存放需長期保存但有時也需變更的數(shù)據(jù)。本次設計中的LED數(shù)碼管電子時鐘電路采用24時制計時方式,日期和時間用19個數(shù)碼管顯示。</p><p> 1.1.4 萬年歷應
7、用前景</p><p> 在我們的日常生活中,各種各樣顏色各異的精美的電子萬年歷正逐漸代替往日的紙質(zhì)的日歷牌。電子萬年歷不僅功能更加強大而且越來越被人們當成禮品來看待,在朋友,同事,親友中正被人們當紀念品來贈送。所以在未來的電子化時代中萬年歷的需求會更大,具有很好的市場前景。</p><p><b> 1.2 課題提出</b></p><p&
8、gt; 正是因為萬年歷有著如此的發(fā)展前途,另外本人在以前的課程設計時大多做的是硬件工作和數(shù)字電路的設計,所以選擇以51單片機為核心加少量外圍電路就可以實現(xiàn)此課題的設計。</p><p><b> 1.3 開發(fā)工具</b></p><p> 采用面包板焊接電路,在簡陋的實驗條件下盡量提高萬年歷的精度。應用PROTEL繪圖軟件繪制原理圖。利用KEIL進行程序的編譯
9、。</p><p> 調(diào)試工具:萬用表,變壓器,電烙鐵,鑷子等其他常用工具。</p><p><b> 2. 電路設計</b></p><p><b> 2.1系統(tǒng)總體設計</b></p><p> 按照系統(tǒng)設計功能的要求,初步確定設計系統(tǒng)由主控模塊、時鐘模塊、顯示模塊、鍵盤接口模塊共4個
10、模塊組成,電路系統(tǒng)構成框圖如圖2-1所示。主控芯片使用51系列AT89C52單片機,時鐘芯片使用美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘芯片DSl302。采用 DSl302作為主要計時芯片,可以做到計時準確。更重要的是,DSl302可以在很小電流的后備電源(2.5-5.5V電源,在2.5V時電流小于300nA)下繼續(xù)計時,并可編程選擇多種充電電流來對后備電源進行慢速充電,可以保證后備電源基本不耗電。 顯示模塊采用
11、普通的共陽LED數(shù)碼管,鍵輸入采用查詢法實現(xiàn)調(diào)整功能。 </p><p> 圖2-1 電子萬年歷電路系統(tǒng)構成框圖</p><p> 圖2-2為電子萬年歷電路設計原理圖,系統(tǒng)由主控制器AT89C52、時鐘芯片DSl302、串口顯示電路及鍵盤掃描電路組成。</p><p> 圖2-2電子萬年歷電路設計原理圖</p><p>
12、 2.2 主控制器AT89C52</p><p> ATMEL公司生產(chǎn)的AT89C52單片機采用高性能的靜態(tài)80C51設計,由先進工藝制造,并帶有非易失性F1ash程序存儲器。它是一種高性能、低功耗的8位CMOS微處理芯片,市場應用最多。主要性能特點有:</p><p> ●8KB F1ash ROM,可以擦除1000次以上,數(shù)據(jù)保存10年;</p><p>
13、 ●256字節(jié)內(nèi)部RAM;</p><p><b> ●電源控制模式</b></p><p> ——時鐘可停止和恢復;</p><p><b> ——空閑模式;</b></p><p><b> ——掉電模式;</b></p><p><b
14、> ●6個中斷源;</b></p><p><b> ●4個中斷優(yōu)先級;</b></p><p> ●4個8位I/O口;</p><p> ●全雙工增強型UART;</p><p> ●3個16位定時/計數(shù)器,T0、T1(標準80C51)和增加的T2(捕獲和比較);</p>&l
15、t;p> ●全靜態(tài)工作方式:0-24 MHz。</p><p> 2.3 時鐘電路DSl302</p><p> 1.DS1302的性能特點</p><p> ●實時時鐘,可對秒、分、時、日、星期、月以及帶閏年補償?shù)哪赀M行計數(shù);</p><p> ●用于高速數(shù)據(jù)暫存的31×8位RAM;</p><
16、;p> ●最少引腳的串行I/O;</p><p> ●2.5-5.5V電壓工作范圍;</p><p> ●2.5V時電流小于300 nA;</p><p> ●用于時鐘或RAM數(shù)據(jù)讀/寫的單字節(jié)或多字節(jié)(脈沖方式)數(shù)據(jù)傳送方式;</p><p><b> ●簡單的3線接口;</b></p>
17、<p> ●可選的慢速充電(至Vcc1)的能力。</p><p> DS1302時鐘芯片包括實時時鐘/日歷和3l字節(jié)的靜態(tài)RAM。它經(jīng)過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分、時、日、星期、月和年等信息。對于小于31天的月利月末的日期自動進行調(diào)整,還包括閏年校正的功能。時鐘的運行可以采用24H或帶AM(上午)/PM(下午)的12H格式。采用三線接口與CPU進行同步通信,并可采用突
18、發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DSl302有主電源/后備電源雙電源引腳。Vcc1在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電池備份。Vcc2在雙電源系統(tǒng)中提供主電源,在這種運行方式中,Vcc1連接到備份電,以便在沒有主電源的情況下能保存時間信息以及數(shù)據(jù)。DS1302由Vcc1或Vcc2中較大者供電。當Vcc2大于Vcc1+0.2v時,Vcc2給DSl302供電;當Vcc2小于Vcc1時,DSl302由Vcc1供
19、電。</p><p> 2.DSl302數(shù)據(jù)操作原理</p><p> DSl302在任何數(shù)據(jù)傳送時必須先初始化,把RST腳置為高電平,然后把8位地址和命令字裝入移位寄存器,數(shù)據(jù)在SCLK的上升沿被輸入。無論是讀周期還是寫周期,開始8位指定40個寄存器中哪個將被訪問到。在開始8個時鐘周期,把命令字節(jié)裝入移位寄存器之后,另外的時鐘周期在讀操作時輸出數(shù)據(jù),在寫操作時寫人數(shù)據(jù)。時鐘脈沖的個數(shù)
20、在單字節(jié)方式下為8加8,在多字節(jié)方式下為8加字節(jié)數(shù),最大可達248字節(jié)數(shù)。</p><p> 如果在傳送過程中置RST腳為低電平,則會終止本次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在 Vcc≥2.5 V之前,RST腳必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。DS1302的引腳及內(nèi)部結構圖如圖 2-3所示。 </p><p> 圖2-3 DS1302
21、引腳及內(nèi)部結構</p><p> DSl302的控制字如圖2-4所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1;如果它為0,則不能把數(shù)據(jù)寫入到DSl302中。位6如果為0,則表示存取日歷時鐘數(shù)據(jù);為1表示存取RAM數(shù)據(jù)。位5-1(A4-A0)指示操作單元的地址。最低有效位(位0)如為0,表示要進行寫操作;為1表示進行讀操作??刂谱止?jié)總是從最低位開始輸入/輸出。</p><p> 為了提
22、高對32個地址的尋址能力(地址/命令位1~5為邏輯1),可以把時鐘/日歷或RAM寄存器規(guī)定為多字節(jié)(burst)方式。位6規(guī)定時鐘或RAM,而位0規(guī)定讀或?qū)?。在時鐘/日歷寄存器中的地址9-31或RAM寄存器中的地址31不能存儲數(shù)據(jù)。在多字節(jié)方式中,讀或?qū)憦牡刂?開始。必須按數(shù)據(jù)傳送的次序?qū)懽钕鹊?個寄存器。但是,當以多字節(jié)方式寫RAM時,為了傳送數(shù)據(jù)不必寫所有31字節(jié)。所寫的每一字節(jié)都將傳送至RAM。</p><p&
23、gt; 圖2-4 DS1302的控制字</p><p> DSl302共有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數(shù)據(jù)位為BCD碼形式。其日歷、時間寄存器及其控制字見表2-2,其中奇數(shù)為讀操作,偶數(shù)為寫操作。</p><p> 時鐘暫停:秒寄存器的位7定義位時鐘暫停位。當它為1時,DS1302停止振蕩,進入低功耗的備份方式。通常在對DSl302進行寫操作時(如進入時鐘調(diào)
24、整程序),停止振蕩。當它為0時,時鐘將開始啟動。AM-PM/12-24時方式:時寄存器的位7定義為12或24時方式選擇位。它為高電平時,選擇12時方式。在此方式下,位5是AM/PM位,此位是高電平時表示PM,低電平表示AM。在24時方式下,位5為第二個時位(20-23h)。</p><p> 表2-2 內(nèi)部寄存器地址和內(nèi)容 </p><p> DSl302的晶振選用32.768kHz,
25、電容值為6PF,因為振蕩頻率較低,也可以不接電容,對計時精度影響不大。</p><p> 2.4 顯示電路的設計</p><p> 顯示部分采用普通的共陽數(shù)碼管顯示,采用動態(tài)掃描,以減少硬件電路??紤]到一次掃描19位數(shù)碼管顯示時會出現(xiàn)閃爍情況,設計時19個數(shù)碼管分3排同時掃描。第一排6個數(shù)碼管分別為千年、百年、十年、年、十月、月,第二排7位數(shù)碼管分別為星期、陰歷十月、陰歷月、陰歷十日
26、、陰歷日、陽歷十日、陽歷日,第三排6位數(shù)碼管分別為十時、時、十分、分、十秒、秒。顯示時采用串行口輸出段碼,用3片74LS164來驅(qū)動3排數(shù)碼管,這樣掃描一次只需7ms。</p><p> 74LS164內(nèi)部為8個D觸發(fā)器,用以實現(xiàn)數(shù)據(jù)的串行移位,74LS164特性見表2-3。單片機以串行口方式0(移位寄存器方式)輸出數(shù)據(jù),3片74LSl64作為3排共陽數(shù)碼管的串/并轉(zhuǎn)換顯示接口。74LS164為TTL單向8位移
27、位寄存器,可實現(xiàn)串行輸入,并行輸出。其中A、B(第1、2腳)為串行數(shù)據(jù)輸入端,2個引腳按邏輯“與”運算規(guī)律輸入信號,共一個輸入信號時可并接,共同作為輸入腳。CP(第8腳)為時鐘輸入端,可連接到串行口的TXD端。每一個時鐘信號的上升沿加到CP端時,移位寄存器移一位。8個時鐘脈沖過后,8位二進制數(shù)全部移入74LSl64中。MR腳(第9腳)為復位端,當該腳為低電平時,移位寄存器各位復0;只有當它為高電平時,時鐘脈沖才起作用。Q1-Q8(第3-
28、6和10-13引腳)并行輸出端分別接數(shù)碼管的h-a(因為串行口從低位開始傳送)各段對應的引腳上。在給出了8個脈沖后,最先進入74LS164的第1個數(shù)據(jù)到達最高位。再來1個脈沖,第1個數(shù)據(jù)就會從最高位移出,進入下個74LS164的第1位。3片74LS164首尾相串,而時鐘端則接在一起。這樣,當輸入8個脈沖時,從單片機RXD端輸出的第1</p><p> 表2-3 74LS164特性表</p>&l
29、t;p> 在方式0狀態(tài)下,串行口為同步移位寄存器方式,其波特率是固定的,為fosc/12。數(shù)據(jù)由RXD(P3.0)端輸入或輸出,同步移位脈沖由TXD(P3.1)端輸出。發(fā)送、接收數(shù)據(jù)時低位在先。所以,根據(jù)本設計提供的硬件電路圖,在編寫程序時,查共陽數(shù)碼管的段碼數(shù)據(jù)時應該將正常的共陽數(shù)碼管0-9的二進制值按位反序排序,如原來的二進制為11000000(C0H),要改為00000011(03H),就能使數(shù)碼管正常顯示。</p&
30、gt;<p> 2.5 鍵盤接口的設計</p><p> 由于按鍵只有2個,用普通按鈕接10k上拉電阻,用查詢法完成讀鍵功能。</p><p> 2.6 AT89C52單片機性能及特點</p><p> ?。?)與MCS-51微控制器產(chǎn)品系列兼容。</p><p> ?。?)片內(nèi)有8KB可在線重復編程的快閃擦寫存儲器(F
31、lash Memory)。</p><p> ?。?)存儲器可循環(huán)寫入/擦除1000次。</p><p> ?。?)存儲數(shù)據(jù)保存時間為10年。</p><p> ?。?)工作電壓范圍:Vcc可為2.7V~6V。</p><p> ?。?)全靜態(tài)工作:可從0Hz到16MHz。</p><p> ?。?)程序存儲器具有3級
32、加密保護。</p><p> (8)128﹡8位內(nèi)部RAM。</p><p> ?。?)32條可編程I/O線。</p><p> (10)兩個16位定時器/計數(shù)器。</p><p> ?。?1)中斷結構具有5個中斷源和2個優(yōu)先級。</p><p> ?。?2)可編程全雙工串行通道。</p><p
33、> ?。?3)空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲內(nèi)容。</p><p> 2.6.1振蕩器特性</p><p> XTAL1和XTAL2分別為反向放大器的輸入和輸出,該反向放大器可以配置為片內(nèi)振蕩器。石英振蕩和陶瓷振蕩均可采用,如采用外部時鐘源驅(qū)動器件,XTAL2應不接。由于輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘號的脈寬無任何要求,但必須保證脈沖的高低電平要求
34、的寬度。</p><p><b> 2.6.2芯片擦除</b></p><p> 整個EPROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。此外,AT89C52單片機設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可
35、選的掉電模式。在閑置模式下,CPU停止工作,但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。</p><p> 為了滿足一些應用系統(tǒng)的特殊要求,有時要進行一些系統(tǒng)的擴展設計以彌補單片機內(nèi)部資源的不足。單片機的擴展系統(tǒng)通過并行I/O接口或串行I/O接口做總線,在外部擴展程序存儲器、數(shù)據(jù)存儲器或輸入/輸出接口及其他功能部件
36、以滿足一些控制系統(tǒng)的特殊要求,AT89C52單片機的擴展系統(tǒng)結構如圖2-5所示。</p><p> 圖2-5 AT89C52單片機擴展系統(tǒng)結構</p><p> 2.6.3 AT89C52單片機的引腳</p><p> AT89C52單片機采用40條引腳雙列直插式器件,引腳除5V( 40腳)和電源地( 20腳)外,其功能分為時鐘電路、控制信號、輸入/輸出三大部
37、分,引腳圖如圖2-6所示。</p><p> 圖2-6 AT89C52單片機引腳圖</p><p> AT89C52單片機的內(nèi)部硬件結構中除了程序存儲器由EEPROM取代了87C52單片機的EPROM外,其余部分完全相同,其管腳說明如下:</p><p> ?。?)VCC:供電電壓。</p><p> (2)GND:接地。</p&
38、gt;<p><b> ?。?)時鐘電路。</b></p><p> XTAL1(19腳)——芯片內(nèi)部振蕩電路(單級反相放大器)輸入端。</p><p> XTAL2(18腳)——芯片內(nèi)部振蕩電路(單級反相放大器)輸出端。 </p><p><b> ?。?)控制信號。</b></p>&l
39、t;p> RST(9腳)復位信號:時鐘電路工作后,在此引腳上將出現(xiàn)兩個機器周期的高電平,芯片內(nèi)部進行初始復位,P0口~P3口輸出高電平,將初值07H寫入堆棧指針。</p><p> ALE(30腳)地址鎖存信號:當訪問外部存儲器時,P0口輸出的低8位地址由ALE輸出的控制信號鎖存到片外地址鎖存器,P0口輸出地址低8位后,又能與片外存儲器之間傳送信息。另外,ALE可驅(qū)動4個TTL門。</p>
40、<p> ?。?9腳)片外程序存儲器讀選通:低電平有效,作為程序存儲器的讀信號,輸出負脈沖,將相應的存儲單元的指令讀出并送到P0口,可驅(qū)動8個TTL門。</p><p> /Vpp(30腳):當為高電平且PC值小于0FFFH時,CPU執(zhí)行內(nèi)部程序存儲器程序;當為低電平時,CPU僅執(zhí)行外部程序存儲器程序。</p><p><b> (5)I/O接口</b>
41、;</p><p> P0口(P0.0~P0.7,39~32腳)三態(tài)雙向口:P0口結構包括一個輸出鎖存器、兩個三態(tài)緩沖器、一個輸出驅(qū)動電路和一個輸出控制端。P0口做地址/數(shù)據(jù)復用總線使用。若從P0口輸出地址數(shù)據(jù)信息,此時控制端為高電平,若從P0口輸入數(shù)據(jù)指令信息時,引腳信號應從輸入三態(tài)緩沖器進入地址總線,它可驅(qū)動8個TTL門。P0~P3口上的“讀-修改-寫”功能,其操作是先將字節(jié)的全部8位數(shù)讀入,再通過指令修改
42、某些位,然后將新的數(shù)據(jù)寫回到口鎖存器中。</p><p> P1口(P1.0~P1.7,1~8腳)準雙向口:P1口做通用I/O接口使用,P1口的每一位口線能獨立地作用于輸入線,P1口可驅(qū)動4個TTL門。</p><p> P2口(P2.0~P2.7,21~28腳)通用I/O接口:它做通用I/O接口使用時,是一個準雙向口,此時轉(zhuǎn)換開關MUX倒向左邊,輸出極與鎖存器相連,引腳可作為用戶I/
43、O口線使用,輸入/輸出操作與P1口完全相同,P2口做地址總線使用。當系統(tǒng)接有外部存儲器時,P2口用于輸出高8位地址A8~A15,這時在CPU控制下,轉(zhuǎn)換開關MUX倒向右邊,接通內(nèi)部地址總線。P2口的口線狀態(tài)取決于片內(nèi)輸出的地址信息,這些信息來源于PC、DPTR等。在外接程序存儲器中,由于訪問外部存儲器操作連續(xù)不斷,P2口不斷送出地址高8位。AT89C52單片機的P2口一般只做地址總線使用,不做I/O接口直接連外部設備使用。</p&
44、gt;<p> P3口(P3.0~P3.7,10~17腳)雙功能口:P3口做通用I/O接口使用,輸出功能控制線為高電平,與非門的輸出取決于鎖存器的狀態(tài),此時鎖存器Q端的狀態(tài)與其引腳狀態(tài)是一致的。在這種情況下,P3口的結構和操作與P1口相同。P3口第二功能是可作為系統(tǒng)具有控制功能的控制線,另外P3口可驅(qū)動4個LSTTL門電路。P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它
45、們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流,這是由于上拉的緣故。</p><p> P3口也可作為AT89C52的一些特殊功能口使用如:P3.0/ RXD(串行輸入口);P3.1 /TXD(串行輸出口);P3.2 /INT0(外部中斷0);P3.3 /INT1(外部中斷1);P3.4/ T0(記時器0外部輸入);P3.5 /T1(記時器1外部輸入);P3.6 /WR(外部
46、數(shù)據(jù)存儲器寫選通);P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)。</p><p> 2.6.4 單片機存儲器</p><p> 單片機在存儲器的設計上,其共同特點是將程序存儲器與數(shù)據(jù)存儲器分開,它們有各自的尋址方式。AT89C52單片機片內(nèi)具有數(shù)據(jù)存儲器,同時還具有強大的外部存儲器擴展能力,存儲器是單片機系統(tǒng)中的重要組成部分。在一片芯片內(nèi)除了許多基本的記憶單元構成的存儲矩陣外,還包括譯碼
47、驅(qū)動電路,讀寫電路等。圖2-7為半導體存儲器芯片的基本結構框圖。</p><p> 圖 2-7半導體存儲器芯片的基本結構框圖</p><p> ?。?) 單片機存儲器分類</p><p> MCS-51系列單片機的存儲器可分五類:程序存儲器、內(nèi)部數(shù)據(jù)存儲器、特殊功能寄存器、位尋址區(qū)、外部數(shù)據(jù)存儲器I/O接口。</p><p> 程序存儲
48、器:存放程序的存儲器稱為程序存儲器。程序存儲器是以程序計數(shù)器PC做地址指針的,MCS-51單片機的程序計數(shù)器為16位,因此可尋址的空間為64KB。AT89C52系統(tǒng)中沒有片內(nèi)程序存儲器,0000H~0FFFH都是外部程序存儲器空間。</p><p> 內(nèi)部數(shù)據(jù)存儲器:MCS-51單片機內(nèi)部有128B的數(shù)據(jù)存儲器RAM,內(nèi)部數(shù)據(jù)存儲器的編址為00H~7FH。不同的地址區(qū)域內(nèi),功能不完全相同。單片機結構的特點之一是
49、工作寄存器與數(shù)據(jù)存儲器統(tǒng)一編址。MCS-51內(nèi)部RAM的00H~1FH為工作寄存器區(qū),共分4個區(qū),每區(qū)有8個寄存器。當前程序使用的工作寄存器區(qū),是由狀態(tài)字PSW的第3、4位指示的,PSW的狀態(tài)和工作寄存器區(qū)的關系如表2-4所示。</p><p> 表2-4 PSW的狀態(tài)和工作寄存器區(qū)的關系</p><p> (2) 特殊功能寄存器區(qū)</p><p> AT89
50、C52內(nèi)的I/O鎖存器、定時器、串行接口數(shù)據(jù)緩沖器以及各種控制狀態(tài)寄存器和狀態(tài)寄存器都是以特殊功能寄存器的形式出現(xiàn)的,它們零散地分布于80H~FFH的地址空間范圍內(nèi),特殊功能寄存器具有各自的地址空間映像。</p><p><b> (3) 位尋址空間</b></p><p> MCS-51的位尋址空間為00H~7FH,為內(nèi)部RAM中20H~2FH的16個單元的12
51、8位,凡是字節(jié)地址能被8整除的特殊功能寄存器都具有位地址,它們零散地分布在80H~FFH的空間內(nèi)。</p><p> ?。?) 外部數(shù)據(jù)存儲器I/O接口</p><p> AT89C52提供了擴展64KB的外部數(shù)據(jù)存儲器和輸入/輸出口的能力,具有十分廣泛的應用。</p><p><b> 2.7 LED選型</b></p>&
52、lt;p> LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數(shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖2-8(a)是共陰和共陽極數(shù)碼管的內(nèi)部電路圖,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。</p><p> 將多只LED的陰極連在一起即為共陰式,而將多只LED的陽極連在一起即為共陽式。以共陰式為例,如把陰極接地,在相應
53、段的陽極接上正電源,該段即會發(fā)光。當然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如我們將"b"和"c"段接上正電源,其它端接地或懸空,那么"b"和"c"段發(fā)光,此時,數(shù)碼管顯示將顯示數(shù)字“1”。而將"a"、"b"、"d"、"e"和"g"段都接上正
54、電源,其它引腳懸空,此時數(shù)碼管將顯示“2”。其它數(shù)字的顯示原理與此類同。</p><p> LED的7段數(shù)碼管利用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點亮相應的點劃來顯示出0-9的數(shù)字。在這次的設計中采用的均是共陽極的LED顯示,當I/O口輸出為低電平的時候,對應段就被點亮。LED數(shù)碼管的結構圖如圖2-8(b)所示。</p><p><b> ?。╝)&
55、lt;/b></p><p><b> (b)</b></p><p> 圖2-8 LED分類結構圖和結構圖</p><p> 這次設計的顯示部分采用AT89C52單片機動態(tài)掃描完成, 在多數(shù)的應用場合中,我們并不希望使用多I/O端口的單片機,原則上是使用盡量少引腳的器件。在沒有富余端口的情況下,應通過優(yōu)化設計程序和擴展電
56、路達到預期的目的。動態(tài)掃描的頻率有一定的要求,頻率太低,LED將出現(xiàn)閃爍現(xiàn)象。如頻率太高,由于每個LED點亮的時間太短,LED的亮度太低,肉眼無法看清,所以一般均取幾個ms左右為宜,這就要求在編寫程序時,選通某一位LED使其點亮并保持一定的時間,程序上常采用的是調(diào)用延時子程序。</p><p> (1) 靜態(tài)顯示電路</p><p> LED顯示器工作在靜態(tài)顯示時,其公共陽極
57、(或陰極) 接VCC(或GND) ,一直處于顯示有效狀態(tài),所以每一位的顯示內(nèi)容必須由鎖存器加以鎖存,顯示各位相互獨立。</p><p> (2) 動態(tài)顯示電路 </p><p> 將所有位的段選線的同名端連在一起,由一個8位I/O口控制,形成段選線的多位復用。而各位的公共陽極或公共陰極則分別由相應的I/O口線控制,實現(xiàn)各位的分時選通,即同一時刻只有被選通位是能顯示相應的字符,而其
58、他所有位都是熄滅的。由于人眼有視覺暫留現(xiàn)象,只要每位顯示間隔足夠短,則會造成多位同時點亮的假象。這就需要單片機不斷地對顯示進行控制,CPU需要不斷地進行顯示刷新,動態(tài)顯示電路見圖2-9所示。 </p><p> 圖2-9 五位LED數(shù)碼管的動態(tài)顯示</p><p> 2.8 74LS164應用</p><p> 在單片機系統(tǒng)中, 如果并行口的I/O資
59、源不夠,而串行口又沒有其他的作用, 那么我們可以用74LS164來擴展并行I/O口,節(jié)約單片機資源。74LS164是一個串行輸入并行輸出的移位寄存器。并帶有清除端?! ∑渲校琎0-Q7 并行輸出端 。A,B串行輸入端。 MR 清除端, 為0時,輸出清零。CP 時鐘輸入端。 74LS164 引腳定義如圖2-10所示。 </p>
60、<p> 圖2-10 74LS164 引腳定義</p><p> 串行口驅(qū)動數(shù)碼管接線圖如圖2-11所示。</p><p> 圖2-11串行口驅(qū)動數(shù)碼管應用</p><p><b> 3. 系統(tǒng)程序設計</b></p><p> 3.1 DS1302初始化</p><
61、p> 因為使用了時鐘芯片DSl302,陽歷程序只需從DSl302各寄存器中讀出年、月、日、時、分、秒等數(shù)據(jù),再處理即可。在首次對DSl302進行操作之前,必須對它進行初始化,然后從DSl302中讀出數(shù)據(jù),再經(jīng)過處理后,送給顯示緩沖單元。主程序流程如圖3-1所示,陽歷程序流程圖如圖3-2所示。</p><p> 圖3-1 主程序流程圖 圖3-2 陽歷程序流程圖</p&
62、gt;<p> 3.2 時間調(diào)整程序設計</p><p> 調(diào)整時間用2個調(diào)整按鈕,1個作為移位、控制用,另外1個作為加數(shù)用,分別定義為控制按鈕、加按鈕。在調(diào)整時間過程中,要調(diào)整的位與別的位應該有區(qū)別,所以增加了閃爍功能,即調(diào)整的位一直在閃爍,直到調(diào)整下一位。閃爍原理就是,讓要調(diào)整的一位每隔一定時間熄滅一次,比如說50ms。利用定時器計時,當達到50ms溢出時,就送給該位熄滅符,在下一次溢出時
63、再送正常顯示的值,不斷交替,直到調(diào)整該位結束。此時送正常顯示值給該位,再進人下一位調(diào)整閃爍程序。時間調(diào)整程序流程圖如圖3-3所示。</p><p> 圖3-3 時間調(diào)整程序流程圖</p><p> 3.3 陰歷程序設計</p><p> 陰歷程序的實現(xiàn)是要靠陽歷日期來推算的。要根據(jù)陽歷來推算陰歷日期,首先要設計算法。推算方法是,根據(jù)陽歷當前日期在一年中的天數(shù)
64、來計算陰歷日期。陽歷一個月不是30天就是3l天(2月除外,閏年2月為29天,平年2月為28天)。陰歷一年有12個月或13個月(含閏月),一個月為30天或29天。如果把一個只有29天的月稱為小月,用1為標志,把30天的月稱為大月,用0為標志,那么12位二進制就能表示一年12個月的大小。如果有閏月,則把閏月的月份作為一個字節(jié)的高4位,低4位表示閏月大小,大月為0,小月為1。這樣一個字節(jié)就包含了所有閏月的信息。陰歷春節(jié)和陽歷元旦相差的天數(shù)也用
65、一個字節(jié)表示??偣灿?字節(jié)就可以存儲一年中任何一天陽歷和陰歷的對應關系的有關數(shù)據(jù),例如2004年的陰歷和陽歷對應關系如表3-1所列。</p><p> 表3-1 2004年的陰歷和陽歷關系表</p><p> 2004年的春節(jié)和元旦差20天,這樣2004年的信息表示為:21,42H,52H,21H。其中42H和52H表示12個月大小信息的字,第4位和第7位不用。第1個字節(jié)為十進制,其
66、它的都為十六進制。按此方法,50年的陽歷和陰歷對應關系表總共使用200字節(jié)。有了算法和數(shù)據(jù)以后,就可設計軟件了。先要根據(jù)當前陽歷的日期,算出陽歷為該年中的第幾天。圖 3-4為計算陽歷中任何一天在該年中為第幾天的程序流程圖。</p><p> 圖 3-4 計算陽歷</p><p> 計算出當前陽歷日期為該年中的第幾天后,再減去陽歷該年春節(jié)和元旦的日差,如果夠減,則相減的結果就是陰歷在該年
67、的總第幾天了。根據(jù)該數(shù)據(jù)就可以推算出具體的當前陰歷日期;如果不夠減,則表示當?shù)年帤v年為陽歷年的前一年。這種情況下,根據(jù)實際、當前陰歷日期會處于陰歷11月或12月,此時春節(jié)和元旦的日差減去前面計算出的當前陽歷日期在陽歷年為第幾天的數(shù)據(jù)。其結果表示當?shù)年帤v日期離春節(jié)的天數(shù)。計算出的陽歷天數(shù)為該年的第幾天,存放在寄存器R2和R3中。計算出天數(shù)后,如果大于#FFH,則把#FFH存放在R2中,余值存放在R3中。也就是說在用寄存器R2和R3表示的天
68、數(shù)信息中。R2充當主寄存器,數(shù)據(jù)先存滿R2,再存R3。整個轉(zhuǎn)換程序中,這里面的數(shù)據(jù)不能被覆蓋。</p><p> 計算出陽歷總天數(shù)后,就可以根據(jù)它來推算陰歷日期。推算方法是,先用總天數(shù)減去春節(jié)相元旦的日差,如果結果為1,則該天正好是春節(jié)(因為春節(jié)在元旦之后,在計算春節(jié)和元旦的日差0時,假設元旦為0天,春節(jié)為M天,則日差為M。而前面計算的陽歷總天數(shù)是該天在該年中的第幾天,是以元旦為1而得到的,與計算春節(jié)和元旦日差
69、的這種方法相比,其數(shù)值少了1,所以要在原來本應該以0作為該天就是春節(jié)的依據(jù)的基礎上加1,所以以1作為該天是春節(jié)的標志);如果結果小于1,則陰歷應該是陽歷的前一年;如果結果大于1,說明陽歷和陰歷為同一年。再根據(jù)查表所得的該年的陰歷的閏月和大小月的信息,就可以推算出該天的陰歷日期了。圖3-5為由總天數(shù)推算出陰歷日期的程序流程圖。</p><p> 圖3-5 推算陰歷日期的程序流程圖</p><p
70、> 4. 焊接及硬件調(diào)試</p><p><b> 4.1器件焊接</b></p><p> 4.1.1 電路板焊接流程及其注意事項</p><p> ?。?) 焊接微小器件(電阻、電容等)。</p><p> ?。?) 焊接電源部分,并進行電源的調(diào)試。</p><p><b&g
71、t; (3) 焊接IC。</b></p><p> (4) 焊接接插件。</p><p> (5) 電路焊接完畢,酒精浸泡10分鐘左右,用刷子洗刷干凈,晾干。</p><p> ?。?) 電路板的檢查: A、元件有沒有錯焊、漏焊;B、元件的方向、極性是否正確;C、仔細檢查是否有短路和虛焊。</p><p> 焊接過程中,應
72、該保持烙鐵頭的清潔,及時清理烙鐵頭所帶的雜質(zhì),防止因雜質(zhì)影響產(chǎn)生虛焊。焊點要飽滿,使器件與焊盤連接牢固。盡量利用面包板所帶的連接線布置器件的位置,易發(fā)熱的元件應盡量遠離電解電容,這樣可以提高電容的使用壽命。當電容長期工作于高溫環(huán)境下,其壽命會降低很多。布置器件盡量按原理圖布置,這樣既便于查找錯誤,又可減小電路之間的影響。</p><p> 4.1.2 焊接中遇到的問題</p><p>
73、 1、有些器件離得很近在焊接時經(jīng)常會出現(xiàn)短路現(xiàn)象,導致一些器件被燒壞。2、一些插針在焊接時經(jīng)常會出現(xiàn)下滑現(xiàn)象導致脫焊。3、單片機和插針之間由于接觸不良也是導致程序下載不成功或運行不正確的重要因素。</p><p><b> 4.2上電調(diào)試 </b></p><p> 接通電源后,顯示2000年0月0日0時0分0秒,此時通過按動控制鍵來選擇對年、月、日、時、分的調(diào)整
74、的選擇,通過加鍵來對具體時間調(diào)整,當超出最大值時再次從0開始,直至與真實時間一致。此萬年歷可以正確運行。</p><p><b> 5. 程序調(diào)試</b></p><p> 該程序已被調(diào)試通過,陽歷年、月、日、時、分、秒、星期均能正常顯示。由于單片機的計算需要時間,所以在由陽歷轉(zhuǎn)化成陰歷的過程中,陰歷的顯示有時發(fā)生滯后現(xiàn)象。在調(diào)試中發(fā)現(xiàn)有些年份的陰歷月份偶爾會與正
75、常值不同,可能與程序中的一些變量的調(diào)用發(fā)生混亂有關,這也是需要改進的地方。DS1302的晶振沒有通過6PF電容接地所以每一個月會慢大約3S,但影響不大。</p><p> 總體而言,該設計基本達到預期目的。</p><p><b> 結束語</b></p><p> 經(jīng)過近兩個月的努力,畢業(yè)設計基本完成了。在畢業(yè)設計的實踐中,學到很多有用
76、的知識,也積累了不少寶貴的項目開發(fā)經(jīng)驗。在此要特別感謝我的哥哥,他們給我了很大的鼓勵和支持,我的老師,他們?yōu)槲易鲈囼炋峁┝肆己玫脑囼灜h(huán)境,此外還有素未謀面的網(wǎng)友,如果沒有他們的無私幫助,想必我在畢業(yè)設計實踐過程中會走很多彎路,在此特別表示感謝,IBM 有句著名的宣傳詞叫“The future is OPEN”,我認為這句話有兩層意思,第一層意思是技術的進步需要所有的人共同的努力,開源的世界里面所有的人都可以貢獻自己的力量去讓技術進步,像
77、linux,我們可以感覺到它正在改變我們的世界;第二層的意思是,每一個都貢獻自己的力量去幫助別人,在幫助別人的同時,也幫助了我們自己?,F(xiàn)在,我再次向所有幫助過我的人表示衷心的感謝。</p><p> 此外,在畢業(yè)設計過程中,也發(fā)現(xiàn)了自己許許多多的缺點和不足,如放置的資料比較亂,沒有及時整理,在有自己對陌生的東西自信心不足,另外理論知識匱乏也是導致這次畢業(yè)設計不足的根本原因。</p><p&g
78、t;<b> 致謝</b></p><p> 經(jīng)過幾個月的忙碌和學習,本次畢業(yè)論文設計已經(jīng)接近尾聲。作為一個本科生的畢業(yè)設計,由于經(jīng)驗的匱乏,難免有許多考慮不周全的地方,如果沒有指導教師的督促指導,想要完成這個設計是難以想象的。在這里首先要感謝我的畢業(yè)設計指導老師xx老師。劉老師平日里工作繁多,但在我做畢業(yè)設計的每個階段,從開始階段的電路方案確定到隨后的硬件調(diào)試,他都花費了大量的心血,使
79、我學到了許多書本上所得不到的知識。除了敬佩xx老師的專業(yè)水平外,他的治學嚴謹和科學研究的精神也是我永遠學習的榜樣,并將積極影響我今后的學習和工作。在此,謹向xx老師表示最衷心的感謝! </p><p> 最后還要感謝大學四年來自動化專業(yè)的所有老師,是在他們的教誨下,我喜歡上了自動化,掌握了堅實的專業(yè)知識基礎,為我以后的揚帆遠航注入了動力。</p><p><b> 參考文獻&
80、lt;/b></p><p> [1] 邵貝貝.單片機嵌入式應用的在線開發(fā)方法.北京:清華大學出版社,2004年</p><p> [2] 王兆安,黃俊.電力電子技術(第四版).機械工業(yè)出版社,2000年7月 </p><p> [3] 張義和,陳敵北.例說8051.人民郵電出版,2006年1月</p><p> [4]
81、 林伸茂.8051單片機徹底研究-基礎篇.中國電力出版社,2007年4月</p><p> [5] 林伸茂.8051單片機徹底研究-經(jīng)驗篇.中國電力出版社,2007年4月</p><p> [6] 林伸茂.8051單片機徹底研究-實習篇.中國電力出版社,2007年4月 </p><p> [7] 周惠潮.常用電子元件及典型應用.電子工業(yè)出版社,2005年
82、5月</p><p> [8] 童詩白,華成英.模擬電子技術基礎(第三版).高等教育出版社,2004年4月</p><p> [9] 胡漢才.單片機原理與接口技術.北京:清華大學出版社,1996年</p><p> [10] 李朝青.單片機原理及接口技術.北京:北京航空航天大學出版社,1994年</p><p> [11] 蔡杏山
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子萬年歷畢業(yè)設計
- 電子萬年歷畢業(yè)設計
- 畢業(yè)設計---電子萬年歷設計
- 電子萬年歷畢業(yè)設計稿
- 電子萬年歷畢業(yè)設計2
- 畢業(yè)設計----電子萬年歷論文設計
- 電子萬年歷設計
- 畢業(yè)設計---電子萬年歷的設計
- 畢業(yè)設計---電子萬年歷的設計
- 電子萬年歷
- 電子鐘萬年歷畢業(yè)設計
- 萬年歷課程設計--萬年歷電子時鐘
- 數(shù)字萬年歷畢業(yè)設計
- 萬年歷電子時鐘溫度畢業(yè)設計
- 電子萬年歷畢業(yè)論文
- 畢業(yè)論文——電子萬年歷設計
- 電子萬年歷設計-畢業(yè)論文
- 畢業(yè)論文——電子萬年歷設計
- 萬年歷畢業(yè)設計---基于stc89c52萬年歷的設計
- 數(shù)碼萬年歷的畢業(yè)設計
評論
0/150
提交評論