版權(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)</p><p> 摘要:本文介紹一種采用STC公司的STC89C52RC 單片機(jī)控制DS18B20數(shù)字溫度傳感器采集溫度,最后在共陰極的LED燈上實(shí)時(shí)顯示溫度值的溫度檢測(cè)系統(tǒng)(由于實(shí)驗(yàn)及成本原因本文只做一路傳輸系統(tǒng))。該系統(tǒng)從實(shí)際應(yīng)用工程出發(fā), 主要對(duì)硬件電路設(shè)計(jì)、電子元件選擇、系統(tǒng)應(yīng)用軟件設(shè)計(jì)等方面進(jìn)行具體探討和研究。系統(tǒng)具有性能穩(wěn)定可靠、功耗低、成本低、測(cè)量準(zhǔn)確、
2、傳輸距離遠(yuǎn)、維護(hù)簡(jiǎn)單等優(yōu)點(diǎn),系統(tǒng)設(shè)計(jì)在實(shí)際工作中具有一定的借鑒意義。</p><p> 關(guān)鍵詞: 溫度檢測(cè); STC89C52RC; DS18B20 </p><p><b> 目 錄</b></p><p> 第一節(jié) 引 言3</p><p> 1.1系統(tǒng)原理及基本框圖3</p>&
3、lt;p><b> 1.2設(shè)計(jì)任務(wù)3</b></p><p> 第二節(jié) 硬件設(shè)計(jì)介紹4</p><p> 2.1 STC89C52RC4</p><p> 2.2 DS18B206</p><p> 2.3 三極管90128</p><p> 2.4 共陰極數(shù)碼管8&
4、lt;/p><p> 2.5 硬件部分電路圖9</p><p> 第三節(jié) 軟件設(shè)計(jì)介紹14</p><p> 3.1 程序流程圖和實(shí)際圖14</p><p><b> 3.2調(diào)試18</b></p><p> 第四節(jié) 個(gè)人心得體會(huì)21</p><p>&l
5、t;b> 參考文獻(xiàn)24</b></p><p><b> 附錄25</b></p><p><b> 附1:電路圖</b></p><p><b> 附2:元件清單</b></p><p><b> 附3:程序</b><
6、;/p><p><b> 引言</b></p><p> 隨著計(jì)算機(jī)技術(shù)和傳感器技術(shù)的飛速發(fā)展, 在科研、生產(chǎn)和日?;顒?dòng)中, 人們對(duì)溫度、壓力、流量等模擬物理量的測(cè)量要求越來(lái)越高。而這些物量中溫度的應(yīng)用是最為廣泛的。如何將溫度通過(guò)傳感器變成電信號(hào), 再經(jīng)過(guò)處理轉(zhuǎn)換成計(jì)算機(jī)能夠識(shí)別的數(shù)字量, 輸入到計(jì)算機(jī)中, 由計(jì)算機(jī)將采集到的數(shù)字量進(jìn)行不同的處理, 然后在顯示器顯示出
7、來(lái),并進(jìn)行實(shí)時(shí)監(jiān)控。這已經(jīng)為當(dāng)前計(jì)算機(jī)測(cè)量與控制領(lǐng)域的一個(gè)重要研究方向。鑒于此, 本文提出一種基于89C52和DS18B20的低成本、遠(yuǎn)距離傳輸?shù)臏囟葯z測(cè)系統(tǒng)設(shè)計(jì)方案。</p><p> 1.1系統(tǒng)原理及基本框圖</p><p> 如圖1.1所示,為系統(tǒng)的基本框圖。</p><p> 該系統(tǒng)由六部分組成:STC89C52RC核心單片機(jī),溫度采集電路,LED顯示
8、電路,報(bào)警警電路,復(fù)位電路,晶振等,其中溫度采集主要由DS18B20組成,在短時(shí)間內(nèi)把熱力學(xué)溫度信號(hào)數(shù)字,送入單片機(jī),由單片機(jī)控制顯示電路顯示,并且判斷是否達(dá)到設(shè)定溫度,若達(dá)到設(shè)定溫度,由單片機(jī)啟動(dòng)報(bào)警電路,報(bào)警。</p><p><b> 1.2 設(shè)計(jì)任務(wù)</b></p><p> 利用單片機(jī)與AD轉(zhuǎn)換器設(shè)計(jì)一個(gè)八路溫度巡回檢測(cè)系統(tǒng),對(duì)某糧庫(kù)或冷凍廠八點(diǎn)(八個(gè)冷
9、凍室或八個(gè)糧倉(cāng))進(jìn)行溫度巡回檢測(cè)。能夠測(cè)量-30~+50oC的溫度范圍,檢測(cè)精度要求不大于±1oC。采用數(shù)碼管顯示測(cè)量值;</p><p> 單片機(jī)和AD轉(zhuǎn)換器型號(hào)自選(如單片機(jī)可選AT89S51或AT89C51等;AD轉(zhuǎn)換器可選ADC0809或ADC0804等)。(本文均基于一路溫度檢測(cè)系統(tǒng)設(shè)計(jì))。</p><p> 第二節(jié) 硬件設(shè)計(jì)介紹</p><p&
10、gt; 2.1 STC89C52RC</p><p> 2.1.2 STC89C52RC介紹</p><p> 單片機(jī)自問(wèn)世以來(lái),以其極高的性價(jià)比受到人們的重視和關(guān)注,應(yīng)用很廣,發(fā)展很快。單片機(jī)的體積小,重量輕,抗干擾能力強(qiáng),環(huán)境要求不高,價(jià)格低,可靠性強(qiáng),靈活性好,開發(fā)較為容易?;谝陨系膬?yōu)點(diǎn),單片機(jī)已經(jīng)廣泛的應(yīng)用在工業(yè)自動(dòng)化控制,自動(dòng)檢測(cè),智能儀器儀表,機(jī)電一體化等各個(gè)方面,所以
11、本系統(tǒng)采用單片機(jī)做為控制器。單片機(jī)中51/52系列最具有代表性。</p><p> 本設(shè)計(jì)核心采用了STC89C52RC單片機(jī)。STC89C51/52單片機(jī)系列是在MCS—51/52系列的基礎(chǔ)上發(fā)展起來(lái)的,STC89C52RC 完全兼容MCS-51 系列單片機(jī)的所有功能,并且本身帶有2K 的內(nèi)存儲(chǔ)器,可以在編程器上實(shí)現(xiàn)閃爍式的電擦寫達(dá)幾萬(wàn)次以上,比以往慣用的8031CPU 外加EPROM為核心的單片機(jī)系統(tǒng)在硬件
12、上具有更加簡(jiǎn)單方便等優(yōu)點(diǎn),其外形如圖2.1所示。</p><p> 圖2.1 STC89C52RC芯片</p><p> 2.1.3 STC89C52引腳介紹</p><p> STC89C52RC的引腳圖如圖2.2所示. </p><p> 圖2.2 STC89C52引腳圖</p><p> 單片機(jī)的引
13、腳功能說(shuō)明:</p><p><b> ?、匐娫匆_</b></p><p> VCC(40 腳):電源端,工作電壓為5V。</p><p> GND(20腳): 接地端。</p><p> ②時(shí)鐘電路引腳XTAL1(19 腳)和XTAL2(18 腳)</p><p> ?、蹚?fù)位 RST(9
14、 腳)</p><p> ?、?輸入輸出(I/O)引腳</p><p> P0.0-P0.7(39腳-32腳):輸入輸出腳,稱為P0 口,是一個(gè)8 位漏極開路型雙向I/O 口,內(nèi)部不帶上拉電阻。</p><p> P1.0-P1.7(1腳 - 8腳):輸入輸出腳,稱為P1 口,是一個(gè)帶內(nèi)部上拉電阻</p><p> 的8 位雙向I/0
15、口。</p><p> P2.0-P2.7(21腳—28腳): 輸入輸出腳,稱為P2 口,是一個(gè)帶內(nèi)部上拉電</p><p> 阻的8 位雙向I/O 口,</p><p> P3.0-P3.7 (10腳—17腳):輸入輸出腳,稱為P3 口,是一個(gè)帶內(nèi)部上拉電</p><p> 阻的8 位雙向I/O 口。P3 端口具有復(fù)用功能。<
16、/p><p> 表2.1 P3口端口引腳與復(fù)用功能表</p><p> 2.2 DS18B20 </p><p> 2.2.1 DS18B20性能</p><p> DS18B20是Dallas公司推出的單線集成數(shù)字溫度采集系統(tǒng),與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字
17、值讀數(shù)方式。其實(shí)物如圖2.3所示。</p><p> 圖2.3 DS18B20</p><p> DS18b20內(nèi)部主要有三個(gè)數(shù)字部件:64位激光ROM、溫度傳感器、非易失性溫度報(bào)警觸發(fā)器TH和TL。</p><p> DS18B20 的性能特點(diǎn)如下:</p><p> ●獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條
18、口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊;</p><p> ●多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;</p><p><b> ●無(wú)需外部器件;</b></p><p> ●可通過(guò)數(shù)據(jù)線供電,電壓范圍:3.0~5.5V;</p><p> ●測(cè)溫范圍-55℃~+125℃,在-10~+
19、85℃時(shí)精度為±0.5℃</p><p><b> ●零待機(jī)功耗</b></p><p> ●溫度以9或12位數(shù)字量讀出;</p><p> ●用戶可定義的非易失性溫度報(bào)警設(shè)置;</p><p> ●具有非易失性上、下限報(bào)警設(shè)定的功能,用戶可方便地通過(guò)編程修改上、下限的數(shù)值;</p>&l
20、t;p> ●負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作;</p><p> ●適用于DN15~25, DN40~DN250各種介質(zhì)工業(yè)管道和狹小空間設(shè)備測(cè)溫。8PVC電纜直接出線或德式球型接線盒出線,便于與其它電器設(shè)備連接。</p><p> ●數(shù)字量的轉(zhuǎn)換精度及轉(zhuǎn)換時(shí)間可通過(guò)簡(jiǎn)單的編程來(lái)控制:9位精度的轉(zhuǎn)換時(shí)間為93.75 ms:10位精度的轉(zhuǎn)換時(shí)間1
21、87.5ms:12位精度的轉(zhuǎn)換時(shí)間750ms。</p><p> 2.2.2 DS18B20引腳圖</p><p> 本文用的DS18B20的常用封裝為3腳,如圖2.4所示。:</p><p> 圖2.4 DS18B20引腳圖</p><p> 各腳功能描述如下: </p><p> DQ:數(shù)字信號(hào)輸入/輸出
22、端。</p><p><b> GND:電源地端。</b></p><p> VDD:外接供電電源輸入端(在寄生電源接線時(shí)此腳應(yīng)接地)。</p><p> 2.3 三極管9012</p><p> 三極管的工作原理 三極管是一種控制元件,主要用來(lái)控制電流的大小,以共發(fā)射極接法為例(信號(hào)從基極輸入,從集電
23、極輸出,發(fā)射極接地),當(dāng)基極電壓UB有一個(gè)微小的變化時(shí),基極電流IB也會(huì)隨之有一小的變化,受基極電流IB的控制,集電極電流IC會(huì)有一個(gè)很大的變化,基極電流IB越大,集電極電流IC也越大,反之,基極電流越小,集電極電流也越小,即基極電流控制集電極電流的變化。但是集電極電流的變化比基極電流的變化大得多,這就是三極管的放大作用。IC 的變化量與IB變化量之比叫做三極管的放大倍數(shù)β(β=ΔIC/ΔIB, Δ表示變化量。),三極管的放大倍數(shù)β一般
24、在幾十到幾百倍。 三極管在放大信號(hào)時(shí),首先要進(jìn)入導(dǎo)通狀態(tài),即要先建立合適的靜態(tài)工作點(diǎn),也叫建立偏置,否則會(huì)放大失真。</p><p> 9012是一種最常用的普通三極管。它是一種低電壓,大電流,小信號(hào)的PNP型硅三極管:</p><p> 集電極電流Ic:Max -500mA </p><p> 集電極-基極電壓Vcbo: -40V </p>
25、<p> 工作溫度:-55℃ to +150℃ </p><p> 和9013(NPN)相對(duì) </p><p><b> 主要用途: </b></p><p><b> 開關(guān)應(yīng)用 </b></p><p><b> 射頻放大</b></p>&
26、lt;p> 2.4 共陰極數(shù)碼管</p><p> 數(shù)碼管由8個(gè)發(fā)光二極管(以下簡(jiǎn)稱字段)構(gòu)成,通過(guò)不同的組合可用來(lái)顯示數(shù)字0 9、字符A F、H、L、P、R、 U、Y、符號(hào)“”及小數(shù)點(diǎn)“”。數(shù)碼管的外形結(jié)構(gòu)如下圖2.5所示。數(shù)碼管又分為共陰極和共陽(yáng)極兩種結(jié)構(gòu)。</p><p> 圖2.5 共陰極四位一體數(shù)碼管</p><p> 共陰極數(shù)碼管的8
27、個(gè)發(fā)光二極管的陰極(二極管負(fù)端)連接在一起。通常,公共陰極接低電平(一般接地),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為高電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。</p><p> 使用時(shí),既可以用半導(dǎo)體三極管驅(qū)動(dòng),也可以直接用TTL與非門驅(qū)動(dòng)。需要加限流電阻
28、。數(shù)碼管的工作電壓一般為1.5至3伏,工作電流只需幾到十幾毫安。且壽命長(zhǎng),響應(yīng)速度快。</p><p> 2.5 硬件部分電路圖</p><p><b> 2.5.1復(fù)位電路</b></p><p> 在振蕩器運(yùn)行時(shí),有兩個(gè)機(jī)器周期(24 個(gè)振蕩周期)以上的高電平出現(xiàn)在此引腳時(shí),將使單片機(jī)復(fù)位,只要這個(gè)腳保持高電平,52 芯片便循環(huán)復(fù)位。
29、復(fù)位后P0-P3 口均置1 引腳表現(xiàn)為高電平,程序計(jì)數(shù)器和特殊功能寄存器SFR 全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r(shí),芯片為ROM 的0000H 處開始運(yùn)行程序。該芯片的復(fù)位腳為9腳,所以復(fù)位電路接STC89C52RC的9腳,具體電路如下圖2.6所示。當(dāng)采用的晶體頻率是6 MHZ時(shí),可取C=22UF,R=1K;當(dāng)采用的晶體頻率為12MHZ時(shí),可取C=10UF,R=8.2K。不過(guò)這都是最佳的組合,也可以有其它大小的電容電阻,只要符合電路
30、要求就可以,如本文就采用22UF的電容和10K的電阻,經(jīng)試驗(yàn)也滿足要求。</p><p><b> 圖2.6 復(fù)位電路</b></p><p><b> 2.5.2 晶振</b></p><p> 為了產(chǎn)生時(shí)鐘信號(hào),在8052 內(nèi)部設(shè)置了一個(gè)反相放大器,XTAL1 是片內(nèi)振蕩器反相放大器的輸入端,XTAL2 是片內(nèi)振
31、蕩器反相放大器的輸出端,也是內(nèi)部時(shí)鐘發(fā)生器的輸入端。當(dāng)使用自激振蕩方式時(shí),XTAL1 和XTAL2 外接石英晶振,使內(nèi)部振蕩器按照石英晶振的頻率振蕩,就產(chǎn)生時(shí)鐘信號(hào)。晶振一般使用石英晶體,其頻率由系統(tǒng)需要和器件決定,在頻率穩(wěn)定度要求不高時(shí)也可以使用陶瓷濾波器。使用石英晶體時(shí)C1、C2為C1=C2=30(±10)pF,使用陶瓷濾波器時(shí),C1=C2=40(±10)pF。本系統(tǒng)用12MHZ的石英晶振,接STC89C52RC
32、的18和19腳,具體電路如圖2.7所示。</p><p> 圖2.7 時(shí)鐘信號(hào)電路(晶振)</p><p> 2.5.3 一路傳輸電路</p><p> 在傳統(tǒng)的模擬信號(hào)遠(yuǎn)距離溫度測(cè)量系統(tǒng)中,需要很好的解決引線誤差補(bǔ)償問(wèn)題、多點(diǎn)測(cè)量切換誤差問(wèn)題和放大電路零點(diǎn)漂移誤差問(wèn)題等技術(shù)問(wèn)題,才能夠達(dá)到較高的測(cè)量精度。另外一般監(jiān)控現(xiàn)場(chǎng)的電磁環(huán)境都非常惡劣,各種干擾信號(hào)較
33、強(qiáng),模擬溫度信號(hào)容易受到干擾而產(chǎn)生測(cè)量誤差,影響測(cè)量精度。因此,在溫度測(cè)量系統(tǒng)中,本文采用抗干擾能力強(qiáng)的新型數(shù)字溫度傳感器是解決這些問(wèn)題的最有效方案,新型數(shù)字溫度傳感器DS18B20具有體積更小、精度更高、適用電壓更寬、采用一線總線、可組網(wǎng)等優(yōu)點(diǎn),在實(shí)際應(yīng)用中取得了良好的測(cè)溫效果。</p><p> DS18B20有三個(gè)引腳。VDD管腳接 5V電壓給傳感器供電。DQ管腳為數(shù)據(jù)線 ,與STC89C51RC的 P1
34、.0連接的同時(shí),還要接一個(gè) 4.7K的上拉電阻,并接到 5V的電源上,使數(shù)據(jù)線在空閑狀態(tài)下能自動(dòng)上拉為高電平。GND管腳接地。具體電路如圖2.8所示。之所以接P1口,是因?yàn)镻1口的驅(qū)動(dòng)力最強(qiáng),完全可以驅(qū)DS18B20的正常運(yùn)行。</p><p> 圖2.8 一路傳輸電路</p><p> 2.5.4 LED顯示電路</p><p> 顯示電路采用靜態(tài)顯示,4位
35、LED數(shù)碼管。所謂靜態(tài)顯示,就是每一個(gè)顯示器都要占用單獨(dú)的具有鎖存功能的I/O接口用于比劃段字形代碼。這樣單片機(jī)只要把顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示顯示新的數(shù)據(jù)時(shí),再發(fā)送心的字形碼,因此,使用這種方法,單片機(jī)中的CPU的開銷小。本文的顯示電路如圖2.9所示。其中P0口作為7斷碼和小數(shù)點(diǎn)的選擇,P2口作為位碼的選擇,在斷碼和P0口之間還需加上1K的上拉電阻,以保證LED燈的正常顯示。</p><
36、p><b> . </b></p><p> 圖2.9 LED顯示電路</p><p> 2.5.5 報(bào)警電路</p><p> 本文中當(dāng)某一通道的溫度測(cè)量值超出預(yù)先設(shè)定的上、下限報(bào)警值或系統(tǒng)運(yùn)行出現(xiàn)故障時(shí), 系統(tǒng)發(fā)出聲光報(bào)警以提醒用戶注意。報(bào)警電路中光報(bào)警采用發(fā)光二極管, 聲報(bào)警采用蜂鳴器來(lái)設(shè)計(jì),蜂鳴器電路中, 9012晶體管起
37、開關(guān)作用, P2.6輸出低電平時(shí), 管腳輸出電壓經(jīng)過(guò)lK限流電阻分壓后, 到達(dá)9012基極的電壓為使得晶體管發(fā)射結(jié)正偏,集電結(jié)反偏, 晶體管導(dǎo)通, 蜂鳴器上電而產(chǎn)生聲響。發(fā)光二極管電路中, 主要是限流電阻的設(shè)計(jì),由于發(fā)光二極管工作電流是3 mA-30 mA, 導(dǎo)通壓降為1.8 V; 而單片機(jī)工作在5 V電壓時(shí), I/O口輸出低電平的最大灌入電流是16 mA, 輸出的低電平是Vss+0.6 V 這樣在限流電阻上的壓降就是5-1.8-0.6
38、=2.6 V, 而電流要限定在8 mA左右, 所以電阻阻值為2.6 V/8 mA=325歐姆, 在實(shí)際電路中選用330歐姆的電阻即能滿足要求。具體電路如圖2.10所示。</p><p> 圖2.10 報(bào)警電路</p><p> 2.5.6下載程序電路</p><p> 本文中將PC機(jī)上的程序拷貝到單片機(jī)中是通過(guò)如圖2.11所示的,連接單片機(jī)的10和11腳串行接
39、口到插件上,再和PC機(jī)之間進(jìn)行通訊。</p><p><b> .</b></p><p> 圖2.11 下載程序電路</p><p> 2.5.7 完整電路</p><p> 圖2.12 完整電路</p><p> 第三節(jié) 軟件設(shè)計(jì)介紹</p><p> 3
40、.1 程序流程圖和實(shí)物圖</p><p> 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命了子程序,計(jì)算溫度子程序,顯示刷新溫度子程序等。</p><p><b> 3.1.1 主程序</b></p><p> 主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值。溫度測(cè)量每1S進(jìn)行一次,這樣可以在1S 之
41、內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見(jiàn)圖3.1所示。</p><p> 圖3.1 系統(tǒng)主程序流程</p><p> 3.1.2 顯示電路框圖</p><p> 顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高位顯示為0時(shí)將符號(hào)顯示位移入下一位。程序流程圖如圖3.2所示。</p><p> 圖3.2 顯示電路框圖</
42、p><p> 3.1.3 讀出溫度子程序</p><p> 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1S顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如圖3.3所示。</p><p> 圖3.3 溫度轉(zhuǎn)換流程圖</p><p> 3.1.4 計(jì)算溫度子程序</
43、p><p> 計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖3.4所示。</p><p> 圖3.4 計(jì)算溫度流程圖</p><p><b> 3.2 調(diào)試</b></p><p> 3.2.1 硬件調(diào)試</p><p> 硬件調(diào)試是利用開發(fā)系
44、統(tǒng)、基本測(cè)試儀器(萬(wàn)用表、顯示器)等,檢查系統(tǒng)硬件中存在的故障。</p><p> 靜態(tài)調(diào)試 靜態(tài)調(diào)試是在系統(tǒng)未工作時(shí)的一種調(diào)試。步驟如下:</p><p> 第一步:目測(cè)。檢查外部的各種原器件或者是電路是否有斷點(diǎn)。</p><p> 第二步:用萬(wàn)用表檢測(cè)。先用萬(wàn)用表復(fù)核目測(cè)中有疑問(wèn)的連接點(diǎn),在檢測(cè)各種電源線與接地線之間是否有短路現(xiàn)象。</p>
45、<p> 第三步:加電檢測(cè)。給電路板加電,檢測(cè)所有的插座或者是硬件的電源是否符合要求的值。</p><p> 第四步:聯(lián)機(jī)檢查。因?yàn)橹挥袉纹瑱C(jī)開發(fā)系統(tǒng)才能完成對(duì)用戶系統(tǒng)的調(diào)試。</p><p> 動(dòng)態(tài)調(diào)試 動(dòng)態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排除系統(tǒng)硬件中存在的器件內(nèi)部故障、器件連接邏輯錯(cuò)誤等的一種硬件檢查,動(dòng)態(tài)調(diào)試的一般方法是由近及遠(yuǎn)、由分到合。</p>
46、<p> 由近及遠(yuǎn) 是將信號(hào)流經(jīng)的各器件按照距離單片機(jī)的邏輯距離進(jìn)行由近及遠(yuǎn)的分層,然后分層調(diào)試。調(diào)試時(shí),仞采用去掉無(wú)關(guān)元件的方法,逐層調(diào)試下去,就會(huì)定位故障元件了。</p><p> 由分到合 是指首先按照邏輯功能將系統(tǒng)硬件電路分為若干塊,當(dāng)調(diào)試電路時(shí),與該元件無(wú)關(guān)的器件全部從系統(tǒng)中去掉,這樣可以將故障范圍限定在某個(gè)局部的電路上。當(dāng)各塊電路無(wú)故障后,將各電路逐塊加入系統(tǒng)中,再對(duì)各塊電路功能及各電
47、路之間可能存在的相互聯(lián)系進(jìn)行調(diào)試,</p><p> 3.2.2 軟件調(diào)試</p><p> 軟件調(diào)試是通過(guò)對(duì)程序的匯編(或者C語(yǔ)言)、連接、執(zhí)行來(lái)發(fā)現(xiàn)程序中存在的語(yǔ)法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正的過(guò)程,查看程序是否有邏輯的錯(cuò)誤。</p><p> 在對(duì)硬件調(diào)試后再對(duì)軟件進(jìn)行,因?yàn)橄葘?duì)硬件檢查沒(méi)問(wèn)題的情況下再對(duì)軟件進(jìn)行調(diào)試,編譯軟件可以通過(guò)編譯去檢查程序上的語(yǔ)
48、法錯(cuò)誤,然后可以在它的基礎(chǔ)上在對(duì)它進(jìn)行一些修改達(dá)到?jīng)]有錯(cuò)誤為止,然后將軟件拿到硬件上去運(yùn)行。</p><p> 通過(guò)仿真后,如無(wú)誤,方可將程序灌輸如單片機(jī)中。</p><p><b> 3.2.3 實(shí)物</b></p><p> 圖3.5 調(diào)試前電路板</p><p> 圖3.6 調(diào)試時(shí)電路板</p>
49、<p> 圖3.7 調(diào)試后溫度顯示</p><p> 第五節(jié) 個(gè)人心得體會(huì)</p><p> 做本課程設(shè)計(jì),讓我清楚的了解了電子設(shè)計(jì)大體分三個(gè)階段:設(shè)計(jì)與計(jì)算階段(預(yù)設(shè)計(jì)階段)、安裝與調(diào)試階段、撰寫總結(jié)報(bào)告階段。</p><p> 在拿到一個(gè)課題時(shí)首先要做的事就是對(duì)課題的任務(wù),要求和條件進(jìn)行仔細(xì)的分析和研究,找出關(guān)鍵問(wèn)題,根據(jù)關(guān)鍵問(wèn)題提出實(shí)現(xiàn)
50、的原理和方法,并畫出原理框圖。</p><p> 提出原理方案是一個(gè)關(guān)系到設(shè)計(jì)全局的問(wèn)題,應(yīng)廣泛收集與查閱有關(guān)資料,廣開思路,利用已有的各種理論知識(shí),提出盡可能多的方案,以便作出更合理的選擇。所提出的方案中,對(duì)關(guān)鍵部分的可行性,一般應(yīng)通過(guò)試驗(yàn)加以確認(rèn)。根據(jù)整個(gè)課題的技術(shù)要求,明確該功能框?qū)卧娐返募夹g(shù)要求,必要時(shí)應(yīng)詳細(xì)擬定單元電路的性能指標(biāo),然后進(jìn)行單元電路結(jié)構(gòu)形式的選擇或設(shè)計(jì),但滿足功能框圖要求的單元電路可
51、能不止一個(gè),因此必須進(jìn)行分析比較,擇優(yōu)選擇。就如我們這個(gè)課題當(dāng)初我就提出了三種方案,最后基于簡(jiǎn)單,可實(shí)行選擇了如今這種方案。</p><p> 然后是元器件的選擇,元器件的品種規(guī)格繁多,性能、價(jià)格和體積各異,選擇器件需進(jìn)行分析比較。首先考慮滿足單元電路對(duì)元器件性能指標(biāo)的要求,其次考慮價(jià)格、貨源和元器件體積等,最好是使用實(shí)驗(yàn)室已有的元器件。</p><p> 元器件選好了就是參數(shù)的計(jì)算了
52、,值得指出的是,滿足性能指標(biāo)要求的參數(shù)值通常不是唯一的,這就要求對(duì)各組參數(shù)進(jìn)行綜合性的分析,仔細(xì)考慮元器件之間的參數(shù)配合、元器件價(jià)格、體積和貨源等因素,恰當(dāng)?shù)剡x取一組適合的參數(shù)。</p><p> 在各單元電路確定后,還要認(rèn)真考慮它們之間的級(jí)聯(lián)問(wèn)題,如:電氣特性的相互匹配、信號(hào)耦合方式、時(shí)序配合,以及相互干擾等問(wèn)題,保證整個(gè)電路能正常工作。</p><p> 這些都做好后,總體實(shí)驗(yàn)電路
53、就出來(lái)了,接下來(lái)的事情就是焊接工作,實(shí)施焊接的主要工具是電烙鐵,其次還有松香、焊錫、吸水棉、連接線等,焊接的主要步驟為準(zhǔn)備施焊——加熱被焊件——加焊錫絲——移開焊錫絲——移開電烙鐵。在焊接電路時(shí)一定做到認(rèn)真仔細(xì)、一絲不茍。注意連線正確,焊接規(guī)范,盡量做到整齊美觀并保證接觸良好;集成塊插牢并注意方向;電源和地線不要短路,以避免人為故障。</p><p> 最后就是對(duì)電路進(jìn)行調(diào)試。一個(gè)組裝好的電子電路不可能不經(jīng)調(diào)試
54、即可滿足設(shè)計(jì)要求。調(diào)試中出現(xiàn)的各種現(xiàn)象和問(wèn)題,需要我們提出解決的辦法。只有這樣,才能順利做好調(diào)試工作,才能通過(guò)此次設(shè)計(jì)得到實(shí)際訓(xùn)練。在調(diào)試當(dāng)中一般常見(jiàn)故障源為:接觸不良(特別是當(dāng)電源線接觸不良時(shí)可能工作不穩(wěn)定)、焊接錯(cuò)誤(錯(cuò)焊、漏焊或虛焊)、接線錯(cuò)誤(錯(cuò)接、漏接或短路)、器件本身?yè)p壞(需單獨(dú)測(cè)試其功能方能確定確實(shí)損壞)、集成塊插錯(cuò)位置或方向插反、多余控制輸入端未正確處理(一般若懸空會(huì)有較大干擾,應(yīng)接固定電平)、設(shè)計(jì)上有缺陷(出現(xiàn)預(yù)先估計(jì)
55、不到的現(xiàn)象,這就需要改變某些元件的參數(shù)或更換元器件,甚至需要修改方案)。在此次設(shè)計(jì)當(dāng)中,由于電路設(shè)計(jì)和焊接工作都非常仔細(xì)認(rèn)真的完成,所以在調(diào)試當(dāng)中幾乎很少出現(xiàn)電路的問(wèn)題,因此本設(shè)計(jì)才順利的完成了。</p><p> 我通過(guò)實(shí)踐課的綜合練習(xí),課程設(shè)計(jì)的實(shí)際操作,將課堂理論學(xué)習(xí)貫穿其中,全面系統(tǒng)的把單片機(jī)課程的知識(shí)聯(lián)系在一起,做到融會(huì)貫通,使我真正感受到理論應(yīng)用于實(shí)踐的樂(lè)趣。這次設(shè)計(jì)是一次鍛煉的好機(jī)會(huì),使我在學(xué)習(xí)和
56、鞏固新、老知識(shí)的同時(shí),訓(xùn)練了自己綜合運(yùn)用知識(shí)的能力、分析解決新問(wèn)題的能力,同時(shí)也提高了自己工程實(shí)踐能力;在設(shè)計(jì)的過(guò)程中,我與同學(xué)一同學(xué)習(xí)、一同討論,大家集思廣益,發(fā)揚(yáng)了團(tuán)隊(duì)協(xié)作精神。在課程設(shè)計(jì)過(guò)程中,我發(fā)現(xiàn)了自己的不足,今后應(yīng)加強(qiáng)學(xué)習(xí),并且加強(qiáng)理論與實(shí)踐的相結(jié)合,把所學(xué)的知識(shí)應(yīng)用于實(shí)際當(dāng)中。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 李
57、朝青.《單片機(jī)原理及接口技術(shù)(第3版)》[M].北京:航空航天大學(xué)出版社,2005</p><p> [2] 陳世和.《電工電子實(shí)習(xí)教程》[M]. 北京:航空航天大學(xué)出版社,2007</p><p> [3] 孫進(jìn)生等.《電子產(chǎn)品設(shè)計(jì)實(shí)例教程》[M]. 北京:冶金工業(yè)出版社,2004</p><p> [4] 張偉等.《Protel 99SE實(shí)用教程 》[M]
58、.北京:人民電郵出版社,2008</p><p> [5] 白瑞青,金功偉.《單片機(jī)溫度巡回監(jiān)測(cè)系統(tǒng)》[J].測(cè)試技術(shù)學(xué)報(bào),98年第12卷第3期</p><p> [6] 李紅剛,方佳,王強(qiáng),錢雙艷.《基于At89C51的八路溫度巡回檢測(cè)系統(tǒng)設(shè)計(jì)》[J].熱帶農(nóng)業(yè)工程,2010年第34卷第1期</p><p><b> 附錄</b><
59、;/p><p><b> 附1</b></p><p><b> 表1 元件清單</b></p><p> 注:封裝都為標(biāo)準(zhǔn)封裝</p><p><b> 附2</b></p><p> 圖1 一路傳輸溫度測(cè)量系統(tǒng)完整電路圖</p>
60、<p><b> 附3</b></p><p><b> 源程序</b></p><p> #include "reg52.h"</p><p> #include "intrins.h" //_nop_();延
61、時(shí)函數(shù)用</p><p> #define Disdata P0 //段碼輸出口</p><p> #define discan P2 //掃描口</p><p> #define uchar unsigned char</p>
62、<p> #define uint unsigned int</p><p> sbit DQ=P1^0; //溫度輸入口</p><p> sbit DIN=P0^7; //LED小數(shù)點(diǎn)控制</p><p>
63、 uint h; </p><p> uint temp;</p><p> //**************溫度小數(shù)部分用查表法***********//</p><p> uchar code ditab[16]=</p><p> {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,
64、0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};</p><p><b> //</b></p><p> uchar code dis_7[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};</p><p> uchar
65、code scan_con[4]={0xFE,0xFD,0xFB,0xF7}; //列掃描控制字</p><p> uchar data temp_data[2]={0x00,0x00}; //讀出溫度暫放</p><p> uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; //顯示單元數(shù)據(jù),共4個(gè)
66、數(shù)據(jù)和一個(gè)運(yùn)算暫用</p><p> /*****************11us延時(shí)函數(shù)*************************/</p><p> void delay(uint t)</p><p><b> {</b></p><p> for (;t>0;t--);</p>
67、<p><b> }</b></p><p> /****************顯示掃描函數(shù)***************************/</p><p><b> scan()</b></p><p><b> {</b></p><p>&l
68、t;b> char k;</b></p><p> for(k=0;k<4;k++) //4位LED掃描控制</p><p><b> {</b></p><p> Disdata=0XFF-dis_7[display[k]]; //數(shù)據(jù)顯示</p&
69、gt;<p> if (k==1){DIN=1;} //小數(shù)點(diǎn)顯示</p><p> discan=scan_con[k]; //位選</p><p> delay(300);</p><p><b> }</b></p><p>
70、<b> }</b></p><p> /****************DS18B20復(fù)位函數(shù)************************/</p><p> ow_reset(void)</p><p><b> {</b></p><p> char presence=1;<
71、;/p><p> while(presence)</p><p><b> {</b></p><p> while(presence)</p><p><b> {</b></p><p> DQ=1;_nop_();_nop_();//從高拉倒低</p>
72、<p> DQ=0; </p><p> delay(50); //550 us</p><p> DQ=1; </p><p> delay(6);
73、 //66 us</p><p> presence=DQ; //presence=0 復(fù)位成功,繼續(xù)下一步</p><p><b> } </b></p><p> delay(45); //延時(shí)500 us</p><p> presence=~DQ; &
74、lt;/p><p><b> }</b></p><p> DQ=1; //拉高電平</p><p><b> }</b></p><p> /****************DS18B20寫命令函數(shù)************************/</
75、p><p> //向1-WIRE 總線上寫1個(gè)字節(jié)</p><p> void write_byte(uchar val)</p><p><b> { </b></p><p><b> uchar i;</b></p><p> for(i=8;i>0;i--
76、)</p><p><b> {</b></p><p> DQ=1;_nop_();_nop_(); //從高拉倒低</p><p> DQ=0;_nop_();_nop_();_nop_();_nop_(); //5 us</p><p> DQ=val&0x01;
77、 //最低位移出</p><p> delay(6); //66 us</p><p> val=val/2; //右移1位</p><p><b> }</b></p
78、><p><b> DQ=1;</b></p><p><b> delay(1);</b></p><p><b> }</b></p><p> /****************DS18B20讀1字節(jié)函數(shù)************************/</p&
79、gt;<p> //從總線上取1個(gè)字節(jié)</p><p> uchar read_byte(void)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> uchar value=0;</p><p&g
80、t; for(i=8;i>0;i--)</p><p><b> {</b></p><p> DQ=1;_nop_();_nop_();</p><p> value>>=1;</p><p> DQ=0;_nop_();_nop_();_nop_();_nop_(); //
81、4 us</p><p> DQ=1;_nop_();_nop_();_nop_();_nop_(); //4 us</p><p> if(DQ)value|=0x80;</p><p> delay(6); //66 us</p><p><
82、;b> }</b></p><p><b> DQ=1;</b></p><p> return(value);</p><p><b> }</b></p><p><b> //</b></p><p> /******
83、**********讀出溫度函數(shù)************************/</p><p><b> //</b></p><p> read_temp()</p><p><b> {</b></p><p> ow_reset(); //總線復(fù)位
84、</p><p> delay(200);</p><p> write_byte(0xcc); //發(fā)命令</p><p> write_byte(0x44); //發(fā)轉(zhuǎn)換命令</p><p> ow_reset(); </p><p><b> del
85、ay(1);</b></p><p> write_byte(0xcc); //發(fā)命令</p><p> write_byte(0xbe);</p><p> temp_data[0]=read_byte(); //讀溫度值的低字節(jié)</p><p> temp_data[1]=read_byte
86、(); //讀溫度值的高字節(jié)</p><p> temp=temp_data[1];</p><p> temp<<=8; </p><p> temp=temp|temp_data[0]; // 兩字節(jié)合成一個(gè)整型變量。</p>
87、<p> return temp; //返回溫度值</p><p><b> }</b></p><p><b> //</b></p><p> /****************溫度數(shù)據(jù)處理函數(shù)************************/</p>
88、<p> //二進(jìn)制高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié),這個(gè)</p><p> //字節(jié)的二進(jìn)制轉(zhuǎn)換為十進(jìn)制后,就是溫度值的百、十、個(gè)位值,而剩</p><p> //下的低字節(jié)的低半字節(jié)轉(zhuǎn)化成十進(jìn)制后,就是溫度值的小數(shù)部分</p><p> /**********************************************
89、**********/</p><p> work_temp(uint tem)</p><p><b> {</b></p><p> uchar n=0;</p><p> if(tem>6348) // 溫度值正負(fù)判斷</p><p&g
90、t; {tem=65536-tem;n=1;} // 負(fù)溫度求補(bǔ)碼,標(biāo)志位置1</p><p> display[4]=tem&0x0f; // 取小數(shù)部分的值</p><p> display[0]=ditab[display[4]]; // 存入小數(shù)部分顯示值</p><p> display[4]=t
91、em>>4; // 取中間八位,即整數(shù)部分的值</p><p> display[3]=display[4]/100; // 取百位數(shù)據(jù)暫存</p><p> display[1]=display[4]%100; // 取后兩位數(shù)據(jù)暫存</p><p> display[2]=display[1]/10;
92、 // 取十位數(shù)據(jù)暫存</p><p> display[1]=display[1]%10; </p><p> /******************符號(hào)位顯示判斷**************************/</p><p> if(!display[3]) </p><p><b> {</b&g
93、t;</p><p> display[3]=0x0a; //最高位為0時(shí)不顯示</p><p> if(!display[2])</p><p><b> {</b></p><p> display[2]=0x0a; //次高位為0時(shí)不顯示</p><p&
94、gt;<b> }</b></p><p><b> }</b></p><p> if(n){display[3]=0x0b;} //負(fù)溫度時(shí)最高位顯示"-"</p><p><b> }</b></p><p> /*********
95、*******主函數(shù)************************/</p><p><b> main()</b></p><p><b> {</b></p><p> Disdata=0xff; //初始化端口</p><p> discan=0xff
96、;</p><p> for(h=0;h<4;h++) //開機(jī)顯示"0000"</p><p> {display[h]=0;} </p><p> ow_reset(); //開機(jī)先轉(zhuǎn)換一次</p><p> write_byte(0xcc);
97、 //Skip ROM</p><p> write_byte(0x44); //發(fā)轉(zhuǎn)換命令</p><p> for(h=0;h<100;h++) //開機(jī)顯示"0000"</p><p><b> {scan();}</b></p&g
98、t;<p><b> while(1)</b></p><p><b> {</b></p><p> work_temp(read_temp()); //處理溫度數(shù)據(jù)</p><p> scan(); //顯示溫度值</p><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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì) ---八路溫度巡回檢測(cè)系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)--八路溫度巡回檢測(cè)系統(tǒng)
- 課程設(shè)計(jì)-單片機(jī)原理基于單片機(jī)的八路搶答器設(shè)計(jì)
- 單片機(jī)八路搶答器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---八路搶答器
- 單片機(jī)八路搶答器課程設(shè)計(jì)
- 《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)-八路掃描式搶答器設(shè)計(jì)
- 課程設(shè)計(jì)---單片機(jī)八路搶答器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)八路搶答器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--八路搶答器
- 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)(溫度測(cè)量)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)原理及應(yīng)用
- 單片機(jī)課程設(shè)計(jì)-- 單片機(jī)原理及應(yīng)用
- 基于單片機(jī)的八路智能搶答器課程設(shè)計(jì)
- 基于單片機(jī)的八路智能搶答器課程設(shè)計(jì)
- 基于51單片機(jī)的八路搶答器課程設(shè)計(jì)
- 單片機(jī)溫度檢測(cè)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于51單片機(jī)的八路競(jìng)賽搶答器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--8051系列單片機(jī)控制的八路智力搶答器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--八路智力競(jìng)賽搶答器
評(píng)論
0/150
提交評(píng)論