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

正文內(nèi)容

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

2024-12-05 04:53本頁面
  

【正文】 changetemp()。 while(1) { uint a。num2=21。bbb=0。 num=21。 TR0=1。 EA=1。 TH0=(6553646000)/256。 } return num。 } } } if(aaa==1) { ccc=num。 temp=tempamp。break。break。break。break。 49 while(temp!=0xf0) { temp=P3。 temp=tempamp。 P3=0xf7。0xf0。 temp=P3。0xf0。 } while(temp!=0xf0) { temp=P3。 case 0x7b:num=7。 case 0xbb:num=6。 case 0xdb:num=5。 switch(temp) { case 0xeb:num=4。0xf0。 temp=P3。 while(temp!=0xf0) { delay(5)。 temp=tempamp。//****0000 } } } P3=0xfb。 temp=tempamp。 break。 break。 break。 break。 while(temp!=0xf0) { temp=P3。 temp=tempamp。 P3=0xfd。0xf0。 temp=P3。 } } uchar scanff() { uint temp。 default:bbb=0。num=21。 duan=0。 duan=1。 duan=0。 duan=1。// srtemp=_crol_(srtemp,1)。 P0=srtemp。i++) 46 { 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 打開后 是低電平亮 wei=0。 wei=1。i4。 45 srtemp=0xfe。 if(dis[2]==21) dis[2]++。 dis[3]=b。 case 2: dis[1]=num1。 } aaa=0。 P0=0x00。 delay(1)。 P0=table[dis[i]]。 P0=0x00。//wein 打開 后 是低電平亮 wei=0。 wei=1。i4。 srtemp=0xfe。 if(dis[2]==21) dis[2]++。 num2=b。 case 1: dis[1]=num1。 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。 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。 num5=dda%100/10。 numx=dda/1000。 uint dda。//,變大十倍且 四舍五入 return(temp)。 tt=temp*。 temp=8。//讀取兩個(gè)字節(jié) getb=readbyte()。//讀取溫度命令 delay(2)。 writeor(0xcc)。 dswait()。 uchar geta,getb。 } uint gettemp()//獲取溫度 { float tt。// 跳過讀序號(hào)列號(hào)的操作 writeor(0x44)。 delay(1)。 } } } void changetemp()//溫度轉(zhuǎn)變函數(shù) { dsstart()。 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)//寫入命令 { uint b。//將 readbit()的返回值付給 date,然后 date向后移一位 重復(fù) 8 次剛好 得到一個(gè)字節(jié)的數(shù)據(jù) b++。 while(b8) { a=readbit()。 b=0。 } uchar readbyte()//讀取一個(gè)字節(jié) { uint b。 39 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。實(shí)物圖見圖 所示 37 圖 停止加熱狀態(tài) 附錄 整體程序代碼 include include include define uchar unsigned char define uint unsigned int sbit duan=P2^6。溫度輸入完成并判定加熱 見圖 所示。單片機(jī) P1^1 接口會(huì)出現(xiàn)低電平,從而使用第二個(gè)發(fā)光二極管點(diǎn)亮。 成品圖片 開發(fā)板等待輸入見圖 所示。 首先單片機(jī)顯示出采集到的溫度值,等待系統(tǒng)鍵入溫度,一旦鍵入 3 個(gè)數(shù)字,則第一個(gè)、第二個(gè)、第三個(gè)數(shù)字分別為需要溫度的十位、個(gè)位和小數(shù)點(diǎn)后一位。 ( 2) 可用鍵盤方便地設(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è)下劃線的數(shù)值, aaa為 0 時(shí)鍵盤可以通過 uchar scanff()向數(shù)碼管顯示 09 中的任何一個(gè)數(shù)值。 這里鍵盤輸入溫度的數(shù)碼管顯示使用的是 switch(bbb)語句完成的, bbb 共有0、 3,這四種情況, bbb 等于 0 時(shí)是無任何輸入的情況, bbb 等于 1 時(shí) 是輸入了 需要溫度的十位, bbb 等于 2 時(shí)是輸入了需要溫度的個(gè)位, bbb 等于 3 時(shí)是輸入了需要溫度的小數(shù)點(diǎn)后一位,這里沒有超過 100 度和低于 0 度的設(shè)計(jì)。 ccc 的作用是防止出現(xiàn)什么都不輸入直接確認(rèn)給程序帶來的 bug,出現(xiàn)這種情況時(shí)系統(tǒng)不做其他的任何反應(yīng),保持在這時(shí)的輸入狀態(tài),直到用戶輸入了一個(gè)數(shù)字為止。 } 上面這句話就是第一種和第四種情況的描述。 if(a0)//負(fù)值 后面加個(gè)小數(shù)點(diǎn) dis[3]+=10。(dis[1]==0)) dis[1]=20。 if((dis[0]==0)amp。第三:只有幾度沒有超過十度。這里顯示時(shí) 需要 考慮 DS18B20 采集的數(shù)據(jù)中的 各種情況,第一 :超過了 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 打開后 是低電平亮 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 打開后 是低電平亮 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=gett
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1