版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 學(xué)號:</p><p> 畢業(yè)設(shè)計</p><p> 題 目 :基于單片機的電子萬年歷的設(shè)計</p><p> 作 者屆 別</p><p> 院 別物理與電子學(xué)院專 業(yè)電子科學(xué)與技術(shù)</p><p> 指導(dǎo)老師職 稱講 師</p><p>
2、完成時間2013年5月</p><p><b> 摘 要</b></p><p> 智能電子萬年歷系統(tǒng)是由硬件與軟件相結(jié)合而設(shè)計,而它是以AT89C55單片機作為主控核心與時鐘電路、顯示電路、復(fù)位電路、振蕩電路、報警鬧鈴電路、溫度檢測電路、獨立鍵盤電路等模塊組成硬件系統(tǒng),其中時鐘電路采用了時鐘芯片DS12887,顯示電路采用了LCD1602液晶顯示,溫度檢測電路
3、采用了DS18B20溫度傳感器;而軟件使用了Keil軟件進行C語言編程、Proteus軟件進行仿真測試,Altium Designer軟件進行原理設(shè)計。系統(tǒng)采用直觀的數(shù)字顯示,可以同時顯示年、月、日、周日、時、分、秒和溫度等信息,且具有整點報時、時間校準(zhǔn)及設(shè)置鬧鐘等功能。</p><p> 關(guān)鍵詞:單片機AT89C55 ;時鐘電路;電子萬年歷;液晶顯示 </p><p><b>
4、; Abstract</b></p><p> The design of Intelligent electronic calendar system is composed of hardware and software, and it is based on AT89C55 microcontroller as the master core .It is Composed of cloc
5、k circuit, display circuit, reset circuit, oscillation circuit, alarm alarm circuit, temperature detection circuit, keyboard circuit module hardware. the clock circuit using the clock chip DS12887, the display circuit di
6、splays useing LCD1602 liquid crystal, temperature detection circuit using DS18B20 temperature sensor; It</p><p> keyword : MCU AT89C55; clock circuit; electronic calendar; liquid crystal display.</p>
7、<p><b> 目錄</b></p><p><b> 第一章 引言1</b></p><p> 1.1 發(fā)展?fàn)顩r1</p><p> 1.2 選題意義與目的1</p><p> 1.3 功能要求2</p><p> 第二章 設(shè)計方案分析
8、與選擇3</p><p> 2.1 主控核心(單片機)3</p><p> 2.2 溫度芯片4</p><p> 2.3 時鐘芯片5</p><p> 2.4 顯示器件5</p><p> 第三章 系統(tǒng)硬件設(shè)計6</p><p> 3.1 單片機最小系統(tǒng)設(shè)計6</
9、p><p> 3.2 溫度電路的設(shè)計8</p><p> 3.3 時鐘電路的設(shè)計10</p><p> 3.4 顯示電路的設(shè)計11</p><p> 3.5 鍵盤電路的設(shè)計12</p><p> 3.6 報警電路的設(shè)計13</p><p> 第四章 系統(tǒng)軟件設(shè)計14</
10、p><p> 4.1 系統(tǒng)總程序14</p><p> 4.2 溫度模塊程序14</p><p> 4.3 時鐘模塊程序16</p><p> 4.4 顯示模塊程序20</p><p> 4.5 鍵盤及其它模塊程序21</p><p> 第五章 調(diào)試與仿真24</p&g
11、t;<p> 5.1 Proteus軟件簡介24</p><p> 5.2 仿真與調(diào)試步驟24</p><p><b> 第六章 總結(jié)28</b></p><p><b> 參考文獻(xiàn)29</b></p><p><b> 致謝30</b>&l
12、t;/p><p><b> 附錄I:系統(tǒng)原理圖</b></p><p> 附錄II:系統(tǒng)源程序</p><p><b> 第一章 引言</b></p><p><b> 1.1 發(fā)展?fàn)顩r</b></p><p> 隨著人們生活水平的提高和生活節(jié)奏的
13、加快,對時間的要求越來越高,精準(zhǔn)數(shù)字計時的消費需求也是越來越多。二十一世紀(jì)的今天,最具代表性的計時產(chǎn)品就是電子萬年歷,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對穩(wěn)定的機械振蕩頻率源使鐘表的走時差從分級縮小到秒級,代表性的產(chǎn)品就是帶有擺或擺輪游絲的機械鐘或表。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時精度更高的石英電子鐘表,使鐘表的走時月差從分級縮小到秒級。第三次革命就是單片機數(shù)碼計時技術(shù)的應(yīng)用(電子萬年歷),使
14、計時產(chǎn)品的走時日差從分級縮小到1/600萬秒,從原有傳統(tǒng)指針計時的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,直觀明了,并增加了全自動日期、星期、溫度以及其他日常附屬信息的顯示功能,它更符合消費者的生活需求!因此,電子萬年歷的出現(xiàn)帶來了鐘表計時業(yè)界跨躍性的進步。近些年,隨著科技的發(fā)展和社會的進步,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,有電子鬧鐘、數(shù)字鬧鐘等等。
15、單片機在多功能數(shù)字鐘中的應(yīng)用已是非常普遍的,人們對數(shù)字鐘的功能及工作順序都非常熟悉。但</p><p> 1.2 選題意義與目的 </p><p> 現(xiàn)在是一個知識爆炸的新時代,新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月異??梢院敛豢鋸埖恼f,電子技術(shù)的應(yīng)用無處不在,電子技術(shù)正在不斷地改變我們的生活,改變著我們的世界,改變著我們的觀念,傳統(tǒng)的時鐘已不能滿足人們的需求。而數(shù)字化的鐘表
16、給人們帶來了極大的方便。由于單片機具有靈活性強、成本低、功耗低、保密性好等特點,所以電子日歷時鐘一般都以單片機為核心,外加一些外圍設(shè)備來實現(xiàn)。而隨著科學(xué)技術(shù)的高速發(fā)展,微電子技術(shù)的突飛猛進,人們設(shè)計出更加便捷和更加精確的電子萬年歷。它不僅能對年、月、日、時、分、秒、星期進行計時,更能進行閏年補償、溫度顯示、整點報時、時間校準(zhǔn)以及鬧鐘設(shè)置等多種功能,而且產(chǎn)生的誤差極小,使用壽命極長。因此采用電子時鐘(萬年歷)是一種趨勢,更是一種時尚。&l
17、t;/p><p> 本系統(tǒng)采用了以廣泛使用的單片機技術(shù)為核心,軟硬件結(jié)合,并采用獨立鍵盤電路、LCD顯示電路、時鐘電路、溫度檢測電路,使硬件部分大為簡化,提高了系統(tǒng)穩(wěn)定性,能顯示豐富的信息,此萬年歷具有功能多樣、電路簡潔、讀取方便、顯示直觀、電路簡潔、操作容易、功耗低、成本低廉等多項優(yōu)點,適合批量生產(chǎn),符合電子儀器儀表的未來發(fā)展趨勢,具有廣闊的市場前景。</p><p><b>
18、 1.3功能要求</b></p><p> 1.系統(tǒng)采用直觀的數(shù)字顯示,可以同時顯示年、月、日、周日、時、分、秒溫度等信息,且具有時間校準(zhǔn)等功能(設(shè)計要求)。</p><p> 2. 利用PROTEL軟件進行電路設(shè)計及用Proteus進行電路仿真(設(shè)計要求)。</p><p> 3.具有響鈴及整點通知功能(創(chuàng)新要求)。</p><
19、;p> 4.具有上電各模塊自檢及高溫二級報警功能(創(chuàng)新要求)。</p><p> 第二章 設(shè)計方案分析與選擇</p><p> 萬年歷的設(shè)計有多種方法,可供選擇的元器件豐富多樣,可運用的技術(shù)也有很多種。所以,系統(tǒng)總體設(shè)計方案應(yīng)在滿足功能要求的前提下,充分的考慮系統(tǒng)的使用環(huán)境,所選的結(jié)構(gòu)要操作方便、易于實現(xiàn),元器件的選用著重于合適的參數(shù)、穩(wěn)定的性能、較低的功耗以及低廉的成本等多種
20、因素,同時緊跟時代腳步。因此,本文提出了基于AT89系列單片機的智能電子萬年歷設(shè)計的方案,此次設(shè)計以單片機作為主控核心,與溫度芯片、時鐘芯片、顯示等模塊組成硬件系統(tǒng)。針對這四大主要模塊,對一下芯片進行分析與選擇。</p><p> 2.1主控核心(單片機)</p><p> 本方案在主控核心方面采用的是AT89系列,AT89 系列是美國Atmel公司生產(chǎn)的cmos 單片機,片內(nèi)含有可多
21、次擦寫的只可讀取程序存儲器(PEROM)和隨機的可存取數(shù)據(jù)的存儲器(RAM),器件采用的生產(chǎn)技術(shù)是Atmel公司高密度的、非易失的存儲技術(shù),兼容了標(biāo)準(zhǔn)的mcs-51指令系統(tǒng);其內(nèi)部含有通用的8位(中央)處理器CPU和存儲器(Flash存儲單元)功能強大AT89系列單片機可以生產(chǎn)高性價比的產(chǎn)品用于各種場合,因其靈活性強常常應(yīng)用于多種控制領(lǐng)域。在AT89系列單片機中首先考慮用AT89C51,它是一款優(yōu)秀的、功能強大單片機,但是只讀程序數(shù)據(jù)存
22、儲器(ROM)只有4K,而本次設(shè)計的程序比較大超過了10K,若要用它就要接 擴展儲存器,這必定會增加產(chǎn)品的費用,也會使設(shè)計的電路變得復(fù)雜,因此,不符合我的設(shè)計要求,從設(shè)計的程序看可以選擇AT89C53 和AT89C54,然考慮的Proteus仿真元器件庫中沒有這兩款單片機,綜合考慮可以采用AT89C55,從表2—1來看,這款單片機完全符合設(shè)計要求。</p><p> 這個AT89C55是一種低功耗,高性能的8位
23、CMOS單片機,提供以下標(biāo)準(zhǔn)功能:20k字節(jié)Flash閃速存儲器,256字節(jié)內(nèi)部RAM,4個(P0、P1、P2、P3)8字節(jié)端口,三個16位定時/計數(shù)器, 6向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C55可降至零頻率的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它
24、所有部件工作直到下一個硬件復(fù)位。它有多種封裝方式,本設(shè)計采用DIP—40直插式封裝的AT89C55。</p><p> 表2—1兩種單片機的比較</p><p><b> 2.2溫度芯片</b></p><p> 溫度是常見的測量與控制量之一,其實時測控遍布各行各業(yè)。它通常是通過溫度傳感器來測量,在眾多的溫度傳感器中,可分兩類即模擬溫度傳
25、感器與數(shù)字溫度傳感器,本次設(shè)計的電子萬年歷為了簡潔硬件電路簡潔、系統(tǒng)穩(wěn)定性、易于實現(xiàn)??刹捎脭?shù)字溫度傳感器,DS18B20是美國Dallas公司推出的數(shù)字溫度傳感器之一, 采用3腳(或8腳)TO—92封裝形式,DQ(2腳)為數(shù)字信號輸入/輸出端,GND(1腳)為電源地,VDD(3腳)為外接供電電源輸入端。與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被溫度。不需用A/D轉(zhuǎn)換電路,減少了硬件成本,感溫特性曲線是嚴(yán)格線性的,不會產(chǎn)生較大的測量
26、誤差。提供9 位(二進制)溫度讀數(shù)指示器件的溫度信息經(jīng)過單線接口送入DS18B20或從 DS18B20送出,因此,從主機CPU 到DS18B20僅需一條線。主要特點:不需要備份電源,可通過DQ供電;單線接口,只有一根信號線與CPU連接,電路簡單;傳送串行數(shù)據(jù);用戶可設(shè)定報警上下限值;零功耗待機;多個DS18B20可以很方便地以串行方式與PC或單片機連接,實現(xiàn)多點檢測;抗干擾性強,適合于惡劣環(huán)境的現(xiàn)場溫度測量。因此,DS18B20完<
27、;/p><p><b> 2.3時鐘芯片</b></p><p> 萬年歷的設(shè)計可以直接采用單片機定時計數(shù)器的定時它能提供比較精確秒信號,使用程序?qū)崿F(xiàn)年、月、日、時、分、秒、星期計數(shù)以及時間的校準(zhǔn),鬧鐘的設(shè)置。采用此種方案雖然減少芯片的使用,達(dá)到電路簡潔、節(jié)約成本,但是,實現(xiàn)的時間誤差較大,不符合實際情況。所以不采用此方案。本設(shè)計將采用DS2887時鐘芯片來實現(xiàn)時鐘,
28、DS12887 為DALLAS公司最新推出的的實時時鐘芯片,除具有實時鐘功能外,它還具有128字節(jié)的通用RAM其中14個作為字節(jié)時鐘和控制寄存器,114字節(jié)為通用RAM,所有ARAM單元數(shù)據(jù)都具有掉電保護功能。采用CMOS技術(shù)制成,把時鐘芯片所需的晶振和外部鋰電池相關(guān)電路集于芯片內(nèi)部,計秒、分、時、天、星期、日、月、年,并有閏年補償功能,二進制數(shù)碼或BCD碼表示時間、日歷和定鬧。12小時或24小時制,12小時時鐘模式帶有PM和AM指導(dǎo),
29、有夏令時功能。中斷信號輸出(IRQ)和總線兼容,定鬧中斷、周期性中斷、時鐘更新周期結(jié)束中斷可分別由軟件屏蔽,也可分別進行測試。采用DS12887芯片設(shè)計的時鐘電路勿需其它外圍電路并具有良好的微機接口。DS12887芯片具有微功耗、外圍接口簡單、精度高、工作穩(wěn)</p><p><b> 2.4顯示器件</b></p><p> 數(shù)據(jù)的顯示有多種方式可使用(點陣式的或
30、LED的動態(tài)掃描)數(shù)碼管或(LCD)液晶來顯示,點陣式的數(shù)碼管由64個發(fā)光的二極管(八行八列)構(gòu)成,用于顯示一些文字會很適合,而用來顯示數(shù)字實在浪費,并且價格是較高,故不使用它來顯示。而(LED數(shù)碼管)動態(tài)掃描的顯示,使用簡單,操作方便,顯示直觀,并且(LED)數(shù)碼管的價格也比較適中,對于顯示數(shù)字最合適,而且采用動態(tài)掃描法與單片機連接時,占用的單片機口線少,但是,由于顯示的位數(shù)比較多,若采用它將要使用4塊74HC573芯片,這無疑會增加
31、成本,重點是會使電路復(fù)雜化,操作繁瑣,不滿足設(shè)計要求。所以也不采用了LED數(shù)碼管作為顯示。采用LCD液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,易于控制,電路簡潔,缺點是價格比較貴,但總的來說,是最符合設(shè)計要求,所以在此設(shè)計中采用LCD液晶顯示屏。</p><p> 第三章 系統(tǒng)硬件設(shè)計</p><p> 本系統(tǒng)的硬件設(shè)計采用的是自頂向下設(shè)計模式,頂
32、層開始,連續(xù)地逐層向下分解,起到系統(tǒng)的所有模塊都小到便于掌握為止。因此,本系統(tǒng)設(shè)計了9大模塊,分別是主控核心(AT89C55)模塊、DS12887模塊、DS18B20模塊、LCD顯示模塊、復(fù)位電路模塊、報警響鈴模塊、電源模塊、獨立鍵盤模塊、振蕩電路模塊。通過AT89C55讀取時鐘芯片的時間和溫度芯片的溫度,用LCD1602來顯示,并可以通過初始化時鐘芯片和鍵盤設(shè)置鬧鈴時間.系統(tǒng)總框圖如:圖3—1。原理圖見附錄一。</p>
33、<p><b> 圖3-1系統(tǒng)總框圖</b></p><p> 3.1單片機最小系統(tǒng)設(shè)計</p><p> 3.1.1單片機最小系統(tǒng)原理圖</p><p> 單片機的最小系統(tǒng)是指由最基本的電路元器件組成,外接部分簡單的電路就能獨立完成一定的工作任務(wù)的單片機系統(tǒng)。55單片機的最小系統(tǒng)包括單片機芯片、電源、時鐘電路和復(fù)位電路組成,
34、如圖3—2。</p><p> 3.1.2主控核心的功能</p><p> 主控核心AT89C55單片機總共有40個引腳,其中包含4組8位的I/O口;RST、ALE/PROG、XTAL1、 XTAL2、VSS、GND、EA/VPP、PSEN各一個。各引腳的功能說明如下:XTAL1/XTAL2:放大器的輸入端/輸出端;PSEN:程序存儲允許(PSEN)輸出是外部程序存儲器的讀選通信號,此
35、設(shè)計中沒有用到片外存儲器,因此不用管;RST引腳出現(xiàn)兩個機器周期以上的高電平將使單片機復(fù)位;EA:雙功能控制端口,下設(shè)計中沒用片外存儲器,所以直接接電源;ALE/PROG:在訪問外部程序存儲器時,不讀取片外時以時鐘</p><p> 圖3—2單片機最小系統(tǒng)的原理圖</p><p> 振蕩頻率的1/6輸出固定的正脈沖信號,故它可以對外輸出時序或用于定時。P0口即可用地址/數(shù)據(jù)總線復(fù)用口,
36、有可作通用的I/O口使用。它是一組8位漏極開路型雙向I/O口作為輸出口用時。P2是一個帶內(nèi)部上拉電阻的8位雙向I/O端口,它即可作通用的I/O口使用,也可與P0口相配合,作為片外存儲器的高8位地址總線。它可以根據(jù)系統(tǒng)要求,可全部當(dāng)做于I/O口使用,也可以全部當(dāng)做地址總線使用,或者部分作地</p><p> 表3-1單片機第二功能圖</p><p> 址總線使用部分作I/O口使用,用戶自
37、己靈活使用。P1主要用于單片機的用戶的控制量的輸入或數(shù)據(jù)的輸出,它是一個通用準(zhǔn)雙向I/O口,但它與AT89C51略有區(qū)別,它的P1.0與P1.1有第二功能。P3口即可作通用的I/O口使用,但常使用的是其第二功能。其第二功能如表3-1所示。</p><p> 3.1.3最小系統(tǒng)的晶振電路</p><p> 此電路用來產(chǎn)生時鐘信號,以提供單片機內(nèi)部各種數(shù)字邏輯電路的工作的時間基準(zhǔn)。55單片
38、機可內(nèi)部振蕩方式和外部振蕩方式兩種電路形式,本設(shè)計采用的是內(nèi)部振蕩方式。單片機的內(nèi)部XTAL1(19腳)與XTAL2(18腳)之間有一個高增益的放大器,在19腳和18腳外接諧振電路,就構(gòu)成內(nèi)部振蕩方式的自激振蕩器,并產(chǎn)生時鐘脈沖,本次設(shè)計的單片機工作頻率為12MHz,振蕩頻率由晶振的諧振頻率來確定,電容器C1、C2起穩(wěn)定頻率、快速起振的作用,其電容值為30pF,設(shè)計電路時應(yīng)將C1、C2盡量靠近單片機芯片,由于內(nèi)部振蕩方式電路簡單,信號穩(wěn)
39、定,是獨立的單片機系統(tǒng)首選。</p><p> 3.1.4最小系統(tǒng)的復(fù)位電路和電源</p><p> 單片機的復(fù)位電路的設(shè)計,其第9引腳為復(fù)位輸入端, 20引腳為接地端,40引腳為電源端.此系統(tǒng)的的復(fù)位電復(fù)位路設(shè)計兩種情況,一為上電復(fù)位電路,一為手動復(fù)位。這種設(shè)計比單一的上電復(fù)位更符合實際,也是操作方便。電源的連接,把單片機20引腳接地,單片機40引腳接+5V電壓,完成電源的連接。&l
40、t;/p><p> 3.2溫度電路的設(shè)計</p><p> 3.2.1.DS18B20測溫原理</p><p> 測溫原理如圖3-3所示,由于DS18B20的晶振的振蕩頻率是低溫度系數(shù)的,因此在受到溫度的影響時變化較小,故它可用于當(dāng)作穩(wěn)定頻率,而減法計數(shù)器1的脈沖信號可以由它可提供,由于它的的晶振的振蕩頻率在高溫系數(shù)時隨溫度變化很明顯,故產(chǎn)生的脈沖信號可作為減法計
41、數(shù)器2的脈沖信號輸入,從原理圖看,還含有計數(shù)門,當(dāng)計數(shù)門打開時,DS18B20溫度傳感器就對低溫度系數(shù)振蕩器生成的時鐘脈沖進行計數(shù),從而實現(xiàn)環(huán)境溫度的檢測。計數(shù)門開啟的時間是由(高溫系數(shù))振蕩器來確定,在每次檢測之前,先將基準(zhǔn)溫度-55 ℃存入溫度的寄存器和減法計數(shù)器1中,使溫度寄存器與減法計數(shù)器1被初始化,低溫系數(shù)的晶振產(chǎn)生的脈沖信號由減法計數(shù)器1進行減法計數(shù),當(dāng)其值減至0時,溫度寄存器中的數(shù)值將進行加1操作,而減法計數(shù)器1將重新賦值
42、,它又重新開始對低溫系數(shù)振蕩器產(chǎn)生的信號脈沖進行計數(shù),一直重復(fù)下去直到(減法)計數(shù)器2中的值減到0時,終止溫度寄存器中的數(shù)值的增加,此時它內(nèi)部的數(shù)值就是所檢測的溫度值。測溫過程產(chǎn)生的非線性變化就靠其內(nèi)部的斜率累加器進行修正和補償,對減法計數(shù)器的預(yù)置溫度實行修改。只要沒有關(guān)閉計數(shù)門就一直重復(fù)上述處理,直到(溫</p><p> 3.2.2.DS18B20與單片機的接口電路</p><p>
43、 DS18B20與單片機的連接有兩種接法,一種是寄生電源供電,另一種是外部電源供電。寄生電源供電時,VDD、GND接地,DQ接單片機的I/O口,為了確保在有效的DS18B20時鐘周期內(nèi)提供足夠的電流,一般要用一個MOSFET來完成對總線的上拉;外部電源供電時,VDD接電源,在它和電源之間接一個4.7K的電阻,GND接地,DQ接單片機的I/O口。此設(shè)計采用的是后者即外部電源供電方式,DQ(2腳)接AT89C55單片機的P1.1腳進行通信
44、。如圖3—4所示:</p><p> 圖3—4 DS18B20測溫模塊的原理圖</p><p> 3.3時鐘電路的設(shè)計</p><p> 3.3.1.DS12887芯片的引腳功能</p><p> 管腳功能:GND接地,VCC接+5V的電源,當(dāng)+5V電壓在正常范圍內(nèi),數(shù)據(jù)能讀寫;當(dāng)VCC低于4.25V,讀寫操作被禁止,計時功能正常進行
45、;當(dāng)VCC下降至3V以下時,隨機存儲器RAM和計時器的供電被切換到內(nèi)部鋰電池;MOT(模式選擇)接VCC時,選擇Motorola時序,當(dāng)接GND時,選擇Intel時序;SQW(方波信號同)能從RTC內(nèi)部15級分頻器的13個分頻中選擇一個輸出,其輸出頻率通過對寄存器A編程來控制;AD0—AD7(雙向地址/數(shù)據(jù)復(fù)用線)總線接口,可與Motorola各種類型的微機和Intel各種類型的微機接口AS即地址信號選通的輸入端口用來實現(xiàn)信號的分離,可
46、在AD/ALE下降沿把地址寫入DS12887芯片;DS腳表示數(shù)據(jù)的選擇端或讀信號的輸入,它有兩種類型的操作模式,它由MOT的電平?jīng)Q定的,當(dāng)MOT接高電平時,DS為正脈沖,出現(xiàn)于總線周期之后,稱作數(shù)據(jù)選通,在讀周期時,DS指示芯片雙向驅(qū)動總的時刻,在寫周期時,DS的下降沿使芯片寫入數(shù)據(jù),當(dāng)MOT接低電平時,DS(RD)當(dāng)作與儲存器的信號允許(OE)有相同的定義;R/W(讀/寫輸入)的操作模式有兩種。當(dāng)MOT管腳接高電平時</p>
47、;<p> 3.3.2.DS12887芯片與單片機的接口電路</p><p> 本設(shè)計采用的是Intel總線時序,故MOT腳直接接地地。其它引腳的連接如下:GND接地;RESET和VCC接電源,選擇DS12887時鐘芯片的地址總線AS端口和AT89C55單片機的P3.6直接相聯(lián);而IRQ、 R/W、DS、CS讀寫控制線分別與單片機的P3.2、P3.3、P3.4、 P3.5口相連; DS12887
48、芯片的SQW端口可編程產(chǎn)生方波輸出信號,在本設(shè)計中沒有使用,NC不接;AD0—AD7(雙向地址/數(shù)據(jù)復(fù)用線)總線接口與AT89C55單片機的P2口相接。所以DS12887時鐘芯片和AT89C55單片機的接口電路如圖3—5所示。</p><p> 圖3—5 時鐘模塊的原理圖</p><p> 3.4顯示電路的設(shè)計</p><p> 3.4.1.LCD1602芯片
49、的引腳功能</p><p> LCD1602采用標(biāo)準(zhǔn)16腳接口,分別為:VSS(1腳)為電源地 ;VDD(2腳)接+5V電源;V0(3腳)為對比度調(diào)整端,使LCD1602液晶顯示器顯示達(dá)到最佳效果,在接電源正極時對比度是最弱的,在接電源負(fù)極時對比度是最高的,對比度不宜過高也不宜過低,過高會 產(chǎn)生“鬼影”,過低會很模糊,使用時可接一個10K的可變電阻調(diào)整對比度;RS(4腳)為寄存器功能選擇,在高電平時表示選擇了操
50、作存放數(shù)據(jù)的寄存器,在低電平時表示選擇了指令代碼寄存器; RW(5腳)表示讀/寫信號選擇端,高電平時表示讀操作,而低電平表示寫操作;EN或E端(6腳)為使能端;第DB0~DB7(7~14腳)為8位I/O口(一字節(jié)的雙向數(shù)據(jù)端);15~16腳為背景燈光電源接口,當(dāng)為背景燈光電源時,15腳為背景燈光電源正極,16為腳為背景燈光電源負(fù)極。</p><p> 3.4.2.LCD1602與單片機的接口電路</p&g
51、t;<p> 本設(shè)計沒有對LCD1602的寄存器進行過讀操作,因此,可以簡化電路,把RW直接接地,低電平時是對寄存器進行寫操作,顯示器的背燈電源與電源按要求接好即可,對比度V0通過可變電阻與地連接,RS、E分別與AT89C55單片機的P1.2、P1.3相接,DB0~DB7與AT89C55單片機的P0口按順序連接。如圖3—6所示</p><p> 圖3—6 顯示模塊的原理圖</p>
52、<p> 3.5鍵盤電路的設(shè)計</p><p> 鍵盤根據(jù)它是硬件編碼,還是軟件編程實現(xiàn)可分兩類,一為編碼鍵盤,一為非編碼鍵盤,編碼鍵盤是指鍵的閉合識別是由專用的硬件電路實現(xiàn),并產(chǎn)生鍵值或編碼,例如電腦鍵盤;非編碼鍵盤是指鍵的閉合由軟件編程的方式來識別;在單片機應(yīng)用系統(tǒng)中,非編碼鍵盤用的非常廣泛,編碼鍵盤用的很少。非編碼鍵盤根據(jù)其接入方式與掃描方式又可分為矩陣鍵盤即行列式鍵盤和獨立鍵盤。由于獨立鍵盤
53、在按鍵少時實現(xiàn)容易,電路簡單,編程方便。故本設(shè)計采用的是獨立鍵盤。時間設(shè)置鍵(SET)接單片機的P1.0,確定/鬧鐘(OK)接單片機的P1.5,加鍵(+)接單片機的P1.6,減鍵(—)接單片機的P1.7。如圖3—7所示:</p><p> 圖3—7 鍵盤模塊的原理圖</p><p> 3.6報警電路的設(shè)計</p><p> 本系統(tǒng)的鬧鐘與溫度的二級報警的設(shè)計采
54、用了簡單的電路,它是由NPN型三極管集電極驅(qū)動蜂鳴器,發(fā)射極接+5V電源,基極接100歐姆的電阻作限流電阻,再與單片機的P1.4連接,溫度的一級報警采用的是發(fā)紅光的LED接上限流電阻與單片機的P3.1連接,原理圖如圖3—8所示:</p><p> 圖3—8報警模塊的原理圖</p><p> 第四章 系統(tǒng)軟件設(shè)計</p><p> 智能數(shù)字電子萬年歷是多功能的系
55、統(tǒng),各功能是在程序的控制下實現(xiàn)的。本系統(tǒng)的軟件設(shè)計方法與硬件設(shè)計一一對應(yīng),按照整體功能分割成多個程序模塊,它們是分別進行設(shè)計、編程和調(diào)試出來的,最后通過主程序?qū)⒏髯映绦蚰K結(jié)合。這樣將方便程序的修改與調(diào)試,最終完成系統(tǒng)的整體設(shè)計,達(dá)到設(shè)計要求。此外本章的軟件設(shè)計說的是一種設(shè)計的思路,或者方法,因此并沒有把所設(shè)計好的程序?qū)懭胂铝懈鞴?jié),全部放在附錄二中。</p><p><b> 4.1系統(tǒng)總程序<
56、/b></p><p> 主程序的主要功能是LCD1602、溫度測試系統(tǒng)、實時時鐘系統(tǒng)的初始化,鍵盤的掃描(包括時間校準(zhǔn)鍵盤和鬧鐘設(shè)置鍵盤),鬧鐘判斷,溫度報警的查詢,星期轉(zhuǎn)換與月末天數(shù)調(diào)整,以及溫度與時間的實時顯示,此外還有開中斷。主程序流程圖如圖4-1所示,程序見附錄二。</p><p><b> 4.2溫度模塊程序</b></p><
57、;p> 模塊包含五個函數(shù)分別是初始化DS18B20函數(shù),讀/寫一字節(jié)數(shù)據(jù)函數(shù),讀溫度函數(shù),實時顯示溫度函數(shù)。各函數(shù)的名字為:初始化函數(shù)init_1820();,寫一字節(jié)數(shù)據(jù)函數(shù)void write_bit(uchar dat);,讀一字節(jié)數(shù)據(jù)函數(shù)uint read_bit();,讀溫度函數(shù)uint read_wdu();,實時顯示溫度函數(shù)void display_wdu(uint ii);具體內(nèi)容見附錄三源程序。流程圖如圖4-2
58、所示。</p><p> 對初始化DS18B20函數(shù)的編程時,要嚴(yán)格的遵守初始化時序,主機總線在t0 時刻發(fā)送復(fù)位脈沖(最短保持480us 的低電平信號) 緊接著在t1時刻釋放總線轉(zhuǎn)而進入接收狀態(tài),DS18B20 在檢測到總線的上升沿后等待15 -60us ,然后DS18B20在t2 時刻發(fā)出存在脈沖(低電平保持60-240 us之間) ,初始化時序如圖4-3 所示。在初始化中要對只讀程序存儲器操作,其常用的指
59、令代碼有:跳過讀序號列號的操作碼[CCH] 、啟動溫度轉(zhuǎn)換指令代碼[44H]和讀取溫度寄存器指令代碼[BEH]等。其它的在本設(shè)計中未曾使用。讀/寫一字節(jié)數(shù)據(jù)函數(shù)就是從芯片中取數(shù)據(jù)與存數(shù)據(jù),從而給芯片寫指令或數(shù)據(jù), </p><p> 圖4-1 主程序流程圖</p><p> 是芯片能正常工作,它是通過串行輸出的,一次只能讀或?qū)懸晃贿B續(xù)進行8此此操作。讀溫度函數(shù)用來把芯片轉(zhuǎn)換的溫度送到單
60、片機進行后期處理,處理時根據(jù)表-C DS18B20溫度與表示值對應(yīng)表來把二進制數(shù)據(jù)轉(zhuǎn)換成實際的十進制溫度,由表可以算出溫度值為二進制值乘以0.0625,這既是被測溫度。顯示溫度函數(shù)用來把讀溫度函數(shù)得到的溫度值顯示出來。流程圖見4.4顯示模塊子程序即圖4-8所示。</p><p> 圖4-2溫度模塊子程序流程圖</p><p> 圖4-3 初始化時序圖</p><p&
61、gt; 表4-1 DS18B20溫度與表示值對應(yīng)表</p><p><b> 4.3時鐘模塊程序</b></p><p> 此模塊包含三個函數(shù),分別為初始化DS18B20函數(shù)init_12887(),寫數(shù)據(jù)到DS18B20內(nèi)存中指定的地址函數(shù)write_12887(uchar add,uchar dat),從DS18B20內(nèi)存中指定的地址讀函數(shù)read_1288
62、7(uchar add),具體內(nèi)容見附錄三,其流程圖見圖4-4。由于編程時用到了DS12887的內(nèi)部功能,以及Intel時序,而前文未曾提及,所以在此略作說明。</p><p> 圖4-4時鐘模塊子程序流程圖</p><p> 4.3.1 DS12887的內(nèi)部功能</p><p> DS12887包含114字節(jié)的用戶隨機存儲器(RAM),10字節(jié)的存放RTC時
63、間。日歷和鬧鐘RAM以及及用于控制和狀態(tài)的4字節(jié)特殊寄存器構(gòu)成,幾乎128個字節(jié)都可以直接讀寫,其地址分配圖見圖4-5。時間和日歷信息通過讀與之對應(yīng)的內(nèi)存字節(jié)來獲得,日歷、時間和鬧鐘通過寫與之對應(yīng)應(yīng)的內(nèi)存字節(jié)來設(shè)置和初始化,字節(jié)中的內(nèi)容可為十進制或BCD形式。時間可選12小時制或24小時制。日歷、時間和鬧鐘字節(jié)是雙緩沖的,總是可以操作的。RTC時鐘RAM向處理器提供了三個獨立、自動的中斷源。定鬧中斷的發(fā)生率可通過編程來控制,從1次/每秒
64、到1次/每天不等,周期性中斷的發(fā)生率是可以選擇的。更新結(jié)束中斷用于向程序指示此更新周期已經(jīng)完成。中斷控制和狀態(tài)位在寄存器B與C中。周期中斷可以在IRQ腳產(chǎn)生1次/500ms到1次/每122µs的中斷,中斷頻率同樣由寄存A決定,它的控制位為寄存器B中的PIE位。DS12887每秒執(zhí)行一次更新周期還比較每一定鬧字節(jié)與相應(yīng)的時間字節(jié),如果匹配枵三個字節(jié)都是不關(guān)心碼,則產(chǎn)生一次定鬧中斷。由于DS12887芯片在出廠時,其自帶的晶振是關(guān)
65、掉的,這樣就可以避免鋰電池在DS12887芯片在構(gòu)成</p><p> 圖4-5 DS12887的地址分配圖</p><p> SET為0表示時間更新正常進行,當(dāng)SET為1表示時間更新被禁止,程序可初始化時間和日歷字節(jié)。PIE表示周期中斷使能位,PIE為1,表示能夠以選擇的頻率來拉低端口電平IRQ管腳, 寄存器B的第六位為PIE,其為0時,表示不允許中斷信號的產(chǎn)生。AIE表示鬧鐘中斷信
66、號允許端。寄存器B的第三位為SQW,它是方波信號允許位,本文未用。DM表示數(shù)據(jù)模式選擇位,DM為1為十進制的數(shù)據(jù),其時鐘、日歷和鬧鐘對應(yīng)地址與數(shù)據(jù)模式如表4-2,而DM為0,則表明地址中存放的數(shù)據(jù)是以BCD碼形式儲存的。一天的時間表示有兩種格式,即24小時制和12小時制,在寄存器B中的第一位為24/12與之對應(yīng),當(dāng)它為1時,則用24時制表示,而它為0時,則用12時制來表示。為寄存器B的第0位為DSE位,它是夏令時開啟位,當(dāng)它為1時,則允
67、許,為0時,則禁止。UIP為更新周期正在進行位。當(dāng)UIP為1,表明更新將很快發(fā)生,當(dāng)UIP為0,更新在244µs內(nèi)不會發(fā)生。DV0,DV1,DV2用于開啟或關(guān)閉振蕩器,并恢復(fù)計時鏈。010唯一組合是打開晶振并允許RTC計時。RS3,RS2,RS1,RS0:頻率選擇位,本系統(tǒng)未用。IRQF表示中斷申請</p><p> 表4-2時鐘、日歷和鬧鐘對應(yīng)地址與數(shù)據(jù)模式-二進制模式(DM=1)</p>
68、;<p> 表4-3.DS12887狀態(tài)控制寄存器</p><p> 4.3.2 DS12887的Intel總線時序</p><p> 本設(shè)計采用的是Intel總線時序,所以編寫寫數(shù)據(jù)到DS18B20內(nèi)存中指定的地址函數(shù)(write_12887(uchar add,uchar dat))和從DS18B20內(nèi)存中指定的地址讀函數(shù)(read_12887(uchar add)
69、)時,必須嚴(yán)格遵守Intel總線時序,其,讀寫總線時序分別如圖4-6、圖4-7所示。</p><p> 圖4-6 讀Intel總線時序</p><p> 圖4-7 寫Intel總線時序</p><p><b> 4.4顯示模塊程序</b></p><p> 此模塊包含四個函數(shù),分別為初始化LCD1602函數(shù)ini
70、t_lcd(),寫指令到LCD1602中的函數(shù)write_con(uchar con),寫數(shù)據(jù)到LCD1602中的函數(shù)write_data(uchar dat),寫數(shù)據(jù)到LCD1602中指定的地址函數(shù)xshi_sdat(uchar add,uchar date),具體內(nèi)容見附錄三,其流程圖見圖4-8。在編寫寫指令和寫數(shù)據(jù)函數(shù)必須嚴(yán)格遵守寫操作時序,RS為高電平是寫數(shù)據(jù),為低電平是寫指令,其時序圖如圖4-9所示。</p>&
71、lt;p> 初始化LCD1602時,一些指令必須寫入液晶芯片內(nèi),顯示模式設(shè)置,指令代碼為:38H;顯示開/關(guān)及光標(biāo)設(shè)置,指令代碼為:0CH,06H;顯示清屏指令代碼為:01H;數(shù)據(jù)指針設(shè)置,指令代碼為: 80H+地址碼。</p><p> 圖4-8顯示模塊子程序流程圖</p><p> 圖4-9 寫操作時序</p><p> 4.5鍵盤及其它模塊程序&
72、lt;/p><p> 此模塊包含了校準(zhǔn)時間與設(shè)置鬧鐘函數(shù),星期轉(zhuǎn)換函數(shù),天數(shù)自動調(diào)整函數(shù),延遲函數(shù)等四部分,由于延遲函數(shù)非常簡單,沒有畫流程圖,其它函數(shù)的流程圖依次為:圖4-10,圖4-11,圖4-12。</p><p> 圖4-11星期轉(zhuǎn)換子程序流程圖</p><p> 圖4-12天數(shù)自動調(diào)整子程序流程圖</p><p><b>
73、; 第五章 調(diào)試與仿真</b></p><p> 5.1 Proteus軟件簡介</p><p> Proteus軟件是由英國的LabCenter Electronics 公司研發(fā)推出的一款EDA工具軟件,由ISIS及ARES兩款軟件組成,其ISIS軟件是一款比較方便、電子系統(tǒng)的仿真平臺的軟件,ARES是一款高級的布線編輯軟件,它集成了高級的原理布線圖、混合模式Spice
74、電路的仿真、PCB的設(shè)計以及自動布線來實現(xiàn)一個完整的電子設(shè)計。通過Proteus ISIS軟件的虛擬仿真技術(shù),我們可對模擬、數(shù)字、模數(shù)混合的電路實行仿真測試,以及微控制器為基礎(chǔ)的系統(tǒng)與它所有外圍接口電子元器件進行仿真。本設(shè)計采用的是Proteus軟件仿真。</p><p> 5.2仿真與調(diào)試步驟</p><p> 1.打開Proteus仿真軟件,創(chuàng)建一個工程,保存為電子萬年歷。<
75、/p><p> 2.根據(jù)設(shè)計好的原理圖添加仿真元器件,打開元器件庫,查找要添加的元件,雙擊,繼續(xù)查找下一個元器件,直到把所有要添加的器件都添加完。</p><p> 3.在左邊的方框里點擊所添加的元器件,一個一個的畫在仿真原理圖中,按一定的布局,把元器件放置的整齊一點,使總體上美觀。</p><p> 4.把放置好的元器件,按設(shè)計好的原理圖,把各元器件用導(dǎo)線連接起
76、來,在這個過程,可以用多種方式,如用總線和網(wǎng)絡(luò)標(biāo)識與導(dǎo)線配合使用,及可以簡化電路,又可以是電路美觀。到此,仿真電路就設(shè)計好了,效果圖見圖5-1所示。</p><p> 圖5—1 系統(tǒng)仿真原理圖</p><p> 5.進行電氣檢查,單擊按鈕,進行電氣檢測,查看接線是否合理,看有沒有錯誤或警告,如有把它修正,直到?jīng)]有為止,如沒有錯誤或警告,則設(shè)計結(jié)束,保存。</p><
77、p> 6.把用keil編寫的程序生成.HEX文件添加到單片機中,單擊按鈕,進行對電子萬年歷的仿真測試,觀察程序運行情況,看能否顯示預(yù)期的結(jié)果。</p><p> 7打開keil軟件檢查源程序,查找并修改不合邏輯的部分,編譯生成.HEX文件,重復(fù)第6步,直到能顯示預(yù)期結(jié)果。</p><p> 8 仿真測試復(fù)位鍵測試,按下此鍵看能否復(fù)位,經(jīng)測試可以進行復(fù)位,系統(tǒng)重新開始了,進入了開
78、機畫面,其效果圖見圖5-2所示。</p><p> 圖5-2復(fù)位鍵測試圖開機畫面</p><p> 9仿真測試時間設(shè)置測試,按下SET鍵看能否有閃爍光標(biāo),其每按一下它就會按秒、分、時、星期、日、月、年的順序移動到下一個位置,設(shè)置完了按一下就退出設(shè)置。在設(shè)置狀態(tài)下每按“+”鍵在對應(yīng)的位置進行加1,每按“-”鍵在對應(yīng)的位置進行減1,經(jīng)測試可以進行時間設(shè)置,按下此鍵時進入了時間設(shè)置狀態(tài),其效
79、果圖見圖5-3所示。</p><p> 圖5—3 仿真測試設(shè)置時間效果圖</p><p> 10 仿真測試鬧鐘設(shè)置測試,按下ok鍵看能否有光標(biāo),其每按一下它就會按秒、分、時的順序移動到下一個位置,設(shè)置完了按一下就退出設(shè)置。在設(shè)置狀態(tài)下每按“+”鍵在對應(yīng)的位置進行加1,每按“-”鍵在對應(yīng)的位置進行減1,經(jīng)測試可以進行鬧鐘設(shè)置,按下此鍵時進入了鬧鐘設(shè)置狀態(tài),其效果圖見圖5-4所示。<
80、/p><p> 圖5—4. 仿真測試設(shè)置鬧鐘效果圖</p><p> 11 仿真測試溫度報警功能,當(dāng)溫度低于-10°C或高于40°C時進行一級警告,紅燈亮,當(dāng)溫度低于-30°C或超過60°C時,進行二級報警,紅燈亮,同時報警。其效果圖見圖5-5所示。</p><p> 圖5-5溫度報警功能效果圖</p><
81、;p> 12 仿真測試,設(shè)置為2013年5月22號星期三9點半,溫度為27°C。其效果圖見圖5-6所示。</p><p><b> 圖5-6最終效果圖</b></p><p><b> 第六章 總結(jié)</b></p><p> 在本次畢業(yè)論文設(shè)計中,我遇到很多問題,但是與此同時,我也學(xué)到了很多,對于本
82、次畢業(yè)論文設(shè)計的心得體會,我覺得有以下幾點:</p><p> 1.無論做什么項目,規(guī)劃是必要的。沒有一個好的規(guī)劃,就會沒有調(diào)理,可能使要解決的問題復(fù)雜化,是項目變得無法完成,更別說完美了。而有一個好的規(guī)劃,往往會使項目越做越簡單,從而增加信心。還有明確重點和緩急,不會有疏漏。這樣才能提高成功率。</p><p> 2.處理問題要多動腦,選出最好的方法。一各問題或難點往往有多種解決方法
83、,一個好的方法,不僅能使事情事半功倍,而且往往決定最后的成與敗,所以處理問題時一定要多想想,想出最好的方法。</p><p> 3.要充分利用自己所掌握的知識區(qū)設(shè)計項目,使用一些專業(yè)的方法,去設(shè)計產(chǎn)品,方案的設(shè)計多種多樣,可選擇的元器件豐富多樣,因此我們可以從中選擇一些自己熟悉的芯片,以及擅長處理手段。</p><p> 4.要注意細(xì)節(jié)。細(xì)節(jié)決定成敗,這在編程時最能體現(xiàn),這句話在這次畢
84、業(yè)設(shè)計中不只一次得到了印證,一點點的錯誤就會使整個程序不能按預(yù)定邏輯運行,達(dá)不到預(yù)期目的。故我們不僅僅要有整體意識,也要注意細(xì)節(jié),不要因一個關(guān)細(xì)節(jié)而導(dǎo)致滿盤皆輸。</p><p> 5.也是最重要的一點,通過這次畢業(yè)設(shè)計,我們學(xué)到了很多專業(yè)有關(guān)的知識,提高了C語言的編寫能力,對proteus 、Keil與Altium Designer操作能力,也使我能夠熟練的運用proteus 、Keil與Altium Des
85、igner軟件,也對本專業(yè)所學(xué)的知識有了質(zhì)的提高,使我受益匪淺,為以后的工作增加了籌碼??傊?,此次設(shè)計還有一點點不完善,那就是不能夠顯示農(nóng)歷,此系統(tǒng)有待完善。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 張毅剛.新編MCS-51單片機應(yīng)用設(shè)計[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2006.</p><p> [2
86、] 劉迎春.傳感器原理設(shè)計與應(yīng)用[M].長沙:國防科技大學(xué)出版社,2002.</p><p> [3] 何立民.單片機應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社, 2006.</p><p> [4] 徐愛鈞.智能化測量控制儀表原理與設(shè)計(第3版)[M]北京:北航出版社,2012.</p><p> [5] 楊欣. 51單片機應(yīng)用實例詳解[M].北
87、京:清華大學(xué)出版社,2010.</p><p> [6] 李剛.Protel DXP電路設(shè)計標(biāo)準(zhǔn)教程[M].北京:清華大學(xué)出版社,2005.</p><p> [7] 曾屹.單片機原理與應(yīng)用[M].長沙:中南大學(xué)出版社,2009.</p><p> [8] 彭偉.單片機C語言程序設(shè)計實訓(xùn)100例——基于8051+Proteus仿真(第2版)[M].北京:電子工
88、業(yè)出版社,2012.</p><p> [9] V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002</p><p> [10] Elli
89、s,G.H. Control system design guide [M].London:Academic Press,2004</p><p> [11] Behzad Razavi.Design of Analog CMOS Integrated Circuits[M]. 2001</p><p><b> 致謝</b></p><p&
90、gt; 行文至此,這篇論文已接近尾聲;我四年的大學(xué)時光也即將敲響結(jié)束的鐘聲。離別在即,站在人生的又一個轉(zhuǎn)折點上,心中難免思緒萬千,一種感恩之情油然而生。在此, 我要感謝**在我四年的大學(xué)生活當(dāng)中對我的教育與培養(yǎng),感謝**物電學(xué)院的所有專業(yè)老師,沒有你們的辛勤勞動,就沒有我們今日的滿載而歸,感謝大學(xué)四年曾經(jīng)幫助過我的所有同學(xué)。更要感謝我的指導(dǎo)老師和專業(yè)老師,是你們的細(xì)心指導(dǎo)和關(guān)懷,才能解決許多設(shè)計中的實際困難,使我以最低的成本和最簡單的
91、方案設(shè)計出了操作方便、功能強大、顯示美觀的電子萬年歷,使我能夠順利的完成畢業(yè)論文。在此我要向*老師致以最衷心的感謝和深深的敬意。</p><p> 最后,衷心地感謝在百忙之中評閱論文和參加答辯的各位專家、教授!</p><p><b> 附錄I:系統(tǒng)原理圖</b></p><p> 圖8—1 系統(tǒng)原理圖</p><p&
92、gt; 附錄II:系統(tǒng)源程序</p><p> #include<reg51.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> sbit ok=P1^0;sbit dq=P1^1;</p>
93、<p> sbit lcdrs=P1^2;sbit lcden=P1^3;</p><p> sbit beep=P1^4;sbit s1=P1^5;</p><p> sbit s2=P1^6;sbit s3=P1^7;</p><p> sbit swd=P3^1;sbit irq=P3^2;</p><p> sb
94、it rw=P3^3;sbit ds=P3^4;</p><p> sbit cs=P3^5;sbit as=P3^6;</p><p> uchar codetable[]="designed by shun";</p><p> uchar code table1[]=" Welcome!" ;</p&g
95、t;<p> uchar code table2[]="20 - - ";</p><p> uchar code table3[]="00:00:00 C";</p><p> uchar code table4[]="0123456789- ";</p><p&
96、gt; void delay(uint z);</p><p> void delay1(uint a);</p><p> void init_1820();</p><p> uint read_bit();</p><p> void write_bit(uchar dat);</p><p> ui
97、nt read_wdu();</p><p> void display_wdu(uint ii);</p><p> void display_sjian();</p><p> void init_lcd();</p><p> void write_con(uchar con);</p><p> vo
98、id write_data(uchar dat);</p><p> void xling();void baoj();</p><p> void write_12887(uchar add,uchar dat);</p><p> uchar read_12887(uchar add);</p><p> void init_12
99、887();</p><p> void xshi_sdat(uchar add,uchar date);</p><p> void xshi_sdat1(uchar add,uchar date);</p><p> void pduan(uchar a,uchar b,uchar c);</p><p> oid jpian()
100、;</p><p> void xqi_change(uchar b);</p><p> void set_nzhong();</p><p> char miao,fen,shi,ri,yue,nian,</p><p> xqi,sji,flag,nshi,nfen,nmiao;</p><p> uc
101、har a,fhao=0;uchar num=0;</p><p> uchar num1=0;void main()</p><p> {flag=0;EA=1;EX0=1;IT0=1;</p><p> init_lcd();init_1820();init_12887();</p><p> while(1){ jpian()
102、;pduan(nian,yue,ri);</p><p> set_nzhong();if(flag==1)</p><p> {for(a=10;a>0;a--)display_sjian();</p><p> xling();}flag=0;}if(num==0)</p><p> {if(num1==0||num1
103、==1){ </p><p> xqi_change(xqi);display_sjian();</p><p> display_wdu(read_wdu());}}}}</p><p> void delay(uint z){while(z--);}</p><p> void delay1(uint a) </p>
104、<p> {uint c,d;for(c=a;c>0;c--)</p><p> for(d=110;d>0;d--);}void init_1820()</p><p> {uchar k=0;dq=1;delay(8);dq=0;</p><p> delay(80);dq=1;delay(14);k=dq;</p>
105、<p> delay(20);}uint read_bit()</p><p> {uchar i=0;uint dat=0;</p><p> for(i=8;i>0;i--){dq=0;dat>>=1;</p><p> dq=1;if(dq)dat|=0x80;delay(4);</p><p>
106、 }return dat;}void write_bit(uchar dat)</p><p> {uchar i=0;for(i=8;i>0;i--)</p><p> {dq=0;dq=dat&0x01;delay(5);dq=1;</p><p> dat>>=1;}}uint read_wdu()</p>&l
107、t;p> {uchar a,b=0;uint t=0;</p><p> float tt=0;a=0;init_1820();</p><p> write_bit(0xcc);write_bit(0x44);</p><p> init_1820();write_bit(0xcc);</p><p> write_bit(
108、0xbe);</p><p> a=read_bit();b=read_bit();</p><p> fhao=b&0x80;if(fhao!=0){b=~b;a=~a;</p><p> tt=((b*256)+a+1)*0.0625;</p><p> tt=tt*10;t=(int)tt;}else</p>
109、<p> {tt=((b*256)+a)*0.0625;</p><p> tt=tt*10;t=(int)tt;}</p><p> return t;}void display_wdu(uint ii)</p><p> {uchar ws,wg;write_con(0x80+0x4c);</p><p> ws
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機的電子萬年歷設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計----基于單片機的電子萬年歷的設(shè)計
- 基于單片機的電子萬年歷的設(shè)計畢業(yè)設(shè)計
- 基于單片機的萬年歷畢業(yè)設(shè)計
- 基于單片機的電子萬年歷的設(shè)計畢業(yè)設(shè)計
- 51基于單片機的電子萬年歷畢業(yè)設(shè)計
- 單片機的電子萬年歷設(shè)計
- 基于單片機的萬年歷設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---基于單片機萬年歷的設(shè)計
- 畢業(yè)設(shè)計---基于單片機萬年歷的設(shè)計
- 基于單片機的萬年歷設(shè)計畢業(yè)設(shè)計
- 【畢業(yè)設(shè)計】基于51單片機的電子萬年歷設(shè)計
- 基于單片機的測溫萬年歷畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---基于51單片機的電子萬年歷的設(shè)計
- 基于51單片機的電子萬年歷畢業(yè)設(shè)計論文
- 基于51單片機的萬年歷畢業(yè)設(shè)計
- 基于單片機的多功能電子萬年歷設(shè)計【畢業(yè)設(shè)計】
- 單片機萬年歷系統(tǒng)畢業(yè)設(shè)計
- 基于單片機的電子萬年歷
- 畢業(yè)設(shè)計---單片機控制的萬年歷設(shè)計
評論
0/150
提交評論