版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢 業(yè) 論 文</p><p> 車載可測(cè)溫式電子萬(wàn)年歷</p><p> 姓 名 XX </p><p> 學(xué) 號(hào) </p><p> 年 級(jí) </p><p> 專
2、業(yè) 電子信息工程管理 </p><p> 系 (院) 國(guó)防信息學(xué)院 </p><p> 指導(dǎo)教師 </p><p> 2012年10月25日</p><p> China's National Defense University Of
3、Science And Technology</p><p> Information Institute Of National Defense</p><p> Thesis topic: The Vehicle Carries Temperature Measurement Type Electron Ten Thousand Calendars</p><p
4、> Student name: </p><p> Tutor name: </p><p> Specialty:Electronic Information Engineering Managemen</p><p> 車載可測(cè)溫式電子
5、萬(wàn)年歷</p><p><b> 摘 要</b></p><p> 隨著電子技術(shù)的迅速發(fā)展,特別是隨著大規(guī)模集成電路的出現(xiàn),給人類生活帶來(lái)了根本性的改變。尤其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬(wàn)戶,如電子萬(wàn)年歷的出現(xiàn)給人們的生活帶來(lái)了諸多方便。</p><p> 本文描述了系統(tǒng)硬件工作原理,并附以系統(tǒng)結(jié)構(gòu)框圖加以說(shuō)明,著重介紹了本系統(tǒng)
6、所應(yīng)用的各硬件及其接口技術(shù)和各硬件模塊的功能及工作過(guò)程;其次,詳細(xì)闡述了程序的各個(gè)模塊和實(shí)現(xiàn)過(guò)程。本設(shè)計(jì)以數(shù)字集成電路技術(shù)為基礎(chǔ),單片機(jī)技術(shù)為核心。編寫的主導(dǎo)思想軟硬件相結(jié)合,以硬件為基礎(chǔ),來(lái)進(jìn)行各功能模塊的編寫。</p><p> 本系統(tǒng)為了便于擴(kuò)展和更改,軟件的設(shè)計(jì)采用模塊化結(jié)構(gòu),使程序設(shè)計(jì)的邏輯關(guān)系更加簡(jiǎn)潔明了。系統(tǒng)通過(guò)傳感器采集溫度。用四個(gè)數(shù)碼管顯示數(shù)據(jù),可以顯示時(shí)間和溫度,也可以通過(guò)按鍵調(diào)整時(shí)間。&l
7、t;/p><p> 關(guān)鍵詞:電子萬(wàn)年歷;單片機(jī);時(shí)鐘芯片;溫度傳感器;數(shù)碼管顯示</p><p> The Vehicle Carries Temperature Measurement Type Electron Ten Thousand Calendars</p><p><b> Abstract</b></p><
8、;p> Along with electronic technology's rapidly expand, specially along with large scale integrated circuit's appearance, lived for the humanity has brought the fundamental change. Especially the monolithic in
9、tegrated circuit technology's application product already entered everyone, if the electronic ten thousand calendar's appearances have brought conveniently many for people's life.</p><p> This a
10、rticle described the system hardware principle of work, and attaches by the system structure diagram explained that introduced emphatically this system applies various hardware and connection technology and various hardw
11、are module function and work process; Next, elaborated in detail procedure each module and realizes the process. This design take the digital integrated circuit technology as the foundation, the monolithic integrated cir
12、cuit technology is a core. The compilation guiding ide</p><p> This system for ease of the expansion and the change, software's design uses the modular structure, causes the programming the logical rela
13、tion even more simple and brief. System through two group of nixietube demonstration data. May the tell time and the week, after pressing down cuts the key, may the show date.</p><p> Key word:Electronic te
14、n thousand calendars; Monolithic integrated circuit; Clock chip; Temperature sensor ;Nixietube demonstration</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p&
15、gt; AbstractII</p><p><b> 前 言1</b></p><p><b> 1 方案選擇2</b></p><p> 1.1 整機(jī)設(shè)計(jì)方案選擇2</p><p> 1.2 單片機(jī)芯片的選擇2</p><p> 1.3 時(shí)鐘芯片的
16、選擇2</p><p> 1.4 溫度傳感器的選擇3</p><p><b> 2 硬件設(shè)計(jì)4</b></p><p> 2.1 電路組成框圖4</p><p> 2.2 系統(tǒng)硬件概述及整機(jī)工作原理4</p><p> 2.3 各芯片介紹6</p><p&
17、gt; 2.3.1 AT89S51單片機(jī)6</p><p> 2.3.2 DS12887時(shí)鐘芯片8</p><p> 2.3.2.1 DS12887主要功能簡(jiǎn)介9</p><p> 2.3.2.2 DS12887引腳說(shuō)明9</p><p> 2.3.2.3 時(shí)間,日歷和定鬧單元10</p><p>
18、 2.3.2.4 DS12887的控制寄存器11</p><p> 2.3.3 DS18B20溫度傳感器12</p><p> 2.4 數(shù)碼管顯示電路設(shè)計(jì)13</p><p> 2.4.1 顯示模塊的選擇與方案論證13</p><p> 2.4.2 LED顯示器工作原理13</p><p> 3
19、系統(tǒng)軟件設(shè)計(jì)15</p><p> 3.1 系統(tǒng)功能模塊及主程序流程圖15</p><p> 3.2 DS12887初始化程序設(shè)計(jì)16</p><p> 3.3 顯示子程序設(shè)計(jì)16</p><p> 3.4 時(shí)間調(diào)整程序設(shè)計(jì)17</p><p> 3.5 溫度采集程序設(shè)計(jì)22</p>
20、<p> 3.5.1 DS18B20的初始化22</p><p> 3.5.2 DS18B20的寫操作22</p><p> 3.5.3 DS18B20的讀操作22</p><p> 3.6 溫度值與時(shí)間的顯示25</p><p> 4 電路安裝與調(diào)試27</p><p> 4.1
21、電路安裝27</p><p> 4.2 電路調(diào)試27</p><p> 4.2.1 硬件調(diào)試27</p><p> 4.2.2 軟件調(diào)試27</p><p> 4.2.3 綜合調(diào)試28</p><p><b> 5 結(jié) 論29</b></p><p>
22、 參 考 文 獻(xiàn)30</p><p><b> 致 謝31</b></p><p><b> 前 言</b></p><p> 隨著人們生活水平的提高,家庭中的時(shí)鐘也在悄悄地發(fā)生變化。早期的機(jī)械式小型時(shí)鐘大部分被現(xiàn)代的電子時(shí)鐘所代替。大大小小的時(shí)鐘在人們的生活中發(fā)揮著重要的作用。</p>&l
23、t;p> 在清朝的時(shí)候,出現(xiàn)了第一批時(shí)鐘,是從外國(guó)引進(jìn)的。它是一種掛在脖子上的懷表,表盤是圓形,帶一個(gè)蓋子,打開(kāi)它就可以看時(shí)間。表盤上有一個(gè)環(huán),環(huán)中有一條鏈子,就是通過(guò)它掛在脖子上,而且表的樣式也只有這一種。盡管這樣,也是只有皇親國(guó)戚、鄉(xiāng)紳官吏和留過(guò)洋的人才能擁有。可以說(shuō)在那時(shí)它可是一個(gè)罕見(jiàn)的寶貝,所以,它的價(jià)值可想而知,普通人是很難擁有的。那時(shí)的老百姓只有靠看日頭來(lái)估算時(shí)間。</p><p> 接著,
24、我們不斷的從外國(guó)引進(jìn)他們先進(jìn)的技術(shù),所以,時(shí)鐘的生產(chǎn)和樣式也有了許多的提高,市場(chǎng)上涌現(xiàn)了許多各式各樣的時(shí)鐘。這些時(shí)鐘,不僅質(zhì)量和款式不同,還有了各種品牌。從質(zhì)量上分,有機(jī)械的,石英的等等。從款式上分,有男式的和女式的。不過(guò)有一點(diǎn)相同,它們大多是帶在手腕上的。與清朝時(shí)比,已經(jīng)有了很大的進(jìn)步。</p><p> 慢慢地,隨著科學(xué)的進(jìn)步,技術(shù)水平的提高,到現(xiàn)在,時(shí)鐘可以說(shuō)是樣式繁多,款式新穎。不提它的質(zhì)量,僅僅它的款
25、式就可以讓消費(fèi)者眼花繚亂,難以選擇?,F(xiàn)在的時(shí)鐘,不僅分男女樣式,還出現(xiàn)了情侶表。生產(chǎn)者還為盲人著想,專門生產(chǎn)了盲人使用的手表。為了追求時(shí)尚,還出現(xiàn)了還出現(xiàn)了許多項(xiàng)鏈?zhǔn)降氖直?、手鏈?zhǔn)降氖直怼⒔渲甘降氖直淼鹊?。為了家居擺設(shè),出現(xiàn)了立式的和掛式的等。還有,就是為了提醒我們不忘記某些事,而生產(chǎn)了鬧鐘等。將來(lái)隨著時(shí)鐘的發(fā)展,它將給人們帶來(lái)更大的方便。</p><p> 隨著科學(xué)技術(shù)的飛速發(fā)展,單片機(jī)以其卓越的性能,在各個(gè)
26、領(lǐng)域中得到了廣泛的應(yīng)用。一方面向著高速、智能化的巨型機(jī)方向發(fā)展,另一方面向著嵌入式微型機(jī)的方向發(fā)展。其中,單片機(jī)其性能和容量不斷提高,而價(jià)格不斷下降的趨勢(shì),使其在社會(huì)各個(gè)領(lǐng)域仍至家庭生活中發(fā)揮著越來(lái)越大的作用。</p><p> 現(xiàn)如今在電子系統(tǒng)非常廣泛的應(yīng)用領(lǐng)域內(nèi),為使人們用最方便快捷的方式享受生活,設(shè)計(jì)人員能在更小的空間內(nèi)實(shí)現(xiàn)更多功能,從而提高系統(tǒng)可靠性和速度。如銀行﹑公交車﹑酒店等公共場(chǎng)所到處可見(jiàn)的電子萬(wàn)
27、年歷。讓人們對(duì)生活方有了一個(gè)更便捷﹑更舒適的感覺(jué),本文為對(duì)這種萬(wàn)年歷設(shè)計(jì)的介紹和說(shuō)明。</p><p><b> 1 方案選擇</b></p><p> 1.1 整機(jī)設(shè)計(jì)方案選擇</p><p> 本文主要講述的是電子萬(wàn)年歷的設(shè)計(jì)與實(shí)現(xiàn),此設(shè)計(jì)實(shí)現(xiàn)主要有兩種方案:一是由數(shù)字電路來(lái)實(shí)現(xiàn);二是由單片機(jī)編程控制來(lái)實(shí)現(xiàn)。選用數(shù)字電路雖然硬件連接簡(jiǎn)
28、單不需要軟件編程,但因?yàn)閿?shù)字電路實(shí)現(xiàn)必須要有移位寄存器對(duì)字符數(shù)據(jù)進(jìn)行存儲(chǔ),然后串行輸入到顯示數(shù)碼管上,不但如此,而且需要很大一部分的擴(kuò)展電路才能實(shí)現(xiàn),且設(shè)計(jì)出的電路的靈活性差、不易調(diào)試、成本高等缺點(diǎn),所以不選用此方案。</p><p> 此次設(shè)計(jì)是基于單片機(jī)來(lái)實(shí)現(xiàn)的。由于單片機(jī)具有體積小、重量輕、價(jià)格便宜、功耗低、控制功能強(qiáng)及運(yùn)算速度快等特點(diǎn),因而在國(guó)民經(jīng)濟(jì)建設(shè)、軍事及家用電器等諸多領(lǐng)域起到了舉足輕重的作用。編
29、程語(yǔ)言采用C語(yǔ)言,由此設(shè)計(jì)出的電子萬(wàn)年歷具有操作靈活便攜等諸多優(yōu)點(diǎn)。</p><p> 1.2 單片機(jī)芯片的選擇</p><p> 方案一:采用89C51芯片作為硬件核心,采用Flash ROM,內(nèi)部具有4KB ROM 存儲(chǔ)空間,能于3V的超低壓工作,而且與MCS-51系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計(jì)中時(shí)由于不具備ISP在線編程技術(shù), 當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)?/p>
30、程序的新增功能需要燒入程序時(shí),對(duì)芯片的多次拔插會(huì)對(duì)芯片造成一定的損壞。</p><p> 方案二:采用89S51芯片作為硬件核,AT89S51 是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)
31、構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案,再者因?yàn)锳T89S51為當(dāng)今市場(chǎng)上主流產(chǎn)品,其價(jià)格也比較低廉,所以選擇此方案。</p><p> 1.3 時(shí)鐘芯片的選擇</p><p> 方案一:直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種
32、方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。</p><p> 方案二:采用DS12887時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS12887芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),另外其在沒(méi)有外部電源的情況下可工作10年自帶晶體震蕩器及電池。其可以計(jì)算到2100年前的秒、分、小時(shí)、星期、日期、月、年七種日歷信息
33、。</p><p> 1.4 溫度傳感器的選擇</p><p> 方案一:采用AD590為溫度傳感器,AD590雖然有價(jià)格低、精度高等優(yōu)點(diǎn),但是它還需要外圍的模擬轉(zhuǎn)數(shù)字電路,其測(cè)溫點(diǎn)數(shù)量也較少,用起來(lái)占空間大也比較麻煩。</p><p> 方案二:采用DS18B20測(cè)溫,DS18B20采用單線接口方式,與微處理器連接時(shí)僅需要一條線即可實(shí)現(xiàn)雙向通訊;其適應(yīng)電壓范
34、圍更寬;支持多點(diǎn)組網(wǎng)測(cè)溫;在使用中不需任何外圍元件,全部傳感元件及轉(zhuǎn)換電路都集成在一只如三極管的集成電路內(nèi);價(jià)格也較低;DS18B20缺點(diǎn)是測(cè)溫范圍比較小,范圍為-55度到+125度,但是用在本設(shè)計(jì)也 足夠了,所以采用此方案。</p><p><b> 2 硬件設(shè)計(jì)</b></p><p> 2.1 電路組成框圖</p><p> 該電
35、路主要由時(shí)鐘芯片、CPU(AT89S51)、鍵盤、驅(qū)動(dòng)電路、溫度采集、顯示電路組成。其中鍵盤調(diào)整可以對(duì)顯示的內(nèi)容進(jìn)行切換及對(duì)時(shí)間進(jìn)行調(diào)整??驁D如圖2-1所示:</p><p> 圖2-1 電子萬(wàn)年歷方框圖</p><p> 2.2 系統(tǒng)硬件概述及整機(jī)工作原理</p><p> 此設(shè)計(jì)CPU采用低功耗,高性能CMOS 8位單片機(jī)AT89S51;時(shí)鐘芯片用的是美
36、國(guó)達(dá)接斯半導(dǎo)體公司(Dallas)推出的串行接口實(shí)時(shí)時(shí)鐘芯片DS12887,采用CMOS技術(shù)制成,具有內(nèi)部晶振和時(shí)鐘芯片備份鋰電池;驅(qū)動(dòng)電路用的是ULN2003芯片;LED顯示部分用的是四個(gè)共陰型數(shù)碼管,顯示采用動(dòng)態(tài)掃描并行輸出方式。鍵盤有三個(gè)分別為位調(diào)整鍵,加調(diào)整鍵,減調(diào)整鍵。整機(jī)工作原理是先初始化DS12887時(shí)鐘芯片接著CPU從時(shí)鐘芯片讀取時(shí)間及日期信息又從溫度傳感器采集溫度送驅(qū)動(dòng)電路進(jìn)而送LED顯示,其中鍵盤調(diào)整可以對(duì)時(shí)間進(jìn)行調(diào)
37、整,對(duì)時(shí)間進(jìn)行調(diào)整時(shí)其更改值寫入DS12887,再允許DS12887時(shí)間更新并讀出時(shí)間送顯示,溫度值和時(shí)間輪流交替顯示在數(shù)碼管上。電路圖如圖2-2所示。</p><p> 圖2-2 整機(jī)電路圖</p><p><b> 2.3 各芯片介紹</b></p><p> 2.3.1 AT89S51單片機(jī)</p><p>
38、; AT89S51是一個(gè)低功耗,,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。其引腳排列如2-3所示。</p><p
39、> 圖2-3 AT89S51引腳圖</p><p> AT89S51具有如下特點(diǎn):40個(gè)引腳,128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,片內(nèi)時(shí)鐘振蕩器。此外,AT89S51設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過(guò)軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,
40、串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。</p><p><b> 管腳說(shuō)明:</b></p><p> 40個(gè)引腳按其功能來(lái)分,可分為三個(gè)部分:</p><p> 電源及時(shí)鐘引腳 控制引腳 I/O口引腳</p><p> ?。?
41、)電源及時(shí)鐘引腳 </p><p> 電源引腳接入單片機(jī)的工作電源。 </p><p> VCC(40)引腳:接+5V電源。 </p><p> VSS(20)引腳:接地。 </p><p> 兩個(gè)時(shí)鐘引腳XTAL0、XTAL1為單片機(jī)提供了時(shí)鐘
42、控制信號(hào)。</p><p> XTAL0(18腳):接外部晶體的一個(gè)引腳。</p><p> XTAL1(19腳):接外部晶體的另一端。</p><p><b> (2)控制引腳</b></p><p> RST是復(fù)位信號(hào)的輸入端,高電平有效。當(dāng)單片機(jī)正常工作時(shí),在此引腳加上持續(xù)時(shí)間大于兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘振
43、蕩周期)的高電平時(shí),就可完成復(fù)位操作。在單片機(jī)正常工作時(shí),復(fù)位端應(yīng)小于或等于0.5V的低電平。</p><p> PSEN(29腳)程序存儲(chǔ)器允許輸出控制端。在單片機(jī)訪問(wèn)外部程序存儲(chǔ)器時(shí),此引腳輸出脈沖負(fù)跳沿作為外部程序存儲(chǔ)器的選通信號(hào)。</p><p> ALE(30腳)ALE為地址鎖存允許信號(hào),當(dāng)單片機(jī)上電正常工作后,ALE引腳不斷輸出正脈沖信號(hào)。當(dāng)單片機(jī)訪問(wèn)外部存儲(chǔ)器時(shí),ALE輸
44、出信號(hào)的負(fù)跳沿用作單片機(jī)發(fā)出的低8位地址的鎖存控制信號(hào)。即使不訪問(wèn)外部鎖存器,ALE端仍有正脈沖信號(hào)輸出,頻率為時(shí)鐘振蕩頻率fOSC的1/6。</p><p> EA(31腳)功能為內(nèi)/外程序存儲(chǔ)器選擇控制端。當(dāng)EA腳為高電平時(shí),單片機(jī)訪問(wèn)片內(nèi)程序存儲(chǔ)器,當(dāng)EA腳為低電平時(shí),單片機(jī)則只訪問(wèn)外部程序存儲(chǔ)器。所以此次設(shè)計(jì),須把單片機(jī)的31腳接到高電平。</p><p><b>
45、(3)I/O引腳</b></p><p> P0 口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。</p>
46、;<p> P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。</p><p>
47、 P1 口引腳號(hào)的第二功能如表2-1所示。</p><p> 表2-1 P1口引腳的第二功能</p><p> P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)
48、器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX @DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。</p><p> P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,對(duì)P3 端口寫“1”時(shí),內(nèi)部上拉電阻
49、把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。</p><p> P3 口引腳號(hào)的第二功能如表2-2所示。</p><p> 表2-2 P3 口引腳號(hào)的第二功能</p><p> 2.3.2 D
50、S12887時(shí)鐘芯片</p><p> 圖2-4 DS12887引腳圖</p><p> DS12887是美國(guó)達(dá)接斯半導(dǎo)體公司(Dallas)最新推出的串行接口實(shí)時(shí)時(shí)鐘芯片,采用CMOS技術(shù)制成,具有內(nèi)部晶振和時(shí)鐘芯片備份鋰電池,同時(shí)它與目前IBM AT計(jì)算機(jī)常用的時(shí)鐘芯片MC146818B和DS1287管腳兼容,可直接替換。DS12887芯片具有微功耗,外圍接口簡(jiǎn)單,精度高,工作穩(wěn)定
51、可靠等優(yōu)點(diǎn),可廣泛用于各種需要較高精度的實(shí)時(shí)時(shí)鐘系統(tǒng)中。</p><p> 2.3.2.1 DS12887主要功能簡(jiǎn)介</p><p> (1)內(nèi)含一個(gè)鋰電池,斷電后運(yùn)行十年以上不丟失數(shù)據(jù)。</p><p> ?。?)計(jì)秒,分,時(shí),天,星期,日,月,年,并有閏年補(bǔ)嘗功能。</p><p> ?。?)二進(jìn)制數(shù)碼或BCD碼表示時(shí)間,日歷和定鬧
52、。</p><p> (4)12小時(shí)或24小時(shí)制,12小時(shí)時(shí)鐘模式帶有PM和AM指示,有夏令時(shí)功能。</p><p> ?。?)Motorola和Intel總線時(shí)序選擇。</p><p> ?。?)有128個(gè)字節(jié)RAM單元與軟件接口,其中14個(gè)字節(jié)作為時(shí)鐘和控制寄存器,114字節(jié)為通用RAM,所有RAM單元數(shù)據(jù)都具有掉電保護(hù)功能。</p><p
53、> (7)可編程方波信號(hào)輸出。</p><p> ?。?)中斷信號(hào)輸出(IRQ)和總線兼容,定鬧中斷,周期性中斷、時(shí)鐘更新周期結(jié)束中斷可分別由軟件屏蔽,也可分別進(jìn)行測(cè)試。</p><p> 2.3.2.2 DS12887引腳說(shuō)明</p><p> DS12887內(nèi)部由振蕩電路,分頻電路,周期中斷/方波選擇電路,14字節(jié)時(shí)鐘和控制單元,114字節(jié)用戶非易失
54、RAM,十進(jìn)制/二進(jìn)制累加器,總線接口電路,電源開(kāi)關(guān)寫保護(hù)單元和內(nèi)部鋰電池等部分組成。</p><p> 上電/掉電:當(dāng)VCC高于4.25V 200ms后,芯片可以被外部程序操作;當(dāng)VCC低于4.25V時(shí),芯片 處于寫保護(hù)狀態(tài)(所有的輸入均無(wú)效),同時(shí)所有輸出呈高阻狀態(tài);當(dāng)VCC低于3V時(shí),芯片將自動(dòng)把供電方式切換為由內(nèi)部電池供電。</p><p> Vcc:直流電源+5V電壓。當(dāng)5V
55、電壓在正常范圍內(nèi)時(shí),數(shù)據(jù)可讀寫;當(dāng)Vcc低于4.25V,讀寫被禁止,計(jì)時(shí)功能仍繼續(xù);當(dāng)Vcc下降到3V以下時(shí),RAM和計(jì)時(shí)器供電被切換到內(nèi)部鋰電池。</p><p> MOT(模式選擇):MOT引腳接到Vcc時(shí),選擇MOTOROLA時(shí)序,當(dāng)接到GND時(shí),選擇Intel時(shí)序。</p><p> SQW(方波信號(hào)輸出):SQW引腳能從實(shí)時(shí)鐘內(nèi)部15級(jí)分頻器的13個(gè)抽頭中選擇一個(gè)作為輸出信號(hào)
56、,其輸出頻率可通過(guò)對(duì)寄存器A編程改變。</p><p> AD0-AD7(雙向地址/數(shù)據(jù)復(fù)用線):總線接口,可與Motorola微機(jī)系列和Intel微機(jī)系列接口。</p><p> AS(地址選通輸入):用于實(shí)現(xiàn)信號(hào)分離,在AD/ALE的下降沿把地址鎖入DS12887。</p><p> DS(數(shù)據(jù)選通或讀輸入):DS/RD引腳有兩種操作模式,取決于MOT引腳
57、的電平,當(dāng)使用Motorola時(shí)序時(shí),DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;在讀周期,DS指示DS12887驅(qū)動(dòng)雙向總線的時(shí)刻;在寫周期,DS的后沿使DS12887鎖存寫數(shù)據(jù)。選擇Intel時(shí)序時(shí),DS稱作(RD),RD與典型存貯器的允許信號(hào)(OE)的定義相同。</p><p> R/W (讀/寫輸入):R/W引腳也有兩種操作模式。選Motorola時(shí)序時(shí),R/W是低電平信號(hào)時(shí),指示當(dāng)前周期是讀或
58、寫周期,DS為高電平時(shí),R/W高電平指示讀周期,R/W信號(hào)一低電平信號(hào),稱為WR。在此模式下,R/W引腳與通用RAM的寫允許信號(hào)(WE)的含義相同。</p><p> CS(片選輸入):在訪問(wèn)DS12887的總線周期內(nèi),片選信號(hào)必須保持為低。</p><p> IRQ(中斷申請(qǐng)輸入):低電平有效,可作微處理的中斷輸入。沒(méi)有中斷的條件滿足時(shí),IRQ處于高阻態(tài)。IRQ線是漏極開(kāi)路輸入,要求
59、外接上接電阻。</p><p> RESET(復(fù)位輸出):當(dāng)該腳保持低電平時(shí)間大于200ms,保證DS12887有效復(fù)位。</p><p> 另外DS12887的地址由114字節(jié)的用戶RAM存放。10字節(jié)的存放實(shí)時(shí)時(shí)鐘時(shí)間,日歷和定鬧RAM及用于控制和狀態(tài)的4字節(jié)特殊寄存器組成,幾乎所有的128個(gè)字節(jié)直接讀寫。RTC 實(shí)時(shí)時(shí)鐘加RAM向處理器提供三個(gè)獨(dú)立的,自動(dòng)的中斷源。定鬧中斷的發(fā)生
60、率可編程,從每秒一次到每天一次,周期性中斷的發(fā)生率可從500ms到122s選擇。更新結(jié)束中斷用于向程序指示一個(gè)更新周期完成。中斷控制和狀態(tài)位在寄存器B和C中。</p><p> 2.3.2.3 時(shí)間,日歷和定鬧單元</p><p> 時(shí)間和日歷信息通過(guò)讀相應(yīng)的內(nèi)存字節(jié)來(lái)獲取,時(shí)間,日歷和定鬧通過(guò)寫相應(yīng)的內(nèi)存字節(jié)設(shè)置或初始化,其字節(jié)內(nèi)容可以是二進(jìn)制或BCD形式。時(shí)間可選擇12小時(shí)制或24
61、小時(shí)制,當(dāng)選擇12小時(shí)制時(shí),小時(shí)字節(jié)的高門為邏輯“1”代表PM。時(shí)間,日歷和定鬧字節(jié)是雙緩沖的,總是可訪問(wèn)的。每秒鐘這10個(gè)字節(jié)走時(shí)1 秒,檢查一次定鬧條件,如在更新時(shí),讀時(shí)間和日歷可能引起錯(cuò)誤,三個(gè)字節(jié)的定鬧字節(jié)有兩種使用方法。第一種,當(dāng)定鬧時(shí)間寫入相應(yīng)時(shí),分,秒,定鬧單元,在定允許鬧位置高的條件下,定鬧中斷每天準(zhǔn)時(shí)起動(dòng)一次。第二種,在三個(gè)定鬧字節(jié)中插入一個(gè)或多個(gè)不關(guān)心碼。不關(guān)心碼是任意從O0到FF的16進(jìn)制數(shù)。當(dāng)小時(shí)字節(jié)的不關(guān)心碼位
62、置位時(shí),定鬧每小時(shí)發(fā)生一次;同樣,當(dāng)小時(shí)和分鐘定鬧字節(jié)置不關(guān)心位時(shí),每分鐘定鬧一次;當(dāng)三個(gè)字節(jié)都置不關(guān)心位時(shí),每秒中斷一次。</p><p> 2.3.2.4 DS12887的控制寄存器</p><p> DS12887有四個(gè)控制寄存器,他們可以在任何時(shí)候讀寫。</p><p><b> (1)寄存器0AH</b></p>
63、<p> 表2-3 寄存器0AH中的位</p><p> UIP:更新周期進(jìn)行標(biāo)志位,UIP = 1時(shí),芯片正處于或?qū)㈤_(kāi)始新周期,此期間不允許讀寫時(shí)標(biāo)寄存器。</p><p> DV2~DV0:為010時(shí)晶振工作,其他組合時(shí)晶振停止。 </p><p> RS3~RS0:中斷周期時(shí)間和SQW輸出頻率選擇位。</p><p>
64、<b> ?。?)寄存器0BH</b></p><p> 表2-4 寄存器0BH中的位</p><p> SET:為1時(shí)禁止更新。為0時(shí)正常。 </p><p> PIE:為1時(shí)周期中斷允許。</p><p> AIE:為1時(shí)警報(bào)中斷允許。</p><p> UIE:為1時(shí)更新結(jié)束中斷
65、允許。</p><p> SQWE:為1時(shí)方波輸出允許。</p><p> DM:為0時(shí)時(shí)間為BCD碼,為1時(shí)為二進(jìn)制。</p><p> 24/12:為1時(shí)是24小時(shí)進(jìn)制。為0時(shí)是12小時(shí)進(jìn)制。</p><p><b> DSE:置0。</b></p><p><b> (3
66、)寄存器0CH</b></p><p> 表2-5寄存器0CH中的位</p><p> IRQF:中斷申請(qǐng)標(biāo)志。</p><p> PF:周期中斷標(biāo)志。</p><p> AF:警報(bào)中斷標(biāo)志。</p><p> UF:更新結(jié)束中斷標(biāo)志。</p><p><b>
67、?。?)寄存器0DH</b></p><p> 表2-6寄存器0DH中的位</p><p> VRT:為0時(shí)表示內(nèi)部鋰電池耗盡。</p><p> 2.3.3 DS18B20溫度傳感器</p><p> DS18B20的主要特性</p><p> ?。?)適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V
68、,在寄生電源方式下可由數(shù)據(jù)線供電?!?(2)獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。 (3)DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫。 (4)DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。 (5)溫范圍-55℃~+125℃,在-10~+85℃時(shí)精
69、度為±0.5℃?!?(6)可編程的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實(shí)現(xiàn)高精度測(cè)溫。 (7)在9位分辨率時(shí)最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快?!?(8)測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力。
70、 (9)負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀,但不能正常工作。</p><p> 其引腳圖和功能表如圖2-5所示。</p><p> 圖2-5 DS18B20引腳圖及功能</p><p> 2.4 數(shù)碼管顯示電路設(shè)計(jì)</p><p> 2.4.1 顯示模塊的選擇與方案論證</p><p> ?。?)
71、采用LED液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字、圖形、顯示多樣,清晰可見(jiàn),但是價(jià)格昂貴,需要的接口線多,所以在此設(shè)計(jì)中不采用LED液晶顯示屏。</p><p> ?。?)采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對(duì)較高,所以也不用此種作為顯示。</p><p> ?。?)采用LED數(shù)碼管動(dòng)態(tài)掃
72、描,LED數(shù)碼管價(jià)格適中,對(duì)于顯示數(shù)字最合適,而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)口線少。所以采用LED數(shù)碼管作為顯示。</p><p> 2.4.2 LED顯示器工作原理</p><p> 在4位LED顯示器中段選線控制顯示字符的的字型,而位選線為各個(gè)LED顯示塊的公共端,它控制該LED顯位的亮、暗。LED顯示器有靜態(tài)顯示和動(dòng)態(tài)顯示兩種顯示方式。</p>&l
73、t;p> (1)LED靜態(tài)顯示方式</p><p> 顯示器工作于靜態(tài)顯示方式時(shí),各個(gè)的共陰極(或共陽(yáng)極)連接在一起并接地(或+5V);每位的短選線(a-dp)分別與一個(gè)8位的鎖存器輸出相連。所以稱為靜態(tài)顯示。各個(gè)LED的顯示字符一經(jīng)確定,相應(yīng)鎖存器的輸出將維持不變,直到顯示另一個(gè)字符為止。也正因?yàn)槿绱?,靜態(tài)顯示器的亮度都比較高。這種顯示方式接口編程容易,付出的代價(jià)是占用口線較多。若要用I/O口接口,則
74、要占用4個(gè)8位I/O口,若要用鎖存器(如74LS373)接口,則要用4片74LS373芯片。如果顯示位數(shù)增多,則靜態(tài)顯示方式更是無(wú)法適應(yīng)。因此在顯示位數(shù)較多的情況下,一般采用動(dòng)態(tài)顯示方式。</p><p> ?。?)LED動(dòng)態(tài)顯示方式</p><p> 在多位LED顯示時(shí),為了簡(jiǎn)化硬件電路,通常將所有位的段選線相應(yīng)地并聯(lián)在一起,由一個(gè)8位I/O口控制,形成段選線的多路復(fù)用。而各位的共陽(yáng)極
75、或共陰極分別由相應(yīng)的I/O線控制,實(shí)現(xiàn)各位的分時(shí)選通。在動(dòng)態(tài)顯示方式中若要各位LED能夠顯示出與本位相應(yīng)的顯示字符,就必須采用掃描顯示方式,即在某一時(shí)刻,只讓某一位的位選線處選通狀態(tài),而其他各位的位選線處于關(guān)閉狀態(tài),同時(shí),段選線上輸出相應(yīng)位要顯示字符的段碼。這樣同一時(shí)刻,4位LED中只有那一位顯示出字符,而其他三位則是熄滅的。同樣,在下一時(shí)刻,只讓下一位的位選線處于選通狀態(tài),而其他各位的位選線處于關(guān)閉狀態(tài),同時(shí),在段選線上輸出相應(yīng)位將要
76、顯示字符段碼,則同一時(shí)刻,只有選通位顯示出相應(yīng)的字符,而其他各位則是熄滅的。如循環(huán)下去,就可以使各位顯示出將要顯示的字符,雖然這些字符是在不同時(shí)刻出現(xiàn)的,而且同一時(shí)刻,只有一位顯示,其他各位熄滅,但由于LED顯示器的余輝和人眼的視覺(jué)暫留作用,只要每位顯示間隔足夠短,則可造成多位同時(shí)亮的假象,達(dá)到同時(shí)顯示的目的。</p><p> 如何確定LED不同位顯示的時(shí)間間隔,例如對(duì)8位LED顯示器,假若顯示一位保持1ms
77、時(shí)間,則顯示完所有8位只后,只需8ms。上述保持1ms的時(shí)間是根據(jù)實(shí)際情況而定。不能太短,因?yàn)榘l(fā)光二極管從導(dǎo)通到發(fā)光有一定的延時(shí),導(dǎo)通時(shí)間太短,發(fā)光太弱人眼無(wú)法看清。但也不能太長(zhǎng),因?yàn)楫吘挂芟抻谂R界閃爍頻率,而且此時(shí)間越長(zhǎng),占用CPU時(shí)間也越多。另外,顯示位越多,也將占用大量的CPU時(shí)間,因此動(dòng)態(tài)顯示實(shí)質(zhì)是以犧牲CPU時(shí)間來(lái)?yè)Q取元件的減少。</p><p> 此設(shè)計(jì)顯示電路采用的就是動(dòng)態(tài)顯示即一位一位地輪流點(diǎn)
78、亮顯示器的各個(gè)位(掃描),對(duì)于顯示器的每一位來(lái)說(shuō),每隔一段時(shí)間點(diǎn)亮一次。利用人的視覺(jué)暫留效應(yīng)可以看到整個(gè)顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔時(shí)間的比例有關(guān)。調(diào)整電流和時(shí)間參數(shù),可實(shí)現(xiàn)亮度較高較穩(wěn)定的顯示。因?yàn)楸撅@示的位數(shù)不大于8位,所以控制顯示器公共極只需一個(gè)I/O口(掃描口),控制顯示器的各位所顯示的字型也需一個(gè)8位口(段數(shù)據(jù)口)。本設(shè)計(jì)顯示部分電路連接如圖2-6所示。<
79、/p><p> 圖2-6 數(shù)碼管顯示部分電路圖</p><p><b> 3 系統(tǒng)軟件設(shè)計(jì)</b></p><p> 3.1 系統(tǒng)功能模塊及主程序流程圖</p><p> 軟件編程思路:先DS12887初始化接著從其內(nèi)讀取當(dāng)前時(shí)間供參考,然后掃描鍵盤以取得輸入的更改值,接下來(lái)將更改值寫入DS12887,允許DS128
80、87時(shí)間更新并讀出時(shí)間以顯示,把顯示程序放在定時(shí)中斷內(nèi)掃描,主程序先讀出DS12887內(nèi)小時(shí)、分鐘、秒的值再送顯示,然后加延時(shí)再讀DS18B20所測(cè)溫度值再送顯示。</p><p> 系統(tǒng)功能模塊主要有:</p><p><b> ?。?)初始化程序</b></p><p> ?。?)對(duì)DS12887的讀寫程序</p><
81、p><b> (3)顯示子程序</b></p><p> ?。?)時(shí)間調(diào)子整程序</p><p> ?。?)溫度與時(shí)間顯示切換程序</p><p> 主程序流程如圖3-1所示。</p><p> 圖3-1 主程序流程圖</p><p> 3.2 DS12887初始化程序設(shè)計(jì)<
82、/p><p> 因?yàn)槭褂昧藭r(shí)鐘芯片DS12887,只需從DS12887各寄存器中讀出年、月、日、周、小時(shí)、分、秒等數(shù)據(jù),再處理即可。在首次對(duì)DS12887進(jìn)行操作之前,必須對(duì)它進(jìn)行初始化,然后從DS12887中讀出數(shù)據(jù),再經(jīng)過(guò)處理后,送給顯示緩沖單元。</p><p><b> 程序如下:</b></p><p><b> csh(
83、)</b></p><p><b> {</b></p><p> XBYTE[0x7f0b]=0xa6;</p><p> XBYTE[0x7f00]=0x00;</p><p> XBYTE[0x7f02]=0x00;</p><p> XBYTE[0x7f04]=0x0
84、0;</p><p> XBYTE[0x7f0b]=0x26;</p><p> i=XBYTE[0x7f0a]=0x20;</p><p> i=XBYTE[0x7f0d];</p><p> i=XBYTE[0x7f0c];</p><p><b> }</b></p>
85、<p> 3.3 顯示子程序設(shè)計(jì)</p><p> 主要是開(kāi)啟中斷,選擇定時(shí)器工作方式及給定時(shí)器高低字節(jié)送初值,最后使DS12887開(kāi)始工作并通過(guò)給DS12887的控制寄存器寫相應(yīng)命令使其禁止DS12887芯片更新,此時(shí)時(shí)鐘、日歷、和鬧鐘信息可以通過(guò)讀寫相應(yīng)的字節(jié)獲得和設(shè)置,接著開(kāi)啟DS12887的晶體振蕩器并且保持時(shí)鐘運(yùn)行,設(shè)置DS12887的SQW輸出為方波,時(shí)鐘運(yùn)行周期為24時(shí)制等這些都完成
86、系統(tǒng)上電后就可以從DS12887讀取時(shí)間信息送進(jìn)而顯示電路顯示了。</p><p><b> 程序如下:</b></p><p> void time0() interrupt 1//定時(shí)器掃描顯示</p><p><b> {</b></p><p><b> q++;<
87、/b></p><p> TH0=0xea; </p><p><b> TL0=0xea;</b></p><p><b> if(q==1)</b></p><p><b> {</b></p><p> P1=tab[cc];&
88、lt;/p><p><b> P2=0xde;</b></p><p><b> }</b></p><p><b> if(q==2)</b></p><p><b> {</b></p><p> P1=tab[dd];&
89、lt;/p><p><b> P2=0xee;</b></p><p><b> }</b></p><p><b> if(q==3)</b></p><p><b> {</b></p><p> P1=tab[ee];&
90、lt;/p><p><b> P2=0xf6;</b></p><p><b> }</b></p><p><b> if(q==4)</b></p><p><b> {</b></p><p> P1=tab[ff];&
91、lt;/p><p><b> P2=0xfa;</b></p><p><b> q=0;</b></p><p><b> }</b></p><p> c=XBYTE[0x7e00];</p><p><b> P30=c0;<
92、/b></p><p><b> }</b></p><p> 3.4 時(shí)間調(diào)整程序設(shè)計(jì)</p><p> 時(shí)間調(diào)整是由三個(gè)按鍵組成的,它是最簡(jiǎn)單的單片機(jī)輸入設(shè)備,通過(guò)按鍵輸入或調(diào)整數(shù)據(jù),實(shí)現(xiàn)簡(jiǎn)單的人機(jī)對(duì)話.時(shí)間調(diào)整的三個(gè)按鍵分別接在CPU的P3.2,P3.4,P3.5三個(gè)口。三個(gè)按鍵的功能分別為:P32為選位鍵,按下時(shí)進(jìn)行調(diào)
93、時(shí)選位功能,被選中的那個(gè)數(shù)碼管就閃爍準(zhǔn)備調(diào)時(shí);選中一位后按下P3.4對(duì)該位進(jìn)行加操作,按下P3.5對(duì)該位進(jìn)行減操作,流程圖如圖3-2所示。</p><p> 圖3-2 時(shí)間整程序框圖</p><p><b> 程序如下:</b></p><p> if(P32==0)</p><p><b> {<
94、;/b></p><p> delay1(500);</p><p> while(!P32);</p><p> delay1(20);</p><p> while(P32)</p><p><b> {</b></p><p><b> c
95、c=10;</b></p><p> delay1(500);</p><p><b> cc=j;</b></p><p> delay1(500);</p><p> if(P34==0)</p><p><b> {</b></p>
96、<p> while(!P34);</p><p><b> j++;</b></p><p><b> if(j==10)</b></p><p><b> j=0;</b></p><p> d=j+(10*i);</p><
97、;p><b> }</b></p><p> else if(P35==0)</p><p><b> {</b></p><p> while(!P35);</p><p><b> if(j==0)</b></p><p><b
98、> j=10;</b></p><p><b> j--;</b></p><p> d=j+(10*i);</p><p><b> }</b></p><p> XBYTE[0x7e02]=d;</p><p> XBYTE[0x7e04]=
99、e;</p><p><b> }</b></p><p> while(!P32)</p><p><b> {</b></p><p> delay1(500);</p><p> while(!P32);</p><p> delay
100、1(20);</p><p><b> }</b></p><p> while(P32)</p><p><b> {</b></p><p><b> dd=10;</b></p><p> delay1(500);</p>
101、<p><b> dd=i;</b></p><p> delay1(500);</p><p> if(P34==0)</p><p><b> {</b></p><p> while(!P34);</p><p><b> i++;<
102、;/b></p><p><b> if(i==6)</b></p><p><b> i=0;</b></p><p> d=j+(10*i);</p><p><b> }</b></p><p> else if(P35==0)&
103、lt;/p><p><b> {</b></p><p> while(!P35);</p><p><b> if(i==0)</b></p><p><b> i=6;</b></p><p><b> i--;</b>&
104、lt;/p><p> d=j+(10*i);</p><p><b> }</b></p><p> XBYTE[0x7e02]=d;</p><p> XBYTE[0x7e04]=e;</p><p><b> }</b></p><p>
105、while(!P32)</p><p><b> {</b></p><p> delay1(500);</p><p> while(!P32);</p><p> delay1(20);</p><p><b> }</b></p><p&g
106、t; while(P32)</p><p><b> {</b></p><p><b> ee=10;</b></p><p> delay1(500);</p><p><b> ee=m;</b></p><p> delay1(500
107、);</p><p> if(P34==0)</p><p><b> {</b></p><p> while(!P34);</p><p><b> m++;</b></p><p><b> if(m==10)</b></p>
108、<p><b> m=0;</b></p><p> e=m+(10*n);</p><p><b> }</b></p><p> else if(P35==0)</p><p><b> {</b></p><p> wh
109、ile(!P35);</p><p><b> if(m==0)</b></p><p><b> m=10;</b></p><p><b> m--;</b></p><p> e=m+(10*n);</p><p><b> }
110、</b></p><p> XBYTE[0x7e02]=d;</p><p> XBYTE[0x7e04]=e;</p><p><b> }</b></p><p> while(!P32)</p><p><b> {</b></p>
111、<p> delay1(500);</p><p> while(!P32);</p><p> delay1(20);</p><p><b> }</b></p><p> while(P32)</p><p><b> {</b></p>
112、;<p><b> ff=10;</b></p><p> delay1(500);</p><p><b> ff=n;</b></p><p> delay1(500);</p><p> if(P34==0)</p><p><b&
113、gt; {</b></p><p> while(!P34);</p><p><b> n++;</b></p><p><b> if(n==3)</b></p><p><b> n=0;</b></p><p> e=m+
114、(10*n);</p><p><b> }</b></p><p> else if(P35==0)</p><p><b> {</b></p><p> while(!P35);</p><p><b> if(n==0)</b><
115、;/p><p><b> n=3;</b></p><p><b> n--;</b></p><p> e=m+(10*n);</p><p><b> }</b></p><p> XBYTE[0x7e02]=d;</p><
116、;p> XBYTE[0x7e04]=e;</p><p><b> }</b></p><p> delay1(2000); </p><p><b> }</b></p><p> 3.5 溫度采集程序設(shè)計(jì)</p><p> 3.5.1 DS1
117、8B20的初始化</p><p> ?。?)先將數(shù)據(jù)線置高電平“1”。</p><p> (2)延時(shí)(該時(shí)間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn))。</p><p> (3)數(shù)據(jù)線拉到低電平“0”。</p><p> (4)延時(shí)750微秒(該時(shí)間的時(shí)間范圍可以從480到960微秒)。</p><p> ?。?)數(shù)
118、據(jù)線拉到高電平“1”。</p><p> ?。?)延時(shí)等待(如果初始化成功則在15到60毫秒時(shí)間之內(nèi)產(chǎn)生一個(gè)由DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來(lái)確定它的存在,但是應(yīng)注意不能無(wú)限的進(jìn)行等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)控制)。</p><p> ?。?)若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高電平算起(第(5)步的時(shí)間算起)最少要4
119、80微秒。</p><p> ?。?)將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。</p><p> 3.5.2 DS18B20的寫操作</p><p> ?。?)數(shù)據(jù)線先置低電平“0”。</p><p> (2)延時(shí)確定的時(shí)間為15微秒。</p><p> (3)按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。<
120、;/p><p> ?。?)延時(shí)時(shí)間為45微秒。</p><p> ?。?)將數(shù)據(jù)線拉到高電平。</p><p> (6)重復(fù)上(1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。</p><p> (7)最后將數(shù)據(jù)線拉高。</p><p> 3.5.3 DS18B20的讀操作</p><p>
121、?。?)將數(shù)據(jù)線拉高“1”。</p><p><b> ?。?)延時(shí)2微秒。</b></p><p> ?。?)將數(shù)據(jù)線拉低“0”。</p><p> ?。?)延時(shí)15微秒。</p><p> ?。?)將數(shù)據(jù)線拉高“1”。</p><p> ?。?)延時(shí)15微秒。</p><p
122、> (7)讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。</p><p> ?。?)延時(shí)30微秒。</p><p><b> 程序如下:</b></p><p> sbit TMDAT=P2^7;</p><p> dmsec(unsigned int count) //1ms delay</p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子信息工程畢業(yè)論文 車載可測(cè)溫式電子萬(wàn)年歷
- 畢業(yè)設(shè)計(jì)論文車載可測(cè)溫式電子萬(wàn)年歷
- 電子萬(wàn)年歷畢業(yè)論文
- 畢業(yè)論文——電子萬(wàn)年歷設(shè)計(jì)
- 電子萬(wàn)年歷設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)論文——電子萬(wàn)年歷設(shè)計(jì)
- 數(shù)字電子萬(wàn)年歷的畢業(yè)論文
- 電子萬(wàn)年歷的設(shè)計(jì)畢業(yè)論文
- 電子萬(wàn)年歷
- 單片機(jī)電子萬(wàn)年歷畢業(yè)論文
- 單片機(jī)電子萬(wàn)年歷畢業(yè)論文
- 單片機(jī)電子萬(wàn)年歷畢業(yè)論文
- 畢業(yè)論文——電子萬(wàn)年歷設(shè)計(jì)與制作
- 電子萬(wàn)年歷設(shè)計(jì)
- 電子萬(wàn)年歷畢業(yè)設(shè)計(jì)
- 電子萬(wàn)年歷畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----電子萬(wàn)年歷論文設(shè)計(jì)
- 電子萬(wàn)年歷畢業(yè)設(shè)計(jì)
- 萬(wàn)年歷課程設(shè)計(jì)--萬(wàn)年歷電子時(shí)鐘
- 電子萬(wàn)年歷的設(shè)計(jì)與制作畢業(yè)論文
評(píng)論
0/150
提交評(píng)論