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

正文內(nèi)容

基于單片機(jī)的超生波測(cè)距系統(tǒng)課程設(shè)計(jì)-資料下載頁(yè)

2025-06-30 16:23本頁(yè)面

【導(dǎo)讀】塊,LCD顯示模塊組成。能夠完成距離和溫度的測(cè)量、顯示等功能。方案論證與比較--------------------------------------------------------------3. 復(fù)位電路的設(shè)計(jì)-------------------------------------------------------5. 單片機(jī)的I/O口的分配------------------------------------------------6. LCD1602顯示模塊的設(shè)計(jì)---------------------------------------------------7. 1602接口信號(hào)說(shuō)明----------------------------------------------------8. 超聲波測(cè)距模塊的設(shè)計(jì)-----------------------------------------------------11. 外部中斷0流程圖--------------------------------------------------14. 障礙物表面材料------------------------------------------------------------18. 超聲波模塊探頭距離-------------------------------------------------------18. 附錄一:源程序----------------------------------------------------------------------20. 附錄二:實(shí)物圖----------------------------------------------------------------------26

  

【正文】 write_data(bai+0x30)。 write_data(shi+0x30)。 22 write_data(ge+0x30)。 write_(0x80+11)。 for(i=0。i2。i++) write_data(table2[i])。 write_(0x80+0x40)。 for(i=0。i8。i++) write_data(table3[i])。 write_data(ly_dis[0]+0x30)。 write_data(ly_dis[1]+0x30)。 write_(0x80+0x40+11)。 for(i=0。i1。i++) write_data(table4[i])。 } void dsreset(void) //DS18B20 初始化 { uint i。 DS=0。 i=103。 while(i0)i。 DS=1。 i=4。 while(i0)i。 } bit tmpreadbit(void) //讀一位 { uint i。 bit dat。 DS=0。 i++。 //小延時(shí)一下 DS=1。 i++。i++。 dat=DS。 i=8。 while(i0)i。 return (dat)。 } uchar tmpread(void) //讀一個(gè)字節(jié) { uchar i,j,dat。 23 dat=0。 for(i=1。i=8。i++) { j=tmpreadbit()。 dat=(j7)|(dat1)。 //讀出的數(shù)據(jù)最低位在最前面,這樣剛好 //一個(gè)字節(jié)在DAT 里 } return(dat)。 //將一個(gè)字節(jié)數(shù)據(jù)返回 } void tmpwritebyte(uchar dat) //寫一個(gè)字節(jié) { uint i。 uchar j。 bit testb。 for(j=1。j=8。j++) { testb=datamp。0x01。 dat=dat1。 if(testb) // 寫 1 部分 { DS=0。 i++。i++。 DS=1。 i=8。 while(i0)i。 } else { DS=0。 //寫 0 部分 i=8。 while(i0)i。 DS=1。 i++。i++。 } } } void tmpchange(void) //發(fā)送溫度轉(zhuǎn)換命令 { dsreset()。 //初始化 DS18B20 delayb(1)。 //延時(shí) tmpwritebyte(0xcc)。 // 跳過(guò)序列號(hào)命令 tmpwritebyte(0x44)。 //發(fā)送溫度轉(zhuǎn)換命令 } int tmp() //獲得溫度 24 { int temp。 uchar a,b。 dsreset()。 delayb(1)。 tmpwritebyte(0xcc)。 tmpwritebyte(0xbe)。 //發(fā)送讀取數(shù)據(jù)命令 a=tmpread()。 //連續(xù)讀兩個(gè)字節(jié)數(shù)據(jù) b=tmpread()。 temp=b。 temp=8。 temp=temp|a。 //兩字節(jié)合成一個(gè)整型變量。 return temp。 //返回溫度值 } void main() { uint distance。 uint i。 Trig=0。 //首先拉低脈沖輸入引腳 EA=1。 //打開(kāi)總中斷 0 TMOD=0x10。 //定時(shí)器 1, 16 位工作方式 init_1602()。 while(1) { //溫度計(jì)算 if(i==0) //先發(fā)轉(zhuǎn)換命令,再讀數(shù)值,以減少速度慢帶來(lái)的顯示抖動(dòng) tmpchange()。 //溫度轉(zhuǎn)換 if(i==30){ ltemp=tmp()/16。 //得到十進(jìn)制溫度值,因?yàn)?DS18B20 可以精確到 度,這里取整數(shù)顯示 ly_dis[0]=ltemp/10。 //顯示溫度十位值 ly_dis[1]=ltemp%10。 //顯示溫度個(gè)位值 } i++。 if(i==50) //3000 一個(gè)讀取周期 i=0。 Speed=*ltemp+。 EA=0。 //關(guān)總中斷 Trig=1。 //超聲波輸入端 delay_20us()。 //延時(shí) 20us Trig=0。 //產(chǎn)生一個(gè) 20us 的脈沖 25 while(Echo==0)。 //等待 Echo 回波引腳變高電平 succeed_flag=0。 //清測(cè)量成功標(biāo)志 EA=1。 EX0=1。 //打開(kāi)外部中斷 0 TH1=0。 //定時(shí)器 1 清零 TL1=0。 //定時(shí)器 1 清零 TF1=0。 //計(jì)數(shù)溢出標(biāo)志 TR1=1。 //啟動(dòng)定時(shí)器 1 delay(20)。 //等待測(cè)量的結(jié)果 TR1=0。 //關(guān)閉定時(shí)器 1 EX0=0。 //關(guān)閉外部中斷 0 if(succeed_flag==1) { time=timeH*256+timeL。 distance=((unsigned long)(Speed)*time)/20xx。 //毫米 } if(succeed_flag==0) { distance=0。 //沒(méi)有回波則清零 } display(distance) 。 } } //外部中斷 0,用做判斷回波電平 void exter() interrupt 0 // 外部中斷 0 是 0 號(hào) { EX0=0。 //關(guān)閉外部中斷 timeH =TH1。 //取出定時(shí)器的值 timeL =TL1。 //取出定時(shí)器的值 succeed_flag=1。//至成功測(cè)量的標(biāo)志 } //定時(shí)器 1 中斷 ,用做超聲波測(cè)距計(jì)時(shí) void timer1() interrupt 3 { TH1=0。 TL1=0。 } 26 附錄 二 :實(shí)物圖 由上圖可知:誤差達(dá)到了 177。 2mm!!!
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1