




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計(論文)說明書題 目: 溫度檢測自動加熱裝置 院 (系): 信息與通信學院 專 業: 電子科學與技術 學生姓名: 學 號: 指導教師: 何 寧 職 稱: 教 授 2012年12月16日摘 要段落格式不對溫度檢測自動加熱裝置是以AT89S52單片機作為系統核心部分控制電路,通過制作硬件電路和軟件的綜合設計構成,在確保硬件電路正確的前提下利用單片機控制DS18B20溫度傳感器獲得當前環境溫度值,再將溫度值顯示在數碼管上。加熱電路是以繼電器的來實現加熱電路的接通和斷開,單片機通過將當前溫度與上下限溫度比較來控制繼電器;用AT89S52單片機作為控制器的特點是設計思路簡單、清晰、成本低。關鍵詞
2、:溫度檢測;自動加熱;AT8952單片機; DS18B20;程序;中斷;數碼管;繼電器;溫度傳感;單片機;溫度顯示;自動加熱;繼電器AbstractTemperature sensing automatic heating device is AT89S52 SCM as a core part of system control circuit, through manufacturing hardware circuit and software of integrated design, to ensure that the hardware circuit is correct und
3、er the premise of using single chip microcomputer DS18B20 temperature sensor to obtain the current ambient temperature value, the temperature value in the digital tube display. The heating circuit is to relay to realize the heating circuit is switched on and off, SCM through the current temperature
4、and minimum temperature compared to control relay; AT89S52 MCU as controller is characterized by simple, clear design, low cost.Key words: Thermal detect; AT8952 single-chip microcomputer; hardware circuit; procedure; reduction; second; interrupt; digitron.引言11 系統概述11.1 題目選擇11.2 系統組成11.3 元件介紹21.3.1
5、單片機簡介21.3.2 DS18B20溫度傳感器簡介61.3.3 繼電器介紹122 設計過程122.1原理圖的設計132.1.1 各種驅動電路和輔助電路的選擇132.1.2 原理圖成型142.2 PCB的連接與成型142.3 源程序的編寫153 制作電路板154 調試164.1檢驗電路的正確與否164.2程序的導入與調試165 結論17致 謝18參考文獻19附 錄20附錄1:20附錄2:28引言 圖太大,排版緊湊些,段落格式不對21世紀,電子技術獲得了飛速的發展,在其推動下,現代電子產品幾乎滲透了社會的各個領域,有力地推動了社會生產力的發展和社會信息化程度的提高,同時也使現代電子產品性能進一步
6、提高,產品更新換代的節奏也越來越快。檢測裝置是生產過程自動化和經營管理現代化的基礎,特別收到人們的重視。隨著工業自動化技術進展,它們起著越來越為重要的作用,因為只有性能好、精度高、質量可靠的儀表檢測到各種有關的信息,才能實現高水平的自動化。智能自動化裝置在人的現代生活中越來越收到青睞,他們幫助人們完成了許多以前人類不能完成的事情,給人們的生活帶來了極大的方便和節省了人們的時間。所以溫度檢測自動加熱裝置能夠給人帶來方便,他可以應用在工業生產和家居產品中。數碼管成本低、應用簡單、溫度值得到準確顯示。本設計就是一個溫度檢測及自動加熱裝置。報告中第一部分總體介紹了整個系統的概述,系統設計及所選元件的介
7、紹。第二部分介紹了硬件部分設計過程,繪制電路板的原理圖、PCB圖。第三部分是軟件部分的設計,通過程序結構圖弄清楚設計程序的目的,然后實際編程。1 系統概述 1.1 題目選擇 此次題目選擇的相對來說比較簡單,在以前也有成熟的成功設計,本次課設主要目的是加強動手能力以及將理論與實際結合的能力,在經過仔細的研究比較后,我選擇的題目為:溫度檢測自動加熱裝置。單片機溫度傳感器數碼管繼電器按鍵圖1.系統組成結構圖1.2 系統組成 為了實現溫度檢測和顯示溫度值功能,我仔細研究了AT89S52單片機的功能與相關電路,尋找與所需功能相符的組合電路。在經過仔細研究52功能后,我決定采用DS18B20溫度傳感器和L
8、ED數碼管來實現我所要的功能,通過按鍵輸入設置上下限溫度并利用繼電器作為控制開關,確定了設計電路、需要的儀器與其他元器件。1.3 元件介紹1.3.1 單片機簡介 單片機微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片機微型計算機簡稱單片機,特別適用于控制領域,故又稱為微控制器。 通常,單片機由單塊集成電路芯片構成,內部包含有計算機的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機只需要和適當的軟件及外部設備相結合,便可成為一個單片機控制系統。 單片機經過1、2、3、3代的發展,正朝著多功能、高性能、低電壓、低功耗、低價格、大存儲容量、強I/O功能及較好的結構兼容
9、性方向發展。其發展趨勢不外乎以下幾個方面:(1)多功能 單片機中盡可能地把所需要的存儲器和I/O口都集成在一塊芯片上,使得單片機可以實現更多的功能。比如A/D、PWM、PCA(可編程計數器陣列)、WDT(監視定時器-看家狗)、高速I/O口及計數器的捕獲/比較邏輯等。 有的單片機針對某一個應用領域,集成了相關的控制設備,以減少應用系統的芯片數量。例如,有的芯片以51內核為核心,集成了USB控制器、SMART CARD接口、MP3解碼器、CAN或者I*I*C總線控制器等,LED、LCD或VFD顯示驅動器也開始集成在8位單片機中。(2)高效率和高性能 為了提高執行速度和執行效率,單片機開始使用RIS
10、C、流水線和DSP的設計技術,使單片機的性能有了明顯的提高,表現為:單片機的時鐘頻率得到提高;同樣頻率的單片機運行效率也有了很大的提升;由于集成度的提高,單片機的尋址能力、片內ROM(FLASH)和RAM的容量都突破了以往的數量和限制。 由于系統資源和系統復雜程度的增加,開始使用高級語言(如C語言)來開發單片機的程序。使用高級語言可以降低開發 難度,縮短開發周期,增強軟件的可讀性和可移植性,便于改進和擴充功能。(3)低電壓和低功耗 單片機的嵌入式應用決定了低電壓和低功耗的特性十分重要。由于CMOS等工藝的大量采用,很多單片機可以在更低的電壓下工作(1.2V或0.9V),功耗已經降低到uA級。這
11、些特性使得單片機系統可以在更小電源的支持下工作更長的時間。(4)低價格 單片機應用面廣,使用數量大,帶來的直接好處就是成本的降低。目前世界各大公司為了提高競爭力,在提高單片機性能的同時,十分注意降低其產品的價格。下面大致介紹一下單片機的主要應用領域和特點。 家用電器領域 用單片機控制系統取代傳統的模擬和數字控制電路,使家用電器(如洗衣機、空調、冰箱、微波爐、和電視機等)功能更完善,更加智能化和易于使用。 辦公自動化領域 單片機作為嵌入式系統廣泛應用于現代辦公設備,如計算機的鍵盤、磁盤驅動、打印機、復印機、電話機和傳真機等。 商業應用領域 商業應用系統部分與家用和辦公應用系統相似,但更加注重設備
12、的穩定性、可靠性和安全性。商用系統中廣泛使用的電子計量儀器、收款機、條形碼閱讀器、安全監測系統、空氣調節系統和冷凍保鮮系統等,都采用了單片機構成的專用系統。與通用計算機相比,這些系統由于比較封閉,可以更有效地防止病毒和電磁干擾等,可靠性更高。 工業自動化 在工業控制和機電一體化控制系統中,除了采用工控計算機外,很多都是以單片機為核心的單片機和多機系統。 智能儀表與集成智能傳感器 目前在各種電氣測量儀表中普遍采用了單片機應用系統來代替傳統的測量系統,使得測量系統具有存儲、數據處理、查詢及聯網等智能功能。將單片機和傳感器相結合,可以構成新一代的智能傳感器。它將傳感器變換后的物理量作進一步的變化和處
13、理,使其成為數字信號,可以遠距離傳輸并與計算機接口。 現代交通與航空航天領域 通常應用于電子綜合顯示系統、動力監控系統、自動駕駛系統、通信系統以及運行監視系統等。這些領域對體積、功耗、穩定性和實時性的要求往往比商用系統還要高,因此采用單片機系統更加重要。(5)單片機的基本結構 MCS-52單片機內部結構8052單片機包含中央處理器、程序存儲器(ROM)、數據存儲器(RAM)、定時/計數器、并行接口、串行接口和中斷系統等幾大單元及數據總線、地址總線和控制總線等三大總線,現在我們分別加以說明:中央處理器:中央處理器(CPU)是整個單片機的核心部件,是8位數據寬度的處理器,能處理8位二進制數據或代碼
14、,CPU負責控制、指揮和調度整個單元系統協調的工作,完成運算和控制輸入輸出功能等操作。數據存儲器(RAM) 8052內部有128個8位用戶數據存儲單元和128個專用寄存器單元,它們是統一編址的,專用寄存器只能用于存放控制指令數據,用戶只能訪問,而不能用于存放用戶數據,所以,用戶能使用的RAM只有128個,可存放讀寫的數據,運算的中間結果或用戶定義的字型表。圖圖2 單片機8052的內部結構程序存儲器(ROM):8052共有4096個8位掩膜ROM,用于存放用戶程序,原始數據或表格。定時/計數器(ROM):8052有兩個16位的可編程定時/計數器,以實
15、現定時或計數產生中斷用于控制程序轉向。并行輸入輸出(I/O)口:8052共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數據的傳輸。全雙工串行口:8052內置一個全雙工串行通信口,用于與其它設備間的串行數據傳送,該串行口既可以用作異步通信收發器,也可以當同步移位器使用。中斷系統:8052具備較完善的中斷功能,有兩個外中斷、兩個定時/計數器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優先級別選擇。時鐘電路:8052內置最高頻率達12MHz的時鐘電路,用于產生整個單片機運行的脈沖時序,但8052單片機需外置振蕩電容。單片機的結構有兩種類型,一種是程序存儲器和數據存儲器分開的形
16、式,即哈佛(Harvard)結構,另一種是采用通用計算機廣泛使用的程序存儲器與數據存儲器合二為一的結構,即普林斯頓(Princeton)結構。INTEL的MCS-52系列單片機采用的是哈佛結構的形式,而后續產品16位的MCS-96系列單片機則采用普林斯頓結構。下圖是MCS-52系列單片機的內部結構示意圖。MCS-52的引腳說明:圖3系列單片機的內部結構MCS-52系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結構,右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復用。現在我們對這些引腳
17、的功能加以說明:MCS-51的引腳說明:MCS-52系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結構,右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復用。現在我們對這些引腳的功能加以說明: 圖4 單片機的引腳圖Pin9:RESET/Vpd復位信號復用腳,當8052通電,時鐘電路開始工作,在RESET引腳上出現24個時鐘周期以上的高電平,系統即初始復位。初始化后,程序計數器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電
18、平下降為低電平后,系統即從0000H地址開始執行程序。然而,初始復位不改變RAM(包括工作寄存器R0-R7)的狀態,8052的初始態。圖5復位電路8051的復位方式可以是自動復位,也可以是手動復位,見下圖4。此外,RESET/Vpd還是一復用腳,Vcc掉電后,此腳可接上備用電源,以保證單片機內部RAM的數據不丟失。 Pin30:ALE/當訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節。而訪問內部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以當作一個時鐘向外輸出。更有一個特點,當訪問外部程序存儲器,ALE會跳過一個脈沖。 如
19、果單片機是EPROM,在編程其間,將用于輸入編程脈沖。Pin29:當訪問外部程序存儲器時,此腳輸出負脈沖選通信號,PC的16位地址數據將出現在P0和P2口上,外部程序存儲器則把指令數據放到P0口上,由CPU讀入并執行。Pin31:EA/Vpp程序存儲器的內外部選通線,8051和8751單片機,內置有4kB的程序存儲器,當EA為高電平并且程序地址小于4kB時,讀取內部程序存儲器指令數據,而超過4kB地址則讀取外部指令數據。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內部無程序存儲器的8031,EA端必須接地。1.3.2 DS18B20溫度傳感器簡介(1)DS18B20的特
20、點DS18B20 單線數字溫度傳感器,即“一線器件”,其具有獨特的優點: 采用單總線的接口方式 與微處理器連接時 僅需要一條口線即可實現微處理器與 DS18B20 的雙向通訊。 單總線具有經濟性好,抗干擾能力強,適合于惡劣環境的現場溫度測量,使用方便等優點,使用戶可輕松地組建傳感器網絡,為測量系統的構建引入全新概念。 測量溫度范圍寬,測量精度高 DS18B20 的測量范圍為 -55 + 125 ; 在 -10+ 85°C 范圍內,精度為 ± 0.5°C 。 在使用中不需要任何外圍元件。 持多點組網功能 多個 DS18B20 可以并聯在惟一的單線上,實現多點測溫。
21、供電方式靈活 DS18B20 可以通過內部寄生電路從數據線上獲取電源。因此,當數據線上的時序滿足一定的要求時,可以不接外部電源,從而 使系統結構更趨簡單,可靠性更高。 測量參數可配置 DS18B20 的測量分辨率可通過程序設定 912 位。 負壓特性 電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作。 掉電保護功能 DS18B20 內部含有 EEPROM ,在系統掉電以后,它仍可保存辨率及報警溫度的設定值。 DS18B20具有體積更小、適用電壓更寬、更經濟、可選更小的封裝方式,更寬的電壓適用范圍,適合于構建自己的經濟的測溫系統,因此也就被設計者們所青睞。(2)DS18B20內部結構如圖所
22、示圖6 DS18B20內部結構如圖主要由4部分組成:64 位ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。ROM中的64位序列號是出廠前被光刻好的,它可以看作 是該DS18B20的地址序列碼,每個DS18B20的64位序列號均不相同。64位ROM的排的循環冗余校驗碼(CRC=X8X5X41)。 ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現一根總線上掛接多個DS18B20的目的。(3)DS18B20封裝 GND為電源 地; DQ為數字信號輸入輸出端; VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。圖2-7 DS18B20封裝圖(4)DS18B20內
23、部構成DS18B20 內部結構主要由四部分組成: 64 位光刻 ROM 、溫度傳感器、非揮發的溫度報警觸發器 TH 和 TL 、配置寄存器。光刻 ROM 中的 64 位序列號是出廠前被光刻好的,它可以看作是該 DS18B20 的地址序列碼。 64 位光刻 ROM 的排列是:開始 8 位(地址: 28H )是產品類型標號,接著的 48 位是該 DS18B20 自身的序列號,并且每個 DS18B20 的序列號都不相同,因此它可以看作是該 DS18B20 的地址序列碼;最后 8 位則是前面 56 位的循環冗余校驗碼( CRC=X8+X5+X4+1 )。由于每一個 DS18B20 的 ROM 數據都各
24、不相同,因此微控制器就可以通過單總線對多個 DS18B20 進行尋址,從而實現一根總線上掛接多個 DS18B20 的目的。圖8(a)圖8(b)DS18B20中的溫度傳感器完成對溫度的測量,用16位二進制形式提供,形式表達,其中S為符號位。例 如125的數字輸出為07D0H (正溫度 直接吧16進制數轉成10進制即得到溫度值 )-55的數字輸出為 FC90H。 (負溫度 把得到的16進制數 取反后 加1 再轉成10進制數)圖9其中配置寄存器的格式如下:低五位一直都是"1",TM是測試模式位,用于設置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設置為0,
25、用戶不要去改動。R1和R0用來設置分辨率,如下圖所示:(DS18B20出廠時被設置為12位)圖10圖11配置寄存器與分辨率關系表(5)DS18B20的工作時序DS18B20的一線工作協議流程是:初始化ROM操作指令存儲器操作指令數據傳輸。其工作時序包括:初始化時序、寫時序、讀時序。 初始化時序圖12 初始化時序圖主機首先發出一個480960微秒的低電平脈沖,然后釋放總線變為高電平,并在隨后的480微秒時間內對總線進行檢測,如果有低電平出現說明總線上有器件已做出應答。若無低電平出現一直都是高電平說明總線上無器件應答。做為從器件的DS18B20在一上電后就一直在檢測總線上是否有480960微秒的低
26、電平出現,如果有,在總線轉為高電平后等待1560微秒后將總線電平拉低60240微秒做出響應存在脈沖,告訴主機本器件已做好準備。若沒有檢測到就一直在檢測等待。 對DS18B20的寫和讀操作圖13接下來就是主機發出各種操作命令,但各種操作命令都是向DS18B20寫0寫1組成的命令字節,接收數據時也是從DS18B20讀取0或1的過程。因此首先搞清主機是如何進行寫0、寫1、讀0和讀1的。寫周期最少為60微秒,最長不超過120微秒。寫周期一開始做為主機先把總線拉低1微秒表示寫周期開始。隨后若主機想寫0,則繼續拉低電平最少60微秒直至寫周期結束,然后釋放總線為高電平。若主機想寫1,在一開始拉低總線電平1微
27、秒后就釋放總線為高電平,一直到寫周期結束。而做為從機的DS18B20則在檢測到總線被拉底后等待15微秒然后從15us到45us開始對總線采樣,在采樣期內總線為高電平則為1,若采樣期內總線為低電平則為0。圖14 寫時序圖對于讀數據操作時序也分為讀0時序和讀1時序兩個過程。讀時隙是從主機把單總線拉低之后,在1微秒之后就得釋放單總線為高電平,以讓DS18B20把數據傳輸到單總線上。DS18B20在檢測到總線被拉低1微秒后,便開始送出數據,若是要送出0就把總線拉為低電平直到讀周期結束。若要送出1則釋放總線為高電平。主機在一開始拉低總線1微秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內的15微秒時
28、間內完成對總線進行采樣檢測,采樣期內總線為低電平則確認為0。采樣期內總線為高電平則確認為1。完成一個讀時序過程,至少需要60us才能完成DS18B20 單線通信功能是分時完成的,他有嚴格的時隙概念,如果出現序列混亂, 1-WIRE 器件將不響應主機,因此讀寫時序很重要。系統對 DS18B20 的各種操作必須按協議進行。根據 DS18B20 的協議規定,微控制器控制 DS18B20 完成溫度的轉換必須經過以下 4 個步驟 :() 每次讀寫前對 DS18B20 進行復位初始化。復位要求主 CPU 將數據線下拉 500us ,然后釋放, DS18B20 收到信號后等待 16us60us 左右,然后發
29、出 60us240us 的存在低脈沖,主 CPU 收到此信號后表示復位成功。() 發送一條 ROM 指令() 發送存儲器指令圖15 DS18B20 的存儲器指令集1.3.3 繼電器介紹繼電器實際上是用低電壓、小電流去控制高電壓、大電流的一種“自動開關”。在電路中起著自動調節、安全保護、轉換電路等作用電磁繼電器的工作原理和特性:電磁式繼電器一般由鐵芯、線圈、銜鐵、觸點簧片等組成的。圖16 繼電器結構圖常開觸點和常閉觸點繼電器的“常開、常閉”觸點,可以這樣來區分:繼電器線圈未通電時處于斷開狀態的靜觸點,稱為“常開觸點”;處于接通狀態的靜觸點稱為“常閉觸點”。2 設計過程 做好了各種準備后,正式開始
30、設計過程,先是設計原理圖,然后畫PCB,最后編寫源程序,仿真結果。2.1原理圖的設計 因為有前人成熟的電路存在,因此對于這種簡單的設計,已經有很多成熟的輔助電路,只要正確選擇,這個原理圖的設計不是難題。首先,對于52單片機來說,需要合適的驅動電路;其次,對于一些其它元器件的連接,也需要合適的驅動電路和輔助電路;最后,什么樣的電路都需要有電源,要有合適的電源電路。2.1.1 各種驅動電路和輔助電路的選擇 對于52單片機和數碼管的驅動電路和以及晶振的輔助電路,前人的成熟設計是可以利用的,因此不必費心再去自己設計。 這三個電路是經過長時間的驗證,是所能選的最合適的電路,而且適合數字電子時鐘的設計,因
31、此不用改動,只要注意將它們連接到正確的管腳上。 圖17 單片機原理圖下面我列舉下單片機最小系統的原理圖如上圖:對于數碼管的驅動電路,是比較成熟的,在這里不做贅述。數碼管的驅動電路和數碼管電路如下:2.1.2 原理圖成型 其中的接口和2.1.1中的都相同,至于DS18B20電路和電器電路位于原理圖左邊,。(注:本次設計所用的軟件為Protel DXP)圖18 原理圖2.2 PCB的連接與成型 PCB的生成過程和更新方法,這里就不再講述了,這隸屬于Protel DXP的應用問題。通過EDA實驗的學習,我對Protel DXP的應用已經基本掌握,而布線的過程已經不屬于對軟件掌握程度的考察了,布線考察
32、的是一個人的思維能力與全局能力,當然,曾經布線的經驗也是十分重要的。PCB原理圖如下:圖19 PCB圖2.3 源程序的編寫 在這次的程序編寫中,我借鑒了以往的經驗,在原有的基本程序中進行了擴展,并經過多次的仿真和調試,最終取得了預期的結果。程序結構如圖21,程序代碼見附錄1。3 制作電路板 做板的過程,是檢驗設計成果的過程。電路板的好壞,決定它的性能。做空板的步驟分為:打印PCB印板腐蝕打孔涂松香圖20 實物圖當空板做好后,將所需元器件焊接到板子上,然后就可以調試了。制作好的電路板如圖20所示。開始初始化DS18B20讀取溫度值顯示溫度值比較溫度值閉合繼電器(加熱)繼電器保持原本狀態斷開繼電器
33、(不加熱)小于下限值大于下限且小于上限值 大于上限值循環外中斷設置溫度上下限值圖21程序結構圖4 調試 調試過程分兩步:一是檢驗板子電路的正確與否;二是進行程序的導入與調試檢驗是否得出理想的結果。4.1檢驗電路的正確與否然后經過理論分析加上萬用表的檢驗,驗證得電路是正確的。4.2程序的導入與調試程序的導入很簡單,由于我設計的電路沒有導入接口,因此我的程序通過芯片單獨導入,再倒入后,接上電源,查看了實際運行結果,結果發現我的程序設計與接口不相對應,左右數碼管的接口設計相反了。經過程序的改動,重新燒進程序,發現運行結果符合要求。5 結論通過此次課程設計,使我更加扎實的掌握了有關高制作電路板和單片機
34、方面的知識,在設計過程中雖然遇到了一些問題,但經過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經驗不足。實踐出真知,通過親自動手制作,使我們掌握的知識不再是紙上談兵。過而能改,善莫大焉。在課程設計過程中,我們不斷發現錯誤,不斷改正,不斷領悟,不斷獲取。最終的檢測調試環節,本身就是在踐行“過而能改,善莫大焉”的知行觀。這次課程設計終于順利完成了,在設計中遇到了很多問題,最后在同學的幫助下,終于游刃而解。在今后社會的發展和學習實踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發現問題所在,然后一一進行解決,只有這樣,才能成功的做成想
35、做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠不可能收獲成功,收獲喜悅,也永遠不可能得到社會及他人對你的認可!回顧起此課程設計,至今我仍感慨頗多,從理論到實踐,在這段日子里,可以說得是苦多于甜,但是可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。此次設計也讓我
36、明白了思路即出路,有什么不懂不明白的地方要及時請教或上網查詢,只要認真鉆研,動腦思考,動手實踐,就沒有弄不懂的知識,收獲頗豐。致 謝本課題在選題及進行過程中得到何寧老師的悉心指導。論文行文過程中,何老師多次幫助我分析思路,開拓視角,在我遇到困難想放棄的時候給予我最大的支持和鼓勵。何老師嚴謹求實的治學態度,踏實堅韌的工作精神,將使我終生受益。再多華麗的言語也顯蒼白。在此,謹向何老師致以誠摯的謝意和崇高的敬意。感謝大學三年來,信息與通信學院所有老師對我學習上的幫助和生活上的關懷,正是您們的辛勤工作,才使我得以順利地走到了這一步。 感謝我的室友們,我們一起經歷過的聚散喜悲,一起走過的每一段路,我一生
37、都不會忘記。友情的無私為我們的大學時光重重地寫下了無悔。 感謝我的家人,養育之恩,無以回報。我將用自己最大的努力給你們欣慰。 最后,我感謝大學三年以來給過我幫助和關注的所有人,更加感謝給過我挫折的所有人。你們用不同的方式給了我成長,也是你們促使我在走過的大學時光里一直努力,感謝你們!參考文獻1 李群芳.單片微型計算機與接口技術(第3版).北京:電子工業出版社,2008:116130.2 譚浩強.C程序設計(第三版).北京:清華出版社,2005::113129.3 閻石.數字電子技術基礎(第五版).北京:高等教育出版社, 2005:386440.4 王衛東.模擬電子技術基礎(第二版).北京:電子
38、工業出版社. 2010.5:2970.5 黃冰.微機原理及應用(第二版).重慶:重慶大學出版社.2003.1:62125.6 徐惠民.單片微型計算機與接口技術(第3版).北京:北京郵電大學出版社, 2007:207231.附 錄附錄1:源程序:本設計源程序采用C語言編寫,程序如下:/DS18B20溫度檢測及其液晶顯示20#include<reg52.h> /包含單片機寄存器的頭文件#include<intrins.h> /包含_nop_()函數定義的頭文件unsigned char code s810=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82
39、,0xf8,0x80,0x90;unsigned char flag,tltemp;/負溫度標志 和臨時暫存變量unsigned char dot=(1<<7);unsigned char state;unsigned char up_temp, up_temp_ge, up_temp_shi, down_temp, down_temp_ge, down_temp_shi, full, time, val;sbit P35=P35;sbit P37=P37;sbit P32=P32;/*函數功能:延時1ms(3j+2)*i=(3×33+2)×10=1010(微秒
40、),可以認為是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i<4;i+) for(j=0;j<33;j+) ; /*函數功能:延時若干毫秒入口參數:n*/ void delaynms(unsigned char n) unsigned char i;for(i=0;i<n;i+) delay1ms(); /*以下是DS18B20的操作程序 */ sbit DQ=P36;unsigned char time; /設置全局變量,專門用于嚴格延時/*函數功能:將DS18B20傳感器初始化,讀取應答信號出口參數:flag */bit
41、 Init_DS18B20(void) bit flag; /儲存DS18B20是否存在的標志,flag=0,表示存在;flag=1,表示不存在 DQ = 1; /先將數據線拉高 for(time=0;time<2;time+) /略微延時約6微秒 ; DQ = 0; /再將數據線從高拉低,要求保持480960us for(time=0;time<200;time+) /略微延時約600微秒 ; /以向DS18B20發出一持續480960us的低電平復位脈沖 DQ = 1; /釋放數據線(將數據線拉高) for(time=0;time<10;time+) ; /延時約30us
42、(釋放總線后需等待1560us讓DS18B20輸出存在脈沖) flag=DQ; /讓單片機檢測是否輸出了存在脈沖(DQ=0表示存在) for(time=0;time<200;time+) /延時足夠長時間,等待存在脈沖輸出完畢 ; return (flag); /返回檢測成功標志/*函數功能:從DS18B20讀取一個字節數據出口參數:dat*/ unsigned char ReadOneChar(void) unsigned char i=0;unsigned char dat; /儲存讀出的一個字節數據for (i=0;i<8;i+) DQ =1; / 先將數據線拉高 _nop_
43、(); /等待一個機器周期 DQ = 0; /單片機從DS18B20讀書據時,將數據線從高拉低即啟動讀時序 _nop_(); /等待一個機器周期 DQ = 1; /將數據線"人為"拉高,為單片機檢測DS18B20的輸出電平作準備 for(time=0;time<2;time+) ; /延時約6us,使主機在15us內采樣 dat>>=1; if(DQ=1) dat|=0x80; /如果讀到的數據是1,則將1存入datelsedat|=0x00;/如果讀到的數據是0,則將0存入dat /將單片機檢測到的電平信號DQ存入ri for(time=0;time&l
44、t;8;time+) ; /延時3us,兩個讀時序之間必須有大于1us的恢復期 return(dat); /返回讀出的十六進制數據/*函數功能:向DS18B20寫入一個字節數據入口參數:dat*/ WriteOneChar(unsigned char dat)unsigned char i=0;for (i=0; i<8; i+) DQ =1; / 先將數據線拉高 _nop_(); /等待一個機器周期 DQ=0; /將數據線從高拉低時即啟動寫時序 DQ=dat&0x01; /利用與運算取出要寫的某位二進制數據, /并將其送到數據線上等待DS18B20采樣 for(time=0;t
45、ime<10;time+) ;/延時約30us,DS18B20在拉低后的約1560us期間從數據線上采樣 DQ=1; /釋放數據線 for(time=0;time<1;time+) ;/延時3us,兩個寫時序間至少需要1us的恢復期 dat>>=1; /將dat中的各二進制位數據右移1位 for(time=0;time<4;time+) ; /稍作延時,給硬件一點反應時間/*函數功能:做好讀溫度的準備*/ void ReadyReadTemp(void) Init_DS18B20(); /將DS18B20初始化WriteOneChar(0xCC); / 跳過讀序號
46、列號的操作WriteOneChar(0x44); / 啟動溫度轉換 Init_DS18B20(); /將DS18B20初始化WriteOneChar(0xCC); /跳過讀序號列號的操作WriteOneChar(0xBE); /讀取溫度寄存器,前兩個分別是溫度的低位和高位void display_temp(unsigned char zheng,unsigned char xiao)unsigned char ge,shi,bai;ge=zheng%10;bai=zheng/100;shi=(zheng/10)%10;if(bai) P0=0xff; P2=0xef; P0=s8bai; de
47、laynms(7); P0=0xff;P2=0xdf;P0=s8shi;delaynms(8);P0=0xff;P2=0xbf;P0=s8ge˙delaynms(8);P0=0xff;P2=0x7f;P0=s8xiao;delay1ms();/*函數功能:主函數*/ void main(void) unsigned char TL; /儲存暫存器的溫度低位 unsigned char TH; /儲存暫存器的溫度高位 unsigned char TN; /儲存溫度的整數部分 unsigned char TD; /儲存溫度的小數部分 EA=1; EX1=1; IT1=1; while(1) ET0=0; flag=0;ReadyReadTemp(); /讀溫度準備 TL=ReadOneChar(); /先讀的是溫度值低位TH=ReadOneChar(); /接著讀的是溫度值高位if(TH&0xf8)!=0x00)/判斷高五位 得到溫度正負標志flag=1;TL=TL; /取反TH=TH; /取反tltemp=TL+1; /低位加1TL=tltemp;if(tltemp>255) TH+; /如果低8位大于255,向高8位進
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年下沉市場消費金融趨勢分析及發展機遇報告
- 藥品管理相關管理制度
- 藥品銷售制度管理制度
- 藥店內部各項管理制度
- 藥店收銀制度管理制度
- 莆田社保流程管理制度
- 設備事故定損管理制度
- 設備變更作業管理制度
- 設備定期維護管理制度
- 設備材料采購管理制度
- 2025年北京市高考英語試卷真題(含答案解析)
- 2025年高考物理廣西卷試題真題及答案詳解(精校打印)
- 國家開放大學本科《商務英語4》一平臺機考真題及答案(第四套)
- 2024年湖北省中考地理生物試卷(含答案)
- 2024年甘肅省天水市中考生物·地理試題卷(含答案)
- 2022年小學六年級畢業監測科學素養測試題試卷 (含答題卡)
- HW50取力器說明書
- 行政賠償與行政補償課件
- 繼電器接觸器控制的基本線路.ppt
- 最新國家開放大學電大《國際私法》機考3套真題題庫及答案2
- (完整版)《普通心理學-彭聃齡》知識要點
評論
0/150
提交評論