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

正文內容

基于單片機的超聲波視力保護儀的設計畢業(yè)論文-資料下載頁

2025-02-26 12:09本頁面
  

【正文】 delay 小延時一下 DS=0。i++。 DS=1。i++。i++。 i=8。while(i0)i。 return (dat)。 } //read a byte date 讀一個字節(jié) uchar tmpread(void) { uchar i,j,dat。 dat=0。 for(i=1。i=8。i++) { j=tmpreadbit()。 //讀出的數(shù)據(jù)最低位在最前面,這樣剛好 //一個字節(jié)在 dat 里 dat=(j7)|(dat1)。 29 } //將一個字節(jié)數(shù)據(jù)返回 return(dat)。 } //write a byte to ds18b20 //寫一個字節(jié)到 DS18B20 里 void tmpwritebyte(uchar dat) { uint i。 uchar j。 bit testb。 for(j=1。j=8。j++) { testb=datamp。0x01。 dat=dat1。 if(testb) //write 1 寫 1 部分 { DS=0。 i++。i++。 DS=1。 i=8。while(i0)i。 } else { DS=0。 //write 0 寫 0 部分 i=8。while(i0)i。 DS=1。 i++。i++。 30 } } } //DS18B20 begin change 發(fā)送溫度轉換命令 void tmpchange(void) { dsreset()。 //初始化 DS18B20 delay(1)。 //延時 tmpwritebyte(0xcc)。 //跳過序列號命令 tmpwritebyte(0x44)。 //發(fā)送溫度轉換命令 } //get the temperature 獲得溫度 uint tmp() { float tt=0。 uchar a=0,b=0。 dsreset()。 delay(1)。 //發(fā)送讀取數(shù)據(jù)命令 tmpwritebyte(0xcc)。 tmpwritebyte(0xbe)。 //連續(xù)讀兩 個字節(jié)數(shù)據(jù) a=tmpread()。 b=tmpread()。 //two byte pose a int variable //兩字節(jié)合成一個整型變量。 temp=b。 temp=8。 31 if(b==0xff) { flag=1。 temp=~temp+1。 } //得到真實十進制溫度值 ,因為 DS18B20 tt=temp*。 //可以精確到 度,所以讀回數(shù)據(jù)的最低位代表的是 // 度。 //放大十倍,這樣做的目的將小數(shù)點后第一位 temp=tt*10+。 //也轉換為可顯示數(shù)字,同時進行一個四舍五入操作。 //返回溫度值 return temp。 } //超聲波管腳定義 sbit RX=P2^1。 sbit TX=P2^0。 //超聲波初始化 void Init_ultrasonic_wave() { TX=0。 //關閉發(fā)射 TMOD=0x01。 //設 T0 為方式 1, GATE=1; TH0=0。 TL0=0。 ET0=1。 //允許 T0中斷 EA=1。 //開啟總中斷 } 32 //啟動超聲波 void StartModule() //啟動模塊 { TX=1。 //啟動一次模塊 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 TX=0。 } //計算不同溫度下的速度 void JS_(uchar WD) { 33 //大于 30 if(WD=30amp。amp。flag==1) { L_=(time*)/200。 //算出來是 CM。 } //大于 2030 else if(WD=20amp。amp。WD30amp。amp。flag==1) { L_=(time*)/200。 //算出來是 CM。 } //大于 1020 else if(WD=10amp。amp。WD20amp。amp。flag==1) { L_=(time*)/200。 //算出來是 CM。 } //大于 010 else if(WD=0amp。amp。WD10amp。amp。flag==1) { L_=(time*)/200。 //算出來是 CM。 } //大于 010 else if(WD=10amp。amp。WD0amp。amp。flag==0) { L_=(time*)/200。 //算出來是 CM。 } //大于 2030 else if(WD=30amp。amp。WD20amp。amp。flag==0) { L_=(time*)/200。 //算 出來是 CM。 34 } //大于 30 else if(WD30amp。amp。flag==0) { L_=(time*)/200。 //算出來是 CM。 } } //距離計算 SD 為當時的超聲速度 void Conut(uchar WD) { time=TH0*256+TL0。 TH0=0。 TL0=0。 JS_(WD)。 //距離大于 200 或者超時 if(L_200||flags==1) { flags=0。 //無效顯示 flag1s=0。 L_=0。 Feng_Start()。 } //距離小于 100 else if(L_=200) { flag1s=1。 FW=1。 Feng_Stop()。 35 } } //管腳聲明 sbit Feng=P1^0。 sbit K1=P1^1。 sbit K2=P1^2。 sbit K3=P1^3。 //蜂鳴打開 void Feng_Start() { Feng=0。 } //蜂鳴關閉 void Feng_Stop() { Feng=1。 } //等待 void delay_key() { for(i=0。i200。i++) for(j=0。j200。j++)。 } 36 //按鍵檢測 void Key() { //功能鍵按下 if(K1==0) { Feng_Start()。//蜂鳴器開 delay_key()。 //消抖 while(K1==0)。//等待松手 Feng_Stop()。 //蜂鳴器關閉 mode++。 //模式 ++ if(mode==3) //達到最大限度歸為 mode=0。 k=1。 //按鍵標志位 } //+鍵 else if(K2==0) { Feng_Start()。//蜂鳴器開 delay_key()。 //消抖 Feng_Stop()。 //蜂鳴器關閉 //最大值調整 if(mode==1) //在最大值調整下 { Max++。 //調整最大值 if(Max==201)//到達 51 歸為 50 { Max=200。 } } 37 //最小值 else if(mode==2)//最小模式下調 整 { Min++。 //調整最小值 if(MinMax) //最小值不能大于最大值 { Min=Max。 } } k=1。 } //鍵 else if(K3==0) { while(K3==0)。 Feng_Stop()。 //最大值調整 if(mode==1) { Max。 { Max=Min。 } } //最小值 else if(mode==2) { Min。 if(Min==0xff) { 38 Min=0。 } } k=1。 }
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1