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

正文內(nèi)容

基于超聲波傳感器的測(cè)距系統(tǒng)設(shè)計(jì)-資料下載頁(yè)

2025-02-04 03:28本頁(yè)面

【導(dǎo)讀】先進(jìn)測(cè)控系統(tǒng)的方法和技術(shù)。測(cè)距范圍:0~200mm,測(cè)距精度:±1mm;根據(jù)題意,明確測(cè)距系統(tǒng)性能指標(biāo)及系統(tǒng)能完成的功能;選擇單片機(jī)的品種、型號(hào),設(shè)計(jì)單片機(jī)的外圍測(cè)量電路;明確測(cè)量電路輸出與被測(cè)非電量的關(guān)系;畫出系統(tǒng)電路圖,最好用PROTEL畫;給出設(shè)計(jì)說(shuō)明書一份;在說(shuō)明書中附上完整的系統(tǒng)電路原理圖。13年6月3日布置設(shè)計(jì)任務(wù),熟悉課題,查找資料;13年6月4日結(jié)合測(cè)控對(duì)象,選擇合適的傳感器,理解傳感器性能;13年6月6日設(shè)計(jì)電路參數(shù),有條件情況下,在實(shí)驗(yàn)室進(jìn)行實(shí)驗(yàn),進(jìn)一步理解測(cè)量電路輸入輸出關(guān)系;13年6月8日查找資料,理解系統(tǒng)各部分工作原理;13年6月13日書寫設(shè)計(jì)說(shuō)明書,充分理解系統(tǒng)每一部分作用;13年6月14日下午設(shè)計(jì)答辯。平時(shí)表現(xiàn)30%,設(shè)計(jì)成果40%,答辯表現(xiàn)30%.

  

【正文】 跳過(guò)讀序號(hào)列號(hào)的操作,忽略 ROM 匹配 B20_WDAT(0x44)。 // 發(fā)送溫度轉(zhuǎn)化命令 } } /***********讀取溫度函數(shù) **************/ uint GET_WD(void) { uint a = 0, b = 0, t = 0。 Init_18B20()。 //初始化 18B20 B20_WDAT(0xCC)。 //跳過(guò)讀序號(hào)列號(hào)的操作 B20_WDAT(0xBE)。 //發(fā)送讀溫度命令 a = B20_RDAT()。 b = B20_RDAT()。 //讀取一個(gè)字節(jié)(讀出高 8 位和低 8 位) t = b。 t = 8。 t = t | a。 //字節(jié)合并 return (t)。 //返回結(jié)果給調(diào)用 } /***************18B20 復(fù)位函數(shù) ***********************/ void Init_18B20() { DQ = 1。 //DQ 復(fù)位 Delay(10)。 DQ = 0。 //單片機(jī)將 DQ 拉低 Delay(80)。 //480us DQ = 1。 //拉高總線 Delay(10)。 //稍做延時(shí)后 如果 x=0 則初始化成功, x=1 則初始化失敗 if(DQ) flag=0。 else flag=1。 Delay(20)。 } /*******************讀數(shù)據(jù) ******************************/ uchar B20_RDAT(void) //讀取一個(gè)字節(jié) { 25 uchar i = 0。 uchar dat = 0。 for (i = 8。 i 0。 i) { DQ = 0。 // 拉低數(shù)據(jù)線,開始讀數(shù)據(jù) dat = 1。 DQ = 1。 // 拉高數(shù)據(jù)線,停止讀數(shù)據(jù) if(DQ) dat |= 0x80。 //拼裝處理 Delay(15)。 } return (dat)。 //注意讀取的為補(bǔ)碼 } /*********************寫數(shù)據(jù) ****************************/ void B20_WDAT(uchar dat) { uchar i = 0。 for (i = 8。 i 0。 i) { DQ = 0。 //拉低數(shù)據(jù)線至少 15us 以作為起始信號(hào) DQ = datamp。0x01。 //取出低位的一位數(shù)據(jù) Delay(5)。 //稍作延時(shí) DQ = 1。 //將數(shù)據(jù)線拉高以作為停止信號(hào) dat=1。 //移位,為寫入下一位數(shù)據(jù)做準(zhǔn)備 } } /*******************數(shù)據(jù)轉(zhuǎn)換函數(shù) **************************/ void BUMA() { temp=~temp。 //按位取反 temp+=1。 } /**************************LCD 顯示函數(shù) *******************/ void LCD_DISP() { uchar a,b,d。 Init_LCD()。 Write_Comm(0x01)。 //清顯示 Write_Comm(0x80)。 //寫首地址 Write_Data(39。q39。)。 for(a=0。a16。a++) { d=dispBUF[a]。 26 if((a11)amp。amp。(a14)) //如果是結(jié)果位到 num[]里面讀取 { d=numcode[num[a]]。 //待顯示的結(jié)果 } if(14==a) { d=0xdf。 } Write_Data(d)。 //寫入要顯示的數(shù)據(jù) } Write_Comm(0xc0)。 //換行,換到第二行 for(b=16。b33。b++) { d=dispBUF[b]。 if((b24)amp。amp。(b29)) { d=numcode[num[b]]。 } Write_Data(d)。 //寫入要顯示的數(shù)據(jù)(數(shù)據(jù)傳輸) } } /*********檢查 LCD 忙狀態(tài) ***********/ bit LCD_BUSY() //lcd_busy 為 1 時(shí),忙,等待。 lcdbusy為 0 時(shí) ,閑,可寫指 令與數(shù)據(jù) { bit BS。 RW = 1。 RS = 0。 E = 1。 delay1ms(1)。 BS =(bit)(P0amp。0x80)。 E = 0。 return BS。 } /*******************寫指令函數(shù) ******************************/ void Write_Comm(uchar lcdm) //寫指令 { while(LCD_BUSY())。 RS = 0。 RW = 0。 E = 1。 delay1ms(1)。 P0= lcdm。 delay1ms(1)。 27 E = 0。 } /*********************寫數(shù)據(jù)函數(shù) ****************************/ void Write_Data(uchar lcddata)//寫數(shù)據(jù) { while(LCD_BUSY())。 RS = 1。 RW = 0。 E = 1。 delay1ms(1)。 P0= lcddata。 delay1ms(1)。 //判斷是否忙狀態(tài) E = 0。 } /*********************初始化 LCD****************************/ void Init_LCD() { delay()。 //稍微延時(shí),等待 LCD 進(jìn)入工作狀態(tài) Write_Comm(0x01)。 //清顯示 Delay(2)。 Write_Comm(0x38)。 //8 位 2 行 5*8 Delay(2)。 Write_Comm(0x06)。 //文字不動(dòng),光標(biāo)右移 Delay(2)。 Write_Comm(0x0c)。 //顯示開 /關(guān),光標(biāo)開閃爍開 Delay(2)。 } /*************************延時(shí) n*15US 函數(shù) *************************/ void delay15(uchar us) { do { _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 28 _nop_()。 us。 } while(us)。 } /************************18b20 延時(shí)函數(shù) ************************/ void Delay(uint time) { while( time )。 } /****************************延時(shí) 1MS*************************/ void delay1ms(uint ms) { uint i,j。 for(i=0。ims。i++) for(j=0。j100。j++)。 } /***************************顯示延時(shí)函數(shù) *********************/ void delay() { uchar y。 for(y=0。y0xff。y++)。 } /*********************導(dǎo)通即可驅(qū)動(dòng)蜂鳴器 *********************/ void beep(uint bp) { uchar i, j。 for (i=0。ii++) { BUZZER=!BUZZER。 //BEEP 取反 for (j = 0 。 jbp 。 j++) //需要產(chǎn)生方波 _nop_()。 //一個(gè) CPU 周期 } BUZZER=0。 //關(guān)閉蜂鳴器 } /*******************系統(tǒng)主函數(shù) ******************/ void main(void) { uchar i,j。 for(i=0。i255。i++) for(j=0。j255。j++)。 //延時(shí) SYS_INIT()。 //初始化 //LCD_DISP()。 29 while(!START ) { beep(150)。 //調(diào)用 beep()函數(shù),使喇叭發(fā)聲 delay1ms(500)。 LCD_DISP()。 //顯示 sta_flag=0。 //標(biāo)準(zhǔn)位復(fù)位 ET0=1。 //開定時(shí)器 0 中斷 TR0=1。 //啟動(dòng)定時(shí)器 0 TESTTEMP()。 //啟動(dòng)溫度轉(zhuǎn)換 while(1) { if(sta_flag) //10MS 到了( sta_flag=1) { while(0==CSBIN)。 //收到回波 TR1=0。 //關(guān)閉計(jì)數(shù)器 1 jsh=TH1。 jsl=TL1。 //讀取計(jì)數(shù)器高低位的數(shù)值 HEXtoBCD()。 //轉(zhuǎn)換成 BCD 碼 JULIJS()。 //計(jì)算距離 if(15==count) //900MS 到,檢測(cè)溫度 { temp=GET_WD()。 //讀取溫度 count=0。 TESTTEMP()。 //重新啟動(dòng)轉(zhuǎn)換 LCD_DISP()。 //刷新顯示 } sta_flag=0。 //標(biāo)準(zhǔn)位復(fù)位 } if(distance=200) { beep(150)。 } } } }
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1