電飯煲課程設計程序_第1頁
電飯煲課程設計程序_第2頁
電飯煲課程設計程序_第3頁
電飯煲課程設計程序_第4頁
電飯煲課程設計程序_第5頁
已閱讀5頁,還剩59頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、課程設計任務書 專業 年級 班 一、 設計題目 電飯煲控制器二、 主要內容電飯煲控制器有預約功能,有烹飪大米飯、粥、保溫、冷飯加熱等功能三、 具體要求 1.具體功能大米飯:當達到105°時,停止加熱,并在15分鐘后通過蜂鳴器提示用戶。粥:開始加熱后,通過測溫元件監視鍋底溫度,使鍋底溫度保持在99°100.5°之間(100°時停止加熱、99°時開始加熱),此種狀態持續20分鐘,之后通過蜂鳴器提示用戶過程結束。保溫:使鍋底溫度維持在50°60°之間。冷飯加熱:鍋底加熱至100°,使鍋底溫度保持在99°100.

2、5°之間(100°時停止加熱、99°時開始加熱),此種狀態持續5分鐘,之后通過蜂鳴器提示用戶過程結束。2.定時 用戶可以是電飯煲在預約時間(倒計時方式)開始工作,最長預約時長為12小時。3.控制面板四個發光管分別與大米飯、粥、保溫、冷飯加熱相對應,另一發光管用于區分工作與預約,兩位數碼管用于預約時間及倒計時。按鍵有:開始鍵、功能鍵、加鍵、減鍵。四、 進度安排1、了解任務要求,確定具體方案2、lcd12864液晶屏子程序設計3、DS18B20溫度傳子程序感器設計4、設計單片機按鍵功能程序5、根據任務要求編寫程序,設計按鍵電路6、檢驗設計效果,完善功能五、 完成后應上

3、交的材料電飯煲控制器論文六、 總評成績指導教師 簽名日期 年 月 日系主任 審核日期 年 月 日摘要電飯煲控制器有預約功能,有烹飪大米飯、粥、保溫、冷飯加熱等功能.。基于stc89c52單片機控制的電飯煲控制器,有lcd液晶屏顯示和ds18b20溫度檢測功能,還有定時工作選擇功能。關鍵字:電飯煲 溫度控制 DS18B20 LCD12864 鍵盤按鍵目錄一、任務分析與設計電路11、總體方案設計11.1、控制方案選擇11.2、測溫模塊控制選擇11.3、鍵盤按鍵方案選擇21.4、顯示方案選擇21.5、聲音模塊方案選擇31.6、功率元件模塊方案選擇32、電路設計32.1、控制模塊32.2、測溫模塊62

4、.3、鍵盤模塊102.4、顯示模塊112.5、聲音模塊132.6、功率模塊14二、軟件設計151、程序流程圖151.1、主流程圖151.2、子流程圖171.3、功率元件控制流程圖171.4、定時預約工作流程圖18三、系統調試分析201、系統硬件調試202、系統軟件調試20四、心得體會20一、任務分析與設計電路1、總體方案設計1.1、控制方案選擇 方案:采用STC公司的STC89C52RC。此單片機價格低,資源多,高性價比,應用廣泛,無論是從內部構造,還是編程方面,51系列單片機都相對簡單容易掌握和使用。 對于本題目而言,由于電飯煲需要實現的功能少,對處理器的要求不高, 使用STC89C52RC

5、不僅可以完全實現對電飯煲的控制,還節約了成本。綜合考慮,電飯煲控制器采用STC89C52RC單片機。1.2、測溫模塊控制選擇測溫模塊采用數字溫度傳感器DS1820。DS1820是美國DALLAS半導體公司生產的可組網數字式溫度傳感器,其內部使用了在板(ON-B0ARD)專利技術。全部傳感元件及轉換電路集成在形如一只三極管的集成電路內。與其它溫度傳感器相比,DS1820具有以下特性: 1. 獨特的單線界面方式,DS1820在與微處理器連接時僅需要一條口線即可實現微處理器與DS1820的雙向通訊。2. DS1820支持多點組網功能,多個DS1820可以并聯在唯一的三在線,實現多

6、點測溫。  3. DS1820在使用中不需任何外圍元鍵。  4.測溫范圍55125,固有測溫分辨率0.5。  5. 測量結果以9位數字量方式串行傳送。由于在本課程設計中,電飯煲的期望溫度最高值在數字溫度傳感器DS1820的量程內,同時,DS1820具有測溫系統簡單、測溫精度高、連接方便、占用口線少等優點。所以,我選用DS18B20溫度傳感器。1.3、鍵盤按鍵方案選擇由于在該課程設計中,需要的按鍵只要四個:開始鍵、功能鍵、加鍵、減鍵,鍵盤個數較少,可以用獨立式按鍵電路。所以我選用獨立按鍵電路。1.4、顯示方案選擇方案

7、一、使用數碼管顯示。數碼管能顯示數字,使用方法簡單方便,可是顯示過于單調。方案二、使用lcd12864液晶屏。lcd12864能清晰顯示字符和數字,顯示的信息更多。因為數碼管只能顯示數字,過于單調,而lcd12864能顯示漢字和數字,還有各種圖案,能更好地進行人機溝通,達到更好的顯示效果。綜上所述,我選用lcd1286液晶屏。1.5、聲音模塊方案選擇由于在該課程設計中,只需要對工作狀態和工作方式的提示,用蜂鳴器產生的bee bee聲音即可。1.6、功率元件模塊方案選擇功率元件的控制通過固態繼電器來完成。固態繼電器也稱作固態開關。是一種由固態電子組成的新型電子開關器件,集光電藕合,大功率雙向晶閘

8、管,及觸發電路,阻容吸收回路于一體.用來代替傳統的電磁式繼電器。實現對單相或者三相電動機的正反轉控制,或者其他控制無觸點無動作噪音。開關速度快無火花干擾和可靠性高等特性。由于單片機學習板配有固態繼電器,所以直接選用單片機學習板的繼電器作為功率元件模塊。2、電路設計2.1、控制模塊STC89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元,STC89

9、C52單片機在電子行業中有著廣泛的應用。特點:1、兼容MCS51指令系統2、8kB可反復擦寫(大于1000次)Flash ROM;3、32個雙向I/O口;4、256x8bit內部RAM;5、3個16位可編程定時/計數器中斷;6、時鐘頻率0-24MHz;7、2個串行中斷,可編程UART串行通道;8、2個外部中斷源,共8個中斷源;9、2個讀寫中斷口線,3級加密位;10、低功耗空閑和掉電模式,軟件設置睡眠和喚醒功能;11、有PDIP、PQFP、TQFP及PLCC等幾種封裝形式,以適應不同產品的需求。工作原理:STC89C52為8 位通用微處理器,采用工業標準的C51內核,在內部功能及管腳排布上與通用

10、的8xc52 相同,其主要用于會聚調整時的功能控制。功能包括對會聚主IC 內部寄存器、數據RAM及外部界面等功能部件的初始化,會聚調整控制,會聚測試圖控制,紅外遙控信號IR的接收譯碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復位輸入端口,外接電阻電容組成的復位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負端。P0P3 為可編程通用I/O 腳,其功能用途由軟件定義,如圖1-1、1-2所示。圖1-1 AT89C52的DIP封裝引腳圖圖1-2 最小系統圖2.2、

11、測溫模塊測溫模塊采用數字溫度傳感器DS1820。DS1820是美國DALLAS半導體公司生產的可組網數字式溫度傳感器,其內部使用了在板(ON-B0ARD)專利技術。全部傳感元件及轉換電路集成在形如一只三極管的集成電路內。與其它溫度傳感器相比,DS1820具有以下特性: 獨特的單線界面方式,DS1820在與微處理器連接時僅需要一條口線即可實現微處理器與DS1820的雙向通訊。2. DS1820支持多點組網功能,多個DS1820可以并聯在唯一的三在線,實現多點測溫。  3. DS1820在使用中不需任何外圍元件。  4.測溫范圍

12、55125,固有測溫分辨率0.5。  5. 測量結果以9位數字量方式串行傳送。DS18B20有兩種封裝形式,即TO92封裝和8-pinSOIC封裝。每種封裝的樣式及引腳排列見圖1-3,其引腳功能描述見表1。 圖1-3DS18B20的引腳排列序號名稱引腳功能描述1GND地信號2DQ數據輸入/輸出引腳。開漏單總線界面引腳。當被用著在寄生電源下,也可以向器件提供電源。3VDD可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。表1 DS18B20詳細引腳功能描述下圖是溫度檢測模塊原理如圖1-4所示:圖1-4 溫度檢測模塊原理圖2.3、鍵盤模塊在鍵盤模塊中,我采用獨立

13、式按鍵電路。特點:1)每個鍵獨立地接入一根數據輸入線。2)平時所有的數據輸入線都連接成高電平;3)當任何一個按鍵壓下時,與之相連的數據輸入線被拉成低電平。4)要判斷是否有鍵按下,只要位處理指令即可。獨立連接式鍵盤優點是結構簡單、使用方便,但隨著鍵數的增多,所占用的IO口線也增加。該系統的鍵盤由4個獨立鍵盤構成。鍵盤的一腳接在單片機的P1.0至P1.4腳上,另外一腳接在電源地上,當有鍵盤按下時對應的鍵盤就會有一低電平送到單片機內部。為消除觸點式按鍵開關的機械抖動,單片機內部有程序進行消抖處理,然后確定那一個鍵盤被按下后來執行程序完成該系統的指定工作。按鍵鍵盤原理圖如圖1-5所示:圖1-5 按鍵圖

14、2.4、顯示模塊顯示模塊我使用了lcd12864液晶屏。帶中文字庫的12864是一種具有4位/8位并行、2線或3線串行多種界面方式,內部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的界面方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面。可以顯示8×4行16×16點陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡

15、潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。其控制方法如圖1-7、1-8所示。12864顯示電路如圖1-6所示:圖1-6 12864電路圖圖1-7 圖1-82.5、聲音模塊該模塊使用蜂鳴器。蜂鳴器需要的驅動電流較大(50100mA),由于單片機輸出低電平時的驅動電流只有十幾毫安,因此要外接一個PNP三極管作為功率驅動器件。當P37口輸出低電平時,PNP導通,蜂鳴器正常工作,當當P37口輸出高電平時,PNP截止,蜂鳴器暫停工作。原理如圖1-9:圖1-9蜂鳴器2.6、功率模塊功率模塊我選用單片機學習板上的固態繼電器。如圖1-10所示。圖1-10 繼電器電路圖當單片機P36口輸出低電平時,

16、BJT管導通,LED9指示燈亮,繼電器工作。二、軟件設計1、程序流程圖系統的軟件設計采用結構化和模塊化設計的方法,便于程序的編寫、調試和排除錯誤,同時也便于檢驗和維護。單片機系統的軟件程序主要由以下模塊組成:初始化主程序、輸入及顯示、溫度采集、功率元件控制。1.1、主流程圖如圖2-1所示:圖2-1 系統主流程圖1.2、子流程圖如圖2-2:圖2-2 系統子程序流程圖1.3、功率元件控制流程圖圖2-2子流程圖 電飯煲控制系統對電飯煲加熱與否需要根據當前鍋內溫度以及所處的工作模式做出選擇。其軟件控制流程如下圖所示。 控制器先通過溫度傳感器獲得當前鍋內溫度,根據所處的工作模式,得到需要到達的目標溫度。

17、若當前鍋內溫度小于目標溫度,則控制器接通加熱盤加熱,否則斷開加熱盤,停止加熱。功率元件控制流程如圖2-3所示。圖2-3 功率元件控制流程圖1.4、定時預約工作流程圖系統運行后,若按下“開始”按鍵,系統即可進入定時預約功能狀態,表示“時”位的個位數值處于可設定狀態,高位默認顯示“0”。此時按下“加”鍵,預定時間的小時數的個位將累加1,如果累加后的數值大于9,高位的數值將自動變為1;若按下“減”鍵,預定時間的小時數的個位將減去1。 由于本控制系統支持最大定時12小時,當小時數超出12后會溢出為0。即置定時數值時,若當前示數為12,且按下“加”鍵,則lcd顯示的數值由12變為00。預約小時數設定完成

18、后,按下“開始”鍵,系統則保存用戶設定的定時時間并退出定時時間設定狀態。隨如圖2-4所示:圖2-4 定時工作流程圖三、系統調試分析1、系統硬件調試按照畫好的電路圖把外圍電路接好,主要的自己做了一個獨立按鍵小鍵盤。而ds18b20溫度傳感器的接線比較簡單,只需3跟線就完成了。2、系統軟件調試12864液晶屏的原理比較好理解,不要多長時間就看懂。而ds18b20溫度傳感器的原理就有點難懂,看了比較久才看懂。但在自己編譯過程中,卻出現很多錯誤。比如,系統無法讀取ds18b20里面的溫度,仔細檢查程序后發現在ds18b20讀取數據時間那里有錯誤,時間太短,導致無法讀取。在編寫主程序時,發現無法返回溫度

19、值給單片機,搞了很久都搞不定。后來發現是忘記了在ds18b20子程序那里加入返回函數return,加上return后,終于完成。四、心得體會在看到課程設計的題目后,我就感覺應該是挺好玩的。果然我看到了電飯煲控制器這個題目!以前在家里就修過壞了的電飯煲,可惜沒能修好.經過這次的課程設計后,我想我應該能修壞了的電飯煲了!這次課程設計獲益良多,既加深了我c語言的知識,又讓我學會了lcd12864和ds18b20的使用。而在編程過程中,一個小小的語句錯誤就會到致程序無法運行,更讓我明白謹慎小心的重要性。在最后系統能正常運作時,整個人都有一種成功的飄然.附錄程序:主程序#include<reg52

20、.h>#include<stdio.h>#include<12864.c>#include<last18B20.c>/#include<function.c>#define uchar unsigned char#define uint unsigned intsbit k1=P32; /功能按鍵sbit k2=P33;sbit k3=P34;sbit k4=P35;sbit a1=P10; /按鍵指示燈sbit b1=P11;sbit c1=P12;sbit c2=P13;uchar code m1="煮飯"uchar

21、 code m2="煮粥"uchar code m3="保溫"uchar code m4="冷飯加熱"uchar code m5="工作狀態"uchar code m6="定時狀態"uchar code m7="預定時間:"uchar code m8="H"uchar m9="0123456789"uchar code m10="定時時間:"void zhufan(); /煮飯函數聲明void zhuzhou();

22、/煲粥函數聲明void baowen(); /保溫函數聲明void jiare(); /冷飯加熱函數聲明void timing(); /定時預約函數void select();sbit y1=P36; /繼電器 sbit y2=P37;/蜂鳴器uint s1=0,s=0,m=0,h=0;/秒,分,時計數/*延時*/void delay2(uint x) while(x-)uint y;for(y=125;y>0;y-);/*定時器*/void time0() /定時器0TMOD=0x01;TH0=(65536-50000)/256; /50msTL0=(65536-50000)%256;

23、ET0=1;TR0=1;void t0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;s1+;if(s1=20)s+;s1=0; / 1 s if(s=60)m+;s=0; / 1 minif(m=60)h+;m=0; / 1 hourif(h=12)h=0; /12 hour /*按鍵功能*/ void key() if(k1=0) / 工作狀態按鍵delay2(10);if(k1=0)lcd_init();/lcd初始化a1=0;b1=1;c1=1;c2=1;lcd_pos(0,0); /顯示菜單print(m1);lcd

24、_pos(0,3);print(m2);lcd_pos(0,6);print(m3);lcd_pos(2,2);print(m4); while(!k1); /等待松開按鍵 while(k1&k2&k3&k4);/等待選擇菜單功能 delay2(10); select(); if(k2=0) / 預定功能按鍵delay2(10);if(k2=0)lcd_init();a1=0x02;lcd_pos(0,0);print(m7); timing(); void select() /選擇4種功能if(k1=0)/煮飯delay2(10);if(k1=0)a1=0;b1=1;

25、c1=1;c2=1; /工作指示燈lcd_init();lcd_pos(0,3);print(m1);/while(!k1);/lcd_pos(0,3);/print(m2);zhufan();if(k2=0) /煮粥delay2(10);if(k2=0)a1=1;b1=0;c1=1;c2=1;lcd_init();lcd_pos(0,3);print(m2);zhuzhou();if(k3=0) /保溫delay2(10);if(k3=0)a1=1;b1=1;c1=0;c2=1;lcd_init();lcd_pos(0,3);print(m3);baowen();if(k4=0)/冷飯加熱d

26、elay2(10);if(k4=0)a1=1;b1=1;c1=1;c2=0;lcd_init();lcd_pos(0,2);print(m4);jiare();/*煮飯*/void zhufan() uchar w1,w4; lcd_init(); lcd_pos(0,3); print(m1); y1=1; /打開繼電器,開始加熱/ get_temp();/ delay(100);/ w4=get_temp(); while(get_temp()<200) c2=0; delay2(10);get_temp(); lcd_pos(2,0); dis_temp(); delay2(100

27、); / while(1) / / / get_temp();/ delay(70);/ delay(70);/ if(w4>26)break;/ / while(1)/ lcd_pos(3,0);print(m1); / while(temp<105); while(w4>25)/溫度大于105°C時 / get_temp();/ lcd_pos(2,0);/ dis_temp(); EA=1;while(s<=15);/定時 15 minEA=0;s1=0;s=0;m=0;h=0; y1=0;for(w1=5;w1>0;w1-) /煮飯完成,鳴笛5次

28、 y2=0; delay2(100); delay2(100); y2=1; delay2(100); delay2(100); if(y2=1)break; baowen();/*煮粥*/void zhuzhou() uchar w1; lcd_init(); lcd_pos(0,3); print(m2);y1=1; /打開繼電器,開始加熱get_temp(); /獲取溫度數值while(temp<100); EA=1;while(m<=20)get_temp();delay2(10);if(temp>100)y1=0; /溫度大于100,停止加熱if(temp<=

29、99) /溫度在99到100度之間/保持溫度穩定y1=1;EA=0;s1=0;s=0;m-0;h=0;for(w1=5;w1>0;w1-) y2=0; delay2(100); delay2(100); y2=1; /煲粥完成,鳴笛5次 delay2(100); delay2(100);baowen(); /*保溫*/void baowen() lcd_init(); lcd_pos(0,3); print(m3); while(1) get_temp(); if(temp<=50)y1=1;delay2(100);if(temp>=60)y1=0;delay2(100);i

30、f(k1=0)delay2(10);if(k1=0)zhufan();if(k2=0)delay2(10);if(k2=0)zhuzhou();if(k3=0)delay2(10);if(k3=0)baowen();if(k4=0)delay2(10);if(k4=0)jiare(); /*冷飯加熱*/void jiare()uchar w1;lcd_init(); lcd_pos(0,2); print(m4);y1=1;get_temp();while(temp<100); EA=1; while(m<=5) get_temp();delay2(10);if(temp>1

31、00)y1=0; delay2(100); /溫度大于100,停止加熱if(temp<=99) /溫度在99到100度之間/保持溫度穩定y1=1; delay2(100); EA=0; s1=0;s=0;m-0;h=0;for(w1=5;w1>0;w1-) y2=0; delay2(100); delay2(100); y2=1; /冷飯加熱完成,鳴笛5次 delay2(100); delay2(100);baowen();/*定時預約*/void timing()uchar e1=0,e2=0,e3=0;uchar q1;lcd_pos(0,5);write_data(m90);

32、delay2(10);lcd_pos(0,6);write_data(m90);lcd_pos(0,7);print(m8);delay2(10);do/while(1)/if(k3=0) /個位減1delay2(10);if(k3=0)e2-;while(!k3);if(k4=0) /個位加1delay2(10);if(k4=0)e2+;while(!k4); if(e2=10)e2=0;e1+;if(e2<0)e2=0;e3=e1*10+e2; /計算時間大小if(e3>12)e1=0;e2=0;lcd_pos(0,5); write_data(m9e1);delay2(10)

33、;lcd_pos(0,6);write_data(m9e2);/ while(k1); /按確認鍵結束lcd_init();/lcd初始化a1=0;b1=1;c1=1;c2=1;lcd_pos(0,0); /顯示菜單print(m1);lcd_pos(0,3);print(m2);lcd_pos(0,6);print(m3);lcd_pos(2,2);print(m4);EA=1;delay2(100);do /預定功能選擇if(k1=0) /煮飯delay2(10);if(k1=0)q1=1; lcd_init();lcd_pos(0,3);print(m1);if(k2=0) /煲粥del

34、ay2(10);if(k2=0)q1=2;lcd_init();lcd_pos(0,3);print(m2);if(k3=0) /保溫delay2(10);if(k3=0)q1=3;lcd_init();lcd_pos(0,3);print(m3);if(k4=0) /冷飯加熱delay2(10);if(k4=0)q1=4;lcd_init();lcd_pos(0,2);print(m4);e2=e3%10; /定時時間顯示e1=e3/10; lcd_pos(3,0); print(m10); lcd_pos(3,5);write_data(m9e1);delay2(10);lcd_pos(3

35、,6);write_data(m9e2);lcd_pos(3,7);print(m8); while(e3=e3-s)!=0);/定時計算EA=0;if(q1=1)zhufan(); /電飯煲工作狀態if(q1=2)baozhou();if(q1=3)baowen();if(q1=4)jiare(); void main() EA=0; /關中斷time0(); /定時器初始化lcd_init(); / 12864液晶 初始化 lcd_pos(0,2); print(m5); /顯示 工作狀態 lcd_pos(2,2); print(m6); /顯示 預定狀態 while(1) key();

36、12864LCD顯示子程序/*12864子函數函數(各啟動命令)*/#include <reg52.h>#include <intrins.h>#include <stdlib.h>#define uchar unsigned char#define uint unsigned int/* 端口定義*/sbit LCD_RS = P20; /寄存器選擇輸入 sbit LCD_RW = P21; /液晶讀/寫控制sbit LCD_EN = P22; /液晶使能控制sbit LCD_PSB = P23; /串/并方式控制void delay1ms(uint x)

37、 uint i,j; for(j=0;j<x;j+) for(i=0;i<110;i+); /*/* */*寫指令數據到LCD */*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。 */* */*/void write_com(uchar com) LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; P0 = com;delay1ms(5); LCD_EN = 1;delay1ms(5); LCD_EN = 0; /*/* */*寫顯示數據到LCD */*RS=H,RW=L,E=高脈沖,D0-D7=數據。 */* */*/void write_data(u

38、char dat) LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat;delay1ms(5); LCD_EN = 1;delay1ms(5); LCD_EN = 0; /*直接輸出數組中的字符串*/void print(uchar *str) /LCD顯示函數 while(*str!='0')write_data(*str);str+;/*/* */* 設定顯示位置 */* */*/void lcd_pos(uchar X,uchar Y) uchar pos; if (X=0) X=0x80; else if (X=1) X=0x90;

39、 else if (X=2) X=0x88; else if (X=3) X=0x98; pos = X+Y ; write_com(pos); /顯示地址/*/* */* LCD初始化設定 */* */*/void lcd_init() LCD_PSB = 1; /并口方式 write_com(0x30); /基本指令操作 write_com(0x0C); /顯示開,關光標 write_com(0x01); /清除LCD的顯示內容DS18B20溫度子程序/*get_temp()直接求出溫度值,有兩位有效小數與一位有效小數(默認),dis_temp()顯示溫度值*/#include < reg52.h >#include<stdio.h>#define uchar unsigned char#define uint unsigned intsbit DQ = P17 ; /定義DS18B20端口DQ uchar num;uint temp; / 整型溫度數據float f_temp;/浮點型溫度數據,用于間接變換或串口通信uint x,y,z,w;uchar data temp_data2 = 0x00,0x00 ;uchar code ASCII25 = "0123456789.°CTEM

溫馨提示

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

評論

0/150

提交評論