項(xiàng)目十 任務(wù)二 智能孵蛋控制系統(tǒng)制作_第1頁
項(xiàng)目十 任務(wù)二 智能孵蛋控制系統(tǒng)制作_第2頁
項(xiàng)目十 任務(wù)二 智能孵蛋控制系統(tǒng)制作_第3頁
項(xiàng)目十 任務(wù)二 智能孵蛋控制系統(tǒng)制作_第4頁
項(xiàng)目十 任務(wù)二 智能孵蛋控制系統(tǒng)制作_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、任務(wù)二智能孵蛋控制系統(tǒng)制作智能孵蛋控制系統(tǒng)制作項(xiàng)目十 數(shù)字溫度計(jì)制作任務(wù)二 智能孵蛋控制系統(tǒng)制作 1 2 3 4 5 任務(wù)書:任務(wù)書: 11智能孵蛋控制系統(tǒng)描述及有關(guān)說明為了保證能更好的孵化雞蛋,保持雞蛋的溫度,智能孵蛋控制系統(tǒng)可以根據(jù)室內(nèi)的溫度來調(diào)節(jié)燈光的強(qiáng)度,從而達(dá)到控溫的效果;也可自行調(diào)節(jié)燈光強(qiáng)度來調(diào)節(jié)燈光強(qiáng)度。(1)顯示:由8位數(shù)碼管組成,實(shí)現(xiàn)DS18B20測(cè)得室溫的顯示和LED燈光的等級(jí)顯示。(2)獨(dú)立鍵盤:SB1:實(shí)現(xiàn)“啟動(dòng)/停止”功能;SB2:實(shí)現(xiàn)自動(dòng)和手動(dòng)模式的切換。SB3:實(shí)現(xiàn)“調(diào)節(jié)”功能。(3)DAC0832:用來控制溫度表的孵化燈光的亮度(用LED0模擬孵化燈)。(4)D

2、S18B20:用來檢測(cè)室溫。(5)LED0:使用LED0模擬孵化燈。其作用為對(duì)室內(nèi)控制加熱,盡量營(yíng)造一個(gè)恒溫孵化環(huán)境。2系統(tǒng)控制要求系統(tǒng)上電,數(shù)碼管不顯示,按下“啟動(dòng)/停止”按鍵,數(shù)碼管靠左兩位顯示室溫XX,第三位顯示C,表示攝氏度;靠右顯示亮度等級(jí),格式為:“LvX”,開始對(duì)室溫進(jìn)行實(shí)時(shí)檢測(cè)。燈光等級(jí)范圍:0-9。按下“自/手”動(dòng)按鍵,可切換自動(dòng)模式和手動(dòng)模式。在自動(dòng)模式下:當(dāng)溫度超過30時(shí),燈光等級(jí)為0級(jí);當(dāng)溫度超過或等于21度時(shí),燈光等級(jí)為9級(jí)。當(dāng)溫度為22-30時(shí),等級(jí)應(yīng)根據(jù)溫度的升高而降低,對(duì)應(yīng)的變化范圍為8-0。在手動(dòng)模式下,按下“調(diào)節(jié)”按鍵,可對(duì)燈光亮度進(jìn)行0-9級(jí)之間的調(diào)節(jié)。若

3、再按下“啟動(dòng)/停止”按鍵,則數(shù)碼管不顯示,停止測(cè)溫工作,燈燈熄滅(0級(jí)),處于待機(jī)狀態(tài)。 2任務(wù)分析任務(wù)分析(1)DS18B20單總線數(shù)字式溫度傳感器(2)DS18B20 寄存器與EEPROM解讀控制指令名稱控制指令名稱命令字命令字功能說明:功能說明:Read ROM33H讀讀ROM指令:這個(gè)命令允許單片機(jī)讀到指令:這個(gè)命令允許單片機(jī)讀到DS18B20的的64位位ROM。Match ROM55H指定匹配芯片指令:指定匹配芯片指令:這個(gè)指令后面緊跟著由單片機(jī)發(fā)出了這個(gè)指令后面緊跟著由單片機(jī)發(fā)出了64位序列號(hào),當(dāng)總線上有多只位序列號(hào),當(dāng)總線上有多只 DS18B20時(shí),只有與控制發(fā)出的序列號(hào)相同的芯

4、片才可以做出反應(yīng),其它芯時(shí),只有與控制發(fā)出的序列號(hào)相同的芯片才可以做出反應(yīng),其它芯片將等待下一次復(fù)位。這條指令適應(yīng)單芯片和多芯片掛接。片將等待下一次復(fù)位。這條指令適應(yīng)單芯片和多芯片掛接。Skip ROMCCH跳過跳過ROM編碼指令:編碼指令:這條指令使芯片不對(duì)這條指令使芯片不對(duì)ROM編碼做出反應(yīng),在單總線的情況之下,為了節(jié)省時(shí)間則可以選用此指令。如果在多芯片掛接時(shí)使用此指令將會(huì)出現(xiàn)編碼做出反應(yīng),在單總線的情況之下,為了節(jié)省時(shí)間則可以選用此指令。如果在多芯片掛接時(shí)使用此指令將會(huì)出現(xiàn)數(shù)據(jù)沖突,導(dǎo)致錯(cuò)誤出現(xiàn)。數(shù)據(jù)沖突,導(dǎo)致錯(cuò)誤出現(xiàn)。Search ROMF0H搜索芯片指令:在芯片初始化后,搜索指令允許

5、總線上掛接多芯片時(shí)用排除法識(shí)別所有器件的搜索芯片指令:在芯片初始化后,搜索指令允許總線上掛接多芯片時(shí)用排除法識(shí)別所有器件的64位位ROM。Alarm SearchECH報(bào)警芯片搜索指令:報(bào)警芯片搜索指令:在多芯片掛接的情況下,報(bào)警芯片搜索指令只對(duì)附合溫度高于在多芯片掛接的情況下,報(bào)警芯片搜索指令只對(duì)附合溫度高于TH或小于或小于TL報(bào)警條件的芯片做出反應(yīng)。只要芯片不掉電,報(bào)警狀態(tài)將被保持,報(bào)警條件的芯片做出反應(yīng)。只要芯片不掉電,報(bào)警狀態(tài)將被保持,直到再一次測(cè)得溫度不達(dá)到報(bào)警條件為止。直到再一次測(cè)得溫度不達(dá)到報(bào)警條件為止。Write Scratchpad4EH向向RAM中寫數(shù)據(jù)指令:中寫數(shù)據(jù)指令:

6、這是向這是向RAM中寫入數(shù)據(jù)的指令,隨后寫入的兩個(gè)字節(jié)的數(shù)據(jù)將會(huì)被存到中寫入數(shù)據(jù)的指令,隨后寫入的兩個(gè)字節(jié)的數(shù)據(jù)將會(huì)被存到RAM的第的第3字節(jié)(高溫報(bào)警字節(jié)(高溫報(bào)警TH)和第)和第4字節(jié)(低溫報(bào)警字節(jié)(低溫報(bào)警TL)。再次寫入)。再次寫入的一個(gè)字節(jié)存入第的一個(gè)字節(jié)存入第5字節(jié)中(配置寄存器字節(jié)中(配置寄存器CR)。寫入過程中可以用復(fù)位信號(hào)中止寫入。)。寫入過程中可以用復(fù)位信號(hào)中止寫入。Read ScratchpadBEH從從RAM中讀數(shù)據(jù)指令:中讀數(shù)據(jù)指令:此指令將從此指令將從RAM中讀數(shù)據(jù),從中讀數(shù)據(jù),從RAM的第的第1字節(jié)開始,一直可以讀到第字節(jié)開始,一直可以讀到第9字節(jié),完成整個(gè)字節(jié),

7、完成整個(gè)RAM數(shù)據(jù)的讀出。芯片允許在讀過程中用復(fù)位信號(hào)中止數(shù)據(jù)的讀出。芯片允許在讀過程中用復(fù)位信號(hào)中止讀取,即可以不讀后面不需要的字節(jié)以減少讀取時(shí)間。讀取,即可以不讀后面不需要的字節(jié)以減少讀取時(shí)間。Copy Scratchpad48H將將RAM數(shù)據(jù)復(fù)制到數(shù)據(jù)復(fù)制到EEPROM 中指令:中指令:此指令將此指令將RAM中的數(shù)據(jù)存入中的數(shù)據(jù)存入EEPROM中,以使數(shù)據(jù)掉電不丟失。此后由于芯片忙于中,以使數(shù)據(jù)掉電不丟失。此后由于芯片忙于EEPROM儲(chǔ)存處理,當(dāng)單片機(jī)發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸儲(chǔ)存處理,當(dāng)單片機(jī)發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸

8、出“1”。在寄生工作方式時(shí)必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持。在寄生工作方式時(shí)必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持10MS,來維持芯片工作。,來維持芯片工作。Convert T44H開始溫度轉(zhuǎn)換指令:開始溫度轉(zhuǎn)換指令:收到此指令后芯片將進(jìn)行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入收到此指令后芯片將進(jìn)行一次溫度轉(zhuǎn)換,將轉(zhuǎn)換的溫度值放入RAM的第的第1、2地址。此后由于芯片忙于溫度轉(zhuǎn)換處理,當(dāng)單片機(jī)發(fā)一個(gè)讀時(shí)間地址。此后由于芯片忙于溫度轉(zhuǎn)換處理,當(dāng)單片機(jī)發(fā)一個(gè)讀時(shí)間隙時(shí),總線上輸出隙時(shí),總線上輸出“0”,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出,當(dāng)儲(chǔ)存工作完成時(shí),總線將輸出“1”。在寄生工作方式時(shí)必須在

9、發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持。在寄生工作方式時(shí)必須在發(fā)出此指令后立刻超用強(qiáng)上拉并至少保持500mS(12位精度時(shí)),來維持芯片工作。位精度時(shí)),來維持芯片工作。Recall EEPROMB8H將將EEPROM 中的報(bào)警值復(fù)制到中的報(bào)警值復(fù)制到RAM指令。指令。Read Power SupplyB4H檢測(cè)芯片電源狀態(tài)指令:此指令發(fā)出后發(fā)出讀時(shí)間隙,芯片會(huì)返回它的電源狀態(tài)字,檢測(cè)芯片電源狀態(tài)指令:此指令發(fā)出后發(fā)出讀時(shí)間隙,芯片會(huì)返回它的電源狀態(tài)字,“0”為寄生電源狀態(tài),為寄生電源狀態(tài),“1”為外部電源狀態(tài)。為外部電源狀態(tài)。(3)DS18B20控制指令介紹(4)DS18B20控制程序編寫-復(fù)

10、位與應(yīng)答時(shí)序/DS18B20的復(fù)位函數(shù)如下所示。sbit DQ = P21; /映射溫度傳送數(shù)據(jù)IO口為P2.1unsigned char RST_DS18B20(void)unsigned char x=1; /默認(rèn)設(shè)置為初始化失敗 DQ = 1; /釋放總線 delay_s(20); /稍做延時(shí)20s DQ = 0; /單片機(jī)將總線拉低 delay_s(720); /精確延時(shí) 480s -960s 我們?nèi)≈虚g值720s DQ = 1; /釋放總線 delay_s(60); /延時(shí)1560s(4)DS18B20控制程序編寫-寫數(shù)據(jù)時(shí)序/DS18B20寫數(shù)據(jù)函數(shù)如下所示:sbit DQ = P

11、21; /映射溫度傳送數(shù)據(jù)IO口為P2.1void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ=0; /拉低總線,產(chǎn)生寫信號(hào) delay_s(15); /延時(shí)15s DQ=dat&0 x01; /把數(shù)據(jù)最低位輸出給總線 delay_s(60); /延時(shí)60s(4)DS18B20控制程序編寫-讀數(shù)據(jù)時(shí)序/DS18B20讀數(shù)據(jù)函數(shù)如下所示:sbit DQ = P21; /映射溫度傳送數(shù)據(jù)IO口為P2.1unsigned char ReadOneChar(void) unsigned char i=0

12、; unsigned char dat = 0; for (i=8;i0;i-) dat=1; /數(shù)據(jù)移1位 DQ = 0; /拉低總線產(chǎn)生讀信號(hào)號(hào) delay_s(1); /延時(shí)1s,由于51單片機(jī)速度較低可以省去(4)DS18B20溫度采樣范例程序/DS18B20溫度采樣范例程序sbit DQ = P21; /映射溫度傳送數(shù)據(jù)IO口為P2.1/*讀取ds18b20當(dāng)前溫度*/void ReadTemp(void) unsigned char a=0; unsigned char b=0; if(!RST_DS18B20() /判斷是否初始化成功 WriteOneChar(0 xCC); /

13、跳過讀序號(hào)列號(hào)的操作 WriteOneChar(0 x44); /啟動(dòng)溫度轉(zhuǎn)換 delay_us(41667); /延時(shí)1秒,等待轉(zhuǎn)換完成 if(!RST_DS18B20() /判斷是否初始化成功(5)DAC0832介紹及應(yīng)用簡(jiǎn)介(5)DAC0832介紹及應(yīng)用典型應(yīng)用電路(5)DAC0832介紹及應(yīng)用控制程序編寫DAC0832可以通過單片機(jī)總線直接訪問,其總線寫入子程序如下:unsigned char xdata CS_DAC _at_ 0 xdfff; /(P25)void Write_DAC0832(unsigned char num) CS_DAC=num;要使用DAC0832控制LED

14、等具有09 共10個(gè)亮度等級(jí),還需要對(duì)各個(gè)亮度等級(jí)DAC需要寫入的數(shù)據(jù)進(jìn)行運(yùn)算。其運(yùn)算公式為: 3硬件電路的設(shè)計(jì)與搭建硬件電路的設(shè)計(jì)與搭建智能孵蛋控制系統(tǒng)模塊接線圖(YL-236單片機(jī)實(shí)訓(xùn)裝置單片機(jī)實(shí)訓(xùn)裝置) 軟件編程軟件編程 4 1、主程序流程圖2、參考程序/智能孵蛋控制系統(tǒng)參考程序#include reg52.h#define ON 1#define OFF 0bit set_mark=0; /自動(dòng)和手動(dòng)切換標(biāo)志位 1:自動(dòng) 0:手動(dòng)bit RUN_or_STOP=OFF; /啟動(dòng)/停止標(biāo)志位,ON:?jiǎn)?dòng) ,OFF:停止unsigned char LV=0; /LED燈亮度等級(jí)參數(shù) 默認(rèn)為

15、0級(jí)/*DAC0832*/unsigned char xdata CS_DAC _at_ 0 xdfff; /(P25)#define show_LED CS_DAC=(9-LV)*28.33#define extinguish_LED CS_DAC=255/*/ /*數(shù)碼管*/unsigned char xdata DM _at_ 0 x7fff; /斷碼(P27)unsigned char xdata PX _at_ 0 xbfff; /片選(P26)unsigned char code M7G= /數(shù)碼管字模 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x

16、82,0 xf8,0 x80,0 x90, /09 0 xff, 0 xc6,0 xc7, 0 xe3, /滅,C,L,v;unsigned char str8= /數(shù)碼管緩存3、程序說明本程序主要通過DS18B20來讀取溫度并由按鍵來控制燈光亮度來達(dá)到恒溫效果。其中定義了一個(gè)LV變量:用來控制LED燈光的亮度等級(jí)。位變量RUN_or_STOP:用來標(biāo)志溫度的采樣啟停。位變量set_mark:用來控制自動(dòng)和手動(dòng)的切換。KEY():用來啟停溫度采樣、調(diào)節(jié)LED燈光等級(jí)亮度和自動(dòng)手動(dòng)的切換。Init_DS18B20():初始化DS18B20。ReadOneChar():DS1820讀一個(gè)字節(jié)子程序。WriteOneChar():DS1820寫一個(gè)字節(jié)子程序。ReadTemp():讀取DS18B20當(dāng)前溫

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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)論