版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 《單片機(jī)原理及應(yīng)用》</p><p><b> 課程設(shè)計(jì)報(bào)告書</b></p><p><b> 機(jī)電與控制工程學(xué)院</b></p><p><b> 年 月 日</b></p><p><b> 填 寫 說 明</b>
2、;</p><p><b> 1、正文部分: </b></p><p> 標(biāo)題與正文格式定義標(biāo)準(zhǔn)如下:</p><p> 一級標(biāo)題:1.標(biāo)題1</p><p> 二級標(biāo)題:1.1標(biāo)題2</p><p> 三級標(biāo)題:1.1.1標(biāo)題3</p><p> 四級標(biāo)題:1
3、.1.1.1標(biāo)題4</p><p> ?。?)表格:盡可能采用三線表。</p><p> (3)圖形:直接插入的插圖應(yīng)有圖標(biāo)、圖號,不能直接插入的圖應(yīng)留出插圖空位。圖中文字、符號書寫要清楚,并與正文一致。</p><p> ?。?)文字表述:要求層次清楚,語言流暢,語句通順,無語法和邏輯錯(cuò)誤,無錯(cuò)字、別字、漏字。文字的表述應(yīng)當(dāng)以科學(xué)語言描述研究過程和研究結(jié)果,不要
4、以口語化的方式表達(dá),報(bào)告中科技術(shù)語和名詞應(yīng)符合規(guī)定的通用詞語,并使用法定計(jì)量單位和標(biāo)準(zhǔn)符號。</p><p><b> 2、參考文獻(xiàn):</b></p><p> ?。?)數(shù)量要求:參考文獻(xiàn)只選擇最主要的列入,應(yīng)不低于5種。</p><p> (2)種類要求:參考文獻(xiàn)的引用,可以是著作[M]、論文[J]、專利文獻(xiàn)[P]、會議論文等。</
5、p><p> ?。?)文獻(xiàn)著錄格式及示例。參考文獻(xiàn)用宋體五號字。</p><p> [1] 作者. 書名[M]. 版次. 出版地: 出版者, 出版年: 起止頁碼 (著作圖書文獻(xiàn))</p><p> [2] 作者. 文章名[J]. 學(xué)術(shù)刊物名稱. 年. 卷(期): 起止頁碼 (學(xué)術(shù)刊
6、物文獻(xiàn))</p><p> 示例: [1]王社國,趙建光?;贏RM的嵌入式語音識別系統(tǒng)研究 [J]。微計(jì)算機(jī)信息,2007,2-2:149-150.</p><p> 3、附錄或附件:(可選項(xiàng)) </p><p> 重要的測試結(jié)果、圖表、設(shè)計(jì)圖紙、源程序代碼、大量的公式、符號、照片等不宜放入正文中的可以附錄形式出現(xiàn)。</p><
7、;p> 4、如果需要可另行附頁粘貼。</p><p><b> 任 務(wù) 書</b></p><p><b> 1. 設(shè)計(jì)要求</b></p><p> 利用數(shù)字溫度傳感器DS18B20與單片機(jī)結(jié)合來測量溫度。利用數(shù)字溫度傳感器DS18B20測量溫度信號,計(jì)算后在LED數(shù)碼管上顯示相應(yīng)的溫度值。其溫度測量范圍為
8、?55℃~125℃,精確到0.5℃。數(shù)字溫度計(jì)所測量的溫度采用數(shù)字顯示,控制器使用單片機(jī)AT89C51,測溫傳感器使用DS18B20,用3位共陽極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示。</p><p><b> 2. 原理</b></p><p> 從溫度傳感器DS18B20可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換即滿足設(shè)計(jì)要求。</p><
9、p> DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)9~12位的數(shù)字讀數(shù)方式。</p><p> DS18B20的性能如下。</p><p> 獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信。</p><p> 多個(gè)DS18B2
10、0可以并聯(lián)在串行傳輸?shù)臄?shù)據(jù)線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能。無須外部器件。</p><p> 可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V。</p><p><b> 零待機(jī)功耗。</b></p><p> 溫度以9或12位的數(shù)字讀數(shù)方式。</p><p> 用戶可定義報(bào)警設(shè)置。</p><p>
11、 報(bào)警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件。</p><p> 負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會因發(fā)熱而燒毀,但不能正常工作。 </p><p><b> 目 錄</b></p><p> 1、緒論…………………………………………………………………… 5</p><p> 2、方案
12、論證(規(guī)劃、選定)…………………………………………… 5</p><p> 3、方案說明(設(shè)計(jì))…………………………………………………… 7</p><p> 4、硬件方案設(shè)計(jì)………………………………………………………… 10</p><p> 5、軟件方案設(shè)計(jì)………………………………………………………… 17</p><p> 6、
13、調(diào)試…………………………………………………………………… 20</p><p> 7、技術(shù)小結(jié)(結(jié)束語)………………………………………………… 20</p><p> 8、參考文獻(xiàn)……………………………………………………………… 21</p><p> 9、附錄(源程序代碼、電路圖等)…………………………………………21</p><p>
14、;<b> 1、緒論</b></p><p> 隨著國民經(jīng)濟(jì)的發(fā)展,人們需要對各中加熱爐、熱處理爐、反應(yīng)爐和鍋爐中溫度進(jìn)行監(jiān)測和控制。采用單片機(jī)來對他們控制不僅具有控制方便,簡單和靈活性大等優(yōu)點(diǎn),而且可以大幅度提高被控溫度的技術(shù)指標(biāo),從而能夠大大的提高產(chǎn)品的質(zhì)量和數(shù)量。</p><p> 在日常生活及工業(yè)生產(chǎn)過程中,經(jīng)常要用到溫度的檢測及控制,溫度是生產(chǎn)過程和科
15、學(xué)實(shí)驗(yàn)中普遍而且重要的物理參數(shù)之一。在生產(chǎn)過程中,為了高效地進(jìn)行生產(chǎn),必須對它的主要參數(shù),如溫度、壓力、流量等進(jìn)行有效的控制。溫度控制在生產(chǎn)過程中占有相當(dāng)大的比例。溫度測量是溫度控制的基礎(chǔ),技術(shù)已經(jīng)比較成熟。傳統(tǒng)的測溫元件有熱電偶和二電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,這些方法相對比較復(fù)雜,需要比較多的外部硬件支持。我們用一種相對比較簡單的方式來測量。</p><p> 我們采用美國D
16、ALLAS半導(dǎo)體公司繼DS18B20之后推出的一種改進(jìn)型智能溫度傳感器DS18B20作為檢測元件,溫度范圍為-55~125 ºC,最高分辨率可達(dá)0.0625 ºC。DS18B20可以直接讀出北側(cè)溫度值,而且采用三線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn)。</p><p> 本文介紹一種基于AT89C51單片機(jī)的一種溫度測量及報(bào)警電路,該電路采用DS18B20作為溫度監(jiān)
17、測元件,測量范圍0℃-~+100℃,使用LED模塊顯示,能設(shè)置溫度報(bào)警上下限。正文著重給出了軟硬件系統(tǒng)的各部分電路,介紹了集成溫度傳感器DS18B20的原理,AT89C51單片機(jī)功能和應(yīng)用。該電路設(shè)計(jì)新穎、功能強(qiáng)大、結(jié)構(gòu)簡單。</p><p><b> 2、方案論證</b></p><p> 該系統(tǒng)主要由溫度測量和數(shù)據(jù)采集兩部分電路組成,實(shí)現(xiàn)的方法有很多種,下面將
18、列出兩種在日常生活中和工農(nóng)業(yè)生產(chǎn)中經(jīng)常用到的實(shí)現(xiàn)方案。</p><p><b> 2.1方案一</b></p><p> 采用熱電偶溫差電路測溫,溫度檢測部分可以使用低溫?zé)崤?,熱電偶由兩個(gè)焊接在一起的異金屬導(dǎo)線所組成,熱電偶產(chǎn)生的熱電勢由兩種金屬的接觸電勢和單一導(dǎo)體的溫差電勢組成。通過將參考結(jié)點(diǎn)保持在已知溫度并測量該電壓,便可推斷出檢測結(jié)點(diǎn)的溫度。數(shù)據(jù)采集部分則使
19、用帶有A/D 通道的單片機(jī),在將隨被測溫度變化的電壓或電流采集過來,進(jìn)行A/D 轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來。熱電偶的優(yōu)點(diǎn)是工作溫度范圍非常寬,且體積小,但是它們也存在著輸出電壓小、容易遭受來自導(dǎo)線環(huán)路的噪聲影響以及漂移較高的缺點(diǎn),并且這種設(shè)計(jì)需要用到A/D 轉(zhuǎn)換電路,感溫電路比較麻煩。</p><p> 系統(tǒng)主要包括對A/D0809 的數(shù)據(jù)采集,自動手動工作方式
20、檢測,溫度的顯示等,這幾項(xiàng)功能的信號通過輸入輸出電路經(jīng)單片機(jī)處理。此外還有復(fù)位電路,晶振電路,啟動電路等。故現(xiàn)場輸入硬件有手動復(fù)位鍵、A/D 轉(zhuǎn)換芯片,處理芯片為51 芯片,執(zhí)行機(jī)構(gòu)有4 位數(shù)碼管、報(bào)警器等?!?】</p><p> 系統(tǒng)框圖如圖 3-1所示。</p><p> 圖 3-1 熱電偶溫差電路測溫系統(tǒng)框圖</p><p><b> 2.2
21、方案二</b></p><p> 采用數(shù)字溫度芯片DS18B20 測量溫度,輸出信號全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0—100 攝氏度時(shí),最大線形偏差小于1 攝氏度。DS18B20 的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控制器AT89S51構(gòu)成的溫度測量裝置,它直接輸出
22、溫度的數(shù)字信號,可直接與計(jì)算機(jī)連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51 單片機(jī)控制,軟件編程的自由度大,可通過編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡單,安裝方便。既可以單獨(dú)對多DS18B20控制工作,還可以與PC 機(jī)通信上傳數(shù)據(jù),另外AT89S51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟?!?】</p><p> 該系統(tǒng)利用AT89S51芯
23、片控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(bào)警溫度。該系統(tǒng)擴(kuò)展性非常強(qiáng),它可以在設(shè)計(jì)中加入時(shí)鐘芯片DS1302以獲取時(shí)間數(shù)據(jù),在數(shù)據(jù)處理同時(shí)顯示時(shí)間,并可以利用AT24C16芯片作為存儲器件,以此來對某些時(shí)間點(diǎn)的溫度數(shù)據(jù)進(jìn)行存儲,利用鍵盤來進(jìn)行調(diào)時(shí)和溫度查詢,獲得的數(shù)據(jù)可以通過MAX232芯片與計(jì)算機(jī)的RS232接口進(jìn)行串口通信,方便的采集和整理時(shí)間溫度數(shù)據(jù)。</p&g
24、t;<p><b> 2.3方案選定</b></p><p> 從以上兩種方案,容易看出方案一的測溫裝置可測溫度范圍寬、體積小,但是線性誤差較大。方案二的測溫裝置電路簡單、精確度較高、實(shí)現(xiàn)方便、軟件設(shè)計(jì)也比較簡單,故本次設(shè)計(jì)采用了方案二。</p><p><b> 3、方案說明</b></p><p>
25、<b> 3.1系統(tǒng)設(shè)計(jì)原理</b></p><p> 利用溫度傳感器DS18B20可以直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換的特性,模擬溫度值經(jīng)過DS18B20處理后轉(zhuǎn)換為數(shù)字值,然后送到單片機(jī)中進(jìn)行數(shù)據(jù)處理,并與設(shè)置的溫度報(bào)警限比較,超過限度后通過揚(yáng)聲器報(bào)警。同時(shí)處理后的數(shù)據(jù)送到LED中顯示。</p><p><b> 3.2系統(tǒng)組成</b>&l
26、t;/p><p> 本課題以是80C51單片機(jī)為核心設(shè)計(jì)的一種數(shù)字溫度控制系統(tǒng),系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報(bào)警調(diào)整電路,單片機(jī)主板電路等組成。</p><p> 系統(tǒng)框圖主要由主控制器、單片機(jī)復(fù)位、報(bào)警按鍵設(shè)置、時(shí)鐘振蕩、LED顯示、溫度傳感器組成。</p><p> 系統(tǒng)框圖如圖3-2所示。</p><p&
27、gt; 圖3-2 系統(tǒng)基本方框圖</p><p><b> 3.2.1主控制器</b></p><p> 單片機(jī)AT89C51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。</p><p><b> 3.2.2顯示電路</b><
28、;/p><p> 顯示電路采用LED液晶顯示數(shù)碼管,從P3口RXD,TXD串口輸出段碼。顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點(diǎn)就是使用口資源比較少,只用p3口的RXD,和TXD,串口的發(fā)送和接收,四只數(shù)碼管采用74LS164右移寄存器驅(qū)動,顯示比較清晰。</p><p> 3.2.3溫度傳感器</p><p> 溫度傳感器采用美國DALLAS半導(dǎo)體公司生產(chǎn)的
29、DS18B20溫度傳感器。DS18B20輸出信號全數(shù)字化。便于單片機(jī)處理及控制,在0—100 攝氏度時(shí),最大線形偏差小于1 攝氏度,采用單總線的數(shù)據(jù)傳輸,可直接與計(jì)算機(jī)連接。</p><p> 用AT89S51芯片控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(bào)警溫度。獲得的數(shù)據(jù)可以通過MAX232芯片與計(jì)算機(jī)的RS232接口進(jìn)行串口通信,方便的采集和整理
30、時(shí)間溫度數(shù)據(jù)。</p><p> 3.3 DS18B20溫度傳感器與單片機(jī)的接口電路</p><p> DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖3-3 所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)MOSFET管來完成對總線的上拉。<
31、;/p><p> 當(dāng)DS18B20處于寫存儲器操作和溫度A/D轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)VDD端接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。</p><p> 圖3-1 DS18B20與單片機(jī)的接口電路</p><p><b> 4、硬件方案設(shè)計(jì)</b></p>
32、<p> 4.1 80C51單片機(jī)介紹</p><p> 80C51有40個(gè)引腳,4個(gè)8位并行I/O口,1個(gè)全雙工異步串行口,同時(shí)內(nèi)含5個(gè)中斷源,2個(gè)優(yōu)先級,2個(gè)16位定時(shí)/計(jì)數(shù)器。80C51的存儲器系統(tǒng)由4K的程序存儲器(掩膜ROM),和128B的數(shù)據(jù)存儲器(RAM)組成。其基本組成框圖見圖4-1。</p><p> 圖4-1 80C51單片機(jī)結(jié)構(gòu)圖</p>
33、<p> 1. 一個(gè)8 位的微處理器(CPU)。</p><p> 2. 片內(nèi)數(shù)據(jù)存儲器RAM(128B),用以存放可以讀/寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù)等,SST89 系列單片機(jī)最多提供1K 的RAM。</p><p> 3. 片內(nèi)程序存儲器ROM(4KB),用以存放程序、一些原始數(shù)據(jù)和表格。但也有一些單片機(jī)內(nèi)部不帶ROM/EPROM,如8031
34、,8032,80C31 等。目前單片機(jī)的發(fā)展趨勢是將RAM 和ROM 都集成在單片機(jī)里面,這樣既方便了用戶進(jìn)行設(shè)計(jì)又提高了系統(tǒng)的抗干擾性。SST 公司推出的89 系列單片機(jī)分別集成了16K、32K、64K Flash 存儲器,可供用戶根據(jù)需要選用。</p><p> 4. 四個(gè)8 位并行I/O 接口P0~P3,每個(gè)口既可以用作輸入,也可以用作輸出。</p><p> 5. 兩個(gè)定時(shí)器/
35、計(jì)數(shù)器,每個(gè)定時(shí)器/計(jì)數(shù)器都可以設(shè)置成計(jì)數(shù)方式,用以對外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置成定時(shí)方式,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制。為方便設(shè)計(jì)串行通信,目前的52 系列單片機(jī)都會提供3 個(gè)16 位定時(shí)器/計(jì)數(shù)器。</p><p> 6. 五個(gè)中斷源的中斷控制系統(tǒng)?,F(xiàn)在新推出的單片機(jī)都不只5 個(gè)中斷源,例如SST89E58RD 就有9 個(gè)中斷源。</p><p> 7. 一個(gè)全雙工U
36、ART(通用異步接收發(fā)送器)的串行I/O 口,用于實(shí)現(xiàn)單片機(jī)之間或單機(jī)與微機(jī)之間的串行通信。</p><p> 8. 片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接。最高允許振蕩頻率為12MHz。SST89V58RD 最高允許振蕩頻率達(dá)40MHz,因而大大的提高了指令的執(zhí)行速度。</p><p> 4.1.2 80C51單片機(jī)管腳圖</p><p>
37、圖4-2 80C51單片機(jī)管腳圖</p><p><b> 部分引腳說明:</b></p><p><b> 電源類引腳</b></p><p> Vcc(40腳):芯片工作電源的輸入端,+5V。</p><p> Vss(20腳):電源的接地端。</p><p>&
38、lt;b> 時(shí)鐘電路引腳</b></p><p> XTAL1(19 腳):接外部晶體和微調(diào)電容的另一端;在片內(nèi)它是振蕩電路反相放大器的輸入端。在采用外部時(shí)鐘時(shí),該引腳必須接地。</p><p> XTAL2(18 腳):接外部晶體和微調(diào)電容的一端;在8051 片內(nèi)它是振蕩電路反相放大器的輸出端。若需采用外部時(shí)鐘電路時(shí),該引腳輸入外部時(shí)鐘脈沖。</p>
39、<p><b> 控制信號引腳</b></p><p> RST/VPD(9 腳):RST 是復(fù)位信號輸入端,高電平有效。</p><p> RST 引腳的第二功能是VPD,即接入RST 端,為RAM 提供備用電源,以保證存儲在RAM 中的信息不丟失,從而合復(fù)位后能繼續(xù)正常運(yùn)行。</p><p> ALE/PROG(30 腳
40、):地址鎖存允許信號端。當(dāng)8051 上電正常工作后,ALE 引腳不斷向外輸出正脈沖信號,此頻率為振蕩器頻率fOSC 的1/6。CPU 訪問片外存儲器時(shí),ALE 輸出信號作為鎖存低8 位地址的控制信號。平時(shí)不訪問片外存儲器時(shí),ALE 端也以振蕩頻率的1/6 固定輸出正脈沖,因而ALE 信號可以用作對外輸出時(shí)鐘或定時(shí)信號。ALE 端的負(fù)載驅(qū)動能力為8 個(gè)LS 型TTL(低功耗甚高速TTL)負(fù)載。</p><p>
41、此引腳的第二功能PROG 在對片內(nèi)帶有4KB EPROM 的8751 編程寫入(固化程序)時(shí),作為編程脈沖輸入端。</p><p> PSEN(29 腳):程序存儲允許輸出信號端。在訪問片外程序存儲器時(shí),此端定時(shí)輸出負(fù)脈沖作為讀片外存儲器的選通信號。PSEN 端有效,即允許讀出EPROM/ROM 中的指令碼。PSEN 端同樣可驅(qū)動8 個(gè)LS 型TTL 負(fù)載。</p><p> EA/V
42、pp(31 腳):外部程序存儲器地址允許輸入端/固化編程電壓輸入端。當(dāng)EA 引腳接高電平時(shí),CPU只訪問片內(nèi)EPROM/ROM并執(zhí)行內(nèi)部程序存儲器中的指令,但當(dāng)PC(程序計(jì)數(shù)器)的值超過0FFFH(對8751/8051 為4K)時(shí),將自動轉(zhuǎn)去執(zhí)行片外程序存儲器內(nèi)的程序。當(dāng)輸入信號EA 引腳接低電平(接地)時(shí),CPU 只訪問外部EPROM/ROM 并執(zhí)行外部程序存儲器中的指令,而不管是否有片內(nèi)程序存儲器。</p><p
43、> 此引腳的第二功能是Vpp 是對8751 片內(nèi)EPROM固化編程時(shí),作為施加較高編程電壓(一般12V~21V)的輸入端。</p><p><b> 并行I/0口</b></p><p> P0口(P0.0~P0.7,39~32 腳):P0口是一個(gè)漏極開路的8 位準(zhǔn)雙向I/O口。作為漏極開路的輸出端口,每位能驅(qū)動8 個(gè)LS 型TTL 負(fù)載。當(dāng)P0 口作為輸
44、入口使用時(shí),應(yīng)先向口鎖存器(地址80H)寫入全1,此時(shí)P0 口的全部引腳浮空,可作為高阻抗輸入。在CPU 訪問片外存儲器時(shí),P0口分時(shí)提供低8 位地址和8 位數(shù)據(jù)的復(fù)用總線。在此期間,P0口內(nèi)部上拉電阻有效。</p><p> P1口(P1.0~P1.7,1~8 腳):P1口是一個(gè)帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P1口每位能驅(qū)動4 個(gè)LS 型TTL 負(fù)載。在P1口作為輸入口使用時(shí),應(yīng)先向P1口鎖存地址(9
45、0H)寫入全1,此時(shí)P1口引腳由內(nèi)部上拉電阻拉成高電平。</p><p> P2口(P2.0~P2.7,21~28 腳):P2口是一個(gè)帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P口每位能驅(qū)動4個(gè)LS 型TTL 負(fù)載。在訪問片外EPROM/RAM 時(shí),它輸出高8 位地址。</p><p> P3口(P3.0~P3.7,10~17 腳):P3口是一個(gè)帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P3口
46、每位能驅(qū)動4個(gè)LS型TTL負(fù)載。P3口與其它I/O 端口有很大的區(qū)別,它的每個(gè)引腳都有第二功能,如下:</p><p> P3.0:(RXD)串行數(shù)據(jù)接收。</p><p> P3.1:(RXD)串行數(shù)據(jù)發(fā)送。</p><p> P3.2:(INT0#)外部中斷0輸入。</p><p> P3.3:(INT1#)外部中斷1輸入。<
47、;/p><p> P3.4:(T0)定時(shí)/計(jì)數(shù)器0的外部計(jì)數(shù)輸入。</p><p> P3.5:(T1)定時(shí)/計(jì)數(shù)器1的外部計(jì)數(shù)輸入。</p><p> P3.6:(WR#)外部數(shù)據(jù)存儲器寫選通。</p><p> P3.7:(RD#)外部數(shù)據(jù)存儲器讀選通。</p><p> 4.1.3 80C51單片機(jī)的中斷系
48、統(tǒng)</p><p> 80C51系列單片機(jī)的中斷系統(tǒng)有5個(gè)中斷源,2個(gè)優(yōu)先級,可以實(shí)現(xiàn)二級中斷服務(wù)嵌套。由片內(nèi)特殊功能寄存器中的中斷允許寄存器IE控制CPU是否響應(yīng)中斷請求;由中斷優(yōu)先級寄存器IP安排各中斷源的優(yōu)先級;同一優(yōu)先級內(nèi)各中斷同時(shí)提出中斷請求時(shí),由內(nèi)部的查詢邏輯確定其響應(yīng)次序。</p><p> 4.1.4 80C51單片機(jī)的定時(shí)/計(jì)數(shù)器</p><p&g
49、t; 在單片機(jī)應(yīng)用系統(tǒng)中,常常會有定時(shí)控制需求,如定時(shí)輸出、定時(shí)檢測、定時(shí)掃描等;也經(jīng)常要對外部事件進(jìn)行計(jì)數(shù)。80C51單片機(jī)內(nèi)集成有兩個(gè)可編程的定時(shí)/計(jì)數(shù)器:T0和T1,它們既可以工作于定時(shí)模式,也可以工作于外部事件計(jì)數(shù)模式,此外,T1還可以作為串行口的波特率發(fā)生器。</p><p> 4.2 芯片DS18B20的說明</p><p> 4.2.1 DS18B20 的主要特性<
50、;/p><p> (1)適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V,在寄生電源方式下可由數(shù)據(jù)線供電</p><p> ?。?)獨(dú)特的單線接口方式,DS18B20 在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理與DS18B20 的雙向通訊</p><p> (3)DS18B20 支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20 可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫</
51、p><p> ?。?)DS18B20 在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)</p><p> ?。?)溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為±0.5℃</p><p> (6)可編程的分辨率為9~12 位,對應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可以實(shí)現(xiàn)高精度測溫
52、。</p><p> (7)在9位分辨率最多在93.75ms把溫度轉(zhuǎn)換成數(shù)字,12 位分辨率是最多可在750ms內(nèi)將溫度轉(zhuǎn)換成數(shù)字,速度更快。</p><p> ?。?)溫度測試結(jié)果直接轉(zhuǎn)換成數(shù)字溫度信號,以“一線總線”串行傳輸給CPU,同事科傳送SRC檢驗(yàn)碼,菊友極強(qiáng)的抗干擾校正能力。</p><p> ?。?)負(fù)壓特性:電源極性接反時(shí)芯片不會因發(fā)熱而燒毀,但不
53、會正常工作。</p><p> 4.3 液晶顯示器1602LCD的說明</p><p> 4.3.1接口信號說明:</p><p> 4.3.2控制命令表:</p><p> 4.3.3液晶顯示簡介</p><p> 液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙
54、,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,下圖是1602的內(nèi)部顯址。</p><p><b> 圖4—1</b></p><p><b> 液晶顯示原理</b></p><p> 液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖
55、形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、PDA移動通信工具等眾多領(lǐng)域。</p><p><b> ?、谝壕э@示器的分類</b></p><p> 液晶顯示的分類方法有很多種,通常可按其顯示方式分為段式、字符式、點(diǎn)陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動
56、方式來分,可以分為靜態(tài)驅(qū)動(Static)、單純矩陣驅(qū)動(Simple Matrix)和主動矩陣驅(qū)動(Active Matrix)三種。</p><p><b> ③字符的顯示</b></p><p> 用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由6×8或8×8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的
57、不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個(gè)字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對應(yīng)的代碼即可。</p><p><b> 5、軟件方案設(shè)計(jì)</b></p><p><b>
58、 5.1 程序流程圖</b></p><p><b> 圖5-1 總流程圖</b></p><p> 5.2 讀出溫度子程序</p><p> 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。如圖5-2示</p><p> 5-2讀出溫度子程
59、序流程圖</p><p> 5.3溫度轉(zhuǎn)換命令子程序</p><p> 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。如圖5-3所示:</p><p> 5.4 計(jì)算溫度子程序</p><p> 計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)
60、換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,如圖5-4所示。</p><p> 圖5-4計(jì)算溫度子程序流程圖</p><p> 5.5 顯示數(shù)據(jù)刷新子程序</p><p> 顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號顯示位移入下一位。</p><p><b> 圖5—5</b>&l
61、t;/p><p><b> 6、調(diào)試</b></p><p><b> 6.1、軟件仿真</b></p><p> 通過查找眾多資料,終于確定了整個(gè)設(shè)計(jì)方案,即使用80c51單片機(jī)和DS18B20作為本設(shè)計(jì)的核心芯片。有了以上資料和基本電路圖,經(jīng)過一段時(shí)間的看圖分析,終于弄明白了大概的數(shù)字溫度計(jì)原理,這才開始軟件仿真。&
62、lt;/p><p><b> 6.2.硬件調(diào)試</b></p><p> 買回所需元器件后,我便開始了焊接。因?yàn)橛辛艘郧岸鄠€(gè)課程設(shè)計(jì)的基礎(chǔ),我的焊接技術(shù)還算不錯(cuò),經(jīng)過差不多整整一天時(shí)間的焊接,實(shí)物的雛形基本形成。接下來是程序的燒寫,通過Keil C51編程軟件將程序燒寫進(jìn)單片機(jī),但結(jié)果不如人意,沒有顯示燈能亮,更無法實(shí)現(xiàn)充電功能。我對其進(jìn)行硬件方面的檢查,如焊點(diǎn)的漏焊
63、虛焊,又對程序進(jìn)行了分析,但最終沒能解決問題,本次課程設(shè)計(jì)基本以失敗告終。相信給我更多的時(shí)間和精力,我能把它做好。</p><p><b> 7、技術(shù)小結(jié)</b></p><p> 本次課設(shè)的任務(wù)是采用AT89C51單片機(jī)作控制器,溫度傳感器選用DS18B20來設(shè)計(jì)數(shù)字溫度計(jì),系統(tǒng)由3個(gè)模塊組成:主控制器、測溫電路及顯示電路。主控制器由單片AT89C2051實(shí)現(xiàn),
64、測溫電路由溫度傳感器DS18B20實(shí)現(xiàn),顯示電路由4位LED數(shù)碼管直讀顯示。</p><p> 通過本次課設(shè)使我學(xué)會了很多東西,通過自己找材料,向老師答疑,與同學(xué)討論,自己修改,研究,最終完成本次課設(shè)。在這個(gè)過程中,不但使我對單片機(jī)課程所學(xué)的知識有了更深入的了解,而且還培養(yǎng)了我的自學(xué)能力。有些不懂的問題通過向老師請教得到解決,使我受益匪淺。課設(shè)的過程是艱辛的,但是收獲是巨大的。首先,我再一次的加深鞏固了對已有的
65、知識的理解及認(rèn)識;其次,我第一次將課本知識運(yùn)用到了實(shí)際設(shè)計(jì),使得所學(xué)知識在更深的層次上得到了加深。再次,因?yàn)檫@次課程設(shè)計(jì)的確在某些方面存有一定難度,這對我來講都是一種鍛煉,培養(yǎng)了我自學(xué)、查閱搜集資料的能力;再有,計(jì)算操作工程中,我們曾經(jīng)面臨過失敗、品味過茫然,但是最終我還是堅(jiān)持下來了,這就是我意志、耐力和新年上的勝利,在今后的日子里,它必將成為我的寶貴財(cái)富。</p><p><b> 8、參考文獻(xiàn)&l
66、t;/b></p><p> 1、 楊素行著.模擬電子技術(shù)基礎(chǔ)(第二版) .北京:高等教育出版社,2006.</p><p> 2、 閻石著.數(shù)字電子技術(shù)基礎(chǔ)(第五版) .北京:高等教育出版社,2006.</p><p> 3 、李全利,仲偉峰,徐軍著.單片機(jī)原理及應(yīng)用.北京:清華大學(xué)社,2006.</p><p> 4 、何立
67、民著.單片機(jī)高級教程.北京:北京航空航天大學(xué)出版社,2000.</p><p> 5、 楊路明著.C語言程序設(shè)計(jì)教程(第2版) .北京:北京郵電大學(xué)出版社,2005.</p><p> 6、 馬忠梅,籍順心,張凱等著.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)(第4版) .北京:北京航天航空大學(xué)出版社,2007.</p><p> 7、白駒珩,雷曉平著.單片計(jì)算機(jī)及其應(yīng)用.成
68、都:電子科技大學(xué)出版社,1997.</p><p> 8、譚浩強(qiáng)著.程序設(shè)計(jì)與開發(fā)技術(shù).北京:清華大學(xué)出版社,1991.</p><p> 9、 鐘富昭著.8051單片機(jī)典型模塊設(shè)計(jì)與應(yīng)用.北京:人民郵電出版,2007.</p><p> 10、 于永,戴佳,常江著.51單片機(jī)C語言常用模塊與綜合系統(tǒng)設(shè)計(jì)實(shí)例精講.北京:電子工業(yè)出版社,2007.</p&
69、gt;<p> 11、 梁翎著.C語言程序設(shè)計(jì)實(shí)用技巧與程序?qū)嵗?上海:上海科普出版社,1998.</p><p><b> 9.附錄</b></p><p> 9.1附錄一:程序清單 </p><p> #include <AT89X51.H></p><p> #include
70、<intrins.h></p><p> #include<absacc.h></p><p> #define uint unsigned int</p><p> #define unchar unsigned char</p><p> unchar templ,temph,i,y,z,n;</p&
71、gt;<p> unchar a,b;//LCD的變量</p><p> unchar sign=0;//標(biāo)志變量</p><p> bit k;//判斷正負(fù)變量</p><p> sbit dq=P3^5;</p><p> sbit rs=P2^0;//LCD顯示的定義取值</p><p&g
72、t; sbit rw=P2^1;</p><p> sbit e=P2^2;</p><p> sbit bf=P0^7;</p><p> sbit DQ=P2^5;</p><p><b> //鍵盤定義</b></p><p> sbit read=P3^0;</p>
73、<p> sbit incH=P3^2;</p><p> sbit desH=P3^3;</p><p> sbit reset=P3^4;</p><p><b> //蜂鳴器</b></p><p> sbit BUZZER=P2^6;</p><p> float
74、 t4,t5,t6,t7,tt;//溫度轉(zhuǎn)換的變量</p><p><b> uint tp;</b></p><p> unchar temperature,Htemp,Ltemp;</p><p> unchar D1,D2,D3;</p><p> uint D4,D5,D6,D9,D7,D8;</p
75、><p> unchar code dis1[]={"0123456789"};</p><p> unchar code dis2[]={"temp:"};</p><p> unchar code dis3[]={"WARN"};</p><p> unchar code
76、dis4[]={"Htemp:"};</p><p> unchar code dis5[]={"working"};</p><p> unchar code dis6[]={"Ltemp:"};</p><p> bit flag_1820_1;</p><p> bi
77、t flag_1820_2;</p><p> void delay_ms(unsigned char time);</p><p> void ledshow(void);</p><p> void keypress(void);</p><p> void init(void);</p><p> vo
78、id gettemp();</p><p> void init1820(void);</p><p> void write1820(unchar);</p><p> unsigned char read1820(void);</p><p> void delay_us(unchar);</p><p>
79、 void delay3(unchar);</p><p><b> /* 延時(shí)*/</b></p><p> void delay(uint t)</p><p><b> {uint i;</b></p><p> while(t--)</p><p> {
80、 for(i=0;i<125;i++)</p><p><b> {}</b></p><p><b> }</b></p><p><b> }</b></p><p><b> //LCD顯示函數(shù)</b></p><p
81、> void delay1(unchar time)</p><p> {unchar n;</p><p><b> n=0;</b></p><p> while(n<time)</p><p><b> {n++;}</b></p><p>&l
82、t;b> return;</b></p><p><b> }</b></p><p> void delay3(unchar x)</p><p> { for(y=x;y>0;y--)</p><p> for(z=x;z>0;z--);</p><p&g
83、t;<b> }</b></p><p> unchar testBF()</p><p> { bit result;</p><p> rs=0;rw=1;e=1;</p><p> _nop_();_nop_();_nop_();_nop_();</p><p> result
84、=bf;e=0;</p><p> return result;</p><p><b> }</b></p><p> void writecmd(unchar ZL)</p><p> { while(testBF()==1);</p><p> rs=0;rw=0;e=0;<
85、/p><p> _nop_();_nop_();</p><p> P0=ZL;e=1;</p><p> _nop_();_nop_();_nop_();_nop_();</p><p><b> e=0;</b></p><p><b> }</b></p&g
86、t;<p> void pos(unchar pos)</p><p> {writecmd(pos|0x80);</p><p><b> }</b></p><p> void writedate(unchar date)</p><p> {while(testBF()==1);</
87、p><p> rs=1;rw=0;e=0;</p><p> _nop_();_nop_();</p><p> P0=date;e=1;</p><p> _nop_();_nop_();_nop_();_nop_();</p><p><b> e=0;</b></p>&
88、lt;p><b> }</b></p><p> void init()</p><p> {delay3(20);</p><p> writecmd(0x38);</p><p> delay3(30);</p><p> writecmd(0x0d);</p>
89、<p> delay3(30);</p><p> writecmd(0x06);</p><p> delay3(30);</p><p> writecmd(0x01);</p><p> delay3(30);</p><p><b> }</b></p>
90、;<p><b> //鍵盤程序</b></p><p><b> //主程序</b></p><p> void main(void)</p><p><b> {</b></p><p> TMOD=0x01;</p><p>
91、; TH0=50000/256;</p><p> TL0=50000%256;</p><p> Htemp=124;Ltemp=-24;</p><p><b> P3=0xFF;</b></p><p><b> init();</b></p><p>
92、if(sign==0)</p><p> {EA=1;TR0=1;ET0=1;</p><p> EX0=0; //關(guān)閉外部中斷0</p><p> EX1=0; //關(guān)閉外部中斷1 </p><p><b> while(1)</b></p><p><b>
93、 {</b></p><p> if(read==0)</p><p><b> {</b></p><p> delay3(2000);</p><p> if(read==0)</p><p><b> {sign++;}</b></p>
94、<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(sign==1)</p><p><b> {</b></p><p> B
95、UZZER=1; //關(guān)閉蜂鳴器</p><p> EX0=1; //開啟外部中斷0</p><p> EX1=1; //開啟外部中斷1</p><p><b> init();</b></p><p><b> pos(0);</b></p><p&g
96、t; for(i=0;i<6;) </p><p> { writedate(dis4[i]);i++;</p><p><b> }</b></p><p> D6=Htemp%10;</p><p> D7=Htemp%100/10;</p><p> D8=Htemp/10
97、0;</p><p><b> pos(0x6);</b></p><p> writedate(dis1[D8]);</p><p> writedate(dis1[D7]);}</p><p> if(sign==2)</p><p> {BUZZER=1; //關(guān)閉蜂鳴器&
98、lt;/p><p> EX0=1; //開啟外部中斷0</p><p> EX1=1; //開啟外部中斷1</p><p><b> init();</b></p><p><b> pos(0);</b></p><p> for(i=0;i<6;)
99、 </p><p> { writedate(dis6[i]);i++;}</p><p> D6=Htemp%10;</p><p> D7=Htemp%100/10;</p><p> D8=Htemp/100;</p><p><b> pos(0x6);</b></p&g
100、t;<p> writedate(dis1[D8]);</p><p> writedate(dis1[D7]);</p><p> writedate(dis1[D6]);</p><p><b> }</b></p><p> if(sign>2)</p><p&g
101、t; { sign=0;}</p><p><b> }</b></p><p><b> //中斷程序</b></p><p> void int0(void) interrupt 0</p><p><b> {</b></p><p&
102、gt; EX0=0; //關(guān)外部中斷0</p><p> if(desH==0&&sign==1)</p><p><b> {</b></p><p><b> Htemp--;</b></p><p> if(Htemp<Ltemp)</p>
103、<p> Htemp=Ltemp;</p><p><b> }</b></p><p> else if(desH==0&&sign==2)</p><p><b> {</b></p><p><b> Ltemp--;</b><
104、;/p><p><b> }</b></p><p><b> }</b></p><p> /*****外部中斷1服務(wù)程序*****/</p><p> void int1(void) interrupt 2</p><p><b> {</b>
105、</p><p> EX1=0; //關(guān)外部中斷1</p><p> if(incH==0&&sign==1)</p><p><b> {</b></p><p><b> Htemp++;</b></p><p><b> }
106、</b></p><p> else if(incH==0&&sign==2)</p><p><b> {</b></p><p><b> Ltemp++;</b></p><p> if(Ltemp>Htemp)</p><p>
107、; Ltemp=Htemp;</p><p><b> } </b></p><p><b> }</b></p><p> //定時(shí)器T0服務(wù)程序</p><p> void isr_t0(void) interrupt 1</p><p> {TH0=5
108、0000/256;</p><p> TL0=50000%256;</p><p> TMOD=0x10;</p><p> TH1=50000/256;</p><p> TL1=50000%256;</p><p> gettemp();</p><p> delay(50);&
109、lt;/p><p> if (tp<Htemp)</p><p> { BUZZER=1;</p><p> pos(0x04);</p><p> for(i=0;i<7;)</p><p><b> {</b></p><p> writedate
110、(dis5[i]);</p><p><b> i++;</b></p><p><b> }</b></p><p> pos(0x40);</p><p> for(i=0;i<5;)</p><p> {writedate(dis2[i]);</p
111、><p><b> i++;}</b></p><p> D1=(unchar)(tp%10);</p><p> D2=(unchar)(tp%100/10);</p><p> D3=(unchar)(tp/100);</p><p> D4=(uint)(tt*10);</p&g
112、t;<p> D5=((uint)(tt*100))%10;</p><p><b> if(k==1)</b></p><p> {pos(0x46);</p><p> writedate('-');}</p><p><b> else</b></
113、p><p> {pos(0x46);</p><p> writedate();}</p><p> pos(0x47);</p><p> writedate(dis1[D3]);</p><p> writedate(dis1[D2]);</p><p> writedate(dis
114、1[D1]);</p><p> writedate('.');</p><p> writedate(dis1[D4]);</p><p> writedate(dis1[D5]);</p><p> writedate(0xdf);</p><p> writedate('C
115、9;);</p><p><b> }</b></p><p><b> else</b></p><p> { init();</p><p> pos(0x04);</p><p> for(i=0;i<4;)</p><p>
116、<b> {</b></p><p> writedate(dis3[i]);</p><p><b> i++;}</b></p><p><b> BUZZER=0;</b></p><p><b> }</b></p><
117、;p><b> }</b></p><p> //DS18B20讀取溫度</p><p> void gettemp()</p><p><b> { </b></p><p> init1820();</p><p> write1820(0xcc);&
118、lt;/p><p> write1820(0x44);</p><p> init1820();</p><p> write1820(0xcc);</p><p> write1820(0xbe);</p><p> templ=read1820();//低8位(其中的第四位是小數(shù)點(diǎn)后的)</p>
119、<p> temph=read1820();//高8位(其中前五位是符號值)</p><p> z=temph;//把符號位留下判斷正負(fù)</p><p> k=(bit)(z>>7);</p><p> if(k==1) //負(fù)數(shù)就取反加一</p><p> { templ=~templ;<
120、;/p><p> templ=templ+1;</p><p> temph=~temph;</p><p><b> }</b></p><p><b> else</b></p><p> {templ=templ;</p><p> te
121、mph=temph;}</p><p><b> n=templ;</b></p><p><b> y=n&0x01;</b></p><p> t7=y*0.0625;</p><p><b> n>>=1;</b></p><
122、;p> y=n&0x01;//小數(shù)點(diǎn)最后的數(shù)</p><p> t4=y* 0.125;</p><p><b> n>>=1;</b></p><p><b> y=n&0x01;</b></p><p> t5=y* 0.25;</p>
123、<p><b> n>>=1;</b></p><p><b> y=n&0x01;</b></p><p><b> t6=y*0.5;</b></p><p> tt=t4+t5+t6+t7;</p><p> init1820();
124、</p><p> tp=temph*256+templ;</p><p> temperature=tp;</p><p><b> tp=tp>>4;</b></p><p><b> }</b></p><p><b> //1820初始
125、化</b></p><p> void init1820()</p><p><b> {</b></p><p> DQ = 1; _nop_();</p><p> DQ = 0; </p><p> delay_us(125); //延時(shí)510us,<
126、/p><p> delay_us(125);</p><p> DQ = 1; </p><p> delay_us(15); </p><p> while(DQ) </p><p> { _nop_(); }</p><p> delay_us(60); <
127、/p><p> DQ = 1; </p><p><b> }</b></p><p> //******write********</p><p> void write1820(unchar a)</p><p><b> {</b></p>
128、<p><b> unchar i;</b></p><p> for(i=0;i<8;i++)</p><p> {if(a & 0x01) //低位在前;</p><p> {DQ = 0; </p><p> _nop_();_nop_();_nop_();</p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--基于數(shù)字溫度傳感器的數(shù)字溫度計(jì)報(bào)告
- 數(shù)字溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--數(shù)字溫度計(jì)
- 基于數(shù)字溫度傳感器的數(shù)字溫度計(jì)課程設(shè)計(jì)
- 數(shù)字溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)—數(shù)字溫度計(jì)
- 單片機(jī)數(shù)字溫度計(jì)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)—數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--數(shù)字溫度計(jì)
- 溫度計(jì)課程設(shè)計(jì)---基于51單片機(jī)數(shù)字溫度計(jì)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——數(shù)字溫度計(jì)
- 單片機(jī)課程設(shè)計(jì)—數(shù)字溫度計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---數(shù)字溫度計(jì)設(shè)計(jì)
評論
0/150
提交評論