freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于at89s52單片機(jī)大棚溫度控制系統(tǒng)-閱讀頁

2024-12-23 17:01本頁面
  

【正文】 圖 41 軟件設(shè)計(jì)流程圖 溫度檢測 讀取溫度設(shè)計(jì) DSl8B20 可以從單總線上獲取電源,當(dāng)信號(hào)線為高電平,在內(nèi)部電容儲(chǔ)存的能量;當(dāng)信號(hào)線為低,斷開電源,高水平和重新連接的寄生功率到信號(hào)線。圖 42 大于設(shè)定值? 開始 初始化 DS18B20 溫度檢測 LCD1602 顯示 電機(jī)帶動(dòng)風(fēng)扇轉(zhuǎn)動(dòng) 15 圖 42 18B20讀取溫度流程圖 主要功能讀取溫度子程序讀取 9 字節(jié)的 RAM,在讀出時(shí)需要的 CRC 校驗(yàn),數(shù)據(jù)校驗(yàn)錯(cuò)誤的時(shí)間重寫不溫。 DS18B20 的初始化 跳過讀序列號(hào)的操作 讀取溫度寄存器 啟動(dòng)溫度轉(zhuǎn)換 跳過讀序列號(hào)的操作 開 始 DS18B20 的初始化 RET LOW低八位 HIGH高八位 16 主程序讀取溫度如下: 溫度數(shù)據(jù)處理設(shè)計(jì) 讀取溫度數(shù)據(jù),低四位為溫度的小數(shù)部分的廟宇,可精確到 ℃,寺廟高四和丹貝為低四溫度的整數(shù)部分,丹貝高四為 1 表示負(fù)數(shù), 0 表示正。在處理四舍五小數(shù)部分: ℃以上,為 1;低于 ℃時(shí),不要。因?yàn)橹挥?DS18B20的最低溫度是 55℃,因此可以最高的整數(shù)部分改為“ ”,那是否定的。 17 圖 43 溫度數(shù)據(jù)處理流程 因?yàn)?DS18B20 的轉(zhuǎn)換代碼,而不是實(shí)際的溫度值,從而計(jì)算轉(zhuǎn)換。低 4保存數(shù)字小溫度低字節(jié)。 所以 系統(tǒng)的溫度 準(zhǔn)確 到 了 度 [13]。 //數(shù)據(jù) /命 令端 sbit LCM_RW=P2^1。 /***************液晶顯示子函數(shù) 1 正常顯示 *****************/ void displayfun1(void) { WriteCommandLCM(0x0c,1)。 DisplayListChar(0,1,str1)。 //液晶上顯示小時(shí) DisplayOneChar(4,0,hour%10+0x30)。 //液晶上顯示分 DisplayOneChar(7,0,minite%10+0x30)。 //液晶上顯示秒 DisplayOneChar(10,0,seconde%10+0x30)。 //液晶上顯示設(shè)定的溫度 DisplayOneChar(5,1,K%10+0x30)。 //液晶上顯示測得的溫度 DisplayOneChar(12,1,temp1%10+0x30)。 if(ON_OFF==0) //若溫控標(biāo)志為 0 { DisplayOneChar(14,0,0x4f)。 } else { DisplayOneChar(14,0,0x4f)。 if(outflag==1) DisplayOneChar(0,0,0x7c)。 } } /************液晶顯示子函數(shù) 2***************/ void displayfun2(void) { WriteCommandLCM(0x0c,1)。 DisplayListChar(0,1,str1)。 DisplayOneChar(7,0,minite%10+0x30)。 DisplayOneChar(10,0,seconde%10+0x30)。 DisplayOneChar(5,1,K%10+0x30)。 DisplayOneChar(12,1,temp1%10+0x30)。 WriteCommandLCM(0x0f,1)。 DisplayOneChar(4,0,hour%10+0x30)。 //顯示屏打開,光標(biāo)不顯示,不閃爍,檢測忙信號(hào) DisplayListChar(0,0,str0)。 DisplayOneChar(3,0,hour/10+0x30)。 DisplayOneChar(9,0,seconde/10+0x30)。 DisplayOneChar(4,1,K/10+0x30)。 DisplayOneChar(11,1,temp1/10+0x30)。 DisplayOneChar(14,1,temp2/10+0x30)。 //顯示屏打開,光標(biāo)顯示,閃爍,檢測忙信號(hào) DisplayOneChar(6,0,minite/10+0x30)。 } /**************液晶顯示子函數(shù) 4 *****************/ 21 void displayfun4(void) { WriteCommandLCM(0x0c,1)。 DisplayListChar(0,1,str1)。 DisplayOneChar(4,0,hour%10+0x30)。 DisplayOneChar(7,0,minite%10+0x30)。 DisplayOneChar(10,0,seconde%10+0x30)。 DisplayOneChar(12,1,temp1%10+0x30)。 WriteCommandLCM(0x0f,1)。 DisplayOneChar(5,1,K%10+0x30)。當(dāng) 被測溫度高于 系統(tǒng)設(shè)定溫度值時(shí), 角的輸出信號(hào)為 0, 馬達(dá)開始轉(zhuǎn)動(dòng) 。OUT=0。 if(temp1K){outflag=0。} // } } else{outflag=0。} 22 第 5 章 系統(tǒng)調(diào)試 第 5 章 系統(tǒng)調(diào)試 在 Keil 軟件中調(diào)試程序,生成 Hex 文件。 點(diǎn)擊按鈕能夠隨 意調(diào)試時(shí)間和設(shè)定系統(tǒng)溫度值 。圖 51 為系統(tǒng)調(diào)試成功圖。 總結(jié) 通過這次對大棚溫度自動(dòng)控制的設(shè)計(jì)與制作,讓我自主完成了一個(gè)完整的設(shè)計(jì),雖然這次的實(shí)習(xí)做的溫度顯示以及馬達(dá)的控制都相對 比較簡單,但是也給將來進(jìn)入硬件開發(fā)有了一個(gè)起點(diǎn)的基礎(chǔ) 。幸好有 幾 個(gè)星期的時(shí)間來準(zhǔn)備。畫電路圖,自己學(xué)習(xí) 焊接電路 板,電路板焊接完成后 ,硬件調(diào)試過程中芯片被燒壞了。常常有解決不了的問題,就上網(wǎng)查詢,或者閱覽資料書。因?yàn)槌?huì)碰到很難解決的問題 , 所以要堅(jiān)持不懈。這次設(shè)計(jì)是 一個(gè) 鞏固加深所學(xué)課本理論知識(shí)的過程,它培養(yǎng)了我們綜合運(yùn)用知識(shí)的能力,獨(dú)立思考和解決問題的能力。對我來說,這次畢業(yè)設(shè)計(jì)是非常有意義的。該智能溫度控制器只是 DS18B20 在溫度控制領(lǐng)域的一個(gè)簡單實(shí)例,還是許多需要完善的地方,例如可以將測得的溫度 通過單片機(jī)與通訊模塊相連接,以手機(jī)短消息的方式發(fā)送給用戶,使用戶能夠隨時(shí)對溫度進(jìn)行監(jiān)控。此外,還能廣泛地應(yīng)用于其他一些工業(yè)生產(chǎn)領(lǐng)域。近兩年,國內(nèi)也出現(xiàn)了許多高精度的溫度控制產(chǎn)品,但相對于用戶來說,價(jià)格還是偏高。尋求性能可靠、價(jià)格低廉,應(yīng)用廣泛的元器件是生產(chǎn)過程的首先要考慮的問題。 在這里我要感謝所有的任課老師, 你們誨人不倦的精神讓我非常感動(dòng)。特別 感謝我的導(dǎo)師 XXX,他在我完成 這次畢業(yè)設(shè)計(jì) 的過程中,給予了我很大的幫助。 此外,此系統(tǒng)能順利完成,也得到了 同學(xué)們 的幫忙。在此,我深表感謝。 是他們一直在背后默默的支持我,教我在困難面前永不低頭, 讓我在漫長的人生旅途 中 找到了前進(jìn)的方向 。不辜負(fù)父母對我的期望。 該實(shí)驗(yàn)可以應(yīng)用于對溫度控制精度要求不是很高的場合,例如,糧倉, 電冰箱,空調(diào),電飯鍋等。具有極強(qiáng)的擴(kuò)展性。 //紅色指示燈 sbit WRITE_ALARM=P1^1。 //綠色指示燈 sbit BLUE_ALARM=P1^3。 //時(shí)鐘調(diào)整 sbit P1_5=P1^5。 //時(shí)鐘減 sbit DQ = P1^7。 //數(shù)據(jù) /命令端 sbit LCM_RW=P2^1。 sbit sda=P2^3。 //LCD 使能信號(hào) sbit ad_busy=P3^2。 //ISD1420 放音結(jié)束查詢標(biāo)志 sbit OUT=P3^7。 //ad 采樣值存儲(chǔ) uchar seconde。 uchar hour。 uchar temp1,temp2,temp。 uchar K。 bit outflag。 uchar code str0[]={ : : }。 void delay_LCM(uint)。 28 //LCD 初始化子程序 void lcd_wait(void)。 //寫指令到 ICM 子函數(shù) void WriteDataLCM(uchar WDLCM)。 //顯示指定坐標(biāo)的一個(gè)字符子函數(shù) void DisplayListChar(uchar X,uchar Y,uchar code *DData)。 //定時(shí)器初始化 void displayfun1(void)。 void displayfun3(void)。 void keyscan(void )。 void inc_key(void)。 void delay_18B20(unsigned int i)。 uchar ReadOneChar(void)。 void ReadTemperature(void)。 void playalarm(void)。 for(i=0。i++) { for(j=0。j++) {。 DATAPORT=WCLCM。 // 選中指令寄存器 LCM_RW=0。 _nop_()。 _nop_()。 } /**********寫數(shù)據(jù)到 LCM 子函數(shù) ************/ void WriteDataLCM(uchar WDLCM) { lcd_wait( )。 LCM_RS=1。 // 寫模式 LCM_EN=1。 _nop_()。 LCM_EN=0。 LCM_EN=1。 LCM_RW=1。 while(DATAPORTamp。 _nop_()。 LCM_EN=1。 30 _nop_()。 } /**********LCM 初始化子函數(shù) ***********/ void initLCM( ) { DATAPORT=0。 WriteCommandLCM(0x38,0)。 WriteCommandLCM(0x38,0)。 WriteCommandLCM(0x38,0)。 WriteCommandLCM(0x38,1)。 //關(guān)閉顯示,檢測忙信號(hào) WriteCommandLCM(0x01,1)。 //顯示光標(biāo)右移設(shè)置,檢測忙信號(hào) WriteCommandLCM(0x0c,1)。=1。=15。 //若 y 為 1(顯示第二行),地址碼 +0X40 X|=0x80。 WriteDataLCM(DData)。 31 Yamp。 Xamp。 while(X16) { DisplayOneChar(X,Y,DData[ListLength])。 X++。 } /**********ds18b20 初始化函數(shù) **********************/ void Init_DS18B20(void) { unsigned char x=0。 //DQ 復(fù)位 delay_18B20(8)。 //單片機(jī)將 DQ 拉低 delay_18B20(80)。 //拉高總線 delay_18B20(14)。 //稍做延時(shí)后 如果 x=0 則初始化成功 x=1 則初始化失敗 delay_18B20(20)。 uchar dat = 0。i0。 // 給脈沖信 號(hào)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1