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

正文內(nèi)容

基于51單片機的超聲波測距電子電路設(shè)計-資料下載頁

2025-06-19 13:13本頁面
  

【正文】 (uchar Ch) //口線模擬時序,164送顯示{ uchar j。 for(j=0。j8。j++) { CLK=0。 _nop_()。 DAT=Champ。0x80。 CLK=1。 _nop_()。 Ch=1。 }}//void Disp4() //四個數(shù)碼管顯示{ static uchar j=0。 Send164((DispCode[NumCode[j]]))。//調(diào)出與顯緩區(qū)數(shù)值相應(yīng)的字型碼 P0=(P0amp。0xf0)|(LedSelect[j])。 j++。 j%=4。 }//void TempSendDisp() //送顯溫度{ if(FlagSgn==1) { NumCode[0]=20。 } else { NumCode[0]=21。 } NumCode[1]=DispNum%1000/100。 if(NumCode[1]==0) { NumCode[1]=21。 } NumCode[2]=DispNum%100/10+10。 NumCode[3]=DispNum%10。}//void DistanceSendDisp() //送顯距離{ NumCode[0]=DispNum/1000。 if(NumCode[0]==0) { NumCode[0]=21。 } NumCode[1]=DispNum%1000/100+10。 NumCode[2]=DispNum%100/10。 NumCode[3]=DispNum%10。}//void SendDisp() //送顯數(shù)字{ NumCode[0]=DispNum/1000。 NumCode[1]=DispNum%1000/100。 NumCode[2]=DispNum%100/10。 NumCode[3]=DispNum%10。}//void KeyScan(void) //鍵掃描{ static uchar KeyBuff。 if(KeyData!=0xff) // 表示有鍵按下 { if(KeyState!=KeyDown) { if(KeyFirst==1) { KeyBuff=KeyData。 KeyFirst=0。 } else { if(KeyData==KeyBuff) { KeyValue=~KeyData。 KeyState=KeyDown。 } } } } else { KeyFirst=1。 KeyState=KeyUp。 }}//void KeyProcess() //鍵盤處理{ switch (KeyValue) { case 0x01: //送顯溫度 { DispNum=DispTemp。 TempSendDisp()。 break。 } case 0x02://送顯距離 { DispNum=DistNum。 DistanceSendDisp()。 break。 } case 0x04://送顯時分 { TimeData=TimeBuff[2]*100+TimeBuff[1]。 DispNum=TimeData。 SendDisp()。 break。 } case 0x08://送顯月日 { TimeData=TimeBuff[4]*100+TimeBuff[3]。 DispNum=TimeData。 SendDisp()。 break。 } case 0x10://送顯年星期 { TimeData=TimeBuff[6]*100+TimeBuff[5]。 DispNum=TimeData。 SendDisp()。 break。 } default: break。 }}//void StartMeasured() //啟動超聲波測距{ EX0=0。 TH1=0。 TL1=0。 TR1=1。 MeasureEn=1。 Delayus(50)。//延時500us,發(fā)射大約20個脈沖 MeasureEn=0。 Delayus(10)。//延時100us EX0=1。}//void PaiXu() //三個測量結(jié)果排序{ uint Temp。 uchar i。 for(i=0。i2。i++) { if((Distance[i])=(Distance[i+1])) { Temp=Distance[i]。 Distance[i]=Distance[i+1]。 Distance[i+1]=Temp。 } } if((Distance[0])=(Distance[1])) { Temp=Distance[0]。 Distance[0]=Distance[1]。 Distance[1]=Temp。 }}//void Measure3Times() //啟動三次測量,并取中值,送顯示{ static uchar k=0。 static uint SumDist=0。 if(FlagEndMeasure==1) { FlagEndMeasure=0。 MeasureTime++。 } if(MeasureTime=3) { StartMeasured()。 } else { MeasureTime=0。 FlagEndMeasure=1。 EX0=0。 //關(guān)掉外部中斷 PaiXu()。 DistNum=Distance[1]。/* DistValue[k]=Distance[1]。 SumDist=SumDist+DistValue[k]。 k++。 if(k=3) { DistNum=SumDist/3。 k=0。 SumDist=0。 } */ }}//void main(){ MeasureEn=0。// v_Set1302(WRITE_SECOND,amp。TimeInitData[0],7)。 T0Init()。 T1Init()。 Ex0Init()。 while(1) { if(Flag20ms==1) { Flag20ms=0。 KeyScan()。 KeyProcess()。 } if(Flag50ms==1) { Flag50ms=0。 Measure3Times()。 } if(Flag1s==1) { Flag1s=0。 DispTemp=DS18B20_ReadTemp()。 // v_Get1302(READ_SECOND,amp。TimeBuff[0],7)。 } }}//void T0Server() interrupt 1{ TH0=(655365000)/256。 TL0=(655365000)%256。 Disp4()。 T0Num++。 if(T0Num%4==0) { Flag20ms=1。 } if(T0Num%10==0) { Flag50ms=1。 } if(T0Num=200) { T0Num=0。 Flag1s=1。 }}//void EX0Server() interrupt 0{ TR1=0。//關(guān)掉定時器1 if(FlagSgn==1) { Distance[MeasureTime1]=((TH18)+TL1)*(*DispTemp)/2。 } else { Distance[MeasureTime1]=((TH18)+TL1)*(+*DispTemp)/2。 } FlagEndMeasure=1
點擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1