車載可測溫式電子萬年歷論文_第1頁
車載可測溫式電子萬年歷論文_第2頁
車載可測溫式電子萬年歷論文_第3頁
車載可測溫式電子萬年歷論文_第4頁
車載可測溫式電子萬年歷論文_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、東北林業(yè)大學畢業(yè)論文-PAGE 2. z- - - .總結資料東北林業(yè)大學畢業(yè)論文-PAGE 2. z畢 業(yè) 論 文論文題目:車載可測溫式電子萬年歷-PAGE . zChengdong College of NortheastAgricultural UniversityThesisThesis topic:The Vehicle Carries Temperature Measurement Type Electron Ten Thousand CalendarsStudent name:Tutor name:Specialty:ElectronicAnd Information Engin

2、eeringJune 2021-. z-PAGE . z車載可測溫式電子萬年歷摘 要隨著電子技術的迅速開展,特別是隨著大規(guī)模集成電路的出現,給人類生活帶來了根本性的改變。尤其是單片機技術的應用產品已經走進了千家萬戶,如電子萬年歷的出現給人們的生活帶來了諸多方便。本文描述了系統硬件工作原理,并附以系統構造框圖加以說明,著重介紹了本系統所應用的各硬件及其接口技術和各硬件模塊的功能及工作過程;其次,詳細闡述了程序的各個模塊和實現過程。本設計以數字集成電路技術為根底,單片機技術為核心。編寫的主導思想軟硬件相結合,以硬件為根底,來進展各功能模塊的編寫。本系統為了便于擴展和更改,軟件的設計采用模塊化構造,

3、使程序設計的邏輯關系更加簡潔明了。系統通過傳感器采集溫度。用四個數碼管顯示數據,可以顯示時間和溫度,也可以通過按鍵調整時間。關鍵詞:電子萬年歷;單片機;時鐘芯片;溫度傳感器;數碼管顯示The Vehicle CarriesTemperature Measurement Type Electron Ten Thousand CalendarsAbstractAlong with electronic technologys rapidly e*pand, specially along with large scale integrated circuits appearance, lived

4、for the humanity has brought the fundamental change. Especially the monolithic integrated circuit technologys application product already entered everyone, if the electronic ten thousand calendars appearances have brought conveniently many for peoples life.This article described the system hardware

5、principle of work, and attaches by the system structure diagram e*plained that introduced emphatically this system applies various hardware and connection technology and various hardware module function and work process; Ne*t, elaborated in detail procedure each module and realizes the process. This

6、 design take the digital integrated circuit technology as the foundation, the monolithic integrated circuit technology is a core. The pilation guiding ideology software and hardware unifies, take the hardware as the foundation, carries on various functional module the pilation.This system for ease o

7、f the e*pansion and the change, softwares design uses the modular structure, causes the programming the logical relation even more simple and brief. System through two group of ni*ietube demonstration data. May the tell time and the week, after pressing down cuts the key, may the show date.Key word:

8、Electronic ten thousand calendars; Monolithic integrated circuit; Clock chip; Temperature sensor ;Ni*ietube demonstration目錄 TOC o 1-4 h z u HYPERLINK l _Toc232917676摘要 PAGEREF _Toc232917676 h IHYPERLINK l _Toc232917677Abstract PAGEREF _Toc232917677 h IIHYPERLINK l _Toc232917678前言 PAGEREF _Toc2329176

9、78 h HYPERLINK l _Toc2329176791 方案選擇 PAGEREF _Toc232917679 h HYPERLINK l _Toc2329176801.1 整機設計方案選擇 PAGEREF _Toc232917680 h HYPERLINK l _Toc2329176811.2 單片機芯片的選擇 PAGEREF _Toc232917681 h HYPERLINK l _Toc2329176821.3 時鐘芯片的選擇 PAGEREF _Toc232917682 h HYPERLINK l _Toc2329176831.4 溫度傳感器的選擇 PAGEREF _Toc2329

10、17683 h HYPERLINK l _Toc2329176842 硬件設計 PAGEREF _Toc232917684 h HYPERLINK l _Toc2329176852.1 電路組成框圖 PAGEREF _Toc232917685 h HYPERLINK l _Toc2329176862.2 系統硬件概述及整機工作原理 PAGEREF _Toc232917686 h HYPERLINK l _Toc2329176872.3 各芯片介紹 PAGEREF _Toc232917687 h HYPERLINK l _Toc2329176882.3.1 AT89S51單片機 PAGEREF

11、_Toc232917688 h HYPERLINK l _Toc2329176892.3.2 DS12887時鐘芯片 PAGEREF _Toc232917689 h HYPERLINK l _Toc2329176902.3.2.1 DS12887主要功能簡介 PAGEREF _Toc232917690 h HYPERLINK l _Toc2329176912.3.2.2 DS12887引腳說明 PAGEREF _Toc232917691 h HYPERLINK l _Toc2329176922.3.2.3 時間,日歷和定鬧單元 PAGEREF _Toc232917692 h HYPERLINK

12、 l _Toc2329176932.3.2.4 DS12887的控制存放器 PAGEREF _Toc232917693 h HYPERLINK l _Toc2329176942.3.3 DS18B20溫度傳感器 PAGEREF _Toc232917694 h HYPERLINK l _Toc2329176952.4 數碼管顯示電路設計 PAGEREF _Toc232917695 h HYPERLINK l _Toc2329176962.4.1 顯示模塊的選擇與方案論證 PAGEREF _Toc232917696 h HYPERLINK l _Toc2329176972.4.2 LED顯示器工作

13、原理 PAGEREF _Toc232917697 h HYPERLINK l _Toc2329176983 系統軟件設計 PAGEREF _Toc232917698 h HYPERLINK l _Toc2329176993.1 系統功能模塊及主程序流程圖 PAGEREF _Toc232917699 h HYPERLINK l _Toc2329177003.2 DS12887初始化程序設計 PAGEREF _Toc232917700 h HYPERLINK l _Toc2329177013.3 顯示子程序設計 PAGEREF _Toc232917701 h HYPERLINK l _Toc232

14、9177023.4 時間調整程序設計 PAGEREF _Toc232917702 h HYPERLINK l _Toc2329177033.5 溫度采集程序設計 PAGEREF _Toc232917703 h HYPERLINK l _Toc2329177043.5.1 DS18B20的初始化 PAGEREF _Toc232917704 h HYPERLINK l _Toc2329177053.5.2 DS18B20的寫操作 PAGEREF _Toc232917705 h HYPERLINK l _Toc2329177063.5.3 DS18B20的讀操作 PAGEREF _Toc232917

15、706 h HYPERLINK l _Toc2329177073.6 溫度值與時間的顯示 PAGEREF _Toc232917707 h HYPERLINK l _Toc2329177084 電路安裝與調試 PAGEREF _Toc232917708 h HYPERLINK l _Toc2329177094.1 電路安裝 PAGEREF _Toc232917709 h HYPERLINK l _Toc2329177104.2 電路調試 PAGEREF _Toc232917710 h HYPERLINK l _Toc2329177114.2.1 硬件調試 PAGEREF _Toc23291771

16、1 h HYPERLINK l _Toc2329177124.2.2 軟件調試 PAGEREF _Toc232917712 h HYPERLINK l _Toc2329177134.2.3 綜合調試 PAGEREF _Toc232917713 h HYPERLINK l _Toc2329177145 結論 PAGEREF _Toc232917714 h HYPERLINK l _Toc232917715參考文獻 PAGEREF _Toc232917715 h HYPERLINK l _Toc232917716致 PAGEREF _Toc232917716 h -. z前 言隨著人們生活水平的提

17、高,家庭中的時鐘也在悄悄地發(fā)生變化。早期的機械式小型時鐘大局部被現代的電子時鐘所代替。大大小小的時鐘在人們的生活中發(fā)揮著重要的作用。在清朝的時候,出現了第一批時鐘,是從外國引進的。它是一種掛在脖子上的懷表,表盤是圓形,帶一個蓋子,翻開它就可以看時間。表盤上有一個環(huán),環(huán)中有一條鏈子,就是通過它掛在脖子上,而且表的樣式也只有這一種。盡管這樣,也是只有皇親國戚、鄉(xiāng)紳官吏和留過洋的人才能擁有??梢哉f在那時它可是一個罕見的寶貝,所以,它的價值可想而知,普通人是很難擁有的。那時的老百姓只有靠看日頭來估算時間。接著,我們不斷的從外國引進他們先進的技術,所以,時鐘的生產和樣式也有了許多的提高,市場上涌現了許多

18、各式各樣的時鐘。這些時鐘,不僅質量和款式不同,還有了各種品牌。從質量上分,有機械的,石英的等等。從款式上分,有男式的和女式的。不過有一點一樣,它們大多是帶在手腕上的。與清朝時比,已經有了很大的進步。慢慢地,隨著科學的進步,技術水平的提高,到現在,時鐘可以說是樣式繁多,款式新穎。不提它的質量,僅僅它的款式就可以讓消費者眼花繚亂,難以選擇?,F在的時鐘,不僅分男女樣式,還出現了情侶表。生產者還為盲人著想,專門生產了盲人使用的手表。為了追求時尚,還出現了還出現了許多項鏈式的手表、手鏈式的手表、戒指式的手表等等。為了家居擺設,出現了立式的和掛式的等。還有,就是為了提醒我們不忘記*些事,而生產了鬧鐘等。將

19、來隨著時鐘的開展,它將給人們帶來更大的方便。隨著科學技術的飛速開展,單片機以其卓越的性能,在各個領域中得到了廣泛的應用。一方面向著高速、智能化的巨型機方向開展,另一方面向著嵌入式微型機的方向開展。其中,單片機其性能和容量不斷提高,而價格不斷下降的趨勢,使其在社會各個領域仍至家庭生活中發(fā)揮著越來越大的作用?,F如今在電子系統非常廣泛的應用領域,為使人們用最方便快捷的方式享受生活,設計人員能在更小的空間實現更多功能,從而提高系統可靠性和速度。如銀行公交車酒店等公共場所到處可見的電子萬年歷。讓人們對生活方有了一個更便捷更舒適的感覺,本文為對這種萬年歷設計的介紹和說明。1 方案選擇1.1 整機設計方案選

20、擇本文主要講述的是電子萬年歷的設計與實現,此設計實現主要有兩種方案:一是由數字電路來實現;二是由單片機編程控制來實現。選用數字電路雖然硬件連接簡單不需要軟件編程,但因為數字電路實現必須要有移位存放器對字符數據進展存儲,然后串行輸入到顯示數碼管上,不但如此,而且需要很大一局部的擴展電路才能實現,且設計出的電路的靈活性差、不易調試、本錢高等缺點,所以不選用此方案。此次設計是基于單片機來實現的。由于單片機具有體積小、重量輕、價格廉價、功耗低、控制功能強及運算速度快等特點,因而在國民經濟建立、軍事及家用電器等諸多領域起到了舉足輕重的作用。編程語言采用C語言,由此設計出的電子萬年歷具有操作靈活便攜等諸多

21、優(yōu)點。1.2 單片機芯片的選擇方案一:采用89C51芯片作為硬件核心,采用Flash ROM,部具有4KB ROM 存儲空間,能于3V的超低壓工作,而且與MCS-51系列單片機完全兼容,但是運用于電路設計中時由于不具備ISP在線編程技術, 當在對電路進展調試時,由于程序的錯誤修改或對程序的新增功能需要燒入程序時,對芯片的屢次拔插會對芯片造成一定的損壞。方案二:采用89S51芯片作為硬件核,AT89S51 是一個低功耗,高性能CMOS 8位單片機,片含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的

22、高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及80C51引腳構造,芯片集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統提供高性價比的解決方案,再者因為AT89S51為當今市場上主流產品,其價格也比擬低廉,所以選擇此方案。1.3 時鐘芯片的選擇方案一:直接采用單片機定時計數器提供秒信號,使用程序實現年、月、日、星期、時、分、秒計數。采用此種方案雖然減少芯片的使用,節(jié)約本錢,但是,實現的時間誤差較大。所以不采用此方案。方案二:采用DS12887時鐘芯片實現時鐘,DS12887芯片是一種高性能的時鐘芯片,可自動對秒、分

23、、時、日、周、月、年以及閏年補償的年進展計數,而且精度高,位的RAM做為數據暫存區(qū),另外其在沒有外部電源的情況下可工作10年自帶晶體震蕩器及電池。其可以計算到2100年前的秒、分、小時、星期、日期、月、年七種日歷信息。1.4溫度傳感器的選擇方案一:采用AD590為溫度傳感器,AD590雖然有價格低、精度高等優(yōu)點,但是它還需要外圍的模擬轉數字電路,其測溫點數量也較少,用起來占空間大也比擬麻煩。方案二:采用DS18B20測溫,DS18B20采用單線接口方式,與微處理器連接時僅需要一條線即可實現雙向通訊;其適應電壓圍更寬;支持多點組網測溫;在使用中不需任何外圍元件,全部傳感元件及轉換電路都集成在一只

24、如三極管的集成電路;價格也較低;DS18B20缺點是測溫圍比擬小,圍為-55度到+125度,但是用在本設計也 足夠了,所以采用此方案。2硬件設計2.1電路組成框圖該電路主要由時鐘芯片、CPUAT89S51、鍵盤、驅動電路、溫度采集、顯示電路組成。其中鍵盤調整可以對顯示的容進展切換及對時間進展調整??驁D如圖2-1所示:CPU89S51時鐘芯片DS12887顯示電路段驅動驅動電路溫度傳感器鍵盤調整位驅動圖2-1 電子萬年歷方框圖2.2系統硬件概述及整機工作原理此設計CPU采用低功耗,高性能CMOS 8位單片機AT89S51;時鐘芯片用的是美國達接斯半導體公司Dallas推出的串行接口實時時鐘芯片D

25、S12887,采用CMOS技術制成,具有部晶振和時鐘芯片備份鋰電池;驅動電路用的是ULN2003芯片;LED顯示局部用的是四個共陰型數碼管,顯示采用動態(tài)掃描并行輸出方式。鍵盤有三個分別為位調整鍵,加調整鍵,減調整鍵。整機工作原理是先初始化DS12887時鐘芯片接著CPU從時鐘芯片讀取時間及日期信息又從溫度傳感器采集溫度送驅動電路進而送LED顯示,其中鍵盤調整可以對時間進展調整,對時間進展調整時其更改值寫入DS12887,再允許DS12887時間更新并讀出時間送顯示,溫度值和時間輪流交替顯示在數碼管上。電路圖如圖2-2所示。圖2-2 整機電路圖2.3各芯片介紹2.3.1AT89S51單片機AT8

26、9S51是一個低功耗,,高性能CMOS 8位單片機,片含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及80C51引腳構造,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統提供高性價比的解決方案。其引腳排列如2-3所示。圖2-3 AT89S51引腳圖AT89S51具有如下特點:40個引腳,128 bytes的隨機存取數據存儲器RAM,32個外部雙向輸入/輸出I/O口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數器

27、,2個全雙工串行通信口,片時鐘振蕩器。此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數器,串行口,外中斷系統可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數據,停頓芯片其它功能直至外中斷激活或硬件復位。管腳說明:40個引腳按其功能來分,可分為三個局部:電源及時鐘引腳 控制引腳 I/O口引腳1電源及時鐘引腳 電源引腳接入單片機的工作電源。 VCC(40)引腳:接+5V電源。 VSS(20)引腳:接地。 兩個時鐘引腳*TAL0、*TAL1為單片機提供了時鐘控制信號。*TAL018腳:接外部晶體的一個引腳。*TAL119腳:接外部

28、晶體的另一端。2控制引腳RST是復位信號的輸入端,高電平有效。當單片機正常工作時,在此引腳加上持續(xù)時間大于兩個機器周期24個時鐘振蕩周期的高電平時,就可完成復位操作。在單片機正常工作時,復位端應小于或等于0.5V的低電平。PSEN29腳程序存儲器允許輸出控制端。在單片機外部程序存儲器時,此引腳輸出脈沖負跳沿作為外部程序存儲器的選通信號。ALE30腳ALE為地址鎖存允許信號,當單片機上電正常工作后,ALE引腳不斷輸出正脈沖信號。當單片機外部存儲器時,ALE輸出信號的負跳沿用作單片機發(fā)出的低8位地址的鎖存控制信號。即使不外部鎖存器,ALE端仍有正脈沖信號輸出,頻率為時鐘振蕩頻率fOSC的1/6。E

29、A31腳功能為/外程序存儲器選擇控制端。當EA腳為高電平時,單片機片程序存儲器,當EA腳為低電平時,單片機則只外部程序存儲器。所以此次設計,須把單片機的31腳接到高電平。3I/O引腳P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0具有部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1 口:P1 口是一個具有部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅動

30、4 個TTL 邏輯電平。對P1 端口寫“1”時,部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于部電阻的原因,將輸出電流IIL。此外,P1.0和P1.2分別作定時器/計數器2的外部計數輸入。在flash編程和校驗時,P1口接收低8位地址字節(jié)。P1 口引腳號的第二功能如表2-1所示。表2-1 P1口引腳的第二功能P1.0T2定時器/計數器T2的外部計數輸入,時鐘輸出P1.1T2E*定時器/計數器T2的捕捉/重載觸發(fā)信號和方向控制P1.5MOSI在系統編程用P1.6MISO在系統編程用P1.7SCK在系統編程用P2 口:P2 口是一個具有部上拉電阻的8 位雙向I/

31、O 口,P2 輸出緩沖器能驅動4 個TTL 邏輯電平。對P2 端口寫“1”時,部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于部電阻的原因,將輸出電流IIL。在外部程序存儲器或用16位地址讀取外部數據存儲器例如執(zhí)行MOV* DPTR時,P2 口送出高八位地址。在這種應用中,P2 口使用很強的部上拉發(fā)送1。在使用8位地址如MOV* RI外部數據存儲器時,P2口輸出P2鎖存器的容在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3 口:P3 口是一個具有部上拉電阻的8 位雙向I/O 口,對P3 端口寫“1”時,部上拉電阻把端口拉高,此時可以作為

32、輸入口使用。作為輸入使用時,被外部拉低的引腳由于部電阻的原因,將輸出電流IIL。P3口亦作為AT89S52特殊功能第二功能使用,在flash編程和校驗時,P3口也接收一些控制信號。P3 口引腳號的第二功能如表2-2所示。表2-2 P3 口引腳號的第二功能P3.0R*D串行輸入P3.1T*D串行輸出P3.2INT0(外部中斷0)P3.3INT1(外部中斷1)P3.4T0定時器0外部輸入P3.5T1定時器1外部輸入P3.6WR(外部數據存儲器寫選通)P3.7RD(外部數據存儲器寫選通) DS12887時鐘芯片圖2-4 DS12887引腳圖DS12887是美國達接斯半導體公司Dallas最新推出的串

33、行接口實時時鐘芯片,采用CMOS技術制成,具有部晶振和時鐘芯片備份鋰電池,同時它與目前IBM AT計算機常用的時鐘芯片MC146818B和DS1287管腳兼容,可直接替換。DS12887芯片具有微功耗,外圍接口簡單,精度高,工作穩(wěn)定可靠等優(yōu)點,可廣泛用于各種需要較高精度的實時時鐘系統中。.1DS12887主要功能簡介1含一個鋰電池,斷電后運行十年以上不喪失數據。2計秒,分,時,天,星期,日,月,年,并有閏年補嘗功能。3二進制數碼或BCD碼表示時間,日歷和定鬧。412小時或24小時制,12小時時鐘模式帶有PM和AM指示,有夏令時功能。5Motorola和Intel總線時序選擇。6有128個字節(jié)R

34、AM單元與軟件接口,其中14個字節(jié)作為時鐘和控制存放器,114字節(jié)為通用RAM,所有RAM單元數據都具有掉電保護功能。7可編程方波信號輸出。8中斷信號輸出IRQ和總線兼容,定鬧中斷,周期性中斷、時鐘更新周期完畢中斷可分別由軟件屏蔽,也可分別進展測試。.2DS12887引腳說明DS12887部由振蕩電路,分頻電路,周期中斷/方波選擇電路,14字節(jié)時鐘和控制單元,114字節(jié)用戶非易失RAM,十進制/二進制累加器,總線接口電路,電源開關寫保護單元和部鋰電池等局部組成。上電/掉電:當VCC高于4.25V 200ms后,芯片可以被外部程序操作;當VCC低于4.25V時,芯片 處于寫保護狀態(tài)所有的輸入均無

35、效,同時所有輸出呈高阻狀態(tài);當VCC低于3V時,芯片將自動把供電方式切換為由部電池供電。Vcc:直流電源+5V電壓。當5V電壓在正常圍時,數據可讀寫;當Vcc低于4.25V,讀寫被制止,計時功能仍繼續(xù);當Vcc下降到3V以下時,RAM和計時器供電被切換到部鋰電池。MOT模式選擇:MOT引腳接到Vcc時,選擇MOTOROLA時序,當接到GND時,選擇Intel時序。SQW方波信號輸出:SQW引腳能從實時鐘部15級分頻器的13個抽頭中選擇一個作為輸出信號,其輸出頻率可通過對存放器A編程改變。AD0-AD7雙向地址/數據復用線:總線接口,可與Motorola微機系列和Intel微機系列接口。AS地址

36、選通輸入:用于實現信號別離,在AD/ALE的下降沿把地址鎖入DS12887。DS數據選通或讀輸入:DS/RD引腳有兩種操作模式,取決于MOT引腳的電平,當使用Motorola時序時,DS是一正脈沖,出現在總線周期的后段,稱為數據選通;在讀周期,DS指示DS12887驅動雙向總線的時刻;在寫周期,DS的后沿使DS12887鎖存寫數據。選擇Intel時序時,DS稱作RD,RD與典型存貯器的允許信號OE的定義一樣。R/W 讀/寫輸入:R/W引腳也有兩種操作模式。選Motorola時序時,R/W是低電平信號時,指示當前周期是讀或寫周期,DS為高電平時,R/W高電平指示讀周期,R/W信號一低電平信號,稱

37、為WR。在此模式下,R/W引腳與通用RAM的寫允許信號WE的含義一樣。CS片選輸入:在DS12887的總線周期,片選信號必須保持為低。IRQ中斷申請輸入:低電平有效,可作微處理的中斷輸入。沒有中斷的條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上接電阻。RESET復位輸出:當該腳保持低電平時間大于200ms,保證DS12887有效復位。另外DS12887的地址由114字節(jié)的用戶RAM存放。10字節(jié)的存放實時時鐘時間,日歷和定鬧RAM及用于控制和狀態(tài)的4字節(jié)特殊存放器組成,幾乎所有的128個字節(jié)直接讀寫。RTC 實時時鐘加RAM向處理器提供三個獨立的,自動的中斷源。定鬧中斷的發(fā)生

38、率可編程,從每秒一次到每天一次,周期性中斷的發(fā)生率可從500ms到122s選擇。更新完畢中斷用于向程序指示一個更新周期完成。中斷控制和狀態(tài)位在存放器B和C中。.3時間,日歷和定鬧單元時間和日歷信息通過讀相應的存字節(jié)來獲取,時間,日歷和定鬧通過寫相應的存字節(jié)設置或初始化,其字節(jié)容可以是二進制或BCD形式。時間可選擇12小時制或24小時制,中選擇12小時制時,小時字節(jié)的高門為邏輯“1代表PM。時間,日歷和定鬧字節(jié)是雙緩沖的,總是可的。每秒鐘這10個字節(jié)走時1 秒,檢查一次定鬧條件,如在更新時,讀時間和日歷可能引起錯誤,三個字節(jié)的定鬧字節(jié)有兩種使用方法。第一種,當定鬧時間寫入相應時,分,秒,定鬧單元

39、,在定允許鬧位置高的條件下,定鬧中斷每天準時起動一次。第二種,在三個定鬧字節(jié)中插入一個或多個不關心碼。不關心碼是任意從O0到FF的16進制數。當小時字節(jié)的不關心碼位置位時,定鬧每小時發(fā)生一次;同樣,當小時和分鐘定鬧字節(jié)置不關心位時,每分鐘定鬧一次;當三個字節(jié)都置不關心位時,每秒中斷一次。.4DS12887的控制存放器DS12887有四個控制存放器,他們可以在任何時候讀寫。1存放器0AH表2-3 存放器0AH中的位BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0UIPDV2DV1DV0RS3RS2RS1RS0UIP:更新周期進展標志位,UIP = 1時,芯片正處于或將開場新周期,

40、此期間不允許讀寫時標存放器。DV2DV0:為010時晶振工作,其他組合時晶振停頓。 RS3RS0:中斷周期時間和SQW輸出頻率選擇位。2存放器0BH表2-4 存放器0BH中的位BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SETPIEALEUIESQWEDM24/12DSESET:為1時制止更新。為0時正常。 PIE:為1時周期中斷允許。AIE:為1時警報中斷允許。UIE:為1時更新完畢中斷允許。SQWE:為1時方波輸出允許。DM:為0時時間為BCD碼,為1時為二進制。24/12:為1時是24小時進制。為0時是12小時進制。DSE:置0。3存放器0CH表2-5存放器0CH中的

41、位BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0IRQFPFAFUF0000IRQF:中斷申請標志。PF:周期中斷標志。AF:警報中斷標志。UF:更新完畢中斷標志。4存放器0DH表2-6存放器0DH中的位BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0VRT0000000VRT:為0時表示部鋰電池耗盡。DS18B20溫度傳感器DS18B20的主要特性1適應電壓圍更寬,電壓圍:3.05.5V,在寄生電源方式下可由數據線供電。2獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊。3DS18B20支持多點組網

42、功能,多個DS18B20可以并聯在唯一的三線上,實現組網多點測溫。4DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉換電路集成在形如一只三極管的集成電路。5溫圍55125,在-10+85時精度為0.5。6可編程的分辨率為912位,對應的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現高精度測溫。7在9位分辨率時最多在93.75ms把溫度轉換為數字,12位分辨率時最多在750ms把溫度值轉換為數字,速度更快。8測量結果直接輸出數字溫度信號,以一線總線串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力。9負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但

43、不能正常工作。其引腳圖和功能表如圖2-5所示。圖2-5 DS18B20引腳圖及功能2.4 數碼管顯示電路設計顯示模塊的選擇與方案論證1采用LED液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字、圖形、顯示多樣,清晰可見,但是價格昂貴,需要的接口線多,所以在此設計中不采用LED液晶顯示屏。2采用點陣式數碼管顯示,點陣式數碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比擬適合,如采用在顯示數字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。3采用LED數碼管動態(tài)掃描,LED數碼管價格適中,對于顯示數字最適宜,而且采用動態(tài)掃描法與單片機連接時,占用的單片機口線少。所以采用LED數碼管作為顯

44、示。LED顯示器工作原理在4位LED顯示器中段選線控制顯示字符的的字型,而位選線為各個LED顯示塊的公共端,它控制該LED顯位的亮、暗。LED顯示器有靜態(tài)顯示和動態(tài)顯示兩種顯示方式。1LED靜態(tài)顯示方式顯示器工作于靜態(tài)顯示方式時,各個的共陰極或共陽極連接在一起并接地或+5V;每位的短選線a-dp分別與一個8位的鎖存器輸出相連。所以稱為靜態(tài)顯示。各個LED的顯示字符一經確定,相應鎖存器的輸出將維持不變,直到顯示另一個字符為止。也正因為如此,靜態(tài)顯示器的亮度都比擬高。這種顯示方式接口編程容易,付出的代價是占用口線較多。假設要用I/O口接口,則要占用4個8位I/O口,假設要用鎖存器如74LS373接

45、口,則要用4片74LS373芯片。如果顯示位數增多,則靜態(tài)顯示方式更是無法適應。因此在顯示位數較多的情況下,一般采用動態(tài)顯示方式。2LED動態(tài)顯示方式在多位LED顯示時,為了簡化硬件電路,通常將所有位的段選線相應地并聯在一起,由一個8位I/O口控制,形成段選線的多路復用。而各位的共陽極或共陰極分別由相應的I/O線控制,實現各位的分時選通。在動態(tài)顯示方式中假設要各位LED能夠顯示出與本位相應的顯示字符,就必須采用掃描顯示方式,即在*一時刻,只讓*一位的位選線處選通狀態(tài),而其他各位的位選線處于關閉狀態(tài),同時,段選線上輸出相應位要顯示字符的段碼。這樣同一時刻,4位LED中只有那一位顯示出字符,而其他

46、三位則是熄滅的。同樣,在下一時刻,只讓下一位的位選線處于選通狀態(tài),而其他各位的位選線處于關閉狀態(tài),同時,在段選線上輸出相應位將要顯示字符段碼,則同一時刻,只有選通位顯示出相應的字符,而其他各位則是熄滅的。如循環(huán)下去,就可以使各位顯示出將要顯示的字符,雖然這些字符是在不同時刻出現的,而且同一時刻,只有一位顯示,其他各位熄滅,但由于LED顯示器的余輝和人眼的視覺暫留作用,只要每位顯示間隔足夠短,則可造成多位同時亮的假象,到達同時顯示的目的。如何確定LED不同位顯示的時間間隔,例如對8位LED顯示器,假假設顯示一位保持1ms時間,則顯示完所有8位只后,只需8ms。上述保持1ms的時間是根據實際情況而

47、定。不能太短,因為發(fā)光二極管從導通到發(fā)光有一定的延時,導通時間太短,發(fā)光太弱人眼無法看清。但也不能太長,因為畢竟要受限于臨界閃爍頻率,而且此時間越長,占用CPU時間也越多。另外,顯示位越多,也將占用大量的CPU時間,因此動態(tài)顯示實質是以犧牲CPU時間來換取元件的減少。此設計顯示電路采用的就是動態(tài)顯示即一位一位地輪流點亮顯示器的各個位掃描,對于顯示器的每一位來說,每隔一段時間點亮一次。利用人的視覺暫留效應可以看到整個顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導通電流有關,也與點亮時間和間隔時間的比例有關。調整電流和時間參數,可實現亮度較高較穩(wěn)定的顯示。因為本顯示的位數不大于8

48、位,所以控制顯示器公共極只需一個I/O口掃描口,控制顯示器的各位所顯示的字型也需一個8位口段數據口。本設計顯示局部電路連接如圖2-6所示。圖2-6 數碼管顯示局部電路圖3 系統軟件設計3.1系統功能模塊及主程序流程圖軟件編程思路:先DS12887初始化接著從其讀取當前時間供參考,然后掃描鍵盤以取得輸入的更改值,接下來將更改值寫入DS12887,允許DS12887時間更新并讀出時間以顯示,把顯示程序放在定時中斷掃描,主程序先讀出DS12887小時、分鐘、秒的值再送顯示,然后加延時再讀DS18B20所測溫度值再送顯示。系統功能模塊主要有:1初始化程序2對DS12887的讀寫程序3顯示子程序4時間調

49、子整程序5溫度與時間顯示切換程序主程序流程如圖3-1所示。開場初始化設置初始時間日期屏幕切換讀DS12887驅動電路送顯示讀DS18B20延時YN圖3-1 主程序流程圖3.2 DS12887初始化程序設計因為使用了時鐘芯片DS12887,只需從DS12887各存放器中讀出年、月、日、周、小時、分、秒等數據,再處理即可。在首次對DS12887進展操作之前,必須對它進展初始化,然后從DS12887中讀出數據,再經過處理后,送給顯示緩沖單元。程序如下:csh()*BYTE0*7f0b=0*a6;*BYTE0*7f00=0*00;*BYTE0*7f02=0*00;*BYTE0*7f04=0*00;*B

50、YTE0*7f0b=0*26;i=*BYTE0*7f0a=0*20;i=*BYTE0*7f0d;i=*BYTE0*7f0c;3.3顯示子程序設計主要是開啟中斷,選擇定時器工作方式及給定時器上下字節(jié)送初值,最后使DS12887開場工作并通過給DS12887的控制存放器寫相應命令使其制止DS12887芯片更新,此時時鐘、日歷、和鬧鐘信息可以通過讀寫相應的字節(jié)獲得和設置,接著開啟DS12887的晶體振蕩器并且保持時鐘運行,設置DS12887的SQW輸出為方波,時鐘運行周期為24時制等這些都完成系統上電后就可以從DS12887讀取時間信息送進而顯示電路顯示了。程序如下:void time0() int

51、errupt 1/定時器掃描顯示 q+; TH0=0*ea; TL0=0*ea;if(q=1) P1=tabcc; P2=0*de;if(q=2) P1=tabdd; P2=0*ee;if(q=3) P1=tabee; P2=0*f6;if(q=4) P1=tabff; P2=0*fa; q=0; c=*BYTE0*7e00; P30=c0;3.4 時間調整程序設計時間調整是由三個按鍵組成的,它是最簡單的單片機輸入設備,通過按鍵輸入或調整數據,實現簡單的人機對話.時間調整的三個按鍵分別接在CPU的P3.2,P3.4,P3.5三個口。三個按鍵的功能分別為:P32為選位鍵,按下時進展調時選位功能,

52、被選中的那個數碼管就閃爍準備調時;選中一位后按下P3.4對該位進展加操作,按下P3.5對該位進展減操作,流程圖如圖3-2所示。選位鍵按下執(zhí)行主循環(huán)程序加1鍵有效減1鍵有效加1減1送顯示電路顯示送時鐘芯片送顯示電路顯示NY送驅動電路送驅動電路位選擇操作有效圖3-2 時間整程序框圖程序如下:if(P32=0)delay1(500);while(!P32);delay1(20);while(P32)cc=10; delay1(500); cc=j; delay1(500);if(P34=0)while(!P34);j+;if(j=10)j=0;d=j+(10*i); else if(P35=0)wh

53、ile(!P35);if(j=0)j=10;j-;d=j+(10*i);*BYTE0*7e02=d;*BYTE0*7e04=e;while(!P32)delay1(500);while(!P32);delay1(20);while(P32)dd=10; delay1(500); dd=i; delay1(500);if(P34=0)while(!P34);i+;if(i=6)i=0;d=j+(10*i); else if(P35=0)while(!P35);if(i=0)i=6;i-;d=j+(10*i);*BYTE0*7e02=d;*BYTE0*7e04=e;while(!P32)delay

54、1(500);while(!P32);delay1(20);while(P32)ee=10; delay1(500); ee=m; delay1(500);if(P34=0)while(!P34);m+;if(m=10)m=0;e=m+(10*n); else if(P35=0)while(!P35);if(m=0)m=10;m-;e=m+(10*n);*BYTE0*7e02=d;*BYTE0*7e04=e;while(!P32)delay1(500);while(!P32);delay1(20);while(P32)ff=10; delay1(500); ff=n; delay1(500);

55、if(P34=0)while(!P34);n+;if(n=3)n=0;e=m+(10*n); else if(P35=0)while(!P35);if(n=0)n=3;n-;e=m+(10*n);*BYTE0*7e02=d; *BYTE0*7e04=e;delay1(2000); 3.5溫度采集程序設計DS18B20的初始化1先將數據線置高電平“1”。2延時該時間要求的不是很嚴格,但是盡可能的短一點。3數據線拉到低電平“0”。4延時750微秒該時間的時間圍可以從480到960微秒。5數據線拉到高電平“1”。6延時等待如果初始化成功則在15到60毫秒時間之產生一個由DS18B20所返回的低電平“

56、0”。據該狀態(tài)可以來確定它的存在,但是應注意不能無限的進展等待,不然會使程序進入死循環(huán),所以要進展超時控制。7假設CPU讀到了數據線上的低電平“0”后,還要做延時,其延時的時間從發(fā)出的高電平算起第5步的時間算起最少要480微秒。8將數據線再次拉高到高電平“1”后完畢。DS18B20的寫操作1數據線先置低電平“0”。2延時確定的時間為15微秒。3按從低位到高位的順序發(fā)送字節(jié)一次只發(fā)送一位。4延時時間為45微秒。5將數據線拉到高電平。6重復上1到6的操作直到所有的字節(jié)全部發(fā)送完為止。7最后將數據線拉高。DS18B20的讀操作1將數據線拉高“1”。2延時2微秒。3將數據線拉低“0”。4延時15微秒。

57、5將數據線拉高“1”。6延時15微秒。7讀數據線的狀態(tài)得到1個狀態(tài)位,并進展數據處理。8延時30微秒。程序如下:sbit TMDAT=P27;dmsec(unsigned int count) /1ms delayunsigned int i;while(count-)for(i=0;i0) i-; /900vs TMDAT=1; i=4;while(i0) i-;void tmpre (void) /復位完畢unsigned int i;while(TMDAT);while(TMDAT);i=4;while(i0)i-;bit tmrbit() /讀一位數據的子程序unsigned int

58、i;bit dat;TMDAT=0;i+;TMDAT=1;i+;i+;dat=TMDAT;i=8;while(i0)i-;return(dat);unsigned char tmrbyte(void)/讀一字節(jié)子程序unsigned char i,j,dat; dat=0;for(i=1;i=8;i+)j=tmrbit(); dat=(j1) ;return(dat);void tmwbyte(unsigned char dat)unsigned int i; unsigned char j; bit testb;for(j=1;j1;if(testb)TMDAT=0;i+;i+;TMDAT=

59、1;i=8;while(i0)i-;else TMDAT=0;i=8;while(i0)i-; TMDAT=1;i+;i+; void tmstart1(void)tmreset();tmpre();dmsec(1);tmwbyte(0*cc);tmwbyte(0*4E);tmrtemp()unsigned char Y1;tmreset();tmpre();tmwbyte(0*cc);tmwbyte(0*44);tmreset();tmpre();dmsec(1);tmwbyte(0*cc);tmwbyte(0*be);P0=tmrbyte();P1=tmrbyte();tmrbyte();

60、3.6溫度值與時間的顯示顯示局部是由四個數碼管來完成的,但是要想顯示小時和分鐘就占用了四個數碼管,就沒有剩余的數碼管來顯示溫度和秒,秒的顯示由兩個發(fā)光二極管來實現,每走一秒閃爍一次;在現有四個數碼管的根底上溫度的顯示只能靠與小時和分鐘的顯示交替顯示來實現。程序如下:void main()unsigned char c;EA=1; /翻開中斷允許ET0=1;TR0=1;TMOD=0*01;TH0=0*aa; TL0=0*aa;while(1) c=*BYTE0*7E00;d=*BYTE0*7E02;e=*BYTE0*7E04; /讀取DS12887 j=d%10; i=d/10; m=e%10;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論