




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、學(xué)號(hào): 畢業(yè)設(shè)計(jì) 題 目 :基于單片機(jī)的電子萬年歷的設(shè)計(jì) 作 者屆 別 院 別物理與電子學(xué)院專 業(yè)電子科學(xué)與技術(shù) 指導(dǎo)老師職 稱講 師 完成時(shí)間 摘 要 智能電子萬年歷系統(tǒng)是由硬件與軟件相結(jié)合而設(shè)計(jì),而它是以at89c55單片機(jī)作為主控 核心與時(shí)鐘電路、顯示電路、復(fù)位電路、振蕩電路、報(bào)警鬧鈴電路、溫度檢測電路、獨(dú) 立鍵盤電路等模塊組成硬件系統(tǒng),其中時(shí)鐘電路采用了時(shí)鐘芯片ds12887,顯示電路采 用了lcd1602液晶顯示,溫度檢測電路采用了ds18b20溫度傳感器;而軟件使用了keil軟 件進(jìn)行c語言編程、proteus軟件進(jìn)行仿真測試,altium designer軟件進(jìn)行原理設(shè)計(jì)。系統(tǒng)采
2、用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、周 日、時(shí)、分、秒和溫度等信息,且具有整點(diǎn)報(bào)時(shí)、時(shí)間校準(zhǔn)及設(shè)置鬧鐘等功能。 關(guān)鍵詞:單片機(jī)at89c55 ;時(shí)鐘電路;電子萬年歷;液晶顯示 abstract 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 clock circuit, display circu
3、it, 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 displays useing lcd1602 liquid crystal, temperature detection circuit using ds18b20 temperature sensor; it
4、 is simulated by c programming language and proteus software useing keil software, use altium designer software design principles. the system adopts visual digital display, can display year, month, day, circle day, hours, minutes, seconds and temperature information, and with the whole point timekee
5、ping, time and set the alarm function. keyword : mcu at89c55; clock circuit; electronic calendar; liquid crystal display. 目錄目錄 第一章 引言.1 1.1 發(fā)展?fàn)顩r.1 1.2 選題意義與目的.1 1.3 功能要求.2 第二章 設(shè)計(jì)方案分析與選擇.3 2.1 主控核心(單片機(jī)).3 2.2 溫度芯片.4 2.3 時(shí)鐘芯片.5 2.4 顯示器件.5 第三章 系統(tǒng)硬件設(shè)計(jì).6 3.1 單片機(jī)最小系統(tǒng)設(shè)計(jì).6 3.2 溫度電路的設(shè)計(jì).8 3.3 時(shí)鐘電路的設(shè)計(jì).10 3.4 顯
6、示電路的設(shè)計(jì).11 3.5 鍵盤電路的設(shè)計(jì).12 3.6 報(bào)警電路的設(shè)計(jì).13 第四章 系統(tǒng)軟件設(shè)計(jì).14 4.1 系統(tǒng)總程序.14 4.2 溫度模塊程序.14 4.3 時(shí)鐘模塊程序.16 4.4 顯示模塊程序.20 4.5 鍵盤及其它模塊程序.21 第五章 調(diào)試與仿真.24 5.1 proteus軟件簡介.24 5.2 仿真與調(diào)試步驟.24 第六章 總結(jié).28 參考文獻(xiàn).29 致謝.30 附錄i:系統(tǒng)原理圖 附錄ii:系統(tǒng)源程序 第一章 引言 1.1 發(fā)展?fàn)顩r 隨著人們生活水平的提高和生活節(jié)奏的加快,對(duì)時(shí)間的要求越來越高,精準(zhǔn)數(shù)字計(jì) 時(shí)的消費(fèi)需求也是越來越多。二十一世紀(jì)的今天,最具代表性的計(jì)
7、時(shí)產(chǎn)品就是電子萬年 歷,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對(duì)穩(wěn)定的 機(jī)械振蕩頻率源使鐘表的走時(shí)差從分級(jí)縮小到秒級(jí),代表性的產(chǎn)品就是帶有擺或擺輪游 絲的機(jī)械鐘或表。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時(shí)精度更高的石英電 子鐘表,使鐘表的走時(shí)月差從分級(jí)縮小到秒級(jí)。第三次革命就是單片機(jī)數(shù)碼計(jì)時(shí)技術(shù)的 應(yīng)用(電子萬年歷),使計(jì)時(shí)產(chǎn)品的走時(shí)日差從分級(jí)縮小到1/600萬秒,從原有傳統(tǒng)指 針計(jì)時(shí)的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,直觀明了,并增加了全自 動(dòng)日期、星期、溫度以及其他日常附屬信息的顯示功能,它更符合消費(fèi)者的生活需求! 因此,電子萬年歷的出現(xiàn)帶來了鐘
8、表計(jì)時(shí)業(yè)界跨躍性的進(jìn)步。近些年,隨著科技的發(fā)展 和社會(huì)的進(jìn)步,人們對(duì)數(shù)字鐘的要求也越來越高,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求。 多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,有電子鬧鐘、數(shù)字鬧鐘等等 。單片機(jī)在多功能數(shù)字鐘中的應(yīng)用已是非常普遍的,人們對(duì)數(shù)字鐘的功能及工作順序都 非常熟悉。但是卻很少知道它的內(nèi)部結(jié)構(gòu)以及工作原理。由單片機(jī)作為數(shù)字鐘的核心控 制器,可以通過它的時(shí)鐘信號(hào)進(jìn)行計(jì)時(shí)實(shí)現(xiàn)計(jì)時(shí)功能,將其時(shí)間數(shù)據(jù)經(jīng)單片機(jī)輸出,利 用顯示器顯示出來,通過按鍵可以進(jìn)行定時(shí)、校時(shí)功能。輸出設(shè)備顯示器可以用液晶顯 示技術(shù)和數(shù)碼管顯示技術(shù)。當(dāng)然隨著技術(shù)的不斷提高,用嵌入式系統(tǒng)來設(shè)計(jì)電子萬年歷 會(huì)越來
9、越多,用嵌入式系統(tǒng)設(shè)計(jì)的萬年歷的功能將是更加強(qiáng)大,而目前常用的是使用單 片機(jī)來設(shè)計(jì)日常生活中常見的小型電子產(chǎn)品,其形式多種多樣,小到帶有日期的電子腕 表,大到公共場所懸掛的大型電子日歷,此外,眼下我們還常能在賓館、飯店等場所見 到一種帶有年、月、日、時(shí)、分、秒、星期甚至節(jié)氣等信息的電子日歷牌。 1.2 選題意義與目的 現(xiàn)在是一個(gè)知識(shí)爆炸的新時(shí)代,新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月 異。可以毫不夸張的說,電子技術(shù)的應(yīng)用無處不在,電子技術(shù)正在不斷地改變我們的生 活,改變著我們的世界,改變著我們的觀念,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求。而數(shù) 字化的鐘表給人們帶來了極大的方便。由于單片機(jī)具
10、有靈活性強(qiáng)、成本低、功耗低、保 密性好等特點(diǎn),所以電子日歷時(shí)鐘一般都以單片機(jī)為核心,外加一些外圍設(shè)備來實(shí)現(xiàn)。 而隨著科學(xué)技術(shù)的高速發(fā)展,微電子技術(shù)的突飛猛進(jìn),人們設(shè)計(jì)出更加便捷和更加精確 的電子萬年歷。它不僅能對(duì)年、月、日、時(shí)、分、秒、星期進(jìn)行計(jì)時(shí),更能進(jìn)行閏年補(bǔ) 償、溫度顯示、整點(diǎn)報(bào)時(shí)、時(shí)間校準(zhǔn)以及鬧鐘設(shè)置等多種功能,而且產(chǎn)生的誤差極小, 使用壽命極長。因此采用電子時(shí)鐘(萬年歷)是一種趨勢,更是一種時(shí)尚。 本系統(tǒng)采用了以廣泛使用的單片機(jī)技術(shù)為核心,軟硬件結(jié)合,并采用獨(dú)立鍵盤電路、lc d顯示電路、時(shí)鐘電路、溫度檢測電路,使硬件部分大為簡化,提高了系統(tǒng)穩(wěn)定性,能 顯示豐富的信息,此萬年歷具有功
11、能多樣、電路簡潔、讀取方便、顯示直觀、電路簡潔 、操作容易、功耗低、成本低廉等多項(xiàng)優(yōu)點(diǎn),適合批量生產(chǎn),符合電子儀器儀表的未來 發(fā)展趨勢,具有廣闊的市場前景。 1.3功能要求 1.系統(tǒng)采用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、周日、時(shí)、分、秒溫度等信息 ,且具有時(shí)間校準(zhǔn)等功能(設(shè)計(jì)要求)。 2. 利用protel軟件進(jìn)行電路設(shè)計(jì)及用proteus進(jìn)行電路仿真(設(shè)計(jì)要求)。 3.具有響鈴及整點(diǎn)通知功能(創(chuàng)新要求)。 4.具有上電各模塊自檢及高溫二級(jí)報(bào)警功能(創(chuàng)新要求)。 第二章 設(shè)計(jì)方案分析與選擇 萬年歷的設(shè)計(jì)有多種方法,可供選擇的元器件豐富多樣,可運(yùn)用的技術(shù)也有很多種。所 以,系統(tǒng)總體設(shè)計(jì)方案
12、應(yīng)在滿足功能要求的前提下,充分的考慮系統(tǒng)的使用環(huán)境,所選 的結(jié)構(gòu)要操作方便、易于實(shí)現(xiàn),元器件的選用著重于合適的參數(shù)、穩(wěn)定的性能、較低的 功耗以及低廉的成本等多種因素,同時(shí)緊跟時(shí)代腳步。因此,本文提出了基于at89系列 單片機(jī)的智能電子萬年歷設(shè)計(jì)的方案,此次設(shè)計(jì)以單片機(jī)作為主控核心,與溫度芯片、 時(shí)鐘芯片、顯示等模塊組成硬件系統(tǒng)。針對(duì)這四大主要模塊,對(duì)一下芯片進(jìn)行分析與選 擇。 2.1主控核心(單片機(jī)) 本方案在主控核心方面采用的是at89系列,at89 系列是美國atmel公司生產(chǎn)的cmos 單片機(jī),片內(nèi)含有可多次擦寫的只可讀取程序存儲(chǔ)器(perom)和隨機(jī)的可存取數(shù)據(jù)的 存儲(chǔ)器(ram),器
13、件采用的生產(chǎn)技術(shù)是atmel公司高密度的、非易失的存儲(chǔ)技術(shù),兼容 了標(biāo)準(zhǔn)的mcs- 51指令系統(tǒng);其內(nèi)部含有通用的8位(中央)處理器cpu和存儲(chǔ)器(flash存儲(chǔ)單元)功能強(qiáng) 大at89系列單片機(jī)可以生產(chǎn)高性價(jià)比的產(chǎn)品用于各種場合,因其靈活性強(qiáng)常常應(yīng)用于多 種控制領(lǐng)域。在at89系列單片機(jī)中首先考慮用at89c51,它是一款優(yōu)秀的、功能強(qiáng)大單片 機(jī),但是只讀程序數(shù)據(jù)存儲(chǔ)器(rom)只有4k,而本次設(shè)計(jì)的程序比較大超過了10k,若要 用它就要接 擴(kuò)展儲(chǔ)存器,這必定會(huì)增加產(chǎn)品的費(fèi)用,也會(huì)使設(shè)計(jì)的電路變得復(fù)雜,因此,不符合我 的設(shè)計(jì)要求,從設(shè)計(jì)的程序看可以選擇at89c53 和at89c54,然考慮
14、的proteus仿真元器件庫中沒有這兩款單片機(jī),綜合考慮可以采用at8 9c55,從表21來看,這款單片機(jī)完全符合設(shè)計(jì)要求。 這個(gè)at89c55是一種低功耗,高性能的8位cmos單片機(jī),提供以下標(biāo)準(zhǔn)功能:20k字節(jié)flas h閃速存儲(chǔ)器,256字節(jié)內(nèi)部ram,4個(gè)(p0、p1、p2、p3)8字節(jié)端口,三個(gè)16位定時(shí)計(jì) 數(shù)器, 6向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),at89c55 可降至零頻率的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止cp u的工作,但允許ram,定時(shí)計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 ram中的內(nèi)容,但振蕩器停
15、止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。它有 多種封裝方式,本設(shè)計(jì)采用dip40直插式封裝的at89c55。 表21兩種單片機(jī)的比較 at89c51單片機(jī)at89c55單片機(jī) 相同的主要性能參數(shù) 1.mcs-51產(chǎn)品指令系統(tǒng)完全兼容 2.1000次擦寫周期 3.32個(gè)可編程io口線 4.低功耗空閑和掉電模式 5.三級(jí)加密程序存儲(chǔ)器 6.可編程串行uart通道 不通的主要性能參數(shù) 1.全靜態(tài)操作:0hz24mhz 2. 6個(gè)中斷源 3.1288字節(jié)內(nèi)部ram 4. 4k字節(jié)可重擦寫flash 閃速存儲(chǔ)器 5.兩個(gè)16位定時(shí)計(jì)數(shù)器 1.全靜態(tài)操作:0hz33mhz 2. 8個(gè)中斷源 3.2
16、568字節(jié)內(nèi)部ram 4. 20k字節(jié)可重擦寫flash閃速存儲(chǔ)器 5.三個(gè)16位定時(shí)計(jì)數(shù)器 2.2溫度芯片 溫度是常見的測量與控制量之一,其實(shí)時(shí)測控遍布各行各業(yè)。它通常是通過溫度傳感器 來測量,在眾多的溫度傳感器中,可分兩類即模擬溫度傳感器與數(shù)字溫度傳感器,本次 設(shè)計(jì)的電子萬年歷為了簡潔硬件電路簡潔、系統(tǒng)穩(wěn)定性、易于實(shí)現(xiàn)。可采用數(shù)字溫度傳 感器,ds18b20是美國dallas公司推出的數(shù)字溫度傳感器之一, 采用3腳(或8腳)to 92封裝形式,dq(2腳)為數(shù)字信號(hào)輸入/輸出端,gnd(1腳)為電源地,vdd(3腳)為 外接供電電源輸入端。與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被溫度
17、。不需 用a/d轉(zhuǎn)換電路,減少了硬件成本,感溫特性曲線是嚴(yán)格線性的,不會(huì)產(chǎn)生較大的測量 單 片 機(jī)特 點(diǎn) 誤差。提供9 位(二進(jìn)制)溫度讀數(shù)指示器件的溫度信息經(jīng)過單線接口送入ds18b20或從 ds18b20送出,因此,從主機(jī)cpu 到ds18b20僅需一條線。主要特點(diǎn):不需要備份電源,可通過dq供電;單線接口,只有一 根信號(hào)線與cpu連接,電路簡單;傳送串行數(shù)據(jù);用戶可設(shè)定報(bào)警上下限值;零功耗待 機(jī);多個(gè)ds18b20可以很方便地以串行方式與pc或單片機(jī)連接,實(shí)現(xiàn)多點(diǎn)檢測;抗干擾性 強(qiáng),適合于惡劣環(huán)境的現(xiàn)場溫度測量。因此,ds18b20完全滿讀取方便、電路簡潔、功 耗低、成本低廉的設(shè)計(jì)要求。
18、 2.3時(shí)鐘芯片 萬年歷的設(shè)計(jì)可以直接采用單片機(jī)定時(shí)計(jì)數(shù)器的定時(shí)它能提供比較精確秒信號(hào),使用程 序?qū)崿F(xiàn)年、月、日、時(shí)、分、秒、星期計(jì)數(shù)以及時(shí)間的校準(zhǔn),鬧鐘的設(shè)置。采用此種方 案雖然減少芯片的使用,達(dá)到電路簡潔、節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大,不符 合實(shí)際情況。所以不采用此方案。本設(shè)計(jì)將采用ds2887時(shí)鐘芯片來實(shí)現(xiàn)時(shí)鐘,ds12887 為dallas公司最新推出的的實(shí)時(shí)時(shí)鐘芯片,除具有實(shí)時(shí)鐘功能外,它還具有128字節(jié)的通 用ram其中14個(gè)作為字節(jié)時(shí)鐘和控制寄存器,114字節(jié)為通用ram,所有aram單元數(shù)據(jù)都具 有掉電保護(hù)功能。采用cmos技術(shù)制成,把時(shí)鐘芯片所需的晶振和外部鋰電池相關(guān)電
19、路集 于芯片內(nèi)部,計(jì)秒、分、時(shí)、天、星期、日、月、年,并有閏年補(bǔ)償功能,二進(jìn)制數(shù)碼 或bcd碼表示時(shí)間、日歷和定鬧。12小時(shí)或24小時(shí)制,12小時(shí)時(shí)鐘模式帶有pm和am指導(dǎo), 有夏令時(shí)功能。中斷信號(hào)輸出(irq)和總線兼容,定鬧中斷、周期性中斷、時(shí)鐘更新周 期結(jié)束中斷可分別由軟件屏蔽,也可分別進(jìn)行測試。采用ds12887芯片設(shè)計(jì)的時(shí)鐘電路 勿需其它外圍電路并具有良好的微機(jī)接口。ds12887芯片具有微功耗、外圍接口簡單、 精度高、工作穩(wěn)定可靠等優(yōu)點(diǎn),這些就是采用它的主要原因。 2.4顯示器件 數(shù)據(jù)的顯示有多種方式可使用(點(diǎn)陣式的或led的動(dòng)態(tài)掃描)數(shù)碼管或(lcd)液晶來顯 示,點(diǎn)陣式的數(shù)碼管
20、由64個(gè)發(fā)光的二極管(八行八列)構(gòu)成,用于顯示一些文字會(huì)很適 合,而用來顯示數(shù)字實(shí)在浪費(fèi),并且價(jià)格是較高,故不使用它來顯示。而(led數(shù)碼管)動(dòng) 態(tài)掃描的顯示,使用簡單,操作方便,顯示直觀,并且(led)數(shù)碼管的價(jià)格也比較適中 ,對(duì)于顯示數(shù)字最合適,而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)口線少,但 是,由于顯示的位數(shù)比較多,若采用它將要使用4塊74hc573芯片,這無疑會(huì)增加成本, 重點(diǎn)是會(huì)使電路復(fù)雜化,操作繁瑣,不滿足設(shè)計(jì)要求。所以也不采用了led數(shù)碼管作為 顯示。采用lcd液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多 樣,清晰可見,易于控制,電路簡潔,缺點(diǎn)是價(jià)
21、格比較貴,但總的來說,是最符合設(shè)計(jì)要 求,所以在此設(shè)計(jì)中采用lcd液晶顯示屏。 第三章 系統(tǒng)硬件設(shè)計(jì) 本系統(tǒng)的硬件設(shè)計(jì)采用的是自頂向下設(shè)計(jì)模式,頂層開始,連續(xù)地逐層向下分解,起到系 統(tǒng)的所有模塊都小到便于掌握為止。因此,本系統(tǒng)設(shè)計(jì)了9大模塊,分別是主控核心(a t89c55)模塊、ds12887模塊、ds18b20模塊、lcd顯示模塊、復(fù)位電路模塊、報(bào)警響鈴模 塊、電源模塊、獨(dú)立鍵盤模塊、振蕩電路模塊。通過at89c55讀取時(shí)鐘芯片的時(shí)間和溫 度芯片的溫度,用lcd1602來顯示,并可以通過初始化時(shí)鐘芯片和鍵盤設(shè)置鬧鈴時(shí)間 系統(tǒng)總框圖如:圖31。原理圖見附錄一。 主 控 核 心 at89c55
22、 復(fù)位電路模塊 振蕩電路模塊 獨(dú)立鍵盤模塊 ds12887模塊 ds18b20模塊 報(bào)警響鈴模塊 電源模塊lcd顯示模塊 圖3-1系統(tǒng)總框圖 3.1單片機(jī)最小系統(tǒng)設(shè)計(jì) 3.1.1單片機(jī)最小系統(tǒng)原理圖 單片機(jī)的最小系統(tǒng)是指由最基本的電路元器件組成,外接部分簡單的電路就能獨(dú)立完成 一定的工作任務(wù)的單片機(jī)系統(tǒng)。55單片機(jī)的最小系統(tǒng)包括單片機(jī)芯片、電源、時(shí)鐘電路 和復(fù)位電路組成,如圖32。 3.1.2主控核心的功能 主控核心at89c55單片機(jī)總共有40個(gè)引腳,其中包含4組8位的i/o口;rst、ale/prog、xt al1、 xtal2、vss、gnd、ea/vpp、psen各一個(gè)。各引腳的功能說
23、明如下:xtal1/xtal2:放大 器的輸入端/輸出端;psen:程序存儲(chǔ)允許(psen)輸出是外部程序存儲(chǔ)器的讀選通信號(hào) ,此設(shè)計(jì)中沒有用到片外存儲(chǔ)器,因此不用管;rst引腳出現(xiàn)兩個(gè)機(jī)器周期以上的高電 平將使單片機(jī)復(fù)位;ea:雙功能控制端口,下設(shè)計(jì)中沒用片外存儲(chǔ)器,所以直接接電源 ;ale/prog:在訪問外部程序存儲(chǔ)器時(shí),不讀取片外時(shí)以時(shí)鐘 圖32單片機(jī)最小系統(tǒng)的原理圖 振蕩頻率的1/6輸出固定的正脈沖信號(hào),故它可以對(duì)外輸出時(shí)序或用于定時(shí)。p0口即可 用地址數(shù)據(jù)總線復(fù)用口,有可作通用的i/o口使用。它是一組8位漏極開路型雙向io 口作為輸出口用時(shí)。p2是一個(gè)帶內(nèi)部上拉電阻的8位雙向io端
24、口,它即可作通用的i/o 口使用,也可與p0口相配合,作為片外存儲(chǔ)器的高8位地址總線。它可以根據(jù)系統(tǒng)要求 ,可全部當(dāng)做于i/o口使用,也可以全部當(dāng)做地址總線使用,或者部分作地 表3-1單片機(jī)第二功能圖 端口引腳端口引腳第二功能第二功能 p3.0rxd(串行輸入) p3.1txd(串行輸出) p3.2int0(外中斷0) p3.3int1(外中斷1) p3.4t0(定時(shí)/計(jì)數(shù)器0外部輸入) p3.5t1(定時(shí)/計(jì)數(shù)器1外部輸入) p3.6wr(外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)出口) p3.7rd(外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)出口) p1.0t2(定時(shí)/計(jì)數(shù)器2外部計(jì)數(shù)輸入) p1.1t2 ex(定時(shí)/計(jì)數(shù)器
25、2外部觸發(fā)輸入) 址總線使用部分作i/o口使用,用戶自己靈活使用。p1主要用于單片機(jī)的用戶的控制量 的輸入或數(shù)據(jù)的輸出,它是一個(gè)通用準(zhǔn)雙向i/o口,但它與at89c51略有區(qū)別,它的p1.0 與p1.1有第二功能。p3口即可作通用的i/o口使用,但常使用的是其第二功能。其第二功 能如表3-1所示。 3.1.3最小系統(tǒng)的晶振電路 此電路用來產(chǎn)生時(shí)鐘信號(hào),以提供單片機(jī)內(nèi)部各種數(shù)字邏輯電路的工作的時(shí)間基準(zhǔn)。55 單片機(jī)可內(nèi)部振蕩方式和外部振蕩方式兩種電路形式,本設(shè)計(jì)采用的是內(nèi)部振蕩方式。 單片機(jī)的內(nèi)部xtal1(19腳)與xtal2(18腳)之間有一個(gè)高增益的放大器,在19腳和18 腳外接諧振電路,
26、就構(gòu)成內(nèi)部振蕩方式的自激振蕩器,并產(chǎn)生時(shí)鐘脈沖,本次設(shè)計(jì)的單 片機(jī)工作頻率為12mhz,振蕩頻率由晶振的諧振頻率來確定,電容器c1、c2起穩(wěn)定頻率、 快速起振的作用,其電容值為30pf,設(shè)計(jì)電路時(shí)應(yīng)將c1、c2盡量靠近單片機(jī)芯片,由于 內(nèi)部振蕩方式電路簡單,信號(hào)穩(wěn)定,是獨(dú)立的單片機(jī)系統(tǒng)首選。 3.1.4最小系統(tǒng)的復(fù)位電路和電源 單片機(jī)的復(fù)位電路的設(shè)計(jì),其第9引腳為復(fù)位輸入端, 20引腳為接地端,40引腳為電源端.此系統(tǒng)的的復(fù)位電復(fù)位路設(shè)計(jì)兩種情況,一為上電復(fù) 位電路,一為手動(dòng)復(fù)位。這種設(shè)計(jì)比單一的上電復(fù)位更符合實(shí)際,也是操作方便。電源 的連接,把單片機(jī)20引腳接地,單片機(jī)40引腳接+5v電壓,
27、完成電源的連接。 3.2溫度電路的設(shè)計(jì) 3.2.1ds18b20測溫原理 測溫原理如圖3- 3所示,由于ds18b20的晶振的振蕩頻率是低溫度系數(shù)的,因此在受到溫度的影響時(shí)變化 較小,故它可用于當(dāng)作穩(wěn)定頻率,而減法計(jì)數(shù)器1的脈沖信號(hào)可以由它可提供,由于它 的的晶振的振蕩頻率在高溫系數(shù)時(shí)隨溫度變化很明顯,故產(chǎn)生的脈沖信號(hào)可作為減法計(jì) 數(shù)器2的脈沖信號(hào)輸入,從原理圖看,還含有計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),ds18b20溫度傳 感器就對(duì)低溫度系數(shù)振蕩器生成的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),從而實(shí)現(xiàn)環(huán)境溫度的檢測。計(jì)數(shù) 門開啟的時(shí)間是由(高溫系數(shù))振蕩器來確定,在每次檢測之前,先將基準(zhǔn)溫度-55 存入溫度的寄存器和減法計(jì)
28、數(shù)器1中,使溫度寄存器與減法計(jì)數(shù)器1被初始化,低溫系 數(shù)的晶振產(chǎn)生的脈沖信號(hào)由減法計(jì)數(shù)器1進(jìn)行減法計(jì)數(shù),當(dāng)其值減至0時(shí),溫度寄存器中 的數(shù)值將進(jìn)行加1操作,而減法計(jì)數(shù)器1將重新賦值,它又重新開始對(duì)低溫系數(shù)振蕩器產(chǎn) 生的信號(hào)脈沖進(jìn)行計(jì)數(shù),一直重復(fù)下去直到(減法)計(jì)數(shù)器2中的值減到0時(shí),終止溫度 寄存器中的數(shù)值的增加,此時(shí)它內(nèi)部的數(shù)值就是所檢測的溫度值。測溫過程產(chǎn)生的非線 性變化就靠其內(nèi)部的斜率累加器進(jìn)行修正和補(bǔ)償,對(duì)減法計(jì)數(shù)器的預(yù)置溫度實(shí)行修改。 只要沒有關(guān)閉計(jì)數(shù)門就一直重復(fù)上述處理,直到(溫度)寄存器中的溫度值達(dá)到被檢測 的溫度值,此來ds18b20溫度檢測原理。 斜率累加器 預(yù)置 計(jì)數(shù)比較器
29、 減法計(jì)數(shù)器1 溫度寄存器 高溫系數(shù)振蕩器減法計(jì)數(shù)器2減到0 預(yù)置 減到0 低溫系數(shù)振蕩器 增加 停止 圖3-3 ds18b20測溫原理圖 3.2.2ds18b20與單片機(jī)的接口電路 ds18b20與單片機(jī)的連接有兩種接法,一種是寄生電源供電,另一種是外部電源供電。 寄生電源供電時(shí),vdd、gnd接地,dq接單片機(jī)的i/o口,為了確保在有效的ds18b20時(shí)鐘 周期內(nèi)提供足夠的電流,一般要用一個(gè)mosfet來完成對(duì)總線的上拉;外部電源供電時(shí), vdd接電源,在它和電源之間接一個(gè)4.7k的電阻,gnd接地,dq接單片機(jī)的i/o口。此設(shè)計(jì) 采用的是后者即外部電源供電方式,dq(2腳)接at89c5
30、5單片機(jī)的p1.1腳進(jìn)行通信。如 圖34所示: 圖34 ds18b20測溫模塊的原理圖 3.3時(shí)鐘電路的設(shè)計(jì) 3.3.1ds12887芯片的引腳功能 管腳功能:gnd接地,vcc接+5v的電源,當(dāng)+5v電壓在正常范圍內(nèi),數(shù)據(jù)能讀寫;當(dāng)vcc低 于4.25v,讀寫操作被禁止,計(jì)時(shí)功能正常進(jìn)行;當(dāng)vcc下降至3v以下時(shí),隨機(jī)存儲(chǔ)器ram 和計(jì)時(shí)器的供電被切換到內(nèi)部鋰電池;mot(模式選擇)接vcc時(shí),選擇motorola時(shí)序,當(dāng) 接gnd時(shí),選擇intel時(shí)序;sqw(方波信號(hào)同)能從rtc內(nèi)部15級(jí)分頻器的13個(gè)分頻中選擇 一個(gè)輸出,其輸出頻率通過對(duì)寄存器a編程來控制;ad0 ad7(雙向地址/
31、數(shù)據(jù)復(fù)用線)總線接口,可與motorola各種類型的微機(jī)和intel各種類型的 微機(jī)接口as即地址信號(hào)選通的輸入端口用來實(shí)現(xiàn)信號(hào)的分離,可在ad/ale下降沿把地址 寫入ds12887芯片;ds腳表示數(shù)據(jù)的選擇端或讀信號(hào)的輸入,它有兩種類型的操作模式, 它由mot的電平?jīng)Q定的,當(dāng)mot接高電平時(shí),ds為正脈沖,出現(xiàn)于總線周期之后,稱作數(shù) 據(jù)選通,在讀周期時(shí),ds指示芯片雙向驅(qū)動(dòng)總的時(shí)刻,在寫周期時(shí),ds的下降沿使芯片 寫入數(shù)據(jù),當(dāng)mot接低電平時(shí),ds(rd)當(dāng)作與儲(chǔ)存器的信號(hào)允許(oe)有相同的定義; r/w(讀/寫輸入)的操作模式有兩種。當(dāng)mot管腳接高電平時(shí),r/w是電平信號(hào),表明當(dāng)前
32、周期為讀信號(hào)周期或者為寫信號(hào)周期,當(dāng)ds為1時(shí), r/w高電平1表明是讀信號(hào)周期, r/w為低電平0表明寫信號(hào)周期;當(dāng)mot管腳接低電平時(shí),r/w信號(hào)是低電平信號(hào),與通用r am的寫允許信號(hào)(we)有相同的含義;cs表示片選信號(hào)輸入端,它訪問ds12887時(shí)鐘芯片總 線的周期內(nèi),片選信號(hào)只能保持為低;irq表示的是中斷輸入端,它在低電平有效,通 常作為單片機(jī)的外部中斷的輸入。在無中斷產(chǎn)生時(shí), irq一直保持為高阻態(tài),由于irq端口內(nèi)部的結(jié)構(gòu)是漏極開路,故它工作時(shí)要求接上拉電 阻;reset表示復(fù)位端它復(fù)位時(shí)低電平的持續(xù)時(shí)間應(yīng)大于200ms,才能使ds12887實(shí)時(shí)時(shí)鐘 芯片復(fù)位成功。 3.3.
33、2ds12887芯片與單片機(jī)的接口電路 本設(shè)計(jì)采用的是intel總線時(shí)序,故mot腳直接接地地。其它引腳的連接如下:gnd接地; reset和vcc接電源,選擇ds12887時(shí)鐘芯片的地址總線as端口和at89c55單片機(jī)的p3.6直 接相聯(lián);而irq、 r/w、ds、cs讀寫控制線分別與單片機(jī)的p3.2、p3.3、p3.4、 p3.5口相連; ds12887芯片的sqw端口可編程產(chǎn)生方波輸出信號(hào),在本設(shè)計(jì)中沒有使用,nc不接;ad0 ad7(雙向地址/數(shù)據(jù)復(fù)用線)總線接口與at89c55單片機(jī)的p2口相接。所以ds12887時(shí)鐘芯 片和at89c55單片機(jī)的接口電路如圖35所示。 圖35 時(shí)
34、鐘模塊的原理圖 3.4顯示電路的設(shè)計(jì) 3.4.1lcd1602芯片的引腳功能 lcd1602采用標(biāo)準(zhǔn)16腳接口,分別為:vss(1腳)為電源地 ;vdd(2腳)接+5v電源;v0(3腳)為對(duì)比度調(diào)整端,使lcd1602液晶顯示器顯示達(dá)到最 佳效果,在接電源正極時(shí)對(duì)比度是最弱的,在接電源負(fù)極時(shí)對(duì)比度是最高的,對(duì)比度不 宜過高也不宜過低,過高會(huì) 產(chǎn)生“鬼影”,過低會(huì)很模糊,使用時(shí)可接一個(gè)10k的可變電阻調(diào)整對(duì)比度;rs(4腳) 為寄存器功能選擇,在高電平時(shí)表示選擇了操作存放數(shù)據(jù)的寄存器,在低電平時(shí)表示選 擇了指令代碼寄存器; rw(5腳)表示讀/寫信號(hào)選擇端,高電平時(shí)表示讀操作,而低電平表示寫操作
35、;en或e 端(6腳)為使能端;第db0db7(714腳)為8位i/o口(一字節(jié)的雙向數(shù)據(jù)端);15 16腳為背景燈光電源接口,當(dāng)為背景燈光電源時(shí),15腳為背景燈光電源正極,16為腳 為背景燈光電源負(fù)極。 3.4.2lcd1602與單片機(jī)的接口電路 本設(shè)計(jì)沒有對(duì)lcd1602的寄存器進(jìn)行過讀操作,因此,可以簡化電路,把rw直接接地,低 電平時(shí)是對(duì)寄存器進(jìn)行寫操作,顯示器的背燈電源與電源按要求接好即可,對(duì)比度v0通 過可變電阻與地連接,rs、e分別與at89c55單片機(jī)的p1.2、p1.3相接,db0db7與at89c5 5單片機(jī)的p0口按順序連接。如圖36所示 圖36 顯示模塊的原理圖 3.5
36、鍵盤電路的設(shè)計(jì) 鍵盤根據(jù)它是硬件編碼,還是軟件編程實(shí)現(xiàn)可分兩類,一為編碼鍵盤,一為非編碼鍵盤 ,編碼鍵盤是指鍵的閉合識(shí)別是由專用的硬件電路實(shí)現(xiàn),并產(chǎn)生鍵值或編碼,例如電腦 鍵盤;非編碼鍵盤是指鍵的閉合由軟件編程的方式來識(shí)別;在單片機(jī)應(yīng)用系統(tǒng)中,非編 碼鍵盤用的非常廣泛,編碼鍵盤用的很少。非編碼鍵盤根據(jù)其接入方式與掃描方式又可 分為矩陣鍵盤即行列式鍵盤和獨(dú)立鍵盤。由于獨(dú)立鍵盤在按鍵少時(shí)實(shí)現(xiàn)容易,電路簡單 ,編程方便。故本設(shè)計(jì)采用的是獨(dú)立鍵盤。時(shí)間設(shè)置鍵(set)接單片機(jī)的p1.0,確定/ 鬧鐘(ok)接單片機(jī)的p1.5,加鍵(+)接單片機(jī)的p1.6,減鍵( )接單片機(jī)的p1.7。如圖37所示:
37、圖37 鍵盤模塊的原理圖 3.6報(bào)警電路的設(shè)計(jì) 本系統(tǒng)的鬧鐘與溫度的二級(jí)報(bào)警的設(shè)計(jì)采用了簡單的電路,它是由npn型三極管集電極 驅(qū)動(dòng)蜂鳴器,發(fā)射極接+5v電源,基極接100歐姆的電阻作限流電阻,再與單片機(jī)的p1.4 連接,溫度的一級(jí)報(bào)警采用的是發(fā)紅光的led接上限流電阻與單片機(jī)的p3.1連接,原理 圖如圖38所示: 圖38報(bào)警模塊的原理圖 第四章 系統(tǒng)軟件設(shè)計(jì) 智能數(shù)字電子萬年歷是多功能的系統(tǒng),各功能是在程序的控制下實(shí)現(xiàn)的。本系統(tǒng)的軟件 設(shè)計(jì)方法與硬件設(shè)計(jì)一一對(duì)應(yīng),按照整體功能分割成多個(gè)程序模塊,它們是分別進(jìn)行設(shè) 計(jì)、編程和調(diào)試出來的,最后通過主程序?qū)⒏髯映绦蚰K結(jié)合。這樣將方便程序的修改 與
38、調(diào)試,最終完成系統(tǒng)的整體設(shè)計(jì),達(dá)到設(shè)計(jì)要求。此外本章的軟件設(shè)計(jì)說的是一種設(shè) 計(jì)的思路,或者方法,因此并沒有把所設(shè)計(jì)好的程序?qū)懭胂铝懈鞴?jié),全部放在附錄二中 。 4.1系統(tǒng)總程序 主程序的主要功能是lcd1602、溫度測試系統(tǒng)、實(shí)時(shí)時(shí)鐘系統(tǒng)的初始化,鍵盤的掃描( 包括時(shí)間校準(zhǔn)鍵盤和鬧鐘設(shè)置鍵盤),鬧鐘判斷,溫度報(bào)警的查詢,星期轉(zhuǎn)換與月末天 數(shù)調(diào)整,以及溫度與時(shí)間的實(shí)時(shí)顯示,此外還有開中斷。主程序流程圖如圖4- 1所示,程序見附錄二。 4.2溫度模塊程序 模塊包含五個(gè)函數(shù)分別是初始化ds18b20函數(shù),讀/寫一字節(jié)數(shù)據(jù)函數(shù),讀溫度函數(shù),實(shí) 時(shí)顯示溫度函數(shù)。各函數(shù)的名字為:初始化函數(shù)init_1820
39、();,寫一字節(jié)數(shù)據(jù)函數(shù)void write_bit(uchar dat);,讀一字節(jié)數(shù)據(jù)函數(shù)uint read_bit();,讀溫度函數(shù)uint read_wdu();,實(shí)時(shí)顯示溫度函數(shù)void display_wdu(uint ii);具體內(nèi)容見附錄三源程序。流程圖如圖4-2所示。 對(duì)初始化ds18b20函數(shù)的編程時(shí),要嚴(yán)格的遵守初始化時(shí)序,主機(jī)總線在t0 時(shí)刻發(fā)送復(fù)位脈沖(最短保持480us 的低電平信號(hào)) 緊接著在t1時(shí)刻釋放總線轉(zhuǎn)而進(jìn)入接收狀態(tài),ds18b20 在檢測到總線的上升沿后等待15 -60us ,然后ds18b20在t2 時(shí)刻發(fā)出存在脈沖(低電平保持60-240 us之間)
40、 ,初始化時(shí)序如圖4-3 所示。在初始化中要對(duì)只讀程序存儲(chǔ)器操作,其常用的指令代碼有:跳過讀序號(hào)列號(hào)的 操作碼cch 、啟動(dòng)溫度轉(zhuǎn)換指令代碼44h和讀取溫度寄存器指令代碼beh等。其它的在本設(shè)計(jì)中 未曾使用。讀/寫一字節(jié)數(shù)據(jù)函數(shù)就是從芯片中取數(shù)據(jù)與存數(shù)據(jù),從而給芯片寫指令或 數(shù)據(jù), 開始 開中斷 初始化lcd 初始化ds12887 初始化ds18b20 調(diào)用鍵盤掃描函數(shù) 調(diào)用年調(diào)整函數(shù) 調(diào)用設(shè)置鬧鐘函數(shù) 鬧鐘? 開鬧鐘 調(diào)用星期轉(zhuǎn)換函數(shù) 調(diào)用顯示時(shí)間函數(shù) 調(diào)用顯示溫度函數(shù) 顯示? y y n n 圖4-1 主程序流程圖 是芯片能正常工作,它是通過串行輸出的,一次只能讀或?qū)懸晃贿B續(xù)進(jìn)行8此此操作
41、。 讀溫度函數(shù)用來把芯片轉(zhuǎn)換的溫度送到單片機(jī)進(jìn)行后期處理,處理時(shí)根據(jù)表-c ds18b20溫度與表示值對(duì)應(yīng)表來把二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成實(shí)際的十進(jìn)制溫度,由表可以算出 溫度值為二進(jìn)制值乘以0.0625,這既是被測溫度。顯示溫度函數(shù)用來把讀溫度函數(shù)得到 的溫度值顯示出來。流程圖見4.4顯示模塊子程序即圖4-8所示。 開始 發(fā)ds18b20復(fù)位命令 發(fā)跳過rom命令 發(fā)溫度轉(zhuǎn)換開始命令 讀取當(dāng)前溫度并顯示 結(jié)束 圖4-2溫度模塊子程序流程圖 圖4-3 初始化時(shí)序圖 表4-1 ds18b20溫度與表示值對(duì)應(yīng)表 溫度/c二進(jìn)制表示十六進(jìn)制表示溫度/c二進(jìn)制表示十六進(jìn)制表示 +125c 000001111101
42、000007d0h0c00000000000000000000h +85c 00000101010100000550h-0.5c1111111111111000fff8h +25.0625c00000001100100010191h-10.125c1111111101011110ff5eh +10.125c000000001010001000a2h-25.0625c1111111001101111ff6fh +0.5c00000000000010000008h-55c1111110010010000fc90h 4.3時(shí)鐘模塊程序 此模塊包含三個(gè)函數(shù),分別為初始化ds18b20函數(shù)init_12
43、887(),寫數(shù)據(jù)到ds18b20內(nèi)存 中指定的地址函數(shù)write_12887(uchar add,uchar dat),從ds18b20內(nèi)存中指定的地址讀函數(shù)read_12887(uchar add),具體內(nèi)容見附錄三,其流程圖見圖4- 4。由于編程時(shí)用到了ds12887的內(nèi)部功能,以及intel時(shí)序,而前文未曾提及,所以在此 略作說明。 開始 初始化 寫指令 讀數(shù)據(jù) 結(jié)束 圖4-4時(shí)鐘模塊子程序流程圖 4.3.1 ds12887的內(nèi)部功能 ds12887包含114字節(jié)的用戶隨機(jī)存儲(chǔ)器(ram),10字節(jié)的存放rtc時(shí)間。日歷和鬧鐘ram 以及及用于控制和狀態(tài)的4字節(jié)特殊寄存器構(gòu)成,幾乎12
44、8個(gè)字節(jié)都可以直接讀寫,其地 址分配圖見圖4- 5。時(shí)間和日歷信息通過讀與之對(duì)應(yīng)的內(nèi)存字節(jié)來獲得,日歷、時(shí)間和鬧鐘通過寫與之 對(duì)應(yīng)應(yīng)的內(nèi)存字節(jié)來設(shè)置和初始化,字節(jié)中的內(nèi)容可為十進(jìn)制或bcd形式。時(shí)間可選12 小時(shí)制或24小時(shí)制。日歷、時(shí)間和鬧鐘字節(jié)是雙緩沖的,總是可以操作的。rtc時(shí)鐘ram 向處理器提供了三個(gè)獨(dú)立、自動(dòng)的中斷源。定鬧中斷的發(fā)生率可通過編程來控制,從1 次/每秒到1次/每天不等,周期性中斷的發(fā)生率是可以選擇的。更新結(jié)束中斷用于向程 序指示此更新周期已經(jīng)完成。中斷控制和狀態(tài)位在寄存器b與c中。周期中斷可以在irq 腳產(chǎn)生1次/500ms到1次/每122s的中斷,中斷頻率同樣由寄存
45、a決定,它的控制位為寄存 器b中的pie位。ds12887每秒執(zhí)行一次更新周期還比較每一定鬧字節(jié)與相應(yīng)的時(shí)間字節(jié), 如果匹配枵三個(gè)字節(jié)都是不關(guān)心碼,則產(chǎn)生一次定鬧中斷。由于ds12887芯片在出廠時(shí) ,其自帶的晶振是關(guān)掉的,這樣就可以避免鋰電池在ds12887芯片在構(gòu)成系統(tǒng)之前被耗 盡。寄存器a的第4位到第6位為010時(shí)才開啟其自帶晶振,使芯片工作,所以,編程時(shí)要 初始化寄存器a,使晶振開啟讓芯片能正常工作。 圖4-5 ds12887的地址分配圖 set為0表示時(shí)間更新正常進(jìn)行,當(dāng)set為1表示時(shí)間更新被禁止,程序可初始化時(shí)間 和日歷字節(jié)。pie表示周期中斷使能位,pie為1,表示能夠以選擇的
46、頻率來拉低端口電 平irq管腳, 寄存器b的第六位為pie,其為0時(shí),表示不允許中斷信號(hào)的產(chǎn)生。aie表示鬧鐘中斷信號(hào) 允許端。寄存器b的第三位為sqw,它是方波信號(hào)允許位,本文未用。dm表示數(shù)據(jù)模式選 擇位,dm為1為十進(jìn)制的數(shù)據(jù),其時(shí)鐘、日歷和鬧鐘對(duì)應(yīng)地址與數(shù)據(jù)模式如表4- 2,而dm為0,則表明地址中存放的數(shù)據(jù)是以bcd碼形式儲(chǔ)存的。一天的時(shí)間表示有兩種 格式,即24小時(shí)制和12小時(shí)制,在寄存器b中的第一位為24/12與之對(duì)應(yīng),當(dāng)它為1時(shí),則 用24時(shí)制表示,而它為0時(shí),則用12時(shí)制來表示。為寄存器b的第0位為dse位,它是夏令 時(shí)開啟位,當(dāng)它為1時(shí),則允許,為0時(shí),則禁止。uip為更新
47、周期正在進(jìn)行位。當(dāng)uip為1 ,表明更新將很快發(fā)生,當(dāng)uip為0,更新在244s內(nèi)不會(huì)發(fā)生。dv0,dv1,dv2用于開啟 或關(guān)閉振蕩器,并恢復(fù)計(jì)時(shí)鏈。010唯一組合是打開晶振并允許rtc計(jì)時(shí)。rs3,rs2,rs1 ,rs0:頻率選擇位,本系統(tǒng)未用。irqf表示中斷申請標(biāo)志位。當(dāng)滿足irqf=pfpie+af aie+ufuie時(shí),置1。只要irqf為1,irq管腳輸出低,當(dāng)程序讀寄存器c后或reset管 腳接低電平后,標(biāo)志位都清零。af表示定鬧中斷標(biāo)志位,af為1時(shí)表明現(xiàn)在時(shí)間與定鬧 時(shí)間匹配。鬧鐘啟動(dòng)。vf表示更新周期結(jié)束標(biāo)志位。vf為1時(shí)表示更新周期結(jié)束。biat0 bit3表示未用狀
48、態(tài)位,讀出總為0。vrt表示內(nèi)部鋰電池狀態(tài)位,通常應(yīng)總讀出1,若讀 出的為0,則表明表明內(nèi)部鋰電池已耗盡。bit0bit6表示未用狀態(tài)位,讀出總為0,此 寄存器為只讀存儲(chǔ)器。各寄存器的內(nèi)部結(jié)構(gòu)如表4- 3所示。根據(jù)上述分析,此系統(tǒng)要用intel時(shí)序,24小時(shí)制,輸出數(shù)據(jù)為二進(jìn)制,開啟內(nèi) 部振蕩器,所以在編程時(shí)要給寄存器a、b、分別初始化為20h、26h,因鬧鐘中斷要讀寄 存器c,才能響應(yīng)。所以要在at89c55外部中斷函數(shù)中讀寄存器c。 表4-2時(shí)鐘、日歷和鬧鐘對(duì)應(yīng)地址與數(shù)據(jù)模式-二進(jìn)制模式(dm=1) 表4-3.ds12887狀態(tài)控制寄存器 寄存器的位 bit7bit6bit5bit4bit
49、3bit2bit1bit0 寄存器a uip dv2 dv1dv0rs3rs2rs1rs0 寄存器b setpieale0viesqwdm24/12dse 寄存器c irqfpfafvf0000 寄存器d vrt0000000 4.3.2 ds12887的intel總線時(shí)序 本設(shè)計(jì)采用的是intel總線時(shí)序,所以編寫寫數(shù)據(jù)到ds18b20內(nèi)存中指定的地址函數(shù)(wri te_12887(uchar add,uchar dat))和從ds18b20內(nèi)存中指定的地址讀函數(shù)(read_12887(uchar add))時(shí),必須嚴(yán)格遵守intel總線時(shí)序,其,讀寫總線時(shí)序分別如圖4-6、圖4-7所示。
50、圖4-6 讀intel總線時(shí)序 圖4-7 寫intel總線時(shí)序 4.4顯示模塊程序 此模塊包含四個(gè)函數(shù),分別為初始化lcd1602函數(shù)init_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)格遵守寫操作時(shí)序,rs為高電平是寫數(shù)據(jù),為低 電平是寫指令,其時(shí)序圖如圖4-9所示。 初始化lcd1602時(shí),一些指令必須寫
51、入液晶芯片內(nèi),顯示模式設(shè)置,指令代碼為:38h; 顯示開/關(guān)及光標(biāo)設(shè)置,指令代碼為:0ch,06h;顯示清屏指令代碼為:01h;數(shù)據(jù)指針 設(shè)置,指令代碼為: 80h+地址碼。 開始 初始化 寫指令 寫數(shù)據(jù) 結(jié)束 圖4-8顯示模塊子程序流程圖 圖4-9 寫操作時(shí)序 4.5鍵盤及其它模塊程序 此模塊包含了校準(zhǔn)時(shí)間與設(shè)置鬧鐘函數(shù),星期轉(zhuǎn)換函數(shù),天數(shù)自動(dòng)調(diào)整函數(shù),延遲函數(shù) 等四部分,由于延遲函數(shù)非常簡單,沒有畫流程圖,其它函數(shù)的流程圖依次為:圖4- 10,圖4-11,圖4-12。 y y y 開始 num=0? num=1 s1=0 秒+1 結(jié)束 num=2 s2=0 秒-1 s1=0 分+1 s2=
52、0 分-1 、 y y y y n nn n n n 同理直到num =8 圖4-10校準(zhǔn)時(shí)間與設(shè)置鬧鐘子程序流程圖 開始 讀取變量i=? 輸出 tue 輸出 wed 輸出 thu 輸出 fri 輸出 sat 輸出 sun 輸出 mon 結(jié)束 1 7 23 6 6 5 4 圖4-11星期轉(zhuǎn)換子程序流程圖 開始 讀月份 月份為2 閏年 輸出29天輸出28天輸出30天輸出31天 結(jié)束 為1 y y n n y n 圖4-12天數(shù)自動(dòng)調(diào)整子程序流程圖 第五章 調(diào)試與仿真 5.1 proteus軟件簡介 proteus軟件是由英國的labcenter electronics 公司研發(fā)推出
53、的一款eda工具軟件,由isis及ares兩款軟件組成,其isis軟件是一款比較 方便、電子系統(tǒng)的仿真平臺(tái)的軟件,ares是一款高級(jí)的布線編輯軟件,它集成了高級(jí)的 原理布線圖、混合模式spice電路的仿真、pcb的設(shè)計(jì)以及自動(dòng)布線來實(shí)現(xiàn)一個(gè)完整的電 子設(shè)計(jì)。通過proteus isis軟件的虛擬仿真技術(shù),我們可對(duì)模擬、數(shù)字、模數(shù)混合的電路實(shí)行仿真測試,以及 微控制器為基礎(chǔ)的系統(tǒng)與它所有外圍接口電子元器件進(jìn)行仿真。本設(shè)計(jì)采用的是proteu s軟件仿真。 5.2仿真與調(diào)試步驟 1.打開proteus仿真軟件,創(chuàng)建一個(gè)工程,保存為電子萬年歷。 2.根據(jù)設(shè)計(jì)好的原理圖添加仿真元器件,打開元器件庫,查
54、找要添加的元件,雙擊,繼 續(xù)查找下一個(gè)元器件,直到把所有要添加的器件都添加完。 3.在左邊的方框里點(diǎn)擊所添加的元器件,一個(gè)一個(gè)的畫在仿真原理圖中,按一定的布局 ,把元器件放置的整齊一點(diǎn),使總體上美觀。 4.把放置好的元器件,按設(shè)計(jì)好的原理圖,把各元器件用導(dǎo)線連接起來,在這個(gè)過程, 可以用多種方式,如用總線和網(wǎng)絡(luò)標(biāo)識(shí)與導(dǎo)線配合使用,及可以簡化電路,又可以是電 路美觀。到此,仿真電路就設(shè)計(jì)好了,效果圖見圖5-1所示。 圖51 系統(tǒng)仿真原理圖 5.進(jìn)行電氣檢查,單擊按鈕,進(jìn)行電氣檢測,查看接線是否合理,看有沒有錯(cuò)誤或警 告,如有把它修正,直到?jīng)]有為止,如沒有錯(cuò)誤或警告,則設(shè)計(jì)結(jié)束,保存。 6.把用k
55、eil編寫的程序生成.hex文件添加到單片機(jī)中,單擊按鈕,進(jìn)行對(duì)電子萬年 歷的仿真測試,觀察程序運(yùn)行情況,看能否顯示預(yù)期的結(jié)果。 7打開keil軟件檢查源程序,查找并修改不合邏輯的部分,編譯生成.hex文件,重復(fù)第6 步,直到能顯示預(yù)期結(jié)果。 8 仿真測試復(fù)位鍵測試,按下此鍵看能否復(fù)位,經(jīng)測試可以進(jìn)行復(fù)位,系統(tǒng)重新開始了, 進(jìn)入了開機(jī)畫面,其效果圖見圖5-2所示。 圖5-2復(fù)位鍵測試圖開機(jī)畫面 9仿真測試時(shí)間設(shè)置測試,按下set鍵看能否有閃爍光標(biāo),其每按一下它就會(huì)按秒、分、 時(shí)、星期、日、月、年的順序移動(dòng)到下一個(gè)位置,設(shè)置完了按一下就退出設(shè)置。在設(shè)置 狀態(tài)下每按“+”鍵在對(duì)應(yīng)的位置進(jìn)行加1,每
56、按“- ”鍵在對(duì)應(yīng)的位置進(jìn)行減1,經(jīng)測試可以進(jìn)行時(shí)間設(shè)置,按下此鍵時(shí)進(jìn)入了時(shí)間設(shè)置狀 態(tài),其效果圖見圖5-3所示。 圖53 仿真測試設(shè)置時(shí)間效果圖 10 仿真測試鬧鐘設(shè)置測試,按下ok鍵看能否有光標(biāo),其每按一下它就會(huì)按秒、分、時(shí)的順 序移動(dòng)到下一個(gè)位置,設(shè)置完了按一下就退出設(shè)置。在設(shè)置狀態(tài)下每按“+”鍵在對(duì)應(yīng) 的位置進(jìn)行加1,每按“- ”鍵在對(duì)應(yīng)的位置進(jìn)行減1,經(jīng)測試可以進(jìn)行鬧鐘設(shè)置,按下此鍵時(shí)進(jìn)入了鬧鐘設(shè)置狀 態(tài),其效果圖見圖5-4所示。 圖54. 仿真測試設(shè)置鬧鐘效果圖 11 仿真測試溫度報(bào)警功能,當(dāng)溫度低于- 10c或高于40c時(shí)進(jìn)行一級(jí)警告,紅燈亮,當(dāng)溫度低于- 30c或超過60c時(shí),
57、進(jìn)行二級(jí)報(bào)警,紅燈亮,同時(shí)報(bào)警。其效果圖見圖5-5所示。 圖5-5溫度報(bào)警功能效果圖 12 仿真測試,設(shè)置為2013年5月22號(hào)星期三9點(diǎn)半,溫度為27c。其效果圖見圖5- 6所示。 圖5-6最終效果圖 第六章 總結(jié) 在本次畢業(yè)論文設(shè)計(jì)中,我遇到很多問題,但是與此同時(shí),我也學(xué)到了很多,對(duì)于本次 畢業(yè)論文設(shè)計(jì)的心得體會(huì),我覺得有以下幾點(diǎn): 1.無論做什么項(xiàng)目,規(guī)劃是必要的。沒有一個(gè)好的規(guī)劃,就會(huì)沒有調(diào)理,可能使要解決 的問題復(fù)雜化,是項(xiàng)目變得無法完成,更別說完美了。而有一個(gè)好的規(guī)劃,往往會(huì)使項(xiàng) 目越做越簡單,從而增加信心。還有明確重點(diǎn)和緩急,不會(huì)有疏漏。這樣才能提高成功 率。 2.處理問題要多動(dòng)
58、腦,選出最好的方法。一各問題或難點(diǎn)往往有多種解決方法,一個(gè)好 的方法,不僅能使事情事半功倍,而且往往決定最后的成與敗,所以處理問題時(shí)一定要 多想想,想出最好的方法。 3.要充分利用自己所掌握的知識(shí)區(qū)設(shè)計(jì)項(xiàng)目,使用一些專業(yè)的方法,去設(shè)計(jì)產(chǎn)品,方案 的設(shè)計(jì)多種多樣,可選擇的元器件豐富多樣,因此我們可以從中選擇一些自己熟悉的芯 片,以及擅長處理手段。 4.要注意細(xì)節(jié)。細(xì)節(jié)決定成敗,這在編程時(shí)最能體現(xiàn),這句話在這次畢業(yè)設(shè)計(jì)中不只一 次得到了印證,一點(diǎn)點(diǎn)的錯(cuò)誤就會(huì)使整個(gè)程序不能按預(yù)定邏輯運(yùn)行,達(dá)不到預(yù)期目的。 故我們不僅僅要有整體意識(shí),也要注意細(xì)節(jié),不要因一個(gè)關(guān)細(xì)節(jié)而導(dǎo)致滿盤皆輸。 5.也是最重要的一點(diǎn)
59、,通過這次畢業(yè)設(shè)計(jì),我們學(xué)到了很多專業(yè)有關(guān)的知識(shí),提高了c 語言的編寫能力,對(duì)proteus 、keil與altium designer操作能力,也使我能夠熟練的運(yùn)用proteus 、keil與altium designer軟件,也對(duì)本專業(yè)所學(xué)的知識(shí)有了質(zhì)的提高,使我受益匪淺,為以后的工作增 加了籌碼。總之,此次設(shè)計(jì)還有一點(diǎn)點(diǎn)不完善,那就是不能夠顯示農(nóng)歷,此系統(tǒng)有待完 善。 參考文獻(xiàn) 1 張毅剛.新編mcs-51單片機(jī)應(yīng)用設(shè)計(jì)m.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2006. 2 劉迎春.傳感器原理設(shè)計(jì)與應(yīng)用m.長沙:國防科技大學(xué)出版社,2002. 3 何立民.單片機(jī)應(yīng)用技術(shù)選編m北京:北京航空航天
60、大學(xué)出版社, 2006 4 徐愛鈞.智能化測量控制儀表原理與設(shè)計(jì)(第3版)m北京:北航出版社,2012. 5 楊欣. 51單片機(jī)應(yīng)用實(shí)例詳解m北京:清華大學(xué)出版社,2010 6 李剛.protel dxp電路設(shè)計(jì)標(biāo)準(zhǔn)教程m.北京:清華大學(xué)出版社,2005. 7 曾屹.單片機(jī)原理與應(yīng)用m.長沙:中南大學(xué)出版社,2009. 8 彭偉.單片機(jī)c語言程序設(shè)計(jì)實(shí)訓(xùn)100例 基于8051+proteus仿真(第2版)m.北京:電子工業(yè)出版社,2012. 9 v. yu. teplov,a. v. anisimov. thermostatting system using a single-chip mic
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 法庫期中考試數(shù)學(xué)試卷
- 佛岡七上數(shù)學(xué)試卷
- 汽車凹痕修復(fù)培訓(xùn)課件
- 福建漳州會(huì)考數(shù)學(xué)試卷
- 肌理的美術(shù)課件
- 德陽高一上冊數(shù)學(xué)試卷
- 2025年04月四川綿陽市婦幼保健院招聘醫(yī)師技師3人筆試歷年專業(yè)考點(diǎn)(難、易錯(cuò)點(diǎn))附帶答案詳解
- 高血糖危象的急救處理與恢復(fù)護(hù)理
- 2025至2030赤蘚醇行業(yè)市場深度研究與戰(zhàn)略咨詢分析報(bào)告
- 2025至2030測試即服務(wù)(TaaS)行業(yè)市場深度研究與戰(zhàn)略咨詢分析報(bào)告
- 《工業(yè)固廢資源化技術(shù)及應(yīng)用》課程教學(xué)大綱
- [北京]輸變電工程標(biāo)準(zhǔn)工藝應(yīng)用圖冊(圖文并茂)
- 信用修復(fù)申請書
- 深圳房地產(chǎn)開發(fā)企業(yè)資質(zhì)申報(bào)表
- 美變出廠檢驗(yàn)記錄
- 2020年雀巢公司北京總部十周年慶典暨雀巢家庭日活動(dòng)策劃案ppt課件
- UPS電源施工方案
- 1000MW機(jī)組鍋爐長伸縮式吹灰器檢修規(guī)程
- 清關(guān)發(fā)票裝箱單樣本
- 超臨界蒸汽對(duì)鋼表面的氧化作用
- GB 18382-2021 肥料標(biāo)識(shí) 內(nèi)容和要求(高清-現(xiàn)行)
評(píng)論
0/150
提交評(píng)論