




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PAGE PAGE 74鄭州科技(kj)學院單片機原理(yunl)及應用課程設計 TOC o 1-3 h z u HYPERLINK l _Toc432675854 摘 要 PAGEREF _Toc432675854 h 3 HYPERLINK l _Toc432675855 引言(ynyn) PAGEREF _Toc432675855 h 3 HYPERLINK l _Toc432675856 1. 方案(fng n)論證 PAGEREF _Toc432675856 h 5 HYPERLINK l _Toc432675857 1.1 系統功能(gngnng)定義 PAGEREF _Toc43
2、2675857 h 5 HYPERLINK l _Toc432675858 1.2 總體方案 PAGEREF _Toc432675858 h 5 HYPERLINK l _Toc432675859 2. 系統硬件電路設計 PAGEREF _Toc432675859 h 6 HYPERLINK l _Toc432675860 2.1 系統硬件框圖 PAGEREF _Toc432675860 h 6 HYPERLINK l _Toc432675861 2.2 測溫模塊 PAGEREF _Toc432675861 h 7 HYPERLINK l _Toc432675862 2.2.1 DS18B20
3、的主要特征有以下幾點 PAGEREF _Toc432675862 h 7 HYPERLINK l _Toc432675863 2.2.2 DS18B20的工作原理 PAGEREF _Toc432675863 h 9 HYPERLINK l _Toc432675864 2.3 主控模塊 PAGEREF _Toc432675864 h 12 HYPERLINK l _Toc432675865 2.3.1 主控模塊功能分析 PAGEREF _Toc432675865 h 12 HYPERLINK l _Toc432675866 2.3.2 AT89C2051芯片的功能特性 PAGEREF _Toc4
4、32675866 h 12 HYPERLINK l _Toc432675867 2.4 顯示模塊 PAGEREF _Toc432675867 h 14 HYPERLINK l _Toc432675868 2.5 報警模塊 PAGEREF _Toc432675868 h 15 HYPERLINK l _Toc432675869 2.6 電路原理圖的繪制和電路的焊接 PAGEREF _Toc432675869 h 17 HYPERLINK l _Toc432675870 2.6.1 PROTEL簡介 PAGEREF _Toc432675870 h 17 HYPERLINK l _Toc432675
5、871 2.6.2 電路的焊接 PAGEREF _Toc432675871 h 18 HYPERLINK l _Toc432675872 3. 系統軟件設計 PAGEREF _Toc432675872 h 18 HYPERLINK l _Toc432675873 3.1 主控程序設計 PAGEREF _Toc432675873 h 18 HYPERLINK l _Toc432675874 3.2 溫度信息的采集 PAGEREF _Toc432675874 h 19 HYPERLINK l _Toc432675875 3.3 溫度的顯示操作 PAGEREF _Toc432675875 h 20
6、HYPERLINK l _Toc432675876 4調試與總結 PAGEREF _Toc432675876 h 21 HYPERLINK l _Toc432675877 致 謝 PAGEREF _Toc432675877 h 22 HYPERLINK l _Toc432675878 參考文獻 PAGEREF _Toc432675878 h 24 HYPERLINK l _Toc432675879 附 錄 PAGEREF _Toc432675879 h 24 HYPERLINK l _Toc432675880 附錄一 電路原理圖 PAGEREF _Toc432675880 h 24 HYPER
7、LINK l _Toc432675881 附錄二 實物圖 PAGEREF _Toc432675881 h 26 HYPERLINK l _Toc432675882 附錄(fl)三 系統(xtng)主程序 PAGEREF _Toc432675882 h 27摘 要: 本次實習中選擇了單片機89C2051并和DS18B20傳感器搭建硬件電路,最終(zu zhn)實現了基于89C2051的單片機溫度控制器的設計。DS18B20是新型數字溫度傳感器,采用它與單片機連接測量溫度可簡化溫度控制器的電路,提高可靠性。關鍵詞: 89C2051 單片機;DS18B20 溫度(wnd)控制器引言(ynyn)計算機
8、的發展日新月異,其技術也突飛猛進,而嵌入式計算機這種專用計算機在當今科學的發展過程中更是不可或缺的。 嵌入式系統是近年來發展很快的計算機方面的學科(xuk)方向,并迅速滲透到控制、自動化、儀器儀表等學科。 嵌入式方向包括了軟硬件協同設計、嵌入式體系結構、實時操作系統、嵌入式產品設計等方面的知識,需要掌握嵌入式系統設計的典型開發工具,培訓學生具備嵌入式系統軟、硬件的開發能力,對于特定行業領域(如移動終端、數字家庭、信息家電以及對傳統產業信息化改造)已經逐步形成了特定的嵌入式開發方法與手段。 隨著現代化信息技術的飛速發展,能獨立工作的溫度檢測系統已廣泛應用與諸多的領域。傳統的溫度檢測大多以熱敏電阻
9、為傳感器,但熱敏電阻可靠性差、測量溫度準確率低,且必須經過專門的接口電路轉換成數字信號后才能進行處理。它具有微型化、低功耗、高性能、抗干擾能力強等優點,特別適合于構成溫度檢測系統,可直接將溫度轉化成串行數字信號進行處理。DS18B20的單片機溫度控制器具有電路簡單、可靠性高的優點。本溫度控制器對溫度進行實時測量并顯示,用戶(yngh)可設定最高限報警溫度值和最低限報警溫度值,有一定的溫度控制功能。溫度是農業生產中常見的工藝參數之一,任何物理變化和化學反應過程都與溫度密切相關,因此溫度 控制是工業現代化的重要任務。對于不同生產情況和工藝要求下的溫度控制,所采用的加熱方式(fngsh)、燃料、控制
10、方案也有所不同。單片機又稱單片微控制器,是把一個計算機系統集成到一個芯片上,它的體積小、質量輕、價格便宜,應用和開發十分便利。本文選用AT89C2051芯片做為控制器,并采用ds18b20數碼管顯示及12M晶振產生時鐘信號,分析了系統硬件各組成之間的通訊協議。1. 方案(fng n)論證1.1 系統功能(gngnng)定義根據設計要求,可以(ky)先大致勾勒出要完成設計,需要幾個模塊具有如下圖所示的的功能, 圖1.1功能模塊框圖 1.2 總體方案 通過對系統功能的定義,可以將基于單片機的數字溫度計采用溫度傳感器DS18B20作為測溫元件用來滿足溫度測量,并將溫度信號經由其本身所具有的A/D轉換
11、功能,轉換成數字信號經單片機處理顯示于數碼管顯示器,從而完成溫度的測量和顯示。 整個系統控制將由AT89C2051單片機芯片為核心構成。選用(xunyng)DS18B20作為測溫元件,數碼管作為顯示器件,各個檢測信號、顯示信號可由單片機的I/O口進行。 設計任務(rn wu):用單片機設計一個測溫范圍在55125的數字(shz)溫度計。 設計要求:完成該系統的軟硬件設計,學習掌握單片機采集溫度的設計方法提高學習新知識、新技能的能力,培養獨立設計的能力2. 系統硬件電路設計2.1 系統硬件框圖 根據系統功能要求,可以先大致勾勒出完成任務所需的系統硬件框圖如下: 圖2.1 硬件結構(jigu)框圖
12、 主控模塊采用性價比較高的單片機芯片,在其內部(nib)將預設好的程序儲存,可通過程序的運行控制測溫模塊進行測溫,測溫模塊主要是由DS18B20構成,將其與所測對象進行接觸即可獲取被測對象的溫度數據,報警模塊只有當溫度超出預定值時才會工作,而所測得的溫度將通過顯示模塊的液晶顯示器以數字形式顯示。2.2 測溫模塊(m kui) 本設計的測溫元件采用的是DS18B20測溫元件,DS18B20是由DALLAS(達拉斯)公司生產的一種溫度傳感器。超小的體積,超低的硬件開消,抗干擾能力強,精度高,附加功能強,使得DS18B20很受歡迎。這是世界上第一片支持“一線總線”接口的溫度傳感器。DS18B20數字
13、溫度計提供9位(二進制)溫度讀數,指示器件的溫度。信息經過單線接口送入DS18B20或從DS18B20送出,因此從單片機到DS18B20僅需一條線連接即可。它可在1秒鐘(典型值)內把溫度變換成數字。2.2.1 DS18B20的主要(zhyo)特征有以下幾點全數字溫度轉換(zhunhun)及輸出; 先進(xinjn)的單總線數據通信; 最高12位分辨率,精度可達土0.5; 12位分辨率時的最大工作周期為750毫秒; 可選擇寄生工作方式; 檢測溫度范圍為55+125; 內置EEPROM,限溫報警功能; 64位光刻ROM,內置產品序列號,方便多機掛接; 多樣封裝形式,適應不同硬件系統。 圖2.2 D
14、S18B20管腳排列(pili)及封裝結構圖 圖2.3 DS18B20實物圖 由其引腳可看出(kn ch),其3 個引腳: GND為電壓地直接接地(jid);DQ為單數據總線用來與單片機相連接,本系統中DQ與單片機P3.5接口連接,僅此一個連接就能保證DS18B20與單片機之間的數據交換;VDD引腳接電源電壓12。 圖2.4 DS18B20寄生電源工作(gngzu)方式 圖2.5 DS18B20 外接電源工作(gngzu)方式2.2.2 DS18B20的工作(gngzu)原理 DS18B20的溫度檢測與數字數據輸出全集成于一個芯片之上,從而抗干擾力更強。一個工作周期可分為兩個部分,即溫度檢測和
15、數據處理。18B20共有三種形態的存儲器資源,分別是:ROM 只讀存儲器,用于存放DS18B20ID編碼 ,其前8位是單線系列編碼(DS18B20 的編碼是19H),后面48位是芯片唯一的序列號,最后8位是以上56的位的CRC碼(冗余校驗)。數據在出產時設置不由用戶更改。DS18B20共64位ROM, RAM 數據暫存器,用于內部計算和數據存取,數據在掉電后丟失,DS18B20共9個字節RAM,每個字節為 8位。第1、2個字節是溫度轉換后的數據值信息,第3、4個字節是用戶 EEPROM(常用于溫度報警值儲存)的鏡像。在上電復位時其值將被刷新。第5個字節則是用戶第3個EEPROM的鏡像。第6、7
16、、8個字節為計數寄存器,是為了讓用戶得到更高的溫度分辨率而設計的,同樣也是內部溫度轉換、計算的暫存單元。第9個字節為前8 個字節的CRC碼。EEPROM 非易失性記憶體,用于存放長期需要保存的數據,上下限溫度報警值和校驗數據,DS18B20共3位EEPROM,并在RAM都存在鏡像,以方便用戶操作。我們在每一次讀溫度之前都必須進行復雜的且精準時序的處理,因為DS18B20的硬件簡單結果就會導致軟件的巨大開消。 圖2.6 DS18B20的內部結構框圖(kungt) 低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器 1 ,為計數器提供一頻率穩定的計數脈沖。高溫度系數
17、晶振隨溫度變化其震蕩頻率明顯改變,很敏感的振蕩器,所產生的信號作為減法計數器 2 的脈沖輸入,為計數器 2 提供一個頻率隨溫度變化的計數脈沖。圖中還隱含著計數門,當計數門打開(d ki)時, DS18B20 就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將 -55 所對應的基數分別置入減法(jinf)計數器 1 和溫度寄存器中,減法計數器 1 和溫度寄存器被預置在 -55 所對應的一個基數值。減法計數器 1 對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器 1 的預置值減到 0 時溫度寄存器的值將加 1 ,減法
18、計數器 1 的預置將重新被裝入,減法計數器 1 重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法計數器 2 計數到 0 時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值。 圖2.7 DS18B20的內部測溫電路(dinl)框圖2.3 主控模塊(m kui)2.3.1 主控模塊(m kui)功能分析 在本系統中,主控模塊居于非常重要的地位。它是整個系統的中樞,系統運行所需的每個操作指令都要由其發出。它一方面控制著測溫模塊進行
19、溫度信息的采集,另一方面也控制著顯示模塊的工作。最重要的是,由測溫模塊所采集到的溫度信息必須經由主控模塊的處理才能在顯示模塊上顯示,從而使整個系統進行正常的運轉和工作。針對以上分析本系統主控模塊中的單片機芯片采用了AT89C2051芯片,此芯片功能強大,能夠完全滿足系統運行的需求。2.3.2 AT89C2051芯片的功能特性 AT89C2051是美國Atmel公司生產的低電壓、高性能CMOS 8位單片機6-7,片內含有 2 KB 的反復擦寫的只讀程序存儲器和128 B 的隨機存取數據存儲器(RAM)。美國DALLAS半導體公司生產的DS18B20 型單線智能溫度傳感器,屬于新一代適配微處理器的
20、智能傳感器。數字溫度計是以 DS18B20 為檢測元件, 由AT89C2051 作為主控制器的溫度計,具有功耗低、結構簡單、讀數方便、測溫范圍廣、測溫準確的特點。 AT89C2051是MCS-51產品(chnpn)的兼容型,它具有2k的 HYPERLINK /stock-ic/FLASH.html t _blank FLASH ROM、128字ROM,15根I/O HYPERLINK /product/searchfile/11629.html t _blank 引線(ynxin)、兩個(lin )16位定時/ HYPERLINK /product/searchfile/3037.html t
21、 _blank 計數器、一個五向量兩級中斷結構、一個全雙工串行口、一個精密模擬 HYPERLINK /product/searchfile/4176.html t _blank 比較器以及片內 HYPERLINK /info/4152.html t _blank 振蕩電路和時鐘電路。它的 P1口和P3口是雙向I/O口,其中P1.2P1.7、P3.0P3.5和P3.7帶有內部上拉 HYPERLINK /product/searchfile/294.html t _blank 電阻。在AT89C2051用作輸入端時,將首先向 HYPERLINK /product/searchfile/10231.
22、html t _blank 引腳寫“1”而使內部 HYPERLINK /data/iccompany/detail243.html t _blank MOS管截止以便引腳處于懸浮狀態,從而可獲得高阻抗輸入。 其主要性能如下:與MCS-51單片機產品兼容2K字節在系統可編程Flash存儲器1000次擦寫周期全靜態操作:0Hz24Hz兩級加密程序存儲器15個可編程I/O口線兩個16位定時器/計數器六個中斷源可編串行UART通道1288位內部(nib)RAM 直接(zhji)LED驅動輸出 低功耗空載(kn zi)和掉電方式 片內模擬比較器2.7V6V的操作范圍 圖2.8 AT89C2051的引腳結
23、構2.4 顯示模塊 本系統最突出的特點就是能方便直觀地對所測溫度進行讀取,因此顯示模塊的選取極為重要,由三位共陽數碼管(溫度值顯示)作為顯示模塊。采用動態掃描的方法,其中P3.0,P3.1,P3.2,P3.3控制位選,P1控制段選。由P3.0,P3.1,P3.2,P3.3向各位輪流輸出掃描信號,使每一瞬間只有一個數碼管被選通,然后由 P1送入該位所要顯示的字形碼,點亮該位字形段顯示的字形。在P1送出的碼段和P3.0,P3.1,P3.2,P3.3送出的位段的配合控制下,使各個數碼管輪流點亮顯示各自的字形。 注:下為三位共陽數碼管圖,顯示(xinsh)攝氏度符號的一位共陽數碼管倒置焊接即可。 圖2
24、.9 三位共陽數碼管圖圖2.10 七段數碼管引腳圖2.5 報警(bo jng)模塊 本系統采用3 mm的發光(f un)二極管作為報警裝置,發光(f un) HYPERLINK /view/1016.htm t _blank 二極管簡稱為LED。由鎵(Ga)與砷(AS)、磷(P)的化合物制成的二極管,當電子與 HYPERLINK /view/194378.htm t _blank 空穴復合時能輻射出 HYPERLINK /view/68621.htm t _blank 可見光,因而可以用來制成發光二極管。在電路及 HYPERLINK /view/56517.htm t _blank 儀器中作為
25、指示燈,或者組成文字或數字顯示。磷 HYPERLINK /view/34646.htm t _blank 砷化鎵二極管發紅光, HYPERLINK /view/158655.htm t _blank 磷化鎵二極管發綠光, HYPERLINK /view/9636.htm t _blank 碳化硅二極管發黃光。 發光二極管的核心部分是由 HYPERLINK /view/84698.htm t _blank P型半導體和N型半導體組成的 HYPERLINK /view/1201023.htm t _blank 晶片,在P型半導體和N型半導體之間有一個過渡層,稱為PN結。在某些半導體材料的PN結中,
26、注入的少數 HYPERLINK /view/394083.htm t _blank 載流子與多數載流子復合時會把多余的能量以光的形式釋放出來,從而把電能直接轉換為光能。PN結加 HYPERLINK /view/2979173.htm t _blank 反向電壓,少數載流子難以注入,故不發光。這種利用 HYPERLINK /view/2243347.htm t _blank 注入式電致發光原理制作的二極管 叫發光二極管,通稱LED 。 當它處于正向 HYPERLINK /view/670206.htm t _blank 工作狀態時(即兩端加上正向電壓),電流從LED HYPERLINK /vie
27、w/767315.htm t _blank 陽極流向陰極時,半導體 HYPERLINK /view/51869.htm t _blank 晶體就發出從紫外到紅外不同顏色的光線,光的強弱與電流有關。圖2.11 發光(f un)二極管的構造圖 選用發光(f un)二極管的好處: 1.效能(xionng): 消耗能量較同光效的 HYPERLINK /view/23342.htm t _blank 白熾燈減少80% 2.適用性: 體積很小,每個單元LED小片是3-5mm的正方形,所以可以制備成各種形狀的器件,并且適合于易變的環境 3.穩定性: 10萬小時,光衰為初始的50% 4.響應時間: 其白熾燈的
28、 HYPERLINK /view/84619.htm t _blank 響應時間為毫秒級, HYPERLINK /view/59252.htm t _blank LED 燈的響應時間為納秒級對環境污染 無有害金屬汞 2.6 電路原理圖的繪制和電路的焊接 在硬件的設計前期,根據框圖對電路中可能出現的電路,進行了模擬實驗,并根據實驗結果對后期的硬件設計進行了合理化的修改完善。在第一章中已分析了系統并繪制了框圖,并根據框圖分別設計了各部分電路。由于溫度傳感器 DS18B20集成度較高,所以在硬件電路設計時不需要太多其他元件即可實現預期功能。因此在PROTEL上對原理圖進行了繪制,從而得出了最終的完整
29、電路原理圖附錄一。2.6.1 PROTEL簡介(jin ji) PROTEL是PORTEL公司在80年代末推出的EDA軟件,在電子行業的CAD軟件中,它當之無愧地排在眾多EDA軟件的前面(qin mian),是電子設計者的首選軟件,它包含了電原理圖繪制、模擬電路與數字電路混合信號仿真、多層印制電路板設計(包含印制電路板自動布線)、可編程邏輯器件設計、圖表生成、電子表格生成、支持宏操作等功能,并具有Client/Server (客戶/服務器)體系結構,同時還兼容一些其它設計軟件的文件格式,如ORCAD,PSPICE,EXCEL等,其多層印制線路板的自動布線可實現高密度PCB的100布通率。Pro
30、tel 99SE采用數據庫的管理方式。該軟件沿襲了Protel以前版本方便易學的特點,內部界面與Protel 99大體相同,新增加了一些功能模塊,功能更加強大。新增的層堆棧管理功能,可以設計32個信號層,16 個地電層,16個機械層。新增的3D功能在加工印制版之前可以看到板的三維效果。其具有的打印功能,可以輕松修改打印設置控制(kngzh)打印結果。Protel 99SE容易使用的特性還體現在其幫助功能,按下右上角的小問號,然后輸入你所要的信息,可以很快地看到特性的功能,然后用到設計中,按下狀態欄末端的按鈕,使用幫助顧問。2.6.2 電路(dinl)的焊接 當通過PROTEL繪制出完整的電路原
31、理圖后,就可以按照繪制好的原理圖進行電路的焊接,焊接時要注意虛焊和短路情況出現。焊接是要先焊單片機的主電路,以便于對各部分電路的測試。當焊完一部分子電路后,要先輸入子程序進行檢測,看是否有輸入或輸出。焊完后,就可以進行電路總體(zngt)性能測試了。 在測試之前,一定要先對電路檢測,看是否有短路情況出現,以免芯片(xn pin)損壞。電源輸入電壓也是關鍵因素,在供電之前先量量。3. 系統軟件設計3.1 主控程序設計 通過對系統工作原理的了解,我們可以大致知道系統軟件運行工作的流程圖如下: 圖3.1 系統(xtng)運行流程圖 當接通電源開始工作后,單片機中的程序開始運行,將對DS18B20進行
32、(jnxng)初始化,以便單片機芯片和DS18B20達成通信協議。完成初始化后,由于本系統只有一個測溫元件,單片機會向其發出跳過ROM指令,接下來便可向其發送操作指令,設定溫度上下限,啟動測溫程序。測溫過程完成后,發出溫度轉換指令,從而便可將溫度轉化成數字模式進行顯示讀取。 3.2 溫度信息(xnx)的采集 通過DS18B20單線總線的所有執行處理都從一個初始化序列開始。初始化序列包括一個由總線控制器發出的復位脈沖和隨后由從機發出的存在脈沖: 1、復位:首先我們(w men)必須對DS18B20芯片進行(jnxng)復位,復位就是由控制器(單片機)給DS18B20單總線至少(zhsho)480
33、uS的低電平信號。當18B20接到此復位信號后則會在1560uS后回發一個芯片的存在脈沖。 2、存在脈沖:在復位電平結束之后,控制器應該將數據單總線拉高,以便于在1560uS后接收存在脈沖,存在脈沖為一個60240uS的低電平信號。至此,通信雙方已經達成了基本的協議,接下來將會是控制器與18B20間的數據通信。 3、控制器發送ROM指令:雙方打完了招呼之后最要將進行交流了,ROM指令共有5條,每一個工作周期只能發一條,ROM指令分別是讀ROM數據、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。 4、控制器發送存儲器操作指令:在ROM指令發送給18B20之后,緊接著(不間斷)就是發送存儲器操
34、作指令了。操作指令同樣為8位,共6條,存儲器操作指令分別是寫RAM數據、讀RAM數據、將RAM數據復制到EEPROM、溫度轉換、將EEPROM中的報警值復制到RAM、工作方式切換。 5、執行或數據讀寫:一個存儲器操作指令結束后則將進行指令執行或數據的讀寫,這個操作要視存儲器操作指令而定。3.3 溫度的顯示(xinsh)操作 如電路正常(zhngchng),接通電源后,只顯示“C”符號(fho),無溫度值;按下AN3,先顯示上次存貯下來的設定溫度(報警控制)值,然后再顯示環境溫度值,并隨環境溫度的變化而變化;再按一下AN3,溫度數字閃爍,待調節;接著按AN1或AN2: 按AN1為報警溫度值變大,
35、最大為125C;按AN2為報警溫度值變小 ,最小為-55C;調好后再按一下AN3,調好的報警溫度值被存貯,數碼管又顯示環境溫度。當溫度達到存貯的報警值時,電路發出報警信號和動作。4調試與總結 在硬件電路焊接和軟件程序設計分別完成的基礎之上,進行軟硬件的結合與調試。通過下載將在電腦上已完成的程序下載到單片機芯片中。在調試中發現軟件中存在的問題,及時解決問題,確保系統能正常工作并達到設計要求。通過反復的調試與實驗,可以證明該系統能夠較好地完成設計所需的基本要求。即能夠方便準確的對被測對象進行溫度測量。同時在完成設計要求的前提下,充分考慮到了外觀,成本等問題,在性能和價格之間作了比較好的平衡。雖然整
36、體性能良好,但尚存在些許不足,系統穩定性不夠,需要增強自己的焊接水平以便以后避免出現類似問題。本溫度采集系統實用性強,結構較為簡單,成本低,外接元件少。在實際應用(yngyng)中工作性能穩定,測量溫度準確,精度較高。系統在硬件設計上充分考慮到了可擴展性,經過一定的添加或改造,很容易增加功能。本系統適用范圍廣泛,可以單獨使用作為監控儀,應用于農業溫室大棚監測植物生長的環境變化,工業廠房測量各部分的工作溫度等等。也可以作為智能控制系統的一部分,與其它設備協同工作。系統移植性強,只需改變前端測量用的傳感器類型,可在此基礎上修改為其 他非電量參數的測量系統。致 謝 通過此次畢業設計,我學到了很多知識
37、。在實物的設計和論文的寫作過程中,通過查資料和搜集有關的文獻,培養了自學能力。通過對硬件電路的設計和焊接,增強了自己的動手能力。并且由原來的被動接受知識轉換為主動的尋求知識,學會了更好地讓所學知識與實踐相結合,讓書本上的知識與實際生活(shnghu)中的具體應用相結合。讓自己切實感覺到了學有所用。并在此期間鞏固復習了在大學4年內學過的知識,尤其是單片機和模電,數電方面的知識。同時通過這次畢業設計提高了自己的單片機編程的能力,尤其是獲得的軟件調試經驗,同時也讓自己知道了自己不足和缺陷,從而(cng r)為自己能更好的改進提供了幫助。 在此,首先感謝我的老師,感謝各位老師這四年中在學習中、生活上的
38、關心和照顧;其次感謝各位同學,同學們在生活中給予很大的幫助,在學習上也給極大的鼓舞。指導老師項仕標教授和葛明濤講師治學嚴謹,學識淵博,平易近人,在我做設計和論文期間對我的教誨和指導將使我終生受益。無論是在平時的階段,還是在論文的選題、資料(zlio)查詢、開題、研究、設計和撰寫的每一個環節,都得到導師的悉心指導和幫助。借此機會向項仕標教授和葛明濤講師表示衷心的感謝!在畢業設計的這段時間里,其他老師們也都言傳身教,以他們廣博的知識,敏銳的洞察力,多年的教學和實際工作經驗,在畢業設計上給予我很大的幫助。在本次設計中我學到的不僅是科學知識和工作方法,更學到了作為一個研究人員應有的治學態度以及為人處世
39、的道理,這一切都將使我終身受益。謹在此向各位老師致以崇高的敬意和衷心的感謝! 感謝幾年來傳授我知識的老師們,更要感謝我的家人對我學業(xuy)上的支持和鼓勵,感謝所有關心幫助過我的人。 參考文獻1 譚浩強 C程序設計(chn x sh j) 清華大學出版社 1999.122 李群芳 肖看 單片機原理(yunl),接口及應用 清華大學出版社 2005.33 張義和 王敏男 例說51單片機 人民郵電出版社 2008.4 4 蔡美琴 張為民 MCS-51系列(xli)單片機系統及其應用 高等教育出版社 19925 高峰(gofng) 單片微機應用系統設計及實用技術 機械工程出版社 20046 楊全勝
40、 現代微機原理(yunl)與接口技術 電子工業出版社 20047 全國大學生電子設計競賽組委會 全國大學生電子設計競賽獲 獎作品精選 (19941999) 北京理工大學出版社 2003.8 謝淑如 鄭光欽 楊渝生 Protel PCB 99SE電路版設計 清華大學出版社9 何立民 單片機應用技術選編 北京航空航天大學出版社,1993.210 段九洲 放大電路實用設計手冊 遼寧科學技術出版社,2002.511 李炎清 畢業論文寫作與范例 廈門大學出版社 2006.10附 錄附錄一 電路原理圖 附錄(fl)二 實物圖附錄(fl)三 系統(xtng)主程序/*溫度(wnd)控制器V1.5顯示為三個共
41、陽極LED溫度傳感器用單總線DS18B20CPU為2051,三個按鍵,分別為UP,DOWN,SET溫度調節上限為125度,下限為-55度只能用于單只18B20*/#include #include #define Key_UP P3_0 /上調溫度#define Key_DOWN P3_1 /下調溫度#define Key_SET P1_7 /設定鍵(溫度設定,長按開電源)#define RelayOutPort P3_5 /繼電器輸出#define LEDPort P1 /LED控制口#define LEDOneC P3_2 /LED DS1控制(百位)#define LEDTwoC P3_
42、3 /LED DS2控制(十位)#define LEDThreeC P3_4 /LED DS3控制(kngzh)(個位)#define TMPortP3_7/DS1820 DataPortunsigned char code LEDDis=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 xFF,0 xBF; /0-9的LED筆劃(b hu),0 xFF為空,0 xF7為負號static unsigned char bdata StateREG;/可位尋址的狀態(zhungti)寄存器sbit DS1820ON = St
43、ateREG0; /DS1820是否存在sbit SetTF = StateREG1; /是否是在溫度設置狀態sbit KeySETDown = StateREG2; /是否已按過SET鍵標識sbit PowTF = StateREG3; /電源電源標識sbit KeyTF = StateREG4;/鍵盤是否允許/sbit KeySETDowning = StateREG5;/SET是否正在按下static unsigned char bdata TLV _at_ 0 x0029; /溫度變量(binling)高低位static unsigned char bdata THV _at_ 0 x
44、0028;static signed char TMV; /轉換(zhunhun)后的溫度值static unsigned char KeyV,TempKeyV; /鍵值static signed char TMRomV _at_ 0 x0027; /高溫(gown)限制static signed char TMSetV _at_ 0 x0026; /溫度設定值static unsigned char KSDNum; /SET鍵連按時的采集次數static unsigned char IntNum,IntNum2,IntNum3; /中斷發生次數,IntNum用于SET長按檢測,IntNum2
45、用于設定狀態時LED閃爍static signed char LED_One,LED_Two,LED_Three; /LED的顯示位 LED_One為十位,LED_Two為個位static unsigned char Sign; /負號標識void main(void)void InitDS1820(void); /定義(dngy)函數void ROMDS1820(void);void TMVDS1820(void);void TMRDS1820(void);void TMWDS1820(void);void TMREDS1820(void);void TMERDS1820(void);voi
46、d ReadDS1820(void);void WriteDS1820(void);void Delay_510(void);void Delay_110(void);void Delay_10ms(void);void Delay_4s(void);void V2ToV(void);StateREG = 0; /初始化變量(binling)SetTF = 1;PowTF = 1;/關電源(dinyun)THV = 0;TLV = 0;TMV = 0;KeyV = 0;TempKeyV = 0;KSDNum = 0;IntNum = 0;IntNum2 = 0;IntNum3 = 0;LED_
47、One = 0;LED_Two= 0;InitDS1820(); /初始化ROMDS1820(); /跳過ROMTMERDS1820(); /E2PRAM中溫度(wnd)上限值調入RAMInitDS1820(); /初始化ROMDS1820(); /跳過ROMTMRDS1820(); /讀出溫度(wnd)指令ReadDS1820(); /讀出溫度(wnd)值和上限值TMSetV = TMRomV; /拷貝保存在DS18B20ROM里的上限值到TMSetVEA = 1;/允許CPU中斷ET0 = 1; /定時器0中斷打開TMOD = 0 x1;/設定時器0為模式1,16位模式TH0=0 xB1;
48、TL0=0 xDF;/設定時值為20000us(20ms)TR0 = 1;/開始定時while(1);/定時器0中斷(zhngdun)外理中鍵掃描和顯示void KeyAndDis_Time0(void) interrupt 1 using 2 TH0=0 xB1;TL0=0 xDF;/設定(sh dn)時值為20000us(20ms)LEDPort = 0 xFF; if (!Key_UP) KeyV = 1; if (!Key_DOWN) KeyV = 2; if (!Key_SET) KeyV = 3;/KeySETDowning = 0; /清除(qngch) if (KeyV !=
49、0) /有鍵按下 Delay_10ms(); /延時防抖 按下10ms再測 if (!Key_UP) TempKeyV = 1; if (!Key_DOWN) TempKeyV = 2; if (!Key_SET) TempKeyV = 3; if (KeyV = TempKeyV) /兩次值相等(xingdng)為確定接下了鍵 if (KeyV = 3) /按下SET鍵,如在SET狀態(zhungti)就退出,否則進入 /KeySETDowning = 1; /表明(biomng)SET正在按下 PowTF = 0; /電源(dinyun)標識開if (!KeyTF) if (SetTF)
50、SetTF = 0; /標識(biozh)位標識退出設定InitDS1820(); /初始化 ROMDS1820(); /跳過ROM TMWDS1820(); /寫溫度上限指令WriteDS1820(); /寫溫度上限到DS18B20ROMWriteDS1820(); /寫溫度上限到DS18B20ROMWriteDS1820(); /寫溫度(wnd)上限到DS18B20ROMInitDS1820(); /初始化 ROMDS1820(); /跳過ROM TMREDS1820(); /溫度(wnd)上限值COPY回E2PRAM else SetTF = 1; if (!KeySETDown) /沒
51、有(mi yu)第一次按下SET時,KeySETDown標識置1 KeySETDown = 1; else KSDNum = KSDNum + 1; /前一秒內有按過SET則開始計數 if (SetTF) /在SET狀態(zhungti)下 if (KeyV = 1) & (!KeyTF) TMSetV = TMSetV + 1; /上調(shn dio)溫度 if (KeyV = 2) & (!KeyTF) TMSetV = TMSetV - 1; /下調(xi dio)溫度 if (TMSetV = 125) TMSetV = 125; if (!KeyTF) & (IntNum3 = 0
52、) KeyTF = 1; /當鍵盤處于可用時,鎖定 if (KeySETDown) /在2秒內按下了SET則計中斷(zhngdun)發生次數用于長按SET時計時用 IntNum = IntNum + 1; if (IntNum 55) /中斷發生(fshng)了55次時(大約1.2秒)75為1.5秒左右 IntNum = 0;KeySETDown = 0; if (KSDNum = 55) /如一直(yzh)長按了SET1.2秒左右 RelayOutPort = 1; /關閉繼電器輸出 PowTF = 1; /電源標識關 LEDOneC = 0; LEDTwoC = 0; LEDThreeC
53、= 0; LEDPort = 0 xBF; /顯示- Delay_4s(); /延時 LEDOneC = 1; LEDTwoC = 1; /關顯示(xinsh) LEDThreeC = 1; Delay_4s(); IntNum = 0; IntNum2 = 0; IntNum3 = 0; KSDNum = 0; KeyV = 0; TempKeyV = 0; /清空(qn kn)變量準備下次鍵掃描 if (!PowTF) InitDS1820();/初始化 ROMDS1820(); /跳過ROM TMVDS1820(); /溫度轉換(zhunhun)指令 Delay_510(); Delay
54、_510(); /延時等待轉換(zhunhun)完成 InitDS1820(); /初始化 ROMDS1820(); /跳過ROM TMRDS1820(); /讀出溫度(wnd)指令 ReadDS1820(); /讀出溫度值 V2ToV(); /轉換顯示值 if (TMV TMSetV) /根據采集到的溫度值控制繼電器 RelayOutPort = 0; else RelayOutPort = 1; if (SetTF) IntNum2 = IntNum2 + 1; /用于閃爍(shn shu)計數 if (IntNum2 50 ) IntNum2 = 0;if (KeyTF) IntNum3
55、 = IntNum3 + 1; /用于防止(fngzh)按鍵連按if (IntNum3 25) IntNum3 = 0;KeyTF = 0; if (SetTF) & (IntNum2 4; THV = THV 7; /取符號 else Sign = TMV 7;if (Sign) if (SetTF | !Key_SET) LED_One = (TMSetV-1) / 100; /SET狀態(zhungti)下顯示設定值 LED_Two = (TMSetV-1) - LED_One * 100)/10; LED_Three = (TMSetV-1) - LED_One * 100 - LED
56、_Two * 10; else LED_One = (TMV) / 100;/轉換(zhunhun)百位值 LED_Two = (TMV) - LED_One * 100)/10; LED_Three = (TMV) - LED_One * 100 - LED_Two * 10;else if (SetTF | !Key_SET) LED_One = (TMSetV) / 100; /SET狀態(zhungti)下顯示設定值 LED_Two = (TMSetV - LED_One * 100)/10; LED_Three = TMSetV - LED_One * 100 - LED_Two *
57、 10; else LED_One = (TMV) / 100;/轉換(zhunhun)百位值 LED_Two = (TMV - LED_One * 100)/10; LED_Three = TMV - LED_One * 100 - LED_Two * 10; /轉LED字段if (LED_One) /超過(chogu)百時十位的處理LED_Two = LEDDisLED_Two;elseif (LED_Two = 0)LED_Two = LEDDis10;elseLED_Two = LEDDisLED_Two;if (Sign)LED_One = LEDDis11;elseif (LED_
58、One = 0)LED_One = LEDDis10;elseLED_One = LEDDisLED_One;LED_Three = LEDDisLED_Three;void InitDS1820(void)/初始化DS1820TMPort = 1;/拉高TMPort_nop_(); /保持(boch)一個周期TMPort = 0;/拉低TMPort Delay_510(); /延時 DS1820復位(f wi)時間要500us的低電平 TMPort = 1; /拉高TMPort_nop_(); /保持(boch) _nop_();_nop_(); Delay_110(); /延時110us
59、等待DS1820回應 if (!TMPort) /回應信號為低電平 DS1820ON = 1; else DS1820ON = 0; Delay_110(); /延時 Delay_110(); TMPort = 1; /拉高TMPortvoid ROMDS1820(void) /跳過ROM匹配(ppi)#pragma asm MOV A,#0CCH MOV R2,#8 CLR C WR1: CLR P3_7 MOV R3,#6 DJNZ R3,$ RRC A MOV P3_7,C MOV R3,#23 DJNZ R3,$ SETB P3_7 NOP DJNZ R2,WR1 SETB P3_7#pragma endasmvoid TMVDS1820(void) /溫度(wnd)轉換指令#pragma asm MOV A,#44H MOV R2,#8 CLR C WR2: CLR P3_7 MOV R3,#6 DJNZ R3,$ RRC A MOV P3_7,C MOV R3,#23 DJNZ R3,$ SETB P3_7 NOP DJNZ R
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學年第1節 分子熱運動教學設計及反思
- 2025年個體與企業之間的合作協議【商業住宅項目承包合同】
- 2025年國際貿易進出口合作合同協議書
- 中班下冊社會活動設計
- 2025室內設計裝修合同范本
- 《園林工程施工機械與應用》課件
- 初中化學工藝流程專題精講
- 九年級數學組復習計劃
- 九年級歷史半期復習計劃
- 銀湘潭石壩口水庫50MW漁光互補光伏升壓站及110kV送出工程環評資料環境影響
- 勞動課程設計烹飪教案
- GB/T 15688-2024動植物油脂不溶性雜質含量的測定
- 醫院圍手術期管理制度培訓課件
- 2024至2030年中國高氯酸鹽行業深度調研及發展預測報告
- 設備巡檢手冊
- 藥品零售業中可持續采購的最佳實踐
- 人教版(2015)五年級下學期信息技術第6課視頻知識一起學 教案
- 光伏發電設備檢修維護工(二級)崗位能力認證考試題庫(含答案)
- 《空間計量經濟分析》課件
- 醫院培訓課件:《靜脈血栓栓塞癥(VTE)專題培訓》
- 2024年蘭考三農職業學院單招職業技能測試題庫及答案解析
評論
0/150
提交評論