版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課題名稱:基于DS18B20的溫度計</p><p><b> 一:方案設(shè)計</b></p><p> 本系統(tǒng)主要由三個模塊組成:控制模塊、溫度采集模塊、顯示模塊。</p><p><b> 1.1 控制模塊</b></p><p> 本設(shè)計采用單片機(jī)基于數(shù)字溫度傳感器
2、DS18B20的系統(tǒng)。單片機(jī)AT89C51具有低電壓供電和體積小等特點(diǎn),四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用。溫度傳感器DS18B20利用單總線的特點(diǎn)可以方便的實(shí)現(xiàn)多點(diǎn)溫度的測量,組建傳感器網(wǎng)絡(luò),且系統(tǒng)的抗干擾性好、設(shè)計靈活、方便,而且能在惡劣的環(huán)境下進(jìn)行現(xiàn)場溫度檢測。本系統(tǒng)可以應(yīng)用在大型工業(yè)及民用常溫多點(diǎn)監(jiān)測場合。</p><p><b> 1.2溫度采集模
3、塊</b></p><p> 這一部分主要完成對溫度信號的采集和轉(zhuǎn)換工作,由DS18B20數(shù)字溫度傳感器及其與單片機(jī)的接口部分組成。DS18B20智能溫度溫度傳感器進(jìn)行溫度采集和轉(zhuǎn)換輸出數(shù)字型的溫度值,然后通過數(shù)據(jù)引腳傳到單片機(jī)的P3.7口,單片機(jī)接受溫度并存儲。DS18B20是美國DALLAS半導(dǎo)體公司最新推出的一種單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,它可將溫度信號直接轉(zhuǎn)換
4、為數(shù)字信號,實(shí)現(xiàn)了與單片機(jī)的直接接口,從而省去了信號調(diào)理和A/D轉(zhuǎn)換等復(fù)雜模/數(shù)轉(zhuǎn)換電路。DS18B20構(gòu)成的溫度采集模塊電路簡單、功能可靠、測量效率高,很好地彌補(bǔ)了傳統(tǒng)溫度測量方法的不足可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測量及控制儀器、測控系統(tǒng)和大型設(shè)備中。它具有集成度高、模擬輸入數(shù)字輸出、抗干擾能力強(qiáng)、體積小、接口方便、傳輸距離遠(yuǎn)測溫誤差小等特點(diǎn)。</p><p> 圖1.2.1:DS18B20 PR-
5、35式封裝</p><p><b> 1.3溫度顯示模塊</b></p><p> 本課程設(shè)計的顯示模塊采用LCD1602液晶顯示器顯示溫度數(shù)據(jù),整數(shù),一位小數(shù)進(jìn)行顯示,從P0口送數(shù),P2口掃描。 </p><p><b> 1.4系統(tǒng)框圖</b></p><p> 系統(tǒng)的系統(tǒng)設(shè)計方框圖如圖
6、1.1所示,它主要由三部分組成:①控制部分主芯片采用單片機(jī)AT89S51;②顯示部分采用3位共陰極LED數(shù)碼管以動態(tài)掃描方式實(shí)現(xiàn)溫度顯示;③溫度采集部分的溫度傳感器采用DS18B20智能溫度溫度傳感器。還有按鍵設(shè)置報警溫度值和加熱降溫電路。</p><p> 圖2.4.1:多路溫度檢測與控制總體設(shè)計框圖</p><p> 二:單元電路設(shè)計、參數(shù)計算和器件選擇</p>&l
7、t;p><b> 主要器件:</b></p><p> STC89C58RD+單片機(jī)(DIP40)</p><p> Lcd1602,1個</p><p> 470歐9針排阻,1個</p><p> 晶振:11.0592MHz,1個</p><p> 瓷片電容:30PF,2個&l
8、t;/p><p><b> 10K電阻,1個</b></p><p> DS18B20溫度計1個,PR-35式封裝</p><p> 2.1 DS18B20連接</p><p> 圖:2.1.1ds18b20 連接</p><p> 2.2DS18B20功能命令簡介及用法</p>
9、<p><b> 2.2.1功能簡介</b></p><p> ?。?) 智能溫度傳感器DS18B20的性能特點(diǎn):</p><p> 1) 獨(dú)特的單總線接口僅需要一個端口引腳進(jìn)行通信,可以是串行口也可以是其他I/O口,無須變換,直接輸出被測溫度值(9位二進(jìn)制,含符號位)。 多個DS18B20可以并聯(lián)掛接在一條總線上,實(shí)現(xiàn)實(shí)現(xiàn)多點(diǎn)溫度采集檢測功能;&
10、lt;/p><p> 2)可測溫度范圍為-55~+125℃,測量分辨率為0.0625℃;</p><p> 3) 內(nèi)含64位經(jīng)過激光修正的只讀存儲器ROM;</p><p> 4) 內(nèi)含寄生電源,可直接通過數(shù)據(jù)總線供電,電壓范圍為3.0~5.5V;</p><p><b> 5) 零待機(jī)功耗;</b></p&g
11、t;<p> 6)用戶可通過編程分別設(shè)定各路的溫度上、下限溫度值來實(shí)現(xiàn)報警功能;</p><p> 7) 適配各種微處理器;</p><p> 8) 報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;</p><p> 9) 負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作;</p><p>
12、; 10) 可檢測距離遠(yuǎn),最遠(yuǎn)測量距離為150m 。</p><p> ?。?) DS18B20的內(nèi)部結(jié)構(gòu)</p><p> DS18B20的內(nèi)部結(jié)構(gòu)如圖3-1所示。 DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度報警觸發(fā)器,溫度傳感器以及高速緩存器。</p><p> 64位光刻ROM。64位光刻ROM是出廠前已被刻好的,它可以看做是該DS1
13、8B0的地址序列號,不同的器件不一樣,64位的地址序列號的構(gòu)成如表2-1所示。開始8位是產(chǎn)品序列號代表產(chǎn)品的序列,接著48位產(chǎn)品序號代表同一系列產(chǎn)品的不同產(chǎn)品,最后8位是前56位的CRC校驗(yàn)碼,所以不同的器件的地址序列號各不一樣這也是多個DS18B20可以采用一線進(jìn)行通信的原因(8位CRC編碼的計算公式為CRC=X+X+X+1)。在64 b ROM的最高有效字節(jié)中存儲有循環(huán)冗余校驗(yàn)碼(CRC)。主機(jī)根據(jù)ROM的前56位來計算CRC值,并
14、和存入DS18B20中的CRC值做比較,以判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。</p><p> 表2.2.1 64位ROM地址序列號結(jié)構(gòu)</p><p> 圖2.2.1 DS18B20內(nèi)部結(jié)構(gòu)</p><p> 2) 非揮發(fā)的溫度報警觸發(fā)器(包括上限溫度觸發(fā)器TH和下限溫度觸發(fā)器TL)??赏ㄟ^軟件程序?qū)懭朐O(shè)定用戶所要求的報警上下限溫度值。</p>
15、<p> 3) 高速暫存器??梢栽O(shè)置DS18B20溫度轉(zhuǎn)換的精度。DS18B20出廠時該位被設(shè)置為0,用戶要去改動,R1和R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率,如圖1.4。</p><p> DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的E2PRAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲器, </p><p> 圖4.2.2 DS
16、18B20 暫存寄存器分布</p><p><b> 2.2.2命令簡介</b></p><p> 根據(jù) DS18B20 的通訊協(xié)議,主機(jī)(單片機(jī))控制 DS18B20 完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀</p><p> 寫之前都要對 DS18B20 進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送一條 ROM 指令,最后發(fā)送 RAM 指令,這樣才能&
17、lt;/p><p> 對 DS18B20 進(jìn)行預(yù)定的操作。復(fù)位要求主 CPU 將數(shù)據(jù)線下拉 500 微秒,然后釋放,當(dāng) DS18B20 收到信</p><p> 號后等待 16~60 微秒左右,后發(fā)出 60~240 微秒的存在低脈沖,主 CPU 收到此信號表示復(fù)位成功。</p><p> 圖:2.2.3 ROM指令表</p><p> 圖
18、:2.2.4 RAM指令表</p><p><b> 2.2.3簡單用法</b></p><p> (1)DS18B20的初始化</p><p> DS18B20的所有操作均從初始化開始,初始化的過程是首先由CPU發(fā)出一個復(fù)位脈沖,復(fù)位脈沖的時間為480~960us,然后由叢屬器件發(fā)出應(yīng)答脈沖。初始化是主CPU發(fā)出一個復(fù)位信號,將數(shù)據(jù)總線
19、上的所有DS18B20復(fù)位,然后釋放總線,該總線位接收狀態(tài)。由于接有上拉電阻,在釋放總線是有15 ~60us的時間間隙,在此之后的60~240us時間內(nèi),如果CPU檢測到總線為低電平的話,則說明DS18B20初始化完成。</p><p> (2)發(fā)送ROM命令</p><p> ROM的操作命令位8位二進(jìn)制數(shù),CPU對ROM的操作有讀ROM命令、符合ROM命令、搜索ROM命令、跳過RO
20、M命令、報警搜索命令共5種。其中符合ROM命令是用來識別連在總線是的DS18B20芯片,其過程是主CPU發(fā)出符合ROM命令(代碼位55H)后,接著送出64位的ROM數(shù)據(jù)序列,從而使主CPU實(shí)現(xiàn)對單總線上的特定DS18B20進(jìn)行尋址,只有與64位序列嚴(yán)格相符的DS18B20才能對后續(xù)的操作發(fā)出響應(yīng),符合ROM命令只對同時掛在總線上的多片DS18B20適用。</p><p><b> 發(fā)送RAM命令<
21、;/b></p><p> RAM命令是暫存器操作命令,共有6條,在前面已經(jīng)列出,其功能是實(shí)現(xiàn)溫度的轉(zhuǎn)換、讀/寫、復(fù)制暫存器的內(nèi)容等功能。</p><p> 在具體的設(shè)計過程中,訪問DS18B20也是通過程序設(shè)計來實(shí)現(xiàn)的。具體程序可以按照上面的工作時序圖和命令的相應(yīng)格式進(jìn)行程序設(shè)計。</p><p> 另外,由于DS18B20單線通信功能是分時完成的,他
22、有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。</p><p><b> 測溫流程</b></p><p> 圖2.2.5 DS18B20測溫流程</p><p> 2.3 LCD1602的用法</p
23、><p> 2.31 LCD1602的特性</p><p> +5V電壓,對比度可調(diào)</p><p><b> 內(nèi)含復(fù)位電路</b></p><p> 提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能</p><p> 有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM</p>
24、<p> 內(nèi)建有160個5X7點(diǎn)陣的字型的字符發(fā)生器CGROM</p><p> 8個可由用戶自定義的5X7的字符發(fā)生器CGRAM</p><p> 2.32 LCD1602接口說明</p><p> 2.33 LCD1602字符碼</p><p> 2.34 LCD1602 基本操作時序(11條指令)</p&g
25、t;<p> 讀狀態(tài) 輸入:RS=L,RW=H,E=H </p><p> 輸出:DB0~DB7=狀態(tài)字 寫指令 輸入:RS=L,RW=L,E=下降沿脈沖,DB0~DB7=指令碼 輸出:無
26、 讀數(shù)據(jù) 輸入:RS=H,RW=H,E=H</p><p> 輸出: DB0~DB7=數(shù)據(jù)</p><p> 寫數(shù)據(jù) 輸入:RS=H,RW=L,E=下降沿脈沖,DB0~DB7=數(shù)據(jù)</p><p><b> 輸出:無</b><
27、;/p><p> 2.35 LCD1602自定義字符(最多8個 存放于CGRAM)</p><p> 我們從CGROM表上可以看到,在表的最左邊是一列可以允許用戶自定義的CGRAM,從上往下看著是16個,實(shí)際只有8個字節(jié)可用。它的字符碼是 00000000-00000111這8個地址,表的下面還有8個字節(jié),但因?yàn)檫@個CGRAM的字符碼規(guī)定0-2位為地址,3位無效,4-7全為零。因此 CGR
28、AM的字符碼只有最后三位能用也就是8個字節(jié)了。等效為0000X111,X為無效位,最后三位為000-111共8個。 如果我們要想顯示這8個用戶自定義的字符,操作方法和顯示CGROM的一樣,先設(shè)置DDRAM位置,再向DDRAM寫入字符碼,例如“A”就是41H?,F(xiàn) 在我們要顯示CGRAM的第一個自定義字符,就向DDRAM寫入00000000B(00H),如果要顯示第8個就寫入00000111(08H)</p>&l
29、t;p> 三:利用Proteus軟件對電路進(jìn)行仿真調(diào)試</p><p><b> 四:程序流程圖</b></p><p> 首先程序開始,將液晶顯示器進(jìn)行初始化。完畢后像lcd中寫入一個自定義字符“°”,用于顯示 ℃,如上圖所示。調(diào)用程序顯示靜態(tài)不需要改變的文字。之后獲取溫度數(shù)據(jù)轉(zhuǎn)化并送顯示。 </p><p><b
30、> 接↓下頁</b></p><p><b> 接↑上頁</b></p><p> 圖4.1 主程序流程圖</p><p> 圖4.2 靜態(tài)顯示流程圖 圖4.3 ds18b20獲取溫度流程圖</p><p> --------------------
31、---------------------------------------------------</p><p> 獲取ds18b20的溫度數(shù)據(jù),并合成為一個12位的2進(jìn)制數(shù),然后通過精度轉(zhuǎn)換為一個10進(jìn)制數(shù)。通過判斷其大小 判斷數(shù)的正負(fù)值,若為負(fù)進(jìn)行取反加1轉(zhuǎn)換為正數(shù),之后分別送顯。</p><p><b> 調(diào)用8次</b></p><
32、;p><b> 返回8次</b></p><p> 調(diào)用8次 </p><p><b> 返回8次 </b></p><p><b> N</b></p><p>
33、 Y 圖4.4溫度轉(zhuǎn)換流程圖</p><p> 將送顯過來的數(shù)據(jù)接收到后,先進(jìn)去取位操作,將數(shù)進(jìn)行分離,然后判斷數(shù)據(jù)大小,根據(jù)大小選擇顯示,實(shí)現(xiàn)友好的顯示界面。</p><p> 圖4.5 正數(shù)顯示流程圖 圖4.6負(fù)數(shù)顯示流程圖</p><p><b> 五:實(shí)驗(yàn)源程序</b
34、></p><p> #include<reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> uchar code disp[]="0123456789- ";</p
35、><p> uchar code disp2[]="Tempreture";</p><p> /*自定義文字是8*8點(diǎn)陣構(gòu)成的 但是前3位是無效的,如10100111 </p><p> 有效位是后面5位,前3位是1和0沒區(qū)別,最好為0*/</p><p> uchar user[]={0x07,0x05,0x07
36、,0x00,0x00,0x00,0x00,0x00};//自定義”°“</p><p> sbit lcden=P2^0;</p><p> sbit lcdrw=P2^1;</p><p> sbit lcdrs=P2^2;</p><p> sbit tempt=P2^3; //數(shù)據(jù)總線</p>&l
37、t;p> uint u_temp,s_temp; //定義無符號整型形參</p><p> float f_temp; //定義浮點(diǎn)型形參</p><p> void delay(uint x) //延時500ms程序</p><p><b> {</b></p><p><b>
38、 uint i,j;</b></p><p> for(i=0;i<x;i++)</p><p> for(j=0;j<130;j++);</p><p><b> }</b></p><p> /* rs=0 輸入指令 rs=1 輸入數(shù)據(jù)*/</p><p>
39、/* r/w=0 向lcd寫入指令或數(shù)據(jù) r/w=1 從lcd 讀取信息*/</p><p> /* en=1時候 讀取信息 1→0(下降沿)執(zhí)行命令*/</p><p> void write_com(uchar com) //液晶寫命令</p><p><b> {</b></p><p> lcdrs
40、=0; </p><p><b> lcdrw=0;</b></p><p><b> P0=com;</b></p><p><b> delay(2);</b></p><p><b> lcden=1;</b></p>&l
41、t;p><b> delay(2);</b></p><p><b> lcden=0;</b></p><p><b> }</b></p><p> void write_data(uchar date)//液晶寫數(shù)據(jù)</p><p><b>
42、 {</b></p><p><b> lcdrs=1;</b></p><p><b> lcdrw=0;</b></p><p><b> P0=date;</b></p><p><b> delay(2);</b></p&
43、gt;<p><b> lcden=1;</b></p><p><b> delay(2);</b></p><p><b> lcden=0;</b></p><p><b> }</b></p><p> void lcd_i
44、nit() //液晶初始化</p><p><b> {</b></p><p><b> lcden=0;</b></p><p><b> lcdrw=0;</b></p><p> write_com(0x38); //初始化液晶第一行</
45、p><p> write_com(0x0c); //開顯示 不顯示光標(biāo) 不閃爍</p><p> write_com(0x06); //每次寫入數(shù)據(jù)后 地址加1</p><p> write_com(0x01); //清屏</p><p><b> }</b></p><p>
46、 void display_tempt(uint date) //溫度數(shù)據(jù)顯示</p><p><b> {</b></p><p> uchar i,j,k,m;</p><p> m=date/1000;// 百位</p><p> i=(date%1000)/100;//十位</p
47、><p> j=(date%100)/10;//個位</p><p> k=date%10;//小數(shù)位</p><p> write_com(0x80+0x40+5);//從液晶顯示屏第二行的第5位開始顯示</p><p> if(date>=1000) </p><p> {write_dat
48、a(disp[m]);</p><p> write_data(disp[i]);</p><p> write_data(disp[j]);</p><p> write_data('.');</p><p> write_data(disp[k]);}</p><p> else if(d
49、ate>=100&&date<1000)</p><p> {write_data(disp[11]);</p><p> write_data(disp[i]);</p><p> write_data(disp[j]);</p><p> write_data('.');</p&
50、gt;<p> write_data(disp[k]);</p><p><b> }</b></p><p> else if(date>=0&&date<100)</p><p> {write_data(disp[11]);</p><p> write_dat
51、a(disp[11]);</p><p> write_data(disp[j]);</p><p> write_data('.');</p><p> write_data(disp[k]);</p><p><b> }</b></p><p><b
52、> }</b></p><p> void display_ftemp(uint date) // 顯示負(fù)數(shù)溫度</p><p><b> {</b></p><p> uchar i,j,k;</p><p> i=date/100;//十位</p><p&g
53、t; j=date%100/10;//個位</p><p> k=date%100%10;//小數(shù)位</p><p> write_com(0x80+0x40+5);//從液晶顯示屏第二行的第4位開始顯示</p><p> if(date>=100&&date<600)</p><p><
54、b> {</b></p><p> write_data(disp[10]); //顯示負(fù)號</p><p> write_data(disp[i]);</p><p> write_data(disp[j]);</p><p> write_data('.');</p><
55、p> write_data(disp[k]);</p><p><b> }</b></p><p> else if(date>0&&date<100)</p><p><b> {</b></p><p> write_data(disp[11]);&
56、lt;/p><p> write_data(disp[10]);</p><p> write_data(disp[j]);</p><p> write_data('.');</p><p> write_data(disp[k]);</p><p><b> }</b>&
57、lt;/p><p><b> }</b></p><p> void reset_tempt() //DS18B20復(fù)位,初始化</p><p><b> {</b></p><p><b> uint i;</b></p><p> tem
58、pt=0; //先將數(shù)據(jù)總線拉到低電平</p><p><b> i=90;</b></p><p> while(i>0)i--; //延時480到960微妙</p><p> tempt=1; //數(shù)據(jù)線拉到高電平</p><p> i=4;//延時</p><
59、;p> while(i>0)i--;</p><p><b> }</b></p><p> bit read_bit()//讀一位DS18B20數(shù)據(jù)</p><p><b> {</b></p><p><b> uint i;</b></p
60、><p><b> bit dat;</b></p><p><b> tempt=0;</b></p><p> i++;//延時</p><p><b> tempt=1;</b></p><p> i++;//延時</p
61、><p><b> i++;</b></p><p> dat=tempt;</p><p> i=8;//延時</p><p> while(i>0)i--;</p><p> return dat;</p><p><b> }</
62、b></p><p> uchar read_tempt()//讀一個字節(jié)DS18B20數(shù)據(jù)</p><p><b> {</b></p><p> uchar i,j,dat;</p><p><b> dat=0;</b></p><p> for(i
63、=1;i<=8;i++)</p><p><b> {</b></p><p> j=read_bit();</p><p> dat=(j<<7)|(dat>>1); //將讀取的數(shù)據(jù)位按讀取先后順序,</p><p> } //從低位到高位(從右往左)排列保存到dat&
64、lt;/p><p> return dat;</p><p><b> }</b></p><p> void write_byte(uchar dat)//寫一個字節(jié)數(shù)據(jù)到DS18B20</p><p><b> {</b></p><p><b> u
65、int i;</b></p><p><b> uchar j;</b></p><p> bit testbit;</p><p> for(j=1;j<=8;j++)</p><p><b> {</b></p><p> testbit=da
66、t&0x01;//每次只寫一位數(shù)據(jù)</p><p> dat=dat>>1;</p><p> if(testbit)</p><p><b> {</b></p><p><b> tempt=0;</b></p><p> i++;
67、//延時</p><p><b> tempt=1;</b></p><p> i=8;//延時</p><p> while(i>0)i--;</p><p><b> }</b></p><p><b> else</b>
68、</p><p><b> {</b></p><p><b> tempt=0;</b></p><p> i=8;//延時</p><p> while(i>0)i--;</p><p><b> tempt=1;</b>&l
69、t;/p><p> i++;//延時</p><p><b> i++;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
70、<p> void convert_tempt() //DS18B20開始獲取溫度并進(jìn)行轉(zhuǎn)換</p><p><b> {</b></p><p> reset_tempt();</p><p><b> delay(1);</b></p><p> write_byte(0x
71、cc); //跳過64位rom地址 直接向ds18b20下達(dá)溫度轉(zhuǎn)換命令</p><p> write_byte(0x44); //啟動18b20進(jìn)行溫度轉(zhuǎn)換</p><p><b> }</b></p><p> uint get_tempt() //讀取DS18B20寄存器中的溫度數(shù)據(jù)</p><p>
72、<b> {</b></p><p> uchar a,b;</p><p> reset_tempt(); //復(fù)位</p><p><b> delay(1);</b></p><p> write_byte(0xcc);</p><p> write_b
73、yte(0xbe);//讀內(nèi)部ram中9字節(jié)的內(nèi)容</p><p> a=read_tempt();//讀取溫度低8位</p><p> b=read_tempt();//讀取溫度高8位</p><p><b> u_temp=b;</b></p><p> u_temp<<=8;</
74、p><p> u_temp=u_temp|a;</p><p> f_temp=u_temp*0.0625; //精度為12位,所以分辨率為0.0625</p><p> s_temp=f_temp*10 ; //乘以10,將實(shí)際溫度擴(kuò)大10倍</p><p> if(s_temp<1260)</p><
75、;p> display_tempt(s_temp);</p><p> if(s_temp>1260)</p><p><b> {</b></p><p> u_temp=~u_temp+1;</p><p> f_temp=u_temp*0.0625;</p><p>
76、 s_temp=f_temp*10;</p><p> display_ftemp(s_temp);</p><p><b> }</b></p><p><b> }</b></p><p> void display() //靜態(tài)文字顯示</p><p>&
77、lt;b> {</b></p><p><b> uchar i;</b></p><p> write_com(0x80+0x03); //0x80+3(0x80+0x03)表示從液晶顯示屏第一行的第四位開始顯示</p><p> for(i=0;i<10;i++)</p><p>
78、<b> {</b></p><p> write_data(disp2[i]);</p><p><b> }</b></p><p> write_com(0x80+0x40+10); //從液晶顯示屏第二行的第11位開始顯示</p><p> write_data(0x00);<
79、;/p><p> write_data('C');</p><p><b> }</b></p><p> void main() //主函數(shù)</p><p><b> {</b></p><p><b> uchar i;</
80、b></p><p> lcd_init();</p><p> write_com(0x40);</p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p><b> delay(1);</b></p
81、><p> write_data(user[i]);</p><p><b> }</b></p><p> display();</p><p><b> while(1)</b></p><p><b> {</b></p>&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ds18b20溫度計課程設(shè)計
- 基于單片機(jī)設(shè)計的溫度計(ds18b20)課程設(shè)計
- 課程設(shè)計--基于單片機(jī)的ds18b20數(shù)字溫度計設(shè)計
- 課程設(shè)計--ds18b20數(shù)字溫度計
- ds18b20數(shù)字溫度計設(shè)計課程設(shè)計
- 基于ds18b20的溫度計設(shè)計
- 課程設(shè)計--基于51單片機(jī)與ds18b20的數(shù)字溫度計設(shè)計
- 課程設(shè)計-基于ds18b20數(shù)字溫度計的設(shè)計
- 單片機(jī)課程設(shè)計報告--ds18b20數(shù)字溫度計的設(shè)計與實(shí)現(xiàn)
- ds18b20數(shù)字溫度計的設(shè)計
- 基于ds18b20數(shù)字式溫度計課程設(shè)計
- 基于ds18b20和1602的溫度計課程設(shè)計報告
- 溫度計課程設(shè)計---基于51單片機(jī)數(shù)字溫度計設(shè)計
- 數(shù)字溫度計ds18b20課程設(shè)計報告
- ds18b20 數(shù)字溫度計外文翻譯
- 數(shù)字溫度計課程設(shè)計---基于51單片機(jī)數(shù)字溫度計設(shè)計
- 外文翻譯---ds18b20 數(shù)字溫度計
- 數(shù)字溫度計課程設(shè)計---基于51單片機(jī)數(shù)字溫度計設(shè)計
- 基于單片機(jī)溫度計課程設(shè)計
- 單片機(jī)溫度計課程設(shè)計--人工智能時鐘溫度計
評論
0/150
提交評論