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

正文內容

水溫控制系統(tǒng)的設計畢業(yè)論文-資料下載頁

2025-06-28 15:30本頁面
  

【正文】 ****************** 檢查DS1820是否存在;   如果存在返回1;否則返回0***************************************/bit DS18B20_reset(void) { bit bus_flag=0。 //TR0=0。 ET0=0。 DQ=1。 _nop_()。 DQ=0。 // 設置1wire總線為低電平(占領總線)... /* 現(xiàn)在延遲480us~960us, 與硬件密切相關,但應盡可能選小值(480us), 把抖動留給系統(tǒng)(比如在延遲期間發(fā)生中斷導致延遲變長)。 */ delay(33)。 // 490us //CLI()。 // 下面這段時間要求比較嚴格,為保險起見,關中斷 DQ=1。 // 設置1wire總線為高電平(釋放總線)/* 這個浮點數(shù)是由編譯器計算好的,而不是由你的MCU在運行時臨時計算的, 所以不會占用用戶MCU的時間,不必擔心(看看前面的宏你就可以確定了) */ delay(1)。 if(!DQ) {bus_flag=1。 delay(13)。 //break。 } DQ=1。 TR0=1。 ET0=1。 return(bus_flag)。 // 探測總線上是否有器件 //SEI()。 // 退出臨界代碼區(qū)(開中斷) /* 保證Master釋放總線的時間(不是說總線處于高電平的時間)不小于 480us即可,這一時間從讀總線狀態(tài)之前就開始了,所以這里把這個 時間計算在內。在Master釋放總線的前半段,也是被動器件聲明它 們在線之時。 */}/*************************************** 從DS1820讀取1字節(jié)數(shù)據 ***************************************/unsigned char DS18B20_read(void) { unsigned char i,j,Read_Byte=0。 //TR0=0。 ET0=0。 for(i=0。i8。i++) { DQ=0。 // 設置1wire總線為低電平(拉低總線以同步) _nop_()。 DQ=1。 // 設置1wire總線為高電平(釋放總線) _nop_()。 _nop_()。 // 4us j=DQ。 delay(3)。 Read_Byte=(j7)|(Read_Byte1)。 //右移一位 // 讀取總線電平,先收低位再收高位 TR0=1。 ET0=1。} return(Read_Byte)。 }/***************************************   寫命令到DS1820***************************************/void DS18B20_write(unsigned char cmd) { unsigned char j。 //TR0=0。 ET0=0。 for(j=0。j=7。j++) { DQ=0。 // 設置1wire總線為低電平 _nop_()。 _nop_()。 if(cmdamp。0x01) DQ=1。 // 并串轉換,先低位后高位 else DQ=0。 cmd=1。 delay(2)。 DQ=1。 _nop_()。 _nop_()。 TR0=1。 ET0=1。 } }void convert_T(void){ DS18B20_reset()。 DS18B20_write(0xcc)。 // 跳過多器件識別 DS18B20_write(0x44)。 // 啟動溫度轉換 //delay(400)。}uint Read_T(void){ uint value=0。 //TR0=0。 //if(DS18B20_reset()==1) { // 如果復位成功 DS18B20_reset()。 DS18B20_write(0xcc)。 // 跳過多器件識別 DS18B20_write(0xbe)。 // 讀暫存器 value = (uint)DS18B20_read()。 // 低字節(jié) value += (uint)((DS18B20_read())8)。 // 高字節(jié) value=(value*10)/16 。 dis_tem[0]=value/100。 dis_tem[1]=(value%100)/10。 dis_tem[2]=value%10。 //} TR0=1。 return(value)。}/*******延時程序******/void delayms(uchar num){uchar data i。 for(。num!=0。num) {for(i=112。i!=0。i)。 }}/******顯示程序**********/void display(void){ unsigned char tem,i。 tem=0xef。 if(flag1) {for(i=0。i3。i++) { if(i==1) P2=(tab[dis_shi[i]])amp。0x7f。 else P2= tab[dis_shi[i]]。 P0=(P0amp。0x0f)|(temamp。0xf0)。 delayms(4)。 P0=(P0amp。0x0f)|0xf0。 tem=tem1。 } } if(flag2) {for(i=0。i3。i++) { if(i==1) P2=(tab[dis_tem[i]])amp。0x7f。 else P2= tab[dis_tem[i]]。 P0=(P0amp。0x0f)|(temamp。0xf0)。 delayms(4)。 P0=(P0amp。0x0f)|0xf0。 tem=tem1。 } } if(flag4) {for(i=0。i3。i++) { if(i==1) P2=(tab[dis_tem2[i]])amp。0x7f。 else P2= tab[dis_tem2[i]]。 P0=(P0amp。0x0f)|(temamp。0xf0)。 delayms(4)。 P0=(P0amp。0x0f)|0xf0。 tem=tem1。 } } } /*******查鍵程序*************/void searchkey(void){P0=(P0amp。0x0f)|0xf0。 mode=1。 if(mode==0) /*右移*/ {display()。 if(mode==0) {if(flag_k1) { flag1=1。 flag2=0。 flag3=0。 flag4=0。 flag_k1=0。 flag_k2=1。 do{display()。mode=1。}while(!mode)。} else { dis_shi[0]= dis_shi[0]+1。 if (dis_shi[0]==10) dis_shi[0]=0。 do{display()。mode=1。}while(!mode)。} } } inc1=1。 if(inc1==0) {display()。 if (inc1==0) {if(flag_k2) { dis_shi[1]= dis_shi[1]+1。 if (dis_shi[1]==10) dis_shi[1]=0。 do{display()。inc1=1。}while(!inc1)。 } else {flag4=1。 flag2=0。 do{display()。inc1=1。}while(!inc1)。 } } } inc2=1。 if(inc2==0) {display()。 if (inc2==0) { dis_shi[2]= dis_shi[2]+1。 if (dis_shi[2]==10) dis_shi[2]=0。 do{display()。inc2=1。}while(!inc2)。 } } enter=1。 if(enter==0) /*右移*/ {display()。 if(enter==0) { flag1=0。 flag2=1。 flag3=1。 flag4=0。 flag_k2=0。 flag_k1=1。 data_she=dis_shi[0]*100+dis_shi[1]*10+dis_shi[2]。 do{display()。enter=1。}while(!enter)。} }}/*******PID運算*************//*void pid(void){ //int kp,ki。 //float del_pwm。 e_pid[0]=data_shedata_new。 kp=*(e_pid[0]e_pid[1])。 ki=*e_pid[0]。 //kd=*(e_pid[0]2*e_pid[1]+e_pid[2])。 del_pwm=kp+ki。 pwm=pwm+del_pwm。 if(pwm=) pwm=。 if(pwm=) pwm=。 pwm_wid=(int)pwm。 //e_pid[2]=e_pid[1]。 e_pid[1]=e_pid[0]。 }*/ /*******定時中斷*************/void timer0(void) interrupt 1 using 1{ TR0=0。 TH0=0xD8。 TL0=0xF0。 display()。 searchkey()。 count++。 if(count200) {count=0。 flag_4s=1。} if(flag3) { if(pwm_wid0) {pwm_wid=pwm_wid1。 DQ1=0。} else if(pwm_wid==0) DQ1=1。 else DQ1=1。 } else DQ1=1。 TR0=1。}/*****主程序*********/void main(void){ PCON=0x00。 SCON=0x40。 TMOD=0x21。 TH1=0xfd。 TL1=0xfd。 TH0=0xD8。 TL0=0xF0。 ET0=1。 /*定時器0開中斷*/ EA=0。 /*開中斷*/ TR0=1。 TR1=1。 flag1=1。 flag2=0。 flag3=0。 /*啟動計數(shù)*/ convert_T()。 data_new=Read_T()。 while(1) { display()。 searchkey()。 while(flag3) { //display()。 // searchkey()。 display()。 sear
點擊復制文檔內容
教學教案相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1