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

正文內(nèi)容

畢業(yè)設(shè)計(jì)基于51單片機(jī)的家用電熱水器設(shè)計(jì)(參考版)

2024-12-05 16:41本頁(yè)面
  

【正文】 dis[2]+=10。 dis[2]=num5。 dis[0]=numx。 num5=dda%100/10。 numx=dda/1000。 uint dda。//,變大十倍且 四舍五入 return(temp)。 tt=temp*。 temp=8。//讀取兩個(gè)字節(jié) getb=readbyte()。//讀 取溫度命令 45 delay(2)。 writeor(0xcc)。 dswait()。 uchar geta,getb。 } uint gettemp()//獲取溫度 { float tt。// 跳過(guò)讀序號(hào)列號(hào)的操作 writeor(0x44)。 delay(1)。 } } } void changetemp()//溫度轉(zhuǎn)變函數(shù) { dsstart()。 b++。b++)。 for(b=0。b++)。 44 for(b=0。 b++,b++。 order=1。a++) { bit2=orderamp。 for(a=0。 bit bit2。 } void writeor(uchar order)//寫(xiě)入命令 { uint b。//將 readbit()的返回值付給 date,然后 date向后移一位 重復(fù) 8 次剛好 得到一個(gè)字節(jié)的數(shù)據(jù) b++。 while(b8) { a=readbit()。 b=0。 } uchar readbyte()//讀取一個(gè)字節(jié) { uint b。 while(i0) i。 //延時(shí)約 16us, 符合協(xié)議要求的至少延時(shí) 15us 以上 b=ds。 i++。 i++。 bit b。 while(i0) i。 //等待應(yīng)答信號(hào) while(~ds)。 } void dswait() { unsigned int i。 //產(chǎn)生一個(gè)上升沿 , 進(jìn)入等待應(yīng)答狀態(tài) i=4。 //拉低約 800us, 符合協(xié)議要求的 480us 以上 while(i0) i。 ds=0。j++)。 while(i) { for(j=0。 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0xbf,0x86, 0xdb,0xcf,0xe6,0xed, 0xfd,0x87,0xff,0xef, 0x00,0x08,0x88}。 uchar num,num1,num2,num3,numx,num4,num5,num6, aaa,bbb,ccc,zd。 sbit ds=P2^2。 41 附錄 整體程序代碼 include include include define uchar unsigned char define uint unsigned int sbit duan=P2^6。 這是在這種相互幫助、相互關(guān)心的的友誼下, 我才能 理清論文寫(xiě)作思路。正是 指導(dǎo) 老師的無(wú)私幫助與熱忱鼓勵(lì),我的畢業(yè)論文才能夠得以順利完成,謝謝 指導(dǎo)老師 。她為人隨和熱情,治學(xué)嚴(yán)謹(jǐn)細(xì)心。如今,伴隨著這篇畢業(yè)論文的最終成稿,復(fù)雜的心情煙消 云 散,自己甚至還有一點(diǎn)成就感。希望隨著科技的進(jìn)步,數(shù)字化家電能能更加完善,更好的造福人類(lèi)。希望在以后的學(xué)習(xí)中找 到解決此問(wèn)題的方法。 ( 3)本文 闡述了 通過(guò)種中斷子函數(shù)完成 30ms 一次的加熱檢測(cè)的方法 ( 4)本文詳細(xì) 闡述了 溫度采集 芯片的詳細(xì)參數(shù)、操作方法, 與單片機(jī)的硬件連接、軟件 如何進(jìn)行操控等設(shè)計(jì)細(xì)節(jié)。實(shí)物圖見(jiàn)圖 所示 圖 停止加熱狀態(tài) 38 第 5 章 總結(jié)與展望 本文對(duì)使用 89C51 單片機(jī)完成數(shù)字化熱水 器的設(shè)計(jì)進(jìn) 行完整的闡述。溫度輸入完成并判定加熱 見(jiàn)圖 所示。單片機(jī) P1^1 接口會(huì)出現(xiàn)低電平,從而使用第二個(gè)發(fā)光二極管點(diǎn)亮。 成品圖片 開(kāi)發(fā)板等待輸入見(jiàn)圖 所示。 首先單片機(jī)顯示出采集到的溫度值,等待系統(tǒng)鍵入溫度,一旦鍵入 3 個(gè)數(shù)字,則第一個(gè)、第二個(gè)、第三個(gè)數(shù)字分別為需要溫度的十位、個(gè)位和小數(shù)點(diǎn)后一位。 ( 2) 可用鍵盤(pán)方便地設(shè)定水溫,并顯示設(shè)定的溫度。這樣就達(dá)到了控溫的目的。 } } 34 } 采用定時(shí)器 T0,定時(shí)器設(shè)定每 30ms 中斷一次,判斷輸入的數(shù)值與采集的數(shù)值之間的大小,如果前者較大 就使 P2^1 變?yōu)榈碗娖?,從而?MOC3041 啟動(dòng)并引起加熱。 P1=0xff。 jiar=0。num3!=21) { jiar=1。num2!=21amp。num1!=21amp。 if(a=numyamp。 if(zd==6) { zd=0。 TL0=(6553646000)%256。 中斷加熱子函數(shù)的分析 以下是程序: void timer0() interrupt 1 { int a。這里要注意的是每次都要 將 aaa 清零,因?yàn)?aaa 為 1 時(shí) ,輸 33 入子函數(shù) uchar scanff()的返回值變?yōu)橐粋€(gè)使數(shù)碼管顯示一個(gè)下劃線(xiàn)的數(shù)值, aaa為 0 時(shí)鍵盤(pán)可以通過(guò) uchar scanff()向數(shù)碼管顯示 09 中的任何一個(gè)數(shù)值。 這里鍵盤(pán)輸入溫度的數(shù)碼管顯示使用的是 switch(bbb)語(yǔ)句完成的, bbb 共有0、 3,這四種情況, bbb 等于 0 時(shí)是無(wú)任何輸入的情況, bbb 等于 1 時(shí) 是輸入了 需要溫度的十位, bbb 等于 2 時(shí)是輸入了需要溫度的個(gè)位, bbb 等于 3 時(shí)是輸入了需要溫度的小數(shù)點(diǎn)后一位,這里沒(méi)有超過(guò) 100 度和低于 0 度的設(shè)計(jì)。 ccc 的作用是防止出現(xiàn)什么都不輸入直接確認(rèn)給程序帶來(lái)的 bug,出現(xiàn)這種情況時(shí)系統(tǒng)不做其他的任何反應(yīng),保持在這時(shí)的輸入狀態(tài),直到用戶(hù)輸入了一個(gè)數(shù)字為止。 } 上面這句話(huà)就是第一種和第四種情況的描述。 if(a0)//負(fù)值 后面加個(gè)小數(shù)點(diǎn) dis[3]+=10。(dis[1]==0)) dis[1]=20。 if((dis[0]==0)amp。第三:只有幾度沒(méi)有超過(guò)十度。這里顯示時(shí) 需要 考慮 DS18B20 采集的數(shù)據(jù)中的 各種情況,第一 :超過(guò)了 100 度。分別將dda 的千位、百位、十位、個(gè)位取出存放在 Numx, num1, num2, num3 中。 } 32 } 首先 要清楚 a 是 DS18B20 芯片獲取的溫度, b 是 需要 輸入的溫度,也就是要求的水溫。 default:bbb=0。num=21。 duan=0。 duan=1。 duan=0。 duan=1。// srtemp=_crol_(srtemp,1)。 P0=srtemp。i++) { P0=0xff。 for(i=1。 else dis[2]+=10。 dis[3]=num3。 case 3: dis[1]=num1。 } aaa=0。 P0=0x00。 delay(1)。 P0=table[dis[i]]。 P0=0x00。//wein 打開(kāi)后 是低電平亮 wei=0。 wei=1。i4。 srtemp=0xfe。 if(dis[2]==21) dis[2]++。 dis[3]=b。 case 2: dis[1]=num1。 } 30 aaa=0。 P0=0x00。 delay(1)。 P0=table[dis[i]]。 P0=0x00。//wein 打開(kāi)后 是低電平亮 wei=0。 wei=1。i4。 srtemp=0xfe。 if(dis[2]==21) dis[2]++。 num2=b。 case 1: dis[1]=num1。 29 duan=0。 duan=1。 duan=0。 duan=1。// srtemp=_crol_(srtemp,1)。 P0=srtemp。i++) { P0=0xff。 for(i=1。 else dis[2]+=10。 dis[3]=num3。 num1=b。ccc!=21) bbb++。 if(aaa==1amp。 28 P0=0x00。 delay(3)。 P0=table[dis[i]]。 P0=0。 P0=temp。 wei=1。i4。 } temp=0xfb。//如果百位和十位都為 0 不顯示 if(a0)//負(fù)值 后面加個(gè)小數(shù)點(diǎn) dis[3]+=10。amp。 dis[2]+=10。 dis[2]=num5。 dis[0]=numx。 27 num5=dda%100/10。 numx=dda/1000。 uint dda。 顯示函數(shù)的分析 以下 是 display()函數(shù)的具體內(nèi)容。 } } 這里的 aaa 用于控制是否確定輸入的一個(gè)數(shù)字是需要的數(shù)字, bbb 用于 標(biāo)記已經(jīng)輸入到了三個(gè) 數(shù)字的 第幾個(gè)數(shù)字 。 numy=gettemp()。 a=gettemp()。 uchar b。num3=21。 num1=21。aaa=0。 zd=0。 ET0=1。 TL0=(6553646000)%256。 主函數(shù)的分析 首先給出主函數(shù): void main() { TMOD=0x01。 現(xiàn)在已 獲得了 溫度的數(shù)據(jù), 還要通過(guò)軟件計(jì)算出具體傳送數(shù)據(jù)代表的溫度值,在前面已經(jīng)談到數(shù)據(jù)中的 1 就代表了 攝氏度。使用 readbyte()讀取兩個(gè)字節(jié)的數(shù)據(jù),分 25 別賦予 geta、 getb 兩個(gè)字符型變量,再將 getb 賦予 temp( temp 是一個(gè)整型變量擁有兩個(gè)字節(jié)的容量),這樣 temp 的低 8 為就是 getb 中的值了。然后溫度獲 取 gettemp()子函數(shù)完成。//,變大十倍且 四舍五入 return(temp)。 tt=temp*。 temp=8。//讀取兩個(gè)字節(jié) getb=readbyte()。//讀取溫度命令 delay(2)。 writeor(0xcc)。 dswait()。 uchar geta,getb。 } uint gettemp()//獲取溫度 { float tt。// 跳過(guò)讀序號(hào)列號(hào)的操作 writeor(0x44)。 delay(1)。軟件實(shí)施方法如下: void changetemp()//溫度轉(zhuǎn)變函數(shù) { dsstart()。 } } } 當(dāng)以上程序書(shū)寫(xiě)完成后,準(zhǔn)備工作基本完成。 b++。b++)。 for(b=0。b++)。 for(b=0。 b++,b++。 order=1。a++) { bit2=orderamp。 for(a=0。 bit bit2。 void writeor(uchar order)//寫(xiě)入命令 { uint b。 } 以下為寫(xiě)入命令程序。 b++。 while(b8) { a=readbit()。 b=0。 } uchar readbyte()//讀取一個(gè)字節(jié) { uint b。 while(i0) i。 //延時(shí)約 16us, 符合協(xié)議要求的至少延時(shí) 15us 以上 b=ds。 i++。 i++。 bit b??梢栽跍囟炔杉x取時(shí)調(diào)用。 while(i0) i。 //等待應(yīng)答信號(hào) while(~ds)。 void dswait() { unsigned int i。 } 然后延時(shí)等待,回應(yīng)。 //產(chǎn)生一個(gè)上升沿 , 進(jìn)入等待應(yīng)答狀態(tài) i=4。 //拉低約 800us, 符合協(xié)議要求的 480us 以上 while(i0) i。 ds=0。首先要初始化DS18B20 以下 為初始化程序。 經(jīng)過(guò)檢測(cè)以后通過(guò)不同的 temp 值,使 num 被賦予相應(yīng)的數(shù)值,這樣 num 就是要輸入的一個(gè)數(shù)字。0xf0。 } while(temp!=0xf0) { temp=P3。 case 0x7d:num=3。 case 0xbd:num=2。 case 0xdd:num=1。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1