版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 交通與汽車工程學院</b></p><p><b> 課程設計說明書</b></p><p> 課 程 名 稱: 微機原理及應用課程設計 </p><p> 課 程 代 碼: 8234570 </p><p> 題
2、 目: 發(fā)動機排溫采集系統(tǒng) </p><p> 年級/專業(yè)/班: 2009級車輛工程汽電三班 </p><p> 學 生 姓 名: 何 橋 </p><p> 學 號: 362009080609127 </p><p>
3、 開 始 時 間: 2012 年 07 月 02 日</p><p> 完 成 時 間: 2012 年 07 月 06 日</p><p><b> 課程設計成績:</b></p><p> 指導教師簽名: 年 月 日</p><p>&l
4、t;b> 摘 要</b></p><p> 隨著微機測量和控制技術的迅速發(fā)展與廣泛應用,以單片機為核心的溫度采集與控制系統(tǒng)的研發(fā)與應用在很大程度上提高了生產生活中對溫度的控制水平,同樣廣泛應用于汽車上溫度控制。本設計論述了一種以STC89C52單片機為主控制單元,以DS18B20為溫度傳感器的汽車發(fā)動機排溫溫度控制系統(tǒng)。該控制系統(tǒng)可以實時溫度數(shù)據(jù)采集和顯示功能。系統(tǒng)設計了相關的硬件電路和
5、相關應用程序。硬件電路主要包括STC89C52單片機最小系統(tǒng),測溫電路、LED顯示電路以及串口通訊模塊電路等。系統(tǒng)程序主要包括主程序,讀出溫度子程序,計算溫度子程序、LED顯示程序等。</p><p> [關鍵詞] STC89C52單片機;DS18B20溫度傳感器;LED顯示電路</p><p><b> 1 引 言 </b></p><p
6、> 1.1 問題的提出 </p><p> 工業(yè)控制是計算機的一個重要應用領域,計算機控制系統(tǒng)正是為了適應這一領域的需要而發(fā)展起來的一門專業(yè)技術,它主要研究如何將計算機技術、通過信息技術和自動控制理論應用于工業(yè)生產過程,并設計出所需要的計算機控制系統(tǒng)。隨著微機測量和控制技術的迅速發(fā)展與廣泛應用,以單片機為核心的溫度采集與控制系統(tǒng)的研發(fā)與應用在很大程度上提高了生產生活中對溫度的控制水平。本設計就是基于單
7、片機STC89C52溫度控制系統(tǒng)的設計,通過本次課程實踐,我們更加的明確了單片機的廣泛用途和使用方法,以及其工作的原理。</p><p> 隨著現(xiàn)代汽車技術的發(fā)展,電子控制技術在汽車上的應用十分廣泛了。本文采用單片機STC89C52設計了溫度實時數(shù)據(jù)采集系統(tǒng),實現(xiàn)對汽車發(fā)動機排溫的實時數(shù)據(jù)采集,用于駕駛者隨時了解車況。單片機STC89C52 能夠根據(jù)溫度傳感器DS18B20 所采集的溫度并通過LED數(shù)碼管顯示出
8、來。</p><p> 通過該課程的學習使我們對計算機控制系統(tǒng)有一個全面的了解、掌握常規(guī)控制算法的使用方法、掌握簡單微型計算機應用系統(tǒng)軟硬的設計方法,進一步鍛煉同學們在微型計算機應用方面的實際工作能力。</p><p><b> 1.2任務與分析 </b></p><p> 本次設計的系統(tǒng)的控制中心是ST89C52單片機。首先,在Prot
9、el軟件環(huán)境中進行硬件電路圖的設計。然后在8052軟件環(huán)境中進行系統(tǒng)的軟件編程,并進行程序源文件的編譯和調試,最后生成.hex文件。此.hex文件是硬件電路運行實現(xiàn)的源代碼來源。把.hex文件加載到ST89C52單片機芯片,然后在Proteus軟件環(huán)境中運行硬件電路,發(fā)動機排溫就可以正常顯示了。 </p><p> 本設計的系統(tǒng)主要由: ST89C52為中央處理芯片,用于數(shù)據(jù)處理,初值設定。DS18B20溫度傳
10、感器是本例的核心模塊,由他提供溫度信息并由LED顯示,用C語言進行編程。本系統(tǒng)可以分為以下4大模塊:</p><p> 1、ST89C52模塊:用于數(shù)據(jù)處理,和外圍的溫度數(shù)據(jù)通信,并控制溫度傳輸過程,采集時間信息并予以處理。</p><p> 2、DS18B20溫度傳感器模塊:可以通過軟件編程來實現(xiàn)溫度信息的采集。</p><p> 3、數(shù)碼管顯示模塊:顯示模
11、塊采用普通的共陽LED數(shù)碼管,此模塊用于實時顯示發(fā)動機排溫信息。</p><p> 4、程序:包括單片機控制溫度傳感器的接口程序(實現(xiàn)單片機和時鐘芯片之間的數(shù)據(jù)傳輸過程)、溫度傳感器數(shù)據(jù)采集程序、單片機外圍串口輸出程序和數(shù)碼管顯示程序。</p><p><b> 2 系統(tǒng)方案設計</b></p><p> 2.1 系統(tǒng)設計方案</p
12、><p> 通過查閱相關資料,和對多個芯片的了解,有多種方案供我選擇,但結構最簡單的采用89C52單片機,DS18B20溫度傳感器組成的系統(tǒng)。</p><p> 此方案在硬件部分采用了89C52單片機,DS18B20溫度傳感器,74HC138芯片,LED顯示器。該系統(tǒng)的最大特點是采用DS18B20溫度傳感器。在功能上進行了擴充,并且使得硬件連線顯得較為簡單,在軟件部分,程序顯得層次分明。&
13、lt;/p><p> 2.2 系統(tǒng)總體框圖</p><p> 圖2-1 系統(tǒng)總體框圖</p><p> 當程序啟動后,程序進入初始化階段。單片機將從DS18B20溫度傳感器中讀出發(fā)動機排溫數(shù)據(jù)。并且經過顯示緩存后送入LED顯示器進行顯示。</p><p> 3 系統(tǒng)硬件電路設計</p><p> 3.1 STC8
14、9C52單片機電路</p><p> 3.1.1 STC89C52簡介</p><p> 目前,51系列單片機在工業(yè)檢測領域中得到了廣泛的應用,因此我們可以在許多單片機應用領域中,配接各種類型的語音接口,構成具有合成語音輸出能力的綜合應用系統(tǒng),以增強人機對話的功能。STC89C52單片機是深圳宏晶科技有限公司生產的一種單片機,在一小塊芯片上集成了一個微型計算機的各個組成部分。每一個單片
15、機包括:一個8位的微型處理器CPU;一個512K的片內數(shù)據(jù)存儲器RAM;4K片內程序存儲器;四個8位并行的I/O接口P0-P3,每個接口既可以輸入,也可以輸出;兩個定時器/記數(shù)器;五個中斷源的中斷控制系統(tǒng);一個全雙工UART的串行I/O口;片內振蕩器和時鐘產生電路,但石英晶體和微調電容需要外接。最高允許振蕩頻率是12MHZ。以上各個部分通過內部總線相連接。</p><p> 圖3-1 89C52單片機引腳圖&l
16、t;/p><p> 3.1.2 STC89C52單片機時序</p><p> STC89C52單片機的一個執(zhí)器周期由6個狀態(tài)(s1—s6)組成,每個狀態(tài)又持續(xù)2個震蕩周期,分為P1和P2兩個節(jié)拍。這樣,一個機器周期由12個振蕩周期組成。若采用12MHz的晶體振蕩器,則每個機器周期為1us,每個狀態(tài)周期為1/6us;在一數(shù)情況下,算術和邏輯操作發(fā)生在N期間,而內部寄存器到寄存器的傳輸發(fā)生在P
17、2期間。對于單周期指令,當指令操作碼讀人指令寄存器時,使從S1P2開始執(zhí)行指令。如果是雙字節(jié)指令,則在同一機器周期的s4讀人第二字節(jié)。若為單字節(jié)指令,則在51期間仍進行讀,但所讀入的字節(jié)操作碼被忽略,且程序計數(shù)據(jù)也不加1。在加結束時完成指令操作。多數(shù)STC89C52指令周期為1—2個機器周期,只有乘法和除法指令需要兩個以上機器周期的指令,它們需4個機器周期。 對于雙字節(jié)單機器指令,通常是在一個機器周期內從程序存儲器中讀人兩個字節(jié),但Mo
18、vx指令例外,Movx指令是訪問外部數(shù)據(jù)存儲器的單字節(jié)雙機器周期指令,在執(zhí)行Movx指令期間,外部數(shù)據(jù)存儲器被訪問且被選通時跳過兩次取指操作。</p><p> 3.1.3 STC89C52單片機引腳介紹</p><p> STC89C52單片機的40個引腳中有2個專用于主電源引腳,2個外接晶振的引腳,4個控制或與其它電源復用的引腳,以及32條輸入輸出I/O引腳。</p>
19、<p> 下面按引腳功能分為4個部分敘述個引腳的功能。</p><p> ?。?)電源引腳Vcc和Vss</p><p> Vcc(40腳):接+5V電源正端;</p><p> Vss(20腳):接+5V電源正端。</p><p> (2)外接晶振引腳XTAL1和XTAL2</p><p> X
20、TAL1(19腳):接外部石英晶體的一端。在單片機內部,它是一個反相放大器的輸入端,這個放大器構成采用外部時鐘時,對于HMOS單片機,該引腳接地;對于CHOMS單片機,該引腳作為外部振蕩信號的輸入端。</p><p> XTAL2(18腳):接外部晶體的另一端。在單片機內部,接至片內振蕩器的反相放大器的輸出端。當采用外部時鐘時,對于HMOS單片機,該引腳作為外部振蕩信號的輸入端。對于CHMOS芯片,該引腳懸空不
21、接。</p><p> ?。?)控制信號或與其它電源復用引腳</p><p> 控制信號或與其它電源復用引腳有RST/VPD、ALE/P、PSEN和EA/VPP等4種形式。</p><p> ?。ˋ).RST/VPD(9腳):RST即為RESET,VPD為備用電源,所以該引腳為單片機的上電復位或掉電保護端。當單片機振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機器周期的高電平
22、,就可實現(xiàn)復位操作,使單片機復位到初始狀態(tài)。</p><p> 當VCC發(fā)生故障,降低到低電平規(guī)定值或掉電時,該引腳可接上備用電源VPD(+5V)為內部RAM供電,以保證RAM中的數(shù)據(jù)不丟失。</p><p> ?。˙).ALE/ P (30腳):當訪問外部存儲器時,ALE(允許地址鎖存信號)以每機器周期兩次的信號輸出,用于鎖存出現(xiàn)在P0口的低</p><p>
23、?。–).PSEN(29腳):片外程序存儲器讀選通輸出端,低電平有效。當從外部程序存儲器讀取指令或常數(shù)期間,每個機器周期PESN兩次有效,以通過數(shù)據(jù)總線口讀回指令或常數(shù)。當訪問外部數(shù)據(jù)存儲器期間,PESN信號將不出現(xiàn)。</p><p> ?。―).EA/Vpp(31腳):EA為訪問外部程序儲器控制信號,低電平有效。當EA端保持高電平時,單片機訪問片內程序存儲器4KB(MS—52子系列為8KB)。若超出該范圍時,自
24、動轉去執(zhí)行外部程序存儲器的程序。當EA端保持低電平時,無論片內有無程序存儲器,均只訪問外部程序存儲器。對于片內含有EPROM的單片機,在EPROM編程期間,該引腳用于接21V的編程電源Vpp。</p><p> (4)輸入/輸出(I/O)引腳P0口、P1口、P2口及P3口</p><p> (A).P0口(39腳~22腳):P0.0~P0.7統(tǒng)稱為P0口。當不接外部存儲器與不擴展I/O
25、接口時,它可作為準雙向8位輸入/輸出接口。當接有外部程序存儲器或擴展I/O口時,P0口為地址/數(shù)據(jù)分時復用口。它分時提供8位雙向數(shù)據(jù)總線。</p><p> 對于片內含有EPROM的單片機,當EPROM編程時,從P0口輸入指令字節(jié),而當檢驗程序時,則輸出指令字節(jié)。</p><p> (B).P1口(1腳~8腳):P1.0~P1.7統(tǒng)稱為P1口,可作為準雙向I/O接口使用。對于MCS—5
26、2子系列單片機,P1.0和P1.1還有第2功能:P1.0口用作定時器/計數(shù)器2的計數(shù)脈沖輸入端T2;P1.1用作定時器/計數(shù)器2的外部控制端T2EX。對于EPROM編程和進行程序校驗時,P0口接收輸入的低8位地址。</p><p> (C).P2口(21腳~28腳):P2.0~P2.7統(tǒng)稱為P2口,一般可作為準雙向I/O接口。當接有外部程序存儲器或擴展I/O接口且尋址范圍超過256個字節(jié)時,P2口用于高8位地址
27、總線送出高8位地址。對于EPROM編程和進行程序校驗時,P2口接收輸入的8位地址。</p><p> (D).P3口(10腳~17腳):P3.0~P3.7統(tǒng)稱為P3口。它為雙功能口,可以作為一般的準雙向I/O接口,也可以將每1位用于第2功能,而且P3口的每一條引腳均可獨立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見下表</p><p> 表3-1 單片機P3.0管腳含義<
28、;/p><p> 綜上所述,MCS—51系列單片機的引腳作用可歸納為以下兩點:</p><p> 1).單片機功能多,引腳數(shù)少,因而許多引腳具有第2功能;</p><p> 2).單片機對外呈3總線形式,由P2、P0口組成16位地址總線;由P0口分時復用作為數(shù)據(jù)總線。</p><p> 3.2 DS18B20溫度傳感器電路</p&g
29、t;<p> 采用一線制數(shù)字溫度傳感器DS18B20來作為本課題的溫度傳感器。傳感器輸出信號進4.7K的上拉電阻直接接到單片機的P1.0引腳上。</p><p> DS18B20溫度傳感器是美國達拉斯(DALLAS)半導體公司推出的應用單總線技術的數(shù)字溫度傳感器。該器件將半導體溫敏器件、A/D轉換器、存儲器等做在一個很小的集成電路芯片上。本設計中溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是
30、在經過多方面比較和考慮后決定的,主要有以下幾方面的原因:</p><p> (1)系統(tǒng)的特性:測溫范圍為-55℃~+125℃ ,測溫精度為士0.5℃;溫度轉換精度9~12位可變,能夠直接將溫度轉換值以16位二進制數(shù)碼的方式串行輸出;12位精度轉換的最大時間為750ms;可以通過數(shù)據(jù)線供電,具有超低功耗工作方式。</p><p> ?。?)系統(tǒng)成本:由于計算機技術和微電子技術的發(fā)展,新型大
31、規(guī)模集成電路功能越來越強大,體積越來越小,而價格也越來越低。一支DS18B20的體積與普通三極管相差無幾,價格只有十元人民幣左右。</p><p> ?。?)系統(tǒng)復雜度:由于DS18B20是單總線器件,微處理器與其接口時僅需占用1個I/O端口且一條總線上可以掛接幾十個DS18B20,測溫時無需任何外部元件,因此,與模擬傳感器相比,可以大大減少接線的數(shù)量,降低系統(tǒng)的復雜度,減少工程的施工量。</p>
32、<p> ?。?)系統(tǒng)的調試和維護:由于引線的減少,使得系統(tǒng)接口大為簡化,給系統(tǒng)的調試帶來方便。同時因為DS18B20是全數(shù)字元器件,故障率很低,抗干擾性強,因此,減少了系統(tǒng)的日常維護工作。</p><p> DS18B20溫度傳感器只有三根外引線:單線數(shù)據(jù)傳輸總線端口DQ ,外供電源線VDD,共用地線GND。DS18B20有兩種供電方式:一種為數(shù)據(jù)線供電方式,此時VDD接地,它是通過內部電容在空閑時
33、從數(shù)據(jù)線獲取能量,來完成溫度轉換,相應的完成溫度轉換的時間較長。這種情況下,用單片機的一個I/O口來完成對DS18B20總線的上拉。另一種是外部供電方式(VDD接+5V),相應的完成溫度測量的時間較短。</p><p> 在本設計中采用外部供電方式實現(xiàn)DS18B20傳感器與單片機的連接,其接口電路如圖所示。</p><p> 圖3-2 溫度傳感器接口</p><p&
34、gt; 3.3 系統(tǒng)電源電路</p><p> 在該溫度控制系統(tǒng)中,其電源電路設計如下圖所示。</p><p> 圖3-3 系統(tǒng)電源模塊</p><p> 3.4 LED顯示電路</p><p> 本課題設計的溫度控制系統(tǒng)是采用8個數(shù)碼管作為顯示模塊,其接口原理圖如下圖所示:</p><p> 圖3-4數(shù)碼
35、管顯示接口電路</p><p> 3.5 串口通訊電路</p><p> 本課題設計的通訊采用的是常見的串口通訊,協(xié)議轉換芯片是采用MAX232A,其接口原理圖如下圖所示:</p><p> 圖3-5串口通訊接口電路</p><p><b> 4 系統(tǒng)軟件設計</b></p><p>
36、4.1 Proteus軟件環(huán)境介紹</p><p> 本系統(tǒng)的硬件設計首先是在Proteus軟件環(huán)境中仿真實現(xiàn)的。Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件,Proteus軟件有十多年的歷史,在全球廣泛使用,除了具有和其它EDA工具一樣的原理布圖、PCB自動或人工布線及電路仿真的功能外,其革命性的功能是,它的電路仿真是互動的。針對微處理器的應用,還可以直接在基于原
37、理圖的虛擬原型上編程,并實現(xiàn)軟件源碼級的實時調試。如果有顯示及輸出,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,還能看到運行后輸入輸出的效果。Proteus建立了完備的電子設計開發(fā)環(huán)境,尤其重要的是Proteus Lite可以完全免費,也可以花微不足道的費用注冊達到更好的效果[2]。</p><p> Proteus是目前最好的模擬單片機外圍器件的工具??梢苑抡?1系列、AVR、PIC等常用的MCU及其外圍電
38、路(如LCD,RAM,ROM,鍵盤,馬達,LED,AD/DA,部分SPI器件,部分IIC器件...)。其實Proteus 與 multisim比較類似,只不過它可以仿真MCU,當然,軟件仿真精度有限,而且不可能所有的器件都找得到相應的仿真模型,用開發(fā)板和仿真器當然是最好選擇,可是初學者擁有它們的可能性比較小。當然,硬件實踐還是必不可少的。在沒有硬件的情況下,Proteus能像pspice 仿真模擬/數(shù)字電路那樣仿真MCU及外圍電路。另外
39、,即使有硬件,在程序編寫早期用軟件仿真一下也是很有必要的。Proteus軟件主要具有以下幾個方面的特點:</p><p> 1、設計和仿真軟件Proteus 是一個很有用的工具,它可以幫助學生和專業(yè)人士提高他們的模擬和數(shù)字電路的設計能力。</p><p> 2、它允許對電路設計采用圖形環(huán)境,在這種環(huán)境中,可以使用一個特定符號來代替元器件,并完成不會對真實電路造成任何損害的電路仿真操作。
40、</p><p> 3、它可以仿真儀表以及可描述在仿真過程中所獲得的信號的圖表。</p><p> 4、它可以仿真目前流行的單片機,如PICS, ATMEL-AVR, MOTOROLA, 8051 等。</p><p> 5、在設計綜合性方案中,還可以利用ARES開發(fā)印制電路板。</p><p> 4.2 Protel軟件環(huán)境介紹&l
41、t;/p><p> Protel印制板設計軟件包是澳大利亞protel technology公司與1990年推出的電子CAD產品,具有方便、易學、實用、快速以及高速度、高步通率的特點。它采用了分層次下拉窗口菜單結構形式,用戶基本上不需要記背太多的鍵盤命令,用鼠標點擊菜單命令就能操作,protel有著很高的自動布線布通率。布通率是電子產CAD產品的一項重要指標,它反映電子元件在電路圖中連接關系有多少能在印刷版圖中實現(xiàn)
42、。在設計常用的單、雙面印制板時只要選擇適當?shù)脑季趾筒季€策略方法,protel就可以輕易的達到98%-100%的布通率。對于極少數(shù)不能布通的定方,protel可以用飛線指示出來,引導用戶用手工方法連通。另外,protel有強大的宏命令設置功能,利用宏命令功能多定義的熱鍵可以大大提高操作速度[1]。</p><p> Protel對微機的軟硬件配置要求很低:cpu在8088以上,dos2.0以上版本,內存640
43、kb以上,雙軟件(或一個軟件一個硬盤),單色顯示器(多層板設計時最好用彩色),各種兼容打印機。也能在Windows9X平臺的模擬DOS下運行。</p><p> Protel已成為印制板設計加工方面的工業(yè)標準。據(jù)初步統(tǒng)計protel在CAD的市場占有率達 95%,成為電子產品制造業(yè)界的首選CAD軟件。</p><p><b> 4.3系統(tǒng)軟件分析</b></
44、p><p> 任何一個應用系統(tǒng),它們都有著自己的硬件系統(tǒng)和軟件系統(tǒng),少了任何一個部分都不可能稱之為一個完整的應用系統(tǒng),它們之間是相互依存的一個整體,硬件系統(tǒng)是軟件系統(tǒng)的一個基礎和前提,為軟件系統(tǒng)提供了一個操作平臺;而軟件系統(tǒng)是硬件系統(tǒng)的靈魂,它對硬件系統(tǒng)起到擴充和完善的作用??上攵浖到y(tǒng)與硬件系統(tǒng)同等重要。</p><p> 本系統(tǒng)的軟件主要是采用C語言,對單片機進行編程實現(xiàn)各項功能。
45、主程序對模塊進行初始化,而后調用讀溫度、處理溫度、顯示等模塊。用的是循環(huán)查詢方式,來顯示和控制溫度,主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值并負責調用各子程序,其程序流程如下圖所示:</p><p> 圖4-1系統(tǒng)程序主流程圖</p><p> 4.3.1溫度采集程序設計過程</p><p> 因為使用了DS18B20溫
46、度傳感器,溫度采集程序只需要從DS18B20溫度傳感器各寄存器中讀出溫度數(shù)據(jù),再處理即可。在首次對DS18B20溫度傳感器進行操作之前,必須對它進行初始化,然后從DS18B20溫度傳感器中讀出數(shù)據(jù),在經過處理后,送給顯示緩沖單元。</p><p> 4.3.1.1讀溫度子程序</p><p> 讀出溫度子程序的主要功能包括初始化,判斷DS18B20是否存在,若存在則進行一系列的讀操,作
47、若不存在則返回。其程序流程圖如下圖所示。</p><p> 圖4-2讀溫度流程圖</p><p> 4.3.1.2計算溫度子程序</p><p> 計算溫度子程序將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如下圖所示。</p><p> 圖4-3 計算溫度子程序流程圖</p><p&
48、gt; 4.3.2 LED顯示方式的設計</p><p> 1、將要顯示的數(shù)據(jù)地址送至P2口,讓LED接收信號。</p><p> 2、通過單片機P1.5-P1.5控制74HC138譯碼器A、B、C輸入端,進行相應的LED位選。</p><p> 表4-1 74HC138譯碼器功能表</p><p> 圖4-4 LED顯示程序流程
49、圖</p><p><b> 5 系統(tǒng)調試過程</b></p><p> 通過上面的硬件設計和軟件設計過程,設計的工作已經基本完成,接下來的工作就是對所設計好的應用系統(tǒng)進行調試。通過調試可以檢查出系統(tǒng)出現(xiàn)的一些錯誤,從而進行下一步的修改。</p><p> 5.1 Protel 99 SE 調試</p><p>
50、 圖 5-1 Protel原理圖</p><p> 圖5-2 ERC電氣規(guī)則檢查結果</p><p> 5.2 keil程序調試</p><p> 程序經過調試顯示“0錯誤,0警告”。表示程序調試通過。</p><p> 圖5-3程序調試通過示意圖</p><p> 5.3 Protues仿真調試<
51、/p><p> 圖5-4 Protues仿真圖</p><p><b> 結 論</b></p><p> 本次設計實現(xiàn)了對發(fā)動機排溫的實時數(shù)據(jù)采集和顯示功能。首次采用了DS18B20溫度傳感器芯片,此芯片穩(wěn)定性好,并且功能強大。而主要單片機89C52單片機,在系統(tǒng)中的作用是實時讀取溫度傳感器采集的溫度信息,并及時的通過LED顯示出來。本系
52、統(tǒng)采用軟件和硬件組合的方法,其最大特點是:硬件電路簡單,安裝方便易于實現(xiàn),軟件設計獨特、可靠。 </p><p> 本次設計只涉及了一部分的功能,可以將之使用在汽車儀表盤的顯示中。在進一步的研究中還可以考慮加入溫度的檢測等功能,相信會使之更加完善。</p><p><b> 致 謝</b></p><p> 在陳飛老師的指導下,我完成了
53、本次設計。本設計從選題到完成,每一步都是在他的指導下完成的,傾注了老師大量的心血。另外,本設計的完成也離不開其他老師和各位同學給我的建議和幫助,是他們讓我明白了團隊合作的精神。在此,我謹向陳飛老師和幫助過我的老師和同學們,表示崇高的敬意和衷心的感謝!</p><p><b> 參考文獻</b></p><p> 1]《Protel99SE EDA 技術及應用》徐崢
54、穎編著,北京:機械工業(yè)出版社,2005</p><p> [2]《單片機系統(tǒng)的protues設計與仿真》張靖武編著,北京:電子工業(yè)出版社,2007</p><p> [3]《單片機原理及接口技術》李朝青編著,北京:北京航空航天大學出版社,2005</p><p> [4]《MCS-51單片機應用開發(fā)實用子程序》邊春遠編著,北京:人民郵電出版社,2005<
55、/p><p> [5] 譚浩強. 《C程序設計》 清華大學出版社,2005</p><p><b> 附件1:系統(tǒng)原理圖</b></p><p> 附件2:系統(tǒng)PCB圖</p><p> 附件3:系統(tǒng)相關程序</p><p><b> 定義變量程序</b></p&
56、gt;<p> #ifndef __include_h</p><p> #define __include_h</p><p> #include <reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned i
57、nt</p><p> #define DataPort P2 //定義數(shù)據(jù)端口 程序中遇到DataPort 則用P0 替換</p><p> #define weixuan P1//通過138譯碼器控制選擇數(shù)碼管</p><p> #define FOSC 11059200 </p><p> #define BAUD 9600
58、</p><p> sbit DQ=P3^5;//ds18b20與單片機連接口</p><p><b> //溫度值</b></p><p> void ds1820disp(uint temp);</p><p> void Timer0_isr(void);</p><p> voi
59、d Init_Timer0(void);</p><p> void DelayUs2x(unsigned char t);</p><p> void DelayMs(unsigned char t);</p><p> void SendByte(uchar dat);</p><p> void SendStr(uchar *s
60、);</p><p> void uartInit(void);</p><p> void Sendsz(uint dat);</p><p> void delay_18B20(unsigned int i);</p><p> void ds1820rst();</p><p> uchar ds182
61、0rd(); </p><p> void ds1820wr(uchar wdata);</p><p> uint read_temp();</p><p><b> #endif</b></p><p><b> 主程序</b></p><p> /******
62、**************主程序***********************************/</p><p> void main()</p><p><b> { </b></p><p> uchar qian, bai,shi,ge;</p><p> uint temp;</p>
63、<p> uartInit(); </p><p><b> while(1)</b></p><p><b> { </b></p><p> temp=read_temp();//18b20讀溫度</p><p> // temp=273;</p>
64、<p> qian=temp/1000;</p><p> bai=temp%1000/100;</p><p> shi=temp%1000%100/10;</p><p> ge=temp%1000%100%10;</p><p> SendByte(qian+0x30); </p><p>
65、; SendByte(bai+0x30);</p><p> SendByte(shi+0x30);SendByte('.');SendByte(ge+0x30);SendByte('\r');</p><p> SendByte('\n');</p><p> ds1820disp(temp);/
66、/調用數(shù)碼管顯示</p><p><b> }</b></p><p><b> }</b></p><p> DS18B20溫度采集程序</p><p> #include "include.h"</p><p> extern tflag
67、;</p><p> /*******************ds18b20程序*********************/</p><p> void delay_18B20(unsigned int i)//延時1微秒</p><p><b> {</b></p><p> while(i--);</p
68、><p><b> }</b></p><p> void ds1820rst()/*ds1820復位*/</p><p> { unsigned char x=0;</p><p> DQ = 1; //DQ復位</p><p> delay_18B20(4); //
69、延時</p><p> DQ = 0; //DQ拉低</p><p> delay_18B20(91); //改1精確延時大于480us</p><p> DQ = 1; //拉高</p><p> delay_18B20(37);//改2 </p><p><b&g
70、t; } </b></p><p> uchar ds1820rd()/*讀數(shù)據(jù)*/</p><p> { unsigned char i=0;</p><p> unsigned char dat = 0;</p><p> for (i=8;i>0;i--)</p><p> {
71、 DQ = 0; //給脈沖信號</p><p><b> dat>>=1;</b></p><p> DQ = 1; //給脈沖信號</p><p><b> if(DQ)</b></p><p> dat|=0x80;</p><p> delay_
72、18B20(9);</p><p><b> }</b></p><p> return(dat);</p><p><b> }</b></p><p> void ds1820wr(uchar wdata)/*寫數(shù)據(jù)*/</p><p> {unsigned c
73、har i=0;</p><p> for (i=8; i>0; i--)</p><p><b> { DQ = 0;</b></p><p> DQ = wdata&0x01;</p><p> delay_18B20(9);</p><p><b> DQ
74、= 1;</b></p><p> wdata>>=1;</p><p><b> }</b></p><p><b> }</b></p><p> uint read_temp()/*讀取溫度值并轉換*/</p><p><b>
75、 {</b></p><p> uchar a=0,b=0;</p><p> uint tvalue=0;</p><p> ds1820rst(); </p><p> ds1820wr(0xcc);//*跳過讀序列號*/</p><p> ds1820wr(0x44);//*啟動溫度
76、轉換*/</p><p> ds1820rst(); </p><p> ds1820wr(0xcc);//*跳過讀序列號*/ </p><p> ds1820wr(0xbe);//*讀取溫度*/ </p><p> a=ds1820rd();</p><p> b=ds1820rd();</p&
77、gt;<p><b> tvalue=b;</b></p><p> tvalue<<=8;</p><p> tvalue=tvalue|a;</p><p> if(tvalue<0x0fff)</p><p><b> tflag=0;</b><
78、/p><p><b> else</b></p><p><b> {</b></p><p> tvalue=~tvalue+1;</p><p><b> tflag=1;</b></p><p><b> }</b>&l
79、t;/p><p> tvalue=tvalue*(0.625);//溫度值擴大10倍,精確到1位小數(shù)</p><p> return(tvalue);</p><p><b> }</b></p><p><b> LED顯示程序</b></p><p> #inclu
80、de "include.h"</p><p> uchar data disdata[8]; //定義一個數(shù)組</p><p> uint temp;</p><p> uchar tflag;//溫度正負標志</p><p> unsigned char code dofly_WeiMa[]={0x1F,
81、0x3F,0x5F,0x7F,0x9F,0xBF,0xDF,0xFF};//分別對應相應的數(shù)碼管點亮,即位碼</p><p> unsigned char code dofly_DuanMa[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};// 顯示段碼值0~F</p><
82、p> /*************溫度值顯示******************************/</p><p> void ds1820disp(uint temp)</p><p><b> { </b></p><p> unsigned char i=0;</p><p><b>
83、; int a,b;</b></p><p><b> if(tflag)</b></p><p><b> {</b></p><p> disdata[0]=0x40;//負號標志</p><p><b> }</b></p><p
84、><b> else</b></p><p><b> {</b></p><p> disdata[0]=dofly_DuanMa[0];</p><p> //s[0]=0+0x30;</p><p><b> }</b></p><
85、;p> a=temp/1000;</p><p> b=temp%1000;</p><p> //s[1]=a+0x30;</p><p> disdata[1]=dofly_DuanMa[a]; //百位溫度</p><p><b> a=b/100;</b></p><p&g
86、t;<b> b=b%100;</b></p><p> disdata[2]=dofly_DuanMa[a];//十位溫度</p><p><b> a=b/10;</b></p><p><b> b=b%10;</b></p><p> disdata[3]=d
87、ofly_DuanMa[a]&(~(0x80)); //個位溫度,帶小數(shù)點</p><p> disdata[4]=dofly_DuanMa[b];</p><p> disdata[5]=0xc6; //</p><p> disdata[6]=0xff;</p><p> disdata[7]=0xff;</p
88、><p> //Sendsz(temp);</p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p> //清空數(shù)據(jù),防止有交替重影</p><p> weixuan=dofly_WeiMa[i]; //取位碼 </p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 發(fā)動機排溫采集系統(tǒng)課程設計
- 發(fā)動機排溫采集系統(tǒng)課程設計.docx
- 發(fā)動機課程設計
- 發(fā)動機課程設計--發(fā)動機慢加速
- 發(fā)動機結構課程設計
- 發(fā)動機課程設計-活塞設計
- 發(fā)動機課程設計-活塞連桿設計
- 課程設計-- 發(fā)動機轉速電控系統(tǒng)設計及仿真
- 降低氣體發(fā)動機排溫的策略研究.pdf
- [學習]發(fā)動機電控系統(tǒng)檢修課程設計
- 發(fā)動機課程設計---燃氣渦輪發(fā)動機熱力計算
- 發(fā)動機設計課程設計(說明書)
- 活塞組課程設計--發(fā)動機活塞組設計
- 發(fā)動機設計課程設計說明書
- 《汽車發(fā)動機構造與維修》課程設計
- 《汽車電子》課程設計--發(fā)動機定轉速換擋系統(tǒng)模擬設計
- 焊接課程設計---發(fā)動機排氣管的焊接
- 汽車及發(fā)動機制造工藝課程設計
- 發(fā)動機參數(shù)采集器系統(tǒng)設計與研究.pdf
- 發(fā)動機設計課程設計---195柴油機連桿設計
評論
0/150
提交評論