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

正文內容

基于51單片機超聲波測距系統(tǒng)-資料下載頁

2025-06-19 13:14本頁面
  

【正文】 //三位數(shù)碼管位選unsigned char disbuff[4] ={ 0,0,0,0,}。/********************************************************/void Display(void) //掃描數(shù)碼管{ if(posit==0) { P1=(discode[disbuff[posit]])amp。0x7f。 //顯示第一位和小數(shù)點 } else { P1=discode[disbuff[posit]]。 //顯示第二位和第三位 } P3=positon[posit]。 //位選 if(++posit=3) //循環(huán),顯示三位 posit=0。}/********************************************************/void Conut(void){ time=TH0*256+TL0。 //計算時間,單位是us TH0=0。 //時間清除 TL0=0。 //時間清除 S=(time*)/100。 //超聲波的速度按340m/s計算,由于路程往返,需要除以2,算出來是CM, if((S=700)||(flag==1)) //超出測量范圍顯示 { flag=0。 //清除定時器T0中斷標志位 disbuff[0]=10。 // disbuff[1]=10。 // disbuff[2]=10。 // } else { disbuff[0]=S%1000/100。 //取出百位 disbuff[1]=S%1000%100/10。 //取出十位 disbuff[2]=S%1000%10 %10。 //取出個位 } if(S40) LED=0。 if(S30) //判斷距離是否小于30cm { BEEP=1。 //啟動蜂鳴器報警 LED=0。 } if(S=30) // BEEP=0。 //關閉蜂鳴器 if(S=40) { BEEP=0。 //啟動蜂鳴器報警 LED=1。 }}/********************************************************/void zd0() interrupt 1 //T0中斷用來計數(shù)器溢出,超過測距范圍{ flag=1。 //在TMOD=0x11定義下,定時器最多定時65535us,這段時間超聲波走過的距離為:65535* //顯然距離明顯超出范圍,因此,當定時時間到仍未接收到超聲波,中斷溢出標志置位,則讓其顯示}/********************************************************/void zd3() interrupt 3 //T1中斷用來掃描數(shù)碼管和計800MS啟動模塊{ TH1=(655362000)/256。 TL1=(655362000)%256。 Display()。 //2ms進入中斷函數(shù)掃描數(shù)碼管一次 timer++。 //中斷次數(shù)加一 if(timer=250) //2ms*250=500ms,即每500ms發(fā)送一次超聲波(測量周期一定要大于60ms) { timer=0。 //把中斷次數(shù)清除 TX=1。 //啟動模塊,發(fā)送超聲波 _nop_()。 //延時1us,至少需要發(fā)送10us _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 TX=0。 //發(fā)送完畢,關閉發(fā)送 } }/*********************************************************/void Timer_init(void){ TMOD=0x11。 //設T0為方式1,GATE=1; TH0=0。 //設置初值為0 TL0=0。 TH1=(655362000)/256。 //2MS定時 TL1=(655362000)%256。 ET0=1。 //允許T0中斷 ET1=1。 //允許T1中斷 TR1=1。 //開啟定時器 EA=1。 //開啟總中斷}/*********************************************************/void main(void){ BEEP=0。 //關閉蜂鳴器 Timer_init()。 //定時器初始化 while(1) { while(!RX)。 //當接收為0時,表示沒接收到超聲波,此時程序停在這里,直到開始有接收,while(1);表示停 TR0=1。 //開始有信號傳入,開啟定時器T0計數(shù) while(RX)。 //當接收為1時,表示接收到超聲波,此時程序停在這里,直到開始接收結束,while(0);表示跳過 TR0=0。 //信號傳入結束,關閉定時器T0計數(shù) Conut()。 //計算并顯示 }}
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1