2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  基于單片機(jī)的溫度控制</p><p><b>  摘 要</b></p><p>  本文主要通過(guò)溫度傳感(DS18B20)采集溫度信號(hào),首先是對(duì)DS18B20的深入了解并根據(jù)DS18B20的內(nèi)部結(jié)構(gòu)來(lái)設(shè)計(jì)硬件電路和軟件電路的,因思考到溫度TH和TL,所以本次設(shè)計(jì)采用了4個(gè)按鍵來(lái)控制,通過(guò)按鍵之間的協(xié)調(diào)來(lái)溫度設(shè)定值,由于溫度的不同,我們采用不同

2、的信息來(lái)作為信號(hào)處理,所以硬件電路中用蜂鳴器來(lái)報(bào)警提醒。本系統(tǒng)包括溫度傳感器,數(shù)據(jù)傳輸模塊,溫度顯示模塊和溫度調(diào)節(jié)驅(qū)動(dòng)電路其中溫度傳感器為數(shù)字溫度傳感器DS18B20,包括了單總線數(shù)據(jù)輸出電路部分。文中對(duì)每個(gè)部分功能、實(shí)現(xiàn)過(guò)程作了詳細(xì)介紹。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī)STC89C52RC 溫度傳感(DS18B20) 按鍵設(shè)定控制</p><p><b>  Abstrac

3、t</b></p><p>  This paper DS18B20 done mainly through sensors to measure temperature and throught it to set the temperature.DS18B20 is the frist in_depth understanding of and in accordance with the int

4、ernal strucrure of DS18B20 to design hardware and software.by taking into account the temperature settings TH and TL so this design uses four buttons to control,through the coordinating role between information to differ

5、ent as signal,processing.hardware Circu it used as a warning to reind the buzzer </p><p>  This system include temperature sensor and data transmission, the module displays module and thermoregulation driven

6、 circuit from the sensors into figures of the temperature sensors ds18b20, including a list of the data output circuit. the text of every part of the functions and procedure at present.</p><p>  Keyword:TDP

7、stc89c52rc the controller DS18B20 schematics and procedures</p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>

8、  目 錄III</b></p><p><b>  第一章 緒論1</b></p><p>  第二章 各元器件介紹3</p><p>  2.1 8051系列芯片中STC89 52RC簡(jiǎn)介3</p><p>  2.2 74HC245N介紹…………………………………………………………………………

9、………………………………4</p><p>  2.3 74HC573介紹……………………………………………………………………………………………………………5</p><p>  2.4 DS18B20介紹……………………………………………………………………………………………………………5</p><p>  第三章 各模塊電路設(shè)計(jì)及分析6</p>

10、<p><b>  3.1電源電路7</b></p><p>  3.1.2 lm7805應(yīng)用電路8</p><p>  3.2 數(shù)碼管顯示電路設(shè)計(jì)9</p><p>  3.3 復(fù)位電路10</p><p>  3.3.1 復(fù)位電路的工作原理10</p><p>  3.4

11、溫度設(shè)定電路11</p><p>  第四章 軟件程序功能及分析13</p><p>  4.1 軟件設(shè)計(jì)總流程………………………………………………………………………………………………………清M8B202U0wfj13</p><p>  4.1.1軟件設(shè)計(jì)總流程圖13</p><p>  4.2 DS18B20數(shù)據(jù)采集及轉(zhuǎn)化算法1

12、4</p><p>  4.2.1數(shù)據(jù)采集及算法轉(zhuǎn)化14</p><p>  4.3按鍵設(shè)定部分……………………………………………………………………………………………………………16</p><p>  4.3.1按鍵設(shè)定部分C程序流程圖…………………………………………………………………………16</p><p><b>  第五

13、章 總結(jié)18</b></p><p><b>  參考文獻(xiàn)19</b></p><p>  致 謝20</p><p>  附錄 ………………………………………………………………………………………………………………………………… 21</p><p>  附錄1 電路圖…………………………………

14、………………………………………………………………………………… 21</p><p>  附錄2 程序 ………………………………………………………………………………………………………………………22</p><p><b>  緒論</b></p><p>  溫度是工業(yè)生產(chǎn)中主要的被控參數(shù)之一,與之相關(guān)的各種溫度控制系統(tǒng)廣泛應(yīng)用于冶金、化工、

15、機(jī)械、食品等領(lǐng)域。溫度控制是工業(yè)生產(chǎn)過(guò)程中經(jīng)常遇到的過(guò)程控制,有些工藝過(guò)程對(duì)其溫度的控制效果直接影響著產(chǎn)品的質(zhì)量,因而設(shè)計(jì)一種較為理想的溫度控制系統(tǒng)是非常有價(jià)值的。</p><p>  溫度控制系統(tǒng)廣泛應(yīng)用于社會(huì)生活的各個(gè)領(lǐng)域,在冶金工業(yè)、化工生產(chǎn)、電力工程、造紙行業(yè)、機(jī)械制造和食品加工等諸多領(lǐng)域中,人們都需要對(duì)各類加熱爐、熱處理爐、反應(yīng)爐和鍋爐中的溫度進(jìn)行檢測(cè)和控制 ,常用的控制電路根據(jù)應(yīng)用場(chǎng)合和所要求的性能指

16、標(biāo)有所不同 , 在工業(yè)企業(yè)中,如何提高溫度控制對(duì)象的運(yùn)行性能一直以來(lái)都是控制人員和現(xiàn)場(chǎng)技術(shù)人員努力解決的問(wèn)題。這類控制對(duì)象慣性大,滯后現(xiàn)象嚴(yán)重,存在很多不確定的因素,難以建立精確的數(shù)學(xué)模型,從而導(dǎo)致控制系統(tǒng)性能不佳,甚至出現(xiàn)控制不穩(wěn)定、失控現(xiàn)象。采用數(shù)字溫度傳感器DS18B20,因其內(nèi)部集成了A/D轉(zhuǎn)換器,使得電路結(jié)構(gòu)更加簡(jiǎn)單,而且減少了溫度測(cè)量轉(zhuǎn)換時(shí)的精度損失,使得測(cè)量溫度更加精確。數(shù)字溫度傳感器DS18B20只用一個(gè)引腳即可與單片機(jī)

17、進(jìn)行通信,大大減少了接線的麻煩,使得單片機(jī)更加具有擴(kuò)展性。由于DS18B20芯片的小型化,更加可以通過(guò)單跳數(shù)據(jù)線就可以和主電路連接,故可以把數(shù)字溫度傳感器DS18B20做成探頭,探入到狹小的地方,增加了實(shí)用性。更能串接多個(gè)數(shù)字溫度傳感器DS18B20進(jìn)行范圍的溫度檢測(cè)。采用單片機(jī)來(lái)對(duì)他們控制不僅具有控制方便,簡(jiǎn)單和靈活性大等優(yōu)點(diǎn)</p><p>  (1)第一階段(1976-1978):?jiǎn)纹瑱C(jī)的控索階段。以Int

18、el公司的MCS – 48為代表。MCS – 48的推出是在工控領(lǐng)域的控索,參與這一控索的公司還有Motorola 、Zilog等,都取得了滿意的效果。這就是SCM的誕生年代,“單機(jī)片”一詞即由此而來(lái)。(2)第二階段(1978-1982)單片機(jī)的完善階段。Intel公司在MCS – 48 基礎(chǔ)上推出了完善的、典型的單片機(jī)系列MCS –51。它在以下幾個(gè)方面奠定了典型的通用總線型單片機(jī)體系結(jié)構(gòu)。①完善的外部總線。MCS-51設(shè)置了經(jīng)典

19、的8位單片機(jī)的總線結(jié)構(gòu),包括8位數(shù)據(jù)總線、16位地址總線、控制總線及具有很多機(jī)通信功能的串行通信接口。 ②CPU外圍功能單元的集中管理模式。 ③體現(xiàn)工控特性的位地址空間及位操作方式。 ④指令系統(tǒng)趨于豐富和完善,并且增加了許多突出控制功能的指令。(3)第三階段(1982-1990):8位單片機(jī)的鞏固發(fā)展及16位單片機(jī)的推出階段,也是單片機(jī)向微控制器發(fā)展的階段。Intel公司推出的MCS – 96系列單片機(jī),

20、將一些用于測(cè)控系統(tǒng)的模數(shù)轉(zhuǎn)換器、程序運(yùn)行監(jiān)視器、脈寬調(diào)制</p><p>  第二章 各元器件介紹</p><p>  2.1 8051系列芯片中STC89C52RC簡(jiǎn)介</p><p>  圖2.1 8051芯片</p><p>  STC89C52RC有PDIP封裝和PLCC封裝,本設(shè)計(jì)采用PDIP40封裝型號(hào);</p>&

21、lt;p>  I/O口引腳---P0口;P1口和P2口P3口。</p><p>  電源和時(shí)鐘引腳.VCC(40腳)GND(20腳)常壓為+5V,低壓為+3.3V。</p><p>  XTAL1(19腳);XTAL2(18腳)----外接時(shí)鐘引腳。XTAL1為片內(nèi)振蕩電路的輸入端。 XTAL2為片內(nèi)振蕩電路的輸出端,8051的時(shí)鐘有兩種方式,一種是片內(nèi)振蕩方式,需要在這兩個(gè)引腳接石

22、英晶體和振蕩電容, 振蕩電容的值一般選擇為10P~~30P。另一種外部時(shí)鐘方式即XTAL1接地,外部時(shí)鐘信號(hào)從XTAL2腳輸入。</p><p>  RST(9腳)---單片機(jī)的復(fù)位引腳。</p><p>  P0口(39腳~~32腳)—雙向8位I/O口,每個(gè)口可以獨(dú)立控制。51單片機(jī)PO口內(nèi)部沒(méi)有上拉電阻,為高阻狀態(tài),所以不能正常的輸出高低電平,因此該組I/O口在使用的時(shí)候務(wù)必要接上拉電

23、阻,一般我們采用接入10K的上拉電阻。</p><p>  P1口(1腳~8腳)---準(zhǔn)雙向8位I/O口。每個(gè)口可以獨(dú)立操作控制,內(nèi)帶上拉電阻,這種接口輸出沒(méi)有高阻狀態(tài),輸入也不能鎖存,固然不是真正的雙向I/O口,之所以稱它為” 準(zhǔn)雙向”是因?yàn)樵摽谠谧鳛檩斎胧褂们耙认蛟摽谶M(jìn)行寫一操作,然后單片機(jī)內(nèi)部才可以正確讀出外部信號(hào),也就是要使其先要有個(gè)準(zhǔn)備過(guò)程,所以才稱準(zhǔn)雙向口。對(duì)52單片機(jī)的P1.0引腳的第二功能為T2

24、定時(shí)器的外部輸入,P1.1引腳的第二功能為T2EX捕捉,重裝觸發(fā),即T2的外部控制器。</p><p>  P2口(21腳~~28腳)---準(zhǔn)雙向8位I/O口,每個(gè)口都可以獨(dú)立操作控制,內(nèi)帶上拉電阻,與P1口相似。</p><p>  P3口(10腳~~17腳)----準(zhǔn)雙向8位I/O口,每個(gè)口可以獨(dú)立操作控制,內(nèi)帶上拉電阻,作為第一功能使用時(shí)就當(dāng)作普通I/O口,與P1口相似。作為第二功能

25、使用時(shí),各引腳的定義如表:值得強(qiáng)調(diào)的是,P3口的每一個(gè)引腳均可以獨(dú)立定義為第一功能的輸入/輸出或第二功能</p><p>  P3口引腳第二功能定義</p><p>  2.2 74HC245N的介紹</p><p>  74HC245是一款高速CMOS器件,74HC245引腳兼容低功耗肖特基TTL(LSTTL)系列。</p><p>  7

26、4HC245八路收發(fā)器在發(fā)送和接收兩個(gè)方向上都具有正相三態(tài)總線兼容輸出。74HC245的輸出使能端(OE)用于實(shí)現(xiàn)輕松級(jí)聯(lián),而發(fā)送/接收端(DIR)用于控制方向。OE控制輸出,使得總線被有效的隔離。</p><p>  74HC245與74HC640邏輯功能相似,但74HC245具有原碼(正相)輸出。</p><p>  74HC245 特性 </p><p>&l

27、t;b>  八路雙向總線接口 </b></p><p><b>  正相三態(tài)輸出 </b></p><p><b>  可選多種封裝類型 </b></p><p>  兼容JEDEC標(biāo)準(zhǔn)no.7A </p><p><b>  ESD保護(hù) </b></p

28、><p>  HBM EIA/JESD22-A114-B超過(guò)2000 V </p><p>  MM EIA/JESD22-A115-A超過(guò)200 V </p><p><b>  溫度范圍 </b></p><p>  -40~+85 ℃ -40~+125 ℃</p><p>  2.3 7

29、4HC573鎖存器介紹</p><p><b>  ·三態(tài)總線驅(qū)動(dòng)輸出</b></p><p><b>  ·置數(shù)全并行存取</b></p><p><b>  ·緩沖控制輸入</b></p><p>  ·使能輸入有改善抗擾度的滯后作用

30、</p><p><b>  原理說(shuō)明:</b></p><p>  M54HC563/74HC563/M54HC573/74HC573的八個(gè)鎖存器都是透明的D 型鎖存器,當(dāng)使能(G)為高時(shí),Q 輸出</p><p>  將隨數(shù)據(jù)(D)輸入而變。當(dāng)使能為低時(shí),輸出將鎖存在已建立的數(shù)據(jù)電平上。輸出控制不影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至

31、當(dāng)輸出被關(guān)閉時(shí),</p><p>  新的數(shù)據(jù)也可以置入。這種電路可以驅(qū)動(dòng)大電容或低阻抗負(fù)載,可以直接與系統(tǒng)總線接口并驅(qū)動(dòng)總線,而不需要外接口。特別適用于緩沖寄存器,I/O 通道,雙向總線驅(qū)動(dòng)器和工作寄存器。</p><p>  2.4 DS18B20單總線數(shù)字溫度計(jì)溫度器簡(jiǎn)介</p><p>  溫度作為一種最基本的環(huán)境條件參數(shù),與工業(yè)、農(nóng)業(yè)、養(yǎng)殖業(yè)的生產(chǎn)以及醫(yī)學(xué)

32、乃至人們的日常生活都是緊密相關(guān)的。因此,對(duì)于溫度的測(cè)量方法與測(cè)溫裝置的研究就凸顯得非常重要。由單片機(jī)與溫度傳感器構(gòu)成的測(cè)溫系統(tǒng)可廣泛應(yīng)用于很多領(lǐng)域。本文通過(guò)對(duì)單總線數(shù)字集成溫度傳感器DS18B20的特點(diǎn)、工作原理和使用方法的討論,結(jié)合對(duì)單片機(jī)AT89S52的編程實(shí)現(xiàn)溫度的采集。</p><p>  大多單片機(jī)接口輸入的信號(hào)是數(shù)字信號(hào),或帶有A/D 轉(zhuǎn)換的高端單片機(jī)也可輸入模擬信號(hào)。由單片機(jī)獲取非電信號(hào)的溫度信息,

33、必須通過(guò)溫度傳感器。傳統(tǒng)的溫度測(cè)量多以熱敏電阻作為溫度傳感器。但是,熱敏電阻的可靠性較差、測(cè)量溫度精度低,而且還需經(jīng)A/D轉(zhuǎn)換成數(shù)字信號(hào)后才能由單片機(jī)進(jìn)行處理。因此,使用數(shù)字溫度傳感器可簡(jiǎn)化硬件設(shè)計(jì)、方便單片機(jī)讀取數(shù)據(jù)、節(jié)約成本。設(shè)計(jì)單片機(jī)數(shù)字溫度計(jì)需要考慮以下3 個(gè)方面:</p><p>  (1)溫度傳感器芯片的選擇;</p><p>  (2)單片機(jī)和溫度傳感器的接口電路設(shè)計(jì);<

34、;/p><p>  (3)控制溫度傳感器實(shí)現(xiàn)溫度信息采集以及數(shù)據(jù)傳輸?shù)能浖?lt;/p><p>  DS18B20 是美國(guó)達(dá)拉斯(Dallas)公司的單線數(shù)字溫度傳感器芯片,與傳統(tǒng)的熱敏電阻不同,DSl8B20 可直接將被測(cè)溫度轉(zhuǎn)換為串行數(shù)字信號(hào),供單片機(jī)處理。通過(guò)對(duì)DSl8B20 編程可以實(shí)現(xiàn)9~12 位的溫度讀數(shù),并可分別在93.75ms 和750ms 內(nèi)完成9 位和12 位的數(shù)字量。其測(cè)溫范

35、圍-55℃~+125℃,最大分辨率為0.0625℃,在-10℃~+85℃范圍內(nèi)其測(cè)溫準(zhǔn)確度為±0.5℃。DS18B20 具有體積小、功耗低、抗干擾能力強(qiáng)、易與微處理器連結(jié)等特點(diǎn),而且它無(wú)需任何外圍硬件即可方便地進(jìn)行溫度測(cè)量,與單片機(jī)交換信息僅需要一根I/O 口線,其讀寫及溫度轉(zhuǎn)換的功率也可來(lái)源于數(shù)據(jù)總線,而無(wú)需額外電源。另外,每片DSl8B20 都設(shè)有唯一的產(chǎn)品序列號(hào),存放在它的內(nèi)部ROM 中,單片機(jī)通過(guò)簡(jiǎn)單的協(xié)議就能識(shí)別這個(gè)

36、序列號(hào)。因此,多個(gè)DSl8B20 可以掛接于同一條單線總線上,特別適合構(gòu)成多點(diǎn)溫度測(cè)控系統(tǒng)。</p><p>  DS18B20 性能特點(diǎn)</p><p>  (1)獨(dú)特的單線接口,僅需1 個(gè)I/O 口引腳即可通信,無(wú)需變換其它電路,直接輸出被測(cè)溫度值的數(shù)字信號(hào);</p><p>  (2)多點(diǎn)(multidrop)能力使分布式溫度檢測(cè)應(yīng)用得以簡(jiǎn)化;</p&g

37、t;<p>  (3)不需要外部元件;</p><p>  (4)既可用數(shù)據(jù)線供電,也可采用外部電源供電;</p><p>  (5)零待機(jī)功耗,不需備份電源;</p><p>  (6)測(cè)量范圍為-55~+125℃,固有測(cè)溫分辨率為0.5℃;</p><p>  (7)通過(guò)編程可實(shí)現(xiàn)9~12 位的數(shù)字讀數(shù)方式;</p&g

38、t;<p>  (8)溫度數(shù)字量轉(zhuǎn)換時(shí)間200ms(典型值);</p><p>  (9)用戶可定義非易失性的溫度告警設(shè)置;</p><p>  (10)警告搜索命令能識(shí)別和尋址溫度在編定的極限之外的器件(溫度警告情況);</p><p>  (11)應(yīng)用范圍包括恒溫控制、工業(yè)系統(tǒng)、消費(fèi)類產(chǎn)品、溫度計(jì)或任何熱敏系統(tǒng)[2]。</p><

39、;p><b>  預(yù)處理</b></p><p>  DS18B20 采用3 腳TO-92 封裝或8 腳SOIC 封裝,其外部形狀及管腳圖如圖1 所示。</p><p>  圖中①GND 為地,②DQ 為數(shù)據(jù)輸入/輸出端,該腳為漏極開(kāi)路輸出,常態(tài)下呈高電平,③</p><p>  可選用的VDD 引腳,不用時(shí)應(yīng)接地。SOIC 封裝的NC

40、為空引腳。</p><p>  第三章 各模塊電路設(shè)計(jì)及分析</p><p><b>  3.1電源電路</b></p><p>  3.1.1 電源電路框圖及設(shè)計(jì)</p><p>  圖3.1電源電路框圖</p><p>  在實(shí)際應(yīng)用中,應(yīng)在三端集成穩(wěn)壓電路上安裝足夠大的散熱器(當(dāng)然小功率 的

41、條件下不用)。當(dāng)穩(wěn)壓管溫度過(guò)高時(shí),穩(wěn)壓性能將變差,甚至損壞。</p><p>  當(dāng)制作中需要一個(gè)能輸出1.5A以上電流的穩(wěn)壓電源,通常采用幾塊三端穩(wěn)壓電路并聯(lián)起來(lái),使其最大輸出電流為N個(gè)1.5A,但應(yīng)用時(shí)需注意:并聯(lián)使用的集成穩(wěn)壓電路應(yīng)采用同一廠家、同一批號(hào)的產(chǎn)品,以保證參數(shù)的一致。另外在輸出電流上留有一定的余量,以避免個(gè)別集成穩(wěn)壓電路失效時(shí)導(dǎo)致其他電路的連鎖燒毀。</p><p>  

42、在lm78 ** 、lm79 ** 系列三端穩(wěn)壓器中最常應(yīng)用的是TO-220 和TO-202 兩種封裝。這兩種封裝的圖形以及引腳序號(hào)、引腳功能如附圖所示。</p><p>  圖中的引腳號(hào)標(biāo)注方法是按照引腳電位從高到底的順序標(biāo)注的。這樣標(biāo)注便于記憶。引腳①為最高電位,③腳為最低電位,②腳居中。從圖中可以看出,不論正壓還是負(fù)壓,②腳均為輸出端。對(duì)于lm78**正壓系列,輸入是最高電位,自然是①腳,地端為最低電位,即

43、③腳,如附圖所示。對(duì)與lm79**負(fù)壓系列,輸入為最低電位,自然是③腳,而地端為最高電位,即①腳。 </p><p>  此外,還應(yīng)注意,散熱片總是和最低電位的第③腳相連。這樣在lm78**系列中,散熱片和地相連接,而在lm79**系列中,散熱片卻和輸入端相連接。</p><p>  3.1.2 lm7805應(yīng)用電路</p><p>  lm78XX系列集成穩(wěn)壓器的

44、典型應(yīng)用電路圖,是一個(gè)輸出正5V直流電 壓的穩(wěn)壓電源電路。IC采集成穩(wěn)壓器lm7805,C1、C2輸出端濾波電容。當(dāng)輸出電流較大時(shí),lm7805應(yīng)配上散熱板。本畢業(yè)設(shè)計(jì)采用變壓器220/6V變壓再經(jīng)過(guò)橋式整流電容濾波使得輸出為穩(wěn)定的直流供電。</p><p><b>  74hc138介紹</b></p><p>  74HC138是一款高速CMOS器件,74HC13

45、8引腳兼容低功耗肖特基TTL(LSTTL)系列。 </p><p>  74HC138譯碼器可接受3位二進(jìn)制加權(quán)地址輸入(A0, A1和A3),并當(dāng)使能時(shí),提供8個(gè)互斥的低有效輸出(Y0至Y7)。74HC138特有3個(gè)使能輸入端:兩個(gè)低有效(E1和E2)和一個(gè)高有效(E3)。除非E1和E2置低且E3置高,否則74HC138將保持所有輸出為高。利用這種復(fù)合使能特性,僅需4片74HC138芯片和1個(gè)反相器,即可輕松實(shí)

46、現(xiàn)并行擴(kuò)展,組合成為一個(gè)1-32(5線到32線)譯碼器。任選一個(gè)低有效使能輸入端作為數(shù)據(jù)輸入,而把其余的使能輸入端作為選通端,則74HC138亦可充當(dāng)一個(gè)8輸出多路分配器,未使用的使能輸入端必須保持綁定在各自合適的高有效或低有效狀態(tài)。</p><p>  74HC138與74HC238邏輯功能一致,只不過(guò)74HC138為反相輸出。 </p><p>  CD74HC138 ,CD74HC2

47、38和CD74HCT138 , CD74HCT238是高速硅柵CMOS解碼器,適合內(nèi)存地址解碼或數(shù)據(jù)路由應(yīng)用。74HC138 作用原理于高性能的存貯譯碼或要求傳輸延遲時(shí)間短的數(shù)據(jù)傳輸系統(tǒng),在 高性能存貯器系統(tǒng)中,用這種譯碼器可以提高譯碼系統(tǒng)的效率。將快速賦能電路用于高速存貯器時(shí),譯碼器的延遲時(shí)間和存貯器的賦能時(shí)間通常小于存貯器的典型存取時(shí)間,這就是說(shuō)由肖特基鉗位的系統(tǒng)譯碼器所引起的有效系統(tǒng)延遲可以忽略不計(jì)。HC138 按照三位二進(jìn)制輸入

48、碼和賦能輸入條件,從8 個(gè)輸出端中譯出一個(gè) 低電平輸出。兩個(gè)低電平有效的賦能輸入端和一個(gè)高電平有效的賦能輸入端減少了擴(kuò)展所需要的外接門或倒相器,擴(kuò)展成24 線譯碼器不需外接門;擴(kuò)展成32 線譯碼器,只需要接一個(gè)外接倒相器。在解調(diào)器應(yīng)用中,賦能輸入端可用作數(shù)據(jù)輸入端。</p><p>  復(fù)合使能輸入,輕松實(shí)現(xiàn)擴(kuò)展 兼容JEDEC標(biāo)準(zhǔn)no.7A 存儲(chǔ)器芯片譯碼選擇的理想選擇 低有效互斥輸出 ESD保護(hù) HBM。&l

49、t;/p><p>  EIA/JESD22-A114-C超過(guò)2000 V MM EIA/JESD22-A115-A超過(guò)200 V 溫度范圍 -40~+85 ℃ -40~+125 ℃ 多路分配功能。</p><p>  3.2 數(shù)碼管顯示電路設(shè)計(jì)</p><p><b>  圖3.2顯示電路圖</b></p><p>  使用

50、LED顯示器時(shí),要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或字符,必須對(duì)數(shù)字或字符進(jìn)行編碼。七段數(shù)碼管加上一個(gè)小數(shù)點(diǎn),共計(jì)8段。因此為L(zhǎng)ED顯示器提供的編碼正好是一個(gè)字節(jié)。TX實(shí)驗(yàn)板用共陰LED顯示器,根據(jù)電路連接圖顯示16進(jìn)制數(shù)的編碼已列在下表。 </p><p><b>  共陰數(shù)碼管碼表</b></p><p>  0x3f , 0x06 , 0x5b , 0

51、x4f , 0x66 , 0x6d ,</p><p>  0 1 2 3 4 5</p><p>  0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,</p><p>  6 7 8 9 A B</p&g

52、t;<p>  0x39 , 0x5e , 0x79 , 0x71 , 0x00</p><p>  C D E F 無(wú)顯示</p><p><b>  靜態(tài)顯示方式</b></p><p>  LED顯示器工作方式有兩種:靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。靜態(tài)顯示的特點(diǎn)

53、是每個(gè)數(shù)碼管的段選必須接一個(gè)8位數(shù)據(jù)線來(lái)保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點(diǎn)是占用CPU時(shí)間少,顯示便于監(jiān)測(cè)和控制。缺點(diǎn)是硬件電路比較復(fù)雜,成本較高。</p><p><b>  動(dòng)態(tài)顯示 </b></p><p>  動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼

54、管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺(jué)暫留作用,使人的感覺(jué)好像各位數(shù)碼管同時(shí)都在顯示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。 </p><p><b>  3.3 復(fù)位電路</b></p><p>  單片機(jī)復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機(jī),

55、按下重啟按鈕電腦內(nèi)部的程序從頭開(kāi)始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時(shí)候,按下復(fù)位按鈕內(nèi)部的程序自動(dòng)從頭開(kāi)始執(zhí)行。單片機(jī)復(fù)位電路如下圖:</p><p><b>  圖3.3復(fù)位電路</b></p><p>  3.3.1 復(fù)位電路的工作原理</p><p>  51單片機(jī)要復(fù)位只需要在第9引腳接個(gè)高電平持續(xù)2

56、US就可以實(shí)現(xiàn),在單片機(jī)系統(tǒng)中,系統(tǒng)上電啟動(dòng)的時(shí)候復(fù)位一次,當(dāng)按鍵按下的時(shí)候系統(tǒng)再次復(fù)位,如果釋放后再按下,系統(tǒng)還會(huì)復(fù)位。所以可以通過(guò)按鍵的斷開(kāi)和閉合在運(yùn)行的系統(tǒng)中控制其復(fù)位。</p><p>  在電路圖中,電容的的大小是10uF,電阻的大小是10k。所以根據(jù)公式,可以算出電容充電到電源電壓的0.7倍(單片機(jī)的電源是5V,所以充電到0.7倍即為3.5V),需要的時(shí)間是10K*10UF=0.1S。</p&g

57、t;<p>  也就是說(shuō)在電腦啟動(dòng)的0.1S內(nèi),電容兩端的電壓時(shí)在0~3.5V增加。這個(gè)時(shí)候10K電阻兩端的電壓為從5~1.5V減少(串聯(lián)電路各處電壓之和為總電壓)。所以在0.1S內(nèi),RST引腳所接收到的電壓是5V~1.5V。在5V正常工作的51單片機(jī)中小于1.5V的電壓信號(hào)為低電平信號(hào),而大于1.5V的電壓信號(hào)為高電平信號(hào)。所以在開(kāi)機(jī)0.1S內(nèi),單片機(jī)系統(tǒng)自動(dòng)復(fù)位(RST引腳接收到的高電平信號(hào)時(shí)間為0.1S左右)。<

58、;/p><p>  按鍵按下的時(shí)候?yàn)槭裁磿?huì)復(fù)位</p><p>  在單片機(jī)啟動(dòng)0.1S后,電容C兩端的電壓持續(xù)充電為5V,這是時(shí)候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時(shí)候,開(kāi)關(guān)導(dǎo)通,這個(gè)時(shí)候電容兩端形成了一個(gè)回路,電容被短路,所以在按鍵按下的這個(gè)過(guò)程中,電容開(kāi)始釋放之前充的電量。隨著時(shí)間的推移,電容的電壓在0.1S內(nèi),從5V釋放到變?yōu)榱?.5V,甚至

59、更小。根據(jù)串聯(lián)電路電壓為各處之和,這個(gè)時(shí)候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平。單片機(jī)系統(tǒng)自動(dòng)復(fù)位。</p><p>  復(fù)位電路的原理是單片機(jī)RST引腳接收到2US以上的電平信號(hào),只要保證電容的充放電時(shí)間大于2US,即可實(shí)現(xiàn)復(fù)位,所以電路中的電容值是可以改變的。</p><p>  按鍵按下系統(tǒng)復(fù)位,是電容處于一個(gè)短路電路中,釋放了所有的電能,電阻兩端的

60、電壓增加引起的。</p><p>  3.4 溫度設(shè)定電路</p><p>  圖3.4溫度設(shè)定電路圖</p><p>  設(shè)計(jì)按鍵設(shè)定采用C程序完成(C程序介紹部分再說(shuō)),去抖動(dòng)設(shè)置等都由C程序完成。不需要外圍煩瑣的外部接口電路,設(shè)置簡(jiǎn)單經(jīng)濟(jì)實(shí)惠,在電子市場(chǎng)隨處可買到四芯常開(kāi)按鈕,結(jié)構(gòu)輕巧,按鍵靈活。</p><p><b>  

61、說(shuō)明:</b></p><p>  數(shù)碼管顯示設(shè)定值,變化范圍00~99,開(kāi)始時(shí)顯示30,每按一下JIAYI按鍵一次,數(shù)值加一,每按一下JIANYI按鍵設(shè)定數(shù)值減一,按一下GUILING鍵數(shù)值歸零,每按一下ZIJIA+SUODING按鍵,利用定時(shí)器功能開(kāi)始自動(dòng)每秒加一,再按一下ZIJIA+SUODING鍵數(shù)值停止自動(dòng)加一保持顯示原數(shù)。設(shè)定值都設(shè)定為無(wú)符號(hào)整形變量與溫度傳感器傳回的數(shù)值進(jìn)行比較同時(shí)做出相

62、應(yīng)報(bào)警信號(hào)提示。</p><p>  第四章 軟件程序功能及分析</p><p>  4.1 軟件設(shè)計(jì)總流程</p><p>  4.1.1 軟件設(shè)計(jì)總流程圖</p><p>  圖4.1 軟件設(shè)計(jì)總流程圖</p><p><b>  分析:</b></p><p>  程

63、序從主函數(shù)開(kāi)始先進(jìn)行初始化,DS18B20是一個(gè)數(shù)字集成的溫度轉(zhuǎn)化芯片,對(duì)當(dāng)前溫度進(jìn)行轉(zhuǎn)化處理。同時(shí)DS18B20是以一線總線傳輸?shù)男问絺鹘oSTC89C52,再STC89C52譯碼轉(zhuǎn)換到數(shù)碼管顯示當(dāng)前溫度,人工按鍵設(shè)定溫度值是以數(shù)碼管顯示的形式直觀地反應(yīng)設(shè)定的報(bào)警溫度,使用者可以根據(jù)要求設(shè)定報(bào)警溫度(0-99度可調(diào)),STC89C52根據(jù)人工按鍵設(shè)定值與當(dāng)前溫度值進(jìn)行比較,若當(dāng)前溫度值高于設(shè)定值則報(bào)警電路反應(yīng),有效的實(shí)施監(jiān)控,本程序通過(guò)

64、一些常用語(yǔ)句和函數(shù)調(diào)用有效地解決了系統(tǒng)延時(shí)、顯示亂碼和按鍵抖動(dòng)等常見(jiàn)問(wèn)題。</p><p>  本程序采用中斷1命令,使人工按鍵設(shè)定更加科學(xué)和直觀,加1按鍵每按一次使設(shè)定溫度值自動(dòng)加1,減1按鍵使設(shè)定溫度值自動(dòng)減1,自加+鎖定按鍵能夠使人工設(shè)定更輕巧方便快速.</p><p>  本程序初使化時(shí)系統(tǒng)自動(dòng)設(shè)定報(bào)警溫度為30度,而有效地防止了由于系統(tǒng)不適應(yīng)環(huán)境發(fā)生誤報(bào)警。</p>

65、<p>  4.2 DS18B20數(shù)據(jù)采集及轉(zhuǎn)化算法</p><p>  4.2.1 數(shù)據(jù)采集及算法轉(zhuǎn)化</p><p>  數(shù)據(jù)采集及算法轉(zhuǎn)化框圖如圖4.2</p><p>  圖4.2數(shù)據(jù)采集及算法轉(zhuǎn)化圖</p><p><b>  分析:</b></p><p>  DSl8B2

66、0 可直接將被測(cè)溫度轉(zhuǎn)換為串行數(shù)字信號(hào),供單片機(jī)處理。通過(guò)對(duì)DSl8B20 編程可以實(shí)現(xiàn)9~12 位的溫度讀數(shù),并可分別在93.75ms 和750ms 內(nèi)完成9 位和12 位的數(shù)字量。其測(cè)溫范圍-55℃~+125℃,最大分辨率為0.0625℃,在-10℃~+85℃范圍內(nèi)其測(cè)溫準(zhǔn)確度為±0.5℃。DS18B20采用一線總線傳輸?shù)男问娇梢灾苯影褦?shù)字量和STC89C52單片機(jī)進(jìn)行通信譯碼。</p><p> 

67、 程序開(kāi)始初始化,再經(jīng)DS18B20、ROM操作指令識(shí)別判斷,再進(jìn)行存儲(chǔ)操作指令,轉(zhuǎn)化處理,讀取當(dāng)前溫度值。</p><p><b>  4.3按鍵設(shè)定部分</b></p><p><b>  圖4.3按鍵設(shè)定圖</b></p><p>  4.3.1按鍵設(shè)定部分C程序流程圖</p><p>  圖

68、4.4按鍵設(shè)定流程圖</p><p><b>  分析:</b></p><p>  通過(guò)數(shù)碼管顯示設(shè)定值,變化范圍00-99,開(kāi)始時(shí)顯示30,每按一下,JIAYI按鍵一次,數(shù)值加一,每按一下,JIANYI按鍵設(shè)定數(shù)值減1,按一下GUILING鍵數(shù)值歸零,每按一下ZIJIA+SUODING按鍵,利用定時(shí)器功能開(kāi)始自動(dòng)每秒加1,再按一下ZIJIA+SUODING鍵數(shù)值停

69、止自動(dòng)加1保持顯示原數(shù),設(shè)定值都設(shè)定為無(wú)符號(hào)整形變量與溫度傳感器傳回的數(shù)值進(jìn)行比較同進(jìn)做出相應(yīng)報(bào)警信號(hào)提示。</p><p><b>  第五章 總結(jié)</b></p><p>  大學(xué)三年就會(huì)在這最后的畢業(yè)設(shè)計(jì)總結(jié)劃上一個(gè)圓滿的句號(hào)。我曾經(jīng)以為時(shí)間是一個(gè)不快不慢的東西,但現(xiàn)在我感到時(shí)間過(guò)的是多么的飛快,三年了,感覺(jué)就在一眨眼之間結(jié)束了我的大學(xué)生涯。畢業(yè),最重要的一個(gè)過(guò)

70、程,最能把理論知識(shí)運(yùn)用到實(shí)踐當(dāng)中的過(guò)程就數(shù)畢業(yè)設(shè)計(jì)了。這也是我們從一個(gè)學(xué)生走向社會(huì)的一個(gè)轉(zhuǎn)折.另一個(gè)生命歷程的開(kāi)始.畢業(yè)設(shè)計(jì)的一個(gè)月,我學(xué)到了很多,也成熟了很多。我現(xiàn)在將我的過(guò)程以及所學(xué)到的總結(jié)如下:</p><p>  畢業(yè)設(shè)計(jì)題目是:基于單片機(jī)的溫度控制</p><p>  畢業(yè)設(shè)計(jì)課題主要的步驟是:</p><p><b>  1、收集資料</

71、b></p><p>  2、熟悉元器件。熟悉元器件是采購(gòu)的前提條件,只有把元器件熟悉透徹了才能在采購(gòu)的時(shí)候避免很多的問(wèn)題。</p><p><b>  3,選型號(hào)</b></p><p>  4,寫C語(yǔ)句燒寫到實(shí)驗(yàn)板調(diào)試看效果</p><p><b>  5,總結(jié)分析</b></p&g

72、t;<p>  在這么的過(guò)程中,每一步都是自己親自做過(guò)的,遇到的問(wèn)題也非常多,在經(jīng)過(guò)遇到問(wèn)題,思索問(wèn)題到解決問(wèn)題的過(guò)程中,收獲是最多的。以往沒(méi)有注意到的問(wèn)題,都在這一次的畢業(yè)設(shè)計(jì)中得以體現(xiàn),這培養(yǎng)了我的細(xì)心,耐心和專心。</p><p><b>  所感</b></p><p>  我覺(jué)得能夠在這次的畢業(yè)設(shè)計(jì)中學(xué)到很多的東西,以往不注意的細(xì)節(jié),在這一次中

73、是必須讓自己去注意的。也是我這三年來(lái)所學(xué)到知識(shí)的一個(gè)體現(xiàn),我深深知道,每一次的學(xué)習(xí)實(shí)踐環(huán)節(jié)都是那么的來(lái)之不易,都是通過(guò)老師的深思熟慮后,才給我們定下目標(biāo)。然后讓我們?cè)谥R(shí)的海洋里翱翔,讓我們隨著年齡的增長(zhǎng)不斷的擴(kuò)充自己的知識(shí)領(lǐng)域,也逐漸成熟,逐漸長(zhǎng)大,老師同時(shí)也教導(dǎo)我們逐漸成為一個(gè)能夠?yàn)樯磉叺娜?為家庭,為國(guó)家做出點(diǎn)點(diǎn)貢獻(xiàn)的人,教導(dǎo)我們學(xué)會(huì)感恩。所以,我在這次的畢業(yè)設(shè)計(jì)中,認(rèn)真對(duì)待每一個(gè)過(guò)程,希望自己的認(rèn)真,自己最后的畢業(yè)設(shè)計(jì)的成果能夠

74、回報(bào)老師這么多年來(lái)的教導(dǎo),這么多年的奉獻(xiàn)。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]邱關(guān)源.電路 第五版.高等教育出版社.</p><p>  [2]田立,代方震. 2007. 51單片機(jī)C語(yǔ)言程序設(shè)計(jì)快速入門. 北京.人民郵電出版社</p><p>  [3]李朝青. 2005. 單片機(jī)

75、原理及接口技術(shù)(第3版). 北京.北京航天航空大學(xué)出版社.</p><p>  [4]康華光.陳大欽. 1999.電子技術(shù)基礎(chǔ)模擬部分(第4版).北京.高等教育出版社.</p><p>  [5]康華光.鄒壽彬.2000.電子技術(shù)基礎(chǔ)數(shù)字部分(第4版).北京.高等教育出版社.</p><p>  [6]郭天祥.編著.51單片機(jī)C語(yǔ)言教程——入門,提高,開(kāi)發(fā).拓展全攻

76、略</p><p>  [7]李忠國(guó).陳剛.編著.單片機(jī)應(yīng)用技能實(shí)訓(xùn)</p><p>  [8]劉南平.主編.朱鳳芝.歐觸靈.副主編.現(xiàn)代電子設(shè)計(jì)與制作技術(shù)</p><p>  [9]胡宴如.主編. 高頻電子線路</p><p>  [10]楊翠南.楊碧石.主編 . 數(shù)字電子技術(shù)與邏輯設(shè)計(jì)教程</p><p><

77、b>  致 謝</b></p><p>  在我論文即將完成之際,我首先要向在論文寫作中給予我悉心關(guān)懷、鼓勵(lì)和指導(dǎo)的肖利君老師致以深深的敬意和謝意!老師一絲不茍的鉆研精神,嚴(yán)謹(jǐn)求實(shí)的治學(xué)態(tài)度,執(zhí)著忘我的工作作風(fēng),獨(dú)樹(shù)一幟的思維方式,使學(xué)生受益匪淺,并終身難忘。</p><p>  所有人的青春,從一開(kāi)始的空白無(wú)物,到后來(lái)的極欲飛揚(yáng),陰霾滿地,再到現(xiàn)在的塵埃落定,一切都在

78、發(fā)生,一切都在結(jié)束.美好而繽紛的大學(xué)生活,就這樣畫上了句號(hào),真有些難忘和難舍。</p><p>  純?nèi)玢@,強(qiáng)如鋼。最大的收獲是心智的成熟,一千多個(gè)日子里曾悲傷過(guò)、失落過(guò)、苦惱過(guò),委屈過(guò)。而現(xiàn)在懂得擦干眼淚,收拾傷痕,站起繼續(xù)勇往直前,前面的荊棘,不算什么,路上的障礙,我每攀登越過(guò)一次,便往云端靠近了一步。感謝我的朋友和同學(xué)對(duì)我的關(guān)心和幫助!</p><p><b>  附錄&l

79、t;/b></p><p><b>  附錄1:</b></p><p><b>  附錄2:</b></p><p>  #include <reg52.h></p><p>  #include <intrins.h></p><p>  #

80、define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit beep=P1^5; //蜂鳴器</p><p>  sbit DS=P3^3; //定義DS18B20接口</p><p>  sbit key1=P3^4;

81、</p><p>  sbit key2=P3^5;</p><p>  sbit key3=P3^6;</p><p>  sbit key4=P3^7;</p><p>  sbit dula=P1^6;//申明U1鎖存器的鎖存端</p><p>  sbit wela=P1^7;//申明U2鎖存器的鎖存端

82、</p><p>  sbit led0=P1^4; //控制發(fā)光二極管</p><p>  int temp; </p><p>  uchar flag1; </p><p>  void display(unsigned char *lp,unsigned char lc);//數(shù)

83、字的顯示函數(shù);lp為</p><p>  指向數(shù)組的地址,lc為顯示的個(gè)數(shù)</p><p>  void delay();//延時(shí)子函數(shù),5個(gè)空指令</p><p>  code unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x00,</p><p>  0x7d,0x07,0x

84、7f,0x6f,0x40,0x08,</p><p>  0x77,0x7c,0x39,0x5e,0x79,0x71};</p><p>  //共陰數(shù)碼管 0-9 - _ 空 表</p><p>  unsigned char l_tmpdate[8]={0,0,10,0,0,0,0,0};//定義數(shù)組變量,并賦值1,</p><p>  

85、2,3,4,5,6,7,8,就是本程序顯示的八個(gè)數(shù)</p><p>  int tmp(void);</p><p>  void tmpchange(void);</p><p>  void tmpwritebyte(uchar dat);</p><p>  uchar tmpread(void);</p><p&g

86、t;  bit tmpreadbit(void);</p><p>  void dsreset(void);</p><p>  void delayb(uint count);</p><p>  void delayms(uint);</p><p>  int numt0,num;</p><p>  void

87、 display(unsigned char *lp,unsigned char lc)//顯示</p><p><b>  {</b></p><p>  unsigned char i;//定義變量</p><p>  P2=0;//端口2為輸出</p><p>  P1=P1&0xF8;

88、//將P1口的前3位輸出0,</p><p>  對(duì)應(yīng)138譯門輸入腳,全0為第一位數(shù)碼管</p><p>  for(i=0;i<lc;i++){//循環(huán)顯示</p><p>  P2=table[lp[i]];//查表法得到要顯示數(shù)字的數(shù)碼段</p><p>  delay();//延時(shí)5個(gè)空指令</p&g

89、t;<p>  if(i==7)//檢測(cè)顯示完8位否,完成</p><p>  直接退出,不讓P1口再加1,否則進(jìn)位影響到第四位數(shù)據(jù)</p><p><b>  break;</b></p><p>  P2=0;//清0端口,準(zhǔn)備顯示下位</p><p>  P1++;//下一

90、位數(shù)碼管</p><p><b>  }</b></p><p><b>  }</b></p><p>  void delay(void)//空5個(gè)指令</p><p><b>  {</b></p><p>  _nop_();_no

91、p_();_nop_();_nop_();_nop_();</p><p><b>  }</b></p><p>  void delayb(uint count) //delay</p><p><b>  {</b></p><p><b>  uint i;</b&

92、gt;</p><p>  while(count)</p><p><b>  {</b></p><p><b>  i=200;</b></p><p>  while(i>0)</p><p><b>  i--;</b></p>

93、;<p><b>  count--;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void dsreset(void) //DS18B20初始化</p><p><b>  {

94、</b></p><p>  uint i; </p><p><b>  DS=0;</b></p><p><b>  i=103;</b></p><p>  while(i>0)i--;</p><p><b>

95、;  DS=1;</b></p><p><b>  i=4;</b></p><p>  while(i>0)i--;</p><p><b>  }</b></p><p>  bit tmpreadbit(void) // 讀一位</p><p

96、><b>  {</b></p><p><b>  uint i;</b></p><p><b>  bit dat;</b></p><p>  DS=0;i++; //小延時(shí)一下</p><p>  DS=1;i++;i++;</p>

97、<p><b>  dat=DS;</b></p><p>  i=8;while(i>0)i--;</p><p>  return (dat);</p><p><b>  }</b></p><p>  uchar tmpread(void) //讀一個(gè)字節(jié)</p

98、><p><b>  {</b></p><p>  uchar i,j,dat;</p><p><b>  dat=0;</b></p><p>  for(i=1;i<=8;i++)</p><p><b>  {</b></p>

99、<p>  j=tmpreadbit();</p><p>  dat=(j<<7)|(dat>>1); //讀出的數(shù)據(jù)最低位在最前面,這樣剛好//一個(gè)字</p><p><b>  節(jié)在DAT里</b></p><p><b>  }</b></p><p>  

100、return(dat); //將一個(gè)字節(jié)數(shù)據(jù)返回</p><p><b>  }</b></p><p>  void tmpwritebyte(uchar dat) </p><p>  { //寫一個(gè)字節(jié)到DS18B20里</p><p>

101、;<b>  uint i;</b></p><p><b>  uchar j;</b></p><p>  bit testb;</p><p>  for(j=1;j<=8;j++)</p><p><b>  {</b></p><p> 

102、 testb=dat&0x01;</p><p>  dat=dat>>1;</p><p>  if(testb) // 寫1部分</p><p><b>  {</b></p><p><b>  DS=0;</b></p><p><b

103、>  i++;i++;</b></p><p><b>  DS=1;</b></p><p>  i=8;while(i>0)i--;</p><p><b>  }</b></p><p><b>  else</b></p><

104、p><b>  {</b></p><p>  DS=0; //寫0部分</p><p>  i=8;while(i>0)i--;</p><p><b>  DS=1;</b></p><p><b>  i++;i++;</b></p>

105、<p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void tmpchange(void) //發(fā)送溫度轉(zhuǎn)換命令</p><p><b>  {</b><

106、/p><p>  dsreset(); //初始化DS18B20</p><p>  delayb(1); //延時(shí)</p><p>  tmpwritebyte(0xcc); // 跳過(guò)序列號(hào)命令</p><p>  tmpwritebyte(0x44); //發(fā)送溫度轉(zhuǎn)換命令</p&g

107、t;<p><b>  }</b></p><p>  int tmp() //獲得溫度</p><p><b>  {</b></p><p><b>  float tt;</b></p><p>  uchar a,b;</

108、p><p>  dsreset();</p><p>  delayb(1);</p><p>  tmpwritebyte(0xcc); </p><p>  tmpwritebyte(0xbe); //發(fā)送讀取數(shù)據(jù)命令</p><p>  a=tmpread(); //連續(xù)讀兩個(gè)字節(jié)數(shù)據(jù)&l

109、t;/p><p>  b=tmpread();</p><p><b>  temp=b;</b></p><p>  temp<<=8; </p><p>  temp=temp|a; //兩字節(jié)合成一個(gè)整型變量。</p><p>  tt=tem

110、p*0.0625; //得到真實(shí)十進(jìn)制溫度值,因?yàn)镈S18B20</p><p>  //可以精確到0.0625度,所以讀回?cái)?shù)據(jù)的最低位代表的是</p><p>  //0.0625度。</p><p>  temp=tt*10+0.5; //放大十倍,這樣做的目的將小數(shù)點(diǎn)后第一位</p><p>  //也轉(zhuǎn)換為可顯示數(shù)字,

111、同時(shí)進(jìn)行一個(gè)四舍五入操作。</p><p>  return temp; //返回溫度值</p><p><b>  }</b></p><p>  void readrom() //read the serial 讀取溫度傳感器的序列號(hào)</p><p>  {

112、 //本程序中沒(méi)有用到此函數(shù)</p><p>  uchar sn1,sn2;</p><p>  dsreset();</p><p>  delayb(1);</p><p>  tmpwritebyte(0x33);</p><p>  sn1=tmpread();</p><p>

113、;  sn2=tmpread();</p><p><b>  }</b></p><p>  void delay10ms() </p><p><b>  {</b></p><p>  uchar a,b;</p><p>  for(a=10;a

114、>0;a--)</p><p>  for(b=60;b>0;b--);</p><p><b>  }</b></p><p>  void display1(uchar numdis) //顯示子函數(shù)</p><p><b>  {</b></p><p>

115、  uchar shi,ge; //分離兩個(gè)分別要顯示的數(shù)</p><p>  shi=numdis/10;</p><p>  ge=numdis%10;</p><p><b>  dula=1;</b></p><p>  P0=table[shi]; //送十位段選數(shù)據(jù)</p>

116、<p><b>  dula=0;</b></p><p>  P0=0xff;//送位選數(shù)據(jù)前關(guān)閉所有顯示,防止打開(kāi)位選鎖存時(shí)</p><p>  wela=1;//原來(lái)段選數(shù)據(jù)通過(guò)位選鎖存器造成混亂</p><p>  P0=0xfe;//送位選數(shù)據(jù)</p><p><b>  we

117、la=0;</b></p><p>  delayms(5);//延時(shí)</p><p><b>  dula=1;</b></p><p>  P0=table[ge]; //送個(gè)位段選數(shù)據(jù)</p><p><b>  dula=0;</b></p><p>

118、<b>  P0=0xff;</b></p><p><b>  wela=1;</b></p><p><b>  P0=0xfd;</b></p><p><b>  wela=0;</b></p><p>  delayms(5);</p>

119、;<p><b>  }</b></p><p>  void delayms(uint xms)</p><p><b>  {</b></p><p><b>  uint i,j;</b></p><p>  for(i=xms;i>0;i--

120、) //i=xms即延時(shí)約xms毫秒</p><p>  for(j=110;j>0;j--);</p><p><b>  }</b></p><p>  void init() //初始化函數(shù)</p><p><b>  {</b></p><p&g

121、t;  TMOD=0x01;//設(shè)置定時(shí)器0為工作方式1(0000 0001)</p><p>  TH0=(65536-45872)/256;//裝初值50ms一次中斷</p><p>  TL0=(65536-45872)%256;</p><p>  EA=1; //開(kāi)總中斷</p><p>  ET0=1; //開(kāi)定時(shí)器0中斷&l

122、t;/p><p><b>  }</b></p><p>  void keyscan()</p><p><b>  {</b></p><p>  if(key1==30)</p><p><b>  {</b></p><p>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論