2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)</p><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ì)

2、等方面進(jìn)行具體探討和研究。系統(tǒng)具有性能穩(wěn)定可靠、功耗低、成本低、測(cè)量準(zhǔn)確、傳輸距離遠(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>&

3、lt;p>  1.1系統(tǒng)原理及基本框圖3</p><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 三極管9012

4、8</p><p>  2.4 共陰極數(shù)碼管8</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>  

5、第四節(jié) 個(gè)人心得體會(huì)21</p><p><b>  參考文獻(xiàn)24</b></p><p><b>  附錄25</b></p><p><b>  附1:電路圖</b></p><p><b>  附2:元件清單</b></p>&

6、lt;p><b>  附3:程序</b></p><p><b>  引言</b></p><p>  隨著計(jì)算機(jī)技術(shù)和傳感器技術(shù)的飛速發(fā)展, 在科研、生產(chǎn)和日?;顒?dòng)中, 人們對(duì)溫度、壓力、流量等模擬物理量的測(cè)量要求越來越高。而這些物量中溫度的應(yīng)用是最為廣泛的。如何將溫度通過傳感器變成電信號(hào), 再經(jīng)過處理轉(zhuǎn)換成計(jì)算機(jī)能夠識(shí)別的數(shù)字量, 輸入

7、到計(jì)算機(jī)中, 由計(jì)算機(jī)將采集到的數(shù)字量進(jìn)行不同的處理, 然后在顯示器顯示出來,并進(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>  該

8、系統(tǒng)由六部分組成:STC89C52RC核心單片機(jī),溫度采集電路,LED顯示電路,報(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>  利用單

9、片機(jī)與AD轉(zhuǎn)換器設(shè)計(jì)一個(gè)八路溫度巡回檢測(cè)系統(tǒng),對(duì)某糧庫或冷凍廠八點(diǎn)(八個(gè)冷凍室或八個(gè)糧倉)進(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>&l

10、t;p>  第二節(jié) 硬件設(shè)計(jì)介紹</p><p>  2.1 STC89C52RC</p><p>  2.1.2 STC89C52RC介紹</p><p>  單片機(jī)自問世以來,以其極高的性價(jià)比受到人們的重視和關(guān)注,應(yīng)用很廣,發(fā)展很快。單片機(jī)的體積小,重量輕,抗干擾能力強(qiáng),環(huán)境要求不高,價(jià)格低,可靠性強(qiáng),靈活性好,開發(fā)較為容易?;谝陨系膬?yōu)點(diǎn),單片機(jī)已經(jīng)廣泛

11、的應(yīng)用在工業(yè)自動(dòng)化控制,自動(dòng)檢測(cè),智能儀器儀表,機(jī)電一體化等各個(gè)方面,所以本系統(tǒng)采用單片機(jī)做為控制器。單片機(jī)中51/52系列最具有代表性。</p><p>  本設(shè)計(jì)核心采用了STC89C52RC單片機(jī)。STC89C51/52單片機(jī)系列是在MCS—51/52系列的基礎(chǔ)上發(fā)展起來的,STC89C52RC 完全兼容MCS-51 系列單片機(jī)的所有功能,并且本身帶有2K 的內(nèi)存儲(chǔ)器,可以在編程器上實(shí)現(xiàn)閃爍式的電擦寫達(dá)幾萬

12、次以上,比以往慣用的8031CPU 外加EPROM為核心的單片機(jī)系統(tǒng)在硬件上具有更加簡(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 ST

13、C89C52引腳圖</p><p>  單片機(jī)的引腳功能說明:</p><p><b>  ①電源引腳</b></p><p>  VCC(40 腳):電源端,工作電壓為5V。</p><p>  GND(20腳): 接地端。</p><p> ?、跁r(shí)鐘電路引腳XTAL1(19 腳)和XTAL2(

14、18 腳)</p><p> ?、蹚?fù)位 RST(9 腳)</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)部

15、上拉電阻</p><p>  的8 位雙向I/0 口。</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><

16、;p>  阻的8 位雙向I/O 口。P3 端口具有復(fù)用功能。</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è)溫元件相比,

17、它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(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&

18、gt;  ●獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊;</p><p>  ●多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;</p><p><b>  ●無需外部器件;</b></p><p>  ●可通過數(shù)據(jù)線供電,電壓范圍:3.0~5.5V;</p&g

19、t;<p>  ●測(cè)溫范圍-55℃~+125℃,在-10~+85℃時(shí)精度為±0.5℃</p><p><b>  ●零待機(jī)功耗</b></p><p>  ●溫度以9或12位數(shù)字量讀出;</p><p>  ●用戶可定義的非易失性溫度報(bào)警設(shè)置;</p><p>  ●具有非易失性上、下限報(bào)警設(shè)定的

20、功能,用戶可方便地通過編程修改上、下限的數(shù)值;</p><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í)間可通過簡(jiǎn)單

21、的編程來控制:9位精度的轉(zhuǎn)換時(shí)間為93.75 ms:10位精度的轉(zhuǎn)換時(shí)間187.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>  各腳功能描述如下

22、: </p><p>  DQ:數(shù)字信號(hào)輸入/輸出端。</p><p><b>  GND:電源地端。</b></p><p>  VDD:外接供電電源輸入端(在寄生電源接線時(shí)此腳應(yīng)接地)。</p><p>  2.3 三極管9012</p><p>  三極管的工作原理 三極管是一種控

23、制元件,主要用來控制電流的大小,以共發(fā)射極接法為例(信號(hào)從基極輸入,從集電極輸出,發(fā)射極接地),當(dāng)基極電壓UB有一個(gè)微小的變化時(shí),基極電流IB也會(huì)隨之有一小的變化,受基極電流IB的控制,集電極電流IC會(huì)有一個(gè)很大的變化,基極電流IB越大,集電極電流IC也越大,反之,基極電流越小,集電極電流也越小,即基極電流控制集電極電流的變化。但是集電極電流的變化比基極電流的變化大得多,這就是三極管的放大作用。IC 的變化量與IB變化量之比叫做三極管的

24、放大倍數(shù)β(β=ΔIC/ΔIB, Δ表示變化量。),三極管的放大倍數(shù)β一般在幾十到幾百倍。 三極管在放大信號(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

25、>  集電極-基極電壓Vcbo: -40V </p><p>  工作溫度:-55℃ to +150℃ </p><p>  和9013(NPN)相對(duì) </p><p><b>  主要用途: </b></p><p><b>  開關(guān)應(yīng)用 </b></p><p>&

26、lt;b>  射頻放大</b></p><p>  2.4 共陰極數(shù)碼管</p><p>  數(shù)碼管由8個(gè)發(fā)光二極管(以下簡(jiǎn)稱字段)構(gòu)成,通過不同的組合可用來顯示數(shù)字0 9、字符A F、H、L、P、R、 U、Y、符號(hào)“”及小數(shù)點(diǎn)“”。數(shù)碼管的外形結(jié)構(gòu)如下圖2.5所示。數(shù)碼管又分為共陰極和共陽極兩種結(jié)構(gòu)。</p><p>  圖2.5 共陰極四

27、位一體數(shù)碼管</p><p>  共陰極數(shù)碼管的8個(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)通電流來確定相應(yīng)的限流電阻。</p><p>  使用

28、時(shí),既可以用半導(dǎo)體三極管驅(qū)動(dòng),也可以直接用TTL與非門驅(qū)動(dòng)。需要加限流電阻。數(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è)振蕩周期)以上的高電平出

29、現(xiàn)在此引腳時(shí),將使單片機(jī)復(fù)位,只要這個(gè)腳保持高電平,52 芯片便循環(huán)復(fù)位。復(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

30、=8.2K。不過這都是最佳的組合,也可以有其它大小的電容電阻,只要符合電路要求就可以,如本文就采用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è)反

31、相放大器,XTAL1 是片內(nèi)振蕩器反相放大器的輸入端,XTAL2 是片內(nèi)振蕩器反相放大器的輸出端,也是內(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(&

32、#177;10)pF。本系統(tǒng)用12MHZ的石英晶振,接STC89C52RC的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ǔ)償問題、多點(diǎn)測(cè)量切換誤差問題和放大電路零點(diǎn)漂移誤差問題等技術(shù)問題,才能

33、夠達(dá)到較高的測(cè)量精度。另外一般監(jiān)控現(xiàn)場(chǎng)的電磁環(huán)境都非常惡劣,各種干擾信號(hào)較強(qiáng),模擬溫度信號(hào)容易受到干擾而產(chǎn)生測(cè)量誤差,影響測(cè)量精度。因此,在溫度測(cè)量系統(tǒng)中,本文采用抗干擾能力強(qiáng)的新型數(shù)字溫度傳感器是解決這些問題的最有效方案,新型數(shù)字溫度傳感器DS18B20具有體積更小、精度更高、適用電壓更寬、采用一線總線、可組網(wǎng)等優(yōu)點(diǎn),在實(shí)際應(yīng)用中取得了良好的測(cè)溫效果。</p><p>  DS18B20有三個(gè)引腳。VDD管腳接

34、 5V電壓給傳感器供電。DQ管腳為數(shù)據(jù)線 ,與STC89C51RC的 P1.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顯示電

35、路</p><p>  顯示電路采用靜態(tài)顯示,4位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口之間還需加上

36、1K的上拉電阻,以保證LED燈的正常顯示。</p><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)警

37、采用發(fā)光二極管, 聲報(bào)警采用蜂鳴器來設(shè)計(jì),蜂鳴器電路中, 9012晶體管起開關(guān)作用, P2.6輸出低電平時(shí), 管腳輸出電壓經(jīng)過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, 輸出

38、的低電平是Vss+0.6 V 這樣在限流電阻上的壓降就是5-1.8-0.6=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ī)上的

39、程序拷貝到單片機(jī)中是通過如圖2.11所示的,連接單片機(jī)的10和11腳串行接口到插件上,再和PC機(jī)之間進(jìn)行通訊。</p><p><b>  .</b></p><p>  圖2.11 下載程序電路</p><p>  2.5.7 完整電路</p><p>  圖2.12 完整電路</p><p>

40、  第三節(jié) 軟件設(shè)計(jì)介紹</p><p>  3.1 程序流程圖和實(shí)物圖</p><p>  系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命了子程序,計(jì)算溫度子程序,顯示刷新溫度子程序等。</p><p><b>  3.1.1 主程序</b></p><p>  主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理D

41、S18B20的測(cè)量的當(dāng)前溫度值。溫度測(cè)量每1S進(jìn)行一次,這樣可以在1S 之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見圖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所示。&l

42、t;/p><p>  圖3.2 顯示電路框圖</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)換流程圖<

43、/p><p>  3.1.4 計(jì)算溫度子程序</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

44、硬件調(diào)試</p><p>  硬件調(diào)試是利用開發(fā)系統(tǒng)、基本測(cè)試儀器(萬用表、顯示器)等,檢查系統(tǒng)硬件中存在的故障。</p><p>  靜態(tài)調(diào)試 靜態(tài)調(diào)試是在系統(tǒng)未工作時(shí)的一種調(diào)試。步驟如下:</p><p>  第一步:目測(cè)。檢查外部的各種原器件或者是電路是否有斷點(diǎn)。</p><p>  第二步:用萬用表檢測(cè)。先用萬用表復(fù)核目測(cè)中有疑問的連

45、接點(diǎn),在檢測(cè)各種電源線與接地線之間是否有短路現(xiàn)象。</p><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ò)誤等的一

46、種硬件檢查,動(dòng)態(tài)調(diào)試的一般方法是由近及遠(yuǎn)、由分到合。</p><p>  由近及遠(yuǎn) 是將信號(hào)流經(jīng)的各器件按照距離單片機(jī)的邏輯距離進(jìn)行由近及遠(yuǎn)的分層,然后分層調(diào)試。調(diào)試時(shí),仞采用去掉無關(guān)元件的方法,逐層調(diào)試下去,就會(huì)定位故障元件了。</p><p>  由分到合 是指首先按照邏輯功能將系統(tǒng)硬件電路分為若干塊,當(dāng)調(diào)試電路時(shí),與該元件無關(guān)的器件全部從系統(tǒng)中去掉,這樣可以將故障范圍限定在某個(gè)局部的

47、電路上。當(dāng)各塊電路無故障后,將各電路逐塊加入系統(tǒng)中,再對(duì)各塊電路功能及各電路之間可能存在的相互聯(lián)系進(jìn)行調(diào)試,</p><p>  3.2.2 軟件調(diào)試</p><p>  軟件調(diào)試是通過對(duì)程序的匯編(或者C語言)、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正的過程,查看程序是否有邏輯的錯(cuò)誤。</p><p>  在對(duì)硬件調(diào)試后再對(duì)軟件進(jìn)行,因?yàn)橄葘?duì)硬

48、件檢查沒問題的情況下再對(duì)軟件進(jìn)行調(diào)試,編譯軟件可以通過編譯去檢查程序上的語法錯(cuò)誤,然后可以在它的基礎(chǔ)上在對(duì)它進(jìn)行一些修改達(dá)到?jīng)]有錯(cuò)誤為止,然后將軟件拿到硬件上去運(yùn)行。</p><p>  通過仿真后,如無誤,方可將程序灌輸如單片機(jī)中。</p><p><b>  3.2.3 實(shí)物</b></p><p>  圖3.5 調(diào)試前電路板</p&

49、gt;<p>  圖3.6 調(diào)試時(shí)電路板</p><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ì)課題

50、的任務(wù),要求和條件進(jìn)行仔細(xì)的分析和研究,找出關(guān)鍵問題,根據(jù)關(guān)鍵問題提出實(shí)現(xiàn)的原理和方法,并畫出原理框圖。</p><p>  提出原理方案是一個(gè)關(guān)系到設(shè)計(jì)全局的問題,應(yīng)廣泛收集與查閱有關(guān)資料,廣開思路,利用已有的各種理論知識(shí),提出盡可能多的方案,以便作出更合理的選擇。所提出的方案中,對(duì)關(guān)鍵部分的可行性,一般應(yīng)通過試驗(yàn)加以確認(rèn)。根據(jù)整個(gè)課題的技術(shù)要求,明確該功能框?qū)卧娐返募夹g(shù)要求,必要時(shí)應(yīng)詳細(xì)擬定單元電路的性能

51、指標(biāo),然后進(jìn)行單元電路結(jié)構(gòu)形式的選擇或設(shè)計(jì),但滿足功能框圖要求的單元電路可能不止一個(gè),因此必須進(jìn)行分析比較,擇優(yōu)選擇。就如我們這個(gè)課題當(dāng)初我就提出了三種方案,最后基于簡(jiǎn)單,可實(shí)行選擇了如今這種方案。</p><p>  然后是元器件的選擇,元器件的品種規(guī)格繁多,性能、價(jià)格和體積各異,選擇器件需進(jìn)行分析比較。首先考慮滿足單元電路對(duì)元器件性能指標(biāo)的要求,其次考慮價(jià)格、貨源和元器件體積等,最好是使用實(shí)驗(yàn)室已有的元器件。

52、</p><p>  元器件選好了就是參數(shù)的計(jì)算了,值得指出的是,滿足性能指標(biāo)要求的參數(shù)值通常不是唯一的,這就要求對(duì)各組參數(shù)進(jìn)行綜合性的分析,仔細(xì)考慮元器件之間的參數(shù)配合、元器件價(jià)格、體積和貨源等因素,恰當(dāng)?shù)剡x取一組適合的參數(shù)。</p><p>  在各單元電路確定后,還要認(rèn)真考慮它們之間的級(jí)聯(lián)問題,如:電氣特性的相互匹配、信號(hào)耦合方式、時(shí)序配合,以及相互干擾等問題,保證整個(gè)電路能正常工作

53、。</p><p>  這些都做好后,總體實(shí)驗(yàn)電路就出來了,接下來的事情就是焊接工作,實(shí)施焊接的主要工具是電烙鐵,其次還有松香、焊錫、吸水棉、連接線等,焊接的主要步驟為準(zhǔn)備施焊——加熱被焊件——加焊錫絲——移開焊錫絲——移開電烙鐵。在焊接電路時(shí)一定做到認(rèn)真仔細(xì)、一絲不茍。注意連線正確,焊接規(guī)范,盡量做到整齊美觀并保證接觸良好;集成塊插牢并注意方向;電源和地線不要短路,以避免人為故障。</p><

54、;p>  最后就是對(duì)電路進(jìn)行調(diào)試。一個(gè)組裝好的電子電路不可能不經(jīng)調(diào)試即可滿足設(shè)計(jì)要求。調(diào)試中出現(xiàn)的各種現(xiàn)象和問題,需要我們提出解決的辦法。只有這樣,才能順利做好調(diào)試工作,才能通過此次設(shè)計(jì)得到實(shí)際訓(xùn)練。在調(diào)試當(dāng)中一般常見故障源為:接觸不良(特別是當(dāng)電源線接觸不良時(shí)可能工作不穩(wěn)定)、焊接錯(cuò)誤(錯(cuò)焊、漏焊或虛焊)、接線錯(cuò)誤(錯(cuò)接、漏接或短路)、器件本身損壞(需單獨(dú)測(cè)試其功能方能確定確實(shí)損壞)、集成塊插錯(cuò)位置或方向插反、多余控制輸入端未正

55、確處理(一般若懸空會(huì)有較大干擾,應(yīng)接固定電平)、設(shè)計(jì)上有缺陷(出現(xiàn)預(yù)先估計(jì)不到的現(xiàn)象,這就需要改變某些元件的參數(shù)或更換元器件,甚至需要修改方案)。在此次設(shè)計(jì)當(dāng)中,由于電路設(shè)計(jì)和焊接工作都非常仔細(xì)認(rèn)真的完成,所以在調(diào)試當(dāng)中幾乎很少出現(xiàn)電路的問題,因此本設(shè)計(jì)才順利的完成了。</p><p>  我通過實(shí)踐課的綜合練習(xí),課程設(shè)計(jì)的實(shí)際操作,將課堂理論學(xué)習(xí)貫穿其中,全面系統(tǒng)的把單片機(jī)課程的知識(shí)聯(lián)系在一起,做到融會(huì)貫通,使

56、我真正感受到理論應(yīng)用于實(shí)踐的樂趣。這次設(shè)計(jì)是一次鍛煉的好機(jī)會(huì),使我在學(xué)習(xí)和鞏固新、老知識(shí)的同時(shí),訓(xùn)練了自己綜合運(yùn)用知識(shí)的能力、分析解決新問題的能力,同時(shí)也提高了自己工程實(shí)踐能力;在設(shè)計(jì)的過程中,我與同學(xué)一同學(xué)習(xí)、一同討論,大家集思廣益,發(fā)揚(yáng)了團(tuán)隊(duì)協(xié)作精神。在課程設(shè)計(jì)過程中,我發(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)&

57、lt;/b></p><p>  [1] 李朝青.《單片機(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><

58、;p>  [4] 張偉等.《Protel 99SE實(shí)用教程 》[M].北京:人民電郵出版社,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>

59、<p><b>  附錄</b></p><p><b>  附1</b></p><p><b>  表1 元件清單</b></p><p>  注:封裝都為標(biāo)準(zhǔn)封裝</p><p><b>  附2</b></p><

60、p>  圖1 一路傳輸溫度測(cè)量系統(tǒng)完整電路圖</p><p><b>  附3</b></p><p><b>  源程序</b></p><p>  #include "reg52.h"</p><p>  #include "intrins.h"

61、 //_nop_();延時(shí)函數(shù)用</p><p>  #define Disdata P0 //段碼輸出口</p><p>  #define discan P2 //掃描口</p><p>  #d

62、efine uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit DQ=P1^0; //溫度輸入口</p><p>  sbit DIN=P0^7;

63、 //LED小數(shù)點(diǎn)控制</p><p>  uint h; </p><p>  uint temp;</p><p>  //**************溫度小數(shù)部分用查表法***********//</p><p>  uchar code ditab[16]=</p><p>  {0x0

64、0,0x01,0x01,0x02,0x03,0x03,0x04,0x04,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,0xf

65、f,0xbf};</p><p>  uchar code scan_con[4]={0xFE,0xFD,0xFB,0xF7}; //列掃描控制字</p><p>  uchar data temp_data[2]={0x00,0x00}; //讀出溫度暫放</p><p>  uchar data display[5]={0x00,0

66、x00,0x00,0x00,0x00}; //顯示單元數(shù)據(jù),共4個(gè)數(shù)據(jù)和一個(gè)運(yùn)算暫用</p><p>  /*****************11us延時(shí)函數(shù)*************************/</p><p>  void delay(uint t)</p><p><b>  {</b></p><

67、;p>  for (;t>0;t--);</p><p><b>  }</b></p><p>  /****************顯示掃描函數(shù)***************************/</p><p><b>  scan()</b></p><p><b>

68、;  {</b></p><p><b>  char k;</b></p><p>  for(k=0;k<4;k++) //4位LED掃描控制</p><p><b>  {</b></p><p>  Disdata=0XFF-dis_

69、7[display[k]]; //數(shù)據(jù)顯示</p><p>  if (k==1){DIN=1;} //小數(shù)點(diǎn)顯示</p><p>  discan=scan_con[k]; //位選</p><p>  delay(300);</p><p><b&

70、gt;  }</b></p><p><b>  }</b></p><p>  /****************DS18B20復(fù)位函數(shù)************************/</p><p>  ow_reset(void)</p><p><b>  {</b></

71、p><p>  char presence=1;</p><p>  while(presence)</p><p><b>  {</b></p><p>  while(presence)</p><p><b>  {</b></p><p>  D

72、Q=1;_nop_();_nop_();//從高拉倒低</p><p>  DQ=0; </p><p>  delay(50); //550 us</p><p>  DQ=1; </p

73、><p>  delay(6); //66 us</p><p>  presence=DQ; //presence=0 復(fù)位成功,繼續(xù)下一步</p><p><b>  } </b></p><p>  delay(45); //延時(shí)500 us</p>

74、;<p>  presence=~DQ; </p><p><b>  }</b></p><p>  DQ=1; //拉高電平</p><p><b>  }</b></p><p>  /****************DS18B

75、20寫命令函數(shù)************************/</p><p>  //向1-WIRE 總線上寫1個(gè)字節(jié)</p><p>  void write_byte(uchar val)</p><p><b>  { </b></p><p><b>  uchar i;</b><

76、/p><p>  for(i=8;i>0;i--)</p><p><b>  {</b></p><p>  DQ=1;_nop_();_nop_(); //從高拉倒低</p><p>  DQ=0;_nop_();_nop_();_nop_();_nop_(); //5 us&l

77、t;/p><p>  DQ=val&0x01; //最低位移出</p><p>  delay(6); //66 us</p><p>  val=val/2; //右移1位</p>

78、<p><b>  }</b></p><p><b>  DQ=1;</b></p><p><b>  delay(1);</b></p><p><b>  }</b></p><p>  /****************DS18B20讀

79、1字節(jié)函數(shù)************************/</p><p>  //從總線上取1個(gè)字節(jié)</p><p>  uchar read_byte(void)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p&g

80、t;  uchar value=0;</p><p>  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_(

81、);_nop_();_nop_();_nop_(); //4 us</p><p>  DQ=1;_nop_();_nop_();_nop_();_nop_(); //4 us</p><p>  if(DQ)value|=0x80;</p><p>  delay(6);

82、 //66 us</p><p><b>  }</b></p><p><b>  DQ=1;</b></p><p>  return(value);</p><p><b>  }</b></p><p><b>  //<

83、;/b></p><p>  /****************讀出溫度函數(shù)************************/</p><p><b>  //</b></p><p>  read_temp()</p><p><b>  {</b></p><p>

84、  ow_reset(); //總線復(fù)位</p><p>  delay(200);</p><p>  write_byte(0xcc); //發(fā)命令</p><p>  write_byte(0x44); //發(fā)轉(zhuǎn)換命令</p><p>  ow_reset()

85、; </p><p><b>  delay(1);</b></p><p>  write_byte(0xcc); //發(fā)命令</p><p>  write_byte(0xbe);</p><p>  temp_data[0]=read_byte(); //讀溫度值的低字節(jié)</p&g

86、t;<p>  temp_data[1]=read_byte(); //讀溫度值的高字節(jié)</p><p>  temp=temp_data[1];</p><p>  temp<<=8; </p><p>  temp=temp|temp_da

87、ta[0]; // 兩字節(jié)合成一個(gè)整型變量。</p><p>  return temp; //返回溫度值</p><p><b>  }</b></p><p><b>  //</b></p><p>  /****************溫度數(shù)據(jù)處理函

88、數(shù)************************/</p><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)

90、 // 溫度值正負(fù)判斷</p><p>  {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ù)部分顯

91、示值</p><p>  display[4]=tem>>4; // 取中間八位,即整數(shù)部分的值</p><p>  display[3]=display[4]/100; // 取百位數(shù)據(jù)暫存</p><p>  display[1]=display[4]%100; // 取后兩位數(shù)據(jù)暫存</p>&

92、lt;p>  display[2]=display[1]/10; // 取十位數(shù)據(jù)暫存</p><p>  display[1]=display[1]%10; </p><p>  /******************符號(hào)位顯示判斷**************************/</p><p>  if(!display[3]) <

93、/p><p><b>  {</b></p><p>  display[3]=0x0a; //最高位為0時(shí)不顯示</p><p>  if(!display[2])</p><p><b>  {</b></p><p>  display[2]=0x0a;

94、 //次高位為0時(shí)不顯示</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(n){display[3]=0x0b;} //負(fù)溫度時(shí)最高位顯示"-"</p><p><b>  }</b

95、></p><p>  /****************主函數(shù)************************/</p><p><b>  main()</b></p><p><b>  {</b></p><p>  Disdata=0xff; //初始

96、化端口</p><p>  discan=0xff;</p><p>  for(h=0;h<4;h++) //開機(jī)顯示"0000"</p><p>  {display[h]=0;} </p><p>  ow_reset(); //開機(jī)先轉(zhuǎn)換一次<

97、;/p><p>  write_byte(0xcc); //Skip ROM</p><p>  write_byte(0x44); //發(fā)轉(zhuǎn)換命令</p><p>  for(h=0;h<100;h++) //開機(jī)顯示"0000"</p><p>&

98、lt;b>  {scan();}</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  work_temp(read_temp()); //處理溫度數(shù)據(jù)</p><p>  scan();

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論