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

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)字溫度計的設計</b></p><p><b>  摘要</b></p><p>  本設計采用新型單片機對溫度進行控制,以其測量精度高,操作簡單。可運行性強,價格低廉等優(yōu)點,特別適用于我們?nèi)粘I詈凸I(yè)生產(chǎn)等方面的溫度測量及控制。此次設計,我們重點致力于對普通室溫的測量。溫度控制系統(tǒng)采用STC89C52八位機作為

2、微處理單元進行控制,傳感器采用數(shù)字溫度傳感器18B20進行檢測。通過軟件編程把設定溫度的最高值和最低值存入單片機的數(shù)據(jù)存儲器,另外,溫度傳感器完成溫度檢測并且顯示其溫度值及其對應指標,指標分別為:Hot、Cold、Comfort三個指標。指標是由采集到的溫度值與單片機里的預設值相比較來決定,當溫度值小于18攝氏度時,指標顯示為偏冷。當溫度值大于32攝氏度時,指標顯示為偏熱。介于兩者之間為舒適,預設值是根據(jù)人對溫度的感覺設定的。</

3、p><p>  關鍵字:單片機、溫度檢測、18B20</p><p><b>  一、系統(tǒng)的總體設計</b></p><p>  1.1 設計背景 </p><p>  隨著人們對生活品質(zhì)要求的提高,溫度的觀測已經(jīng)不僅僅局限于室外溫度,人們對室內(nèi)溫度的檢測也有很高的要求。因此,設計一

4、個良好的室溫檢測系統(tǒng)已經(jīng)尤為迫切。如果對此系統(tǒng)在進行研究與改進,也可用于工業(yè)生產(chǎn)過程,在實際生產(chǎn)操作過程中,由于工作環(huán)境溫度不合理而引發(fā)的事故時有發(fā)生。對工業(yè)生產(chǎn)可靠進行造成影響,甚至操作人員的安全。為了避免這些缺點,需要在某些特定的環(huán)境里安裝數(shù)字溫度測量及控制設備。本設計由于采用了新型單片機對溫度進行控制,以其測量精度高,操作簡單??蛇\行性強,價格低廉等優(yōu)點,特別適用于我們?nèi)粘I詈凸I(yè)生產(chǎn)等方面的溫度測量及控制。此次設計,我們重點致

5、力于對房間溫度的測量。</p><p>  本設計是一個數(shù)字溫度測量及提示系統(tǒng),能精確檢測房間內(nèi)的溫度以及顯示實時溫度,并能在超出設定值的情況下以指標提示舒適度,一起到提示使用者的目的。</p><p>  1.2 電路的總體工作原理</p><p>  溫度控制系統(tǒng)采用STC89C52八位機作為微處理單元進行控制。采用軟件編程把設定溫度的最高值和最低值存入單片機的

6、數(shù)據(jù)存儲器,還可以通過溫度傳感器完成溫度檢測并且顯示其對應指標,指標分別為:Hot、Cold、Comfort三個指標。指標是由采集到的溫度值與單片機里的預設值相比較來決定,當溫度值小于18攝氏度時,指標顯示為偏冷。當溫度值大于32攝氏度時,指標顯示為偏熱。介于兩者之間為舒適,預設值是根據(jù)人對溫度的感覺設定的。</p><p>  根據(jù)系統(tǒng)的設計要求,選擇DS18B20作為本系統(tǒng)的溫度傳感器,選擇單片機STC89C

7、52為測控系統(tǒng)的核心來完成數(shù)據(jù)采集、處理、顯示等功能。選用數(shù)字溫度傳感器DS18B20,省卻了采樣/保持電路、運放、數(shù)/模轉換電路以及進行長距離傳輸時的串/并轉換電路,簡化了電路,縮短了系統(tǒng)的工作時間,降低了系統(tǒng)的硬件成本。</p><p>  該系統(tǒng)的總體設計思路如下:溫度傳感器DS18B20把所測得的溫度值發(fā)送到STC89C52單片機中,經(jīng)過單片機處理,將溫度顯示在LCD液晶上,本系統(tǒng)顯示器為點陣字符LCD1

8、602液晶模塊。本系統(tǒng)除了顯示溫度以外還可以設置各個溫度段所對應的Index指標,對所測溫度進行監(jiān)控,當溫度高于或低于設定定溫度時, LCD上顯示指標Index(Hot、Cold、Confort其一)。</p><p><b>  二、系統(tǒng)的硬件設計</b></p><p>  2.1 STC89C52單片機</p><p>  STC89C5

9、2是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標準功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX810復位電路,三個16 位 定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口。另

10、外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35Mhz,6T/12T可選。</p><p>  圖2.1 單片機實物圖</p><p>  2.1.1 單片機最小系統(tǒng)

11、的設計</p><p>  目前的單片機開發(fā)系統(tǒng)只能夠仿真單片機,卻沒有給用戶提供一個通用的最小系統(tǒng)。由設計的要求,只要做很小集成度的最小系統(tǒng)應用在一些小的控制單元。其應用特點是:</p><p> ?。?)全部I/O口線均可供用戶使用。 </p><p>  (2)內(nèi)部存儲器容量有限(只有4KB地址空間)。 </p><p> ?。?)應用

12、系統(tǒng)開發(fā)具有特殊性</p><p>  圖 2.1.1 最小系統(tǒng)圖</p><p>  單片機最小系統(tǒng)如圖2.1.1所示,其中有4個雙向的8位并行I/O端口,分別記作P0、P1、P2、P3,都可以用于數(shù)據(jù)的輸出和輸入,P3口具有第二功能為系統(tǒng)提供一些控制信號。時鐘電路用于產(chǎn)生STC89C52單片機工作所必須的時鐘控制信號,內(nèi)部電路在時鐘信號的控制下,嚴格地按時序指令工作。STC89C5

13、2內(nèi)部有一個用于構成振蕩器的高增益反向放大器,該高增益反向放大器的輸入端為芯片的引腳XTAL1,輸出端為XTAL2。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,就構成了一個穩(wěn)定的自激振蕩器。電路中的微調(diào)電容通常選擇為30pF左右,該電容的大小會影響到振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。晶體的振蕩頻率為11.059MHz。</p><p>  把EA腳接高電平,單片機訪問片內(nèi)程序存儲器,但在PC值超過0FF

14、FH(4Kbyte地址范圍)時,將自動轉向執(zhí)行外部程序存儲器內(nèi)的程序。</p><p>  STC89C52的復位是由外部的復位電路來實現(xiàn)。采用最簡單的外部按鍵復位電路。按鍵自動復位是通過外部復位電路的來實現(xiàn)的.我們選用時鐘頻率為11.059MHz,C1取47μf。</p><p>  2.2 溫度傳感電路設計</p><p>  DS18B20數(shù)字溫度傳感器接線方

15、便,封裝成后可應用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式,型號多種多樣,有LTM8877,LTM8874等等。主要根據(jù)應用場合的不同而改變其外觀。封裝后的DS18B20可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機房測溫,農(nóng)業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設備數(shù)字測溫和控制領域。本設計所使用的溫度傳感器DS18B20引腳圖:</p&

16、gt;<p>  圖 2.2.1 DS18B20引腳圖</p><p>  DS18B20的性能特點:</p><p> ?、?、獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊。 </p><p> ?、?、測溫范圍 -55℃~+125℃,固有測溫分辨率0.5℃。 </p>&

17、lt;p>  ③、支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個,實現(xiàn)多點測溫,如果數(shù)量過多,會使供電電源電壓過低,從而造成信號傳輸?shù)牟环€(wěn)定。 </p><p> ?、?、工作電源: 3~5V/DC </p><p>  ⑤、在使用中不需要任何外圍元件 </p><p>  ⑥、測量結果以9~12位數(shù)字量方式串行傳送 </p&

18、gt;<p>  ⑦、不銹鋼保護管直徑 Φ6 </p><p> ?、唷⑦m用于DN15~25, DN40~DN250各種介質(zhì)工業(yè)管道和狹小空間設備測溫 </p><p> ?、帷藴拾惭b螺紋 M10X1, M12X1.5, G1/2”任選 </p><p> ?、狻VC電纜直接出線或德式球型接線盒出線,便于與其它電器設備連接。</p>

19、<p>  在硬件上,DS18B20與單片機的連接有兩種方法,一種是VCC接外部電源,GND接地,I/O與單片機的I/O線相連;另一種是用寄生電源供電,此時UDD、GND接地,I/O接單片機I/O。無論是內(nèi)部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電阻.我們采用的是第一種連接方法,如圖3.3所示:把DS18B20的數(shù)據(jù)線與單片機的13管腳連接,再加上上拉電阻。</p><p>  圖 2.2

20、.2 溫度傳感電路圖</p><p>  DS18B20有六條控制命令,如表所示:</p><p>  CPU對DS18B20的訪問流程是:先對DS18B20初始化,再進行ROM操作命令,最后才能對存儲器操作,數(shù)據(jù)操作。DS18B20每一步操作都要遵循嚴格的工作時序和通信協(xié)議。如主機控制DS18B20完成溫度轉換這一過程,根據(jù)DS18B20的通訊協(xié)議,須經(jīng)三個步驟:每一次讀寫之前都要對

21、DS18B20進行復位,復位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進行預定的操作。</p><p>  2.3 顯示電路的設計</p><p>  液晶顯示器是一種將液晶顯示器件,連接器件,集成電路,PCB線路板,背光源,結構器件裝配在一起的組件。根據(jù)顯示內(nèi)容和方式的不同可以分為,數(shù)顯LCD,點陣字符LCD,點陣圖形LCD在此設計中我們采用點陣字符LCD,這

22、里采用常用的2行16個字的1602液晶模塊。下圖為LCD1602引腳圖:</p><p>  1602采用標準的14腳接口,其中:</p><p>  第1腳:VSS為地電源第2腳:VDD接5V正電源</p><p>  第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整

23、對比度 第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。 第5腳:RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀忙信號,當RS為高電平RW為低電平時可以寫入數(shù)據(jù)。 第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。</p><p>  第7~14腳

24、:D0~D7為8位雙向數(shù)據(jù)線。 </p><p>  第15~16腳:空腳。</p><p>  與單片機的連接如圖2.5所示</p><p>  圖 2.5 液晶顯示電路圖</p><p>  三、 系統(tǒng)的軟件設計</p><p>  3.1 系統(tǒng)的主程序設計</p><p>  主程序是系

25、統(tǒng)的監(jiān)控程序,在程序運行的過程中必須先經(jīng)過初始化,包括鍵盤程序,中斷程序,以及各個控制端口的初始化工作。流程圖如3.1 所示。系統(tǒng)在初始化完成后就進入溫度測量程序,實時的測量當前的溫度并通過顯示電路在LCD上顯示。程序中以中斷的方式來重新設定溫度的上下限。根據(jù)硬件設計完成對溫度的控制。系統(tǒng)軟件設計的總體流程圖</p><p>  圖 3.1 系統(tǒng)總體程序設計流程圖</p><p>  3

26、.2 溫度檢測模塊流程圖</p><p>  DS18B20在單片機控制下分三個階段:</p><p> ?、?8B20 初始化:初始化流程圖見</p><p> ?、谧x18B20時序:讀DS18B20流程見圖 3.2.1</p><p>  ③寫18B20時序:寫18B20 流程見圖3.2.2</p><p>  圖

27、 3.2.1讀DS18B20流程圖 圖 3.2.2寫DS18B20流程圖</p><p><b>  四、全文總結</b></p><p>  本設計利用89S51 芯片控制溫度傳感器DS18B20,再輔之以部分外圍電路實現(xiàn)對環(huán)境溫度的測控,性能穩(wěn)定,精度教高,而且擴展性能很強大。由于DS18B20 支持單總線協(xié)議,我們可以將

28、多個DS18B20 可以并聯(lián)到3 根或2 根線上,CPU 只需一根端口線就能與諸多DS18B20 通信,占用較少的微處理器的端口就可以實現(xiàn)多點測溫監(jiān)控系統(tǒng)??梢约尤?302 時鐘芯片實現(xiàn)對時間進行顯示,加之AT24C16 存儲芯片來實現(xiàn)對時間和溫度數(shù)據(jù)的記錄,利用MAX232芯片和計算機實現(xiàn)串口通訊,這樣就可以方便的統(tǒng)計出特定時間內(nèi)的需要的時間和溫度數(shù)據(jù)。由于DS18B20的測量精度只有±0.5 度,往往很多場合需要更加精確的

29、溫度,在所測溫度精度不變的基礎上必須對數(shù)據(jù)進行校正。由于DS18B20 是基于帶隙結構的數(shù)字式溫度傳感器,PN 結增量電壓正比于IC 絕對溫度(PTAT),它的測溫精度較高,但存在著一定的誤差.不過,其誤差在時間和外部環(huán)境變化的條件下,保持相當高的穩(wěn)定性。針對這一特性,基于線性插補的數(shù)學思想,利用DSP技術,對其進行誤差校正補償.這種誤差校正的補償方法,不需增加硬件電路,計算方法簡單</p><p><b&

30、gt;  參考文獻</b></p><p>  [1] 沙占友. 集成溫度傳感器原理與應用. 北京:機械工業(yè)出版社,2002, 84~95.</p><p>  [2] 劉君華. 智能傳感器系統(tǒng). 西安:西安電子科技大學出版社,1999,83~105.</p><p>  [3] 沙占友. 智能化傳感器原理與應用. 北京:電子工業(yè)出版社,2004,99~

31、108.</p><p>  [4] 趙負圖. 傳感器集成電路手冊. 北京:化學工業(yè)出版社,2002,692~703.</p><p>  [5] 張毅剛. MCS-51單片機原理及應用. 哈爾濱:哈爾濱工業(yè)大學出版社,2004,81~94</p><p>  [6] 林伸茂. 8051單片機徹底研究經(jīng)驗篇. 北京:人民郵電出版社,2004,7~14.</p&

32、gt;<p>  [7] 沙占友. 單片機外圍電路設計. 北京:電子工業(yè)出版社,2003,37~48.</p><p>  [8] 何希才. 傳感器及其應用電路. 北京:電子工業(yè)出版社,2001,36~47.</p><p>  [9] Intel:MCS-51 Family of Single Chip Mirocomputers User’s Manual,1990

33、,3~9.</p><p><b>  總電路圖</b></p><p><b>  附錄1 實物圖</b></p><p><b>  附錄2 程序</b></p><p>  #include"reg51.h"</p><p&g

34、t;  #include"intrins.h"</p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit DQ=P2^1;</p><p>  void Init18B20(void); //初始化&l

35、t;/p><p>  void Write18B20(uchar ch);//寫數(shù)據(jù)</p><p>  unsigned char Read18B20(void);//讀數(shù)據(jù) </p><p>  void Delay15(uchar n); </p><p>  void Delay10ms(uint delay_num);</p&

36、gt;<p>  void Display(void);</p><p>  ///////////////////////////////////// </p><p>  code uchar decimalH[]={00,06,12,18,25,31,37,43,50,56,62,68,75,81,87,93};</p><p>  code

37、uchar decimalL[]={00,25,50,75,00,25,50,75,00,25,50,75,00,25,50,75};</p><p>  uint ResultTemperatureH ,ResultTemperatureLH,ResultTemperatureLL;//整數(shù),小數(shù)高位,小數(shù)低位</p><p>  uint ResultSignal;//符號位<

38、/p><p>  sbit RS=P2^5;</p><p>  sbit EN=P2^7;</p><p>  sbit RW=P2^6;</p><p>  /********************************************************************/</p><p>&

39、lt;b>  //延時函數(shù)</b></p><p>  void delay_1us(void) //1us延時函數(shù)</p><p><b>  {</b></p><p><b>  _nop_();</b></p><p><b>  

40、}</b></p><p>  void delay_nus(unsigned int n)//N us延時函數(shù)</p><p><b>  {</b></p><p>  unsigned int i=0;</p><p>  for(i=0;i<n;i++)</p><p&g

41、t;  delay_1us();</p><p><b>  }</b></p><p>  void delay_1ms(void) //1ms延時函數(shù)</p><p><b>  {</b></p><p>  unsigned int i;</p><p> 

42、 for(i=0;i<1140;i++);</p><p><b>  }</b></p><p>  void delay_nms(unsigned int n)</p><p><b>  {</b></p><p>  unsigned int i=0;</p><p

43、>  for(i=0;i<n;i++)</p><p>  delay_1ms();</p><p><b>  }</b></p><p>  /********************************************************************/</p><p><

44、;b>  //寫指令函數(shù)</b></p><p>  void write_command(unsigned char com)</p><p><b>  {</b></p><p>  delay_nus(10); //delay</p><p><b&g

45、t;  RS=0;</b></p><p><b>  EN=1;</b></p><p>  P0&=0x00;</p><p>  P0=com;</p><p><b>  EN=0;</b></p><p><b&g

46、t;  }</b></p><p><b>  //寫數(shù)據(jù)函數(shù)</b></p><p>  void write_data(unsigned char datas)</p><p><b>  {</b></p><p>  delay_nus(10);</p><p

47、><b>  RS=1;</b></p><p><b>  EN=1;</b></p><p>  P0&=0x00; </p><p>  P0=datas; </p><p><b>

48、  EN=0;</b></p><p><b>  }</b></p><p>  //初始化LCD1602函數(shù)</p><p>  void LCD_init(void)</p><p><b>  {</b></p><p>  P0=0xff;

49、//設為輸出</p><p>  write_command(0x38);//8位顯示--對應功能設置指令</p><p>  write_command(0x0c);//顯示開--對應開關顯示控制指令</p><p>  write_command(0x01);//清屏--對應清屏指令</p><p>  delay

50、_nms(2); //delay</p><p><b>  }</b></p><p>  void LCD_set_addr(unsigned char x,unsigned char y) //x:0~15,y:0~1</p><p><b>  {</b></p&g

51、t;<p><b>  if(y)</b></p><p>  write_command(0xc0+x); //第二行顯示</p><p><b>  else</b></p><p>  write_command(0x80+x); //第一行顯示</p>

52、;<p><b>  }</b></p><p><b>  //寫字符函數(shù)</b></p><p>  void LCD_write_char(unsigned char X,unsigned char Y,</p><p>  unsigned char datas) //列x=0~15,行y=0,1&l

53、t;/p><p><b>  {</b></p><p>  LCD_set_addr(X,Y); //寫地址</p><p>  write_data(datas);</p><p><b>  }</b></p><p><b>  /

54、/寫字符串函數(shù)</b></p><p>  void LCD_write_string(unsigned char X,unsigned char Y,</p><p>  unsigned char *s) //列0~15,行y=0,1</p><p><b>  {</b></p><p>  LCD_

55、set_addr(X,Y); //寫地址</p><p><b>  while(*s)</b></p><p><b>  {</b></p><p>  write_data(*s);</p><p><b>  s++;</b></p&

56、gt;<p><b>  }</b></p><p><b>  }</b></p><p><b>  main()</b></p><p>  { uint TemH,TemL,delay,k=0;</p><p><b>  RW=0;</

57、b></p><p>  LCD_init();</p><p><b>  for(; ; )</b></p><p><b>  {</b></p><p>  Init18B20();</p><p>  Write18B20(0xCC);//跳過ROM</

58、p><p><b>  _nop_();</b></p><p>  Write18B20(0x7f);//12 bits溫度分辨率</p><p>  Init18B20();</p><p>  Write18B20(0xCC);//跳過ROM</p><p><b>  _nop_()

59、;</b></p><p>  Write18B20(0x44);//發(fā)送溫度轉換指令</p><p>  Delay10ms(100);//等待1s轉換</p><p>  Init18B20();</p><p>  Write18B20(0xCC);//跳過ROM</p><p>  Write18B

60、20(0xBE);//讀暫存存儲器</p><p>  TemL=Read18B20(); //讀低位溫度值</p><p>  TemH=Read18B20(); //讀高位溫度值 </p><p>  Delay10ms(2);</p>

61、<p>  TemH=(TemH<<4)|(TemL>>4);</p><p>  TemL=TemL&0x0f; //取低4位</p><p>  ResultTemperatureLH=decimalH[TemL];</p><p>  ResultTemperatureLL=decimalL[TemL];<

62、;/p><p>  ResultTemperatureH=TemH;</p><p>  Display();</p><p>  for(delay=0;delay<30000;delay++);</p><p>  for(delay=0;delay<30000;delay++);</p><p><

63、b>  } </b></p><p><b>  }</b></p><p>  void Display(void)</p><p>  { uint i,j,q,tep;</p><p>  LCD_init();</p><p>  write_command(0x

64、01);</p><p>  write_command(0x01);</p><p>  delay_nms(2);</p><p>  q=ResultTemperatureH/100;</p><p>  i=(ResultTemperatureH%100)/10;</p><p>  j=ResultTempe

65、ratureH-(i*10+q*100);</p><p>  LCD_write_string(0,0,"index:");</p><p>  LCD_write_string(0,1,"Temp: . ");</p><p>  LCD_write_char(0x05,1,i|0x30);</p><

66、;p>  LCD_write_char(0x06,1,j|0x30);</p><p>  LCD_write_char(0x08,1,(ResultTemperatureLH/10)|0x30);</p><p>  tep=i*10+j;</p><p>  if(tep>=32)</p><p>  LCD_write_st

67、ring(0x07,0,"Hot");</p><p>  else if(tep<=18)</p><p>  LCD_write_string(0x07,0,"Cold");</p><p><b>  else</b></p><p>  LCD_write_strin

68、g(0x07,0,"Comfort");</p><p><b>  }</b></p><p>  unsigned char Read18B20(void)</p><p>  { unsigned char ch;</p><p>  unsigned char q ;</p>&

69、lt;p>  for(q=0;q<8;q++)</p><p>  {ch=ch>>1;</p><p><b>  DQ=0;</b></p><p><b>  _nop_();</b></p><p><b>  DQ=1;</b></p&g

70、t;<p>  _nop_();_nop_();_nop_();_nop_();</p><p>  if(DQ==1) </p><p>  {ch=ch|0x80;}</p><p>  else {ch=ch&0x7f;}</p><p>  Delay15(3);</p><p>

71、;<b>  DQ=1;</b></p><p><b>  } </b></p><p>  return (ch);</p><p><b>  }</b></p><p>  void Write18B20(uchar ch)</p><p> 

72、 { uchar i;</p><p>  for(i=0;i<8;i++)</p><p><b>  { DQ=0;</b></p><p>  Delay15(1);</p><p>  DQ=ch&0x01;</p><p>  Delay15(3);</p>

73、<p><b>  DQ=1;</b></p><p><b>  ch=ch>>1;</b></p><p><b>  _nop_();</b></p><p><b>  }</b></p><p><b>  }&l

74、t;/b></p><p>  void Init18B20(void)</p><p><b>  { DQ=0;</b></p><p>  Delay15(33);//至少延時480us</p><p><b>  DQ=1;</b></p><p>  Dela

75、y15(10);//至少延時100us</p><p><b>  }</b></p><p>  void Delay15(uchar n)</p><p>  { do{ _nop_(); _nop_(); _nop_(); _nop_(); _nop_();</p><p>  _nop_(); _nop_();

76、 _nop_(); _nop_(); _nop_();</p><p>  _nop_(); _nop_(); _nop_();</p><p><b>  n--;</b></p><p>  }while(n);</p><p><b>  } </b></p><p>

77、  void Delay10ms(uint delay_num)</p><p><b>  {</b></p><p><b>  uchar i;</b></p><p>  while(delay_num--)</p><p><b>  { </b></p>

溫馨提示

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

評論

0/150

提交評論