單片機(jī)課程設(shè)計(jì)—數(shù)字溫度計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  第1章 概述</b></p><p>  1.1 數(shù)字溫度計(jì)簡(jiǎn)介</p><p>  隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它所給人帶來(lái)的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機(jī)技術(shù)入手,一切向著數(shù)字化控制

2、,智能化控制方向發(fā)展。</p><p>  此次課程設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)控制器使用單片機(jī)AT89S51,測(cè)溫傳感器使用DS18B20,用3位共陽(yáng)極LED數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。</p><p>  1.2 設(shè)計(jì)內(nèi)容及要求

3、</p><p>  本次單片機(jī)課程設(shè)計(jì)將以51系列單片機(jī)為核心,以開(kāi)發(fā)板為平臺(tái);設(shè)計(jì)一個(gè)數(shù)字式溫度計(jì),要求使用溫度傳感器(可以采用DS18B20或采用AD590)測(cè)量溫度,再經(jīng)單片機(jī)處理后,由LED數(shù)碼管顯示測(cè)量的溫度值。測(cè)溫范圍為0~100℃,精度誤差在0.5℃以?xún)?nèi)。</p><p>  第2章 系統(tǒng)總體方案設(shè)計(jì)</p><p>  2.1數(shù)字溫度計(jì)設(shè)計(jì)的方案&

4、lt;/p><p>  在做數(shù)字溫度計(jì)的單片機(jī)電路中,對(duì)信號(hào)的采集電路大多都是使用傳感器,這是非常容易實(shí)現(xiàn)的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換,就可以滿(mǎn)足設(shè)計(jì)要求。采集之后,通過(guò)使用51系列的單片機(jī),可以對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理,再由LED顯示電路對(duì)其數(shù)據(jù)進(jìn)行顯示。</p><p><b>  2.2系統(tǒng)設(shè)計(jì)框圖</b>

5、;</p><p>  溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖2.1所示,控制器采用單片機(jī)AT89S51,溫度傳感器采用DS18B20,用6位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。此外,還添加了報(bào)警系統(tǒng),對(duì)溫度實(shí)施監(jiān)控。</p><p>  圖2.1 數(shù)字溫度計(jì)框圖</p><p>  第3章 硬件設(shè)計(jì)</p><p>  3.1主控器8

6、051 芯片 </p><p>  對(duì)于單片機(jī)的選擇,可以考慮使用8031與8051系列,由于8031沒(méi)有內(nèi)部RAM,系統(tǒng)又需要大量?jī)?nèi)存存儲(chǔ)數(shù)據(jù),因而不適用。AT89C51 以低價(jià)位單片機(jī)可為提供許多高性?xún)r(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域,對(duì)于簡(jiǎn)單的測(cè)溫系統(tǒng)已經(jīng)足夠。單片機(jī)AT89C51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿(mǎn)足電路系統(tǒng)的設(shè)計(jì)需要該器件是INT

7、EL公司生產(chǎn)的MCS一5l系列單片機(jī)中的基礎(chǔ)產(chǎn)品,采用了可靠的CMOS工藝制造技術(shù),具有高性能的8位單片機(jī),屬于標(biāo)準(zhǔn)的MCS—51的CMOS產(chǎn)品。其主要特征有如下幾個(gè):</p><p>  ● 與MCS-51 兼容   </p><p>  ● 4K字節(jié)可編程FLASH存儲(chǔ)器   </p><p>  ● 壽命:1000寫(xiě)/擦循環(huán)   </p><

8、;p>  ● 數(shù)據(jù)保留時(shí)間:10年   </p><p>  ● 全靜態(tài)工作:0Hz-24MHz   </p><p>  ● 三級(jí)程序存儲(chǔ)器鎖定   </p><p>  ● 128×8位內(nèi)部RAM   </p><p>  ● 32可編程I/O線   </p><p>  ● 兩個(gè)16位定時(shí)器/計(jì)數(shù)

9、器   </p><p>  ● 5個(gè)中斷源   </p><p>  ● 可編程串行通道   ·</p><p>  ● 低功耗的閑置和掉電模式   </p><p>  ● 片內(nèi)振蕩器和時(shí)鐘電路</p><p>  AT8951的管腳如下圖所示:</p><p>  圖3.1

10、 AT89C51芯片管腳圖</p><p>  各管腳功能:VCC:供電電壓。   GND:接地。  P0~P3:為輸入/輸出口線,其各有的功能,而P3口每一位還有特殊功能。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。  /PSEN:外部程序

11、存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。   /EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。    XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。    XTAL2:來(lái)自反向振蕩器的輸出。</p><p>  3.1.1 時(shí)鐘電

12、路80C51時(shí)鐘有兩種方式產(chǎn)生,即內(nèi)部方式和外部方式。80C51中有一個(gè)構(gòu)成內(nèi)部震蕩器的高增益反向放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。本次采用內(nèi)部震蕩電路,瓷片電容采用22PF,晶振為12MHZ。</p><p>  圖3.1.1 震蕩電路圖</p><p>  3.1.2 復(fù)位電路單片機(jī)系統(tǒng)的

13、復(fù)位電路在這里采用的是上電+按鈕復(fù)位電路形式,其中電阻R采用10KΩ的阻值 ,電容采用10μF的電容值。</p><p>  圖3.1.2 復(fù)位電路</p><p><b>  3.2 溫度傳感器</b></p><p>  DALLAS 最新單線數(shù)字溫度傳感器DS18B20是一種新型的“一線器件”,其體積更小、更適用于多種場(chǎng)合、且適用電

14、壓更寬、更經(jīng)濟(jì)。DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測(cè)量范圍為-55~+125 攝氏度,可編程為9位~12 位轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶(hù)設(shè)定的報(bào)警溫度存儲(chǔ)在EEPROM 中,掉電后依然保存。被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;多個(gè)DS18B20可以并聯(lián)到3 根或2 根線上,CPU只需一根端口線就能與諸多DS18B20

15、 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。 </p><p>  表3.1 DS18B20分辯率的定義規(guī)定</p><p>  由表3.1可見(jiàn),DS18B20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且設(shè)定的分辯率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換

16、時(shí)間就越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辯率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。</p><p>  DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列、各種封裝形式,DQ 為數(shù)據(jù)輸入/輸出引腳。開(kāi)漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源;GND為地信號(hào);VDD為可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地,如下圖

17、所示。 </p><p>  圖3.2 DS18B20管腳圖</p><p>  DS18B20的初始化:  </p><p> ?。?) 先將數(shù)據(jù)線置高電平“1”。   </p><p>  (2) 延時(shí)(該時(shí)間要求的不是很?chē)?yán)格,但是盡可能的短一點(diǎn))   </p><p>  (3) 數(shù)據(jù)線拉到低電平“0”。

18、  </p><p> ?。?) 延時(shí)750微秒(該時(shí)間的時(shí)間范圍可以從480到960微秒)。   </p><p>  (5) 數(shù)據(jù)線拉到高電平“1”。   </p><p> ?。?) 延時(shí)等待(如果初始化成功則在15到60毫秒時(shí)間之內(nèi)產(chǎn)生一個(gè)DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來(lái)確定它的存在,但是應(yīng)注意不能無(wú)限的進(jìn)行等待,不然會(huì)使程序進(jìn)入死循環(huán),所

19、以要進(jìn)行超時(shí)控制)。   </p><p>  (7) 若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高電平算起(第(5)步的時(shí)間算起)最少要480微秒。   </p><p> ?。?) 將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。 </p><p>  DS18B20的寫(xiě)操作:   </p><p> ?。?) 數(shù)據(jù)線

20、先置低電平“0”。   </p><p> ?。?) 延時(shí)確定的時(shí)間為15微秒。   </p><p> ?。?) 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。   </p><p> ?。?) 延時(shí)時(shí)間為45微秒。   </p><p>  (5) 將數(shù)據(jù)線拉到高電平。   </p><p> ?。?) 重復(fù)上(

21、1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。   </p><p>  (7) 最后將數(shù)據(jù)線拉高。 </p><p>  3.3 顯示電路</p><p>  對(duì)于數(shù)字溫度的顯示,我們采用6位LED數(shù)碼管。足夠顯示0~100中各位數(shù),并且還能顯示一位小數(shù)部分。</p><p>  圖3.3 6位LED數(shù)碼顯示管</p>

22、<p>  3.4 溫度報(bào)警電路</p><p>  對(duì)于數(shù)字溫度計(jì)的設(shè)計(jì),除了溫度的數(shù)字顯示功能外還加入了報(bào)警系統(tǒng),如果我們所設(shè)計(jì)的系統(tǒng)用來(lái)監(jiān)控某一設(shè)備,當(dāng)設(shè)備的溫度超過(guò)我們所設(shè)定的溫度值時(shí),系統(tǒng)會(huì)產(chǎn)生報(bào)警。我們便能很好的對(duì)設(shè)備進(jìn)行處理,就不會(huì)應(yīng)溫度的變化而造成不必要的損失。</p><p>  當(dāng)溫度高于100度時(shí),報(bào)警時(shí)由單片機(jī)產(chǎn)生一定頻率的脈沖,由P3.7引腳輸出,

23、P3.7外接一只NPN的三極管來(lái)驅(qū)動(dòng)楊聲器發(fā)出聲音,以便操作員來(lái)維護(hù),從而達(dá)到報(bào)警的目的。其電路圖如下所示。</p><p>  圖3.4(a) 揚(yáng)聲器報(bào)警系統(tǒng)電路圖</p><p>  當(dāng)溫度低于0度時(shí),亮紅燈報(bào)警,以便操作員來(lái)維護(hù),從而達(dá)到報(bào)警的目的。其電路圖如下所示。</p><p>  圖3.4(b) 紅燈報(bào)警系統(tǒng)電路圖</p>

24、<p>  第4章 軟件設(shè)計(jì)及調(diào)試</p><p><b>  4.1 概述</b></p><p>  本次課程設(shè)計(jì)采用的是proteus軟件仿真,用Keil軟件進(jìn)行編譯。Protues軟件是英國(guó)Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及

25、外圍器件的工具,也是世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái)。</p><p>  由單片機(jī)AT89C51為核心而設(shè)計(jì)的數(shù)字溫度計(jì),對(duì)其進(jìn)行軟件程序的仿真時(shí),我們采用單片機(jī)匯編語(yǔ)言來(lái)編寫(xiě)。系統(tǒng)程序主要包括主程序、讀出溫度子程序、顯示數(shù)據(jù)子程序、報(bào)警子程序等等。</p><p>  然而整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來(lái)實(shí)現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能

26、也就基本定下來(lái)了。</p><p>  從軟件的功能不同可分為兩大類(lèi):一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專(zhuān)門(mén)用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來(lái)完成各種實(shí)質(zhì)性的功能如測(cè)量、計(jì)算、顯示、通訊等。每一個(gè)執(zhí)行軟件是一個(gè)小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能選擇一種

27、最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實(shí)時(shí)性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。</p><p><b>  4.2 主程序</b></p><p>  主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度。</p><p>  圖4.1 主

28、程序流程</p><p>  4.3讀出溫度子程序</p><p>  讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需進(jìn)行CRC校驗(yàn),檢驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。其程序流程圖如圖4.2所示。</p><p>  圖4.2 讀出溫度子程序流程圖</p><p>  4.4 溫度轉(zhuǎn)換命令子程序</p><p

29、>  溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。</p><p>  4.5計(jì)算溫度子程序</p><p>  計(jì)算溫度子程序?qū)AM值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖4.3所示。</p><p><b>  N</

30、b></p><p><b>  Y</b></p><p>  圖4.3 計(jì)算溫度子程序流程圖</p><p>  第5章 系統(tǒng)聯(lián)調(diào)及操作說(shuō)明</p><p>  對(duì)于此次的數(shù)字溫度計(jì)設(shè)計(jì),我們采用匯編語(yǔ)言來(lái)實(shí)現(xiàn)51單片機(jī)的運(yùn)行,首先,根據(jù)設(shè)計(jì)所需,可以用偉福軟件來(lái)編寫(xiě)匯編程序。編寫(xiě)完畢檢查無(wú)誤后,接下來(lái)便是原

31、理圖的繪制。首先運(yùn)行Proteus ISIS軟件,新建一個(gè)模板后,就可以開(kāi)始繪制原理圖工作。原理圖的繪制過(guò)程如下:</p><p>  1.將所需元器件加入到對(duì)象選擇器窗口。</p><p>  單擊選擇菜單欄“庫(kù)”選項(xiàng)下的“拾取元件/符號(hào)選項(xiàng)”,然后在彈出的“Pick device”對(duì)話框的“關(guān)鍵字”欄輸入要找的器件英文名稱(chēng),如“AT89C51”,系統(tǒng)就會(huì)自動(dòng)將搜索結(jié)果顯示在“結(jié)果”欄中

32、,如圖1所示,單擊選擇“AT89C51”,再點(diǎn)“確定”即可。</p><p>  用類(lèi)似的方法可將將電阻“RES” 、電容“CAP”、發(fā)光二極管“LED”、溫度傳感器“DS18B20”、晶振“CRYSTAL”和數(shù)碼管組“7SEG-MPX4-CC”( 因?yàn)槿蝿?wù)中要求顯示兩位溫度值,故選用四個(gè)數(shù)碼管的數(shù)碼管組,其中兩個(gè)用來(lái)顯示攝氏度符號(hào)“℃”)添加到對(duì)象選擇器窗口中。</p><p>  2.

33、放置元器件至圖形編輯窗口。</p><p>  在對(duì)象選擇器窗口中,選中AT89C51,在圖形編輯窗口合適位置處點(diǎn)擊鼠標(biāo)左鍵,該對(duì)象被完成放置。用類(lèi)似的方法可將將電阻RES 、排阻RESPACK-8、電容CAP、發(fā)光二極管LED、溫度傳感器DS18B20、晶振CRYSTAL和數(shù)碼管組7SEG-MPX4-CC。 電源和地可以在工作界面點(diǎn)擊鼠標(biāo)右鍵,選擇“放置”選項(xiàng)下的“POWER”和“GROUND”。</p&

34、gt;<p>  3.元器件之間的連線</p><p>  Proteus具有線路自動(dòng)路徑功能(簡(jiǎn)稱(chēng)WAR),當(dāng)選中兩個(gè)連接點(diǎn)后,WAR將選擇一個(gè)合適的路徑連線。WAR可通過(guò)使用標(biāo)準(zhǔn)工具欄里的“WAR”命令按鈕來(lái)關(guān)閉或打開(kāi),也可以在菜單欄的“Tools”下到這個(gè)圖標(biāo)。由于本次設(shè)計(jì)所用到的器件較少,所有連線均采用手工連線方法。</p><p><b>  4.導(dǎo)線標(biāo)簽

35、的使用</b></p><p>  單擊繪圖工具欄中的導(dǎo)線標(biāo)簽“LBL”按鈕,將鼠標(biāo)置于圖形編輯窗口的欲標(biāo)標(biāo)簽的導(dǎo)線上,跟著鼠標(biāo)的指針就會(huì)出現(xiàn)一個(gè)“×”號(hào),表明找到了可以標(biāo)注的導(dǎo)線,單擊鼠標(biāo)左鍵,彈出編輯導(dǎo)線標(biāo)簽窗口,在“標(biāo)號(hào)”欄中,輸入標(biāo)簽名稱(chēng)(如ds1),單擊“確定”按鈕,結(jié)束對(duì)該導(dǎo)線的標(biāo)簽標(biāo)定。同理,可以標(biāo)注其他導(dǎo)線的標(biāo)簽。由于本次設(shè)計(jì)所用到的器件和所需連線較少,因此未采用標(biāo)簽標(biāo)注的方

36、法。</p><p>  電路的核心是單片機(jī)AT89C51,單片機(jī)的P1口八個(gè)引腳分別對(duì)應(yīng)接七段數(shù)碼組的八個(gè)引腳,排阻RESPACK-8和電源完成P1口輸出的上拉作用,P3口的P3.0~P3.3分別控制對(duì)應(yīng)的數(shù)碼管,P3.4用來(lái)輸入溫度傳感器DS18DS20的轉(zhuǎn)化數(shù)據(jù),P3.5口用來(lái)控制溫度報(bào)警指示燈D1。</p><p>  該單片機(jī)系統(tǒng)采用12MHZ石英晶振和30pF的微調(diào)電容構(gòu)成的自

37、激振蕩器作為時(shí)鐘電路,并采用簡(jiǎn)單的上電復(fù)位電路。 最后便可以實(shí)現(xiàn)聯(lián)調(diào),在protues軟件里的源代碼選項(xiàng)中點(diǎn)擊添加源文件,把已編好的匯編語(yǔ)言添加進(jìn)去。確定后就可以執(zhí)行模擬的軟硬件仿真。若仿真結(jié)果符合所需要求,那么就可以根據(jù)此原理圖以及結(jié)合實(shí)際所需來(lái)制作數(shù)字溫度計(jì)實(shí)物。</p><p><b>  第6章 總結(jié)</b></p><p>  本次課

38、程設(shè)計(jì)我們進(jìn)行了兩個(gè)課程設(shè)計(jì):一是單片機(jī)的學(xué)習(xí)與應(yīng)用;二是新器件的學(xué)習(xí)。這里主要敘述和第一個(gè)課設(shè)題目——單片機(jī)的學(xué)習(xí)與應(yīng)用相關(guān)的總結(jié)與體會(huì)。在課設(shè)過(guò)程中,我們不僅鞏固了平時(shí)所學(xué)習(xí)的單片機(jī)知識(shí),而且通過(guò)不斷查閱相關(guān)資料,學(xué)習(xí)新的知識(shí),可以說(shuō),通過(guò)這次單片機(jī)的實(shí)踐學(xué)習(xí),我們學(xué)到了很多,而且對(duì)單片機(jī)的有關(guān)知識(shí)以及其在現(xiàn)實(shí)生活中的多方面應(yīng)用有了更深層次的認(rèn)識(shí),這對(duì)于我們以后的學(xué)習(xí)和步入社會(huì)后參加工作都有很大的幫助。</p><

39、;p>  在此次課程設(shè)計(jì)的進(jìn)程中,我們遇到了很多問(wèn)題,例如,一開(kāi)始我們?cè)诖_定課設(shè)題目后,在編寫(xiě)程序時(shí),由于思路不太清晰,而且設(shè)計(jì)要求中需要使用新器件DS18B20智能測(cè)溫,而其相關(guān)知識(shí)我們很模糊甚至可以說(shuō)一無(wú)所知,不過(guò)后來(lái),我們通過(guò)查找一些相關(guān)的資料書(shū)以及尋求輔導(dǎo)老師的幫助,又經(jīng)過(guò)我們的主動(dòng)思考,理清思路,終于將程序修改正確。在仿真時(shí),由于我們有了之前的數(shù)模電課設(shè)仿真經(jīng)驗(yàn),所以此時(shí)我們課設(shè)進(jìn)行的很順利,并沒(méi)有受到什么大的阻礙。&l

40、t;/p><p>  通過(guò)此次單片機(jī)課程設(shè)計(jì),我們明白了很多,理論指導(dǎo)實(shí)踐,但是理論也需要實(shí)踐給予證明,不能盲目的相信書(shū)本,凡事都要通過(guò)自己的思考推敲,否則自己不會(huì)取的大的進(jìn)步。而且在平時(shí)的學(xué)習(xí)生活中應(yīng)該多和周?chē)耐瑢W(xué)相互學(xué)習(xí),交流經(jīng)驗(yàn),遇到不會(huì)的東西時(shí),切忌焦躁,首先要經(jīng)過(guò)自己的獨(dú)立思考,有了一定想法后,可以去查找相關(guān)的資料書(shū)刊或者找同學(xué)討論,如果實(shí)在解釋不了,再去找輔導(dǎo)老師,在這個(gè)遇到問(wèn)題解決問(wèn)題的過(guò)程中,不斷加

41、強(qiáng)自我的動(dòng)腦能力,進(jìn)而去指導(dǎo)動(dòng)手能力,也只有這樣,在思路清晰,條理順暢的時(shí)候,再去進(jìn)行軟件編寫(xiě)和硬件操作工作,才有可能起到事半功倍的效果。</p><p><b>  參考文獻(xiàn)</b></p><p>  1、王迎旭編.《單片機(jī)原理與應(yīng)用》[M].機(jī)械工業(yè)出版社.2004.</p><p>  2、樓然苗編.《51系列單片機(jī)設(shè)計(jì)實(shí)例》[M].北

42、京航空航天大學(xué)出版社.</p><p>  3、黃勤編.《計(jì)算機(jī)硬件技術(shù)基礎(chǔ)實(shí)驗(yàn)教程》[M].重慶大學(xué)出版社.</p><p>  4、劉樂(lè)善編.《微型計(jì)算機(jī)接口技術(shù)及應(yīng)用》[M].華中科技大學(xué)出版社.</p><p>  5、陳光東編.《單片微型計(jì)算機(jī)原理及接口技術(shù)》[M].華中科技大學(xué)出版社.</p><p>  附錄A 系統(tǒng)硬件原理圖&

43、lt;/p><p><b>  附錄B 程序清單</b></p><p>  DQ BITP3.0 ;從DS18B20向8051傳送的數(shù)據(jù)端口</p><p>  FLAG BIT00H</p><p>  FLAG_NEGBIT01H ;溫度正負(fù)值標(biāo)志位<

44、;/p><p>  TEMP_LEQU 30H ;所設(shè)報(bào)警最低值溫度值</p><p>  TEMP_HEQU31H ;所設(shè)報(bào)警最高值溫度值</p><p>  TEMP_INTEQU 32H</p><p>  TEMP_DPEQU 33H</p>

45、;<p>  TEMP_100EQU34H ;</p><p>  TEMP_10EQU35H</p><p>  TEMP_1EQU36H</p><p>  C0BIT P3.1 ;負(fù)溫度標(biāo)志位</p><p>  C1BIT P3.2 ;超過(guò)100

46、標(biāo)志位</p><p>  C2BIT P3.3 ;超過(guò)10 標(biāo)志位</p><p>  C3BIT P3.4 ;超過(guò)1 標(biāo)志位</p><p>  C4BIT P3.5 ;超過(guò)0 標(biāo)志位</p><p>  ;*******************************</p&g

47、t;<p>  ;************主函數(shù)*************</p><p><b>  ORG 0000H</b></p><p>  LJMP START</p><p><b>  ORG 1000H</b></p><p>  START:MOV SP,#60H

48、</p><p>  MAIN: LCALL READ_TEMP ;調(diào)用函數(shù)讀DS18B20所示溫度</p><p>  LCALL PROC_TEMP ;調(diào)用函數(shù)對(duì)溫度進(jìn)行處理</p><p><b>  LJMP MAIN</b></p><p>  ;*

49、********************************</p><p>  ;*********************************</p><p>  READ_TEMP:</p><p>  LCALL INI_DQ</p><p>  JB FLAG,RE_0</p><p><b&

50、gt;  RET</b></p><p>  RE_0:MOV A,#0CCH</p><p>  LCALL WRITE_DQ ;讀出傳感器所示溫度</p><p>  MOV A,#44H</p><p>  LCALL WRITE_DQ</p><p>  LCALL DISP_L

51、ED;調(diào)用LED顯示程序</p><p>  LCALL INI_DQ</p><p>  MOV A,#0CCH</p><p>  LCALL WRITE_DQ</p><p>  MOV A,#0BEH</p><p>  LCALL WRITE_DQ</p><p>  LCALL

52、READ_DQ</p><p><b>  RET</b></p><p>  ;************DS18B20初始化程序***************</p><p><b>  INI_DQ:</b></p><p><b>  SETBDQ</b></p&

53、gt;<p>  NOP ;</p><p>  NOP ;空操作 PC值加2</p><p><b>  CLRDQ</b></p><p>  MOV R1,#3</p><p>  INI_0: MOV

54、 R0,#80</p><p>  DJNZ R0,$</p><p>  DJNZ R1,INI_0</p><p><b>  SETB DQ</b></p><p>  NOP ;</p><p>  NOP

55、 ;</p><p>  NOP ;空操作 PC值加3</p><p>  MOVR7,#25</p><p>  INI_1: JNB DQ,INI_2 ;DQ為0則轉(zhuǎn)</p><p>  DJNZ R7,INI_1 ;延時(shí)</p>&l

56、t;p>  LJMP INI_3</p><p>  INI_2: SETB FLAG ;標(biāo)志位</p><p>  LJMP INI_4</p><p>  INI_3: CLR FLAG</p><p>  LJMP INI_5</p><p>  INI_4: MOV

57、R0,#80</p><p>  DJNZ R0,$ ;時(shí)序要求延時(shí)一段時(shí)間</p><p>  INI_5: SETB DQ</p><p><b>  RET</b></p><p>  ;**************DS18B20寫(xiě)命令******************</p><

58、;p><b>  WRITE_DQ:</b></p><p>  MOVR6,#8</p><p><b>  CLR C</b></p><p>  Tloop:CLRDQ</p><p><b>  MOV R2,#6</b></p><p

59、><b>  DJNZ R2,$</b></p><p>  RRCA;最低位移到C中</p><p><b>  MOV DQ,C</b></p><p>  MOV R2,#23</p><p><b>  DJNZ R2,$</b></p>&

60、lt;p><b>  SETB DQ</b></p><p><b>  NOP</b></p><p>  DJNZ R6,Tloop</p><p><b>  SETB DQ</b></p><p><b>  RET</b></p>

61、;<p>  ;**************讀DS18B20數(shù)據(jù)函數(shù)*************</p><p><b>  READ_DQ:</b></p><p>  MOV R5,#2</p><p>  MOV R0,#30H</p><p>  READ_0:MOV R6,#8</p

62、><p>  READ_1:CLRC</p><p><b>  SETB DQ</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  CLRDQ</b>&l

63、t;/p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  SETBDQ<

64、;/b></p><p>  MOV R2,#9</p><p>  DJNZ R2,$</p><p><b>  MOV C,DQ</b></p><p>  MOV R3,#23</p><p>  DJNZ R3,$</p><p><b>

65、;  RRCA</b></p><p>  DJNZR6,READ_1</p><p>  MOV @R0,A</p><p><b>  INC R0</b></p><p>  DJNZ R5,READ_0</p><p><b>  SETB DQ<

66、;/b></p><p><b>  RET</b></p><p>  ;***************溫度數(shù)據(jù)處理程序*****************</p><p>  PROC_TEMP:</p><p>  CLR FLAG_NEG</p><p>  MOV A,TEMP_L&

67、lt;/p><p>  SWAP A ; A中高低四位互換</p><p>  ORL A,#0F0H</p><p>  MOV TEMP_INT,A</p><p>  MOV A,TEMP_H</p><p><b>  SWAP A</b></p>

68、<p>  ORL A,#0FH</p><p>  ANL TEMP_INT,A</p><p>  MOV A,TEMP_H</p><p>  CLR P3.6</p><p>  CLR P3.7</p><p>  JB ACC.7,BAOJING1 ;低于零度亮紅燈報(bào)

69、警</p><p>  ;JBACC.7,NEGTIVE</p><p>  MOV A,TEMP_L</p><p>  ANL A,#0FH</p><p>  MOV DPTR,#TAB3</p><p>  MOVC A,@A+DPTR</p><p>  MOV TEMP_DP,A

70、</p><p>  LJMP PRO_0</p><p>  ;***********報(bào)警函數(shù)********************</p><p>  BAOJING1: SETB P3.6</p><p><b>  RET</b></p><p>  ;NEGTIVE:

71、 ;溫度值為負(fù)時(shí)處理程序,按實(shí)際情況,處理過(guò)程比較復(fù)雜</p><p>  ;SETB FLAG_NEG</p><p>  ;MOV A,TEMP_L</p><p><b>  ;CPL A</b></p><p>  ;ANL A,#0FH</p><p>  ;MOV R1,A

72、</p><p>  ;CJNE R1,#0FH,PRO_1</p><p>  ; ;低于0°則調(diào)用報(bào)警函數(shù)</p><p>  ;PUSH ACC</p><p>  ;MOV A,TEMP_INT</p><p>  ;SUBB A,#1</p><p>

73、  ;MOV TEMP_INT,A</p><p><b>  ;POP ACC</b></p><p>  ;MOV TEMP_DP,#00H</p><p>  ; LJMP PRO_2</p><p>  PRO_1: ADD A,#1</p><p>  MOV DPT

74、R,#TAB3</p><p>  MOVC A,@A+DPTR</p><p>  MOV TEMP_DP,A</p><p>  PRO_2:MOV A,TEMP_INT</p><p><b>  CPL A</b></p><p>  MOV TEMP_INT,A</p>

75、<p>  PRO_0:MOV A,TEMP_INT</p><p>  MOV B,#100</p><p><b>  DIV AB</b></p><p>  MOV TEMP_100,A</p><p><b>  MOV A,B</b></p><p>

76、<b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p>  MOV TEMP_10,A</p><p>  MOV TEMP_1,B</p><p><b>  RET</b></p><p>  ;**

77、************LED初始化********************</p><p><b>  CLR_LED:</b></p><p><b>  CLR C0</b></p><p><b>  CLR C1</b></p><p><b>  CLR

78、C2</b></p><p><b>  CLR C3</b></p><p><b>  CLR C4</b></p><p><b>  RET</b></p><p>  ;**************LED顯示***********************&

79、lt;/p><p><b>  DISP_LED:</b></p><p>  LCALL CLR_LED</p><p><b>  SETB C0</b></p><p>  JNB FLAG_NEG,DL_0</p><p>  MOV P1,#0BFH</p>

80、<p>  LCALL DELAY_10MS</p><p><b>  LJMP DL_1</b></p><p><b>  DL_0:</b></p><p>  MOV P1,#0FFH</p><p>  LCALL DELAY_10MS</p><p&g

81、t;  DL_1:LCALL CLR_LED</p><p>  SETB C1 ;顯示百位</p><p>  MOV A,TEMP_100</p><p>  MOV DPTR,#TAB4</p><p>  MOVC A,@A+DPTR</p><p><

82、;b>  MOV P1,A</b></p><p>  CJNE A,#0F9H,CESHI</p><p>  LCALL BAOJING2 ;超過(guò)一百啟動(dòng)揚(yáng)聲器報(bào)警</p><p>  CESHI:LCALL DELAY_10MS</p><p>  LCALL CLR_LED</p

83、><p>  SETB C2 ;顯示十位</p><p>  MOV A,TEMP_10</p><p>  MOV DPTR,#TAB4</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b><

84、/p><p>  LCALL DELAY_10MS</p><p>  LCALL CLR_LED</p><p><b>  SETB C3</b></p><p>  MOV A,TEMP_1 ;顯示 個(gè)位</p><p>  MOV DPTR,#TAB5&

85、lt;/p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p>  LCALL DELAY_10MS</p><p>  LCALL CLR_LED</p><p>  SETB C4 ;顯示

86、小數(shù)點(diǎn)后的數(shù)</p><p>  MOV A,TEMP_DP</p><p>  MOV DPTR,#TAB4</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p><b>  RET</b></p>

87、;<p>  ;******************</p><p>  BAOJING2: SETB P3.7</p><p>  RET </p><p>  ;*********延時(shí)函數(shù)*************</p><p>  DELAY_10MS:</p><

88、p>  MOV R3,#20</p><p>  DEL_1:MOV R4,#248</p><p><b>  DJNZ R4,$</b></p><p>  DJNZ R3,DEL_1</p><p><b>  RET</b></p><p>  ;******

89、****小數(shù)位轉(zhuǎn)換********************</p><p>  TAB3:DB00H,01H,01H,02H</p><p>  DB02H,03H,04H,04H</p><p>  DB05H,06H,06H,07H</p><p>  DB07H,08H,09H,09H</p><p>

90、  ;************無(wú)小數(shù)點(diǎn)位的段碼******************</p><p>  TAB4:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H</p><p>  ;*****************有小數(shù)點(diǎn)**********************</p><p>  TAB5:DB40H,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論