版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文)</p><p> 設(shè)計(jì)(論文)題目:基于單片機(jī)的溫度計(jì)的設(shè)計(jì) </p><p> 專 業(yè): 通信技術(shù) </p><p> 班 級(jí): </p><p> 學(xué) 號(hào):
2、 </p><p> 姓 名: </p><p> 指導(dǎo)教師: </p><p> 二OO八年十二月三十日</p><p><b> 畢業(yè)設(shè)計(jì)任務(wù)書(shū)</b></p><p> 備注:任務(wù)書(shū)由指
3、導(dǎo)教師填寫,一式二份。其中學(xué)生一份,指導(dǎo)教師一份。</p><p><b> 目 錄</b></p><p><b> 摘 要1</b></p><p> 第1章 方案設(shè)計(jì)2</p><p> 第3章 硬件設(shè)計(jì)4</p><p> 3.1 單片機(jī)系統(tǒng)電路設(shè)計(jì)
4、4</p><p> 3.1.1 單片機(jī)時(shí)鐘電路4</p><p> 3.1.2 單片機(jī)復(fù)位電路5</p><p> 3.2 DS18B20單線數(shù)字溫度傳感器7</p><p> 3.2.1 DS18B20工作原理7</p><p> 3.2.2 DS18B20的性能特點(diǎn)7</p>&
5、lt;p> 3.2.3 DS18B20內(nèi)部結(jié)構(gòu)7</p><p> 3.2.4 DS18B20控制方法8</p><p> 3.3 數(shù)據(jù)顯示單元設(shè)計(jì)9</p><p> 3.3.1 顯示器原理簡(jiǎn)介9</p><p> 3.3.2 顯示器電路圖9</p><p> 第4章 軟件設(shè)計(jì)11<
6、;/p><p> 4.1 主程序11</p><p> 4.2 溫度程序11</p><p> 4.3 顯示程序12</p><p> 第5章 調(diào)試與運(yùn)行14</p><p> 5.1 電路仿真14</p><p> 5.2 調(diào)試與運(yùn)行14</p><p&
7、gt;<b> 結(jié) 論16</b></p><p><b> 參考文獻(xiàn)17</b></p><p> 附錄A 總電路原理圖18</p><p> 附錄B 程序清單19</p><p><b> 摘 要</b></p><p> 隨著科
8、學(xué)技術(shù)的發(fā)展,溫度傳感器向著集成工藝和多變量復(fù)合傳感器、智能化傳感器、網(wǎng)絡(luò)化傳感器的方向發(fā)展,各種不同類型的溫度傳感器將會(huì)越來(lái)越多的出現(xiàn)在我們的日常生活中,給我們帶來(lái)極大的方便。</p><p> 為了對(duì)溫度進(jìn)行實(shí)時(shí)監(jiān)測(cè),設(shè)計(jì)了這套溫度顯示系統(tǒng)。系統(tǒng)采用AT89C51系列單片機(jī)與單線數(shù)字溫度傳感器DS18B20采集現(xiàn)場(chǎng)溫度數(shù)據(jù),并利用LED顯示。報(bào)告詳細(xì)介紹了系統(tǒng)的單片機(jī)最小系統(tǒng)、溫度信息采集電路、LED顯示電
9、路的硬件設(shè)計(jì),并在分析軟件工作流程的基礎(chǔ)上編寫了相應(yīng)的C語(yǔ)言源程序。測(cè)試表明,該系統(tǒng)能有效實(shí)現(xiàn)實(shí)時(shí)溫度采集和顯示,并具有較高的精度。</p><p> 關(guān)鍵詞 AT89C51;DS18B20;LED</p><p><b> 第1章 方案設(shè)計(jì)</b></p><p> 任務(wù)要求利用單片機(jī)對(duì)溫度傳感器DS18B20進(jìn)行控制,實(shí)時(shí)檢測(cè)外環(huán)境的
10、溫度,并通過(guò)數(shù)碼管顯示當(dāng)前溫度。</p><p> 溫度傳感器顯示控制系統(tǒng)的整體結(jié)構(gòu)如圖2-1所示,電路包括:DS18B20傳感器、中央處理器CPU(AT89C51)、時(shí)鐘及復(fù)位電路、LED顯示器。</p><p> 圖2-1 溫度傳感器顯示控制系統(tǒng)的整體結(jié)構(gòu)框圖</p><p> 1.溫度信號(hào)采集方案</p><p> 方案一:選用
11、型號(hào)為WZB-003,分度號(hào)為BA2的熱敏電阻為溫度感應(yīng)元件,它適用于0℃~500℃的溫度測(cè)量范圍,但其對(duì)檢驗(yàn)溫度的精度要求不高。</p><p> 方案二:用溫度傳感器做溫度感應(yīng)元件,它硬件接口簡(jiǎn)單,性能穩(wěn)定。溫度傳感器市場(chǎng)上有很多種類,可以根據(jù)實(shí)際需求選擇合適的溫度傳感器。</p><p> 單片機(jī)對(duì)溫度傳感器DS18B20進(jìn)行控制,實(shí)時(shí)檢測(cè)外環(huán)境的溫度,并通過(guò)數(shù)碼管顯示當(dāng)前溫度,
12、要求精度高,檢測(cè)性好,所以本次設(shè)計(jì)選擇方案二。本設(shè)計(jì)選擇溫度傳感器:DS18B20。它是單線接口,僅需一根口線與MCU連接無(wú)需外圍元件,由總線提供電源,測(cè)溫范圍為:-55℃~+125℃,測(cè)量精度:0.5℃,反應(yīng)時(shí)間≤500ms。</p><p><b> 2.顯示方案</b></p><p> 方案一:靜態(tài)顯示就是當(dāng)CPU將要顯示的字或字段碼送到輸出口,顯示器就可
13、以顯示出所要顯示的字符,如果CPU不去改寫它,它將一直保持下去;靜態(tài)顯示硬件開(kāi)銷大,電路復(fù)雜,信息刷新速度慢。</p><p> 方案二:動(dòng)態(tài)顯示就是一位一位地輪流點(diǎn)亮顯示器地各個(gè)位(掃描)。對(duì)于顯示器的每一位而言,每隔一段時(shí)間點(diǎn)亮一次;動(dòng)態(tài)顯示耗能較小,但編寫程序較復(fù)雜。動(dòng)態(tài)顯示硬件連接簡(jiǎn)單,信息刷新速度快。</p><p> 本次設(shè)計(jì)由于要求對(duì)溫度進(jìn)行實(shí)時(shí)檢測(cè)與控制,所以選擇的是方
14、案二。</p><p><b> 第3章 硬件設(shè)計(jì)</b></p><p> 3.1 單片機(jī)系統(tǒng)電路設(shè)計(jì)</p><p> 在單片機(jī)內(nèi)部有一振蕩電路,只要在單片機(jī)的XTAL1和XTAL2引腳外接石英晶體,就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。圖3-1中電容器C1和C2的作用是穩(wěn)定頻率和快速起振,電容值在5~30pF,典型值為3
15、0pF。晶振CYS的振蕩頻率范圍在1.2~12MHz間選擇,典型值為12MHz和6MHz。</p><p> 3.1.1 單片機(jī)時(shí)鐘電路</p><p> 單片機(jī)時(shí)鐘電路如圖3-1所示。</p><p> 圖3-1 單片機(jī)時(shí)鐘電路圖</p><p> XTAL1和XTAL2分別為反相放大器的輸入和輸出。該反相放大器可以配置為片內(nèi)振蕩器
16、。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p> 晶振周期(或外部時(shí)鐘信號(hào)周期)為最小的時(shí)序單位,如圖3-2所示。</p><p> 圖3-2 單片機(jī)的時(shí)鐘信號(hào)</p><p> 成為S狀態(tài),它是晶振
17、周期的兩倍,即一個(gè)時(shí)鐘周期包含2個(gè)晶振周期。在每個(gè)時(shí)鐘周期的前半周晶振信號(hào)進(jìn)分頻器后形成兩相錯(cuò)開(kāi)的時(shí)鐘信號(hào)P1和P2。時(shí)鐘信號(hào)的周期也期,相位1(P1)信號(hào)有效,在每個(gè)時(shí)鐘周期的后半周期,相位2(P2)信號(hào)有效。每個(gè)時(shí)鐘周期有兩個(gè)節(jié)拍(相)P1和P2,CPU以P1和P2為基本節(jié)拍指揮各個(gè)部件協(xié)調(diào)地工作。</p><p> 晶振信號(hào)12分頻后形成機(jī)器周期,即一個(gè)機(jī)器周期包含12個(gè)晶振周期或6個(gè)是時(shí)鐘周期。因此,每
18、個(gè)機(jī)器周期地12個(gè)振蕩脈沖可以表示S1P1,S1P2,S2P1,S2P2,…,S6P2。</p><p> 3.1.2 單片機(jī)復(fù)位電路</p><p> 復(fù)位是使單片機(jī)或系統(tǒng)中的其他部件處于某種確定的初始狀態(tài)。單片機(jī)的工作就是從復(fù)位開(kāi)始的,當(dāng)在單片機(jī)的RST引腳引入高電平并保持2個(gè)機(jī)器周期時(shí),單片機(jī)內(nèi)部就執(zhí)復(fù)位操作(若該引腳持續(xù)保持高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài))。</p>
19、;<p> 實(shí)際應(yīng)用中,復(fù)位操作有兩種基本的形式:一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位。如圖3-3所示,本次設(shè)計(jì)采用的是上電復(fù)位。</p><p> 圖3-3 上電復(fù)位電路</p><p> 上電復(fù)位要求接通電源后,單片機(jī)自動(dòng)實(shí)現(xiàn)復(fù)位操作。常用的上電復(fù)位如上圖所示。上電瞬間RST引腳獲得高電平,隨著電容C1的充電,RST引腳的高電平將逐漸下降。</p&g
20、t;<p> RST引腳的高電平只要能保持足夠的時(shí)間(2個(gè)機(jī)器周期),單片機(jī)就可以進(jìn)行復(fù)位操作。該電路典型的電阻和電容參數(shù)為:晶振為12MHz時(shí),C1為10uF,R1為8.2K,晶振為6MHz時(shí),C1為22uF,R1為1K。</p><p> 單片機(jī)的復(fù)位操作使單片機(jī)經(jīng)入初始化狀態(tài)。初始化后,程序計(jì)數(shù)器PC=0000H所以程序從0000H地址單元開(kāi)始執(zhí)行。單片機(jī)啟動(dòng)后,片內(nèi)RAM為隨機(jī)值,運(yùn)行中
21、的復(fù)位操作不改變片內(nèi)RAM的內(nèi)容。</p><p> 特殊功能寄存器復(fù)位后狀態(tài)使確定的。P0~P3為FFH,SP為07H,SBUF不定,IP、IE和PCON的有效值為0,其余的特殊功能寄存器的狀態(tài)均為00H。相應(yīng)的意義為:</p><p> ?。?)P0~P3=FFH,相當(dāng)于各口鎖存器已寫入1,此時(shí)不但可以用于輸出,也可以用于輸入;</p><p> ?。?)SP
22、=07H,堆棧指針指向片內(nèi)RAM的07H單元(第一個(gè)入棧內(nèi)容將寫入08H單元);</p><p> ?。?)IP、IE和PCON的有效位為0,各中斷源處于的優(yōu)先級(jí)且均被關(guān)斷,串行通信的波特率不加倍;</p><p> ?。?)PSW=00H,當(dāng)前工作寄存器為0組。</p><p> 3.2 DS18B20單線數(shù)字溫度傳感器</p><p>
23、 由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測(cè)量及控制儀器、測(cè)控系統(tǒng)和大型設(shè)備中。它具有體積小,接口方便,傳輸距離遠(yuǎn)等特點(diǎn)。</p><p> 產(chǎn)品的主要技術(shù)指標(biāo):</p><p> (1)測(cè)量范圍:-55℃~+125℃;</p><p> (2)測(cè)量精度:
24、0.5℃;</p><p> ?。?)反應(yīng)時(shí)間≤500ms。</p><p> 3.2.1 DS18B20工作原理</p><p> 溫度傳感器DS18B20將被測(cè)環(huán)境溫度轉(zhuǎn)化成帶符號(hào)的數(shù)字信號(hào)(以十六位補(bǔ)碼形式,占兩個(gè)字節(jié))在通過(guò)單片機(jī)發(fā)出命令送給顯示器。它的輸出腳I/O直接與單片機(jī)相連,并接一個(gè)上拉電阻,傳感器采用外部電源供電。傳感器控制程序是按照DS18B
25、20的通信協(xié)議編制。系統(tǒng)的工作是在程序控制下,完成對(duì)傳感器的讀寫和對(duì)溫度的顯示。</p><p> 3.2.2 DS18B20的性能特點(diǎn)</p><p> (1) 采用單總線專用技術(shù),既可通過(guò)串行口線,也可通過(guò)其它I/O口線與微機(jī)接口,無(wú)須經(jīng)過(guò)其它變換電路,直接輸出被測(cè)溫度值(9位二進(jìn)制數(shù),含符號(hào)位);</p><p> (2) 測(cè)溫范圍為-55℃~+125℃
26、,測(cè)量分辨率為0.0625℃;</p><p> (3) 內(nèi)含64位經(jīng)過(guò)激光修正的只讀存儲(chǔ)器ROM;</p><p> (4) 適配各種單片機(jī)或系統(tǒng)機(jī);</p><p> (5) 用戶可分別設(shè)定各路溫度的上、下限;</p><p> (6) 內(nèi)含寄生電源。</p><p> 3.2.3 DS18B20內(nèi)部結(jié)構(gòu)
27、</p><p> DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,高速暫存器。DS18B20的管腳排列如圖3-5所示。64位光刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號(hào)。不同的器件地址序列號(hào)不同。</p><p> 圖3-5 DS18B20引腳分布圖</p><p> 表3-1
28、 寄存器名稱及功能</p><p> 以12位轉(zhuǎn)化為例說(shuō)明溫度高低字節(jié)存放形式及計(jì)算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲(chǔ)在DS18B20的兩個(gè)高低兩個(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> 3.
29、2.4 DS18B20控制方法</p><p> 在硬件上,DS18B20與單片機(jī)的連接有兩種方法,一種是VCC接外部電源,GND接地,I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時(shí)UDD、GND接地,I/O接單片機(jī)I/O。無(wú)論是內(nèi)部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電阻。此次設(shè)計(jì)選擇的是前面一種控制法。</p><p> 表3-2 DS18B20有六條控
30、制命令</p><p> CPU對(duì)DS18B20的訪問(wèn)流程是:先對(duì)DS18B20初始化,再進(jìn)行ROM操作命令,最后才能對(duì)存儲(chǔ)器操作,數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。如主機(jī)控制DS18B20完成溫度轉(zhuǎn)換這一過(guò)程,根據(jù)DS18B20的通訊協(xié)議,須經(jīng)三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)
31、定的操作。</p><p> 3.3 數(shù)據(jù)顯示單元設(shè)計(jì)</p><p> 3.3.1 顯示器原理簡(jiǎn)介</p><p> 根據(jù)設(shè)計(jì)的特點(diǎn),此顯示選擇的是動(dòng)態(tài)LED顯示。所謂動(dòng)態(tài)顯示就是一位一位地輪流點(diǎn)亮顯示器地各個(gè)位(掃描)。對(duì)于顯示器的每一位而言,每隔一段時(shí)間點(diǎn)亮一次。雖然在同一時(shí)刻只有一位顯示器在工作(點(diǎn)亮),但由于人眼的視覺(jué)暫留效應(yīng)和發(fā)光二極管熄滅時(shí)的余暉
32、,我們看到的卻是多個(gè)字符“同時(shí)”顯示。顯示器亮度既與點(diǎn)亮?xí)r的通道電流有關(guān),也與點(diǎn)亮?xí)r間長(zhǎng)短和間隔時(shí)間有關(guān)。調(diào)整電流和時(shí)間參數(shù),即可實(shí)現(xiàn)亮度較高穩(wěn)定的顯示。</p><p> 3.3.2 顯示器電路圖</p><p> 4位共陰極顯示器與AT89C51的接口邏輯圖,如圖3-6所示。</p><p> 圖3-6 動(dòng)態(tài)LED顯示接口</p><p
33、><b> 第4章 軟件設(shè)計(jì)</b></p><p> 系統(tǒng)的主要功能是根據(jù)當(dāng)前的溫度,利用溫度傳感器把當(dāng)前的溫度傳遞給顯示器。系統(tǒng)軟件可分為兩個(gè)功能模塊:(1) 溫度檢測(cè):檢測(cè)當(dāng)前溫度傳感器的溫度。(2) 顯示:顯示當(dāng)前溫度,采用定時(shí)器中斷進(jìn)行時(shí)顯示。</p><p><b> 4.1 主程序</b></p><
34、p> 系統(tǒng)主程序由主函數(shù)流程和T0中斷顯示流程組成,如圖4-1所示和4-2所示。</p><p> 圖4-1 主函數(shù)流程圖 圖4-2 T0中斷顯示流程圖</p><p><b> 4.2 溫度程序</b></p><p> 溫度程序模塊:流程圖如圖4-3所示。</p><p>
35、 圖4-3 溫度流程圖</p><p><b> 4.3 顯示程序</b></p><p> 顯示程序模塊:流程圖如圖4-4所示。</p><p> 圖4-4 顯示流程圖</p><p><b> 第5章 調(diào)試與運(yùn)行</b></p><p> KeilC51是美國(guó)
36、KeilSoftware公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。</p><p> KeilC51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到KeilC51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解,在開(kāi)發(fā)大型軟件時(shí)
37、更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。</p><p><b> 5.1 電路仿真</b></p><p> 此設(shè)計(jì)的電路在keil軟件中進(jìn)行仿真,仿真總電路如圖5-1所示。</p><p><b> 5.2 調(diào)試與運(yùn)行</b></p><p> 把編寫好的程序放入仿真軟件中,結(jié)合硬件電路進(jìn)行調(diào)試與運(yùn)行。
38、</p><p> ?。?)在仿真軟件中的DS18B20上的兩個(gè)紅色旋鈕模擬定時(shí)當(dāng)前溫度,從而達(dá)到仿真的目的;</p><p> ?。?)LED顯示器顯示當(dāng)前DS18B20所測(cè)到的溫度;</p><p> 總結(jié):當(dāng)前顯示的溫度,需經(jīng)過(guò)延時(shí)一段時(shí)間從而達(dá)到實(shí)際溫度。</p><p><b> 結(jié) 論</b></p
39、><p> 在我的畢業(yè)設(shè)計(jì)中,主要是以AT89C51單片機(jī)為核心的,對(duì)溫度的檢測(cè)與顯示進(jìn)行了簡(jiǎn)單的設(shè)計(jì)與闡述。本次設(shè)計(jì)可以說(shuō)是軟硬結(jié)合,又以硬件為主。當(dāng)今科技發(fā)展迅速,單片機(jī)嵌入式開(kāi)發(fā)有著光明的前景。由于單片機(jī)經(jīng)濟(jì)實(shí)用、開(kāi)發(fā)簡(jiǎn)便等特點(diǎn)依然在工業(yè)控制、家電等領(lǐng)域占據(jù)了廣泛的市場(chǎng)。所以我選擇這樣的畢業(yè)設(shè)計(jì)課題,并且能通過(guò)此次設(shè)計(jì)來(lái)提高自己軟件編制和硬件電路設(shè)計(jì)的能力。在我完成這次畢業(yè)設(shè)計(jì)的過(guò)程中,當(dāng)看到自己將專業(yè)知識(shí)用
40、于解決實(shí)際的問(wèn)題時(shí),那份成就感和喜悅感是難以形容的。但是,在實(shí)際的編程以及調(diào)試程序過(guò)程中,我發(fā)現(xiàn)自己應(yīng)該學(xué)的太多太多。光靠自己在書(shū)本上所學(xué)過(guò)的這點(diǎn)知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,真正地認(rèn)識(shí)到了工作就是學(xué)習(xí)的道理。</p><p> 回首畢業(yè)設(shè)計(jì)這段日子,雖然過(guò)的很緊張,但我卻感到很充實(shí)。由于我以前對(duì)51單片機(jī)的C語(yǔ)言沒(méi)有認(rèn)真鉆研過(guò),所以感覺(jué)畢業(yè)設(shè)計(jì)的任務(wù)十分緊迫。通過(guò)對(duì)本系統(tǒng)的設(shè)計(jì),我學(xué)習(xí)到了硬件開(kāi)發(fā)和軟件開(kāi)發(fā)的基本流程并有
41、了一定的駕御此開(kāi)發(fā)過(guò)程的能力。編程的過(guò)程中,雖然不乏辛苦,但更多的是程序調(diào)試成功后的喜悅。</p><p> 總之,這次畢業(yè)設(shè)計(jì)對(duì)我來(lái)說(shuō)是一次比較全面的、富有創(chuàng)造性和探索性的鍛煉,完成了我選題時(shí)的心愿。同時(shí),曾老師無(wú)私的敬業(yè)精神以及同學(xué)們的熱心幫助也令我深有感觸,對(duì)于我今后的學(xué)習(xí)、工作和生活都將是受益非淺的!</p><p><b> 參考文獻(xiàn)</b></p
42、><p> [1] 李全利.單片機(jī)原理及應(yīng)用技術(shù).北京:高等教育出版社,2006</p><p> [2] 何立民.單片機(jī)高等教程.北京:航空航天大學(xué)出版社,2000</p><p> [3] 張毅剛.MCS-51單片機(jī)應(yīng)用設(shè)計(jì).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997</p><p> 附錄A 總電路原理圖</p><
43、p><b> 附錄B 程序清單</b></p><p> #include "reg51.h"</p><p> sbit DQ =P3^3; //定義通信端口</p><p> unsigned char A1,A2,A3,A2t,dispno;</p><p> unsigne
44、dcharcode table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};</p><p> unsigned int temp1;</p><p><b> //延時(shí)函數(shù)</b></p><p> void delay(unsigned int i)</p
45、><p><b> {</b></p><p> while(i--);</p><p><b> }</b></p><p><b> //初始化函數(shù)</b></p><p> Init_DS18B20(void)</p><
46、p><b> {</b></p><p> unsigned char x=0;</p><p> DQ = 1; //DQ復(fù)位</p><p> delay(8); //稍做延時(shí)</p><p> DQ = 0; //單片機(jī)將DQ拉低</p><p> delay
47、(80); //精確延時(shí) 大于 480us</p><p> DQ = 1; //拉高總線</p><p> delay(14);</p><p> x=DQ; //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗</p><p> delay(20);</p><p><b>
48、 }</b></p><p><b> //讀一個(gè)字節(jié)</b></p><p> ReadOneChar(void)</p><p><b> {</b></p><p> unsigned char i=0;</p><p> unsigned ch
49、ar dat = 0;</p><p> for (i=8;i>0;i--)</p><p><b> {</b></p><p> DQ = 0; // 給脈沖信號(hào)</p><p><b> dat>>=1;</b></p><p> DQ =
50、1; // 給脈沖信號(hào)</p><p><b> if(DQ)</b></p><p> dat|=0x80;</p><p><b> delay(4);</b></p><p><b> }</b></p><p> return(dat)
51、;</p><p><b> }</b></p><p><b> //寫一個(gè)字節(jié)</b></p><p> WriteOneChar(unsigned char dat)</p><p><b> {</b></p><p> unsigne
52、d char i=0;</p><p> for (i=8; i>0; i--)</p><p><b> {</b></p><p><b> DQ = 0;</b></p><p> DQ = dat&0x01;</p><p><b>
53、 delay(5);</b></p><p><b> DQ = 1;</b></p><p><b> dat>>=1;</b></p><p><b> }</b></p><p><b> delay(4);</b>&
54、lt;/p><p><b> }</b></p><p><b> //讀取溫度</b></p><p> ReadTemperature(void)</p><p><b> {</b></p><p> unsigned char a=0;&l
55、t;/p><p> unsigned char b=0;</p><p> unsigned int t=0;</p><p> float tt=0;</p><p> Init_DS18B20();</p><p> WriteOneChar(0xCC); // 跳過(guò)讀序號(hào)列號(hào)的操作</p>&
56、lt;p> WriteOneChar(0x44); // 啟動(dòng)溫度轉(zhuǎn)換</p><p> Init_DS18B20();</p><p> WriteOneChar(0xCC); //跳過(guò)讀序號(hào)列號(hào)的操作</p><p> WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度</p><p
57、> a=ReadOneChar();</p><p> b=ReadOneChar();</p><p><b> t=b;</b></p><p><b> t<<=8;</b></p><p><b> t=t|a;</b></p>
58、<p> tt=t*0.0625;</p><p> t= tt*10+0.5; //放大10倍輸出并四舍五入---此行沒(méi)用</p><p> return(t);</p><p><b> }</b></p><p><b> main()</b></p>&l
59、t;p><b> {</b></p><p> TMOD=0x01;</p><p><b> TH0=0xee;</b></p><p><b> TL0=0x00;</b></p><p><b> ET0=1;</b></p&g
60、t;<p><b> EA=1;</b></p><p><b> TR0=1;</b></p><p><b> while(1)</b></p><p> { </p><p> temp1=ReadTemperature();
61、</p><p> A1=temp1/100; </p><p> A2t=temp1%100; </p><p> A2=A2t/10; </p><p> A3=A2t%10;</p><p><b> }</b></p><p><b> }&l
62、t;/b></p><p> void timer0(void) interrupt 1 using 1</p><p><b> {</b></p><p><b> TH0=0xee;</b></p><p><b> TL0=0x00;</b></p
63、><p><b> P0=0x00;</b></p><p><b> P1|=0x0f;</b></p><p> switch(dispno)</p><p><b> {</b></p><p> case 0:P2=0xfe;P0=tab
64、le[A1];break;</p><p> case 1:P2=0xfd;P0=table[A2]|0x80;break;</p><p> case 2:P2=0xfb;P0=table[A3];break;</p><p> default: break;</p><p><b&g
溫馨提示
- 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è)設(shè)計(jì)---基于單片機(jī)的溫度計(jì)的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)——基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)數(shù)字溫度計(jì)
- 畢業(yè)設(shè)計(jì)論文基于單片機(jī)的溫度計(jì)的設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)的設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)控制的數(shù)字溫度計(jì)----畢業(yè)設(shè)計(jì)
- 基于5單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)
- 基于51單片機(jī)的數(shù)字溫度計(jì)-畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的數(shù)字溫度計(jì)畢業(yè)設(shè)計(jì)論文
- 單片機(jī)畢業(yè)設(shè)計(jì)--單片機(jī)設(shè)計(jì)數(shù)字溫度計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的數(shù)字語(yǔ)音溫度計(jì)
評(píng)論
0/150
提交評(píng)論