基于51單片機的DS18B20溫度檢測————設計報告_第1頁
基于51單片機的DS18B20溫度檢測————設計報告_第2頁
基于51單片機的DS18B20溫度檢測————設計報告_第3頁
基于51單片機的DS18B20溫度檢測————設計報告_第4頁
基于51單片機的DS18B20溫度檢測————設計報告_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

課程名稱: 微機原理課程設計 題 目: 溫度檢測課程設計 20摘要隨著時代的進步和發展,單片機技術已經普及到我們生活,工作,科研,各個領域,已經成為一種比較成熟的技術,本文將介紹一種基于單片機控制的溫度檢測儀。本設計使用簡便,功能豐富。可以實現溫度采集,溫度報警,重設上下限溫度值等功能。在現代化的工業生產中,需要對周圍環境的溫度進行檢測和控制。本設計對溫控報警問題展開思考,設計一個能根據需求設置低溫到高溫進行報警并通過數碼管顯示的系統。該系統使用STC89C51單片機,同時運用單線數字溫度傳感器DS18B20,四位共陰數碼管顯示,按鍵控制等模塊可實現溫度的檢測與設置。課題經過實驗驗證達到設計要求,具有一定的使用價值和推廣價值。本作品使用四位共陰數碼管顯示,可以清晰地顯示當前的報警溫度,一定程度避免使用者使用時出錯,安全可靠,可使用于各種食品儲存室,植物養殖所等地方,實用性很高。關鍵字:溫度報警器 STC89C51單片機 數碼管 DS18B20目錄一、課程設計目的和要求11.1 設計目的11.2 設計要求1二、總體設計方案1三、硬件設計23.1 DS18B20傳感器23.2 STC89C51功能介紹53.3 時鐘電路73.4 復位電路83.5 LED顯示系統電路83.6 按鍵控制電路103.7 蜂鳴器電路103.8 總體電路設計11四、軟件設計134.1 keil軟件134.2 系統主程序設計134.3 系統子程序設計14五、仿真與實現165.1 PROTEUS仿真軟件165.2 STC-ISP程序燒錄軟件175.3 使用說明17六、總結18一、課程設計目的和要求1.1 設計目的熟悉典型51單片機,加深對51單片機課程的全面認識和掌握,對51單片機及其接口的應用作進一步的了解,掌握基于51單片機的系統設計的一般流程、方法和技巧,為我們解決工程實際問題打下堅實的基礎。同時課程設計也是讓我們熟練掌握了課本上的一些理論知識,是一個學習新知識、鞏固加深所學課本理論知識的過程,它培養了我們綜合運用知識、獨立思考和解決問題的能力,加深了我們對單片機原理與應用課程的理解。所以此次設計目的具體如下:l 掌握溫度檢測儀的設計、組裝與調試方法;l 熟悉集成電路DS18B20的使用方法,并掌握其工作原理;1.2 設計要求根據單片機原理及應用課程的要求,主要進行兩個方面的設計,即單片機最小系統和外圍電路擴展設計、接口技術應用設計。其中,單片機最小系統主要要求學生熟悉單片機的內部結構和引腳功能、引腳的使用、復位電路、時鐘電路、4個并行接口和一個串行接口的實際應用,從而可構成最小應用系統,并編程進行簡單使用。在采集溫度時,為了具有一種反應準確且顯示方便的檢測溫度的裝置,下面設計了一種可調節的溫度檢測儀,也可稱作溫度報警器。設計要求如下: 完成溫度進行測量,理論測量范圍-55C+125C; 將溫度測量值通過四位共陰數碼管顯示模塊顯示,顯示精度為0.5C; 可以通過按鍵進行對上下限報警溫度,自行設定并實現功能;二、總體設計方案硬件電路設計由7個部分組成;DS18B20傳感器模塊,STC89C51單片機系統,LED顯示系統、時鐘電路、復位電路以及按鍵控制電路。其系統框圖如下圖1所示:圖1 系統框圖三、硬件設計3.1 DS18B20傳感器1) DS18B20簡介DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。該裝置信號線高的時候,內部電容器 儲存能量通由1線通信線路給片子供電,而且在低電平期間為片子供電直至下一個高電平的到來重新充電。 DS18B20的電源也可以從外部3V-5.5V的電壓得到。DS18B20采用一線通信接口。因為一線通信接口,必須在先完成ROM設定,否則記憶和控制功能將無法使用。主要首先提供以下功能命令之一:1)讀ROM;2)ROM匹配;3)搜索ROM;4)跳過ROM;5)報警檢查。這些指令操作作用在沒有一個器件的64位光刻ROM序列號,可以在掛在一線上多個器件選定某一個器件,同時,總線也可以知道總線上掛有有多少,什么樣的設備。若指令成功地使DS18B20完成溫度測量,數據存儲在DS18B20的存儲器。一個控制功能指揮指示DS18B20的演出測溫。測量結果將被放置在DS18B20內存中,并可以讓閱讀發出記憶功能的指揮,閱讀內容的片上存儲器。溫度報警觸發器TH和TL都有一字節EEPROM 的數據。如果DS18B20不使用報警檢查指令,這些寄存器可作為一般的用戶記憶用途。在片上還載有配置字節以理想的解決溫度數字轉換。寫TH,TL指令以及配置字節利用一個記憶功能的指令完成。通過緩存器讀寄存器。所有數據的讀,寫都是從最低位開始。采用DALLAS最新單線數字溫度傳感器DS18B20。DS18B20“一線總線”數字化溫度傳感器也支持“一線總線”接口,測量溫度范圍為-55C+125C,在-10+85C范圍內,精度為0.5C。現場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統的抗干擾性。適合于惡劣環境的現場溫度測量,如:環境控制、設備或過程控制、測溫類消費電子產品等。DS18B20的特性:DS18B20可以程序設定912位的分辨率,精度為0.5C。可選更小的封裝方式,更寬的電壓適用范圍。分辨率設定,及用戶設定的報警溫度存儲在EEPROM中,掉電后依然保存。2) DS18B20主要特性獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊;測溫范圍55+125,固有測溫誤差1;支持多點組網功能,多個DS18B20可以并聯在唯一的三線上,最多只能并聯8個,實現多點測溫,如果數量過多,會使供電電源電壓過低,從而造成信號傳輸的不穩定;工作電源:35V/DC(可以數據線寄生電源);在使用中不需要任何外圍元件;測量結果以912位數字量方式串行傳送;不銹鋼保護管直徑6;適用于DN1525,DN40DN250各種介質工業管道和狹小空間設備測溫;標準安裝螺紋M10X1,M12X1.5,G1/2”任選;PVC電纜直接出線或德式球型接線盒出線,便于與其它電器設備連接。3) DS18B20芯片引腳說明DS18B20只有三個引腳,如下圖所示圖2 DS18B20引腳DS18B20有3個引腳,其每個引腳都有著特定的功能:GND(1引腳)為電源地;DQ(2引腳)為數字信號輸入/輸出端;VDD(3引腳)為外接供電電源輸入端(在寄生電源接線方式時接地)。如圖2。左負右正,一旦接反就會立刻發熱,有可能燒毀!接反是導致該傳感器總是顯示85的原因。面對著扁平的那一面,左負右正。如圖3為寄生電源供電方式:圖3 DS18B20寄生電源供電方式4) DS18B20工作原理獨特的單線接口方式使其工作是必須按照嚴格的時序才能進行。DS18B20的所有通信都由由復位脈沖組成的初始化序列開始。該初始化序列由主機發出,后跟由DS18B20發出的存在脈沖(presence pulse)。當發出應答復位脈沖的存在脈沖后,DS18B20通知主機它在總線上并且準備好操作了。在初始化步驟中,總線上的主機通過拉低單總線至少480s來產生復位脈沖。然后總線主機釋放總線并進入接收模式。主機將總線拉低最短480us,之后釋放總線。由于5k上拉電阻的作用,總線恢復到高電平。DS18B20檢測到上升沿后等待15到60us,發出存在脈沖:拉低總線60-240us。至此,初始化和存在時序完畢。其時序如下圖所示:圖4 DS18B20初始化時序主機在寫時序向DS18B20寫入數據,并在讀時序從DS18B20讀入數據。在單總線上每個時序只傳送一位數據。寫時序分為兩種:寫“0”時間隙和寫“1”時間隙。總線主機使用寫“1”時間隙向DS18B20寫入邏輯1,使用寫“0”時間隙向DS18B20寫入邏輯0所有的寫時序必須有最少60us的持續時間,相鄰兩個寫時序必須要有最少1us的恢復時間。兩種寫時序都通過主機拉低總線產生。為產生寫1時序,在拉低總線后主機必須在15s內釋放總線。在總線被釋放后,由于5k上拉電阻的作用,總線恢復為高電平。為產生寫0時序,在拉低總線后主機必須繼續拉低總線以滿足時序持續時間的要求(至少60s)。在主機產生寫時序后,DS18B20會在其后的15到60us的一個時間窗口內采樣單總線。在采樣的時間窗口內,如果總線為高電平,主機會向DS18B20寫入1;如果總線為低電平,主機會向DS18B20寫入0。寫0時序和寫1時序如圖5所示:圖5 寫“0”時序和寫“1”時序DS18B20只有在主機發出讀時序后才會向主機發送數據。因此,在發出讀暫存器命令 BEh或讀電源命令B4h后,主機必須立即產生讀時序以便DS18B20提供所需數據。另外,主機可在發出溫度轉換命令。所有的讀時序必須至少有60us的持續時間。相鄰兩個讀時序必須要有最少1us的恢復時間。所有的讀時序都由拉低總線,持續至少1us后再釋放總線(由于上拉電阻的作用,總線恢復為高電平)產生。在主機產生讀時序后,DS18B20開始發送0或1到總線上。DS18B20讓總線保持高電平的方式發送1,以拉低總線的方式表示發送0當發送0的時候,DS18B20在讀時序的末期將會釋放總線,總線將會被上拉電阻拉回高電平(也是總線空閑的狀態)。DS18B20輸出的數據在下降沿(下降沿產生讀時序)產生后15us后有效。因此,主機釋放總線和采樣總線等動作要在15s內完成。圖6為DS18B20的讀時序圖:圖6 讀“0”時序和讀“1”時序表明了對于讀時序,TINIT(下降沿后低電平持續時間),TRC(上升沿)和TSAMPLE(主機采樣總線)的時間和要在15s以內。5) DS18B20模塊電路圖本設計的DS18B20模塊負責電路功能是溫度采集與轉化(DS18B20芯片能自動將采集的溫度模擬量轉化為數字量),其具體連接電路如下圖所示:圖7 DS18B20連接電路DS18B20只有三個引腳,因此硬件連線上較為簡單。其單總線連接是單片機的P1.1口,因此在程序中可以通過控制P1.1口從而來控制DS18B20的功能。如上圖所示,上圖是DS18B20在proteus中的元件圖。該元件上有一個向上和向下箭頭,它表示控制傳感器的溫度,并且溫度在傳感器能顯示出來。這只是仿真上的一個形式,當然實際的元件不是這樣的。并且此處為了連接采用的是外接電源的方式,沒有使用寄生電源。若在實際工程使用中,如果連接線路更長,為防止電路受外界干擾,可在DQ這條線路上接一個5k的上拉電阻,這樣即可使電路更加穩定。3.2 STC89C51功能介紹1) 簡單概述STC89C51是一種帶4K字節閃存可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS8位微處理器,俗稱單片機。STC89C51是一種帶2K字節閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,STC的89C51是一種高效微控制器。STC89C51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。外形及仿真引腳排列如圖8所示:圖8 89C51單片機引腳2) 主要功能特性帶有增強型1T流水線/精簡指令集結構8051CPU;工作電壓為3.4V-5.5V(5V單片機)或2.0V-3.8V(3V單片機);工作頻率范圍是0-35MHz,相當于普通8051的0420MHz,實際工作頻率可達48MHz;用戶應用程序空間有12K/10K/8K/6K/4K/2K字節等多種選擇;片上集成512字節RAM;通用I/O口(27/23個),復位后為準雙向口/弱上拉(普通8051傳統I/O口);可設置成四種模式:準雙向口/弱上拉,推挽/強上拉,僅為輸入/高阻,開漏;每個I/O口驅動能力均可達到20mA,但整個芯片最大不得超過55mA;ISP(在系統可編程)/IAP(在應用可編程),無需專用編程器;可通過串口(P3.0/P3.1)直接下載用戶程序,數秒即可完成;內部集成MAX810專用復位電路(外部晶體20M以下時,可省外部復位電路);時鐘源特點是外部高精度晶體/時鐘,內部R/C振蕩器,用戶在下載用戶程序時,可選擇是使用內部R/C振蕩器還是外部晶體/時鐘。常溫下內部R/C振蕩器頻率為:5.2MHz6.8MHz。精度要求不高時,可選擇使用內部時鐘,因為有溫漂,所一般選4MHz8MHz;有2個16位定時器/計數器;外部中斷2路,下降沿中斷或低電平觸發中斷,Power Down 模式可由外部中斷低電平觸發中斷方式喚醒;PWM(4路)/PCA(可編程計數器陣列),也可用來再實現4個定時器或4個外部中斷(上升沿中斷/下降沿中斷均可支持);STC89C51具有ADC功能。10位精度ADC,共8路;通用異步串行口(UART),SPI同步通信口,主模式/從模式工作溫度范圍:0-75/-40-+85;封裝類型有PDIP-28,SOP-28,PDIP-20,SOP-20,PLCC-32,TSSOP-20等。3) STC89C51引腳89C51單片機多采用40只引腳的雙列直插封裝(DIP)方式,下面分別簡單介紹。首先電源引腳VCC是40引腳,單片機正是通過它接入+5V工作電源。與之相對的是GND(20引腳),它是接地端,有了VCC與GND整體電路才能形成回路。時鐘引腳有兩個,分別是XTAL1(19引腳)和XTAL2(20引腳),其中XTAL1是片內振蕩器反相放大器和時鐘發生器電路的輸入端,而XTAL2是片內振蕩器反相放大器的輸出端;復位RST(9引腳)在振蕩器運行時,當有兩個機器周期(24個振蕩周期)以上的高電平出現在此引腳時,將使單片機復位,只要這個引腳保持高電平,51芯片便可循環復位;EA/Vpp(31引腳)為外部程序存儲器訪問允許控制端。當它為高電平時,單片機讀片內程序存儲器,在PC值超過0FFFH后將自動轉向外部程序存儲器。當它為低電平時,只限定在外部程序存儲器,地址為0000HFFFFH。Vpp為該引腳的第二功能,為編程電壓輸入端;ALE/PROG(30引腳)其中ALE為低八位地址鎖存允許信號。在系統擴展時,ALE的負跳變沿P0口發出的第八位地址鎖存在外接的地址鎖存器,然后再作為數據端口。PROG為該引腳的第二功能,在對片外存儲器編程時,此引腳為編程脈沖輸入端;PSEN(29引腳)為片外程序存儲器的讀選通信號端。在單片機讀片外程序存儲器時,此引腳輸出脈沖的負跳變沿作為讀片外程序存儲器的選通信號;Pin39-Pin32為P0.0-P0.7輸入輸出腳,P0口是一個8位漏極開路型雙向I/O口,內部不帶上拉電阻,當外接上拉電阻時,P0口能以吸收電流的方式驅動八個TTL負載電路。通常在使用時外接上拉電阻,用來驅動多個數碼管。在訪問外部程序和外部數據存儲器時,P0口是分時轉換的地址(低8位)/數據總線,不需要外接上拉電阻;Pin1-Pin8為P1.0-P1.7輸入輸出腳是一個帶內部上拉電阻的8位雙向I/0口。P1口能驅動4個TTL負載;Pin21-Pin28為P2.0-P2.7輸入輸出腳,P2口是一個帶內部上拉電阻的8位雙向I/O口,P2口能驅動4個TTL負載。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數據存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數據存儲器時其引腳上的內容在此期間不會改變;Pin10-Pin17為P3.0-P3.7輸入輸出腳,P3口是一個內部帶上拉電阻的8位雙向I/O口,P3口能驅動4個TTL負載,這8個引腳還用于專門的第二功能。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器編程時,接控制信息。3.3 時鐘電路單片機中CPU每執行一條指令,都必須在統一的時鐘脈沖的控制下嚴格按時間節拍進行,而這個時鐘脈沖是單片機控制中的時序電路發出的。CPU執行一條指令的各個微操作所對應時間順序稱為單片機的時序。MCS-51單片機芯片內部有一個高增益反相放大器,用于構成震蕩器,XTAL1為該放大器的輸入端,XTAL2為該放大器輸出端,但形成時鐘電路還需附加其他電路。本設計系統采用內部時鐘方式,利用單片機內部的高增益反相放大器,外部電路簡,只需要一個晶振和2個電容即可,如圖9所示:圖9 時鐘電路電路中的器件選擇可以通過計算和實驗確定,也可以參考一些典型電路的參數,電路中,電容器C1和C2對震蕩頻率有微調作用,通常的取值范圍是3010pF,在這個系統中選擇了22pF;石英晶振選擇范圍最高可選24MHz,它決定了單片機電路產生的時鐘信號震蕩頻率,在本系統中選擇的是12MHz,因而時鐘信號的震蕩頻率為12MHz。3.4 復位電路單片機在啟動運行時都需要復位,使CPU和系統中的其他部件都處于一個確定的初始狀態,并從這個狀態開始工作。MCS-51單片機有一個復位引腳RST,采用施密特觸發輸入。當震蕩器起振后,只要該引腳上出現2個機器周期以上的高電平即可確保時器件復位。復位完成后,如果RST端繼續保持高電平,MCS-51就一直處于復位狀態,只要RST恢復低電平后,單片機才能進入其他工作狀態。單片機的復位方式有上電自動復位和手動復位兩種,圖10是51系列單片機統常用的上電復位和手動復位組合電路,只要Vcc上升時間不超過1ms,它們都能很好的工作。圖10 復位電路3.5 LED顯示系統電路LED是發光二極管顯示器的縮寫。LED由于結構簡單、價格便宜、與單片機接口方便等優點而得到廣泛應用。LED顯示器是由若干個發光二極管組成顯示字段的顯示器件。1) LED基本結構在單片機中使用最多的是七段數碼顯示器。LED七段數碼顯示器由8個發光二極管組成顯示字段,其中7個長條形的發光二極管排列成“日”字形,另一個圓點形的發光二極管在顯示器的右下角作為顯示小數點用,其通過不同的組合可用來顯示各種數字。LED引腳排列如下圖11所示:圖11 LED引腳2) LED顯示器的選擇在應用系統中,設計要求不同,使用的LED顯示器的位數也不同,因此就生產了位數,尺寸,型號不同的LED顯示器供選擇,在本設計中,選擇4位一體的數碼型LED顯示器,簡稱“4-LED”。本系統中前一位顯示電壓的整數位,即個位,后兩位顯示電壓的小數位。4-LED顯示器引腳如圖11所示,是一個共陰極接法的4位LED數碼顯示管,其中a,b,c,e,f,g為4位LED各段的公共輸出端,1、2、3、4分別是每一位的位選端,dp是小數點引出端,4位一體LED數碼顯示管的內部結構是由4個單獨的LED顯示器組成,每個LED顯示器的段輸出引腳在內部都并聯后,引出到器件的外部。圖12 四位LED引腳對于這種結構的LED顯示器,它的體積和結構都符合設計要求,由于4位LED陰極的各段已經在內部連接在一起,所以必須使用動態掃描方式(將所有數碼管的段選線并聯在一起,用一個I/O接口控制)顯示。3) 數碼管顯示電路本設計采用的如圖12所示的四位共陰極數碼管,采用了動態掃描的方式讓數碼顯示出輸入通道的電壓值。其連接如圖13所示:圖13 數碼管顯示電路圖13中P0口接的上拉電阻是1k的排阻,關于排阻的介紹如下:常用排阻有A型和B型的區別。A型排阻的引腳總是奇數的。它的左端有一個公共端(用白色的圓點表示),常見的排阻有4、7、8個電阻,所以引腳共有5或8或9個。B型排阻的引腳總是偶數的。它沒有公共端,常見的排阻有4個電阻,所以引腳共有8個。排阻的阻值讀法如下:“103”表示:10k,“510”表示:51。以此類推。排阻的阻值與內部電路結構通常可以從型號上識別出來。選用時要注意,有的排阻內有兩種阻值的電阻,在其表面會標注這兩種電阻值,如220330,所以SIP排阻在應用時有方向性,使用時要小心。這里使用的排阻是A09-102型號的排阻,它的讀讀數值方法是:1023表示的是10的平方,10乘以10的平方,該排阻阻值為1k歐。圖13中數碼管是四位共陰數碼管P2.4P2.7分別接的是數碼管的位選,P0.0P0.7是數碼管的段選,動態掃描時在程序中先打開第一位數碼管的位選,再打開此位數碼管段選,然后短暫延時(延時盡量不要超過15ms,否則最終效果會使數碼管閃爍)。3.6 按鍵控制電路本設計除了實現溫度檢測功能外,設計者也豐富了其功能,另外還設計了可調節溫度上下限的模塊,因為DS1B820內部可存儲用上下限值,也可實現溫度報警的功能。其按鍵控制電路連接如下圖所示:圖14 按鍵控制如圖所示,K1,K2,K3,K4實現的功能分別是增加溫度數值,減少溫度數值,確認,上下限警報切換。每按一次K1鍵,數碼管顯示的溫度值加1,按下確認鍵后,那么這個值就成了一個界限,每按一次K2鍵,數碼管顯示的溫度值減1,按下確認鍵后,那么這個值也成了一個界限,最終溫度的允許范圍只能在這兩個界限內,一旦超出或低于這兩個界限,蜂鳴器報警電路將會發“嘟嘟嘟嘟”的響聲。3.7 蜂鳴器電路蜂鳴器分為有源蜂鳴器和無源蜂鳴器,該電路中蜂鳴器用的是無源蜂鳴器,如圖15蜂鳴器驅動模塊:圖15 蜂鳴器模塊電路有源蜂鳴器與無源蜂鳴器的區別:注意:這里的“源”不是指電源,而是指震蕩源。也就是說,有源蜂鳴器內部帶震蕩源,所以只要一通電就會響,而無源內部不帶震蕩源,所以如果用直流信號無法令其鳴叫。必須用2K-5K的方波去驅動它有源蜂鳴器往往比無源的貴,就是因為里面多個震蕩電路l 無源蜂鳴器的優點是:便宜,內部無振蕩源,價格上相比更為便宜。聲音頻率可控,可以做出“多來米發索拉西”的效果。在一些特例中,可以和LED復用一個控制口,因為它要求音頻輸入的信號才能發響。l 有源蜂鳴器的優點是:程序控制方便。此處驅動蜂鳴器用的三極管采用的是s9012(pnp)型號三極管,由于PROTEUS仿真中沒有s9012這個三極管,所以選用了一個相似的pnp型號三極管,其中基極接的限流電阻大小和實物也不一樣,實際接的是1k的限流電阻。但實際效果和仿真效果是一樣的,如圖所示,蜂鳴器接在了三極管的集電極,這里的三極管實際就是運用開關管的功能。關于三極管的引腳分辨方法如下:1) 判定基極,用萬用表R100或R1k擋測量三極管三個電極中每兩個極之間的正、反向電阻值。當用第一根表筆接某一電極,而第二表筆先后接觸另外兩個電極均測得低阻值時,則第一根表筆所接的那個電極即為基極b。這時,要注意萬用表表筆的極性,如果紅表筆接的是基極b。黑表筆分別接在其他兩極時,測得的阻值都較小,則可判定被測三極管為PNP型管;如果黑表筆接的是基極b,紅表筆分別接觸其他兩極時,測得的阻值較小,則被測三極管為NPN型管。2) 判定集電極c和發射極e。(以PNP為例)將萬用表置于R100或R1k擋,紅表筆基極b,用黑表筆分別接觸另外兩個管腳時,所測得的兩個電阻值會是一個大一些,一個小一些。在阻值小的一次測量中,黑表筆所接管腳為集電極;在阻值較大的一次測量中,黑表筆所接管腳為發射極。圖16 pnp三極管引腳3.8 總體電路設計經過以上的設計過程,可設計出基于單片機的簡易溫度檢測儀硬件電路原理圖如圖17所示:圖17 整體電路從圖中可以看出整體電路是以STC89C52單片機為核心設計的。在數碼管部分用的是網絡標號與P0口連接,這樣比較美觀,避免了太多線的麻煩。8按鍵全部整使用的P1口,因為其他的P0都有擴展東西,所以利用P1口擴展按鍵將單片機的I/O口合理利用。整體電路的布局也更為合理,也方便了在實際焊接步驟。經過將近一周的單片機課程設計,終于完成了溫度檢測儀的設計,雖然沒有完全達到設計要求,但還是收獲良多。通過這次課程設計,使我更進一步地熟悉了單片機芯片的工作原理和其具體的使用方法。單片機課程設計重點就在于軟件算法的設計,需要有很巧妙的程序算法,這鍛煉了自己獨立思考問題的能力和通過查看相關資料來解決問題的習慣。還有了解了課程設計的一般步驟,和設計中應注意的問題,做這個設計我有了很多教訓,首先在洞洞板的布線上面思考了很久,之前是比較隨意的用軟件將器件布在了洞洞板軟件上,所以很多的問題沒有考慮周全,包括一些器件空間的大小,還有包括布局的合理安排等,一開始都做得不夠好,在老師指導下,將器件重新布置一番,使得最終效果比以前看上去更工整,這樣不僅外觀看著更舒服,而且有利于后面出問題的檢查與調試。四、軟件設計4.1 keil軟件1)Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環境、強大的軟件仿真調試工具也會令人事半功倍。2)C51工具包的整體結構,uVision與Ishell分別是C51 for Windows和for Dos的集成開發環境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發流程。開發人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。調試程序通過Keil軟件編譯,產生HEX文件如圖18所示:圖18 keil編譯產生HEX文件4.2 系統主程序設計根據模塊的劃分原則,將該程序劃分為初始化模塊,按鍵控制模塊,DS18B20傳感器模塊,顯示模塊。當然還有一個蜂鳴器模塊,其在主程序中沒標出,因為它是執行報警功能,其詳細情況,可到蜂鳴器模塊查。主程序流程如圖19所示:圖19 主程序流程4.3 系統子程序設計1) 初始化程序所謂初始化,是對將要用到的MCS-51系列單片機內部部件或擴展芯片進行初始工作狀態設定,初始化子程序的主要工作是設置定時器的工作模式,初值預置,開中斷和打開定時器等。本設計程序中的初始化就有一些關于定時器的處理及初始操作,另外還加了一些開機LOGO程序,即剛上電時,該段程序會讓數碼管顯示一些數字,蜂鳴器響一到兩秒。2) 按鍵控制程序因為本設計中有四個控制按鍵,所以程序中必然少不了按鍵掃描的程序,按鍵控制電路部分程序流程圖如下圖所示:圖20 按鍵控制程序流程因本設計中所使用的四腳輕觸臥式開關,所以在按鍵過程中,必然產生一些抖動干擾,因此在程序中必須對按鍵控制程序進行消抖處理,具體操作一般采用控制其發生,一般這種按鍵抖動在按下時會有20ms左右時間,在釋放時也會存在20ms左右時間,因此,當檢測到按鍵按下時,讓其延時10ms后再次檢測是否按下,如果按下則進入下一段程序。通過這種方法可以達到去抖的作用。而且這也是比較通用的簡便去抖方法。3) DS18B20傳感器模塊程序此模塊的程序主要功能是讀取采集的溫度,其流程圖如下所示:圖21 讀取溫度流程3) 顯示模塊程序因本設計是一個溫度檢測儀,即要顯示的是溫度值,而且溫度數值有正有負,因此本設計中對這些情況都有所考慮,具體流程如下圖所示:圖22 顯示模塊流程因顯示模塊使用的是四位共陰數碼實現的,并且段選都是接一個I/O口上,所以,要讓其顯示不同的數字時,必須采用動態掃描的方式方能實現。在采用動態掃描時,要非常注意動態掃描的時間長度,一般來講延時不要超過20ms,因為超過20ms可能看上去會導致數碼管閃爍造成顯示效果不好。但延時也不能太短,太短會造成顯示亮度太低甚致無顯示等結果。所以,延時時間上要掌握好,一般來講延時10ms左右就可以。4) 蜂鳴器模塊程序此模塊程序功能是執行報警提示。即當溫度不在設定的上下限范圍之內時,蜂鳴器便會發出“嘟嘟嘟”的響聲。其具體流程如下圖所示:圖23 蜂鳴器模塊程序流程此處所用蜂鳴器為無源蜂鳴器,因此在程序編寫中應注意,要將控制該I/O口的電平設成方波形式才能使蜂鳴器發響。五、仿真與實現5.1 PROTEUS仿真軟件1)PROTEUS軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。迄今為止是世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MATLAB等多種編譯2)在PROTEUS繪制好原理圖后,調入已編譯好的目標代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實物運行狀態和過程。PROTEUS 是單片機課堂教學的先進助手。PROTEUS不僅可將許多單片機實例功能形象化,也可將許多單片機實例運行過程形象化。前者可在相當程度上得到實物演示實驗的效果,后者則是實物演示實驗難以達到的效果。它的元器件、連接線路等卻和傳統的單片機實驗硬件高度對應。這在相當程度上替代了傳統的單片機實驗教學的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調試、運行結果等。課程設計、畢業設計是學生走向就業的重要實踐環節。由于PROTEUS提供了實驗室無法相比的大量的元器件庫,提供了修改電路設計的靈活性、提供了實驗室在數量、質量上難以相比的虛擬儀器、儀表,因而也提供了培養學生實踐精神、創造精神的平臺。隨著科技的發展“計算機仿真技術”已成為許多設計部門重要的前期設計手段。它具有設計靈活,結果、過程的統一的特點。可使設計時間大為縮短、耗資大為減少,也可降低工程制造的風險。相信在單片機開發應用中PROTEUS也能茯得愈來愈廣泛的應用。通過Proteus進行仿真,如仿真結果所示:圖24 啟動時整體狀態圖24顯示的是剛啟動時的電路狀態,從電路中可以看到,每個引旁邊都有一些紅色或者綠色的小方塊,其中紅色方塊代表此處是高電平,綠色方塊代表此處是低電平,在整個電路工作時,基上就可以很清晰地看出電路中每個引腳的電平變化情況。此時數碼顯示的是一橫亮的狀態,這是開機時的一個LOGO,在程序中有設定,并且剛開機時,蜂鳴器也會響一到兩秒。5.2 STC-ISP程序燒錄軟件STC-ISP是一款單片機下載編程燒錄軟件,是針對STC系列單片機而設計的,可下載STC89系列、12C2052系列和12C5410等系列的STC單片機,使用非常簡便,現在已被廣泛使用。1) 其使用方法步驟如下: 打開STC-ISP,在MCU Type欄目下選中單片機,如STC89C52RC; 根據您的9針數據線連接情況選中COM端口,波特率一般保持默認,如果遇到下載問題,可以適當下調一些;2) 按圖示選中各項: 先確認硬件連接正確,按如圖點擊“打開文件”并在對話框內找到您

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論