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