版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 多路溫度測(cè)量系統(tǒng)設(shè)計(jì)</p><p><b> 年 月</b></p><p><b> 信息技術(shù)學(xué)院</b></p><p> 課 程 設(shè) 計(jì) 任 務(wù) 書</p><p><b> 一、課程設(shè)計(jì)課題:</b></p><
2、p> 多路溫度測(cè)量采集系統(tǒng)</p><p> 二、課程設(shè)計(jì)工作日自 2013 年 12 月 1 日至 2013 年 12 月 20 日</p><p> 三、課程設(shè)計(jì)進(jìn)行地點(diǎn): 信息館320 </p><p> 程設(shè)計(jì)任務(wù)要求: (詳細(xì)內(nèi)容見(jiàn)課程設(shè)計(jì)文檔)</p>&l
3、t;p><b> 1.課題來(lái)源:</b></p><p><b> 教師下發(fā)</b></p><p><b> 2.目的意義:</b></p><p> 1、培養(yǎng)理論聯(lián)系實(shí)際的正確思想,訓(xùn)練綜合應(yīng)用已經(jīng)學(xué)過(guò)的理論知識(shí)和生產(chǎn)實(shí)際知識(shí)去綜合解決工程實(shí)際問(wèn)題的能力。</p>&l
4、t;p> 2、學(xué)習(xí)較復(fù)雜電子系統(tǒng)設(shè)計(jì)的一般方法,了解和掌握模擬、數(shù)字電路等知識(shí)解決電子信息方面常見(jiàn)實(shí)際問(wèn)題的能力,由有學(xué)生自行設(shè)計(jì)和調(diào)試。</p><p> 3、進(jìn)行基本技能和技術(shù)訓(xùn)練,如掌握設(shè)計(jì)資料、手冊(cè)、標(biāo)準(zhǔn)和規(guī)范以及使用繪圖軟件和仿真軟件等。</p><p><b> 3.基本要求:</b></p><p> 1、采用單片機(jī)
5、80C51實(shí)現(xiàn)八路溫度檢測(cè);2、要求溫度范圍0℃~100℃之間; 3、精度達(dá)到±1%,分辨率≤0.1℃;4、在LED中顯示溫度;5、用繪圖軟件畫出總體電路圖;6、提交格式符合要求,內(nèi)容完整的設(shè)計(jì)報(bào)告。</p><p><b> 課程設(shè)計(jì)評(píng)審表</b></p><p><b> 目錄</b></p><p>
6、 1.設(shè)計(jì)任務(wù)要求2</p><p><b> 2.方案比較2</b></p><p> 2.1 課題分析2</p><p> 2.1.1 溫度傳感器的選擇2</p><p> 2.1.2 顯示部分3</p><p> 2.1.3 主控芯片的選擇3</p>
7、;<p> 3.單元電路設(shè)計(jì)3</p><p> 3.1.最小系統(tǒng)電路3</p><p> 3.1.1 單片機(jī)及其管腳說(shuō)明4</p><p> 3.2.復(fù)位電路6</p><p> 3.3.晶振電路6</p><p> 3.4.溫度采集電路7</p>&l
8、t;p> 3.4.1 DS18B20的讀寫程序和單總線協(xié)議的實(shí)現(xiàn)8</p><p> 3.5.電源電路12</p><p> 3.6.按鍵輸入電路12</p><p> 3.7.數(shù)目管顯示電路13</p><p> 3.8.聲光報(bào)警模塊電路15</p><p> 4.整體電路
9、16</p><p> 5.軟件設(shè)計(jì)18</p><p> 5.1 工作方案簡(jiǎn)介18</p><p> 5.2 主程序流程圖18</p><p> 5.3 功能模塊19</p><p> 5.4 由DS18B20完成溫度檢測(cè)模塊19</p><p>
10、 5.5 按鍵輸入模塊23</p><p> 5.6 聲光報(bào)警模塊23</p><p><b> 總結(jié)與體會(huì)24</b></p><p><b> 致謝26</b></p><p><b> 參考文獻(xiàn)27</b></p><p
11、> 附錄一元器件清單28</p><p> 附錄二軟件清單28</p><p><b> 設(shè)計(jì)任務(wù)要求</b></p><p> 采用單片機(jī)80C51實(shí)現(xiàn)八路溫度檢測(cè),要求測(cè)量溫度范圍0℃~100℃之間;并在LED中顯示溫度;溫度傳感器選用模擬和數(shù)字的都可以,要求精度達(dá)到±1% ;分辨率≤0.1℃ ;直流穩(wěn)壓電源自行
12、設(shè)計(jì);輔助電路及元器件自選。</p><p><b> 方案比較</b></p><p><b> 2.1 課題分析</b></p><p> 對(duì)于多路溫度測(cè)量,溫度探頭的低功耗是十分重要的,同時(shí)還要滿足易于控制的條件,測(cè)溫范圍也必須達(dá)到或超過(guò)題目要求。因此選擇合適的溫度傳感器成為本次設(shè)計(jì)的重中之重</p>
13、;<p> 2.1.1 溫度傳感器的選擇</p><p> 根據(jù)題目要求,設(shè)計(jì)一溫度測(cè)量電路,能夠通過(guò)溫度傳感器測(cè)量并顯示被測(cè)量點(diǎn)的溫度,常用的溫度傳感器可分為3大類:</p><p><b> 方案一:熱電偶式</b></p><p> 熱電偶具有構(gòu)造簡(jiǎn)單,適用溫度范圍廣,使用方便,承受熱機(jī)械沖擊能力強(qiáng)以及響應(yīng)速度快等
14、特點(diǎn),常用于高溫區(qū)域, 振動(dòng)沖擊大等惡劣環(huán)境以及適合于微小結(jié)構(gòu)測(cè)溫場(chǎng)合;但其信號(hào)輸出靈敏度比較低,容易受到環(huán)境干擾和前置放大器溫度漂移的影響,因此不適合測(cè)量微小的溫度變化。</p><p><b> 方案二:電阻式</b></p><p> 電阻式可用來(lái)測(cè)量-220~850℃范圍內(nèi)的溫度,少數(shù)情況下,低溫可測(cè)量至-272℃,高溫可測(cè)量至1000℃,互換性差,非線性
15、嚴(yán)重,在腐蝕介質(zhì)中使用時(shí),易氧化,因此,只能用于低溫及無(wú)腐蝕性的介質(zhì)中。雖然測(cè)量溫度范圍廣,但熱穩(wěn)定性差。</p><p><b> 方案三:數(shù)字式</b></p><p> DS18B20溫度傳感器。DS18B20溫度傳感器為“一線式器件”,體積更小、適用電壓更寬、更方便。其測(cè)量溫度范圍為 -55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.
16、5℃,有十二位分辨率。其內(nèi)部有A/D、D/A轉(zhuǎn)換裝置,用戶可以設(shè)置溫度的上下限,并具可以直接與單片機(jī)進(jìn)行通訊?,F(xiàn)場(chǎng)溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。采用1-Wire公眾域(PD)軟件應(yīng)用程序接口,采用循環(huán)程序結(jié)構(gòu)實(shí)現(xiàn)查看任何一個(gè)檢測(cè)點(diǎn)的編號(hào)、溫度值等數(shù)據(jù)指示,實(shí)現(xiàn)了多個(gè)檢測(cè)點(diǎn)數(shù)據(jù)的自動(dòng)化監(jiān)管。</p><p> 考慮題目測(cè)溫范圍要求以及測(cè)量數(shù)據(jù)的準(zhǔn)確性要求選擇方案三。</p&
17、gt;<p> 2.1.2 顯示部分</p><p> 方案一:使用液晶顯示屏顯示轉(zhuǎn)換結(jié)果。液晶顯示屏(LCD)具有輕薄短小,平面顯示以及影像穩(wěn)定不閃爍等優(yōu)勢(shì),能顯示漢字及各種符號(hào),可以繪制曲線和簡(jiǎn)單的圖像,分辨率高,抗干擾能力強(qiáng)和顯示形式靈活等優(yōu)點(diǎn)。</p><p> 方案二:使用傳統(tǒng)的數(shù)碼顯示管。數(shù)碼管(LED)受外界環(huán)境影響小,顯示明亮,編程簡(jiǎn)單,占用資源較少。
18、</p><p> 由于課程設(shè)計(jì)要求采用LED顯示,所以只能采用方案二。</p><p> 2.1.3 主控芯片的選擇</p><p> 本系統(tǒng)主要有采集溫度模塊,顯示模塊,報(bào)警模塊。在綜合考慮對(duì)芯片的熟悉程度及功能的實(shí)現(xiàn)程度上。決定在主板上采用AT89S52芯片,AT89S52片內(nèi)含4k bytes的可反復(fù)擦鞋的只讀程序存儲(chǔ)器(PEROM)和128 byt
19、es的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM), 32個(gè)I/O 口線完全能夠滿足對(duì)數(shù)據(jù)的處理要求。</p><p> 雖然市面上有著功能更為強(qiáng)大的單片機(jī)芯片,但都價(jià)格不菲。而本設(shè)計(jì)本著簡(jiǎn)單實(shí)用,精簡(jiǎn)節(jié)約的原則,我們選擇了AT89S52芯片。</p><p><b> 單元電路設(shè)計(jì)</b></p><p><b> 最小系統(tǒng)電路</b&
20、gt;</p><p> 在課程設(shè)計(jì)所研究的多路溫度采集系統(tǒng)中的的MCU控制模塊是由AT89S52單片機(jī)構(gòu)成的最小系統(tǒng),如圖3-1。該模塊是硬件系統(tǒng)的核心部分,它負(fù)責(zé)對(duì)DS18B20所采集的溫度信息進(jìn)行處理并向LED發(fā)送實(shí)習(xí)數(shù)據(jù)顯示采集到的溫度信息,完成多路溫度采集系統(tǒng)的要求。</p><p> 圖3-1:AT89S52最小系統(tǒng)</p><p> 3.1.1
21、 單片機(jī)及其管腳說(shuō)明</p><p> AT89S52是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和
22、輸出管腳相兼容。下面指出了各個(gè)管腳的用途。</p><p><b> VCC:供電電壓。</b></p><p><b> GND:接地。</b></p><p> P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8個(gè)TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,
23、它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。</p><p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接
24、收。 </p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特
25、殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。</p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口, P3口管腳 備選功如下:</p>
26、<p> P3.0 RXD(串行輸入口)</p><p> P3.1 TXD(串行輸出口)</p><p> P3.2 /INT0(外部中斷0)</p><p> P3.3 /INT1(外部中斷1)</p><p> P3.4 T0(記時(shí)器0外部輸入)</p><p> P3.5 T1(記時(shí)器1外
27、部輸入)</p><p> P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p> P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。</p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>
28、 ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器,地址鎖存允許的輸出電平用于鎖存地址地位字節(jié)。</p><p> /PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。</p><p> /EA/VPP:在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p>
29、<p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。</p><p> XTAL2:來(lái)自反向振蕩器的輸出</p><p><b> 復(fù)位電路</b></p><p> 復(fù)位電路的基本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號(hào)。為可靠起見(jiàn),電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào),以防電源開(kāi)
30、關(guān)或電源插頭分-合過(guò)程中引起的抖動(dòng)而影響復(fù)位。圖3-2所示的RC復(fù)位電路可以實(shí)現(xiàn)上述基本功能。</p><p> 圖3-2:RC復(fù)位電路</p><p><b> 晶振電路</b></p><p> 晶振是晶體振蕩器的簡(jiǎn)稱,在電氣上它可以等效成一個(gè)電容和一個(gè)電阻并聯(lián)再串聯(lián)一個(gè)電容的二端網(wǎng)絡(luò),電工學(xué)上這個(gè)網(wǎng)絡(luò)有兩個(gè)諧振點(diǎn),以頻率的高低分其中
31、較低的頻率是串聯(lián)諧振,較高的頻率是并聯(lián)諧振。由于晶體自身的特性致使這兩個(gè)頻率的距離相當(dāng)?shù)慕咏谶@個(gè)極窄的頻率范圍內(nèi),晶振等效為一個(gè)電感,所以只要晶振的兩端并聯(lián)上合適的電容它就會(huì)組成并聯(lián)諧振電路,如圖3-3晶體震蕩電路所示。這個(gè)并聯(lián)諧振電路加到一個(gè)負(fù)反饋電路中就可以構(gòu)成正弦波振蕩電路,由于晶振等效為電感的頻率范圍很窄,所以即使其他元件的參數(shù)變化很大,這個(gè)振蕩器的頻率也不會(huì)有很大的變化。</p><p> 晶振有
32、一個(gè)重要的參數(shù),那就是負(fù)載電容值,選擇與負(fù)載電容值相等的并聯(lián)電容,就可以得到晶振標(biāo)稱的諧振頻率。</p><p> 一般的晶振振蕩電路都是在一個(gè)反相放大器(注意是放大器不是反相器)的兩端接入晶振,再有兩個(gè)電容分別接到晶振的兩端,每個(gè)電容的另一端再接到地,這兩個(gè)電容串聯(lián)的容量值就應(yīng)該等于負(fù)載電容,請(qǐng)注意一般IC的引腳都有等效輸入電容,這個(gè)不能忽略。</p><p><b> 圖
33、3-3:晶體電路</b></p><p><b> 溫度采集電路</b></p><p> 本系統(tǒng)利用DS18B20完成溫度采集及轉(zhuǎn)換工作,而單片機(jī)89S52起實(shí)時(shí)控制及發(fā)送數(shù)據(jù)給LED顯示作用.可以將多個(gè)DS18B20與單片機(jī)一位總線相連,形成多點(diǎn)測(cè)溫, 本設(shè)計(jì)研究八片DS18B20與單片機(jī)構(gòu)成的測(cè)溫系統(tǒng)。DS18B20與單片機(jī)接口電路如圖3-4八路
34、溫度采集電路所示.</p><p> 圖3-4八路溫度采集電路</p><p> 3.4.1 DS18B20的讀寫程序和單總線協(xié)議的實(shí)現(xiàn)</p><p> DS18B20的讀寫程序和測(cè)溫程序相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。 DS18B20測(cè)溫原理中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固
35、定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度
36、。圖3-5中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。</p><p> 圖3-5 DS18B20測(cè)溫原理框圖</p><p> DS18B20有4個(gè)主要的數(shù)據(jù)部件: </p><p> ?。?)光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開(kāi)始8位(28H)
37、是產(chǎn)品類型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。 </p><p> ?。?)DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625℃/LSB形式表達(dá),其中S為
38、符號(hào)位。</p><p> 這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在18B20的兩個(gè)8比特的RAM中,二進(jìn)制中的前面5位是符號(hào)位,如果測(cè)得的溫度大于0,這5位為0,只要將測(cè)到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測(cè)到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。 </p><p> 例如+125℃的數(shù)字輸出為07D0H,+25.0625℃的數(shù)字輸出
39、為0191H,-25.0625℃的數(shù)字輸出為FF6FH,-55℃的數(shù)字輸出為FC90H。</p><p> ?。?)DS18B20溫度傳感器的存儲(chǔ)器 </p><p> DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。 </p><p><b> ?。?
40、)配置寄存器 </b></p><p> 該字節(jié)各位的意義如下:</p><p> 表3-1 配置寄存器結(jié)構(gòu)</p><p> 低五位一直都是"1",TM是測(cè)試模式位,用于設(shè)置DS18B20在工作模式還是在測(cè)試模式。在DS18B20出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。R1和R0用來(lái)設(shè)置分辨率,如下表3-1所示:(DS18B20
41、出廠時(shí)被設(shè)置為12位)</p><p> 表3-2 溫度分辨率設(shè)置表</p><p> 本設(shè)計(jì)采用多個(gè)溫度傳感器DS18B20對(duì)溫度進(jìn)行采樣,從而進(jìn)行溫度的檢測(cè)與控制。因?yàn)镈S18B20是使用單總線協(xié)議的,所以具有單總線的優(yōu)點(diǎn),本設(shè)計(jì)通過(guò)對(duì)DS18B20的使用,使讀者對(duì)單總線協(xié)議有了更深的認(rèn)識(shí)。下面就DS18B20芯片的特性進(jìn)行一下介紹。</p><p> 與
42、 DALLAS 公司早期生產(chǎn)的 DS1820 相比,DS18B20具有如下特點(diǎn):</p><p> ?。?) 精度:DS18B20 在-10℃~+85℃范圍內(nèi)精度為+-0.5℃。</p><p> ?。?) 分辨率:DS18B20 的分辨率由9~12位(包括1位符號(hào)位)數(shù)據(jù)在線編程決定。</p><p> ?。?) 溫度轉(zhuǎn)換時(shí)間:DS18B20 的轉(zhuǎn)換時(shí)間與設(shè)定的分
43、辨率有關(guān),當(dāng)設(shè)定為9位時(shí),最大轉(zhuǎn)換時(shí)間為93.75ms;10位時(shí),為187.5ms;11位時(shí),為375ms;12位時(shí),為750ms。</p><p> ?。?) 電源電壓范圍:在保證溫度轉(zhuǎn)換精度為+-0.5℃的情況下,電源電壓可為+3.0V~+5.5。</p><p> ?。?) 程序設(shè)置寄存器:該寄存器主要用來(lái)設(shè)置分辨率位數(shù)的。</p><p> ?。?) 64位
44、ROM編碼:從高位算起,該ROM有一個(gè)字節(jié)的CRC校驗(yàn)碼,6個(gè)字節(jié)的產(chǎn)品序號(hào)和一個(gè)字節(jié)的家族代碼。對(duì)于家族代碼, DS18B20是28H。</p><p> ?。?) 溫度數(shù)據(jù)寄存器:寄存器由兩個(gè)字節(jié)組成,DS18B20 對(duì)于12 位的分辨率為2-4℃,如圖3.6所示[4]。</p><p> Msb 單位=℃
45、 Lsb</p><p><b> 符號(hào)位</b></p><p> 圖3.6 DS18B20的分辨率</p><p> ?。?) 內(nèi)部存儲(chǔ)器分配:DS18B20H 高速暫存寄存器是DS18B20 高速暫存寄存器的存儲(chǔ)分配</p><p> DS18B20 采用TO—92封裝或8腳SOIC封裝。其引腳排
46、列及含義如下圖3-6所示。</p><p> DS18B20 的供電方式有兩種: 一種是寄生電源;另一種為外電源供電,因?yàn)槎鄠€(gè)器件掛在總線上,為了識(shí)別不同的器件,在程序設(shè)計(jì)中一般有四個(gè)步驟:初始化命令;傳送ROM 命令;傳送RAM命令;數(shù)據(jù)交換命令。本設(shè)計(jì)在軟件介紹部分會(huì)就DS18B20 溫度傳感器件具體介紹其每一部分的時(shí)序。</p><p><b> 電源電路</b&
47、gt;</p><p> 電源能否提供穩(wěn)定的電壓是一個(gè)系統(tǒng)能否穩(wěn)定運(yùn)行的前提,沒(méi)有一個(gè)穩(wěn)定的硬件系統(tǒng)作為基礎(chǔ),所有的軟件控制都無(wú)從談起,所以系統(tǒng)電源必須是穩(wěn)定可靠的。線性電源技術(shù)很成熟,制作成本較低,可以達(dá)到很高的穩(wěn)定度,波紋也很小,而且沒(méi)有開(kāi)關(guān)電源具有的干擾與噪音,在這里選擇用線性穩(wěn)壓芯片LM7805,其電路圖如圖3-8:LM7805電源電路。用lm78系列三端穩(wěn)壓IC來(lái)組成穩(wěn)壓電源所需的外圍元件極少,電路內(nèi)
48、部還有過(guò)流、過(guò)熱及調(diào)整管的保護(hù)電路,使用起來(lái)可靠、方便,而且價(jià)格便宜。</p><p> 圖3-8:LM7805電源電路</p><p><b> 按鍵輸入電路</b></p><p> 按鍵的設(shè)置可以將報(bào)警的溫度上限進(jìn)行修改。當(dāng)按鍵按下時(shí),相應(yīng)的I/O為低電平,單片機(jī)會(huì)自行判斷程序的設(shè)置值,并且在LED上顯示出來(lái);設(shè)置按鍵與單片機(jī)的pi
49、n腳接口圖如圖3-9按鍵輸入電路</p><p> 圖3-9按鍵輸入電路</p><p><b> 數(shù)目管顯示電路</b></p><p> 數(shù)碼管在工業(yè)控制中有著很廣泛的應(yīng)用,例如用來(lái)顯示溫度、數(shù)量、重量、日期、時(shí)間,還可以用來(lái)顯示比賽的比分等,具有顯示醒目、直觀的優(yōu)點(diǎn).無(wú)論是共陰極還是共陽(yáng)極的數(shù)碼管,都分段碼和位碼,要想讓它亮必須驅(qū)動(dòng)
50、它! 以共陽(yáng)極4位數(shù)碼管為例,即首先要選中你想要電亮的數(shù)碼管的位,要想讓4個(gè)數(shù)碼管全亮須4個(gè)位全選中,所謂選中的含義就是給高電平(共陽(yáng)極)。數(shù)碼管分8個(gè)段,即段碼,每個(gè)段的亮滅都對(duì)應(yīng)著一個(gè)數(shù)字或字母,想讓哪一段亮就給哪段送低電平。其中掃描分靜態(tài)掃描和動(dòng)態(tài)掃描! 靜態(tài)掃描比動(dòng)態(tài)掃描簡(jiǎn)單些。動(dòng)態(tài)掃描他在沒(méi)個(gè)時(shí)間只能點(diǎn)亮一位數(shù)碼管,但是由于掃描頻率的設(shè)置,單片機(jī)的速度是很快的,但幾十MS內(nèi)就能讓4位數(shù)碼管循環(huán)亮滅很多次,這些人的肉眼是分辨不出
51、來(lái)的,數(shù)碼管的亮度可以通過(guò)軟件設(shè)置(掃描頻率的設(shè)置)調(diào)整。</p><p> 每個(gè)數(shù)碼管都有a、b、c、d、e、f、g七個(gè)筆劃和一個(gè)小數(shù)點(diǎn)DP,這八個(gè)聯(lián)對(duì)應(yīng)二極管陽(yáng)極,陰極都聯(lián)在一起(稱共陰極)。以四位數(shù)碼管矩陣為例,四個(gè)數(shù)碼管的a、b、c、d、e、f、g七個(gè)筆劃和一個(gè)小數(shù)點(diǎn)DP電極分別并聯(lián)在一起。當(dāng)c行高電平,3列低電平,其他行列都為高阻態(tài)時(shí),第三個(gè)數(shù)碼管的c筆劃亮,通過(guò)掃描方式在1/20秒內(nèi)四個(gè)數(shù)碼管的筆劃
52、該亮的都亮一次,由于視覺(jué)暫留,就會(huì)看到結(jié)果。</p><p> 本設(shè)計(jì)是通過(guò)三極管來(lái)驅(qū)動(dòng)數(shù)碼管顯示,當(dāng)基極電流很小時(shí),無(wú)論基極電流如何變化,集電極電流都接近為0,集電極電流不隨基極電流而變化,也就是管子不導(dǎo)通;當(dāng)基極電流增大到一定值以后,集電極電流此后大于0,且集電極電流隨著基極電流而變化,這是放大狀態(tài);當(dāng)基極電流繼續(xù)增大,達(dá)到一定值以后,集電極電流此后再也大不上去了,此后即便是基極電流再增加,集電極電流也不能
53、增大,即飽和了。對(duì)于單片機(jī)端口通過(guò)晶體管驅(qū)動(dòng)負(fù)載的情況,無(wú)論負(fù)載是數(shù)碼管還是繼電器,晶體管都只能工作在截止?fàn)顟B(tài)或飽和狀態(tài),是不能工作在放大狀態(tài)的。</p><p> 本設(shè)計(jì)每個(gè)三極管負(fù)責(zé)一個(gè)位選,。當(dāng)置于低電平時(shí)才有效,每個(gè)數(shù)碼管都會(huì)顯示一個(gè)相同的數(shù)字,所以然后需把其他三個(gè)數(shù)碼管置高電平。通過(guò)這種方法就能把溫度測(cè)出來(lái)。數(shù)碼管連接如下圖3-10所示。</p><p> 圖3-10:數(shù)碼管
54、與單片機(jī)接口電路</p><p><b> 聲光報(bào)警模塊電路</b></p><p> 當(dāng)發(fā)生報(bào)警事件時(shí),除了顯示溫度數(shù)值外,還要有聲光報(bào)警功能。用聲音或是燈光報(bào)警時(shí),連續(xù)的聲響或常亮的燈光往往不易被人們的警覺(jué),只有斷續(xù)的聲音或山所的燈光才能取得最佳的報(bào)警效果。就利用時(shí)鐘翻轉(zhuǎn) P15和P14來(lái)轉(zhuǎn)換電平,產(chǎn)生短促的報(bào)警聲音或閃爍燈光。當(dāng)濃度正常時(shí),管腳P1
55、4為高電平和P15為低電平,此時(shí)D1燈滅,蜂鳴器不工作;當(dāng)濃度達(dá)到報(bào)警溫度上限或者下限時(shí),管腳P16呈現(xiàn)低電平,從而使D1燈亮,同時(shí)管腳P14為高電平,使三極管的集電極與發(fā)射極導(dǎo)通,蜂鳴器發(fā)出報(bào)警聲音。電路的連接圖3-11如下</p><p> 圖3-11聲光報(bào)警模塊</p><p><b> 整體電路</b></p><p><b&
56、gt; 整體電路如圖4-1</b></p><p><b> 圖4-1整體電路</b></p><p><b> 軟件設(shè)計(jì)</b></p><p> 5.1 工作方案簡(jiǎn)介</p><p> 程序處理是整個(gè)系統(tǒng)的關(guān)鍵,即簡(jiǎn)潔的硬件結(jié)構(gòu)是靠復(fù)雜的軟件來(lái)支持的。本設(shè)計(jì)采用的是基
57、于單總線協(xié)議的溫度測(cè)控系統(tǒng)。</p><p> 系統(tǒng)上電復(fù)位后先處于停止?fàn)顟B(tài),等待輸入初始報(bào)警溫度。顯示器顯示輸入的溫度;報(bào)警溫度設(shè)定好后就可以按確定鍵啟動(dòng)系統(tǒng)工作了。溫度檢測(cè)系統(tǒng)不斷定時(shí)檢測(cè)當(dāng)前溫度,并送往顯示器顯示,達(dá)到報(bào)警值時(shí)啟動(dòng)報(bào)警電路報(bào)警。</p><p> 5.2 主程序流程圖</p><p> 圖5-1主程序流程圖</p>&
58、lt;p> 5.3 功能模塊</p><p> 根據(jù)上面對(duì)工作流程的分析,系統(tǒng)軟件可以分為以下幾個(gè)功能模塊:</p><p> ?。?)溫度檢測(cè)及溫度值變換:由單總線溫度傳感器DS18B20完成</p><p> (2)鍵盤管理:監(jiān)測(cè)鍵盤輸入,接收初始時(shí)間設(shè)置,接收?qǐng)?bào)警溫度設(shè)置,啟動(dòng)系統(tǒng)工作。</p><p> ?。?)報(bào)警
59、:當(dāng)檢測(cè)到的溫度超越報(bào)警溫度時(shí),蜂鳴器發(fā)出報(bào)警信號(hào),發(fā)光二極管閃爍。 </p><p> 5.4 由DS18B20完成溫度檢測(cè)模塊</p><p> 運(yùn)用單總線協(xié)議(一線協(xié)議)構(gòu)建的單總線指令系統(tǒng)是單總線網(wǎng)絡(luò)運(yùn)行的軟件基礎(chǔ),典型的單總線指令序列如下:</p><p><b> 第一步 :初始化</b></p><
60、p> 第二步 :ROM命令(跟隨需要交換的數(shù)據(jù))</p><p> 第三步 :功能命令(跟隨需要交換的數(shù)據(jù))</p><p> 每次訪問(wèn)單總線器件,必須嚴(yán)格遵守這個(gè)命令序列,如果出現(xiàn)序列混亂,則單總線器件不會(huì)響應(yīng)主機(jī)。但是,這個(gè)準(zhǔn)則對(duì)于搜索ROM命令和報(bào)警搜索命令例外,在執(zhí)行兩者中的任何一條命令之后,主機(jī)不能執(zhí)行其后的功能命令,必須返回至第一步。</p><
61、p><b> (1) 初始化</b></p><p> 基于單總線上的所有傳輸過(guò)程都是以初始化開(kāi)始的,初始化過(guò)程由主機(jī)發(fā)出復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。</p><p><b> (2) ROM命令</b></p><p> 基于單總線上的所有傳輸過(guò)程都是
62、以初始化開(kāi)始的,初始化過(guò)程由主機(jī)發(fā)出復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。</p><p> 在主機(jī)檢測(cè)到應(yīng)答脈沖后,就可以發(fā)送ROM命令。這些命令與各個(gè)從機(jī)設(shè)備的唯一的64位ROM有關(guān)。這些命令還允許主機(jī)能檢測(cè)到總線上有多少個(gè)從機(jī)設(shè)備以及其設(shè)備類型,或者有沒(méi)有設(shè)備處于報(bào)警狀態(tài)。從機(jī)設(shè)備可能支持5種ROM命令(實(shí)際情況與具體型號(hào)有關(guān)),每種命令長(zhǎng)度為8位。主機(jī)在發(fā)出
63、功能命令之前,必須送出合適的ROM命令。具體的傳送ROM命令格式如表5-1所示。</p><p> 表5-1 DS18B20的ROM命令表</p><p><b> (3) 功能命令</b></p><p> 表5-2 DS18B20功能命令表</p><p> 注 釋 :①在溫度轉(zhuǎn)換和復(fù)制暫存器數(shù)據(jù)至EEP
64、ROM期間,主機(jī)必須在單總線上允許強(qiáng)上拉,并且在此期間,總線上不能進(jìn)行其它數(shù)據(jù)傳輸。②通過(guò)發(fā)送復(fù)位脈沖,主機(jī)能夠在任何時(shí)候中斷數(shù)據(jù)傳輸。③在復(fù)位脈沖發(fā)送以前,必須寫入全部的三個(gè)字節(jié)。</p><p> 主機(jī)發(fā)送ROM指令,以訪問(wèn)某個(gè)指定的DS18B20,接著就可以發(fā)送DS18B20支持的某個(gè)功能命令。這些命令允許主機(jī)寫入或讀出DS18B20暫存器、啟動(dòng)溫度轉(zhuǎn)換以及判斷從機(jī)的供電方式。DS18B20的功能命令如表
65、5-2所示。不同類型的單總線芯片有不同的功能命令,也有的芯片無(wú)功能命令(如可尋址開(kāi)關(guān)芯片DS2405),在實(shí)際應(yīng)用中可根據(jù)設(shè)計(jì)的需要加以選擇。</p><p> 5.5 按鍵輸入模塊</p><p> 上電或復(fù)位后系統(tǒng)處于鍵盤管理狀態(tài),其功能是監(jiān)測(cè)鍵盤輸入,接收初始時(shí)間設(shè)置、報(bào)警溫度設(shè)置和顯示時(shí)間等命令。鍵盤掃描流程圖如下圖5-3所示。</p><p>
66、 圖5-3 鍵盤掃描流程圖</p><p> 5.6 聲光報(bào)警模塊</p><p> 報(bào)警溫度的設(shè)置是在單片機(jī)中設(shè)置一個(gè)單元存放預(yù)先設(shè)置好的報(bào)警溫度。將單片機(jī)從DS18B20中讀取的溫度與報(bào)警溫度進(jìn)行比較。當(dāng)發(fā)現(xiàn)DS18B20溫度大于預(yù)設(shè)的報(bào)警溫度,則讓單片機(jī)發(fā)出報(bào)警信號(hào),發(fā)光二極管閃爍,蜂鳴器發(fā)出蜂鳴聲。</p><p><b> 總結(jié)與體會(huì)
67、</b></p><p> 本設(shè)計(jì)以單總線技術(shù)為主線,詳盡的討論了單總線技術(shù)的軟、硬件基礎(chǔ)及單總線協(xié)議、單總線芯片的相關(guān)指令系統(tǒng),并將其運(yùn)用到多路溫度測(cè)控系統(tǒng)。在系統(tǒng)的研制和設(shè)計(jì)編寫過(guò)程中,得出了如下體會(huì)。多路溫度測(cè)量在工業(yè)生產(chǎn)和交通設(shè)備運(yùn)行監(jiān)控中起著相當(dāng)重要的作用,由于誤操作或是器件的性能問(wèn)題導(dǎo)致的設(shè)備引起的意外事故,通過(guò)對(duì)多個(gè)器件的溫度檢測(cè)和實(shí)時(shí)溫度的數(shù)據(jù)采集,獲得溫度值,可以有效的避免事故的發(fā)
68、生,同時(shí)也為技術(shù)分析提供重要的實(shí)時(shí)的數(shù)據(jù)記錄資料。</p><p> 整個(gè)系統(tǒng)的設(shè)計(jì)說(shuō)明以單總線技術(shù)控制、控制為核心,充分發(fā)揮了單片機(jī)串行總線的優(yōu)點(diǎn)。但是由于時(shí)間的關(guān)系,設(shè)計(jì)的軟、硬件的許多功能還有待完善和改進(jìn)。</p><p> 隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展和普及,數(shù)據(jù)采集系統(tǒng)在多個(gè)領(lǐng)域有著廣泛的應(yīng)用。數(shù)據(jù)采集是工、農(nóng)業(yè)控制系統(tǒng)中至關(guān)重要的一環(huán),在醫(yī)藥、化工、食品、等領(lǐng)域的生產(chǎn)過(guò)程中,往
69、往需要隨時(shí)檢測(cè)各生產(chǎn)環(huán)節(jié)的溫度、濕度、流量及壓力等參數(shù)。同時(shí),還要對(duì)某一檢測(cè)點(diǎn)任意參數(shù)能夠進(jìn)行隨機(jī)查尋,將其在某一時(shí)間段內(nèi)檢測(cè)得到的數(shù)據(jù)經(jīng)過(guò)轉(zhuǎn)換提取出來(lái),以便進(jìn)行比較,做出決策,調(diào)整控制方案,提高產(chǎn)品的合格率,產(chǎn)生良好的經(jīng)濟(jì)效益。 </p><p> 隨著工、農(nóng)業(yè)的發(fā)展,多路數(shù)據(jù)采集勢(shì)必將得到越來(lái)越多的應(yīng)用,為適應(yīng)這一趨勢(shì),作這方面的研究就顯得十分重要。在科學(xué)研究中,運(yùn)用數(shù)據(jù)采集系統(tǒng)可獲得大量的動(dòng)態(tài)信息,也是獲
70、取科學(xué)數(shù)據(jù)和生成知識(shí)的重要手段之一??傊?,不論在哪個(gè)應(yīng)用領(lǐng)域中,數(shù)據(jù)采集與處理將直接影響工作效率和所取得的經(jīng)濟(jì)效益。</p><p> 此外,計(jì)算機(jī)的發(fā)展對(duì)通信起了巨大的推動(dòng)作用.計(jì)算機(jī)和通信緊密結(jié)合構(gòu)成了靈活多樣的通信控制系統(tǒng),也可以構(gòu)成強(qiáng)有力的信息處理系統(tǒng),這樣對(duì)社會(huì)的發(fā)展產(chǎn)生了深遠(yuǎn)的影響。數(shù)據(jù)通信是計(jì)算機(jī)廣泛應(yīng)用的必然產(chǎn)物。</p><p> 通過(guò)這次的課程設(shè)計(jì)的制作讓我對(duì)單片機(jī)
71、的理論有了更加深入的了解,同時(shí)通過(guò)這次實(shí)踐使我更深刻的體會(huì)到了理論聯(lián)系實(shí)際的重要性,我們?cè)诮窈蟮膶W(xué)習(xí)工作中會(huì)更加的注重實(shí)際 理論與實(shí)際的結(jié)合!</p><p><b> 致謝</b></p><p> 在本次課程設(shè)計(jì)中,不僅自己付出了很多心血,也得到了很多老師和同學(xué)的支持,為我創(chuàng)造了很多有利條件,在這里,我要特別感謝我的導(dǎo)師席老師,在課程設(shè)計(jì)的開(kāi)始,單老師給了我很
72、多幫助,指導(dǎo)我了解了很多單片機(jī)的相關(guān)知識(shí),并在當(dāng)我設(shè)計(jì)遇到困難時(shí),及時(shí)的給予幫助和鼓勵(lì),同時(shí),對(duì)我其他學(xué)科的鼓勵(lì)也滲透在課程設(shè)計(jì)的同時(shí),給了我莫大的信心,為我順利完成課程設(shè)計(jì)起到了非常重要的作用。同時(shí)。我還要感謝實(shí)習(xí)組及實(shí)驗(yàn)室的所有老師,為我的課程設(shè)計(jì)提供了非常便利的條件。最后還要感謝幫助我的同學(xué),在我遇到困難時(shí)給予我耐心的幫助。</p><p> 再次對(duì)在本次課程設(shè)計(jì)中給予過(guò)我?guī)椭睦蠋熀屯瑢W(xué)至上我最真摯的謝
73、意。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]李全利.遲榮強(qiáng).單片機(jī)原理及接口技術(shù)[M]. 北京:高等教育出版社.</p><p> [2]左冬紅.現(xiàn)場(chǎng)單總線接入技術(shù)研究[D]. 武漢:華中科技大學(xué).</p><p> [3]陳志英.李光輝.單總線(1 - Wire Bus) 技術(shù)及其
74、應(yīng)用. 中國(guó)學(xué)術(shù)期刊全文數(shù)據(jù)庫(kù)[DB/OL].2003 – 8/2006 – 06.</p><p> [4]劉鳴.車立新.陳興梧.趙煜.溫度傳感器DS18B20的特性及程序設(shè)計(jì)方法. 中國(guó)學(xué)術(shù)期刊全文數(shù)據(jù)庫(kù)[DB/OL].2001 – 10/2006 – 06.</p><p> [5]DALLAS DS1338 2-Wire RTC with 56-Byte NV RAM<
75、/p><p> http://www.maxim-ic.com.cn/qa/info/errata/.</p><p> [6]龔福民.I2C 串行總線及其軟件接口.中國(guó)學(xué)術(shù)期刊全文數(shù)據(jù)庫(kù)[DB/OL]. 1998 - 04/2006 – 06.</p><p><b> 附錄一元器件清單</b></p><p>&l
76、t;b> 附錄二軟件清單</b></p><p> #include <reg52.h> </p><p> #include "18b20.h"</p><p> #include "delay.h"</p><p> sbit KEY1=P1^0;</p
77、><p> sbit KEY2=P1^1;</p><p> sbit KEY3=P1^3;</p><p> sbit LED=P1^5;</p><p> sbit BEEP=P1^6;</p><p> sbit DATE=P1^7;</p><p> bit ReadTempFl
78、ag;</p><p> unsigned char code ds18b20_num1[8]={0x28,0x30,0xc5,0xb8,0x00,0x00,0x00,0x8e};</p><p> unsigned char code ds18b20_num2[8]={0x28,0x31,0xc5,0xb8,0x00,0x00,0x00,0xB9};</p><p
79、> unsigned char code ds18b20_num3[8]={0x28,0x32,0xc5,0xb8,0x00,0x00,0x00,0xE0};</p><p> unsigned char code ds18b20_num4[8]={0x28,0x33,0xc5,0xb8,0x00,0x00,0x00,0xD7};</p><p> unsigned char
80、code ds18b20_num5[8]={0x28,0x34,0xc5,0xb8,0x00,0x00,0x00,0x52};</p><p> unsigned char code ds18b20_num6[8]={0x28,0x35,0xc5,0xb8,0x00,0x00,0x00,0x65};</p><p> unsigned char code ds18b20_num7[8]
81、={0x28,0x36,0xc5,0xb8,0x00,0x00,0x00,0x3c};</p><p> unsigned char code ds18b20_num8[8]={0x28,0x37,0xc5,0xb8,0x00,0x00,0x00,0x0B};</p><p> unsigned char code ds18b20_num9[8]={0x28,0x38,0xc5,0xb
82、8,0x00,0x00,0x00,0x2F};</p><p> unsigned char code ds18b20_num10[8]={0x28,0x39,0xc5,0xb8,0x00,0x00,0x00,0x18};</p><p> unsigned char code ds18b20_num11[8]={0x28,0x3a,0xc5,0xb8,0x00,0x00,0x00,0
83、x41};</p><p> unsigned char code ds18b20_num12[8]={0x28,0x3b,0xc5,0xb8,0x00,0x00,0x00,0x76};</p><p> unsigned char ROM_NUM[8];</p><p> unsigned char num;</p><p> un
84、signed char num1;</p><p> unsigned char sn[8];</p><p> unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> unsigned char code WeiMa[]={0xfe
85、,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};</p><p> unsigned char TempData[8];</p><p> unsigned char TempData1[8];</p><p> unsigned int MyData=24;</p><p> unsigned char i
86、,j;</p><p> unsigned char k;</p><p> void Display(unsigned char FirstBit,unsigned char Num);</p><p> void Display1(unsigned char FirstBit,unsigned char Num);</p><p>
87、 void Init_Timer0(void);</p><p> void KeyScan();</p><p> void main (void)</p><p> { </p><p> unsigned int TempH,TempL,temp;</p><p>
88、unsigned int TempH1,TempL1,temp1;</p><p> Init_Timer0();</p><p><b> MOTOR=0;</b></p><p> temp=ReadTemperature();</p><p> delay(200);</p><p>
89、; TempData[0]=0x39;</p><p> TempData[1]=0x39;</p><p> TempData[2]=0;</p><p> TempData[3]=DuanMa[8]; //十位溫度</p><p> TempData[4]=DuanMa[5]|0x80; //個(gè)位溫度,帶小數(shù)點(diǎn)</p&
90、gt;<p> TempData[5]=DuanMa[0];</p><p> TempData[6]=0x39; //顯示C符號(hào)</p><p> while (1) </p><p><b> {</b></p><p> if(KEY1==1)</p&g
91、t;<p><b> {</b></p><p> if(ReadTempFlag==1)</p><p><b> {</b></p><p><b> k++;</b></p><p><b> if(k==13)</b>&l
92、t;/p><p><b> {</b></p><p><b> k=1;</b></p><p> temp=ReadTemperature();</p><p> delay(600);</p><p><b> }</b></p>
93、<p> temp=ReadTemperature();</p><p> delay(600);</p><p> ReadTempFlag=0;</p><p> temp=ReadTemperature();</p><p> delay(600);</p><p> TempH=tem
94、p>>4;</p><p> TempL=temp&0x0F;</p><p> TempL=TempL*6/10;//小數(shù)近似處理</p><p> TempData[2]=0;</p><p> TempData[3]=DuanMa[(TempH%100)/10]; //十位溫度</p><
95、p> TempData[4]=DuanMa[(TempH%100)%10]|0x80; //個(gè)位溫度,帶小數(shù)點(diǎn)</p><p> TempData[5]=DuanMa[TempL];</p><p> TempData[6]=0x39; //顯示C符號(hào) </p><p> if(temp>MyData)//如果超溫則提示&
96、lt;/p><p><b> {</b></p><p> TempData[7]=0x76;//顯示"H"</p><p><b> MOTOR=1;</b></p><p> // for(j=25;j>0;j--)</p><p>
97、;<b> // {</b></p><p> // for(i=35;i>0;i--)</p><p> // {</p><p> //delay(60);</p><p> //SPEAK=!SPEAK;</p>
98、;<p> // }</p><p> // }</p><p><b> } </b></p><p><b> else</b></p><p><b> {</b></p><p>
99、 TempData[7]=0;;</p><p><b> num1++;</b></p><p><b> }</b></p><p> if((k==12)&&(num1!=12))</p><p><b> {</b></p><
100、;p><b> MOTOR=1;</b></p><p><b> num1=0;</b></p><p><b> }</b></p><p> if((k==12)&&(num1==12))</p><p><b> {</b
101、></p><p><b> MOTOR=0;</b></p><p><b> num1=0;</b></p><p><b> SPEAK=0;</b></p><p><b> }</b></p><p>
102、if(MOTOR==1)</p><p><b> {</b></p><p> for(j=25;j>0;j--)</p><p><b> {</b></p><p> for(i=35;i>0;i--)</p><p><b> {<
103、;/b></p><p> delay(60);</p><p> SPEAK=!SPEAK;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
104、<p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> KeyScan();</p><p>
105、temp1=MyData;</p><p> TempData1[0]=0;</p><p> TempH1=temp1>>4;</p><p> TempL1=temp1&0x0F;</p><p> TempL1=TempL1*6/10;//小數(shù)近似處理</p><p> TempDa
106、ta1[7]=0;</p><p> TempData1[1]=0;</p><p> if((TempH1/100==0)&&((TempH1%100)/10==0))//消隱</p><p> TempData1[2]=0;</p><p><b> else</b></p>&
107、lt;p> TempData1[3]=DuanMa[(TempH1%100)/10]; //十位溫度</p><p> TempData1[4]=DuanMa[(TempH1%100)%10]|0x80; //個(gè)位溫度,帶小數(shù)點(diǎn)</p><p> TempData1[5]=DuanMa[TempL1];</p><p> TempData1[6]=0x
108、39; //顯示C符號(hào)</p><p> Display1(0,8);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void Display
109、(unsigned char FirstBit,unsigned char Num)</p><p><b> {</b></p><p> static unsigned char i=0;</p><p> DataPort=0; </p><p> LATCH1=1; </p>&
110、lt;p><b> LATCH1=0;</b></p><p> DataPort=WeiMa[i+FirstBit]; </p><p> LATCH2=1; </p><p><b> LATCH2=0;</b></p><p> DataPort=TempData[i]
111、; </p><p> LATCH1=1; </p><p><b> LATCH1=0;</b></p><p><b> i++;</b></p><p> if(i==Num)</p><p><b> i=0;</b></
112、p><p><b> }</b></p><p> void Display1(unsigned char FirstBit,unsigned char Num)</p><p><b> {</b></p><p> static unsigned char i=0;</p>&
113、lt;p> DataPort=0; </p><p> LATCH1=1; </p><p><b> LATCH1=0;</b></p><p> DataPort=WeiMa[i+FirstBit]; </p><p> LATCH2=1; </p><p>
114、;<b> LATCH2=0;</b></p><p> DataPort=TempData1[i]; </p><p> LATCH1=1; </p><p><b> LATCH1=0;</b></p><p><b> i++;</b></p>
115、;<p> if(i==Num)</p><p><b> i=0;</b></p><p><b> }</b></p><p> void Init_Timer0(void)</p><p><b> {</b></p><p&g
116、t; TMOD |= 0x01; </p><p> TH0=0x00; </p><p><b> TL0=0x00;</b></p><p> EA=1; </p><p> ET0=1; </p><p>
117、TR0=1; </p><p><b> }</b></p><p> void Timer0_isr(void) interrupt 1 </p><p><b> {</b></p><p> static unsigned int num;</p>&
118、lt;p> TH0=(65536-1000)/256; </p><p> TL0=(65536-1000)%256;</p><p> if(KEY1==1)</p><p><b> {</b></p><p> Display(0,8); </p><p>
119、<b> num++;</b></p><p> if(num==2000) </p><p><b> {</b></p><p><b> num=0;</b></p><p> ReadTempFlag=1; </p><p&g
120、t;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void KeyScan()</p><p><b> {</b></p><p> if(KEY1
121、==0)</p><p><b> {</b></p><p> if((KEY2==0)||(KEY3==0))</p><p><b> {</b></p><p> delay(30);</p><p> if((KEY2==0)||(KEY3==0))<
122、;/p><p><b> {</b></p><p> if(KEY2==0)</p><p><b> {</b></p><p> while(!KEY2);</p><p> if(MyData<2048)</p><p>
123、<b> {</b></p><p> MyData+=17;</p><p> if(MyData>2048)</p><p><b> {</b></p><p> MyData=2048;</p><p><b> }</b>&l
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子信息工程課程設(shè)計(jì)--溫度測(cè)量系統(tǒng)設(shè)計(jì)
- dsp課程設(shè)計(jì)--電子信息工程
- 電子信息系統(tǒng)綜合課程設(shè)計(jì)
- 電子信息工程課程設(shè)計(jì)實(shí)施方案
- 聲光控開(kāi)關(guān)的設(shè)計(jì)-電子信息工程課程設(shè)計(jì)
- 心率計(jì)電子系統(tǒng)課程設(shè)計(jì)報(bào)告-電子信息工程專業(yè)
- 心率計(jì)電子系統(tǒng)課程設(shè)計(jì)報(bào)告-電子信息工程專業(yè)
- 電子課程設(shè)計(jì)——溫度測(cè)量?jī)x
- 電子信息工程課程設(shè)計(jì)-路燈控制器的設(shè)計(jì)
- 電子信息工程課程設(shè)計(jì)--數(shù)據(jù)采集系統(tǒng)動(dòng)態(tài)有效位測(cè)試
- 溫度控制課程設(shè)計(jì)--數(shù)字溫度測(cè)量系統(tǒng)
- 電子信息工程課程設(shè)計(jì)---多路彩燈控制器的設(shè)計(jì)
- 溫度測(cè)量課程設(shè)計(jì)
- 糧庫(kù)溫度測(cè)量顯示系統(tǒng)課程設(shè)計(jì)
- 數(shù)字溫度測(cè)量系統(tǒng)課程設(shè)計(jì)論文
- 電子裝置課程設(shè)計(jì)報(bào)告---溫度檢測(cè)系統(tǒng)設(shè)計(jì)
- 聲光控延時(shí)開(kāi)關(guān)課程設(shè)計(jì)報(bào)告-電子信息工程畢業(yè)論文
- 數(shù)字電子技術(shù)課程設(shè)計(jì)---溫度測(cè)量與控制設(shè)計(jì)
- 溫度測(cè)量?jī)x課程設(shè)計(jì)
- 溫度測(cè)量?jī)x課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論