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

正文內(nèi)容

基于單片機(jī)溫度控制電路的設(shè)計與制作-資料下載頁

2024-12-06 02:21本頁面

【導(dǎo)讀】一個高溫和低溫時,分別對相應(yīng)的器件進(jìn)行控制的系統(tǒng)。詳細(xì)地介紹了整個系統(tǒng)的硬件組成。相關(guān)控制模塊等的模塊化設(shè)計思路與制作。系統(tǒng)采用八段四位數(shù)碼管作為顯示器,具有環(huán)境。溫度實時顯示,按鍵設(shè)置上下限溫度,從而控制倉庫排氣扇轉(zhuǎn)動。在本設(shè)計中,軟件程序均。采用C語言編寫,便于移植與升級。Systemadopts數(shù)碼管monitor,數(shù)碼管1602aswithreal-timetimedisplay,

  

【正文】 p_()。_nop_()。_nop_()。_nop_()。 //4 us if(DQ)value|=0x80。 delay(6)。 //66 us } DQ=1。 return(value)。 } // /****************讀出溫度函數(shù) ************************/ // 正 文 18 uint read_temp() { ow_reset()。 //總線復(fù)位 delay(200)。 write_byte(0xcc)。 //發(fā)命令 write_byte(0x44)。 //發(fā)轉(zhuǎn)換命令 ow_reset()。 delay(1)。 write_byte(0xcc)。 //發(fā)命令 write_byte(0xbe)。 temp_data[0]=read_byte()。 //讀溫度值的第字節(jié) temp_data[1]=read_byte()。 //讀溫度值的高字節(jié) temp=temp_data[1]。 temp=8。 temp=temp|temp_data[0]。 // 兩字節(jié)合成一個整型變量。 return temp。 //返回溫度值 } // /****************溫度數(shù)據(jù)處理函數(shù) ************************/ //二進(jìn)制高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié) ,這個 //字節(jié)的二進(jìn)制轉(zhuǎn)換為十進(jìn)制后 ,就是溫度值的百、十、個位值 ,而剩 //下的低字節(jié)的低半字節(jié)轉(zhuǎn)化成十進(jìn)制后 ,就是溫度值的小數(shù)部分 /********************************************************/ void work_temp(uint tem) { uchar n=0。 if(tem6348) // 溫度值正負(fù)判斷 {tem=65536tem。n=1。} // 負(fù)溫度求補碼 ,標(biāo)志位置 1 display[4]=temamp。0x0f。 // 取小數(shù)部分的值 display[0]=ditab[display[4]]。 // 存入小數(shù)部分顯示值 display[4]=tem4。 // 取中間八位 ,即整數(shù)部分的值 display[3]=display[4]/100。 // 取百位數(shù)據(jù)暫存 display[2]=display[4]/10%10。 // 取十位數(shù)據(jù)暫存 DQ=display[4]/10%10。 display[1]=display[4]%10。 // 取個位數(shù)據(jù)暫存 /******************符號位顯示判斷 **************************/ if(!display[3]) { display[3]=0x0a。 //最高位為 0 時不顯示 } if(n){display[3]=0x0b。} //負(fù)溫度時最高位顯示 } 正 文 19 // //******************************************************** void beep(uchar x) {uchar i。 for(i=x。i0。i) { unsigned int j=400。 while(j) {bp=~bp。 delay2(2)。} delay2(100)。 } } //********************************************************* void disp_set() { P0=dis_7[set1[2]]。//數(shù)據(jù)顯示 P2=0Xfb。 delay(250)。 P0=dis_8[set1[1]]。//小數(shù)點顯示 P2=0Xfd。 delay(250)。 P0=dis_7[set1[0]]。//數(shù)據(jù)顯示 P2=0Xfe。 delay(250)。 } ///*********************************************************** void key_scan() { if(k1==0) {while(k1==0)。 flag++。 if(flag==2) flag=0。} if(flag==1) { while(k1==1) 正 文 20 { if(k2==0) { delay(50)。 if(k2==0) { delay(10000)。 set++。 if(set==1000) set=0。 } } if(k3==0) { delay(50)。 if(k3==0) { delay(10000)。 set。 if(set==1) set=999。 } } set1[2]=set/100。 set1[1]=set%100/10。 set1[0]=set%100%10。 disp_set()。 } write(2,set1[2])。 delay2(250)。 write(1,set1[1])。 delay2(250)。 write(0,set1[0])。 delay2(250)。 } } //**************************************************** void bijiao() { count=(display[2]*100)+(display[1]*10)+display[0]。 if(countset) {IO=0。//啟動繼電器 beep(1)。} else IO=1。 正 文 21 } /****************主函數(shù) ************************/ void main() { set1[0]=read(0)。 set1[1]=read(1)。 set1[2]=read(2)。 set=set1[2]*100+set1[1]*10+set1[0]。 for(h=0。h4。h++) //開機(jī)顯示 0000 {display[h]=0。} ow_reset()。 //開機(jī)先轉(zhuǎn)換一次 write_byte(0xcc)。 //Skip ROM write_byte(0x44)。 //發(fā)轉(zhuǎn)換命令 for(h=0。h100。h++) //開機(jī)顯示 0000 {scan()。} while(1) { key_scan()。 work_temp(read_temp())。 //處理溫度數(shù)據(jù) //不啟動繼電器 if(display[3]==0x0a) {scan()。 bijiao()。} else IO=1。 //顯示溫度值 } } // //***********************結(jié)束 **************************// 正 文 22 附錄 B:電路圖
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1