版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p> 課題:恒溫控制模擬設(shè)計(jì)</p><p> 系 別: </p><p> 專 業(yè): </p><p> 姓 名: </p><p> 學(xué) 號(hào): <
2、;/p><p> 2011年12月28日</p><p><b> 成績?cè)u(píng)定·</b></p><p> 一、指導(dǎo)教師評(píng)語(根據(jù)學(xué)生設(shè)計(jì)報(bào)告質(zhì)量、答辯情況及其平時(shí)表現(xiàn)綜合評(píng)定)。</p><p><b> 二、評(píng)分</b></p><p><b>
3、課程設(shè)計(jì)成績?cè)u(píng)定</b></p><p><b> 設(shè)計(jì)目的</b></p><p> 1、使學(xué)生增進(jìn)對(duì)單片機(jī)的感性認(rèn)識(shí),加深對(duì)單片機(jī)理論方面的理解;</p><p> 2、使學(xué)生掌握單片機(jī)的內(nèi)部功能模塊的應(yīng)用,如定時(shí)器/計(jì)數(shù)器、中斷、片內(nèi)外存貯器、I/O口、A/D、D/A、串行口通訊等;</p><p&g
4、t; 3、使學(xué)生了解和掌握單片機(jī)應(yīng)用系統(tǒng)的軟硬件設(shè)計(jì)過程、方法及實(shí)現(xiàn),為以后設(shè)計(jì)和實(shí)現(xiàn)單片機(jī)應(yīng)用系統(tǒng)打下良好基礎(chǔ)。</p><p><b> 設(shè)計(jì)要求</b></p><p> 1、對(duì)一定范圍內(nèi)的溫度進(jìn)行控制,低于此范圍內(nèi)則加熱,高于此范圍則降溫;</p><p> 2、要求給出加熱、降溫信號(hào)。</p><p>
5、 3、擴(kuò)展功能:時(shí)間顯示</p><p><b> 總體設(shè)計(jì)</b></p><p><b> 各部分電路設(shè)計(jì)</b></p><p> 上圖為18B20的電路設(shè)計(jì)。</p><p> 上圖為LCD1602的電路設(shè)計(jì)。</p><p> 下圖為獨(dú)立按鍵的電路設(shè)計(jì):
6、</p><p> 上圖為單片機(jī)晶振的連接電路。</p><p><b> 整體電路圖</b></p><p><b> 六、設(shè)計(jì)總結(jié)</b></p><p> 設(shè)計(jì)過程中遇到的問題及解決方法</p><p><b> 遇到的問題:</b>&l
7、t;/p><p> 關(guān)于溫度顯示和溫度比較,由于定義了全局溫度中間變量temp,并將temp初始化為0,所以顯示溫度時(shí)由于temp被重新初始化,故顯示的溫度為0,且比較溫度時(shí)溫度與0度比較。</p><p><b> 解決方法:</b></p><p> 關(guān)于溫度顯示,在溫度被初始化為0之前,先將溫度顯示出來,然后初始化后讀取下一個(gè)溫度。&l
8、t;/p><p> 關(guān)于溫度比較,由于初始化后將設(shè)定溫度K與初始化的溫度0比較,故重新定義了一個(gè)局部變量J,將temp的值傳遞給J,使局部變量J與設(shè)定溫度K進(jìn)行比較,從而確定加熱或是降溫。</p><p><b> 設(shè)計(jì)體會(huì)</b></p><p> 通過單片機(jī)課程設(shè)計(jì),我更加深刻具體的認(rèn)識(shí)到了單片機(jī)的工作原理,工作狀態(tài),是我對(duì)單片機(jī)有了更加
9、深刻的認(rèn)識(shí)。通過課程設(shè)計(jì),我發(fā)現(xiàn)只學(xué)習(xí)書上的理論知識(shí),而不進(jìn)行具體實(shí)踐是難以真正了解一件事物的。實(shí)踐出真知。而且通過實(shí)踐可以發(fā)現(xiàn)理論正確的程序或硬件的一些小的bug,通過修改各種錯(cuò)誤和bug,使自己的軟硬件功底不斷提高,可以在未來的各種設(shè)計(jì)中,掌握更好的設(shè)計(jì)方法。</p><p><b> 對(duì)設(shè)計(jì)的建議</b></p><p> 課程設(shè)計(jì)提高了我們對(duì)單片機(jī)的具體認(rèn)
10、識(shí),加深了理解。課程設(shè)計(jì)對(duì)更好的學(xué)習(xí)課程有很大的幫助。</p><p><b> 參考文獻(xiàn)</b></p><p> 《單片機(jī)原理及應(yīng)用》 人民郵電出版社</p><p> 《8051單片機(jī)徹底研究》 中國電力出版社</p><p> 《51單片機(jī)應(yīng)用開發(fā)技術(shù)大全》 人民郵電出版社</p&g
11、t;<p> 《51單片機(jī)C語言應(yīng)用程序設(shè)計(jì)實(shí)例精講》 電子工業(yè)出版社</p><p> 《51單片機(jī)及其C語言程序開發(fā)實(shí)例》 清華大學(xué)出版社</p><p><b> 附錄(程序):</b></p><p><b> main.c:</b></p><p> /*
12、******************************************************************</p><p><b> 智能溫控器</b></p><p> P0 1602數(shù)據(jù)線; P1 按鍵; P2^0 溫度;RS = P2^5; </p><p> RW = P2^6; EN = P
13、2^7; SPEAKER=P2^3;OUT=P2^2 </p><p> ********************************************************************/</p><p> #include<reg52.h></p><p> #include<stdio.h></p
14、><p> #include"18b20.h"</p><p> #include"1602.h"</p><p> #include"delay.h"</p><p> #define uchar unsigned char </p><p> sbi
15、t MENU=P1^0; //調(diào)整溫度、時(shí)間菜單</p><p> sbit INC=P1^1; //增加鍵</p><p> sbit DEC=P1^2; //減小鍵 </p><p> sbit LOW=P2^3; //低溫加熱信
16、號(hào)</p><p> sbit HIGH=P2^2;//高溫降溫信號(hào)</p><p> char displaytemp[16]; //定義顯示區(qū)域臨時(shí)存儲(chǔ)數(shù)組</p><p> unsigned int temp;//中間變量</p><p> float tempera
17、ture;//顯示溫度</p><p> int second=0; //定義并初始化時(shí)鐘變量</p><p> int minute=0;</p><p> int hour=12; </p><p> uchar tt;//定時(shí)時(shí)間中間變量</p><p&
18、gt; int temp1; //溫度顯示變量</p><p> uchar set;//按鍵</p><p> int K=12; //初始報(bào)警溫度</p><p> bit ON_OFF=0;//報(bào)警啟動(dòng)</p><p> bit ReadTempFlag
19、; //定義讀溫度標(biāo)志</p><p> void keyscan(void);//鍵盤掃描</p><p> void inc_key(void);//按鍵加法函數(shù)</p><p> void dec_key(void);//按鍵減法函數(shù)</p><p> /*************
20、****顯示函數(shù)********************/</p><p> void display()</p><p><b> {</b></p><p> if(set!=0)</p><p> LCD_Write_Com(0x0f);</p><p> if(ON_
21、OFF==1)</p><p> sprintf(displaytemp,"Time %02d:%02d:%02d ON",hour,minute,second); //顯示時(shí)間</p><p><b> else</b></p><p> sprintf(displaytemp,"Time %02d:%
22、02d:%02d OF",hour,minute,second); //顯示時(shí)間</p><p> LCD_Write_String(0,0,displaytemp);//顯示第一行 </p><p> switch(set) //LCD根據(jù)工作模式
23、顯示</p><p><b> {</b></p><p> case 0:LCD_Write_Com(0x0c); break; //調(diào)整模式顯示</p><p> case 1:LCD_Write_Char(7,0,' '); break; //增加模式顯示</p>&l
24、t;p> case 2: LCD_Write_Char(10,0,' '); break; //漸少模式顯示</p><p> case 3:LCD_Write_Char(7,1,' '); break; //報(bào)警開啟/關(guān)閉</p><p> default:break;</p><p><
25、;b> }</b></p><p> if(set!=0)</p><p> LCD_Write_Com(0x10);</p><p><b> }</b></p><p> /**************鍵盤掃描子函數(shù)******************/</p><p&
26、gt; void keyscan(void)</p><p><b> {</b></p><p> uchar xx; //局部變量</p><p><b> P1=0xff;</b></p><p>
27、if(P1!=0xff)</p><p><b> {</b></p><p> DelayMs(50);</p><p> if(P1!=0xff)</p><p><b> {</b></p><p><b> xx=P1;</b><
28、;/p><p> while(P1!=0xff);</p><p> switch(xx) // 根據(jù)按鍵狀態(tài),調(diào)用不同的子函數(shù)</p><p><b> {</b></p><p> case 0xfe:set++;if(set>=4)set=0; break;
29、 </p><p> case 0xfd:inc_key(); break; </p><p> case 0xfb:dec_key(); break; </p><p> case 0xf7:ON_OFF=!ON_OFF;
30、 break;</p><p> default:break;</p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p><p><b> }</b&g
31、t;</p><p> /****************按鍵加法子函數(shù)******************/</p><p> void inc_key(void)</p><p><b> {</b></p><p> DelayMs(30);</p><p> switch(s
32、et)</p><p><b> {</b></p><p> case 0:if(P1==0xf7)ON_OFF=!ON_OFF; break;</p><p> case 1:hour++; if(hour>=24)hour=0; break;</p><p> case 2:m
33、inute++; if(minute>=60)minute=0; break;</p><p> case 3:K++;if(K>=100)K=0; break; </p><p> default:break;</p><p><b> }</b></p><p><b> }
34、</b></p><p> /****************按鍵減法子函數(shù)*****************/</p><p> void dec_key(void)</p><p><b> {</b></p><p> DelayMs(30);</p><p> sw
35、itch(set)</p><p><b> {</b></p><p> case 0:if(P1==0xf7)ON_OFF=!ON_OFF; break;</p><p> case 1:hour--; if(hour<0)hour=23; break;</p><p> ca
36、se 2:minute--;if(minute<0)minute=59; break;</p><p> case 3:K--;if(K<=1)K=1; break; </p><p> default:break;</p><p><b> }</b></p><p><
37、b> }</b></p><p> /***************定時(shí)器t0初始化*******************/</p><p> void Init_Timer0(void)</p><p><b> {</b></p><p> TMOD=0x01;
38、 //time0為定時(shí)器,方式1</p><p> TH0=0x3c; //預(yù)置計(jì)數(shù)初值15536計(jì)時(shí) 50ms</p><p><b> TL0=0xb0;</b></p><p> EA=1; </p&g
39、t;<p> ET0=1; </p><p> TR0=1; </p><p><b> }</b></p><p> /***********定時(shí)器t0中斷子函數(shù)**************/</p><p> void timer0
40、(void) interrupt 1 using 0 //定時(shí)器0方式1,50ms中斷一次</p><p><b> {</b></p><p><b> tt++;</b></p><p><b> TH0=0x3c;</b></p><p><
41、b> TL0=0xb0;</b></p><p> if(tt==20)</p><p><b> {</b></p><p><b> tt=0;</b></p><p> ReadTempFlag=1;</p><p> second++;
42、</p><p> if(second>=60) {minute++;second=0;}</p><p> if(minute>=60) {hour++;minute=0;}</p><p> if(hour>=24) hour=0; </p><p><b> } </b>&
43、lt;/p><p> keyscan(); //按鍵掃描</p><p><b> }</b></p><p> /***********the main funtion*************/ </p><p> void main(void)&
44、lt;/p><p><b> { </b></p><p> int J;//溫度局部變量</p><p> uchar x=0;</p><p> P1=0xff; //初始化p1口</p><p><b>
45、 HIGH=1;</b></p><p> LOW=1; </p><p> LCD_Init(); //初始化液晶</p><p> DelayMs(20); </p><p> LCD_Clear(); //清屏</p><p
46、> Init_Timer0(); //時(shí)鐘定時(shí)器0初始化 </p><p><b> while (1)</b></p><p> { </p><p> if( ReadTempFlag==1)</p><p><
47、;b> {</b></p><p> ReadTempFlag=0; //溫度標(biāo)志位</p><p> temp=ReadTemperature();</p><p> temperature=(float)temp*0.0625;
48、 //溫度采集</p><p> temp1=(int)temperature; </p><p><b> J=temp1;</b></p><p> sprintf(displaytemp,"Temp %02dC%7.2fC",K,temperature);
49、//顯示溫度值</p><p> LCD_Write_String(0,1,displaytemp); </p><p><b> }</b></p><p> temp1=(int)temperature; </p><p> display(); <
50、;/p><p> keyscan(); </p><p> if(ON_OFF==1) //若溫控標(biāo)志位1, 控制LAMP動(dòng)作</p><p><b> {</b></p><p> if(J>K) {HIGH=0;LOW=1;}</p>
51、<p> else if(J<K-1) {LOW=0;HIGH=1;}</p><p> else {HIGH=1;LOW=1;}</p><p><b> }</b></p><p> else{HIGH=1;LOW=1;}</p><p><b>
52、}</b></p><p><b> }</b></p><p><b> 1602.H:</b></p><p> #include<reg52.h> </p><p> #include<intrins.h></p><p>
53、 #ifndef __1602_H__</p><p> #define __1602_H__</p><p> bit LCD_Check_Busy(void);</p><p> void LCD_Write_Com(unsigned char com);</p><p> void LCD_Write_Data(unsigne
54、d char Data);</p><p> void LCD_Clear(void);</p><p> void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s);</p><p> void LCD_Write_Char(unsigned char x,unsigned
55、char y,unsigned char Data);</p><p> void LCD_Init(void);</p><p> void Lcd_User_Chr(void); </p><p><b> #endif</b></p><p><b> 1602.C</b><
56、/p><p> #include "1602.h"</p><p> #include "delay.h"</p><p> #define CHECK_BUSY</p><p> sbit RS = P2^7; //定義端口 </p><p> sbit RW = P
57、2^6;</p><p> sbit EN = P2^5;</p><p> #define RS_CLR RS=0 </p><p> #define RS_SET RS=1</p><p> #define RW_CLR RW=0 </p><p> #define RW_SET RW=1 </p&
58、gt;<p> #define EN_CLR EN=0</p><p> #define EN_SET EN=1</p><p> #define DataPort P0</p><p> /*------------------------------------------------</p><p><b&g
59、t; 判忙函數(shù)</b></p><p> ------------------------------------------------*/</p><p> bit LCD_Check_Busy(void) </p><p><b> { </b></p><p> #ifdef CHECK_B
60、USY</p><p> DataPort= 0xFF; </p><p><b> RS_CLR; </b></p><p><b> RW_SET; </b></p><p><b> EN_CLR; </b></p><p><b&g
61、t; _nop_(); </b></p><p><b> EN_SET;</b></p><p> return (bit)(DataPort & 0x80);</p><p><b> #else</b></p><p><b> return 0;<
62、;/b></p><p><b> #endif</b></p><p><b> }</b></p><p> /*------------------------------------------------</p><p><b> 寫入命令函數(shù)</b>&
63、lt;/p><p> ----------------- ----------------------------*/</p><p> void LCD_Write_Com(unsigned char com) </p><p><b> { </b></p><p> while(LCD_Check_Bus
64、y()); //忙則等待</p><p><b> RS_CLR; </b></p><p><b> RW_CLR; </b></p><p><b> EN_SET; </b></p><p> DataPort= com; </p><p>
65、;<b> _nop_(); </b></p><p><b> EN_CLR;</b></p><p><b> }</b></p><p> /*------------------------------------------------</p><p><
66、;b> 寫入數(shù)據(jù)函數(shù)</b></p><p> ------------------------------------------------*/</p><p> void LCD_Write_Data(unsigned char Data) </p><p><b> { </b></p><
67、p> while(LCD_Check_Busy()); //忙則等待</p><p><b> RS_SET; </b></p><p><b> RW_CLR; </b></p><p><b> EN_SET; </b></p><p> DataPort=
68、 Data; </p><p><b> _nop_();</b></p><p><b> EN_CLR;</b></p><p><b> }</b></p><p> /*----------------------------------------------
69、--</p><p><b> 清屏函數(shù)</b></p><p> ------------------------------------------------*/</p><p> void LCD_Clear(void) </p><p><b> { </b></p>
70、<p> LCD_Write_Com(0x01); </p><p> DelayMs(5);</p><p><b> }</b></p><p> /*------------------------------------------------</p><p><b> 寫入字符串
71、函數(shù)</b></p><p> ------------------------------------------------*/</p><p> void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) </p><p><b> { &l
72、t;/b></p><p> if (y == 0) </p><p><b> { </b></p><p> LCD_Write_Com(0x80 + x); //表示第一行</p><p><b> }</b></p><p><b&
73、gt; else </b></p><p><b> { </b></p><p> LCD_Write_Com(0xC0 + x); //表示第二行</p><p><b> } </b></p><p> while (*s) </p
74、><p><b> { </b></p><p> LCD_Write_Data( *s); </p><p> s ++; </p><p><b> }</b></p><p><b> }</b></p>
75、<p> /*------------------------------------------------</p><p><b> 寫入字符函數(shù)</b></p><p> ------------------------------------------------*/</p><p> void LCD_Write
76、_Char(unsigned char x,unsigned char y,unsigned char Data) </p><p><b> { </b></p><p> if (y == 0) </p><p><b> { </b></p><p> LCD_Writ
77、e_Com(0x80 + x); </p><p><b> } </b></p><p><b> else </b></p><p><b> { </b></p><p> LCD_Write_Com(0xC0 + x); </
78、p><p><b> } </b></p><p> LCD_Write_Data( Data); </p><p><b> }</b></p><p> /*------------------------------------------------</p>
79、<p><b> 初始化函數(shù)</b></p><p> ------------------------------------------------*/</p><p> void LCD_Init(void) </p><p><b> {</b></p><p> LC
80、D_Write_Com(0x38); /*顯示模式設(shè)置*/ </p><p> DelayMs(5); </p><p> LCD_Write_Com(0x38); </p><p> DelayMs(5); </p><p> LCD_Write_Com(0x38); </p><p> DelayM
81、s(5); </p><p> LCD_Write_Com(0x38); </p><p> LCD_Write_Com(0x08); /*顯示關(guān)閉*/ </p><p> LCD_Write_Com(0x01); /*顯示清屏*/ </p><p> LCD_Write_Com(0x06); /*顯示光標(biāo)移動(dòng)設(shè)置
82、*/ </p><p> DelayMs(5); </p><p> LCD_Write_Com(0x0C); /*顯示開及光標(biāo)設(shè)置*/</p><p><b> }</b></p><p><b> delay.H:</b></p><p> #ifndef
83、 __DELAY_H__</p><p> #define __DELAY_H__</p><p> /*------------------------------------------------</p><p> uS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值</p><p> unsigned char
84、 是定義無符號(hào)字符變量,其值的范圍是</p><p> 0~255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編,大致延時(shí)</p><p> 長度如下 T=tx2+5 uS </p><p> ------------------------------------------------*/</p><p> void DelayUs2x
85、(unsigned char t);</p><p> /*------------------------------------------------</p><p> mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值</p><p> unsigned char 是定義無符號(hào)字符變量,其值的范圍是</p><p&
86、gt; 0~255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編</p><p> ------------------------------------------------*/</p><p> void DelayMs(unsigned char t);</p><p><b> #endif</b></p><
87、p><b> delay.C:</b></p><p> #include "delay.h"</p><p> /*------------------------------------------------</p><p><b> 大致延時(shí)</b></p><
88、p> T=tx2+5 uS </p><p> ------------------------------------------------*/</p><p> void DelayUs2x(unsigned char t)</p><p><b> { </b></p><p> while(
89、--t);</p><p><b> }</b></p><p> /*------------------------------------------------</p><p> mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值</p><p> -------------------
90、-----------------------------*/</p><p> void DelayMs(unsigned char t)</p><p><b> { </b></p><p> while(t--)</p><p><b> {</b></p>&l
91、t;p><b> //大致延時(shí)1mS</b></p><p> DelayUs2x(245);</p><p> DelayUs2x(245);</p><p><b> }</b></p><p><b> }</b></p><p>
92、<b> 18b20.H:</b></p><p> #ifndef __DS18B20_H__</p><p> #define __DS18B20_H__</p><p> #include<reg52.h> </p><p> #include<intrins.h></
93、p><p> #define uchar unsigned char</p><p> #define uint unsigned int;</p><p> /*------------------------------------------------</p><p><b> 端口定義</b></
94、p><p> ------------------------------------------------*/</p><p> sbit DQ=P2^0;//ds18b20 端口</p><p> /*------------------------------------------------</p><p><b>
95、 函數(shù)聲明</b></p><p> ------------------------------------------------*/</p><p> unsigned int ReadTemperature(void);</p><p> bit Init_DS18B20(void);</p><p> unsig
96、ned char ReadOneChar(void);</p><p> void WriteOneChar(unsigned char dat);</p><p><b> #endif</b></p><p><b> 18b20.C:</b></p><p> /*----------
97、-------------------------------------</p><p> 名稱:18B20溫度傳感器</p><p> ------------------------------------------------*/</p><p> #include"delay.h"</p><p> #
98、include"18b20.h"</p><p> /*------------------------------------------------</p><p><b> 18b20初始化</b></p><p> ------------------------------------------------
99、*/</p><p> bit Init_DS18B20(void)</p><p><b> {</b></p><p> bit dat=0;</p><p> DQ = 1; //DQ復(fù)位</p><p> DelayUs2x(5); //稍做延時(shí)</p>
100、<p> DQ = 0; //單片機(jī)將DQ拉低</p><p> DelayUs2x(200); //精確延時(shí) 大于 480us 小于960us</p><p> DelayUs2x(200);</p><p> DQ = 1; //拉高總線</p><p> DelayUs2x(50); /
101、/15~60us 后 接收60-240us的存在脈沖</p><p> dat=DQ; //如果x=0則初始化成功, x=1則初始化失敗</p><p> DelayUs2x(25); //稍作延時(shí)返回</p><p> return dat;</p><p><b> }</b></p>
102、;<p> /*------------------------------------------------</p><p><b> 讀取一個(gè)字節(jié)</b></p><p> ------------------------------------------------*/</p><p> unsigned cha
103、r ReadOneChar(void)</p><p><b> {</b></p><p> unsigned char i=0;</p><p> unsigned char dat = 0;</p><p> for (i=8;i>0;i--)</p><p><b>
104、; {</b></p><p> DQ = 0; // 給脈沖信號(hào)</p><p><b> dat>>=1;</b></p><p> DQ = 1; // 給脈沖信號(hào)</p><p><b> if(DQ)</b></p><p> d
105、at|=0x80;</p><p> DelayUs2x(25);</p><p><b> }</b></p><p> return(dat);</p><p><b> }</b></p><p> /*----------------------------
106、--------------------</p><p><b> 寫入一個(gè)字節(jié)</b></p><p> ------------------------------------------------*/</p><p> void WriteOneChar(unsigned char dat)</p><p>
107、;<b> {</b></p><p> unsigned char i=0;</p><p> for (i=8; i>0; i--)</p><p><b> {</b></p><p><b> DQ = 0;</b></p><p&g
108、t; DQ = dat&0x01;</p><p> DelayUs2x(25);</p><p><b> DQ = 1;</b></p><p><b> dat>>=1;</b></p><p><b> }</b></p>&
109、lt;p> DelayUs2x(25);</p><p><b> }</b></p><p> /*------------------------------------------------</p><p><b> 讀取溫度</b></p><p> -----------
110、-------------------------------------*/</p><p> unsigned int ReadTemperature(void)</p><p><b> {</b></p><p> unsigned char a=0;</p><p> unsigned int b=0;
111、</p><p> unsigned int t=0;</p><p> Init_DS18B20();</p><p> WriteOneChar(0xCC); // 跳過讀序號(hào)列號(hào)的操作</p><p> WriteOneChar(0x44); // 啟動(dòng)溫度轉(zhuǎn)換</p><p> DelayMs(10)
112、;</p><p> Init_DS18B20();</p><p> WriteOneChar(0xCC); //跳過讀序號(hào)列號(hào)的操作 </p><p> WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度</p><p> a=ReadOneChar(); //低位</p&g
113、t;<p> b=ReadOneChar(); //高位</p><p><b> b<<=8;</b></p><p><b> t=a+b;</b></p><p> return(t);</p><p><b> }</b><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的交通控制系統(tǒng)模擬設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---單片機(jī)恒溫控制
- 恒溫控制器課程設(shè)計(jì)--基于單片機(jī)溫度控制電路的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---水溫控制器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--水溫控制器設(shè)計(jì)
- 單片機(jī)水溫控制系統(tǒng)課程設(shè)計(jì)
- 恒溫控制課程設(shè)計(jì)---恒溫控制電路的設(shè)計(jì)
- 基于單片機(jī)的恒溫控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)恒溫控制系統(tǒng)的設(shè)計(jì)
- 單片機(jī)畢業(yè)設(shè)計(jì)---基于單片機(jī)的恒溫控制器的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的恒溫控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的水溫控制系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--基于單片機(jī)的水溫控制系統(tǒng)
- 課程設(shè)計(jì)-- 恒溫控制系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)模擬電子時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制步進(jìn)電機(jī)
- 課程設(shè)計(jì)--基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)模擬電子時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制各種器件
評(píng)論
0/150
提交評(píng)論