基于AT89S52單片機(jī)的萬年歷設(shè)計(jì)_第1頁
基于AT89S52單片機(jī)的萬年歷設(shè)計(jì)_第2頁
基于AT89S52單片機(jī)的萬年歷設(shè)計(jì)_第3頁
基于AT89S52單片機(jī)的萬年歷設(shè)計(jì)_第4頁
基于AT89S52單片機(jī)的萬年歷設(shè)計(jì)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、洛陽師范學(xué)院課程設(shè)計(jì)說明書(2015)洛陽師范學(xué)院單片機(jī)原理及應(yīng)用課程設(shè)計(jì)報(bào)告基于AT89S52單片機(jī)萬年歷的設(shè)計(jì)院系信息技術(shù)學(xué)院專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)生姓名楊爍琪班級(jí)11級(jí)計(jì)科班學(xué)號(hào)111114013指導(dǎo)教師趙秀英完成日期2015年1月 20日摘 要電子萬年歷是一種非常廣泛日常計(jì)時(shí)工具。它可以對(duì)年、月、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能,對(duì)于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、時(shí)、分、秒和溫度等信息,還具有時(shí)間校準(zhǔn)等功能。該電路采用AT89S52單片機(jī)作為核心,功耗小,能在3V的低壓工作,電壓可選用3-5V電壓供電。此次是基于52系列的單片機(jī)進(jìn)行的電子萬年

2、歷設(shè)計(jì),相比傳統(tǒng)的萬年歷來說,精確度更高。可以顯示溫度、年、月、日、時(shí)、分、秒及周信息,具有可調(diào)整日期和時(shí)間功能。對(duì)單片機(jī)的理論基礎(chǔ)和外圍擴(kuò)展知識(shí)進(jìn)行了比較全面準(zhǔn)備。在硬件與軟件方面進(jìn)行同步設(shè)計(jì)。硬件部分主要由單片機(jī),LED顯示電路,以及調(diào)時(shí)按鍵電路等組成。在單片機(jī)的選擇上使用了AT89S52單片機(jī),該單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場合。顯示器使用共陰極的數(shù)碼管。使用MAX7219來驅(qū)動(dòng)顯示,然后并行輸出。軟件方面主要包括日歷程序、時(shí)間調(diào)整程序、溫度程序、顯示程序等。程序采用匯編語言編寫,以便更簡單地實(shí)現(xiàn)調(diào)整時(shí)間及陰歷顯示功能。所有程序編寫完成后,在keil軟件中進(jìn)行調(diào)試,確定沒有問題后,在

3、Proteus軟件中嵌入單片機(jī)內(nèi)進(jìn)行仿真。關(guān)鍵詞:時(shí)鐘芯片、MAX7219、DS18B20、動(dòng)態(tài)掃描、單片機(jī)。目 錄摘 要11 緒論41.1設(shè)計(jì)背景41.2設(shè)計(jì)思想41.3設(shè)計(jì)框圖52 系統(tǒng)硬件設(shè)計(jì)62.1最小化電路設(shè)計(jì)62.1.1 主控芯片簡介62.1.2 復(fù)位電路、晶振電路設(shè)計(jì)72.2顯示電路設(shè)計(jì)92.2.1 顯示器簡介92.2.2 驅(qū)動(dòng)芯片簡介112.2.3 顯示電路162.3溫度采集電路設(shè)計(jì)172.3.1 溫度采集芯片簡介172.3.2 溫度采集電路212.4實(shí)時(shí)時(shí)鐘電路設(shè)計(jì)212.4.1時(shí)鐘芯片簡介222.4.2時(shí)鐘電路223 系統(tǒng)軟件設(shè)計(jì)253.1主程序流程圖263.2系統(tǒng)子程序的

4、設(shè)計(jì)273.2.1送顯示流程圖273.2.2 時(shí)鐘流程圖283.2.3 溫度采集流程圖294 系統(tǒng)仿真304.1仿真軟件簡介304.2 軟件仿真過程344.3仿真結(jié)果36致謝37參考文獻(xiàn)37附 錄 一38附 錄 二391 緒論1.1設(shè)計(jì)背景隨著人們生活水平的提高和生活節(jié)奏的加快,對(duì)時(shí)間的要求越來越高,精準(zhǔn)數(shù)字計(jì)時(shí)的消費(fèi)需求也是越來越多。二十一世紀(jì)的今天,最具代表性的計(jì)時(shí)產(chǎn)品就是電子萬年歷,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對(duì)穩(wěn)定的機(jī)械振蕩頻率源使鐘表的走時(shí)差從分級(jí)縮小到秒級(jí),代表性的產(chǎn)品就是帶有擺或擺輪游絲的機(jī)械鐘或表。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時(shí)

5、精度更高的石英電子鐘表,使鐘表的走時(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)帶來了鐘表計(jì)時(shí)業(yè)界跨躍性的進(jìn)步。目前流行的計(jì)算機(jī)日歷程序,比較典型的是Windows各版本中的日歷程序以及基礎(chǔ)于該程序所開發(fā)的各種應(yīng)用程序中的日歷程序。然而,這些程序都千篇一律的局限在一個(gè)很短的時(shí)間范圍內(nèi)。(Windows各個(gè)版本一般都局限在1980年至

6、2099年這一范圍內(nèi)),但是,在很多情況下,一個(gè)時(shí)間跨度較大的日歷程序是很有參考價(jià)值的,本程序在這種背景下開始編輯,其中集成了國際通用日歷和中國農(nóng)歷,此外還可以顯示星期和加載了部分節(jié)日,顯示本機(jī)準(zhǔn)確日期等功能。 1.2設(shè)計(jì)思想眾所周知,地球繞太陽公轉(zhuǎn),公轉(zhuǎn)一周歷時(shí)365天5小時(shí)48分46秒。現(xiàn)代國際上普遍采用羅馬歷法,在羅馬歷法中人為地規(guī)定一年365天,也就是我們所說的平年,為了彌補(bǔ)每一年多出的5小時(shí)48分46秒,同時(shí)又規(guī)定4年中有一年是閏年,閏年為366天(平年的2月份為28天,而閏年的2月份為29天),這樣4年有365*3+366=1461天,而地球繞太陽公轉(zhuǎn)4周歷時(shí)1460天23小時(shí)15

7、分4秒,這樣,每4年又產(chǎn)生了44分56秒的誤差,為了減小影響,歷法上又規(guī)定,每400年中只存在97個(gè)閏年,這樣400年中共有365*400+97=146097天,而地球繞太陽公轉(zhuǎn)400周歷時(shí)146096天21小時(shí)6分40秒,較好的彌補(bǔ)了這一缺陷,這樣幾乎3300年才產(chǎn)生一天的誤差。1.3設(shè)計(jì)框圖復(fù)位電路晶振電路電源電路主控模塊ATS8952按鍵掃描模塊驅(qū)動(dòng)電路LED顯示模塊18B20溫度檢測模塊1302時(shí)鐘芯片模塊本電路是由AT89S52單片機(jī)為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V5.5V。采用

8、三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。晶振電路是給主控模塊提供脈沖信號(hào);溫度的采集由DS18B20構(gòu)成;顯示部分由8個(gè)數(shù)碼管,MAX7219譯碼器構(gòu)成。使用動(dòng)態(tài)掃描顯示方式對(duì)數(shù)字的顯示。本設(shè)計(jì)系統(tǒng)框圖如圖1.1所示。圖1.1 基于AT89S52單片機(jī)的電子萬年歷系統(tǒng)框圖2 系統(tǒng)硬件設(shè)計(jì)2.1 最小化電路設(shè)計(jì)在單片機(jī)使用中有必須的最小化電路,它是單片機(jī)工作的前提。其中包括電源電路、晶振電路、復(fù)位電路。下面就簡單介紹最小化電路。2.1.1 主控芯片簡介(1)主要功能的簡介l 擁有靈巧的8位CPU和在系統(tǒng)可編程Flashl 晶片內(nèi)部具有時(shí)鐘振蕩器(傳統(tǒng)

9、最高工作頻率可至 12MHz)l 內(nèi)部 (ROM)程序存儲(chǔ))為 8KBl 內(nèi)部(RAM)數(shù)據(jù)存儲(chǔ)器為 256字節(jié)l 32 個(gè)可編程I/O 口線l 8 個(gè)中斷向量源l 三個(gè) 16 位定時(shí)器/計(jì)數(shù)器l 三級(jí)加密程序存儲(chǔ)器l 全雙工UART串行通道(2)引腳功能簡介圖2.1 AT89S52單片機(jī)的引腳圖VCC:電源正端輸入,接+5V。VSS:電源地端。XTAL1:單芯片系統(tǒng)時(shí)鐘的反相放大器輸入端。XTAL2:系統(tǒng)時(shí)鐘的反相放大器輸出端,一般在設(shè)計(jì)上只要在 XTAL1 和 XTAL2 上接上一只石英振蕩晶體系統(tǒng)就可以動(dòng)作了,此外可以在兩引腳與地之間加入一 20PF 的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲

10、干擾而死機(jī)。RESET:重置引腳,高電平動(dòng)作。EA/Vpp:EA表示存取外部程序代碼之意,低電平動(dòng)作,也就是說當(dāng)此引腳接低電平后,系統(tǒng)會(huì)取用外部的程序代碼(存于外部EPROM中)來執(zhí)行程序。ALE/PROG:ALE是表示地址鎖存器啟用信號(hào)。PSEN:此為Program Store Enable的縮寫,其意為程序儲(chǔ)存啟用。PORT0(P0.0P0.7):端口0是一個(gè)8位寬的開路汲極(Open Drain)雙向輸出入端口,共有8個(gè)位,P0.0表示位0,P0.1表示位1,依此類推。其他三個(gè)I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在當(dāng)做I/O用時(shí)可以推動(dòng)8個(gè)LS的T

11、TL負(fù)載。PORT1(P1.0P1.7):端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動(dòng)4個(gè)LS TTL負(fù)載,同樣地若將端口1的輸出設(shè)為高電平,便是由此端口來輸入數(shù)據(jù)。PORT3(P3.0P3.7):端口3也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動(dòng)4個(gè)TTL負(fù)載,同時(shí)還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計(jì)時(shí)計(jì)數(shù)控制及外部數(shù)據(jù)存儲(chǔ)器內(nèi)容的讀取或?qū)懭肟刂频裙δ?。其引腳分配如下:P3.0:RXD,串行通信輸入。P3.1:TXD,串行通信輸出。P3.2:INT0,外部中斷0輸入。P3.3:INT1,外部中斷1輸入。P3.4:T0,計(jì)時(shí)計(jì)數(shù)器0輸入。

12、P3.5:T1,計(jì)時(shí)計(jì)數(shù)器1輸入。P3.6:WR,外部數(shù)據(jù)存儲(chǔ)器的寫入信號(hào)。P3.7:RD,外部數(shù)據(jù)存儲(chǔ)器的讀取信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。/EA/VPP:當(dāng)/EA保持低電平時(shí),在此期間外部程序存器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。.2.1.2 復(fù)位電路、晶振電路的設(shè)計(jì)單片機(jī)工作需要3個(gè)基本條件:接電源、接石英晶體振蕩器和復(fù)位電路。如圖2.2所示。圖2.2 單片機(jī)的基本電路(1)接電源 將單片機(jī)第40腳Vcc接電源+5V,第20腳Vss

13、接地(電源負(fù)極),為單片機(jī)工作提供電源。由于AT89S52片內(nèi)帶有程序存儲(chǔ)器,當(dāng)使用片內(nèi)程序存儲(chǔ)器時(shí)要將EA(31腳)接高電平,即接到電源+5V。 (2)接石英晶體振蕩器 將單片機(jī)第19腳(XTAL1)與18腳(XTAL2)分別接外部晶體的兩個(gè)引腳,由石英晶體組成振蕩器,保證單片機(jī)內(nèi)部各部分有序工作。 圖2.3 晶振電路 單片機(jī)運(yùn)行程序的速度與振蕩器的頻率有關(guān)。單片機(jī)在讀、寫操作時(shí)都需要消耗一定的時(shí)間。機(jī)器周期是指單片機(jī)完成一個(gè)基本操作所用的時(shí)間,當(dāng)外接石英晶體為12MHz時(shí),1個(gè)機(jī)器周期為1ms;當(dāng)外接石英晶體為6MHz時(shí),1個(gè)機(jī)器周期為1ms。(3)復(fù)位電路 在實(shí)際應(yīng)用中,復(fù)位電路有兩種基

14、本形式:一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位如圖2.4所示。上電復(fù)位要求接通電源后,單片機(jī)自動(dòng)實(shí)現(xiàn)復(fù)位操作。常用的上電復(fù)位電路如圖2-4(a)所示。上電瞬間RST引腳獲得高電平,隨著電容C1的充電,RST引腳的高電平將逐漸下降。RST引腳的高電平只要能保持足夠的時(shí)間(2個(gè)機(jī)器周期),單片機(jī)就可以進(jìn)行復(fù)位操作。該電路典型的電阻和電容參數(shù)為:晶振為12MHz時(shí),C1為10uF,R1為8.2K;晶振為6MHz時(shí),電容C1為22uF,R1為1K。上電與按鍵均有效的復(fù)位電路如圖2.4(b)所示。上電與按鍵均有效的復(fù)位電路原理與上電復(fù)位原理相同,不同的是上電與按鍵均有效的復(fù)位電路在單片機(jī)運(yùn)行期間

15、,能用按鍵來控制復(fù)位操作晶振為6MHz時(shí),電容C1為22uF,R2為200圖 2.4(a)上電復(fù)位電路 圖2.4(b)上電與按鍵均有效復(fù)位電路本設(shè)計(jì)中使用后者電路復(fù)位,就是可以在單片機(jī)運(yùn)行期間可以人工的復(fù)位。這樣是比較方便。2.2 顯示電路設(shè)計(jì).2.2.1 顯示器的簡介發(fā)光二極管LED是簡單常用的輸出設(shè)備,通常用來指示機(jī)器的狀態(tài)或其它信息。它的優(yōu)點(diǎn)是價(jià)格低,壽命長,對(duì)電壓電流的要求低及容易實(shí)現(xiàn)多路等,因而在測量控制儀器中獲得了廣泛的應(yīng)用。LED是近似于恒壓的元器件,到導(dǎo)電時(shí)(發(fā)光)的正向壓降一般約為1.6V或2.4V,反向擊穿電壓一般5V。工作電流通常在10-20mA,故電路中需要串聯(lián)適當(dāng)?shù)南?/p>

16、流電阻。發(fā)光強(qiáng)度基本上與正向電流成正比。發(fā)光效率和顏色取決于制造的材料,一般常用紅色,偶爾也用于黃色或綠色。多個(gè)LED可接成共陰或共陽極形式。通過驅(qū)動(dòng)器接到系統(tǒng)的并行輸出口上,由CPU輸出適當(dāng)?shù)拇a來點(diǎn)亮或熄滅相應(yīng)的LED。發(fā)光二級(jí)管顯示驅(qū)動(dòng)(點(diǎn)亮)的方法有如下2種:l 靜態(tài)驅(qū)動(dòng)方法:即給欲點(diǎn)亮的LED通過恒定的定流。這種驅(qū)動(dòng)方法需要顯示的位數(shù)增加時(shí),所需的邏輯部件及連線也相應(yīng)增加,成本也增加。l 動(dòng)態(tài)驅(qū)動(dòng)方法:是給欲點(diǎn)亮的LED通過脈沖電流,此時(shí)LED的脈沖電流倍數(shù)于其額定電流值。利用動(dòng)態(tài)驅(qū)動(dòng)方法可以減少需要的邏輯部件和連線。7段LED數(shù)碼顯示器最常用的一種數(shù)碼顯示器是由7段條形的LED組成

17、,如圖2.5所示。 圖2.5(a)共陰極接法 圖2.5(b)共陽極接法點(diǎn)亮適當(dāng)?shù)淖侄危涂梢猿霾煌臄?shù)字。此外不少于7段數(shù)碼管顯示器在右下角帶有一個(gè)圓形的LED作小數(shù)點(diǎn)用,這樣一共有8段,恰好適用于8位的并行系統(tǒng)。 圖2.5(a)為共陰極接法,公共陰極接地。當(dāng)各段陽極上的電平為“1”時(shí),該段點(diǎn)亮;電平為“0”時(shí),段就熄滅。圖2.5(b)為共陽極接法+5V電源。當(dāng)各段陰極上的電平為“0”時(shí),該段就點(diǎn)亮;電平為“1”時(shí),段就熄滅。圖中的電阻是限流電阻。圖2.6 7段LED數(shù)碼管顯示器內(nèi)部段的排列為了在7段(圖2.6)LED上顯示不同的數(shù)字或字符,首先要把數(shù)字或字符轉(zhuǎn)換成相應(yīng)的段碼(又稱字型碼),由

18、于電路接法不同,形成的段碼也不相同,如表2-1所示。表2-1 7段數(shù)碼顯示器的段位碼存儲(chǔ)器地址顯示數(shù)字共陰極接法的7段狀態(tài)g f e d c b a共陰極接法段碼(十六進(jìn)制數(shù))共陽極接法段碼(十六進(jìn)制數(shù))SEG00 1 1 1 1 1 13F40SEG+110 0 0 0 1 1 00679SEG+221 0 1 1 0 1 15B24SEG+331 0 0 1 1 1 14F30SEG+441 1 0 0 1 1 06619SEG+551 1 0 1 1 0 16D12SEG+661 1 1 1 1 0 17D02SEG+770 0 0 0 1 1 10778SEG+881 1 1 1 1

19、1 17F00SEG+991 1 0 0 1 1 16718SEG+10A1 1 1 0 1 1 17708SEG+11B1 1 1 1 1 0 07C03SEG+12C0 1 1 1 0 0 13946SEG+13D1 0 1 1 1 1 05E21SEG+14E1 1 1 1 0 0 17906SEG+15F1 1 1 0 0 0 1710E注:由于用MAX7219驅(qū)動(dòng)譯碼,所以,本文選用共陰極數(shù)碼管,只顯示0-9,如果要用7段數(shù)碼顯示器顯示多位數(shù)字,就用MAX7219來驅(qū)動(dòng),下一節(jié)MAX7219的驅(qū)動(dòng)。詳情請(qǐng)參考上一節(jié)。2.2.2 驅(qū)動(dòng)芯片的簡介 MAX7219是MAXMI公司生產(chǎn)的一種

20、串行接口方式7段共陰極LED顯示驅(qū)動(dòng)器。其片內(nèi)包含有一個(gè)BCD碼到B碼的譯碼器、多路復(fù)用掃描電路、字段和字位驅(qū)動(dòng)器,以及存儲(chǔ)每個(gè)數(shù)字的8X8RAM。每位數(shù)字都可以被尋址和更新,允許對(duì)每一位數(shù)字選擇B碼譯碼或不譯碼。采用三線串行方式與單片機(jī)接口。電路十分簡單,只需要一個(gè)10K左右的外接電阻來設(shè)置所有LED的段電流。MAX7219的引腳排列如圖2.7所示。 圖2.7 MAX7219的引腳排列(1)引腳功能簡介DIN:串行數(shù)據(jù)輸入。在CLK時(shí)鐘的上升沿,串行數(shù)據(jù)被移入內(nèi)部移位寄存器。移入時(shí)最高位(MSB)在前。DIG0-7:8根字位驅(qū)動(dòng)引腳,它從LED顯示器吸入電流。GND:接地,兩根GND引腳必須

21、相連。LOAD:裝載數(shù)據(jù)輸入。在LOAD的上升沿,串行輸入數(shù)據(jù)的最后16位被鎖存。CLK:時(shí)鐘輸入。它是串行數(shù)據(jù)輸入時(shí)所需的移位脈沖。最高時(shí)鐘頻率為10MHz,在CLK地上升沿串行數(shù)據(jù)被移入內(nèi)部移位寄存器,在CLK的下降沿?cái)?shù)據(jù)從DOUT移出。SEGA-SEGG,DP:七段和小數(shù)點(diǎn)驅(qū)動(dòng)輸出,它提供LED顯示器源電流。ISET:通過一個(gè)10K電阻Rset接到V+以設(shè)置峰值段電流。V+:+5V電源電壓。DOUT:串行數(shù)據(jù)輸出。輸入到DIN的數(shù)據(jù)經(jīng)過16.5個(gè)時(shí)鐘周期后,在DOUT端有效。(2) MAX7219的傳輸方式:采用串行數(shù)據(jù)傳輸方式,由16位數(shù)據(jù)包發(fā)送到DIN引腳的串行數(shù)據(jù)在每個(gè)CLK的上升

22、沿被移入的內(nèi)部16位移位寄存器,然后在LOAD的上升沿將數(shù)據(jù)所存到數(shù)字或控制寄存器中。LOAD信號(hào)必須在第16個(gè)時(shí)鐘上升沿同時(shí)或之后,但在下一個(gè)時(shí)鐘上升沿之前變高;否則將會(huì)丟失數(shù)據(jù)。DIN端的數(shù)據(jù)通過移位寄存器傳送,并在16.5個(gè)時(shí)鐘周期之后出現(xiàn)在DOUT端。DOUT端的數(shù)據(jù)在CLK的下降沿輸出。串行數(shù)據(jù)以16位為一幀,其中,D11-D8為內(nèi)部寄存器地址,D7-D0為寄存器數(shù)據(jù),格式如表2-2所示。表2-2 MAX7219的串行數(shù)據(jù)格式D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0XXXX地址MSN 數(shù)據(jù) LSB(3) MAX7219的內(nèi)部寄存器:MAX7219具

23、有14個(gè)可尋址的內(nèi)部數(shù)字和控制寄存器。8個(gè)數(shù)字寄存器由一個(gè)片內(nèi)8X8雙端口SRAM實(shí)現(xiàn),它們可以直接尋址;因此,可以對(duì)單個(gè)數(shù)字進(jìn)行更新;并且只要V+超過2V,數(shù)據(jù)就可以保留下去??刂萍拇嫫饔?個(gè),分別為譯碼方式、顯示亮度、掃描界限(掃描數(shù)位的個(gè)數(shù))、停機(jī)和顯示測試。另外還有一個(gè)空操作寄存器(NO-OP),在不改變顯示或影響任一控制寄存器的條件下器件級(jí)聯(lián)時(shí),它允許數(shù)據(jù)從DIN傳到DOUT。表2.3所列為MAX7219的內(nèi)部寄存器及其地址。表2-3 MAX7219的內(nèi)部寄存器及其地址寄存器地址D15-D12D11 D10 D9 D8十六進(jìn)制代碼NO OPX0 0 0 0X0H數(shù)字0X0 0 0 1

24、X1H數(shù)字1X0 0 1 0X2H數(shù)字2X0 0 1 1X3H數(shù)字3X0 1 0 0X4H數(shù)字4X0 1 0 1X5H數(shù)字5X0 1 1 0X6H數(shù)字6X0 1 1 1X7H數(shù)字7X1 0 0 0X8H譯碼方式X1 0 0 1X9H亮度X1 0 1 0XAH掃描界限X1 0 1 1XBH停機(jī)X1 1 0 0XCH顯示測試X1 1 1 1XFH下面以表格形式對(duì)MAX7219內(nèi)部寄存器中不同數(shù)據(jù)所表示的含義進(jìn)行說明。表2-4為譯碼方式寄存器中數(shù)據(jù)的含義。從表中可見,寄存器中的每一位與一個(gè)數(shù)字位相對(duì)應(yīng),邏輯高電平選擇B譯碼,而邏輯低電平則選擇旁路譯碼器。表2-4 譯碼方式寄存器(地址 = X9H)含

25、義D7 D6 D5 D4 D3 D2 D1 D0十六進(jìn)制代碼7 0位均不譯碼0 0 0 0 0 0 0 000H0位譯成B碼,7 1均不譯碼0 0 0 0 0 0 0 101H3 0譯成B碼,7 4均不譯0 0 0 0 1 1 1 10FH7 0位譯成B碼1 1 1 1 1 1 1 1FFHMAX7219可用V+和ISET之間所接外部電阻Rset來控制顯示亮度。來自段驅(qū)動(dòng)器的峰值電流通常為進(jìn)入ISET電流的100倍。Rset既可以為固定電阻,也可以為可變電阻,以提供來自面板的亮度調(diào)節(jié),其最小值為9.52K。段電流的數(shù)字控制由內(nèi)部脈寬調(diào)制DAC控制。該DAC通過亮度寄存器向低4位加載,將平均峰值

26、電流按16級(jí)比例設(shè)計(jì),從Rset設(shè)置峰值電流的31/32的最大值到1/32的最小值,如表2-5所列,最大亮度出現(xiàn)在占空比為31/32時(shí)。表2-5 亮度寄存器(地址 = XAH)占空比(亮度)D7 D6 D5 D4 D3 D2 D1 D0十六進(jìn)制代碼1/32(最小亮度)X X X X 0 0 0 0X0H3/32X X X X 0 0 0 1X1H5/32X X X X 0 0 1 0X2H29/32X X X X 1 1 1 0XEH31/32(最大亮度)X X X X 1 1 1 1XFH掃描界限寄存器用于設(shè)置所顯示的數(shù)字位,可以為1-8。通常以掃描頻率為1300Hz、8位數(shù)字、多路方式顯示

27、。因?yàn)樗鶔呙钄?shù)字的多少會(huì)影響顯示亮度,所以要注意調(diào)整。如果掃描界限寄存器被設(shè)置為3個(gè)數(shù)字或更少,各數(shù)值驅(qū)動(dòng)器將消耗過量的功率。因此,Rset電阻的值必須按所顯示數(shù)字的位數(shù)多少適當(dāng)調(diào)整,以限制各個(gè)數(shù)字驅(qū)動(dòng)器的功耗。表2-6為掃描界限寄存器中數(shù)據(jù)的含義。表2-6 掃描界限寄存器(地址=XBH)顯示數(shù)字位D7 D6 D5 D4 D3 D2 D1 D0十六進(jìn)制代碼只顯示第0位X X X X X 0 0 0X0H顯示第0位-第1位數(shù)字X X X X 0 0 0 1X1H顯示第0位-第2位數(shù)字X X X X 0 0 1 0X2H顯示第0位-第6位數(shù)字X X X X X 0 1 1X6H顯示第0位-第7位數(shù)

28、字X X X X X 1 1 1X7H當(dāng)MAX7219處于停機(jī)方式時(shí),掃描振蕩器停止工作,所有的段電流源被拉到地,而所有的位驅(qū)動(dòng)器被拉到V+,此時(shí)LED將不顯示。在數(shù)字和控制寄存器中的數(shù)據(jù)保持不變。停機(jī)方式可用于節(jié)省功耗或使LED處于閃爍。MAX7219退出停機(jī)方式的時(shí)間不到250uS,在停機(jī)方式下顯示驅(qū)動(dòng)器還可以進(jìn)行編程。停機(jī)方式可以被顯示測試功能取消。表2-7為停機(jī)寄存器中數(shù)據(jù)的含義。表2-7 停機(jī)寄存器(地址 = XCH)工作方式D7 D6 D5 D4 D3 D2 D1 D0十六進(jìn)制代碼停機(jī)X X X X X X X 0X0H正常X X X X X X X 1X1H顯示測試寄存器有兩種工

29、作方式:正常和顯示測試。在顯示測試方式下8位數(shù)字被掃描,占空比為31/32。通常不考慮(但不改變)所有控制寄存器和數(shù)據(jù)寄存器(包括停機(jī)寄存器)內(nèi)的控制器來接通所有的LED顯示器。表2-8為顯示測試寄存器中數(shù)據(jù)的含義。表 2-8 顯示測試寄存器(地址 = XFH)工作方式D7 D6 D5 D4 D3 D2 D1 D0十六進(jìn)制代碼停機(jī)X X X X X X X 0X0H顯示設(shè)置X X X X X X X 1X1H數(shù)字0-7寄存器受譯碼器寄存器的控制:譯碼或不譯碼。數(shù)據(jù)將寄存器可將BCD碼譯成B碼(0-9、-、E、L、P),如表2-9所列。如果不譯碼,則數(shù)字寄存器中數(shù)據(jù)的D6-D0為=位分別對(duì)應(yīng)7段

30、LED顯示器的A-G段,D7位對(duì)應(yīng)LED的小數(shù)點(diǎn)DP。某一位數(shù)據(jù)為1,則點(diǎn)亮與該位對(duì)應(yīng)的LED段;數(shù)據(jù)為0,則熄滅該段。表 2-9 數(shù)字0-7寄存器(地址 = X1H X8H)7段字形寄存器數(shù)據(jù)點(diǎn)亮段D7 D6-D4 D3 D2 D1 D0DP A B C D E F G0X 0 0 0 01 1 1 1 1 1 01X 0 0 0 10 1 1 0 0 0 02X 0 0 1 01 1 0 1 1 0 13X 0 0 1 11 1 1 1 0 0 14X 0 1 0 00 1 1 0 0 1 15X 0 1 0 11 0 1 1 0 1 16X 0 1 1 01 0 1 1 1 1 17X

31、0 1 1 11 1 1 0 0 0 08X 1 0 0 01 1 1 1 1 1 19X 1 0 0 11 1 1 1 0 1 1-X 1 0 1 00 0 0 0 0 0 1EX 1 0 1 11 0 0 1 1 1 1HX 1 1 0 00 1 1 0 1 1 1LX 1 1 0 10 0 0 1 1 1 0PX 1 1 1 01 1 0 0 1 1 1暗X 1 1 1 10 0 0 0 0 0 0 注:小數(shù)點(diǎn)DP由D7位控制,D7=1點(diǎn)亮小數(shù)點(diǎn).2.2.3 顯示電路圖2.8為89S52單片機(jī)與MAX7219的一種接口。89S52的P1.0口連接到圖2.8 MAX7219與89S52單片

32、機(jī)接口MAX7219的DIN端,P1.1口連到LOAD端,P1.2連到CLK端。采用軟件模擬方式產(chǎn)生MAX7219所需的工作時(shí)序。圖2.8為數(shù)據(jù)傳輸時(shí)序設(shè)計(jì)的MAX7219顯示驅(qū)動(dòng)程序例子,程序執(zhí)行后在LED上顯示8051字樣。2.3溫度采集電路設(shè)計(jì)2.3.1 溫度采集芯片簡介1. DS18B20引腳結(jié)構(gòu)如圖2.10所示。圖2.10 引腳結(jié)構(gòu) DS1820通過一個(gè)單線接口發(fā)送或接收信息,因此在中央微處理器和DS1820之間僅需一條連接線(加上地線)。用于讀寫和溫度轉(zhuǎn)換的電源可以從數(shù)據(jù)線本身獲得,無需外部電源。因?yàn)槊總€(gè)DS1820都有一個(gè)獨(dú)特的片序列號(hào),所以多只DS1820可以同時(shí)連在一根單線總

33、線上,這樣就可以把溫度傳感器放在許多不同的地方。這一特性在HVAC環(huán)境控制、探測建筑物、儀器或機(jī)器的溫度以及過程監(jiān)測和控制等方面非常有用。引腳說明GND:接地。NC :接空。DQ :數(shù)據(jù)輸入/輸出腳。VDD:外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。2. 技術(shù)性能描述 (1)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。 (2)測溫范圍 55125,固有測溫分辨率0.5。 (3)支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個(gè),如果數(shù)量過多,會(huì)使供電電源電壓過低,從而造成信號(hào)傳輸?shù)牟环€(wěn)定,實(shí)現(xiàn)多點(diǎn)

34、測溫 。(4)工作電源: 35V/DC 。(5)在使用中不需要任何外圍元件 。(6)測量結(jié)果以912位數(shù)字量方式串行傳送。 (7)不銹鋼保護(hù)管直徑 6。 (8)適用于DN1525, DN40DN250各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測溫。 (9)標(biāo)準(zhǔn)安裝螺紋 M10X1, M12X1.5, G1/2任選。 (10)PVC電纜直接出線或德式球型接線盒出線,便于與其它電器設(shè)備連接。 3. 應(yīng)用范圍 (1)該產(chǎn)品適用于冷凍庫,糧倉,儲(chǔ)罐,電訊機(jī)房,電力機(jī)房,電纜線槽等測溫和控制領(lǐng)域 。(2)軸瓦,缸體,紡機(jī),空調(diào),等狹小空間工業(yè)設(shè)備測溫和控制。 (3)汽車空調(diào)、冰箱、冷柜、以及中低溫干燥箱等。 (4)

35、熱制冷管道熱量計(jì)量,中央空調(diào)分戶熱能計(jì)量和工業(yè)領(lǐng)域測溫和控制 。4. DS18B20測溫原理如圖2.11所示。 圖2.11 測溫原理表2-10 溫度/數(shù)據(jù)關(guān)系溫度數(shù)據(jù)輸出(二進(jìn)制)數(shù)據(jù)輸出(十六進(jìn)制)+1250 0 0 0 0 0 0 0 1 1 1 1 1 0 1 000FA+250 0 0 0 0 0 0 0 0 0 1 1 0 0 1 00032+0.50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000-0.51 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1FFFF-251 1 1

36、1 1 1 1 1 1 1 0 0 1 1 1 0FFCE-551 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0FF92DS18B20是這樣測溫的:用一個(gè)高溫度系數(shù)的振蕩器確定一個(gè)門周期,內(nèi)部計(jì)數(shù)器在這個(gè)門周期內(nèi)對(duì)一個(gè)低溫度系數(shù)的振蕩器的脈沖進(jìn)行計(jì)數(shù)來得溫度值。計(jì)數(shù)器被預(yù)置到對(duì)應(yīng)于-55的一個(gè)值。如果計(jì)數(shù)器在門周期結(jié)束之前到達(dá)0,則溫度寄存器(同樣被預(yù)置到-55)的值增加,表明所測溫度大于-55。同時(shí),計(jì)數(shù)器被復(fù)位到一個(gè)值,這個(gè)值由斜坡式累加器電路用來補(bǔ)償感溫振蕩器的拋物線特性。然后計(jì)數(shù)器又開始計(jì)數(shù)直到0,如果門周期仍未結(jié)束,將重復(fù)這一過程。斜坡式累加器用來補(bǔ)償感溫振蕩器的非線性

37、,以期在測溫時(shí)獲得比較高的分辨力,這是通過改變計(jì)數(shù)器對(duì)溫度每增加一度所需計(jì)數(shù)的值來實(shí)現(xiàn)的。因此,要想獲得所需的分辨力,必須同時(shí)知道在給定溫度下計(jì)數(shù)器的值和每一度的計(jì)數(shù)值。DS18B20內(nèi)部對(duì)此計(jì)算的結(jié)果提供0.5的分辨力。溫度以16bit帶符號(hào)位擴(kuò)展的二進(jìn)制補(bǔ)碼形式讀出,表給出了溫度值和輸出數(shù)據(jù)的關(guān)系。數(shù)據(jù)通過單線接口以串行方式傳輸。DS18B20測溫范圍-55- +125,以0.5遞增。如果于華氏溫度,必須要用一個(gè)轉(zhuǎn)換因子查找。5) 時(shí)序主機(jī)使用時(shí)間隙(time slots)來讀寫DSl820的數(shù)據(jù)位和寫命令字的位。(1)初始化時(shí)序見圖2.12主機(jī)總線to時(shí)刻發(fā)送一復(fù)位脈沖(最短為480us

38、的低電平信號(hào))接著在tl時(shí)刻釋放總線并進(jìn)入接收狀態(tài)DSl820在檢測到總線的上升沿之后等待15-60us接著DS1820在t2時(shí)刻發(fā)出存在脈沖(低電平持續(xù)60-240 us)如圖中虛線所示。 圖2.12 初始化時(shí)序圖(2). 寫時(shí)間隙當(dāng)主機(jī)總線to時(shí)刻從高拉至低電平時(shí)就產(chǎn)生寫時(shí)間隙見圖2.13(a)圖1.13(b)從to時(shí)刻開始15us之內(nèi)應(yīng)將所需寫的位送到總線上DSl820在t0后15-60us間對(duì)總線采樣若低電平寫入的位是0見圖2.13(a),若高電平寫入的位是1,見圖2.13(b),連續(xù)寫2位間的間隙應(yīng)大于1us。 圖2.13(a)寫0時(shí)序 圖2.13(b) 寫1時(shí)序 (3). 讀時(shí)間隙

39、見圖2.14主機(jī)總線to時(shí)刻從高拉至低電平時(shí)總線只須保持低電平l7us之后,在t1時(shí)刻將總線拉高產(chǎn)生讀時(shí)間隙,讀時(shí)間隙在t1時(shí)刻后t2時(shí)刻前有效t2距t0為15us也就是說t2時(shí)刻前主機(jī)必須完成讀位并在t0后的60us-120us內(nèi)釋放總線。讀位子程序(讀得的位到C中)。圖2.14 讀時(shí)序.2.3.2溫度采集電路 此電路圖是以DS18B20溫度采集芯片為主,以單片機(jī)為輔。通過溫度采集芯片采集到外部溫度轉(zhuǎn)化之后,再通過單片機(jī)芯片的轉(zhuǎn)化然后輸出顯示。如圖2.15所示。 圖2.15 溫度采集電路2.4 實(shí)時(shí)時(shí)鐘電路設(shè)計(jì)DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電

40、路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)318的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時(shí)提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。2.4.1時(shí)鐘芯片簡介Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1時(shí),Vcc2給DS1302供電。

41、當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器。其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc2.0V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向)。S

42、CLK為時(shí)鐘輸入端。 如圖(2.16)為DS1302的引腳功能圖。 2 圖2.16 DS1302的引腳圖分布1) DS1302的控制字節(jié)DS1302 的控制字如表2-11所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。 表2-11 DS1302的控制字節(jié)2)數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位

43、0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。 3)DS1302的寄存器DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)。DS1302內(nèi)部寄存器的列表如圖2-12所示。表2-12 DS1302內(nèi)部寄存器列表寄存器名稱 命令字 取值范圍 各位內(nèi)容 寫 讀 7 6 5 4 3 2 1 0秒寄存器 80H 81

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論